diff --git a/build/RELEASE b/build/RELEASE index 6d066320..05467264 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -133.0.6943.127 \ No newline at end of file +134.0.6998.39 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 92f557af..fb90bf44 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -1,4 +1,5 @@ Do-not-link-with-libatomic.patch +Do-not-check-for-the-presence-of-use-remoteexec.patch bromite-build-utils.patch Add-cromite-flags-support.patch Fix-chromium-vanilla.patch @@ -170,7 +171,6 @@ Enable-third-party-storage-partitioning.patch Restore-adaptive-button-in-top-toolbar-customization.patch Add-kill-switch-for-unsupported-clangd-flags.patch -# cromite patches WIN-enable-pdf-plugin.patch WIN-disable-annotate-downloads.patch Enable-HighEfficiencyMode-by-default.patch @@ -292,6 +292,8 @@ Disable-Web-Bluetooth-by-default-in-desktop-platforms.patch Enable-Cert-Management-UI.patch Enable-ProcessBoundStringEncryption-by-default.patch Prevent-mouse-wheel-fingerprinting-on-Windows.patch +Enable-component-updater.patch +Android-fonts-fingerprinting-mitigation.patch # temporary or wip patches Temp-PerformanceNavigationTiming-privacy-fix.patch @@ -301,9 +303,8 @@ Temp-guard-FileSystemAccessPersistentPermissions.patch Never-treat-Proguard-warnings-as-errors.patch Temp-disable-experimental-web-platform-features.patch Block-leakage-of-urls-in-sandbox-iframes.patch +Temporarily-disable-Tab-Group-Sync-Android.patch Fix-chromium-build-bugs.patch -Enable-component-updater.patch -Android-fonts-fingerprinting-mitigation.patch # adblock patches eyeo-beta-118.0.5993.48-base.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 9b19a981..d5cd9d4f 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 -@@ -3219,6 +3219,10 @@ +@@ -3224,6 +3224,10 @@ "name": "enable-identity-in-auth-error", "owners": [ "jlebel@chromium.org", "chrome-signin-team@google.com" ], "expiry_milestone": 135 @@ -119,7 +119,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -2605,6 +2605,22 @@ +@@ -2593,6 +2593,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -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, +@@ -375,6 +378,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, kGpuFeatureStatusSoftware; } } @@ -196,7 +196,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list.txt --- a/gpu/config/gpu_workaround_list.txt +++ b/gpu/config/gpu_workaround_list.txt -@@ -7,6 +7,7 @@ check_egl_fence_before_wait +@@ -6,6 +6,7 @@ check_egl_fence_before_wait check_ycbcr_studio_g22_left_p709_for_nv12_support disable_2d_canvas_auto_flush disable_accelerated_av1_decode @@ -207,7 +207,7 @@ diff --git a/gpu/config/gpu_workaround_list.txt b/gpu/config/gpu_workaround_list diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc --- a/gpu/ipc/service/gpu_init.cc +++ b/gpu/ipc/service/gpu_init.cc -@@ -69,6 +69,7 @@ +@@ -70,6 +70,7 @@ #if BUILDFLAG(IS_ANDROID) #include "ui/gfx/android/android_surface_control_compat.h" @@ -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) -@@ -716,6 +717,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -715,6 +716,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 ab204a70..255e9b51 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -963,6 +964,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -968,6 +969,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -164,6 +164,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,15 +51,15 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -157,6 +157,7 @@ public abstract class ChromeFeatureList { - +@@ -158,6 +158,7 @@ public abstract class ChromeFeatureList { // Feature names. /* Alphabetical: */ + public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; + public static final String ALLOW_USER_CERTIFICATES = "AllowUserCertificates"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = -@@ -616,6 +617,8 @@ public abstract class ChromeFeatureList { +@@ -624,6 +625,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); @@ -68,14 +68,14 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sBlockIntentsWhileLocked = -@@ -832,6 +835,7 @@ public abstract class ChromeFeatureList { +@@ -845,6 +848,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationV2, - sNewTabPageCustomization, + sAndroidAppIntegrationWithFavicon, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null @@ -111,19 +111,19 @@ new file mode 100644 diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/java/src/org/chromium/net/X509Util.java --- a/net/android/java/src/org/chromium/net/X509Util.java +++ b/net/android/java/src/org/chromium/net/X509Util.java -@@ -528,6 +528,8 @@ public class X509Util { +@@ -542,6 +542,8 @@ public class X509Util { return userRootBytes.toArray(new byte[0][]); } + public static boolean AllowUserCertificates = false; + public static AndroidCertVerifyResult verifyServerCertificates( - byte[][] certChain, String authType, String host) - throws KeyStoreException, NoSuchAlgorithmException { -@@ -616,6 +618,9 @@ public class X509Util { + byte[][] certChain, + String authType, +@@ -642,6 +644,9 @@ public class X509Util { + X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); } - + if (AllowUserCertificates == false && isIssuedByKnownRoot == false) + return new AndroidCertVerifyResult(CertVerifyStatusAndroid.NO_TRUSTED_ROOT); + diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index ce787af5..cb5af53f 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 -@@ -114,6 +114,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, +@@ -123,6 +123,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index 66475a2d..63583d12 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -7587,9 +7587,9 @@ +@@ -7660,9 +7660,9 @@ "expiry_milestone": 140 }, { @@ -32,7 +32,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -267,6 +267,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -258,6 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { raw_ref(features::kPeriodicBackgroundSync)}, {wf::EnablePushMessagingSubscriptionChange, raw_ref(features::kPushSubscriptionChangeEvent)}, @@ -56,7 +56,7 @@ new file mode 100644 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 -@@ -27,4 +27,12 @@ bool IsGamepadMultitouchEnabled() { +@@ -36,4 +36,12 @@ bool IsGamepadMultitouchEnabled() { return false; } @@ -72,9 +72,9 @@ diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/publ 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 { - +@@ -13,8 +13,10 @@ namespace features { + GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE( + kEnableWindowsGamingInputDataFetcher); GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kEnableGamepadMultitouch); +GAMEPAD_FEATURES_EXPORT BASE_DECLARE_FEATURE(kRestrictGamepadAccess); diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 1c0c491c..6e0770e6 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -82,6 +82,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -81,6 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -99,7 +99,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -231,6 +231,9 @@ +@@ -221,6 +221,9 @@ @@ -140,9 +140,9 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr +#include "components/prefs/pref_service.h" +#include "components/prefs/pref_registry_simple.h" - #if BUILDFLAG(IS_CHROMEOS_ASH) + #if BUILDFLAG(IS_CHROMEOS) #include "chromeos/ash/components/network/proxy/proxy_config_service_impl.h" -@@ -70,7 +74,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile( +@@ -57,7 +61,20 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfProfile( return std::make_unique( profile_prefs, local_state_prefs, nullptr); #else @@ -161,12 +161,12 @@ diff --git a/chrome/browser/net/proxy_service_factory.cc b/chrome/browser/net/pr + local_state_prefs->CommitPendingWrite(); + } + return std::make_unique(local_state_prefs, nullptr); - #endif // BUILDFLAG(IS_CHROMEOS_ASH) + #endif // BUILDFLAG(IS_CHROMEOS) } -@@ -86,3 +103,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState( +@@ -73,3 +90,8 @@ ProxyServiceFactory::CreatePrefProxyConfigTrackerOfLocalState( nullptr); - #endif // BUILDFLAG(IS_CHROMEOS_ASH) + #endif // BUILDFLAG(IS_CHROMEOS) } + +// static @@ -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 -@@ -198,6 +198,8 @@ +@@ -200,6 +200,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 -@@ -1714,6 +1716,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1647,6 +1649,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -217,7 +217,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -157,7 +157,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { command_line()->GetSwitchValueASCII(switches::kProxyBypassList); SetValue(proxy_config::prefs::kProxy, base::Value(ProxyConfigDictionary::CreateFixedServers( @@ -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 -@@ -226,6 +226,8 @@ static_library("ui") { +@@ -222,6 +222,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -682,7 +682,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_NACL) #include "chrome/browser/ui/webui/nacl_ui.h" #endif -@@ -401,4 +404,5 @@ void RegisterChromeWebUIConfigs() { +@@ -388,4 +391,5 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(ENABLE_GLIC) map.AddWebUIConfig(std::make_unique()); #endif @@ -1150,7 +1150,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -159,6 +159,8 @@ inline constexpr char kChromeUINetExportHost[] = "net-export"; +@@ -160,6 +160,8 @@ inline constexpr char kChromeUINetExportHost[] = "net-export"; inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; @@ -1316,7 +1316,7 @@ diff --git a/components/proxy_config/proxy_config_dictionary.h b/components/prox diff --git a/components/proxy_config/proxy_policy_handler.cc b/components/proxy_config/proxy_policy_handler.cc --- a/components/proxy_config/proxy_policy_handler.cc +++ b/components/proxy_config/proxy_policy_handler.cc -@@ -380,7 +380,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, +@@ -378,7 +378,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, set_proxy_pref_value(ProxyConfigDictionary::CreateFixedServers( server->GetString(), bypass_list && bypass_list->is_string() ? bypass_list->GetString() diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 57a60d46..b3ba2608 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -98,7 +98,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,7 @@ chrome_java_resources = [ +@@ -636,6 +636,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", @@ -117,7 +117,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java", "java/src/org/chromium/chrome/browser/ActivityTabProvider.java", "java/src/org/chromium/chrome/browser/ActivityUtils.java", -@@ -933,6 +934,7 @@ chrome_java_sources = [ +@@ -946,6 +947,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", @@ -170,7 +170,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -97,6 +97,11 @@ found in the LICENSE file. +@@ -91,6 +91,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -244,7 +244,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 -@@ -70,6 +70,10 @@ import org.chromium.base.task.TaskTraits; +@@ -71,6 +71,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -255,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.metrics.LaunchCauseMetrics; -@@ -711,14 +715,19 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -715,14 +719,19 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -282,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -2550,8 +2559,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -2571,8 +2580,9 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn // We determine the model as soon as possible so every systems get initialized coherently. boolean startIncognito = @@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -93,6 +93,7 @@ import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; +@@ -92,6 +92,7 @@ import org.chromium.chrome.browser.compositor.layouts.SceneChangeObserver; import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerHandler; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.device.DeviceClassManager; @@ -338,7 +338,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. -@@ -597,6 +603,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -599,6 +605,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -352,7 +352,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; -@@ -660,7 +673,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -662,7 +675,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -369,7 +369,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); -@@ -865,8 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -867,8 +888,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -392,7 +392,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; -@@ -329,6 +330,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -339,6 +340,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -402,7 +402,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -339,6 +343,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -349,6 +353,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)); @@ -410,7 +410,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)); } -@@ -369,7 +374,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -379,7 +384,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -519,7 +519,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/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -35,6 +35,7 @@ import org.chromium.base.FileUtils; +@@ -36,6 +36,7 @@ import org.chromium.base.FileUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.chrome.R; @@ -527,7 +527,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import org.chromium.chrome.browser.ChromeTabbedActivity; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.download.home.DownloadActivityLauncher; -@@ -76,6 +77,10 @@ import org.chromium.url.GURL; +@@ -78,6 +79,10 @@ import org.chromium.url.GURL; import java.io.File; @@ -538,7 +538,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"; -@@ -298,7 +303,16 @@ public class DownloadUtils { +@@ -299,7 +304,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. @@ -697,7 +697,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -43,6 +43,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; +@@ -40,6 +40,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; import org.chromium.components.sync.SyncService; import org.chromium.url.GURL; @@ -713,7 +713,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -111,7 +120,8 @@ public class RecentTabsManager +@@ -108,7 +117,8 @@ public class RecentTabsManager Profile profile, Context context, Runnable showHistoryManager) { @@ -723,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -295,6 +305,22 @@ public class RecentTabsManager +@@ -291,6 +301,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -916,7 +916,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; +@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; @@ -924,7 +924,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; -@@ -243,6 +244,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -238,6 +239,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl mModalDialogManagerSupplier, SigninAndHistorySyncActivityLauncherImpl.get())); } @@ -937,7 +937,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 -@@ -22,6 +22,8 @@ import java.util.HashMap; +@@ -29,6 +29,8 @@ import java.util.HashMap; import java.util.List; import java.util.Set; @@ -946,7 +946,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; -@@ -70,9 +72,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -77,9 +79,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty() || !canRestore) return; if (tabs.size() == 1) { @@ -1043,7 +1043,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 -@@ -169,6 +169,8 @@ import org.chromium.ui.InsetObserver; +@@ -180,6 +180,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1052,7 +1052,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; -@@ -1072,7 +1074,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1078,7 +1080,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1115,7 +1115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; -@@ -820,6 +822,13 @@ public class TabPersistentStore { +@@ -821,6 +823,13 @@ public class TabPersistentStore { } } } @@ -1132,7 +1132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -43,6 +43,7 @@ import org.chromium.base.supplier.Supplier; +@@ -44,6 +44,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1140,7 +1140,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; -@@ -702,7 +703,7 @@ public class ToolbarManager +@@ -752,7 +753,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1301,8 +1301,8 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b +#include "build/build_config.h" #include "base/no_destructor.h" #include "chrome/browser/autocomplete/document_suggestions_service_factory.h" - #include "chrome/browser/profiles/profile.h" -@@ -40,9 +41,13 @@ RemoteSuggestionsServiceFactory::RemoteSuggestionsServiceFactory() + #include "chrome/browser/autocomplete/enterprise_search_aggregator_suggestions_service_factory.h" +@@ -43,9 +44,13 @@ RemoteSuggestionsServiceFactory::RemoteSuggestionsServiceFactory() : ProfileKeyedServiceFactory( "RemoteSuggestionsService", ProfileSelections::Builder() @@ -1319,15 +1319,15 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -33,6 +33,7 @@ - #include "base/notreached.h" +@@ -35,6 +35,7 @@ + #include "base/numerics/safe_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/uuid.h" +#include "chrome/common/pref_names.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/bookmarks/managed_bookmark_service_factory.h" #include "chrome/browser/commerce/shopping_service_factory.h" -@@ -247,6 +248,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( +@@ -215,6 +216,12 @@ ScopedJavaLocalRef JNI_BookmarkBridge_NativeGetForProfile( if (!profile) return nullptr; @@ -1391,7 +1391,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc -@@ -44,6 +44,9 @@ +@@ -45,6 +45,9 @@ #include "components/feed/core/v2/public/feed_api.h" // nogncheck #include "components/feed/core/v2/public/feed_service.h" // nogncheck #include "content/public/browser/web_contents.h" @@ -1401,7 +1401,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" -@@ -489,6 +492,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -492,6 +495,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1415,7 +1415,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -496,6 +506,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -499,6 +509,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1764,7 +1764,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 -@@ -247,6 +247,7 @@ +@@ -250,6 +250,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1772,7 +1772,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/preferences/browser_prefs_android.h" -@@ -2177,6 +2178,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2108,6 +2109,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1849,16 +1849,16 @@ diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java --- a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java +++ b/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/browser/ui/native_page/NativePage.java -@@ -15,6 +15,8 @@ import org.chromium.url.GURL; +@@ -17,6 +17,8 @@ import org.chromium.url.GURL; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import org.chromium.base.ContextUtils; + /** An interface for pages that will be using Android views instead of html/rendered Web content. */ + @NullMarked public interface NativePage { - -@@ -176,7 +178,8 @@ public interface NativePage { +@@ -179,7 +181,8 @@ public interface NativePage { */ static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean hasPdfDownload) { return url != null @@ -1868,7 +1868,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -186,7 +189,7 @@ public interface NativePage { +@@ -189,7 +192,7 @@ public interface NativePage { * not have chrome or chrome-native scheme. */ static boolean isChromePageUrl(GURL url, boolean isIncognito) { @@ -1877,7 +1877,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -198,11 +201,12 @@ public interface NativePage { +@@ -201,11 +204,12 @@ public interface NativePage { */ // TODO(crbug.com/40549331) - Convert to using GURL. static @NativePageType int nativePageType( @@ -1892,17 +1892,17 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -213,7 +217,8 @@ public interface NativePage { - * @return Type of the native page defined in {@link NativePageType}. - */ - private static @NativePageType int nativePageType( -- GURL url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload) { -+ GURL url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload, +@@ -219,7 +223,8 @@ public interface NativePage { + GURL url, + @Nullable NativePage candidatePage, + boolean isIncognito, +- boolean hasPdfDownload) { ++ boolean hasPdfDownload, + boolean isAlwaysIncognito) { if (hasPdfDownload) { // For navigation with associated pdf download (e.g. open a pdf link), pdf page should // be created. -@@ -231,7 +236,7 @@ public interface NativePage { +@@ -237,7 +242,7 @@ public interface NativePage { // created after the pdf document is re-downloaded in other parts of the code. return NativePageType.NONE; } else { @@ -1911,16 +1911,16 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } } -@@ -243,7 +248,7 @@ public interface NativePage { +@@ -249,7 +254,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( -- GURL url, NativePage candidatePage, boolean isIncognito) { -+ GURL url, NativePage candidatePage, boolean isIncognito, boolean isAlwaysIncognito) { +- GURL url, @Nullable NativePage candidatePage, boolean isIncognito) { ++ GURL url, @Nullable NativePage candidatePage, boolean isIncognito, boolean isAlwaysIncognito) { String host = url.getHost(); String scheme = url.getScheme(); if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) -@@ -263,7 +268,8 @@ public interface NativePage { +@@ -269,7 +274,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1933,9 +1933,9 @@ 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 - - Deletes history from all synced devices +@@ -6460,6 +6460,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d + + Cookies, cache, and other site data + + @@ -1962,8 +1962,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro + + Remember site settings changes in incognito mode + - - <link1>Search history</link1> and <link2>other forms of activity</link2> may be saved in your Google Account when you’re signed in. You can delete them anytime. + + <link1>Search history</link1> and <link2>other forms of activity</link2> may be saved in your Google Account 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 @@ -2034,7 +2034,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 -@@ -4138,6 +4138,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4149,6 +4149,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2100,7 +2100,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 -@@ -265,6 +265,7 @@ struct ContentSettingEntry { +@@ -264,6 +264,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2108,7 +2108,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -274,6 +275,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -273,6 +274,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2116,7 +2116,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()) { -@@ -287,7 +289,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -286,7 +288,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2170,7 +2170,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -395,7 +395,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -394,7 +394,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. @@ -2182,7 +2182,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -912,7 +912,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -913,7 +913,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. // Request for suggestions in OTR contexts is not allowed; except for the Lens // searchboxes. diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 0413d3d9..118bc8f4 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -26,9 +26,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/BookmarkToolbarViewBinder.java | 6 + .../native_page/NativePageFactory.java | 11 +- chrome/browser/BUILD.gn | 11 +- - .../bookmarks/android/bookmark_bridge.cc | 277 +++++++++++++++++ - .../bookmarks/android/bookmark_bridge.h | 29 +- - .../browser/bookmarks/bookmark_html_writer.cc | 3 + + .../bookmarks/android/bookmark_bridge.cc | 267 ++++++++++++++++ + .../bookmarks/android/bookmark_bridge.h | 30 +- .../dialogs/DownloadLocationCustomView.java | 8 +- .../DownloadLocationDialogCoordinator.java | 10 +- .../flags/android/chrome_feature_list.cc | 1 + @@ -53,7 +52,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 42 files changed, 900 insertions(+), 30 deletions(-) + 41 files changed, 888 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 @@ -492,7 +491,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1102,6 +1383,10 @@ class BookmarkBridge { +@@ -1108,6 +1389,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -535,7 +534,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; -@@ -334,6 +336,13 @@ public class BookmarkManagerCoordinator +@@ -326,6 +328,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -552,7 +551,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 -@@ -59,6 +59,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; +@@ -58,6 +58,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; @@ -571,7 +570,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; -@@ -571,6 +576,14 @@ class BookmarkManagerMediator +@@ -574,6 +579,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -586,7 +585,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. -@@ -752,6 +765,16 @@ class BookmarkManagerMediator +@@ -766,6 +779,16 @@ class BookmarkManagerMediator } } @@ -807,7 +806,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") { +@@ -218,6 +218,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -816,9 +815,9 @@ 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", -@@ -1661,6 +1663,13 @@ static_library("browser") { - "webid/identity_provider_permission_request.h", - ] +@@ -1698,6 +1700,13 @@ static_library("browser") { + ] + } + if (is_android) { + sources += [ @@ -830,7 +829,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3475,8 +3484,6 @@ static_library("browser") { +@@ -3507,8 +3516,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -842,7 +841,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -64,6 +64,28 @@ +@@ -66,6 +66,28 @@ #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -871,7 +870,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/BookmarkBridge_jni.h" -@@ -82,12 +104,97 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -84,6 +106,57 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -910,7 +909,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + } + } + -+ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url)) { ++ if (base::Contains(chrome::ChromeDebugURLs(), fixed_url.spec())) { + return true; + } + @@ -929,47 +928,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse namespace { // The key used to connect the instance of the bookmark bridge to the bookmark // model. - const char kBookmarkBridgeUserDataKey[] = "bookmark_bridge"; - - // Compares titles of different instance of BookmarkNode. -+class FileBookmarksExportObserver: public BookmarksExportObserver { -+ public: -+ FileBookmarksExportObserver( -+ const JavaParamRef& obj, -+ ui::WindowAndroid* window, -+ const std::string& export_path) : -+ obj_(ScopedJavaGlobalRef(obj)), -+ window_(window), -+ export_path_(export_path) {} -+ -+ void OnExportFinished(Result result) override { -+ if (result == Result::kSuccess) { -+ LOG(INFO) << "Bookmarks exported successfully to " << export_path_; -+ } else if (result == Result::kCouldNotCreateFile) { -+ LOG(ERROR) << "Bookmarks export: could not create file " << export_path_; -+ } else if (result == Result::kCouldNotWriteHeader) { -+ LOG(ERROR) << "Bookmarks export: could not write header"; -+ } else if (result == Result::kCouldNotWriteNodes) { -+ LOG(ERROR) << "Bookmarks export: could not write nodes"; -+ } -+ -+ JNIEnv* env = AttachCurrentThread(); -+ Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(), -+ ConvertUTF8ToJavaString(env, export_path_), -+ result == Result::kSuccess); -+ delete this; -+ } -+ -+ private: -+ const ScopedJavaGlobalRef obj_; -+ raw_ptr window_; -+ const std::string export_path_; -+}; -+ - class BookmarkTitleComparer { - public: - explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -229,6 +336,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -231,6 +304,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -980,7 +939,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -768,6 +879,172 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -765,6 +842,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1038,8 +997,32 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse + export_path_ = export_path_.Append(FILE_PATH_LITERAL("bookmarks.html")); + } + -+ observer_ = new FileBookmarksExportObserver(obj, window, export_path_.MaybeAsASCII()); -+ bookmark_html_writer::WriteBookmarks(profile_, export_path_, observer_); ++ bookmark_html_writer::WriteBookmarks(profile_, export_path_, ++ base::BindOnce(&BookmarkBridge::ExportBookmarksEnd, ++ weak_ptr_factory_.GetWeakPtr(), ++ base::android::ScopedJavaGlobalRef(obj), ++ window)); ++} ++ ++void BookmarkBridge::ExportBookmarksEnd(const ScopedJavaGlobalRef& obj, ++ ui::WindowAndroid* window, ++ bookmark_html_writer::Result result) const ++{ ++ auto export_path = export_path_.MaybeAsASCII(); ++ if (result == bookmark_html_writer::Result::kSuccess) { ++ LOG(INFO) << "Bookmarks exported successfully to " << export_path; ++ } else if (result == bookmark_html_writer::Result::kCouldNotCreateFile) { ++ LOG(ERROR) << "Bookmarks export: could not create file " << export_path; ++ } else if (result == bookmark_html_writer::Result::kCouldNotWriteHeader) { ++ LOG(ERROR) << "Bookmarks export: could not write header"; ++ } else if (result == bookmark_html_writer::Result::kCouldNotWriteNodes) { ++ LOG(ERROR) << "Bookmarks export: could not write nodes"; ++ } ++ ++ JNIEnv* env = AttachCurrentThread(); ++ Java_BookmarkBridge_bookmarksExported(env, obj, window->GetJavaObject(), ++ base::android::ConvertUTF8ToJavaString(env, export_path), ++ result == bookmark_html_writer::Result::kSuccess); +} + +// Attempts to create a TemplateURL from the provided data. |title| is optional. @@ -1196,7 +1179,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -93,6 +103,15 @@ class BookmarkBridge : public ProfileObserver, +@@ -93,6 +103,17 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -1208,21 +1191,22 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + const base::android::JavaParamRef& obj, + const base::android::JavaParamRef& java_window, + const base::android::JavaParamRef& j_export_path); ++ void ExportBookmarksEnd(const base::android::ScopedJavaGlobalRef& obj, ++ ui::WindowAndroid* window, bookmark_html_writer::Result result) const; + void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -363,6 +382,9 @@ class BookmarkBridge : public ProfileObserver, +@@ -362,6 +383,8 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak + base::FilePath export_path_; -+ raw_ptr observer_; // weak + base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -377,6 +399,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -376,6 +399,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -1230,7 +1214,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -408,6 +431,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -407,6 +431,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -1241,19 +1225,6 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Weak pointers for creating callbacks that won't call into a destroyed // object. base::WeakPtrFactory weak_ptr_factory_; -diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc ---- a/chrome/browser/bookmarks/bookmark_html_writer.cc -+++ b/chrome/browser/bookmarks/bookmark_html_writer.cc -@@ -33,6 +33,9 @@ - #include "base/task/thread_pool.h" - #include "base/time/time.h" - #include "base/values.h" -+#if BUILDFLAG(IS_ANDROID) -+#include "base/android/content_uri_utils.h" -+#endif - #include "chrome/browser/bookmarks/bookmark_model_factory.h" - #include "chrome/browser/favicon/favicon_service_factory.h" - #include "chrome/browser/profiles/profile.h" diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationCustomView.java @@ -1331,7 +1302,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -216,6 +216,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -214,6 +214,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTAuthTab, &kCCTAuthTabDisableAllExternalIntents, &kCCTAuthTabEnableHttpsRedirects, @@ -1342,7 +1313,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 -@@ -579,6 +579,7 @@ public abstract class ChromeFeatureList { +@@ -585,6 +585,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1353,7 +1324,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f 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 -@@ -124,6 +124,16 @@ void ProfileWriter::AddBookmarks( +@@ -125,6 +125,16 @@ void ProfileWriter::AddBookmarks( return; BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile_); @@ -1396,7 +1367,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 -@@ -115,6 +115,8 @@ public final class ChromePreferenceKeys { +@@ -121,6 +121,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"; @@ -1405,7 +1376,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"; -@@ -935,6 +937,7 @@ public final class ChromePreferenceKeys { +@@ -938,6 +940,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_IS_SCHEMA_SET, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1444,7 +1415,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -360,6 +360,9 @@ static_library("common_lib") { +@@ -356,6 +356,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1628,15 +1599,15 @@ 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 -@@ -49,6 +49,7 @@ import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.NullUnmarked; +@@ -51,6 +51,7 @@ import org.chromium.build.annotations.Initializer; + import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.ui.R; +import org.chromium.ui.widget.Toast; import org.chromium.ui.UiUtils; import java.io.File; -@@ -72,6 +73,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -74,6 +75,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"; @@ -1644,7 +1615,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"; -@@ -324,6 +326,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -323,6 +325,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mMimeTypes = convertToSupportedMimeTypes(mFileTypes); } @@ -1656,7 +1627,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. * -@@ -399,7 +406,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -407,7 +414,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1665,7 +1636,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 -@@ -452,7 +459,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -460,7 +467,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick // TODO(finnur): Remove once we figure out the cause of // crbug.com/950024. @@ -1674,7 +1645,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( -@@ -469,7 +476,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -477,7 +484,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1683,7 +1654,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) -@@ -775,6 +782,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -783,6 +790,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mimeTypes.add(mimeType); } } @@ -1691,7 +1662,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1149,6 +1157,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1155,6 +1163,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index b65de278..cf0a3d33 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -46,8 +46,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../res/xml/accessibility_preferences.xml | 3 +- .../accessibility/AccessibilitySettings.java | 6 +- .../android/java/res/values/attrs.xml | 4 + - .../settings/ChromeSwitchPreference.java | 20 ++ - .../components/cached_flags/CachedFlag.java | 9 +- + .../settings/ChromeSwitchPreference.java | 19 ++ + .../components/cached_flags/CachedFlag.java | 8 +- components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + @@ -65,7 +65,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/permissions/features.cc | 1 + ...nthetic_trials_active_group_id_provider.cc | 4 +- ...ynthetic_trials_active_group_id_provider.h | 4 +- - .../version_ui/version_handler_helper.cc | 4 +- + .../webui/version/version_handler_helper.cc | 4 +- content/common/features.cc | 1 + content/public/common/content_features.cc | 1 + content/public/common/content_features.h | 1 + @@ -106,7 +106,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 + - 93 files changed, 808 insertions(+), 30 deletions(-) + 93 files changed, 806 insertions(+), 30 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 @@ -152,7 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1017,7 +1019,7 @@ component("base") { +@@ -1016,7 +1018,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -164,7 +164,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc --- a/base/android/feature_map.cc +++ b/base/android/feature_map.cc -@@ -46,6 +46,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( +@@ -47,6 +47,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( static jboolean JNI_FeatureMap_IsEnabled(JNIEnv* env, jlong jfeature_map, std::string& feature_name) { @@ -436,7 +436,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -54,6 +54,10 @@ found in the LICENSE file. +@@ -48,6 +48,10 @@ found in the LICENSE file. android:key="do_not_track" android:title="@string/do_not_track_title" android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> @@ -462,7 +462,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 -@@ -89,7 +89,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -84,7 +84,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @Override @@ -482,7 +482,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.chrome.browser.LaunchIntentDispatcher; -@@ -76,18 +77,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -75,18 +76,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mSnackbarManagerSupplier; private final OneshotSupplier mBottomSheetControllerSupplier; private final ObservableSupplier mModalDialogManagerSupplier; @@ -505,7 +505,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme } @Override -@@ -96,6 +100,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -95,6 +99,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl @NonNull Fragment fragment, @NonNull Context unusedContext) { // Common dependencies attachments. @@ -643,9 +643,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4313,6 +4317,10 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = { - std::size(kMerchantTrustEnabledWithSampleData), nullptr}}; - #endif // !BUILDFLAG(IS_ANDROID) +@@ -4381,6 +4385,10 @@ const FeatureEntry::FeatureVariation kTabSwitcherColorBlendAnimateVariations[] = + std::size(kTabSwitcherColorBlendAnimateVariation3), nullptr}}; + #endif // BUILDFLAG(IS_ANDROID) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -654,7 +654,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. -@@ -4339,6 +4347,9 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = { +@@ -4407,6 +4415,9 @@ const FeatureEntry::FeatureVariation kTabSwitcherColorBlendAnimateVariations[] = const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -667,7 +667,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -352,4 +352,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -367,4 +367,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -726,7 +726,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1133,5 +1133,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, +@@ -1182,5 +1182,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); @@ -736,7 +736,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 -@@ -225,6 +225,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -236,6 +236,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -747,7 +747,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 -@@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; +@@ -19,6 +19,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; import org.chromium.components.cached_flags.IntCachedFeatureParam; import org.chromium.components.cached_flags.StringCachedFeatureParam; @@ -758,7 +758,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -818,7 +822,7 @@ public abstract class ChromeFeatureList { +@@ -830,7 +834,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); @@ -767,7 +767,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAndroidAppIntegration, sAndroidAppIntegrationModule, -@@ -916,6 +920,13 @@ public abstract class ChromeFeatureList { +@@ -933,6 +937,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -957,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 -@@ -440,4 +440,5 @@ BASE_FEATURE(kPageActionsMigration, - "PageActionsMigration", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -416,4 +416,5 @@ BASE_FEATURE(kFedCmContinueWithoutName, + "FedCmContinueWithoutName", + 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 -@@ -1561,4 +1561,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, +@@ -1569,4 +1569,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, "DisableShortcutsEnableDiy", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1037,17 +1037,16 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java -@@ -12,6 +12,9 @@ import android.view.accessibility.AccessibilityEvent; +@@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; -+import androidx.annotation.Nullable; +import android.content.res.TypedArray; + import androidx.annotation.ColorInt; - import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -@@ -31,6 +34,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { + import androidx.preference.PreferenceViewHolder; +@@ -40,6 +42,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { /** Indicates if the preference uses a custom layout. */ private final boolean mHasCustomLayout; @@ -1059,7 +1058,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium // TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate // away from a switch with dynamically changing summaries onto a radio group. /** -@@ -50,6 +58,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { +@@ -59,6 +66,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); mUseSummaryAsTitle = true; @@ -1081,16 +1080,8 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java --- a/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java +++ b/components/cached_flags/android/java/src/org/chromium/components/cached_flags/CachedFlag.java -@@ -5,6 +5,7 @@ - package org.chromium.components.cached_flags; - - import android.content.SharedPreferences; -+import androidx.annotation.Nullable; - - import org.chromium.base.FeatureList; - import org.chromium.base.FeatureMap; -@@ -143,7 +144,7 @@ public class CachedFlag extends Flag { - editor.putBoolean(getSharedPreferenceKey(), isEnabledInNative); +@@ -155,7 +155,7 @@ public class CachedFlag extends Flag { + editor.putBoolean(getSharedPreferenceKey(), featureValue); } - String getSharedPreferenceKey() { @@ -1098,7 +1089,7 @@ diff --git a/components/cached_flags/android/java/src/org/chromium/components/ca // Create the key only once to avoid String concatenation every flag check. if (mPreferenceKey == null) { mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); -@@ -151,6 +152,12 @@ public class CachedFlag extends Flag { +@@ -163,6 +163,12 @@ public class CachedFlag extends Flag { return mPreferenceKey; } @@ -1141,7 +1132,7 @@ new file mode 100644 diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc --- a/components/flags_ui/flags_state.cc +++ b/components/flags_ui/flags_state.cc -@@ -363,6 +363,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -373,6 +373,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -1163,7 +1154,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat CHECK(entry_it != name_to_switch_map.end(), base::NotFatalUntil::M130); const SwitchEntry& entry = entry_it->second; -@@ -680,6 +695,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -690,6 +705,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1191,7 +1182,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -806,6 +842,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -816,6 +852,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1208,7 +1199,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat NOTREACHED(); } -@@ -1057,6 +1103,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1067,6 +1113,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1510,7 +1501,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -188,4 +188,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -182,4 +182,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1519,7 +1510,7 @@ diff --git a/components/password_manager/core/browser/features/password_features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -122,6 +122,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, +@@ -120,6 +120,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, BASE_FEATURE(kCpssUseTfliteSignatureRunner, "CpssUseTfliteSignatureRunner", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1569,9 +1560,9 @@ diff --git a/components/variations/synthetic_trials_active_group_id_provider.h b // In debug builds, keep the full group information to be able to display it // in chrome://version. std::vector groups_; // GUARDED_BY(lock_); -diff --git a/components/version_ui/version_handler_helper.cc b/components/version_ui/version_handler_helper.cc ---- a/components/version_ui/version_handler_helper.cc -+++ b/components/version_ui/version_handler_helper.cc +diff --git a/components/webui/version/version_handler_helper.cc b/components/webui/version/version_handler_helper.cc +--- a/components/webui/version/version_handler_helper.cc ++++ b/components/webui/version/version_handler_helper.cc @@ -20,7 +20,7 @@ namespace version_ui { namespace { @@ -1593,7 +1584,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -475,4 +475,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -481,4 +481,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, // Please keep features in alphabetical order. @@ -1602,7 +1593,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1421,4 +1421,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1425,4 +1425,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1611,7 +1602,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -341,6 +341,7 @@ CONTENT_EXPORT extern const base::FeatureParam +@@ -339,6 +339,7 @@ CONTENT_EXPORT extern const base::FeatureParam CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1957,7 +1948,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 -@@ -1819,5 +1819,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1799,5 +1799,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1967,7 +1958,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -570,5 +570,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -568,5 +568,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1977,18 +1968,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 -@@ -666,4 +666,5 @@ BASE_FEATURE(kHstsTopLevelNavigationsOnly, - "HstsTopLevelNavigationsOnly", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -701,4 +701,5 @@ BASE_FEATURE(kUseCertTransparencyAwareApiForOsCertVerify, + base::FEATURE_ENABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_ANDROID) +#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 -@@ -687,6 +687,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kNewClientCertPathBuilding); - // When enabled HSTS upgrades will only apply to top-level navigations. - NET_EXPORT BASE_DECLARE_FEATURE(kHstsTopLevelNavigationsOnly); +@@ -719,6 +719,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kReportingApiCorsOriginHeader); + NET_EXPORT BASE_DECLARE_FEATURE(kUseCertTransparencyAwareApiForOsCertVerify); + #endif // BUILDFLAG(IS_ANDROID) +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1997,8 +1988,8 @@ 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 -@@ -366,4 +366,5 @@ BASE_FEATURE(kSRIMessageSignatureEnforcement, - "SRIMessageSignatureEnforcement", +@@ -351,4 +351,5 @@ BASE_FEATURE(kAdAuctionEventRegistration, + "AdAuctionEventRegistration", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" @@ -2006,9 +1997,9 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -155,6 +155,7 @@ BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault); - COMPONENT_EXPORT(NETWORK_CPP) - BASE_DECLARE_FEATURE(kSRIMessageSignatureEnforcement); +@@ -150,6 +150,7 @@ COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kCreateURLLoaderPipeAsync); + // requests be processed? + COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kAdAuctionEventRegistration); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -2017,7 +2008,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 -@@ -2898,4 +2898,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { +@@ -2899,4 +2899,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { // // DO NOT ADD NEW FEATURES HERE. @@ -2026,7 +2017,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 -@@ -1874,6 +1874,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); +@@ -1889,6 +1889,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -2037,7 +2028,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 -@@ -454,4 +454,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, +@@ -451,4 +451,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, "AsyncFullscreenWindowState", base::FEATURE_DISABLED_BY_DEFAULT); @@ -2046,7 +2037,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 -@@ -235,6 +235,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); +@@ -230,6 +230,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 9562750a..f66bd056 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -18,20 +18,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../customtabs/CustomTabsConnection.java | 1 + .../IncognitoCustomTabIntentDataProvider.java | 14 ++++++ .../privacy/settings/PrivacySettings.java | 50 +++++++++++++++++++ - .../browser/flags/ChromeFeatureList.java | 2 + + .../browser/flags/ChromeFeatureList.java | 3 ++ .../chrome/browser/tab/TabAssociatedApp.java | 6 ++- ...Add-custom-tab-intents-privacy-option.grdp | 25 ++++++++++ .../OriginVerifier.java | 5 ++ .../core/common/language_experiments.cc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 + - 12 files changed, 143 insertions(+), 2 deletions(-) + 12 files changed, 144 insertions(+), 2 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -62,6 +62,21 @@ found in the LICENSE file. +@@ -56,6 +56,21 @@ found in the LICENSE file. android:key="cromite_flags" android:title="@string/cromite_flags_title" app:url="@string/cromite_flags_url" /> @@ -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 -@@ -60,6 +60,15 @@ import org.chromium.device.DeviceFeatureList; +@@ -59,6 +59,15 @@ import org.chromium.device.DeviceFeatureList; import org.chromium.device.DeviceFeatureMap; 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; -@@ -112,6 +121,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -107,6 +116,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private IncognitoLockSettings mIncognitoLockSettings; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); @@ -204,7 +204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -349,6 +361,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -336,6 +348,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -369,6 +384,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -356,6 +371,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -246,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -401,6 +441,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -388,6 +428,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -266,18 +266,19 @@ 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 -@@ -719,6 +719,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sLogoPolishAnimationKillSwitch = - newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); +@@ -730,6 +730,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); -+ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false); + public static final CachedFlag sMostVisitedTilesCustomization = + newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); ++ public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = ++ newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false); public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -883,6 +884,7 @@ public abstract class ChromeFeatureList { - sLogoPolishAnimationKillSwitch, +@@ -897,6 +899,7 @@ public abstract class ChromeFeatureList { sNotificationTrampoline, sMagicStackAndroid, + sMostVisitedTilesCustomization, + sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, sMultiInstanceApplicationStatusCleanup, @@ -331,7 +332,7 @@ new file mode 100644 diff --git a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java --- a/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java +++ b/components/content_relationship_verification/android/java/src/org/chromium/components/content_relationship_verification/OriginVerifier.java -@@ -176,6 +176,11 @@ public abstract class OriginVerifier { +@@ -180,6 +180,11 @@ public abstract class OriginVerifier { assert mNativeOriginVerifier != 0 : "Either provide a browserContextHandle to " + "OriginVerifier#ctor or call initNativeOriginVerifier."; @@ -342,7 +343,7 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c + } String scheme = origin.uri().getScheme(); - String host = origin.uri().getHost(); + String host = assumeNonNull(origin.uri().getHost()); 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 diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index bbdeae34..784dbf48 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 -@@ -163,6 +163,9 @@ found in the LICENSE file. +@@ -166,6 +166,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 -@@ -192,6 +195,9 @@ found in the LICENSE file. +@@ -195,6 +198,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 -@@ -292,6 +292,8 @@ import java.util.Set; +@@ -293,6 +293,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. -@@ -3000,6 +3002,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3021,6 +3023,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -60,7 +60,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -61,6 +61,7 @@ import org.chromium.chrome.R; +@@ -60,6 +60,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; import org.chromium.chrome.browser.AppHooks; @@ -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 -@@ -4388,6 +4388,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4345,6 +4345,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 830ffb01..9ef86be5 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( +@@ -540,6 +541,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { @@ -45,7 +45,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ diff --git a/components/omnibox/browser/history_url_provider.cc b/components/omnibox/browser/history_url_provider.cc --- a/components/omnibox/browser/history_url_provider.cc +++ b/components/omnibox/browser/history_url_provider.cc -@@ -490,6 +490,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, +@@ -489,6 +489,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, if (fixed_up_input.type() != metrics::OmniboxInputType::QUERY) matches_.push_back(what_you_typed_match); @@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -628,6 +629,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -629,6 +630,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { @@ -79,7 +79,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc --- a/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc -@@ -14,6 +14,8 @@ +@@ -15,6 +15,8 @@ #include #include "base/check_op.h" diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index 845cff15..f43672e0 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -92,7 +92,7 @@ new file mode 100644 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc -@@ -26,6 +26,10 @@ +@@ -22,6 +22,10 @@ #include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_pool.h" #include "net/socket/connect_job.h" @@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket #include "net/ssl/ssl_config.h" #include "url/gurl.h" #include "url/scheme_host_port.h" -@@ -165,6 +169,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -161,6 +165,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index ac0aed51..6883cd5d 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 -@@ -1112,6 +1112,7 @@ component("net") { +@@ -1118,6 +1118,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -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" -@@ -1426,6 +1427,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1425,6 +1426,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 b981be03..b8e7af24 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -87,7 +87,12 @@ found in the LICENSE file. +@@ -81,7 +81,12 @@ found in the LICENSE file. android:title="@string/settings_incognito_tab_lock_title" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false" /> @@ -142,7 +142,7 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ --- a/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc @@ -27,7 +27,6 @@ namespace { - const base::Feature* kFeaturesExposedToJava[] = { + const base::Feature* const kFeaturesExposedToJava[] = { &kExternalNavigationDebugLogs, &kBlockFrameRenavigations, &kBlockIntentsToSelf, &kTrustedClientGestureBypass}; - @@ -193,7 +193,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component 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 -@@ -1530,6 +1530,12 @@ public class ExternalNavigationHandler { +@@ -1529,6 +1529,12 @@ public class ExternalNavigationHandler { || ignoreBackForwardNav(params); } @@ -206,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1586,6 +1592,21 @@ public class ExternalNavigationHandler { +@@ -1585,6 +1591,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 c02d47a5..5d3f0e58 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -853,6 +853,10 @@ +@@ -855,6 +855,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 e2051471..775acfea 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 -@@ -1980,7 +1980,6 @@ config("default_warnings") { +@@ -1974,7 +1974,6 @@ config("default_warnings") { # TODO(crbug.com/40284799): Fix and re-enable. "-Wno-thread-safety-reference-return", ] @@ -22,18 +22,18 @@ 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", -@@ -2001,6 +2000,16 @@ config("default_warnings") { +@@ -1992,6 +1991,16 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. cflags += [ "-Wno-nontrivial-memcall" ] } + if (skip_clangd_unsupported_options) { + cflags -= [ + "-Wno-thread-safety-reference-return", ++ "-Wno-nontrivial-memcall", + ] + cflags_cc -= [ + "-Wno-c++11-narrowing-const-reference", + "-Wno-missing-template-arg-list-after-template-kw", -+ "-Wno-dangling-assignment-gsl", + ] + } } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index ff1b0313..0baeefa9 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -57,7 +57,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../one_time_permissions_tracker.h | 5 +- .../one_time_permissions_tracker_factory.cc | 2 +- .../views/permissions/chip/chip_controller.cc | 2 +- - .../permissions/embedded_permission_prompt.cc | 2 +- ...exclusive_access_permission_prompt_view.cc | 2 +- .../permission_prompt_bubble_base_view.cc | 2 +- .../site_settings/PermissionInfo.java | 1 + @@ -74,6 +73,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/page_info/page_info.h | 1 + .../permissions/PermissionDialogDelegate.java | 13 +++ .../PermissionDialogModelFactory.java | 82 ++++++++++++++++++- + .../embedded_permission_prompt_android.cc | 3 +- + .../embedded_permission_prompt_android.h | 2 +- .../permission_dialog_delegate.cc | 24 +++++- .../permission_dialog_delegate.h | 1 + .../permission_prompt_android.cc | 8 +- @@ -81,6 +82,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/permissions_android_strings.grd | 17 ++++ .../geolocation_permission_context_android.cc | 34 ++++++-- .../geolocation_permission_context_android.h | 13 ++- + .../embedded_permission_prompt_flow_model.cc | 2 +- .../permissions/permission_context_base.cc | 52 ++++++++++-- .../permissions/permission_context_base.h | 23 +++++- components/permissions/permission_prompt.h | 3 +- @@ -88,7 +90,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/permissions/permission_request.h | 16 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 36 files changed, 490 insertions(+), 69 deletions(-) + 38 files changed, 493 insertions(+), 71 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -230,7 +232,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrome/browser/ui/views/permissions/chip/chip_controller.cc --- a/chrome/browser/ui/views/permissions/chip/chip_controller.cc +++ b/chrome/browser/ui/views/permissions/chip/chip_controller.cc -@@ -234,7 +234,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { +@@ -235,7 +235,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { active_chip_permission_request_manager_.value()->Accept(); break; case permissions::PermissionAction::GRANTED_ONCE: @@ -239,18 +241,6 @@ diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrom break; case permissions::PermissionAction::DENIED: active_chip_permission_request_manager_.value()->Deny(); -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 -@@ -664,7 +664,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { - delegate_->Accept(); - break; - case Action::kAllowThisTime: -- delegate_->AcceptThisTime(); -+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); - break; - case Action::kDeny: - delegate_->Deny(); diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc --- a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +++ b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc @@ -342,7 +332,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) { +@@ -157,6 +157,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { return constraints.session_model() == mojom::SessionModel::DURABLE; } @@ -385,7 +375,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc bool CanTrackLastVisit(ContentSettingsType type) { // Last visit is not tracked for notification permission as it shouldn't be // auto-revoked. -@@ -258,9 +294,6 @@ const std::vector& GetTypesWithTemporaryGrants() { +@@ -240,9 +276,6 @@ const std::vector& GetTypesWithTemporaryGrants() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -395,7 +385,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, }}; -@@ -274,9 +307,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { +@@ -256,9 +289,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -424,8 +414,8 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.h b diff --git a/components/content_settings/core/common/content_settings_enums.mojom b/components/content_settings/core/common/content_settings_enums.mojom --- a/components/content_settings/core/common/content_settings_enums.mojom +++ b/components/content_settings/core/common/content_settings_enums.mojom -@@ -58,6 +58,15 @@ enum SessionModel { - ONE_TIME, +@@ -63,6 +63,15 @@ enum SessionModel { + ONE_TIME = 3, }; +// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.content_settings @@ -443,7 +433,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -383,9 +383,9 @@ public class PageInfoController +@@ -385,9 +385,9 @@ public class PageInfoController String name, String nameMidSentence, int type, @@ -573,9 +563,9 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per import java.util.ArrayList; import java.util.List; -@@ -60,6 +61,9 @@ public class PermissionDialogDelegate { - /** The {@link ContentSettingsType}s requested in this dialog. */ - private int[] mContentSettingsTypes; +@@ -63,6 +64,9 @@ public class PermissionDialogDelegate { + // Prompt(screen) variant we want to display on the dialog. + private @EmbeddedPromptVariant int mEmbeddedPromptVariant; + /** Lifetime option selected by the user. */ + private int mSelectedLifetimeOption = LifetimeMode.ALWAYS; @@ -583,7 +573,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** * Defines a (potentially empty) list of ranges represented as pairs of , * which shall be used by the UI to format the specified ranges as bold text. -@@ -117,6 +121,15 @@ public class PermissionDialogDelegate { +@@ -132,6 +136,15 @@ public class PermissionDialogDelegate { .acceptThisTime(mNativeDelegatePtr, PermissionDialogDelegate.this); } @@ -596,9 +586,9 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per + return mSelectedLifetimeOption; + } + - public void onCancel() { + public void onDeny() { assert mNativeDelegatePtr != 0; - PermissionDialogDelegateJni.get().cancel(mNativeDelegatePtr, PermissionDialogDelegate.this); + PermissionDialogDelegateJni.get().deny(mNativeDelegatePtr, PermissionDialogDelegate.this); diff --git a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java --- a/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java +++ b/components/permissions/android/java/src/org/chromium/components/permissions/PermissionDialogModelFactory.java @@ -621,9 +611,9 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per /** This class creates the model for the permission dialog. */ class PermissionDialogModelFactory { public static PropertyModel getModel( -@@ -72,6 +84,74 @@ class PermissionDialogModelFactory { - ModalDialogProperties.NEGATIVE_BUTTON_TEXT, - delegate.getNegativeButtonText()); +@@ -65,7 +77,75 @@ class PermissionDialogModelFactory { + ModalDialogProperties.ButtonStyles.PRIMARY_FILLED_NEGATIVE_OUTLINE) + .with(ModalDialogProperties.CHANGE_CUSTOM_VIEW_OR_BUTTONS, true); } - return builder.build(); + @@ -696,12 +686,38 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per + } + return false; } + + public static ModalDialogProperties.ModalDialogButtonSpec[] getButtonSpecs( +diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc +--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc ++++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.cc +@@ -105,7 +105,8 @@ void EmbeddedPermissionPromptAndroid::Acknowledge() { + delegate()->FinalizeCurrentRequests(); } + +-void EmbeddedPermissionPromptAndroid::AcceptThisTime() { ++void EmbeddedPermissionPromptAndroid::AcceptThisTime( ++ content_settings::mojom::LifetimeMode lifetimeOption) { + prompt_model_->PrecalculateVariantsForMetrics(); + prompt_model_->RecordPermissionActionUKM( + permissions::ElementAnchoredBubbleAction::kGrantedOnce); +diff --git a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h +--- a/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h ++++ b/components/permissions/android/permission_prompt/embedded_permission_prompt_android.h +@@ -43,7 +43,7 @@ class EmbeddedPermissionPromptAndroid : public PermissionPromptAndroid { + const override; + void Closing() override; + void Accept() override; +- void AcceptThisTime() override; ++ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption) override; + void Acknowledge() override; + void Deny() override; + void Resumed() override; diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc -@@ -158,6 +158,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { - Java_PermissionDialogDelegate_dismissFromNative(env, j_delegate_); +@@ -139,6 +139,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { + static_cast(permission_prompt_->GetEmbeddedPromptVariant())); } +int PermissionDialogJavaDelegate::GetSelectedLifetimeOption() { @@ -710,9 +726,9 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ +} + // static - void PermissionDialogDelegate::Create( + std::unique_ptr PermissionDialogDelegate::Create( content::WebContents* web_contents, -@@ -186,6 +191,13 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting( +@@ -168,6 +173,13 @@ PermissionDialogDelegate::CreateForTesting( void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -726,7 +742,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ permission_prompt_->Accept(); } -@@ -193,12 +205,22 @@ void PermissionDialogDelegate::AcceptThisTime( +@@ -175,7 +187,10 @@ void PermissionDialogDelegate::AcceptThisTime( JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -737,8 +753,10 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ + permission_prompt_->AcceptThisTime(lifetimeOption); } - void PermissionDialogDelegate::Cancel(JNIEnv* env, - const JavaParamRef& obj) { + void PermissionDialogDelegate::Acknowledge(JNIEnv* env, +@@ -187,6 +202,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, + void PermissionDialogDelegate::Deny(JNIEnv* env, + const JavaParamRef& obj) { CHECK(permission_prompt_); + content_settings::mojom::LifetimeMode lifetimeOption = + static_cast( @@ -753,18 +771,18 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.h b/components/permissions/android/permission_prompt/permission_dialog_delegate.h --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.h +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.h -@@ -41,6 +41,7 @@ class PermissionDialogJavaDelegate { +@@ -42,6 +42,7 @@ class PermissionDialogJavaDelegate { const favicon_base::FaviconRawBitmapResult& favicon_result); virtual void DismissDialog(); + virtual int GetSelectedLifetimeOption(); - private: - base::android::ScopedJavaGlobalRef j_delegate_; + virtual void UpdateDialog(); + diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.cc b/components/permissions/android/permission_prompt/permission_prompt_android.cc --- a/components/permissions/android/permission_prompt/permission_prompt_android.cc +++ b/components/permissions/android/permission_prompt/permission_prompt_android.cc -@@ -67,8 +67,12 @@ void PermissionPromptAndroid::Accept() { +@@ -76,8 +76,12 @@ void PermissionPromptAndroid::Accept() { delegate_->Accept(); } @@ -782,17 +800,18 @@ diff --git a/components/permissions/android/permission_prompt/permission_prompt_ diff --git a/components/permissions/android/permission_prompt/permission_prompt_android.h b/components/permissions/android/permission_prompt/permission_prompt_android.h --- a/components/permissions/android/permission_prompt/permission_prompt_android.h +++ b/components/permissions/android/permission_prompt/permission_prompt_android.h -@@ -49,8 +49,9 @@ class PermissionPromptAndroid : public PermissionPrompt { - - void Closing(); - void Accept(); -- void AcceptThisTime(); -+ void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption); - void Deny(); -+ void DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption); - void SetManageClicked(); - void SetLearnMoreClicked(); - bool ShouldCurrentRequestUseQuietUI(); +@@ -54,9 +54,10 @@ class PermissionPromptAndroid : public PermissionPrompt { + const; + virtual void Closing(); + virtual void Accept(); +- virtual void AcceptThisTime(); ++ virtual void AcceptThisTime(content_settings::mojom::LifetimeMode lifetimeOption); + virtual void Acknowledge() {} + virtual void Deny(); ++ virtual void DenyThisTime(content_settings::mojom::LifetimeMode lifetimeOption); + virtual void Resumed() {} + virtual void SystemSettingsShown() {} + virtual void SystemPermissionResolved(bool accepted) {} diff --git a/components/permissions/android/permissions_android_strings.grd b/components/permissions/android/permissions_android_strings.grd --- a/components/permissions/android/permissions_android_strings.grd +++ b/components/permissions/android/permissions_android_strings.grd @@ -823,7 +842,7 @@ diff --git a/components/permissions/android/permissions_android_strings.grd b/co diff --git a/components/permissions/contexts/geolocation_permission_context_android.cc b/components/permissions/contexts/geolocation_permission_context_android.cc --- a/components/permissions/contexts/geolocation_permission_context_android.cc +++ b/components/permissions/contexts/geolocation_permission_context_android.cc -@@ -162,7 +162,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -168,7 +168,20 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( bool is_one_time, bool is_final_decision) { DCHECK(is_final_decision); @@ -844,7 +863,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (content_setting == CONTENT_SETTING_ALLOW && !location_settings_->IsSystemLocationSettingEnabled()) { -@@ -175,7 +188,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -181,7 +194,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( if (IsInLocationSettingsBackOff(is_default_search)) { FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, std::move(callback), false /* persist */, @@ -854,7 +873,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -193,7 +207,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -199,7 +213,8 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( !location_settings_dialog_callback_.is_null()) { FinishNotifyPermissionSet(id, requesting_origin, embedding_origin, std::move(callback), false /* persist */, @@ -864,7 +883,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr return; } -@@ -205,13 +220,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( +@@ -211,13 +226,13 @@ void GeolocationPermissionContextAndroid::NotifyPermissionSet( base::BindOnce( &GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown, weak_factory_.GetWeakPtr(), requesting_origin, embedding_origin, @@ -880,7 +899,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr } content::PermissionResult -@@ -381,7 +396,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -390,7 +405,7 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( const GURL& embedding_origin, bool persist, ContentSetting content_setting, @@ -889,7 +908,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome) { bool is_default_search = IsRequestingOriginDSE(requesting_origin); if (prompt_outcome == GRANTED) { -@@ -400,7 +415,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( +@@ -409,7 +424,8 @@ void GeolocationPermissionContextAndroid::OnLocationSettingsDialogShown( FinishNotifyPermissionSet(location_settings_dialog_request_id_, requesting_origin, embedding_origin, std::move(location_settings_dialog_callback_), @@ -899,7 +918,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr location_settings_dialog_request_id_ = PermissionRequestID(content::GlobalRenderFrameHostId(0, 0), -@@ -414,10 +430,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( +@@ -423,10 +439,10 @@ void GeolocationPermissionContextAndroid::FinishNotifyPermissionSet( BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -930,9 +949,9 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr + bool is_final_decision, + content_settings::mojom::LifetimeMode lifetime_option) override; content::PermissionResult UpdatePermissionStatusWithDeviceStatus( + content::WebContents* web_contents, content::PermissionResult result, - const GURL& requesting_origin, -@@ -133,6 +142,7 @@ class GeolocationPermissionContextAndroid +@@ -134,6 +143,7 @@ class GeolocationPermissionContextAndroid bool persist, ContentSetting content_setting, bool is_one_time, @@ -940,7 +959,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr LocationSettingsDialogOutcome prompt_outcome); void FinishNotifyPermissionSet(const PermissionRequestID& id, -@@ -141,7 +151,8 @@ class GeolocationPermissionContextAndroid +@@ -142,7 +152,8 @@ class GeolocationPermissionContextAndroid BrowserPermissionCallback callback, bool persist, ContentSetting content_setting, @@ -950,11 +969,23 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr std::unique_ptr location_settings_; +diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc +--- a/components/permissions/embedded_permission_prompt_flow_model.cc ++++ b/components/permissions/embedded_permission_prompt_flow_model.cc +@@ -295,7 +295,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( + delegate_->Accept(); + break; + case DelegateAction::kAllowThisTime: +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); + break; + case DelegateAction::kDeny: + delegate_->Deny(); diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -251,6 +251,17 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const { - return true; +@@ -267,6 +267,17 @@ const PermissionRequest* PermissionContextBase::FindPermissionRequest( + return request->second.first.get(); } +std::unique_ptr @@ -971,7 +1002,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm content::PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -497,7 +508,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -526,7 +537,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -981,7 +1012,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -512,13 +524,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -541,13 +553,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1000,7 +1031,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -586,11 +599,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -628,11 +641,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -1029,7 +1060,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -630,6 +659,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -673,6 +702,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1045,19 +1076,19 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -639,6 +677,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -682,6 +720,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); + if (is_one_time) + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); - #if BUILDFLAG(IS_ANDROID) - if (base::FeatureList::IsEnabled( + // The Permissions module in Safety check will revoke permissions after + // a finite amount of time if the permission can be revoked. diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -163,6 +163,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -166,6 +166,15 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1073,7 +1104,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -184,6 +193,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -187,6 +196,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1086,8 +1117,8 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi const GURL& embedding_origin, ContentSetting content_setting, @@ -217,6 +231,12 @@ class PermissionContextBase : public content_settings::Observer { - // Implementors can override this method to avoid using automatic embargo. - virtual bool UsesAutomaticEmbargo() const; + PermissionRequest::PermissionDecidedCallback permission_decided_callback, + base::OnceClosure delete_callback) const; + virtual std::unique_ptr CreatePermissionRequest( + content::WebContents* web_contents, @@ -1095,10 +1126,10 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi + PermissionRequest::PermissionDecidedCallbackWithLifetime permission_decided_callback, + base::OnceClosure delete_callback) const; + - base::ObserverList permission_observers_; + // Implementors can override this method to avoid using automatic embargo. + virtual bool UsesAutomaticEmbargo() const; - // Set by subclasses to inform the base class that they will handle adding -@@ -240,7 +260,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -249,7 +269,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1304,13 +1335,13 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1255,32 +1266,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1267,32 +1278,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, - bool is_one_time) { + bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, base::ranges::count(requests_, request) + + DCHECK_EQ(1ul, std::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionGranted(is_one_time); @@ -1331,7 +1362,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p void PermissionRequestManager::PermissionDeniedIncludingDuplicates( - PermissionRequest* request) { + PermissionRequest* request, bool is_one_time, content_settings::mojom::LifetimeMode lifetime_option) { - DCHECK_EQ(1ul, base::ranges::count(requests_, request) + + DCHECK_EQ(1ul, std::ranges::count(requests_, request) + pending_permission_requests_.Count(request)) << "Only requests in [pending_permission_]requests_ can have duplicates"; - request->PermissionDenied(); @@ -1347,7 +1378,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1541,7 +1552,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1558,7 +1569,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1371,7 +1402,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; -@@ -375,9 +377,12 @@ class PermissionRequestManager +@@ -374,9 +376,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 9d380f90..39eb971a 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -7,9 +7,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/menu/main_menu.xml | 7 ++ .../chrome/browser/ChromeTabbedActivity.java | 24 +++++++ .../browser/bookmarks/BookmarkBridge.java | 67 +++++++++++++++++++ - .../bookmarks/android/bookmark_bridge.cc | 44 +++++++++++- + .../bookmarks/android/bookmark_bridge.cc | 42 ++++++++++++ .../bookmarks/android/bookmark_bridge.h | 8 +++ - .../browser/bookmarks/bookmark_html_writer.cc | 11 ++- + .../browser/bookmarks/bookmark_html_writer.cc | 14 +++- .../bookmark_merged_surface_service.cc | 3 + .../permanent_folder_ordering_tracker.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- @@ -29,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 + - 25 files changed, 248 insertions(+), 15 deletions(-) + 25 files changed, 250 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -186,6 +190,9 @@ found in the LICENSE file. +@@ -189,6 +193,9 @@ found in the LICENSE file. @@ -58,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 -@@ -96,6 +96,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -66,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; -@@ -3032,6 +3033,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3053,6 +3054,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn getTabModelSelectorSupplier().get(), closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs Runnable closeAllTabsRunnable = -@@ -3117,6 +3120,27 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3138,6 +3141,27 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -203,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Helper method to mark an item as read. * -@@ -1339,6 +1401,9 @@ class BookmarkBridge { +@@ -1345,6 +1407,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -213,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1360,6 +1425,8 @@ class BookmarkBridge { +@@ -1366,6 +1431,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -225,16 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -185,7 +185,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver { - - JNIEnv* env = AttachCurrentThread(); - Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(), -- ConvertUTF8ToJavaString(env, export_path_), -+ base::android::ConvertUTF8ToJavaString(env, export_path_), - result == Result::kSuccess); - delete this; - } -@@ -363,6 +363,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -326,6 +326,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } @@ -268,7 +259,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -475,6 +502,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -438,6 +465,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -276,7 +267,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -568,6 +596,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -531,6 +559,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -286,7 +277,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const BookmarkNode* reading_list_node = local_or_syncable_reading_list_manager_->GetRoot(); if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) { -@@ -1269,6 +1300,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1256,6 +1287,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -318,7 +309,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -222,6 +226,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -332,50 +323,73 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc -@@ -174,7 +174,8 @@ class Writer : public base::RefCountedThreadSafe { +@@ -173,14 +173,15 @@ class Writer : public base::RefCountedThreadSafe { BookmarkCodec codec; - bookmarks_ = + local_bookmarks_ = codec.Encode(model->bookmark_bar_node(), model->other_node(), - model->mobile_node(), /*sync_metadata_str=*/std::string()); + model->mobile_node(), model->tabs_collection_node(), + /*sync_metadata_str=*/std::string()); - } - Writer(const Writer&) = delete; -@@ -201,15 +202,19 @@ class Writer : public base::RefCountedThreadSafe { - roots->FindDict(BookmarkCodec::kOtherBookmarkFolderNameKey); - base::Value::Dict* mobile_folder_value = - roots->FindDict(BookmarkCodec::kMobileBookmarkFolderNameKey); + if (model->account_bookmark_bar_node()) { + CHECK(model->account_other_node()); + CHECK(model->account_mobile_node()); + account_bookmarks_ = codec.Encode( + model->account_bookmark_bar_node(), model->account_other_node(), +- model->account_mobile_node(), /*sync_metadata_str=*/std::string()); ++ model->account_mobile_node(), /*tabs_folder_node*/ nullptr, /*sync_metadata_str=*/std::string()); + } else { + CHECK(!model->account_other_node()); + CHECK(!model->account_mobile_node()); +@@ -214,6 +215,9 @@ class Writer : public base::RefCountedThreadSafe { + base::Value::Dict* mobile_folder_value = local_permanent_folders->FindDict( + BookmarkCodec::kMobileBookmarkFolderNameKey); + CHECK(mobile_folder_value); + base::Value::Dict* tabs_collection_value = -+ roots->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey); - DCHECK(root_folder_value); - DCHECK(other_folder_value); - DCHECK(mobile_folder_value); -+ DCHECK(tabs_collection_value); ++ local_permanent_folders->FindDict(BookmarkCodec::kTabsBookmarkFolderNameKey); ++ CHECK(tabs_collection_value); - IncrementIndent(); - - if (!WriteNode(*root_folder_value, BookmarkNode::BOOKMARK_BAR) || - !WriteNode(*other_folder_value, BookmarkNode::OTHER_NODE) || -- !WriteNode(*mobile_folder_value, BookmarkNode::MOBILE)) { -+ !WriteNode(*mobile_folder_value, BookmarkNode::MOBILE) || -+ !WriteNode(*tabs_collection_value, BookmarkNode::TABS_COLLECTION)) { - NotifyOnFinish(BookmarksExportObserver::Result::kCouldNotWriteNodes); - return; + base::Value::Dict* account_permanent_folders = + account_bookmarks_.FindDict(BookmarkCodec::kRootsKey); +@@ -289,6 +293,10 @@ class Writer : public base::RefCountedThreadSafe { + return bookmark_html_writer::Result::kCouldNotWriteNodes; } -@@ -460,6 +465,8 @@ void BookmarkFaviconFetcher::ExportBookmarks() { - BookmarkModelFactory::GetForBrowserContext(profile_)->other_node()); - ExtractUrls( - BookmarkModelFactory::GetForBrowserContext(profile_)->mobile_node()); -+ ExtractUrls( -+ BookmarkModelFactory::GetForBrowserContext(profile_)->tabs_collection_node()); - if (!bookmark_urls_.empty()) - FetchNextFavicon(); - else + ++ if (!WriteDescendants(*tabs_collection_value)) { ++ return bookmark_html_writer::Result::kCouldNotWriteNodes; ++ } ++ + DecrementIndent(); + + if (!Write(kFolderChildrenEnd) || !Write(kNewline)) { +@@ -435,6 +443,7 @@ class Writer : public base::RefCountedThreadSafe { + case BookmarkNode::URL: + case BookmarkNode::OTHER_NODE: + case BookmarkNode::MOBILE: ++ case BookmarkNode::TABS_COLLECTION: + NOTREACHED(); + } + +@@ -563,6 +572,7 @@ void BookmarkFaviconFetcher::ExportBookmarks() { + ExtractUrls(model->bookmark_bar_node()); + ExtractUrls(model->other_node()); + ExtractUrls(model->mobile_node()); ++ ExtractUrls(model->tabs_collection_node()); + + if (model->account_bookmark_bar_node()) { + CHECK(model->account_other_node()); 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 -@@ -44,6 +44,8 @@ std::optional GetIfPermanentFolderType( +@@ -29,6 +29,7 @@ BookmarkParentFolder GetBookmarkParentFolderFromPermanentType( + BookmarkNode::Type type) { + switch (type) { + case bookmarks::BookmarkNode::URL: ++ case bookmarks::BookmarkNode::TABS_COLLECTION: + NOTREACHED(); + case bookmarks::BookmarkNode::FOLDER: + // TODO(crbug.com/381252292): Consider extending type with a value +@@ -67,6 +68,8 @@ std::optional GetIfPermanentFolderType( case BookmarkNode::Type::URL: NOTREACHED(); @@ -384,18 +398,10 @@ diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrom } NOTREACHED(); } -@@ -99,6 +101,7 @@ BookmarkParentFolder BookmarkParentFolder::FromFolderNode( - } - switch (node->type()) { - case bookmarks::BookmarkNode::URL: -+ case bookmarks::BookmarkNode::TABS_COLLECTION: - NOTREACHED(); - case bookmarks::BookmarkNode::FOLDER: - // TODO(crbug.com/381252292): Consider extending type with a value diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc --- a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc +++ b/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc -@@ -22,6 +22,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) { +@@ -23,6 +23,7 @@ bool IsValidTrackedType(BookmarkNode::Type type) { switch (type) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -403,7 +409,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr NOTREACHED(); case bookmarks::BookmarkNode::BOOKMARK_BAR: -@@ -168,6 +169,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { +@@ -226,6 +227,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { switch (tracked_type_) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -435,7 +441,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 -@@ -4515,6 +4515,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4447,6 +4447,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -448,7 +454,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro 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 -@@ -137,6 +137,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( +@@ -104,6 +104,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( if (is_reorder) { base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target); switch (target_parent()->GetType()) { @@ -710,7 +716,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -825,7 +825,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -809,7 +809,7 @@ bool BookmarkModel::HasBookmarks() const { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -719,7 +725,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1147,6 +1147,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1141,6 +1141,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { bookmark_bar_node_ = details->bb_node(); other_node_ = details->other_folder_node(); mobile_node_ = details->mobile_folder_node(); @@ -730,7 +736,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmarks/browser/bookmark_model.h --- a/components/bookmarks/browser/bookmark_model.h +++ b/components/bookmarks/browser/bookmark_model.h -@@ -151,6 +151,12 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). const BookmarkNode* account_mobile_node() const; @@ -743,7 +749,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark bool is_root_node(const BookmarkNode* node) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return node == root_; -@@ -592,6 +598,7 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -602,6 +608,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -790,7 +796,7 @@ diff --git a/components/bookmarks/browser/bookmark_node.h b/components/bookmarks MOBILE }; -@@ -236,6 +237,8 @@ class BookmarkPermanentNode : public BookmarkNode { +@@ -241,6 +242,8 @@ class BookmarkPermanentNode : public BookmarkNode { int64_t id); static std::unique_ptr CreateMobileBookmarks( int64_t id); diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index efe0eb24..ea0b015f 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 -@@ -116,6 +116,9 @@ found in the LICENSE file. +@@ -119,6 +119,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 -@@ -3065,6 +3065,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -3086,6 +3086,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2518,6 +2518,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2524,6 +2524,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isNativePage); -@@ -1281,6 +1282,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1293,6 +1294,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate findInPageMenuRow.setVisible(itemVisible); } diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 8640ced6..2e68fd03 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -7,10 +7,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../tab_management/TabGridViewBinder.java | 8 +++- .../tasks/tab_management/TabProperties.java | 5 +++ .../java/res/xml/privacy_preferences.xml | 5 +++ - .../chrome/browser/app/ChromeActivity.java | 3 +- + .../chrome/browser/app/ChromeActivity.java | 4 +- .../privacy/settings/PrivacySettings.java | 44 ++++++++++++++++++- .../strings/android_chrome_strings.grd | 8 ++++ - 6 files changed, 70 insertions(+), 3 deletions(-) + 6 files changed, 71 insertions(+), 3 deletions(-) diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java @@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -78,6 +78,11 @@ found in the LICENSE file. +@@ -77,6 +77,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -140,6 +140,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -139,6 +139,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,12 +92,13 @@ 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; -@@ -615,7 +616,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -612,7 +613,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), -- !SysUtils.isLowEndDevice(), -+ !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false), +- !TabUiFeatureUtilities.shouldUseListMode(), ++ !TabUiFeatureUtilities.shouldUseListMode() ++ && !ContextUtils.getAppSharedPreferences().getBoolean(PrivacySettings.PREF_TABGRID_USE_ICONS, false), tabModelSelector != null ? tabModelSelector::getTabById : null, TabWindowManagerSingleton.getInstance())); @@ -112,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; import org.chromium.base.ContextUtils; -@@ -79,12 +80,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -78,12 +79,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 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -175,6 +190,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -170,6 +185,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -162,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -405,6 +435,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -392,6 +422,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -170,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -451,6 +482,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -438,6 +469,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -184,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -517,6 +555,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -504,6 +542,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -198,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6014,6 +6014,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5954,6 +5954,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 31e5829c..0ec3592a 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -80,7 +80,7 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -125,9 +125,13 @@ found in the LICENSE file. +@@ -117,9 +117,13 @@ found in the LICENSE file. 16dp @@ -98,7 +98,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -57,6 +57,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; import org.chromium.chrome.browser.night_mode.NightModeStateProvider; import org.chromium.chrome.browser.night_mode.NightModeUtils; @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo 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; -@@ -128,6 +129,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -131,6 +132,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -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; -@@ -473,7 +474,9 @@ public class WarmupManager { +@@ -476,7 +477,9 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -169,7 +169,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 -@@ -757,7 +757,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -758,7 +758,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -183,7 +183,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -112,6 +112,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; +@@ -114,6 +114,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.MotionEventUtils; @@ -191,7 +191,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -3999,8 +4000,13 @@ public class StripLayoutHelper +@@ -4060,8 +4061,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(); @@ -210,7 +210,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -91,6 +91,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -94,6 +94,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; @@ -218,7 +218,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; -@@ -438,7 +439,10 @@ public class StripLayoutHelperManager +@@ -453,7 +454,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -252,7 +252,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 -@@ -602,7 +602,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -620,7 +620,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -266,7 +266,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 -@@ -105,6 +105,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -109,6 +109,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; @@ -275,7 +275,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; -@@ -1788,7 +1790,9 @@ public class RootUiCoordinator +@@ -1777,7 +1779,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -300,7 +300,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 -@@ -274,6 +274,7 @@ public final class ChromePreferenceKeys { +@@ -280,6 +280,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"; @@ -311,16 +311,16 @@ 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/ChromeSharedPreferences.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromeSharedPreferences.java -@@ -12,6 +12,8 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; - import org.chromium.build.BuildConfig; - import org.chromium.build.annotations.AssumeNonNull; +@@ -14,6 +14,8 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + import org.chromium.build.annotations.OptimizeAsNonNull; +import org.chromium.ui.base.DeviceFormFactor; + @JNINamespace("android::shared_preferences") + @NullMarked public class ChromeSharedPreferences { - public static final PreferenceKeyRegistry REGISTRY = -@@ -23,6 +25,16 @@ public class ChromeSharedPreferences { +@@ -26,6 +28,16 @@ public class ChromeSharedPreferences { LegacyChromePreferenceKeys.getPrefixesInUse()) : null); @@ -340,7 +340,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 -@@ -55,6 +55,7 @@ public class LegacyChromePreferenceKeys { +@@ -57,6 +57,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.FIRST_RUN_FLOW_COMPLETE, ChromePreferenceKeys.FIRST_RUN_FLOW_SIGNIN_SETUP, ChromePreferenceKeys.FIRST_RUN_LIGHTWEIGHT_FLOW_COMPLETE, @@ -359,7 +359,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.InsetObserver; import org.chromium.ui.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.InsetsRectProvider; -@@ -259,6 +260,7 @@ public class AppHeaderCoordinator +@@ -260,6 +261,7 @@ public class AppHeaderCoordinator private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow( InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult) { @@ -370,7 +370,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 -@@ -814,7 +814,7 @@ public class LocationBarCoordinator +@@ -799,7 +799,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -382,7 +382,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 -@@ -1710,6 +1710,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1657,6 +1657,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -559,7 +559,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.resources.dynamics.DynamicResourceReadyOnceCallback; import org.chromium.ui.util.TokenHolder; -@@ -544,6 +545,7 @@ class HeightTransitionHandler { +@@ -559,6 +560,7 @@ class HeightTransitionHandler { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } @@ -578,7 +578,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** 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 +@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() 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 7b156254..286ce005 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -102,6 +102,11 @@ found in the LICENSE file. +@@ -96,6 +96,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -44,6 +44,7 @@ import org.chromium.base.Callback; +@@ -45,6 +45,7 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1652,8 +1653,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -1666,8 +1667,10 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.R; import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -94,6 +97,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -92,6 +95,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; -@@ -346,7 +351,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -333,7 +338,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(getProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) { -@@ -422,6 +431,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -409,6 +418,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -105,7 +105,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 -@@ -5539,6 +5539,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5479,6 +5479,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 f9e16051..19ba9f2b 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -94,6 +94,9 @@ import java.util.Map; +@@ -99,6 +99,9 @@ import java.util.Map; import java.util.Objects; import java.util.Optional; @@ -34,7 +34,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGridDialog component, responsible for communicating with the components' * coordinator as well as managing the business logic for dialog show/hide. -@@ -914,9 +917,15 @@ public class TabGridDialogMediator +@@ -918,9 +921,15 @@ public class TabGridDialogMediator return; } @@ -62,7 +62,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; -@@ -367,10 +368,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, +@@ -366,10 +367,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java -@@ -63,6 +63,9 @@ import org.chromium.ui.text.EmptyTextWatcher; +@@ -66,6 +66,9 @@ import org.chromium.ui.text.EmptyTextWatcher; import org.chromium.ui.widget.AnchoredPopupWindow.HorizontalOrientation; import org.chromium.ui.widget.RectProvider; @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over /** * A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is * responsible for creating a list of menu items, setting up the menu and displaying the menu. -@@ -191,9 +194,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina +@@ -197,9 +200,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina /* didCloseCallback= */ null); recordUserAction("DeleteGroup"); } else if (menuId == org.chromium.chrome.R.id.open_new_tab_in_group) { @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -287,6 +287,7 @@ public final class ChromePreferenceKeys { +@@ -293,6 +293,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -236,7 +236,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/LegacyChromePreferenceKeys.java -@@ -59,6 +59,7 @@ public class LegacyChromePreferenceKeys { +@@ -61,6 +61,7 @@ public class LegacyChromePreferenceKeys { ChromePreferenceKeys.HISTORY_SHOW_HISTORY_INFO, ChromePreferenceKeys.HOMEPAGE_ENABLED, ChromePreferenceKeys.HOMEPAGE_USE_DEFAULT_URI, @@ -247,7 +247,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1528,6 +1528,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1478,6 +1478,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -260,7 +260,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -90,6 +90,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kShowForwardButton, true, GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); @@ -272,7 +272,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1342,6 +1342,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; +@@ -1326,6 +1326,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 3b6fa1ea..797e7b8f 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -10,14 +10,22 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../search_engine_choice/default_favicon.png | Bin 0 -> 903 bytes ...search_engine_choice_scaled_resources.grdp | 1 + - .../search_engines/prepopulated_engines.json | 31 ++++++++++++++++++ + components/search_engines/BUILD.gn | 3 ++ + components/search_engines/cromite/BUILD.gn | 12 ++++++ + .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../search_engine_choice_utils.cc | 5 +-- - .../search_engine_countries-inc.cc | 3 ++ + .../search_engine_countries-inc.cc | 2 + .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 1 - + .../template_url_prepopulate_data.cc | 3 +- .../template_url_prepopulate_data.h | 7 ---- - 8 files changed, 41 insertions(+), 12 deletions(-) + tools/json_to_struct/json_to_struct.gni | 9 +++++ + tools/json_to_struct/json_to_struct.py | 26 ++++++++---- + tools/json_to_struct/struct_generator.py | 10 +++-- + tools/variations/fieldtrial_to_struct.py | 4 +- + 14 files changed, 99 insertions(+), 25 deletions(-) create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png + create mode 100644 components/search_engines/cromite/BUILD.gn + create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json diff --git a/components/resources/default_100_percent/search_engine_choice/default_favicon.png b/components/resources/default_100_percent/search_engine_choice/default_favicon.png new file mode 100644 @@ -57,58 +65,96 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c -diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json ---- a/components/search_engines/prepopulated_engines.json -+++ b/components/search_engines/prepopulated_engines.json -@@ -130,6 +130,16 @@ - ] - }, +diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn +--- a/components/search_engines/BUILD.gn ++++ b/components/search_engines/BUILD.gn +@@ -70,6 +70,7 @@ static_library("search_engines") { + "//third_party/metrics_proto", + "//third_party/omnibox_proto", + "//third_party/search_engines_data:prepopulated_engines", ++ "cromite:cromite_prepopulated_engines", + ] -+ "duckduckgo_light": { -+ "name": "DuckDuckGo Light", -+ "keyword": "duckduckgo.com/lite", -+ "favicon_url": "https://duckduckgo.com/favicon.ico", -+ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}", -+ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list", -+ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT", -+ "id": 12 -+ }, -+ - "ecosia": { - "name": "Ecosia", - "keyword": "ecosia.org", -@@ -205,6 +215,27 @@ - "id": 111 - }, + deps = [ +@@ -155,6 +156,7 @@ source_set("search_engine_utils") { + ":search_engine_type", + "//components/google/core/common", + "//third_party/search_engines_data:prepopulated_engines", ++ "cromite:cromite_prepopulated_engines", + ] -+ "googleen": { -+ "name": "Google in English", -+ "keyword": "googleen", -+ "favicon_url": "https://www.google.com/favicon.ico", -+ "search_url": "{google:baseURL}search?q={searchTerms}&ie={inputEncoding}&hl=en", -+ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&q={searchTerms}&hl=en", -+ "image_url": "{google:baseURL}searchbyimage/upload?hl=en", -+ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}", -+ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en", -+ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}", -+ "alternate_urls": [ -+ "{google:baseURL}?hl=en#q={searchTerms}", -+ "{google:baseURL}search?hl=en#q={searchTerms}", -+ "{google:baseURL}webhp?hl=en#q={searchTerms}", -+ "{google:baseURL}s?hl=en#q={searchTerms}", -+ "{google:baseURL}s?hl=en&q={searchTerms}" -+ ], -+ "type": "SEARCH_ENGINE_GOOGLE_EN", -+ "id": 13 -+ }, + deps = [ "//url" ] +@@ -235,6 +237,7 @@ source_set("unit_tests") { + "//testing/gmock", + "//testing/gtest", + "//third_party/search_engines_data:prepopulated_engines", ++ "cromite:cromite_prepopulated_engines", + "//ui/base", + "//url", + ] +diff --git a/components/search_engines/cromite/BUILD.gn b/components/search_engines/cromite/BUILD.gn +new file mode 100644 +--- /dev/null ++++ b/components/search_engines/cromite/BUILD.gn +@@ -0,0 +1,12 @@ ++import("//tools/json_to_struct/json_to_struct.gni") + - "mail_ru": { - "name": "@MAIL.RU", - "keyword": "mail.ru", ++json_to_struct("cromite_prepopulated_engines") { ++ visibility = [ "//components/search_engines:*" ] ++ ++ source = "cromite_prepopulated_engines.json" ++ schema_file = "//third_party/search_engines_data/prepopulated_engines_schema.json" ++ namespace = "TemplateURLPrepopulateData" ++ excludetype = true ++ ++ deps = [ "//base" ] ++} +diff --git a/components/search_engines/cromite/cromite_prepopulated_engines.json b/components/search_engines/cromite/cromite_prepopulated_engines.json +new file mode 100644 +--- /dev/null ++++ b/components/search_engines/cromite/cromite_prepopulated_engines.json +@@ -0,0 +1,37 @@ ++{ ++ "additionals_includes": { ++ "third_party/search_engines_data/resources/definitions/prepopulated_engines.h": "" ++ }, ++ "elements": { ++ "duckduckgo_light": { ++ "name": "DuckDuckGo Light", ++ "keyword": "duckduckgo.com/lite", ++ "favicon_url": "https://duckduckgo.com/favicon.ico", ++ "search_url": "https://duckduckgo.com/lite/?q={searchTerms}", ++ "suggest_url": "https://duckduckgo.com/ac/?q={searchTerms}&type=list", ++ "type": "SEARCH_ENGINE_DUCKDUCKGOLIGHT", ++ "id": 12 ++ }, ++ ++ "googleen": { ++ "name": "Google in English", ++ "keyword": "googleen", ++ "favicon_url": "https://www.google.com/favicon.ico", ++ "search_url": "{google:baseURL}search?q={searchTerms}&ie={inputEncoding}&hl=en", ++ "suggest_url": "{google:baseSuggestURL}search?client={google:suggestClient}&q={searchTerms}&hl=en", ++ "image_url": "{google:baseURL}searchbyimage/upload?hl=en", ++ "new_tab_url": "{google:baseURL}_/chrome/newtab?hl=en&ie={inputEncoding}", ++ "contextual_search_url": "{google:baseURL}_/contextualsearch?{google:contextualSearchVersion}{google:contextualSearchContextData}&hl=en", ++ "image_url_post_params": "encoded_image={google:imageThumbnail},image_url={google:imageURL},sbisrc={google:imageSearchSource},original_width={google:imageOriginalWidth},original_height={google:imageOriginalHeight}", ++ "alternate_urls": [ ++ "{google:baseURL}?hl=en#q={searchTerms}", ++ "{google:baseURL}search?hl=en#q={searchTerms}", ++ "{google:baseURL}webhp?hl=en#q={searchTerms}", ++ "{google:baseURL}s?hl=en#q={searchTerms}", ++ "{google:baseURL}s?hl=en&q={searchTerms}" ++ ], ++ "type": "SEARCH_ENGINE_GOOGLE_EN", ++ "id": 13 ++ } ++ } ++} 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 -@@ -186,10 +186,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -182,10 +182,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -123,15 +169,7 @@ diff --git a/components/search_engines/search_engine_choice/search_engine_choice diff --git a/components/search_engines/search_engine_countries-inc.cc b/components/search_engines/search_engine_countries-inc.cc --- a/components/search_engines/search_engine_countries-inc.cc +++ b/components/search_engines/search_engine_countries-inc.cc -@@ -38,6 +38,7 @@ struct EngineAndTier { - - // Default (for countries with no better engine set) - constexpr EngineAndTier engines_default[] = { -+ {SearchEngineTier::kTopEngines, &googleen}, - {SearchEngineTier::kTopEngines, &google}, - {SearchEngineTier::kTopEngines, &bing}, - {SearchEngineTier::kTopEngines, &yahoo}, -@@ -1452,5 +1453,7 @@ const std::vector GetPrepopulationSetFromCountryID( +@@ -1452,5 +1452,7 @@ const std::vector GetPrepopulationSetFromCountryID( for (size_t i = 0; i < num_engines; i++) { t_url.push_back(engines[i]); } @@ -161,7 +199,16 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -78,7 +78,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(int country_id, +@@ -29,6 +29,8 @@ + #include "components/version_info/version_info.h" + #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h" + ++#include "components/search_engines/cromite/cromite_prepopulated_engines.h" ++ + namespace TemplateURLPrepopulateData { + + // Helpers -------------------------------------------------------------------- +@@ -78,7 +80,6 @@ GetPrepopulatedEnginesForEeaRegionCountries(int country_id, generator.seed(profile_seed); std::shuffle(t_urls.begin(), t_urls.end(), generator); @@ -186,4 +233,172 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone // The maximum number of prepopulated search engines that can be returned in // in the rest of the world by `GetPrepopulatedEngines()`. inline constexpr size_t kMaxRowPrepopulatedEngines = 5; +diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni +--- a/tools/json_to_struct/json_to_struct.gni ++++ b/tools/json_to_struct/json_to_struct.gni +@@ -25,6 +25,11 @@ template("json_to_struct") { + action_name = target_name + "_action" + source_set_name = target_name + ++ excludetype = false ++ if (defined(invoker.excludetype)) { ++ excludetype = invoker.excludetype ++ } ++ + action(action_name) { + visibility = [ ":$source_set_name" ] + script = "//tools/json_to_struct/json_to_struct.py" +@@ -49,6 +54,10 @@ template("json_to_struct") { + "--namespace=" + invoker.namespace, + "--schema=" + rebase_path(invoker.schema_file, root_build_dir), + ] ++ ++ if (excludetype) { ++ args += [ "--excludetype=yes" ] ++ } + } + + source_set(source_set_name) { +diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py +--- a/tools/json_to_struct/json_to_struct.py ++++ b/tools/json_to_struct/json_to_struct.py +@@ -97,7 +97,7 @@ def _GenerateHeaderGuard(h_filename): + return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores. + + +-def _GenerateH(basepath, fileroot, head, namespace, schema, description): ++def _GenerateH(basepath, fileroot, head, namespace, schema, description, excludetype): + """Generates the .h file containing the definition of the structure specified + by the schema. + +@@ -133,11 +133,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): + f.write(u'#include "%s"\n' % header) + f.write(u'\n') + ++ for header in description.get(u'additionals_includes', []): ++ f.write(u'#include "%s"\n' % header) ++ f.write(u'\n') ++ + if namespace: + f.write(u'namespace %s {\n' % namespace) + f.write(u'\n') + +- f.write(struct_generator.GenerateStruct( ++ f.write(struct_generator.GenerateStruct(excludetype, + schema['type_name'], schema['schema'])) + f.write(u'\n') + +@@ -162,7 +166,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): + f.write(u'#endif // %s\n' % header_guard) + + +-def _GenerateCC(basepath, fileroot, head, namespace, schema, description): ++def _GenerateCC(basepath, fileroot, head, namespace, schema, description, excludetype): + """Generates the .cc file containing the static initializers for the + of the elements specified in the description. + +@@ -191,7 +195,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): + f.write(element_generator.GenerateElements(schema['type_name'], + schema['schema'], description)) + +- if 'generate_array' in description: ++ if excludetype == False and 'generate_array' in description: + f.write(u'\n') + f.write( + u'const %s* const array_%s[] = {\n' % +@@ -283,7 +287,7 @@ def GenerateClass(basepath, + + + def GenerateStruct(basepath, output_root, namespace, schema, description, +- description_filename, schema_filename, year=None): ++ description_filename, schema_filename, excludetype, year): + """Generates a C++ struct from a JSON description. + + Args: +@@ -302,8 +306,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, + """ + year = int(year) if year else datetime.now().year + head = HEAD % (year, schema_filename, description_filename) +- _GenerateH(basepath, output_root, head, namespace, schema, description) +- _GenerateCC(basepath, output_root, head, namespace, schema, description) ++ _GenerateH(basepath, output_root, head, namespace, schema, description, excludetype) ++ _GenerateCC(basepath, output_root, head, namespace, schema, description, excludetype) + + if __name__ == '__main__': + parser = optparse.OptionParser( +@@ -318,11 +322,17 @@ if __name__ == '__main__': + parser.add_option('-s', '--schema', help='path to the schema file, ' + 'mandatory.') + parser.add_option('-o', '--output', help='output filename, ') ++ parser.add_option('-x', '--excludetype', help='exclude type generator, ') + (opts, args) = parser.parse_args() + + if not opts.schema: + parser.error('You must specify a --schema.') + ++ if not opts.excludetype: ++ opts.excludetype = False ++ else: ++ opts.excludetype = True ++ + description_filename = os.path.normpath(args[0]) + root, ext = os.path.splitext(description_filename) + shortroot = opts.output if opts.output else os.path.split(root)[1] +@@ -339,4 +349,4 @@ if __name__ == '__main__': + schema = _Load(opts.schema) + description = _Load(description_filename) + GenerateStruct(basepath, output_root, opts.namespace, schema, description, +- description_filename, opts.schema) ++ description_filename, opts.schema, opts.excludetype, datetime.now().year) +diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/struct_generator.py +--- a/tools/json_to_struct/struct_generator.py ++++ b/tools/json_to_struct/struct_generator.py +@@ -30,20 +30,24 @@ def GenerateField(field_info): + else: + raise RuntimeError('Unknown field type "%s"' % type) + +-def GenerateStruct(type_name, schema): ++def GenerateStruct(excludetype, type_name, schema): + """Generate a string defining a structure containing the fields specified in + the schema list. + """ + lines = [] ++ if excludetype: ++ lines.append('struct %s;' % type_name) ++ return '\n'.join(lines) + '\n' ++ + lines.append('struct %s {' % type_name) + for field_info in schema: + if field_info['type'] == 'struct': +- lines.insert(0, GenerateStruct(field_info['type_name'], ++ lines.insert(0, GenerateStruct(excludetype, field_info['type_name'], + field_info['fields'])) + elif (field_info['type'] == 'array' + and field_info['contents']['type'] == 'struct'): + contents = field_info['contents'] +- lines.insert(0, GenerateStruct(contents['type_name'], ++ lines.insert(0, GenerateStruct(excludetype, contents['type_name'], + contents['fields'])) + lines.append(' ' + GenerateField(field_info) + ';') + lines.append('};') +diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py +--- a/tools/variations/fieldtrial_to_struct.py ++++ b/tools/variations/fieldtrial_to_struct.py +@@ -232,14 +232,14 @@ def main(arguments): + json_to_struct.GenerateStruct( + basepath, output_root, opts.namespace, schema, description, + os.path.split(description_filename)[1], os.path.split(opts.schema)[1], +- opts.year) ++ False, opts.year) + + # TODO(peilinwang) filter the schema by platform, form_factor, etc. + if opts.java: + json_to_struct.GenerateClass(basepath, output_root, opts.namespace, schema, + description, + os.path.split(description_filename)[1], +- os.path.split(opts.schema)[1], opts.year) ++ os.path.split(opts.schema)[1], False, opts.year) + + + if __name__ == '__main__': -- 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 d8e022c4..f43012c9 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -5,49 +5,67 @@ Subject: Add setting to clear data on exit License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/chrome_java_sources.gni | 1 + + .../java/res/xml/privacy_preferences.xml | 5 ++ .../chrome/browser/ChromeTabbedActivity.java | 7 +- - .../ClearBrowsingDataFragment.java | 12 +++ - .../ClearBrowsingDataFragmentAtStart.java | 74 +++++++++++++++++++ - .../ClearBrowsingDataTabsFragment.java | 7 +- - .../privacy/settings/PrivacySettings.java | 2 +- + .../browsing_data/BrowsingDataBridge.java | 12 +-- + .../ClearBrowsingDataFragment.java | 31 ++++++-- + .../ClearBrowsingDataFragmentAtStart.java | 79 +++++++++++++++++++ chrome/app/settings_strings.grdp | 10 +++ - .../browsing_data/browsing_data_bridge.cc | 2 +- + .../browsing_data/browsing_data_bridge.cc | 17 +++- .../chrome_browsing_data_lifetime_manager.cc | 22 +++++- .../chrome_browsing_data_remover_delegate.cc | 15 ++++ - .../api/settings_private/prefs_util.cc | 17 +++++ + .../api/settings_private/prefs_util.cc | 17 ++++ .../browser/profiles/ProfileManagerUtils.java | 5 ++ .../profiles/android/profile_manager_utils.cc | 5 ++ chrome/browser/profiles/profile_manager.cc | 15 +++- chrome/browser/profiles/profile_manager.h | 2 + .../clear_browsing_data_dialog.html | 44 +++++++++++ .../clear_browsing_data_dialog.ts | 2 + - .../strings/android_chrome_strings.grd | 5 +- + .../strings/android_chrome_strings.grd | 3 + + .../Add-setting-to-clear-data-on-exit.grdp | 9 +++ .../settings_localized_strings_provider.cc | 1 + .../content/browsing_data_helper.cc | 9 ++- + components/browsing_data/core/BUILD.gn | 5 ++ .../core/browsing_data_policies_utils.cc | 20 ++--- .../core/browsing_data_policies_utils.h | 11 +++ .../browsing_data/core/browsing_data_utils.cc | 31 ++++++++ - .../core/clear_browsing_data_tab.h | 2 +- - components/browsing_data/core/pref_names.cc | 17 +++++ + .../core/clear_browsing_data_tab.h | 3 +- + components/browsing_data/core/pref_names.cc | 17 ++++ components/browsing_data/core/pref_names.h | 10 +++ .../search_engines/template_url_service.cc | 1 + content/browser/dips/dips_service_impl.cc | 2 +- content/browser/storage_partition_impl.cc | 1 + .../public/browser/browsing_data_remover.h | 7 +- - 30 files changed, 336 insertions(+), 23 deletions(-) + 32 files changed, 386 insertions(+), 33 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java + create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp 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 -@@ -316,6 +316,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", +@@ -322,6 +322,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", + "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", + "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", + "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java", "java/src/org/chromium/chrome/browser/browsing_data/ConfirmImportantSitesDialogFragment.java", "java/src/org/chromium/chrome/browser/browsing_data/OtherFormsOfHistoryDialogFragment.java", "java/src/org/chromium/chrome/browser/browsing_data/UrlFilter.java", +diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml +--- a/chrome/android/java/res/xml/privacy_preferences.xml ++++ b/chrome/android/java/res/xml/privacy_preferences.xml +@@ -19,6 +19,11 @@ found in the LICENSE file. + android:title="@string/clear_browsing_data_title" + android:summary="@string/clear_browsing_data_summary" + android:fragment="org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment" /> ++ + mPageTitle = new ObservableSupplierImpl<>(); ++ protected final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); + + /** + * @return All available {@link DialogOption} entries. +@@ -361,7 +367,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + } + + /** Called when browsing data is about to be cleared. */ +- private void onClearBrowsingData() { ++ protected void onClearBrowsingData() { + RecordUserAction.record("ClearBrowsingData_AdvancedTab"); + + if (ChromeFeatureList.sClearBrowsingDataAndroidSurvey.isEnabled()) { +@@ -451,6 +457,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + BrowsingDataBridge.getForProfile(getProfile()) + .setBrowsingDataDeletionPreference( + ClearBrowsingDataFragment.getDataType(item.getOption()), ++ getClearBrowsingDataTabType(), + item.isSelected()); + } + +@@ -458,8 +465,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + .setBrowsingDataDeletionTimePeriod(mLastSelectedTimePeriod); + } + ++ protected int getClearBrowsingDataTabType() { ++ return ClearBrowsingDataTab.ADVANCED; ++ } ++ + /** Returns the list of supported {@link DialogOption}. */ +- private List getDialogOptions(Bundle fragmentArgs) { ++ protected List getDialogOptions(Bundle fragmentArgs) { + String referrer = + fragmentArgs.getString( + ClearBrowsingDataFragment.CLEAR_BROWSING_DATA_REFERRER, null); +@@ -485,6 +496,10 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + DialogOption.CLEAR_SITE_SETTINGS); + } + protected boolean shouldClearBrowsingData() { + return true; @@ -99,7 +195,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C /** * Decides whether a given dialog option should be selected when the dialog is initialized. * -@@ -555,6 +565,7 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme +@@ -493,7 +508,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + */ + private boolean isOptionSelectedByDefault(@DialogOption int option) { + return BrowsingDataBridge.getForProfile(getProfile()) +- .getBrowsingDataDeletionPreference(getDataType(option)); ++ .getBrowsingDataDeletionPreference(getDataType(option), getClearBrowsingDataTabType()); + } + + /** +@@ -561,6 +576,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment * options. */ private void onClearButtonClicked() { @@ -107,7 +212,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C if (shouldShowImportantSitesDialog()) { showImportantDialogThenClear(); return; -@@ -585,6 +596,7 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme +@@ -591,6 +607,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment Button clearButton = (Button) getView().findViewById(R.id.clear_button); boolean isEnabled = !getSelectedOptions().isEmpty(); clearButton.setEnabled(isEnabled); @@ -115,11 +220,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C } private int getSpinnerIndex( +@@ -666,7 +683,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + .getBoolean(Pref.ALLOW_DELETING_BROWSER_HISTORY)) { + enabled = false; + browsingDataBridge.setBrowsingDataDeletionPreference( +- getDataType(DialogOption.CLEAR_HISTORY), false); ++ getDataType(DialogOption.CLEAR_HISTORY), getClearBrowsingDataTabType(), false); + } + + // Disable tabs closure if the user is in multi-window mode. +@@ -696,8 +713,12 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment + mSigninManager.addSignInStateObserver(this); + + setHasOptionsMenu(true); ++ ++ onCustomizePreferences(savedInstanceState, rootKey); + } + ++ protected void onCustomizePreferences(Bundle savedInstanceState, String rootKey) {} ++ + @Override + public ObservableSupplier getPageTitle() { + return mPageTitle; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java -@@ -0,0 +1,74 @@ +@@ -0,0 +1,79 @@ +/* + This file is part of Bromite. + @@ -174,6 +301,11 @@ new file mode 100644 + } + + @Override ++ protected void onCustomizePreferences(Bundle savedInstanceState, String rootKey) { ++ mPageTitle.set(getString(R.string.clear_browsing_data_at_start_title)); ++ } ++ ++ @Override + protected int getClearBrowsingDataTabType() { + return ClearBrowsingDataTab.AT_START; + } @@ -186,7 +318,7 @@ new file mode 100644 + } + + @Override -+ protected void onClearBrowsingData() { ++ public void onClearBrowsingData() { + } + + @Override @@ -194,53 +326,10 @@ new file mode 100644 + return false; + } +} -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataTabsFragment.java -@@ -32,7 +32,7 @@ import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - */ - public class ClearBrowsingDataTabsFragment extends Fragment - implements ProfileDependentSetting, EmbeddableSettingsPage { -- public static final int CBD_TAB_COUNT = 2; -+ public static final int CBD_TAB_COUNT = 3; - - private Profile mProfile; - private ClearBrowsingDataFetcher mFetcher; -@@ -115,6 +115,8 @@ public class ClearBrowsingDataTabsFragment extends Fragment - return getActivity().getString(R.string.clear_browsing_data_basic_tab_title); - case 1: - return getActivity().getString(R.string.prefs_section_advanced); -+ case 2: -+ return getActivity().getString(R.string.clear_browsing_data_atstart_tab_title); - default: - throw new RuntimeException("invalid position: " + position); - } -@@ -166,6 +168,9 @@ public class ClearBrowsingDataTabsFragment extends Fragment - case 1: - fragment = new ClearBrowsingDataFragmentAdvanced(); - break; -+ case 2: -+ fragment = new ClearBrowsingDataFragmentAtStart(); -+ break; - default: - throw new RuntimeException("invalid position: " + position); - } -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 -@@ -336,7 +336,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - thirdPartyCookies.getTitle().toString()); - } - -- if (QuickDeleteController.isQuickDeleteFollowupEnabled()) { -+ if (((false)) && QuickDeleteController.isQuickDeleteFollowupEnabled()) { - Preference clearBrowsingDataPreference = findPreference(PREF_CLEAR_BROWSING_DATA); - Preference clearBrowsingDataAdvancedPreference = - findPreference(PREF_CLEAR_BROWSING_DATA_ADVANCED); 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 -@@ -2220,6 +2220,16 @@ +@@ -2203,6 +2203,16 @@ Delete browsing data @@ -260,15 +349,58 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -304,7 +304,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab(JNIEnv* env, - Profile* profile, - jint tab_index) { - DCHECK_GE(tab_index, 0); -- DCHECK_LT(tab_index, 2); -+ DCHECK_LT(tab_index, 3); - GetPrefService(profile)->SetInteger( - browsing_data::prefs::kLastClearBrowsingDataTab, tab_index); +@@ -70,6 +70,15 @@ PrefService* GetPrefService(Profile* profile) { + return profile->GetOriginalProfile()->GetPrefs(); } + ++browsing_data::ClearBrowsingDataTab ToTabEnum(jint clear_browsing_data_tab) { ++ DCHECK_GE(clear_browsing_data_tab, 0); ++ DCHECK_LE(clear_browsing_data_tab, ++ static_cast(browsing_data::ClearBrowsingDataTab::MAX_VALUE)); ++ ++ return static_cast( ++ clear_browsing_data_tab); ++} ++ + void OnBrowsingDataModelBuilt(JNIEnv* env, + const ScopedJavaGlobalRef& java_callback, + std::unique_ptr model) { +@@ -222,7 +231,8 @@ static void JNI_BrowsingDataBridge_MarkOriginAsImportantForTesting( + static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( + JNIEnv* env, + Profile* profile, +- jint data_type) { ++ jint data_type, ++ jint clear_browsing_data_tab) { + DCHECK_GE(data_type, 0); + DCHECK_LE(data_type, + static_cast(browsing_data::BrowsingDataType::MAX_VALUE)); +@@ -234,7 +244,7 @@ static jboolean JNI_BrowsingDataBridge_GetBrowsingDataDeletionPreference( + std::string pref; + if (!browsing_data::GetDeletionPreferenceFromDataType( + static_cast(data_type), +- browsing_data::ClearBrowsingDataTab::ADVANCED, &pref)) { ++ ToTabEnum(clear_browsing_data_tab), &pref)) { + return false; + } + +@@ -245,6 +255,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( + JNIEnv* env, + Profile* profile, + jint data_type, ++ jint clear_browsing_data_tab, + jboolean value) { + DCHECK_GE(data_type, 0); + DCHECK_LE(data_type, +@@ -253,7 +264,7 @@ static void JNI_BrowsingDataBridge_SetBrowsingDataDeletionPreference( + std::string pref; + if (!browsing_data::GetDeletionPreferenceFromDataType( + static_cast(data_type), +- browsing_data::ClearBrowsingDataTab::ADVANCED, &pref)) { ++ ToTabEnum(clear_browsing_data_tab), &pref)) { + return; + } + diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc @@ -311,7 +443,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc -@@ -355,6 +355,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -360,6 +360,7 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( uint64_t origin_type_mask, base::OnceCallback callback) { CHECK(((remove_mask & @@ -319,7 +451,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); -@@ -462,6 +463,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -467,6 +468,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -329,7 +461,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -570,6 +574,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -575,6 +579,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()) { @@ -341,7 +473,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -598,9 +607,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -603,9 +612,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -355,7 +487,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1281,6 +1294,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1309,6 +1322,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -425,12 +557,12 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1427,6 +1427,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1431,6 +1431,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } +void ProfileManager::RemoveBrowsingDataAtStart() { -+ base::ranges::for_each( ++ std::ranges::for_each( + GetLoadedProfiles(), + [](Profile* profile) { + auto* browsing_data_lifetime_manager = @@ -445,7 +577,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_ || -@@ -2109,7 +2122,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2117,7 +2130,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { Profile* original_profile = profile->GetOriginalProfile(); // Do nothing if the closed window is not the last window of the same profile. for (Browser* browser_iter : *BrowserList::GetInstance()) { @@ -457,7 +589,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h --- a/chrome/browser/profiles/profile_manager.h +++ b/chrome/browser/profiles/profile_manager.h -@@ -195,6 +195,8 @@ class ProfileManager : public Profile::Delegate { +@@ -215,6 +215,8 @@ class ProfileManager : public Profile::Delegate { // profiles. std::vector GetLoadedProfiles() const; @@ -542,16 +674,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 - Delete browsing data - - -- Delete history, cookies, site data, cache… -+ Delete immediately or choose when to delete browsing data - - - Deleted Chrome data -@@ -1623,6 +1623,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1570,6 +1570,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>. @@ -561,10 +684,24 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. +diff --git a/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp +new file mode 100644 +--- /dev/null ++++ b/chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-setting-to-clear-data-on-exit.grdp +@@ -0,0 +1,9 @@ ++ ++ ++ ++ Clear the data at opening ++ ++ ++ Choose what to delete when the browser opens ++ ++ 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 -@@ -1895,6 +1895,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1911,6 +1911,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -591,6 +728,28 @@ diff --git a/components/browsing_data/content/browsing_data_helper.cc b/componen return predicate.Run(url); } +diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/core/BUILD.gn +--- a/components/browsing_data/core/BUILD.gn ++++ b/components/browsing_data/core/BUILD.gn +@@ -62,6 +62,10 @@ if (is_android) { + visibility = [ ":*" ] + sources = [ "browsing_data_utils.h" ] + } ++ java_cpp_enum("clear_browsing_data_tab_javagen") { ++ visibility = [ ":*" ] ++ sources = [ "clear_browsing_data_tab.h" ] ++ } + java_cpp_enum("cookie_or_cache_deletion_choice_javagen") { + # External code should depend on ":java" instead. + visibility = [ ":*" ] +@@ -71,6 +75,7 @@ if (is_android) { + android_library("java") { + srcjar_deps = [ + ":browsing_data_utils_javagen", ++ ":clear_browsing_data_tab_javagen", + ":cookie_or_cache_deletion_choice_javagen", + ] + deps = [ "//third_party/androidx:androidx_annotation_annotation_java" ] diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc @@ -691,11 +850,12 @@ diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/b diff --git a/components/browsing_data/core/clear_browsing_data_tab.h b/components/browsing_data/core/clear_browsing_data_tab.h --- a/components/browsing_data/core/clear_browsing_data_tab.h +++ b/components/browsing_data/core/clear_browsing_data_tab.h -@@ -18,7 +18,7 @@ namespace browsing_data { - // - // A Java counterpart will be generated for this enum. - // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.browsing_data +@@ -13,7 +13,8 @@ namespace browsing_data { + // value for dialogs without separate tabs is advanced. + // TODO(dullweber): Maybe rename "ADVANCED" to "DEFAULT" because it is used in + // multiple places without a differentiation between advanced and basic. -enum class ClearBrowsingDataTab { BASIC, ADVANCED, MAX_VALUE = ADVANCED }; ++// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.browsing_data +enum class ClearBrowsingDataTab { BASIC, ADVANCED, AT_START, MAX_VALUE = AT_START }; } // namespace browsing_data @@ -750,7 +910,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 -@@ -778,6 +778,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -810,6 +810,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 && @@ -761,19 +921,19 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/content/browser/dips/dips_service_impl.cc b/content/browser/dips/dips_service_impl.cc --- a/content/browser/dips/dips_service_impl.cc +++ b/content/browser/dips/dips_service_impl.cc -@@ -198,7 +198,7 @@ class StateClearer : public content::BrowsingDataRemover::Observer { - remove_mask &= ~content::BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; +@@ -221,7 +221,7 @@ class StateClearer : public BrowsingDataRemover::Observer { + remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), -- remove_mask | -+ remove_mask | content::BrowsingDataRemover::DATA_TYPE_SKIP_SSL_HOST_STATE | - content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS, - content::BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | - content::BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB, +- remove_mask | BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS, ++ remove_mask | content::BrowsingDataRemover::DATA_TYPE_SKIP_SSL_HOST_STATE | BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS, + BrowsingDataRemover::ORIGIN_TYPE_UNPROTECTED_WEB | + BrowsingDataRemover::ORIGIN_TYPE_PROTECTED_WEB, + std::move(filter), clearer); diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1529,6 +1529,7 @@ void StoragePartitionImpl::Initialize( +@@ -1527,6 +1527,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index bdd59487..2d1ff21c 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 @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -337,6 +337,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -347,6 +347,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -725,6 +728,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -738,6 +741,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -168,7 +168,7 @@ 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 -@@ -340,6 +340,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -343,6 +343,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabDragDropAndroid, &kToolbarPhoneCleanup, &kTabGroupCreationDialogAndroid, @@ -179,7 +179,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 -@@ -407,6 +407,8 @@ public abstract class ChromeFeatureList { +@@ -410,6 +410,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -188,7 +188,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -761,6 +763,8 @@ public abstract class ChromeFeatureList { +@@ -773,6 +775,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -196,8 +196,8 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + newCachedFlag(SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS, false); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = - newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, false); -@@ -941,6 +945,7 @@ public abstract class ChromeFeatureList { + newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); +@@ -959,6 +963,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sTraceBinderIpc, sUseChimeAndroidSdk, @@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1775,6 +1775,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1722,6 +1722,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -221,7 +221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3314,6 +3320,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3281,6 +3287,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -272,10 +272,10 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -213,6 +222,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment - mDelegate.requestRestart(getActivity()); +@@ -214,6 +223,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); + mDelegate.requestRestart(getActivity()); + } else if (PREF_ALWAYS_SHOW_CONTEXTMENU_ON_LINKS.equals(preference.getKey())) { + mShowAlwaysContextMenuOnLinksDelegate.setValue((Boolean) newValue); + mDelegate.requestRestart(getActivity()); @@ -344,7 +344,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc -@@ -62,6 +62,7 @@ +@@ -63,6 +63,7 @@ #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/page/chrome_client.h" @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" -@@ -502,6 +503,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -503,6 +504,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( bool is_trusted, base::TimeTicks platform_time_stamp, KURL completed_url) { @@ -370,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -582,6 +594,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -585,6 +597,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( request.GetReferrerPolicy())); } @@ -386,8 +386,8 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -636,7 +657,7 @@ AtomicString HTMLAnchorElementBase::interestAction() const { - return g_empty_atom; +@@ -627,7 +648,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() { + html_names::kInteresttargetAttr); } -void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { @@ -395,7 +395,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -732,13 +753,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -723,13 +744,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { return; } @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third // We distinguish single/double click with some modifiers. // See the comment of `EventHandler.delayed_navigation_task_handle_`. auto task_handle = PostDelayedCancellableTask( -@@ -748,7 +768,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -739,7 +759,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -427,15 +427,15 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_party/blink/renderer/core/html/html_anchor_element.h --- a/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h -@@ -117,6 +117,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, - AtomicString interestAction() const override; +@@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, + Element* interestTargetElement() override; void Trace(Visitor*) const override; + void HandleClick(MouseEvent&, bool do_not_show_context_menu = false); protected: HTMLAnchorElementBase(const QualifiedName& tag_name, Document&); -@@ -148,7 +149,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, +@@ -143,7 +144,11 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, bool is_trusted, base::TimeTicks platform_time_stamp, KURL); @@ -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 -@@ -196,14 +196,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -197,14 +197,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(); } -@@ -427,7 +429,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -428,7 +430,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, -@@ -450,6 +453,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -451,6 +454,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -551,7 +551,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Clear any previously set cached results if we are resetting the hit test // result. image_selection_cached_result_ = nullptr; -@@ -793,11 +806,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -782,11 +795,13 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 8b3aee18..b92919da 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -35,7 +35,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc --- a/chrome/browser/engagement/important_sites_util.cc +++ b/chrome/browser/engagement/important_sites_util.cc -@@ -33,6 +33,7 @@ +@@ -32,6 +32,7 @@ #include "components/prefs/scoped_user_pref_update.h" #include "components/site_engagement/content/site_engagement_score.h" #include "components/site_engagement/content/site_engagement_service.h" @@ -43,7 +43,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ #include "components/site_engagement/core/mojom/site_engagement_details.mojom.h" #include "components/webapps/browser/banners/app_banner_settings_helper.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" -@@ -350,6 +351,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( +@@ -349,6 +350,10 @@ void ImportantSitesUtil::RegisterProfilePrefs( // static std::set ImportantSitesUtil::GetInstalledRegisterableDomains( Profile* profile) { @@ -54,7 +54,7 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ std::set installed_origins = GetOriginsWithInstalledWebApps(profile); std::set registerable_domains; -@@ -364,6 +369,10 @@ std::vector +@@ -363,6 +368,10 @@ std::vector ImportantSitesUtil::GetImportantRegisterableDomains(Profile* profile, size_t max_results) { SCOPED_UMA_HISTOGRAM_TIMER("Storage.ImportantSites.GenerationTime"); @@ -76,7 +76,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components #include "components/feature_engagement/internal/availability_model_impl.h" #include "components/feature_engagement/internal/blocked_iph_features.h" #include "components/feature_engagement/internal/chrome_variations_configuration.h" -@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl( +@@ -236,6 +237,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { @@ -88,7 +88,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc --- a/components/feature_engagement/public/feature_configurations.cc +++ b/components/feature_engagement/public/feature_configurations.cc -@@ -6,6 +6,7 @@ +@@ -11,6 +11,7 @@ #include "base/strings/string_util.h" #include "build/build_config.h" @@ -96,7 +96,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co #include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/feature_constants.h" -@@ -113,6 +114,12 @@ std::optional GetClientSideFeatureConfig( +@@ -118,6 +119,12 @@ std::optional GetClientSideFeatureConfig( } #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 279cf1eb..c376258c 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; -@@ -458,8 +459,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -442,8 +443,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java -@@ -91,4 +91,8 @@ public class SettingsUtils { +@@ -93,4 +93,8 @@ public class SettingsUtils { ToolbarUtils.setOverflowMenuVisibility(toolbar, visibility); return true; } diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index e6f755d8..6bb8d1b8 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 -@@ -480,6 +480,10 @@ vars = { +@@ -476,6 +476,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '00fe003dac355b979f36157f9407c7c46448958e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1833,6 +1837,9 @@ deps = { +@@ -1842,6 +1846,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -147,8 +147,8 @@ new file mode 100644 diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py --- a/build/linux/unbundle/replace_gn_files.py +++ b/build/linux/unbundle/replace_gn_files.py -@@ -56,6 +56,7 @@ REPLACEMENTS = { - 'libavif': 'third_party/libavif/BUILD.gn', +@@ -55,6 +55,7 @@ REPLACEMENTS = { + 'libaom': 'third_party/libaom/BUILD.gn', 'libdrm': 'third_party/libdrm/BUILD.gn', 'libjpeg': 'third_party/libjpeg.gni', + 'libjxl' : 'third_party/libjxl/BUILD.gn', @@ -207,9 +207,9 @@ diff --git a/cc/tiles/image_decode_cache.h b/cc/tiles/image_decode_cache.h diff --git a/content/common/content_constants_internal.cc b/content/common/content_constants_internal.cc --- a/content/common/content_constants_internal.cc +++ b/content/common/content_constants_internal.cc -@@ -19,13 +19,16 @@ const int kTraceEventGpuProcessSortIndex = -1; - - const int kTraceEventRendererMainThreadSortIndex = -1; +@@ -11,13 +11,16 @@ namespace content { + // 20MiB + const size_t kMaxLengthOfDataURLString = 1024 * 1024 * 20; +const char kFrameAcceptHeaderValue_Prefix[] = + "text/html,application/xhtml+xml,application/xml;q=0.9,"; @@ -231,8 +231,8 @@ diff --git a/content/common/content_constants_internal.cc b/content/common/conte diff --git a/content/common/content_constants_internal.h b/content/common/content_constants_internal.h --- a/content/common/content_constants_internal.h +++ b/content/common/content_constants_internal.h -@@ -39,7 +39,8 @@ CONTENT_EXPORT extern const int kTraceEventGpuProcessSortIndex; - CONTENT_EXPORT extern const int kTraceEventRendererMainThreadSortIndex; +@@ -17,7 +17,8 @@ namespace content { + extern const size_t kMaxLengthOfDataURLString; // Accept header used for frame requests. -CONTENT_EXPORT extern const char kFrameAcceptHeaderValue[]; @@ -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 -@@ -137,6 +137,9 @@ declare_args() { +@@ -142,6 +142,9 @@ declare_args() { # `enable_libaom` should likely also be overriddent to false. enable_av1_decoder = enable_dav1d_decoder @@ -464,7 +464,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4690,6 +4690,7 @@ domain Emulation +@@ -4652,6 +4652,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -475,7 +475,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc -@@ -497,10 +497,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( +@@ -498,10 +498,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( String header(network_utils::ImageAcceptHeader()); for (String type : *disabled_image_types) { // The header string is expected to be like @@ -489,7 +489,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -844,6 +844,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -845,6 +845,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -605,7 +605,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2398,6 +2398,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2394,6 +2394,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 += [ -@@ -2444,6 +2448,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2440,6 +2444,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", @@ -689,7 +689,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third + if (enable_av1_decoder) { sources += [ - "avif/avif_image_decoder.cc", + "avif/crabbyavif_image_decoder.cc", 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 @@ -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" -@@ -56,6 +57,10 @@ +@@ -55,6 +56,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 { -@@ -83,6 +88,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { +@@ -82,6 +87,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { if (image_extension == "avif") { return cc::ImageType::kAVIF; } @@ -724,7 +724,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -204,6 +214,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -201,6 +211,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -737,10 +737,10 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -319,6 +335,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( - alpha_option, high_bit_depth_decoding_option, color_behavior, - aux_image, max_decoded_bytes, animation_option); - } +@@ -310,6 +326,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( + decoder = std::make_unique( + alpha_option, high_bit_depth_decoding_option, color_behavior, aux_image, + max_decoded_bytes, animation_option); +#endif +#if BUILDFLAG(ENABLE_JXL_DECODER) + } else if (base::FeatureList::IsEnabled(blink::features::kJXL) && @@ -2204,7 +2204,7 @@ new file mode 100644 diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/blink/tools/commit_stats/git-dirs.txt --- a/third_party/blink/tools/commit_stats/git-dirs.txt +++ b/third_party/blink/tools/commit_stats/git-dirs.txt -@@ -34,6 +34,7 @@ +@@ -33,6 +33,7 @@ ./third_party/angle/third_party/rapidjson/src,ANGLE ./third_party/angle/third_party/VK-GL-CTS/src,ANGLE ./third_party/angle/third_party/glmark2/src,ANGLE @@ -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 -@@ -5454,6 +5454,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5510,6 +5510,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 ] @@ -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 -@@ -20910,6 +20910,7 @@ from previous Chrome versions. +@@ -14593,6 +14593,7 @@ from previous Chrome versions. @@ -2657,7 +2657,7 @@ diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums diff --git a/tools/metrics/histograms/metadata/blink/enums.xml b/tools/metrics/histograms/metadata/blink/enums.xml --- a/tools/metrics/histograms/metadata/blink/enums.xml +++ b/tools/metrics/histograms/metadata/blink/enums.xml -@@ -214,7 +214,7 @@ chromium-metrics-reviews@google.com. +@@ -239,7 +239,7 @@ chromium-metrics-reviews@google.com. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index c532b36c..bc6548a1 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -291,6 +291,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -297,6 +297,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -560,25 +567,6 @@ static String ExtractWebGLContextCreationError( +@@ -566,25 +573,6 @@ static String ExtractWebGLContextCreationError( const Platform::GraphicsInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -638,6 +626,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -644,6 +632,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::ContextType context_type, Platform::GraphicsInfo* graphics_info) { @@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.h -@@ -1926,6 +1926,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1936,6 +1936,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 2edaf11e..4009e2b6 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -210,7 +210,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc -@@ -13,6 +13,8 @@ +@@ -14,6 +14,8 @@ #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" @@ -219,7 +219,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" -@@ -284,6 +286,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -286,6 +288,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -237,7 +237,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc -@@ -18,6 +18,8 @@ +@@ -19,6 +19,8 @@ #include "third_party/blink/public/common/privacy_budget/identifiable_surface.h" #include "third_party/blink/public/common/privacy_budget/identifiable_token_builder.h" #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" @@ -246,7 +246,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" -@@ -1031,6 +1033,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1033,6 +1035,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 95f47a12..b70484c8 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -10,6 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/network/reporting_service_proxy.cc | 3 +++ .../renderer_host/render_frame_host_impl.cc | 6 ------ .../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- + .../dip/document_isolation_policy_reporter.cc | 2 ++ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + .../Allow-building-without-enable_reporting.inc | 2 ++ @@ -25,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_observer.cc | 3 +-- - 21 files changed, 61 insertions(+), 26 deletions(-) + 22 files changed, 63 insertions(+), 26 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Allow-building-without-enable_reporting.inc diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chrome_report_sender.cc @@ -42,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1470,6 +1470,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1473,6 +1473,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -50,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostImplWithAction( -@@ -1483,6 +1484,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1486,6 +1487,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -107,7 +108,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse #include "content/browser/service_worker/service_worker_host.h" #include "content/browser/worker_host/dedicated_worker_host.h" #include "content/browser/worker_host/shared_worker_host.h" -@@ -190,12 +191,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { +@@ -222,12 +223,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { const std::string& group, const std::string& type, base::Value::Dict body) { @@ -125,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -15258,12 +15258,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15702,12 +15702,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -215,6 +216,23 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c } } // namespace content +diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc +--- a/content/browser/security/dip/document_isolation_policy_reporter.cc ++++ b/content/browser/security/dip/document_isolation_policy_reporter.cc +@@ -94,11 +94,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( + } + body_to_pass.Set("disposition", disposition); + ++#if BUILDFLAG(ENABLE_REPORTING) + if (auto* storage_partition = storage_partition_.get()) { + storage_partition->GetNetworkContext()->QueueReport( + kType, *endpoint, context_url_, reporting_source_, + network_anonymization_key_, std::move(body_to_pass)); + } ++#endif + } + } + 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 @@ -255,7 +273,7 @@ new file mode 100644 diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_header_parser.cc --- a/net/reporting/reporting_header_parser.cc +++ b/net/reporting/reporting_header_parser.cc -@@ -332,6 +332,7 @@ void ReportingHeaderParser::ProcessParsedReportingEndpointsHeader( +@@ -337,6 +337,7 @@ void ReportingHeaderParser::ProcessParsedReportingEndpointsHeader( const NetworkAnonymizationKey& network_anonymization_key, const url::Origin& origin, base::flat_map header) { @@ -282,7 +300,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -468,14 +468,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -470,14 +470,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -314,7 +332,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1557,7 +1557,6 @@ mojom("mojom") { +@@ -1590,7 +1590,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -325,7 +343,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1208,6 +1208,7 @@ interface NetworkContext { +@@ -1205,6 +1205,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -333,7 +351,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1215,6 +1216,7 @@ interface NetworkContext { +@@ -1212,6 +1213,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -341,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1225,6 +1227,7 @@ interface NetworkContext { +@@ -1222,6 +1224,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`. @@ -352,15 +370,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc --- a/third_party/blink/renderer/core/frame/csp/content_security_policy.cc +++ b/third_party/blink/renderer/core/frame/csp/content_security_policy.cc -@@ -30,6 +30,7 @@ +@@ -31,6 +31,7 @@ #include #include +#include "net/net_buildflags.h" #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" - #include "base/ranges/algorithm.h" -@@ -1284,6 +1285,7 @@ void ContentSecurityPolicy::ReportViolation( + #include "services/network/public/cpp/web_sandbox_flags.h" +@@ -1295,6 +1296,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -368,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1291,6 +1293,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1302,6 +1304,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -379,7 +397,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c 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 -@@ -46,6 +46,7 @@ +@@ -47,6 +47,7 @@ #include "build/build_config.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/system/message_pipe.h" @@ -387,7 +405,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2791,9 +2792,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2796,9 +2797,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -402,7 +420,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 -@@ -36,6 +36,7 @@ +@@ -37,6 +37,7 @@ #include "base/time/time.h" #include "base/unguessable_token.h" #include "build/build_config.h" @@ -410,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/metrics/public/cpp/ukm_source_id.h" -@@ -660,8 +661,9 @@ class CORE_EXPORT LocalFrame final +@@ -659,8 +660,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; @@ -439,17 +457,17 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ +#if BUILDFLAG(ENABLE_REPORTING) reporting_service_(&context), +#endif - receiver_(this, &context) {} + receivers_(this, &context) {} // static -@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const { +@@ -125,7 +128,9 @@ void ReportingContext::Trace(Visitor* visitor) const { visitor->Trace(observers_); visitor->Trace(report_buffer_); visitor->Trace(execution_context_); +#if BUILDFLAG(ENABLE_REPORTING) visitor->Trace(reporting_service_); +#endif - visitor->Trace(receiver_); + visitor->Trace(receivers_); Supplement::Trace(visitor); } @@ -148,6 +153,7 @@ void ReportingContext::CountReport(Report* report) { @@ -476,7 +494,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const String& type = report->type(); if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash || type == ReportType::kDeprecation || -@@ -246,6 +254,7 @@ void ReportingContext::SendToReportingAPI(Report* report, +@@ -254,6 +262,7 @@ void ReportingContext::SendToReportingAPI(Report* report, url, endpoint, body->featureId(), body->disposition(), body->message(), body->sourceFile(), line_number, column_number); } @@ -517,8 +535,8 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p reporting_service_; +#endif - HeapMojoReceiver receiver_; - }; + // There might be up to two ReportingObservers stored here: one that is called + // from the CrossOriginEmbedderPolicyReporter and one that is called from the diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc --- a/third_party/blink/renderer/core/frame/reporting_observer.cc +++ b/third_party/blink/renderer/core/frame/reporting_observer.cc diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 306c382d..30af6ffb 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 -@@ -774,7 +774,6 @@ if (current_toolchain == default_toolchain) { +@@ -784,7 +784,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", @@ -34,7 +34,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java -@@ -91,7 +91,6 @@ public class ChromeFeedbackCollector extends FeedbackCollectorSetManagedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector); @@ -76,7 +76,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -459,7 +459,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -469,7 +469,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -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 -@@ -670,10 +670,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -675,10 +675,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( -@@ -1625,6 +1621,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1623,6 +1619,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -110,7 +110,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1178,10 +1178,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1181,10 +1181,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -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); -@@ -1962,9 +1958,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1970,9 +1966,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -134,7 +134,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc --- a/chrome/browser/ui/webui/managed_ui_handler.cc +++ b/chrome/browser/ui/webui/managed_ui_handler.cc -@@ -90,10 +90,6 @@ void ManagedUIHandler::AddObservers() { +@@ -89,10 +89,6 @@ void ManagedUIHandler::AddObservers() { auto domain = static_cast(i); policy_service->AddObserver(domain, this); } @@ -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 -@@ -578,10 +578,6 @@ bool ManagementUIHandler::managed() const { +@@ -595,10 +595,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -196,7 +196,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -49,10 +49,6 @@ void SupervisedUserService::Init() { +@@ -50,10 +50,6 @@ void SupervisedUserService::Init() { DCHECK(settings_service_->IsReady()); pref_change_registrar_.Init(&user_prefs_.get()); @@ -207,7 +207,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); } -@@ -138,6 +134,7 @@ SupervisedUserService::SupervisedUserService( +@@ -139,6 +135,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetActive(bool active) { @@ -218,7 +218,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc --- a/components/supervised_user/core/browser/supervised_user_utils.cc +++ b/components/supervised_user/core/browser/supervised_user_utils.cc -@@ -145,6 +145,7 @@ GURL NormalizeUrl(const GURL& url) { +@@ -300,6 +300,7 @@ GURL NormalizeUrl(const GURL& url) { } bool AreWebFilterPrefsDefault(const PrefService& pref_service) { @@ -229,11 +229,11 @@ 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 -@@ -196,4 +196,10 @@ bool IsKidFriendlyContentFeedAvailable() { - return base::FeatureList::IsEnabled(kKidFriendlyContentFeed); - } - -+SET_CROMITE_FEATURE_DISABLED(kKidFriendlyContentFeed); +@@ -171,4 +171,10 @@ BASE_FEATURE(kReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS, + "ReplaceSupervisionSystemCapabilitiesWithAccountCapabilitiesOnIOS", + base::FEATURE_DISABLED_BY_DEFAULT); + #endif ++ +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); +#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) +SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index c2018a10..d69d5d87 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 -@@ -1309,6 +1309,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1311,6 +1311,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( pipeline_controller_->OnSelectedVideoTrackChanged(selected); } @@ -22,7 +22,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +} + void WebMediaPlayerImpl::EnabledAudioTracksChanged( - const WebVector& enabled_track_ids) { + const std::vector& enabled_track_ids) { DCHECK(main_task_runner_->BelongsToCurrentThread()); @@ -3710,7 +3716,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); @@ -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; @@ -47,6 +47,6 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b + bool HasVideoNonEmptySize() const; + void EnabledAudioTracksChanged( - const WebVector& enabled_track_ids) override; + const std::vector& enabled_track_ids) override; void SelectedVideoTrackChanged( -- diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index 23300d41..a625a469 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrom diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java --- a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java +++ b/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/browser/partnercustomizations/PartnerBrowserCustomizations.java -@@ -210,7 +210,7 @@ public class PartnerBrowserCustomizations { +@@ -213,7 +213,7 @@ public class PartnerBrowserCustomizations { & ApplicationInfo.FLAG_SYSTEM) == 1 || !VersionInfo.isStableBuild(); @@ -55,7 +55,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java --- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java +++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java -@@ -72,6 +72,7 @@ public class TemplateUrl { +@@ -74,6 +74,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 42c18af7..da95fad1 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7900,6 +7900,13 @@ static_library("browser") { +@@ -7648,6 +7648,13 @@ static_library("browser") { } } @@ -109,20 +109,13 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/component_updater/registration.cc --- a/chrome/browser/component_updater/registration.cc +++ b/chrome/browser/component_updater/registration.cc -@@ -55,6 +55,7 @@ - #include "device/vr/buildflags/buildflags.h" - #include "ppapi/buildflags/buildflags.h" - #include "third_party/widevine/cdm/buildflags.h" -+#include "third_party/blink/public/common/features.h" - - #if BUILDFLAG(IS_WIN) - #if BUILDFLAG(GOOGLE_CHROME_BRANDING) -@@ -110,10 +111,19 @@ - #include "ui/aura/env.h" - #endif +@@ -118,10 +118,20 @@ + #include "chrome/browser/component_updater/wasm_tts_engine_component_installer.h" + #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) +#if BUILDFLAG(IS_ANDROID) +#include "components/component_updater/installer_policies/fonts_pack_component_installer.h" ++#include "third_party/blink/public/common/features.h" +#endif + namespace component_updater { @@ -154,7 +147,7 @@ new file mode 100644 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -295,6 +295,9 @@ static_library("renderer") { +@@ -293,6 +293,9 @@ static_library("renderer") { "//ppapi/shared_impl", ] @@ -483,7 +476,7 @@ diff --git a/components/services/font/font_service_app.h b/components/services/f diff --git a/components/services/font/public/cpp/font_loader.cc b/components/services/font/public/cpp/font_loader.cc --- a/components/services/font/public/cpp/font_loader.cc +++ b/components/services/font/public/cpp/font_loader.cc -@@ -63,6 +63,17 @@ SkStreamAsset* FontLoader::openStream(const FontIdentity& identity) { +@@ -82,6 +82,17 @@ SkStreamAsset* FontLoader::openStream(const FontIdentity& identity) { } } @@ -504,7 +497,7 @@ diff --git a/components/services/font/public/cpp/font_loader.cc b/components/ser diff --git a/components/services/font/public/cpp/font_loader.h b/components/services/font/public/cpp/font_loader.h --- a/components/services/font/public/cpp/font_loader.h +++ b/components/services/font/public/cpp/font_loader.h -@@ -47,6 +47,7 @@ class FontLoader : public SkFontConfigInterface, +@@ -52,6 +52,7 @@ class FontLoader : public SkFontConfigInterface, SkString* out_family_name, SkFontStyle* out_style) override; SkStreamAsset* openStream(const FontIdentity& identity) override; @@ -607,7 +600,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -2505,6 +2505,17 @@ source_set("browser") { +@@ -2524,6 +2524,17 @@ source_set("browser") { ] } @@ -625,7 +618,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn if (is_linux || is_chromeos) { sources -= [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] -@@ -2547,6 +2558,13 @@ source_set("browser") { +@@ -2566,6 +2577,13 @@ source_set("browser") { ] } @@ -654,7 +647,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "content/browser/font_service.h" // nogncheck -@@ -341,6 +346,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -343,6 +348,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( } #endif @@ -684,11 +677,11 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn + if (is_win) { sources += [ - "dwrite_font_proxy/dwrite_font_proxy_init_impl_win.cc", + "child_process_sandbox_support_impl_win.cc", diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn -@@ -353,6 +353,10 @@ target(link_target_type, "renderer") { +@@ -355,6 +355,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } @@ -726,7 +719,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer using blink::Platform; using blink::WebAudioDevice; using blink::WebAudioLatencyHint; -@@ -185,6 +202,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { +@@ -184,6 +201,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { NOTREACHED(); } @@ -764,7 +757,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer } // namespace //------------------------------------------------------------------------------ -@@ -198,18 +246,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( +@@ -197,18 +245,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( is_locked_to_site_(false), main_thread_scheduler_(main_thread_scheduler), next_frame_sink_id_(uint32_t{std::numeric_limits::max()} + 1) { @@ -830,7 +823,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -455,6 +455,18 @@ component("skia") { +@@ -446,6 +446,18 @@ component("skia") { sources += skia_ports_fci_sources } diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 05ea9a67..71d9f4dd 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -181,7 +181,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in + new WebContentsObserver(webContents) { + @Override + public void didStartLoading(GURL url) { -+ webContents.removeObserver(this); ++ observe(null); + SnackbarManager snackbarManager = mSnackbarManagerSupplier.get(); + snackbarManager.dismissSnackbars(controller); + } @@ -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 -@@ -1233,7 +1233,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1239,7 +1239,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 -@@ -199,6 +199,13 @@ public abstract class TabModelSelectorBase +@@ -195,6 +195,13 @@ public abstract class TabModelSelectorBase return null; } @@ -403,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 -@@ -107,6 +107,8 @@ public interface TabWindowManager { +@@ -109,6 +109,8 @@ public interface TabWindowManager { */ int getIncognitoTabCount(); @@ -415,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 -@@ -459,6 +459,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -458,6 +458,16 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -615,7 +615,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3727,8 +3727,10 @@ void WebContentsImpl::Stop() { +@@ -3748,8 +3748,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -629,7 +629,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1157,6 +1157,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1161,6 +1161,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -642,7 +642,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1451,6 +1457,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1459,6 +1465,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -666,7 +666,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java -@@ -187,6 +187,9 @@ public class MockWebContents implements WebContents { +@@ -187,6 +187,9 @@ public class MockWebContents implements WebContents, WebContentsObserver.Observa @Override public void setFocus(boolean hasFocus) {} @@ -711,7 +711,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4289,6 +4289,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4307,6 +4307,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -722,7 +722,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3233,6 +3233,7 @@ void LocalFrame::DidFreeze() { +@@ -3231,6 +3231,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -730,7 +730,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3247,6 +3248,7 @@ void LocalFrame::DidResume() { +@@ -3245,6 +3246,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -741,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 -@@ -979,7 +979,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -986,7 +986,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 17cea64c..b494c711 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -197,6 +197,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -202,6 +202,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -13,6 +13,7 @@ +@@ -15,6 +15,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/mediastream/media_devices.h" #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" @@ -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" -@@ -637,7 +638,9 @@ double AudioContext::baseLatency() const { +@@ -639,7 +640,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -481,9 +481,8 @@ +@@ -485,9 +485,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 5b077809..24fc5191 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -49,7 +49,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -390,6 +390,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -396,6 +396,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverList& ContextLifecycleObserverSet(); 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 782767c7..f6e75c76 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 -@@ -4678,7 +4678,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -4966,7 +4966,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 -@@ -820,6 +820,11 @@ WebString DocumentLoader::HttpMethod() const { +@@ -827,6 +827,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_; } -@@ -2902,6 +2907,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2930,6 +2935,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 9cc2ecd0..5742a106 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -64,7 +64,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc -@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { +@@ -96,10 +96,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { bool HasScheme(const std::u16string& input, const char* scheme) { std::string utf8_input(base::UTF16ToUTF8(input)); url::Component view_source_scheme; @@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib return url::FindAndCompareScheme(utf8_input, scheme, nullptr); } -@@ -568,7 +573,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( +@@ -582,7 +587,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( // For the view-source and blob schemes, we should emphasize the host of the // URL qualified by the view-source or blob prefix. if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) || @@ -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 -@@ -1079,6 +1079,8 @@ component("net") { +@@ -1085,6 +1085,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index c2014af3..beeb9b71 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 -@@ -1950,6 +1950,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1928,6 +1928,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 -@@ -856,6 +856,8 @@ chrome_java_sources = [ +@@ -870,6 +870,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", @@ -672,7 +672,7 @@ new file mode 100644 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2491,6 +2491,12 @@ static_library("browser") { +@@ -2525,6 +2525,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 -@@ -299,6 +299,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -302,6 +302,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPriceChangeModule, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1096,7 +1096,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -370,6 +370,7 @@ public abstract class ChromeFeatureList { +@@ -373,6 +373,7 @@ public abstract class ChromeFeatureList { public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; @@ -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 -@@ -2409,6 +2409,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2360,6 +2360,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 -@@ -4369,7 +4375,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4298,7 +4304,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 -@@ -4380,6 +4389,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4309,6 +4318,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 8222750a..c707f34a 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -77,7 +77,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -433,6 +433,7 @@ chrome_java_resources = [ +@@ -436,6 +436,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -85,18 +85,18 @@ 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", -@@ -621,6 +622,7 @@ chrome_java_resources = [ +@@ -624,6 +625,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", + "java/res/xml/adblock_preferences.xml", "java/res/xml/bookmark_widget_info.xml", - "java/res/xml/clear_browsing_data_preferences_tab.xml", + "java/res/xml/clear_browsing_data_preferences.xml", "java/res/xml/contextual_search_preferences.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 -@@ -928,6 +928,8 @@ chrome_java_sources = [ +@@ -941,6 +941,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -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 -@@ -924,9 +924,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -923,9 +923,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 -@@ -16566,6 +16566,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -16490,6 +16490,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -481,15 +481,15 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h -@@ -31,6 +31,7 @@ - #include "build/chromeos_buildflags.h" +@@ -32,6 +32,7 @@ #include "chrome/common/buildflags.h" + #include "components/safe_browsing/buildflags.h" #include "media/media_buildflags.h" +#include "components/component_updater/adblock_updater_service.h" class BackgroundModeManager; class BrowserProcessPlatformPart; -@@ -86,6 +87,10 @@ namespace component_updater { +@@ -89,6 +90,10 @@ namespace component_updater { class ComponentUpdateService; } @@ -500,7 +500,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h namespace gcm { class GCMDriver; } -@@ -264,6 +269,7 @@ class BrowserProcess { +@@ -269,6 +274,7 @@ class BrowserProcess { #endif virtual component_updater::ComponentUpdateService* component_updater() = 0; @@ -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 -@@ -1220,6 +1220,34 @@ BrowserProcessImpl::component_updater() { +@@ -1240,6 +1240,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -549,7 +549,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h --- a/chrome/browser/browser_process_impl.h +++ b/chrome/browser/browser_process_impl.h -@@ -214,6 +214,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -217,6 +217,7 @@ class BrowserProcessImpl : public BrowserProcess, #endif component_updater::ComponentUpdateService* component_updater() override; @@ -557,7 +557,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc MediaFileSystemRegistry* media_file_system_registry() override; WebRtcLogUploader* webrtc_log_uploader() override; network_time::NetworkTimeTracker* network_time_tracker() override; -@@ -421,6 +422,7 @@ class BrowserProcessImpl : public BrowserProcess, +@@ -429,6 +430,7 @@ class BrowserProcessImpl : public BrowserProcess, // to concerns over integrity of data shared between profiles, // but some users of component updater only install per-user. std::unique_ptr component_updater_; @@ -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 -@@ -651,6 +651,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -640,6 +640,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { StubResolverConfigReader::RegisterPrefs(registry); DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); @@ -734,7 +734,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -2846,6 +2846,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2868,6 +2868,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1591,7 +1591,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -672,6 +676,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -679,6 +683,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch index 88d0fedb..eadad989 100644 --- a/build/patches/Bubble-Locking-on-UI-DevTools.patch +++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch @@ -33,9 +33,9 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h -@@ -1310,6 +1310,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, - +@@ -1362,6 +1362,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, void UpdateAccessibleNameForRootView(); + void UpdateAccessibleURLForRootView(const GURL& url); + // Type of ways to ignore activation changes. + enum class DisableActivationChangeHandlingType { @@ -53,7 +53,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h protected: // Creates the RootView to be used within this Widget. Subclasses may override // to create custom RootViews that do specialized event processing. -@@ -1348,13 +1361,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1400,13 +1413,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, ui::ColorProviderKey GetColorProviderKey() const override; private: @@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h class PaintAsActiveLockImpl; friend class ButtonTest; -@@ -1365,11 +1371,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, +@@ -1417,11 +1423,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, friend class ui_devtools::BubbleLocking; friend void DisableActivationChangeHandlingForTests(); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index d33e7340..361f4a5b 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -69,7 +69,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.cc b/chrome/browser/extensions/api/developer_private/developer_private_api.cc --- a/chrome/browser/extensions/api/developer_private/developer_private_api.cc +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.cc -@@ -136,6 +136,12 @@ +@@ -138,6 +138,12 @@ #include "url/gurl.h" #include "url/origin.h" @@ -82,7 +82,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a namespace extensions { namespace developer = api::developer_private; -@@ -490,10 +496,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( +@@ -492,10 +498,32 @@ std::unique_ptr DeveloperPrivateAPI::CreateProfileInfo( info->is_mv2_deprecation_notice_dismissed = ManifestV2ExperimentManager::Get(profile) ->DidUserAcknowledgeNoticeGlobally(); @@ -116,7 +116,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a template <> void BrowserContextKeyedAPIFactory< DeveloperPrivateAPI>::DeclareFactoryDependencies() { -@@ -934,6 +962,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { +@@ -959,6 +987,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() { ExtensionUpdater::CheckParams params; params.fetch_priority = DownloadFetchPriority::kForeground; params.install_immediately = true; @@ -124,7 +124,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a params.callback = base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this); updater->CheckNow(std::move(params)); -@@ -1068,7 +1097,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -1093,7 +1122,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { const developer::ProfileConfigurationUpdate& update = params->update; @@ -133,7 +133,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a Profile* profile = Profile::FromBrowserContext(browser_context()); CHECK(profile); if (supervised_user::AreExtensionsPermissionsEnabled(profile)) { -@@ -1082,6 +1111,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { +@@ -1107,6 +1136,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() { ->MarkNoticeAsAcknowledgedGlobally(); } @@ -148,7 +148,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/developer_private/developer_private_api.h b/chrome/browser/extensions/api/developer_private/developer_private_api.h --- a/chrome/browser/extensions/api/developer_private/developer_private_api.h +++ b/chrome/browser/extensions/api/developer_private/developer_private_api.h -@@ -234,6 +234,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, +@@ -244,6 +244,9 @@ class DeveloperPrivateAPI : public BrowserContextKeyedAPI, static std::unique_ptr CreateProfileInfo( Profile* profile); @@ -161,7 +161,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc --- a/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc +++ b/chrome/browser/extensions/api/webstore_private/webstore_private_api.cc -@@ -66,6 +66,7 @@ +@@ -65,6 +65,7 @@ #include "extensions/browser/extension_util.h" #include "extensions/browser/extensions_browser_client.h" #include "extensions/common/extension.h" @@ -169,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" -@@ -219,6 +220,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; +@@ -224,6 +225,8 @@ WebstorePrivateApi::Delegate* test_delegate = nullptr; // there was previously stored data, or an empty string otherwise. The Set will // overwrite any previous login. std::string GetWebstoreLogin(Profile* profile) { @@ -178,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); } -@@ -226,11 +229,15 @@ std::string GetWebstoreLogin(Profile* profile) { +@@ -231,11 +234,15 @@ std::string GetWebstoreLogin(Profile* profile) { } void SetWebstoreLogin(Profile* profile, const std::string& login) { @@ -194,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; -@@ -1153,7 +1160,8 @@ ExtensionFunction::ResponseAction +@@ -1158,7 +1165,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -204,7 +204,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1248,11 +1256,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1254,11 +1262,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -217,9 +217,9 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api ArgumentList(api::webstore_private::GetReferrerChain::Results::Create( - base::Base64Encode(request.SerializeAsString())))); + base::Base64Encode(serialized_referrer_proto)))); - } - - WebstorePrivateGetExtensionStatusFunction:: + #else + return RespondNow(ArgumentList( + api::webstore_private::GetReferrerChain::Results::Create(""))); 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 @@ -236,7 +236,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc --- a/chrome/browser/extensions/extension_management.cc +++ b/chrome/browser/extensions/extension_management.cc -@@ -379,6 +379,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( +@@ -387,6 +387,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy( bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy( const Extension* extension) { @@ -260,7 +260,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc -@@ -443,8 +443,6 @@ ExtensionService::ExtensionService( +@@ -446,8 +446,6 @@ ExtensionService::ExtensionService( UpgradeDetector::GetInstance()->AddObserver(this); @@ -269,7 +269,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this); // Set up the ExtensionUpdater. -@@ -1900,7 +1898,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() { +@@ -1762,7 +1760,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. @@ -311,7 +311,7 @@ diff --git a/chrome/browser/extensions/updater/chrome_extension_downloader_facto diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc -@@ -47,6 +47,7 @@ +@@ -49,6 +49,7 @@ #include "extensions/browser/updater/extension_update_data.h" #include "extensions/common/constants.h" #include "extensions/common/extension.h" @@ -319,7 +319,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro #include "extensions/common/extension_set.h" #include "extensions/common/extension_updater_uma.h" #include "extensions/common/extension_urls.h" -@@ -201,6 +202,10 @@ void ExtensionUpdater::Start() { +@@ -203,6 +204,10 @@ void ExtensionUpdater::Start() { DCHECK(!weak_ptr_factory_.HasWeakPtrs()); DCHECK(registry_); alive_ = true; @@ -330,7 +330,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro // Check soon, and set up the first delayed check. if (!g_skip_scheduled_checks_for_tests) { if (g_should_immediately_update) -@@ -333,7 +338,8 @@ void ExtensionUpdater::AddToDownloader( +@@ -335,7 +340,8 @@ void ExtensionUpdater::AddToDownloader( const Extension& extension = **extension_iter; const ExtensionId& extension_id = extension.id(); if (!Manifest::IsAutoUpdateableLocation(extension.location())) { @@ -340,7 +340,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // An extension might be overwritten by policy, and have its update url -@@ -347,7 +353,7 @@ void ExtensionUpdater::AddToDownloader( +@@ -349,7 +355,7 @@ void ExtensionUpdater::AddToDownloader( continue; } @@ -349,7 +349,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params->update_info[extension_id] = GetExtensionUpdateData(extension_id); } else if (AddExtensionToDownloader(extension, request_id, -@@ -386,6 +392,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( +@@ -388,6 +394,12 @@ bool ExtensionUpdater::AddExtensionToDownloader( } void ExtensionUpdater::CheckNow(CheckParams params) { @@ -362,7 +362,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) { // Checking all extensions. Cancel pending DoCheckSoon() call if there's // one, as it would be redundant. -@@ -394,7 +406,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -396,7 +408,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { int request_id = next_request_id_++; @@ -371,7 +371,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro if (params.ids.empty()) NotifyStarted(); -@@ -467,7 +479,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -469,7 +481,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); } else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) { @@ -380,7 +380,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro continue; } // We have to mark high-priority extensions (such as policy-forced -@@ -477,7 +489,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -479,7 +491,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { // See https://crbug.com/904600 and https://crbug.com/965686. const bool is_high_priority_extension_pending = pending_extension_manager->HasHighPriorityPendingExtension(); @@ -389,7 +389,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[pending_id] = GetExtensionUpdateData(pending_id); update_check_params.update_info[pending_id].is_corrupt_reinstall = -@@ -500,6 +512,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -502,6 +514,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) { LOG(WARNING) << "Corrupt extension with id " << pending_id << " will be reinstalled with ExtensionDownloader."; } @@ -398,7 +398,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro } else { InstallStageTracker::Get(profile_)->ReportFailure( pending_id, -@@ -512,13 +526,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -514,13 +528,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) { AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id, params.fetch_priority, &update_check_params); ExtensionSet remotely_disabled_extensions; @@ -412,7 +412,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id, params.fetch_priority, &update_check_params); } else { -@@ -526,7 +533,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { +@@ -528,7 +535,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) { const Extension* extension = registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING); if (extension) { @@ -421,7 +421,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro update_check_params.update_info[id] = GetExtensionUpdateData(id); } else if (AddExtensionToDownloader(*extension, request_id, params.fetch_priority)) { -@@ -667,7 +674,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -669,7 +676,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( file.extension_id, InstallStageTracker::Stage::INSTALLING); UpdatePingData(file.extension_id, ping); @@ -430,7 +430,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro FetchedCRXFile fetched(file, file_ownership_passed, request_ids, std::move(callback)); -@@ -678,6 +685,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( +@@ -680,6 +687,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished( bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id, DownloadPingData* ping_data) { @@ -438,7 +438,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro DCHECK(alive_); ping_data->rollcall_days = CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id)); -@@ -790,7 +798,7 @@ bool ExtensionUpdater::CanUseUpdateService( +@@ -796,7 +804,7 @@ bool ExtensionUpdater::CanUseUpdateService( void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) { std::set request_ids; @@ -447,7 +447,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro << crx_file.info.path.value(); // The ExtensionService is now responsible for cleaning up the temp file -@@ -899,7 +907,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { +@@ -905,7 +913,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) { InProgressCheck& request = requests_in_progress_[request_id]; if (!request.in_progress_ids.empty() || request.awaiting_update_service) return; // This request is not done yet. @@ -492,7 +492,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc --- a/chrome/browser/extensions/webstore_installer.cc +++ b/chrome/browser/extensions/webstore_installer.cc -@@ -625,7 +625,7 @@ void WebstoreInstaller::StartDownload( +@@ -626,7 +626,7 @@ void WebstoreInstaller::StartDownload( traffic_annotation)); params->set_file_path(file); params->set_initiator(render_frame_host->GetLastCommittedOrigin()); @@ -544,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 -@@ -293,6 +293,11 @@ export class Service implements ServiceInterface { +@@ -299,6 +299,11 @@ export class Service implements ServiceInterface { {inDeveloperMode: inDevMode}); } @@ -678,7 +678,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse namespace extensions { namespace { -@@ -372,6 +374,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -374,6 +376,8 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, {"itemSuspiciousInstallLearnMore", IDS_EXTENSIONS_ADDED_WITHOUT_KNOWLEDGE_LEARN_MORE}, {"toolbarDevMode", IDS_EXTENSIONS_DEVELOPER_MODE}, @@ -687,7 +687,7 @@ diff --git a/chrome/browser/ui/webui/extensions/extensions_ui.cc b/chrome/browse {"toolbarLoadUnpacked", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED}, {"toolbarLoadUnpackedDone", IDS_EXTENSIONS_TOOLBAR_LOAD_UNPACKED_DONE}, {"toolbarPack", IDS_EXTENSIONS_TOOLBAR_PACK}, -@@ -445,6 +449,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, +@@ -449,6 +453,10 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile, "hostPermissionsLearnMoreLink", extension_permissions_constants::kRuntimeHostPermissionsHelpURL); source->AddBoolean(kInDevModeKey, in_dev_mode); @@ -724,7 +724,7 @@ diff --git a/chrome/browser/update_client/chrome_update_query_params_delegate.cc diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/extensions/api/developer_private.idl --- a/chrome/common/extensions/api/developer_private.idl +++ b/chrome/common/extensions/api/developer_private.idl -@@ -295,6 +295,7 @@ namespace developerPrivate { +@@ -296,6 +296,7 @@ namespace developerPrivate { boolean isIncognitoAvailable; boolean isChildAccount; boolean isMv2DeprecationNoticeDismissed; @@ -732,7 +732,7 @@ diff --git a/chrome/common/extensions/api/developer_private.idl b/chrome/common/ }; // DEPRECATED: Prefer ExtensionInfo. -@@ -354,6 +355,7 @@ namespace developerPrivate { +@@ -355,6 +356,7 @@ namespace developerPrivate { dictionary ProfileConfigurationUpdate { boolean? inDeveloperMode; boolean? isMv2DeprecationNoticeDismissed; @@ -1190,9 +1190,9 @@ 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 -@@ -199,4 +199,18 @@ BASE_FEATURE(kRemoveCoreSiteInstance, - "RemoveCoreSiteInstance", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -200,4 +200,18 @@ BASE_FEATURE(kUserScriptUserExtensionToggle, + "UserScriptUserExtensionToggle", + base::FEATURE_DISABLED_BY_DEFAULT); +// Activates the auto update of extensions. +// the only data provided by default is the list of extensions. @@ -1212,9 +1212,9 @@ 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 -@@ -241,6 +241,10 @@ BASE_DECLARE_FEATURE(kSilentDebuggerExtensionAPI); - // nothing breaks. - BASE_DECLARE_FEATURE(kRemoveCoreSiteInstance); +@@ -240,6 +240,10 @@ BASE_DECLARE_FEATURE(kRemoveCoreSiteInstance); + // rather than the developer mode toggle on chrome://extensions. + BASE_DECLARE_FEATURE(kUserScriptUserExtensionToggle); +BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); + @@ -1226,7 +1226,7 @@ diff --git a/extensions/common/extension_features.h b/extensions/common/extensio diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescript/definitions/developer_private.d.ts --- a/tools/typescript/definitions/developer_private.d.ts +++ b/tools/typescript/definitions/developer_private.d.ts -@@ -280,6 +280,7 @@ declare global { +@@ -281,6 +281,7 @@ declare global { isIncognitoAvailable: boolean; isChildAccount: boolean; isMv2DeprecationNoticeDismissed: boolean; @@ -1234,7 +1234,7 @@ diff --git a/tools/typescript/definitions/developer_private.d.ts b/tools/typescr } export interface ExtensionConfigurationUpdate { -@@ -296,6 +297,7 @@ declare global { +@@ -297,6 +298,7 @@ declare global { export interface ProfileConfigurationUpdate { inDeveloperMode?: boolean; isMv2DeprecationNoticeDismissed?: boolean; diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index caa56fad..b6668c29 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 -@@ -1317,6 +1317,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1320,6 +1320,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 aa779b6b..a6650a28 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -21,8 +21,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/frame/navigator_ua_data.cc | 1 + .../renderer/core/frame/navigator_ua_data.idl | 5 ++++- .../renderer/core/loader/frame_fetch_context.cc | 4 +++- - .../platform/runtime_enabled_features.json5 | 5 +++++ - 15 files changed, 55 insertions(+), 13 deletions(-) + .../platform/runtime_enabled_features.json5 | 8 ++++++-- + 15 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc @@ -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 -@@ -190,9 +190,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -188,9 +188,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); std::optional brand; @@ -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 -@@ -1283,6 +1283,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1301,6 +1301,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -161,7 +161,7 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party #include "third_party/blink/public/common/permissions_policy/permissions_policy.h" #include "url/origin.h" -@@ -106,11 +107,12 @@ const PolicyFeatureToClientHintMap& GetPolicyFeatureToClientHintMap() { +@@ -108,11 +109,12 @@ const PolicyFeatureToClientHintMap& GetPolicyFeatureToClientHintMap() { bool IsClientHintSentByDefault(network::mojom::WebClientHintsType type) { switch (type) { @@ -208,14 +208,14 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua.idl b/third_part diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.cc b/third_party/blink/renderer/core/frame/navigator_ua_data.cc --- a/third_party/blink/renderer/core/frame/navigator_ua_data.cc +++ b/third_party/blink/renderer/core/frame/navigator_ua_data.cc -@@ -219,6 +219,7 @@ ScriptPromise NavigatorUAData::getHighEntropyValues( - Dactyloscoper::RecordDirectSurface( - GetExecutionContext(), WebFeature::kNavigatorUAData_Platform, platform()); +@@ -186,6 +186,7 @@ const String& NavigatorUAData::platform() const { + } -+ if ((false)) - for (const String& hint : hints) { - if (hint == "platformVersion") { - values->setPlatformVersion(platform_version_); + bool AllowedToCollectHighEntropyValues(ExecutionContext* execution_context) { ++ if ((true)) return false; + // To determine whether a document is allowed to use the get high-entropy + // client hints returned by navigator.userAgentData.getHighEntropyValues(), + // check the following: diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl b/third_party/blink/renderer/core/frame/navigator_ua_data.idl --- a/third_party/blink/renderer/core/frame/navigator_ua_data.idl +++ b/third_party/blink/renderer/core/frame/navigator_ua_data.idl @@ -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 -@@ -417,6 +417,11 @@ +@@ -438,6 +438,11 @@ name: "AriaNotify", status: "test", }, @@ -267,4 +267,14 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", +@@ -804,8 +809,7 @@ + // Allows top-level sites to restrict collection of high-entropy UA client + // hints (from 3Ps, or itself) via the getHighEntropyValues API. + // crbug.com/385161047 +- name: "ClientHintUAHighEntropyValuesPermissionPolicy", +- status: "test", ++ name: "ClientHintUAHighEntropyValuesPermissionPolicy", // disabled by default + }, + // This ensures that clipboard event fires on a target node which is + // focused in case no visible selection is present. -- diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index 85990e23..a0f994b1 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 -@@ -472,7 +472,7 @@ const base::FeatureParam kIpPrivacyOnlyInIncognito{ +@@ -485,7 +485,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 f4b6428f..380d7c32 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -98,7 +98,7 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -69,6 +69,10 @@ import org.chromium.url.GURL; +@@ -68,6 +68,10 @@ import org.chromium.url.GURL; import java.util.List; import java.util.Set; @@ -109,7 +109,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 = -@@ -243,7 +247,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -242,7 +246,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -400,6 +404,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -399,6 +403,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -151,7 +151,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1457,4 +1457,5 @@ +@@ -1432,4 +1432,5 @@ @@ -263,7 +263,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -165,6 +166,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -166,6 +167,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_WEB_APP_INSTALLATION = r.SITE_SETTINGS.createChild('webApplications'); } @@ -370,7 +370,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -331,4 +331,5 @@ +@@ -326,4 +326,5 @@ label="$i18n{siteSettingsWebAppInstallation}"> @@ -589,7 +589,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -451,10 +451,36 @@ function getCategoryItemMap(): Map { +@@ -440,10 +440,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', }, ]; @@ -626,7 +626,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -544,7 +570,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -532,7 +558,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -710,7 +710,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -1767,6 +1767,7 @@ static_library("ui") { +@@ -1791,6 +1791,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -718,7 +718,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/enterprise/common:files_scan_data", "//components/feedback/proto", "//components/headless/policy", -@@ -4962,6 +4963,7 @@ static_library("ui") { +@@ -5006,6 +5007,7 @@ static_library("ui") { "//components/prefs", "//components/reading_list/features:flags", "//components/segmentation_platform/embedder/default_model:default_model", @@ -746,7 +746,7 @@ diff --git a/chrome/browser/ui/views/controls/rich_controls_container_view.h b/c diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/browser/ui/views/page_info/page_info_main_view.cc --- a/chrome/browser/ui/views/page_info/page_info_main_view.cc +++ b/chrome/browser/ui/views/page_info/page_info_main_view.cc -@@ -54,6 +54,7 @@ +@@ -56,6 +56,7 @@ #include "ui/views/controls/separator.h" #include "ui/views/layout/box_layout.h" #include "ui/views/layout/flex_layout.h" @@ -754,7 +754,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b #include "ui/views/view_class_properties.h" #if BUILDFLAG(FULL_SAFE_BROWSING) -@@ -254,8 +255,20 @@ void PageInfoMainView::SetPermissionInfo( +@@ -256,8 +257,20 @@ void PageInfoMainView::SetPermissionInfo( scroll_view->SetDrawOverflowIndicator(false); auto* content_view = scroll_view->SetContents(std::make_unique()); @@ -777,7 +777,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b content_view->SetID(PageInfoViewFactory::VIEW_ID_PAGE_INFO_PERMISSION_VIEW); content_view->SetProperty(views::kElementIdentifierKey, kPermissionsElementId); -@@ -270,11 +283,16 @@ void PageInfoMainView::SetPermissionInfo( +@@ -272,11 +285,16 @@ void PageInfoMainView::SetPermissionInfo( } } @@ -794,7 +794,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b toggle_row->SetProperty(views::kCrossAxisAlignmentKey, views::LayoutAlignment::kStretch); syncable_permission_rows_.emplace(permission.type, toggle_row); -@@ -282,6 +300,8 @@ void PageInfoMainView::SetPermissionInfo( +@@ -284,6 +302,8 @@ void PageInfoMainView::SetPermissionInfo( } for (auto& object : chosen_object_info_list) { @@ -803,7 +803,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b // The view takes ownership of the object info. auto object_view = std::make_unique( std::move(object), -@@ -292,6 +312,10 @@ void PageInfoMainView::SetPermissionInfo( +@@ -294,6 +314,10 @@ void PageInfoMainView::SetPermissionInfo( content_view->AddChildView(std::move(object_view))); } @@ -817,7 +817,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_main_view.cc b/chrome/b diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrome/browser/ui/views/page_info/page_info_view_factory.cc --- a/chrome/browser/ui/views/page_info/page_info_view_factory.cc +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.cc -@@ -28,6 +28,8 @@ +@@ -27,6 +27,8 @@ #include "chrome/browser/ui/views/page_info/page_info_permission_content_view.h" #include "chrome/browser/ui/views/page_info/page_info_security_content_view.h" #include "components/content_settings/core/common/content_settings_types.h" @@ -1177,7 +1177,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -74,6 +75,9 @@ +@@ -73,6 +74,9 @@ #include "components/dom_distiller/core/dom_distiller_features.h" #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" @@ -1187,7 +1187,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "components/password_manager/core/browser/leak_detection_dialog_utils.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/common/password_manager_features.h" -@@ -3779,6 +3783,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3802,6 +3806,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1247,7 +1247,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -49,6 +49,8 @@ +@@ -47,6 +47,8 @@ #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/content_settings_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -1256,8 +1256,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -247,13 +249,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< - {ContentSettingsType::LEGACY_COOKIE_SCOPE, nullptr}, +@@ -249,13 +251,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< + {ContentSettingsType::POINTER_LOCK, nullptr}, }); -static_assert( @@ -1277,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -501,6 +503,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -503,6 +505,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1291,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -514,11 +523,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -516,11 +525,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1317,7 +1317,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -533,7 +555,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(); } } @@ -1325,7 +1325,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -643,6 +664,13 @@ std::vector GetVisiblePermissionCategories( +@@ -644,6 +665,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::WEB_APP_INSTALLATION); } @@ -1450,15 +1450,15 @@ new file mode 100644 diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java -@@ -23,6 +23,7 @@ public class SpinnerPreference extends Preference { - private ArrayAdapter mAdapter; +@@ -29,6 +29,7 @@ public class SpinnerPreference extends Preference { + private @Nullable ArrayAdapter mAdapter; private int mSelectedIndex; private final boolean mSingleLine; + private boolean mIsWidget = false; /** Constructor for inflating from XML. */ public SpinnerPreference(Context context, AttributeSet attrs) { -@@ -37,6 +38,19 @@ public class SpinnerPreference extends Preference { +@@ -43,6 +44,19 @@ public class SpinnerPreference extends Preference { } } @@ -1478,7 +1478,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium /** * Provides a list of arbitrary objects to be shown in the spinner. Visually, each option will * be presented as its toString() text. Alternative to {@link #setAdapter(ArrayAdapter, int)}. -@@ -56,6 +70,12 @@ public class SpinnerPreference extends Preference { +@@ -62,6 +76,12 @@ public class SpinnerPreference extends Preference { mSelectedIndex = selectedIndex; } @@ -1489,9 +1489,9 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium + } + /** Returns the Spinner instance for introspection during tests. */ - public Spinner getSpinnerForTesting() { + public @Nullable Spinner getSpinnerForTesting() { return mSpinner; -@@ -88,6 +108,10 @@ public class SpinnerPreference extends Preference { +@@ -94,6 +114,10 @@ public class SpinnerPreference extends Preference { public void onBindViewHolder(PreferenceViewHolder holder) { super.onBindViewHolder(holder); @@ -1499,7 +1499,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium + holder.setDividerAllowedAbove(true); + holder.setDividerAllowedBelow(true); + } - ((TextView) holder.findViewById(R.id.title)).setText(getTitle()); + ((TextView) assumeNonNull(holder.findViewById(R.id.title))).setText(getTitle()); CharSequence summary = getSummary(); TextView summaryView = ((TextView) holder.findViewById(R.id.summary)); diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn @@ -2842,7 +2842,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -848,6 +849,7 @@ void ContentSettingsRegistry::Init() { +@@ -858,6 +859,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::DESKTOP, ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -2853,7 +2853,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc --- a/components/content_settings/core/browser/content_settings_uma_util.cc +++ b/components/content_settings/core/browser/content_settings_uma_util.cc -@@ -207,11 +207,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -212,11 +212,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -2869,7 +2869,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 -@@ -20,6 +20,7 @@ +@@ -16,6 +16,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" @@ -2877,7 +2877,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" -@@ -128,6 +129,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) { +@@ -125,6 +126,17 @@ PatternPair ParsePatternString(const std::string& pattern_str) { void GetRendererContentSettingRules(const HostContentSettingsMap* map, RendererContentSettingRules* rules) { @@ -3185,10 +3185,10 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -468,5 +468,7 @@ enum ContentSettingsType { - // Checks whether cookies scope is handled according to origin-bound cookies - // or legacy behavior. - LEGACY_COOKIE_SCOPE, +@@ -475,5 +475,7 @@ enum ContentSettingsType { + + // Content settings for access to the Controlled Frame API. + CONTROLLED_FRAME, + +#include "components/content_settings/core/common/bromite_content_settings.inc" }; @@ -3572,7 +3572,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h @@ -44,6 +44,7 @@ - #include "third_party/blink/public/mojom/permissions_policy/permissions_policy_feature.mojom-blink-forward.h" + #include "third_party/blink/public/mojom/permissions_policy/permissions_policy.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h" +#include "third_party/blink/public/platform/web_content_settings_client.h" diff --git a/build/patches/Cromite-Branding--improve-settings-ui.patch b/build/patches/Cromite-Branding--improve-settings-ui.patch index 4a2b620d..ae6efbec 100644 --- a/build/patches/Cromite-Branding--improve-settings-ui.patch +++ b/build/patches/Cromite-Branding--improve-settings-ui.patch @@ -8,17 +8,17 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/android/chrome_java_resources.gni | 2 +- .../android/java/res/xml/main_preferences.xml | 4 +- - .../res/xml/privacy_preferences_cromite.xml | 198 ++++++++++++++++++ + .../res/xml/privacy_preferences_cromite.xml | 197 ++++++++++++++++++ .../privacy/settings/PrivacySettings.java | 4 +- .../Cromite-settings-ui.grdp | 15 ++ - 5 files changed, 218 insertions(+), 5 deletions(-) + 5 files changed, 217 insertions(+), 5 deletions(-) create mode 100644 chrome/android/java/res/xml/privacy_preferences_cromite.xml create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Cromite-settings-ui.grdp diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -640,7 +640,7 @@ chrome_java_resources = [ +@@ -643,7 +643,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", @@ -52,7 +52,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences_cromite.xml b/chrom new file mode 100644 --- /dev/null +++ b/chrome/android/java/res/xml/privacy_preferences_cromite.xml -@@ -0,0 +1,198 @@ +@@ -0,0 +1,197 @@ + -@@ -500,7 +505,7 @@ are declared in tools/grit/grit_args.gni. +@@ -501,7 +506,7 @@ are declared in tools/grit/grit_args.gni. Disable @@ -138,7 +139,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2390,6 +2390,9 @@ +@@ -2373,6 +2373,9 @@ URL with %s in place of query @@ -416,7 +417,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 -@@ -3463,6 +3463,9 @@ static_library("browser") { +@@ -3496,6 +3496,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -429,7 +430,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc --- a/chrome/browser/chrome_browser_interface_binders.cc +++ b/chrome/browser/chrome_browser_interface_binders.cc -@@ -138,6 +138,9 @@ +@@ -145,6 +145,9 @@ #endif #if BUILDFLAG(IS_ANDROID) @@ -439,7 +440,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h" #include "chrome/browser/facilitated_payments/payment_link_handler_binder.h" #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher.h" -@@ -997,6 +1000,15 @@ void PopulateChromeWebUIFrameBinders( +@@ -947,6 +950,15 @@ void PopulateChromeWebUIFrameBinders( OnDeviceTranslationInternalsUI>(map); #endif @@ -458,7 +459,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn -@@ -21,6 +21,12 @@ group("resources") { +@@ -22,6 +22,12 @@ group("resources") { "segmentation_internals:resources", ] @@ -486,14 +487,21 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts --- a/chrome/browser/resources/settings/page_visibility.ts +++ b/chrome/browser/resources/settings/page_visibility.ts -@@ -41,8 +41,36 @@ export interface PrivacyPageVisibility { +@@ -43,8 +43,49 @@ export interface PrivacyPageVisibility { searchPrediction: boolean; } +const isAndroid = (loadTimeData.getString('chromeAndroid') !== ""); +if (isAndroid) { + // @ts-expect-error -+ chrome.autofillPrivate = {}; ++ chrome.autofillPrivate = { ++ isUserEligibleForAutofillImprovements(): Promise { ++ return Promise.resolve(false); ++ }, ++ hasUserAnnotationsEntries(): Promise { ++ return Promise.resolve(false); ++ } ++ }; + + // @ts-expect-error + chrome.languageSettingsPrivate = {}; @@ -512,6 +520,12 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows + var obj = {}; + (obj as any).then = function() {}; + return obj; ++ }, ++ PrefType: { ++ BOOLEAN: 0 ++ }, ++ getDefaultZoom(): Promise { ++ return Promise.resolve(100); + } + } + // @ts-expect-error @@ -769,7 +783,7 @@ diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/b diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn --- a/chrome/browser/search_engines/android/BUILD.gn +++ b/chrome/browser/search_engines/android/BUILD.gn -@@ -77,12 +77,14 @@ android_resources("java_resources") { +@@ -79,12 +79,14 @@ android_resources("java_resources") { "java/res/layout/blocking_choice_dialog.xml", "java/res/layout/default_search_engine_dialog_view.xml", "java/res/layout/search_engine_choice_header.xml", @@ -829,13 +843,13 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ import org.chromium.base.supplier.ObservableSupplier; @@ -16,6 +20,8 @@ import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.regional_capabilities.RegionalCapabilitiesServiceFactory; import org.chromium.chrome.browser.search_engines.R; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.settings.ProfileDependentSetting; +import org.chromium.chrome.browser.settings.SettingsNavigationFactory; +import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.search_engines.TemplateUrlService; + import org.chromium.components.regional_capabilities.RegionalCapabilitiesService; @@ -57,6 +63,21 @@ public class SearchEngineSettings extends ListFragment return mPageTitle; @@ -862,7 +876,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -691,6 +691,12 @@ static_library("ui") { +@@ -690,6 +690,12 @@ static_library("ui") { "//v8:v8_version", ] @@ -875,7 +889,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn if (is_chrome_branded) { deps += [ "//components/plus_addresses/resources:vector_icons" ] } -@@ -978,6 +984,18 @@ static_library("ui") { +@@ -975,6 +981,18 @@ static_library("ui") { # TODO(b/335257259): Resolve circular deps. # Any circular includes must depend on the target "//chrome/browser:browser_public_dependencies". allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] @@ -897,7 +911,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc --- a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc +++ b/chrome/browser/ui/search_engines/edit_search_engine_controller.cc -@@ -93,9 +93,11 @@ bool EditSearchEngineController::IsKeywordValid( +@@ -91,9 +91,11 @@ bool EditSearchEngineController::IsKeywordValid( void EditSearchEngineController::AcceptAddOrEdit( const std::u16string& title_input, const std::u16string& keyword_input, @@ -910,7 +924,7 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.cc b DCHECK(!url_string.empty()); TemplateURLService* template_url_service = -@@ -119,12 +121,12 @@ void EditSearchEngineController::AcceptAddOrEdit( +@@ -117,12 +119,12 @@ void EditSearchEngineController::AcceptAddOrEdit( DCHECK(template_url_); template_url_service->AddWithOverrides( base::WrapUnique(template_url_.get()), title_input, keyword_input, @@ -1018,7 +1032,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc --- a/chrome/browser/ui/search_engines/template_url_table_model.cc +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc -@@ -201,7 +201,8 @@ void TemplateURLTableModel::Remove(size_t index) { +@@ -203,7 +203,8 @@ void TemplateURLTableModel::Remove(size_t index) { void TemplateURLTableModel::Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1028,7 +1042,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURLData data; -@@ -209,13 +210,15 @@ void TemplateURLTableModel::Add(size_t index, +@@ -211,13 +212,15 @@ void TemplateURLTableModel::Add(size_t index, data.SetKeyword(keyword); data.SetURL(url); data.is_active = TemplateURLData::ActiveStatus::kTrue; @@ -1045,7 +1059,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURL* template_url = GetTemplateURL(index); -@@ -224,7 +227,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, +@@ -226,7 +229,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1090,7 +1104,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_NACL) #include "chrome/browser/ui/webui/nacl_ui.h" #endif -@@ -411,4 +416,7 @@ void RegisterChromeWebUIConfigs() { +@@ -398,4 +403,7 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); #endif @@ -1123,7 +1137,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui #include "third_party/skia/include/core/SkBitmap.h" #include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/resource_scale_factor.h" -@@ -205,18 +209,22 @@ bool FaviconSource::ShouldServiceRequest( +@@ -213,18 +217,22 @@ bool FaviconSource::ShouldServiceRequest( const GURL& url, content::BrowserContext* browser_context, int render_process_id) { @@ -1146,7 +1160,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui void FaviconSource::OnFaviconDataAvailable( content::URLDataSource::GotDataCallback callback, -@@ -240,7 +248,11 @@ void FaviconSource::SendDefaultResponse( +@@ -248,7 +256,11 @@ void FaviconSource::SendDefaultResponse( parsed.device_scale_factor, parsed.force_light_mode ? false @@ -1158,7 +1172,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui return; } int icon_size = std::ceil(parsed.size_in_dip * parsed.device_scale_factor); -@@ -260,7 +272,11 @@ void FaviconSource::SendDefaultResponse( +@@ -268,7 +280,11 @@ void FaviconSource::SendDefaultResponse( SendDefaultResponse(std::move(callback), 16, 1.0f, force_light_mode ? false @@ -1170,7 +1184,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui } void FaviconSource::SendDefaultResponse( -@@ -270,6 +286,7 @@ void FaviconSource::SendDefaultResponse( +@@ -278,6 +294,7 @@ void FaviconSource::SendDefaultResponse( bool dark_mode) { int resource_id; switch (size_in_dip) { @@ -1178,7 +1192,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui case 64: resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_64 : IDR_DEFAULT_FAVICON_64; -@@ -278,6 +295,7 @@ void FaviconSource::SendDefaultResponse( +@@ -286,6 +303,7 @@ void FaviconSource::SendDefaultResponse( resource_id = dark_mode ? IDR_DEFAULT_FAVICON_DARK_32 : IDR_DEFAULT_FAVICON_32; break; @@ -1189,7 +1203,7 @@ diff --git a/chrome/browser/ui/webui/favicon_source.cc b/chrome/browser/ui/webui diff --git a/chrome/browser/ui/webui/favicon_source.h b/chrome/browser/ui/webui/favicon_source.h --- a/chrome/browser/ui/webui/favicon_source.h +++ b/chrome/browser/ui/webui/favicon_source.h -@@ -60,9 +60,11 @@ class FaviconSource : public content::URLDataSource { +@@ -65,9 +65,11 @@ class FaviconSource : public content::URLDataSource { int render_process_id) override; protected: @@ -1215,7 +1229,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome #include "extensions/common/extension.h" +#endif - #if BUILDFLAG(IS_CHROMEOS_ASH) + #if BUILDFLAG(IS_CHROMEOS) #include "ash/public/cpp/new_window_delegate.h" @@ -48,6 +50,7 @@ namespace { const char kSearchEngineField[] = "searchEngine"; @@ -1336,7 +1350,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2443,6 +2443,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2455,6 +2455,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1345,7 +1359,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -3776,6 +3778,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3799,6 +3801,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSystemStrings(html_source); #endif @@ -1362,7 +1376,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc -@@ -0,0 +1,198 @@ +@@ -0,0 +1,200 @@ +#include "chrome/browser/ui/webui/settings/settings_localized_strings_provider.h" + +#include @@ -1557,6 +1571,8 @@ new file mode 100644 + AddSearchInSettingsStrings(html_source); + html_source->AddString("check_notfound", "false"); + html_source->AddInteger("br_cs_count", 0); ++ html_source->AddString("presetZoomFactors", ++ "[0.25,0.3333333333333333,0.5,0.6666666666666666,0.75,0.8,0.9,1.0,1.1,1.25,1.5,1.75,2.0,2.5,3.0,4.0,5.0]"); + html_source->UseStringsJs(); +} + @@ -1836,7 +1852,7 @@ new file mode 100644 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -162,6 +162,17 @@ template("chrome_extra_paks") { +@@ -170,6 +170,17 @@ template("chrome_extra_paks") { sources += invoker.additional_paks } @@ -1858,7 +1874,7 @@ diff --git a/components/browser_ui/settings/android/java/src/org/chromium/compon --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsNavigation.java @@ -57,6 +57,8 @@ public interface SettingsNavigation { - int FINANCIAL_ACCOUNTS = 10; + int FINANCIAL_ACCOUNTS = 9; } + void launchUrlInCustomTab(Context context, String url); @@ -1892,7 +1908,7 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc --- a/components/search_engines/search_engines_switches.cc +++ b/components/search_engines/search_engines_switches.cc -@@ -50,6 +50,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) +@@ -45,6 +45,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) BASE_FEATURE(kSearchEngineChoiceTrigger, "SearchEngineChoiceTrigger", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1903,7 +1919,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -2084,6 +2084,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2043,6 +2043,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1917,7 +1933,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -1004,6 +1004,7 @@ class TemplateURL { +@@ -967,6 +967,7 @@ class TemplateURL { bool CreatedByNonDefaultSearchProviderPolicy() const; void SetURL(const std::string& url); @@ -1928,7 +1944,7 @@ diff --git a/components/search_engines/template_url.h b/components/search_engine diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -663,13 +663,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -695,13 +695,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1945,7 +1961,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -885,7 +887,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -917,7 +919,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1955,7 +1971,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -897,6 +900,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -929,6 +932,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -1966,7 +1982,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -247,7 +247,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -249,7 +249,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1976,7 +1992,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // Removes the keyword from the model. This deletes the supplied TemplateURL. // This fails if the supplied template_url is the default search provider. -@@ -324,7 +325,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -326,7 +327,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1989,7 +2005,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc --- a/content/browser/webui/web_ui_impl.cc +++ b/content/browser/webui/web_ui_impl.cc -@@ -285,6 +285,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, +@@ -291,6 +291,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, message_callbacks_.emplace(message, std::move(callback)); } @@ -2000,7 +2016,7 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, const std::string& message, base::Value::List args) { -@@ -298,9 +302,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, +@@ -304,9 +308,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, return; } @@ -2062,7 +2078,7 @@ diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD. js_files = [ "iron-a11y-keys-behavior/iron-a11y-keys-behavior.js", -@@ -18,6 +18,16 @@ js_files = [ +@@ -17,6 +17,16 @@ js_files = [ "iron-scroll-target-behavior/iron-scroll-target-behavior.js", ] @@ -2139,13 +2155,14 @@ diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn --- a/ui/webui/resources/BUILD.gn +++ b/ui/webui/resources/BUILD.gn -@@ -49,6 +49,26 @@ generate_grd("build_grd") { +@@ -50,6 +50,28 @@ generate_grd("build_grd") { "$target_gen_dir/mojo/resources.grdp", ] + if (is_android) { + public_deps += [ + "cr_components/customize_color_scheme_mode:build_grdp", ++ "cr_components/cr_shortcut_input:build_grdp", + "cr_components/help_bubble:build_grdp", + "cr_components/localized_link:build_grdp", + "cr_components/managed_dialog:build_grdp", @@ -2155,6 +2172,7 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn + ] + grdp_files += [ + "$target_gen_dir/cr_components/customize_color_scheme_mode/resources.grdp", ++ "$target_gen_dir/cr_components/cr_shortcut_input/resources.grdp", + "$target_gen_dir/cr_components/help_bubble/resources.grdp", + "$target_gen_dir/cr_components/localized_link/resources.grdp", + "$target_gen_dir/cr_components/managed_dialog/resources.grdp", @@ -2166,6 +2184,18 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn if (!is_android && !is_ios) { public_deps += [ "cr_components/app_management:build_grdp", +diff --git a/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn b/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn +--- a/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn ++++ b/ui/webui/resources/cr_components/cr_shortcut_input/BUILD.gn +@@ -4,7 +4,7 @@ + + import("//ui/webui/resources/tools/build_webui.gni") + +-assert(!is_android && !is_ios) ++#assert(!is_android && !is_ios) + + build_webui("build") { + grd_prefix = "cr_components_cr_shortcut_input" diff --git a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn --- a/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn +++ b/ui/webui/resources/cr_components/customize_color_scheme_mode/BUILD.gn @@ -2262,9 +2292,9 @@ diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_ele diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css b/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css --- a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css +++ b/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css -@@ -22,7 +22,7 @@ dialog { - 0 16px 16px rgba(0, 0, 0, 0.24); +@@ -23,7 +23,7 @@ dialog { color: inherit; + line-height: 20px; max-height: initial; - max-width: initial; + max-width: 95%; diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 018aab68..e5e4c1c8 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -34,7 +34,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 -@@ -575,6 +575,7 @@ chrome_java_resources = [ +@@ -577,6 +577,7 @@ chrome_java_resources = [ "java/res/layout/signin_settings_card_view.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", @@ -45,7 +45,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1015,6 +1015,7 @@ chrome_java_sources = [ +@@ -1029,6 +1029,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SyncConsentActivity.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImpl.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentFragment.java", @@ -293,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; -@@ -672,6 +673,7 @@ public class ProcessInitializationHandler { +@@ -673,6 +674,7 @@ public class ProcessInitializationHandler { tasks.add(ClearDataDialogResultRecorder::makeDeferredRecordings); tasks.add(WebApkUninstallTracker::runDeferredTasks); @@ -468,7 +468,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 -@@ -322,6 +322,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -324,6 +324,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, @@ -479,7 +479,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 -@@ -472,6 +472,7 @@ public abstract class ChromeFeatureList { +@@ -474,6 +474,7 @@ public abstract class ChromeFeatureList { public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek"; public static final String READALOUD_IPH_MENU_BUTTON_HIGHLIGHT_CCT = "ReadAloudIPHMenuButtonHighlightCCT"; @@ -490,7 +490,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5921,6 +5921,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5861,6 +5861,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d Make sure a phone app is enabled on this device diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index ef775d1f..22b279b2 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js --- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js +++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js -@@ -1399,6 +1399,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume +@@ -1396,6 +1396,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content."); inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking."); inspectorBackend.registerCommand("Debugger.setBlackboxExecutionContexts", [{"name": "uniqueIds", "type": "array", "optional": false, "description": "Array of execution context unique ids for the debugger to ignore.", "typeRef": "string"}], [], "Replace previous blackbox execution contexts with passed ones. Forces backend to skip stepping/pausing in scripts in these execution contexts. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful."); @@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts -@@ -4791,6 +4791,10 @@ export namespace ProtocolMapping { +@@ -4800,6 +4800,10 @@ export namespace ProtocolMapping { paramsType: [Protocol.Debugger.SetBlackboxExecutionContextsRequest]; returnType: void; }; @@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts -@@ -4258,6 +4258,8 @@ declare namespace ProtocolProxyApi { +@@ -4259,6 +4259,8 @@ declare namespace ProtocolProxyApi { */ invoke_setBlackboxExecutionContexts(params: Protocol.Debugger.SetBlackboxExecutionContextsRequest): Promise; @@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts -@@ -18475,6 +18475,10 @@ export namespace Debugger { +@@ -18526,6 +18526,10 @@ export namespace Debugger { uniqueIds: string[]; } @@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json --- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json +++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json -@@ -27995,8 +27995,17 @@ +@@ -28019,8 +28019,17 @@ "$ref": "WasmDisassemblyChunk" } ] @@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools "name": "nextWasmDisassemblyChunk", "description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.", "experimental": true, -@@ -31156,4 +31165,4 @@ +@@ -31201,4 +31210,4 @@ ] } ] @@ -199,7 +199,7 @@ diff --git a/v8/include/js_protocol.pdl b/v8/include/js_protocol.pdl diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h --- a/v8/src/common/message-template.h +++ b/v8/src/common/message-template.h -@@ -745,6 +745,7 @@ namespace internal { +@@ -753,6 +753,7 @@ namespace internal { /* AggregateError */ \ T(AllPromisesRejected, "All promises were rejected") \ T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \ @@ -260,7 +260,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc --- a/v8/src/execution/messages.cc +++ b/v8/src/execution/messages.cc -@@ -484,6 +484,7 @@ MaybeHandle MessageFormatter::TryFormat( +@@ -485,6 +485,7 @@ MaybeHandle MessageFormatter::TryFormat( MessageTemplate::kUndefinedOrNullToObject, MessageTemplate::kUnexpectedStrictReserved, MessageTemplate::kUnexpectedTokenIdentifier, diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 39054803..a54a07cd 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -95,8 +95,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/common/script_constants.h | 33 + components/user_scripts/common/url_pattern.cc | 813 ++++++++++++++++++ components/user_scripts/common/url_pattern.h | 306 +++++++ - .../user_scripts/common/url_pattern_set.cc | 335 ++++++++ - .../user_scripts/common/url_pattern_set.h | 160 ++++ + .../user_scripts/common/url_pattern_set.cc | 229 +++++ + .../user_scripts/common/url_pattern_set.h | 103 +++ components/user_scripts/common/user_script.cc | 329 +++++++ components/user_scripts/common/user_script.h | 402 +++++++++ .../common/user_scripts_features.cc | 32 + @@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9514 insertions(+), 2 deletions(-) + 108 files changed, 9351 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -226,7 +226,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -198,7 +198,11 @@ if (current_toolchain == default_toolchain) { +@@ -195,7 +195,11 @@ if (current_toolchain == default_toolchain) { sources = chrome_java_resources sources += [ "//chrome/android/java/res_app/layout/main.xml" ] @@ -239,7 +239,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ":chrome_base_module_resources", ":ui_locale_string_resources", "//chrome/android/webapk/libs/common:splash_resources", -@@ -667,6 +671,7 @@ if (current_toolchain == default_toolchain) { +@@ -676,6 +680,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -265,7 +265,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java -@@ -74,6 +74,7 @@ import org.chromium.ui.base.DeviceFormFactor; +@@ -76,6 +76,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.MimeTypeUtils; import org.chromium.ui.widget.Toast; import org.chromium.url.GURL; @@ -273,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import java.io.File; -@@ -428,6 +429,11 @@ public class DownloadUtils { +@@ -430,6 +431,11 @@ public class DownloadUtils { String referrer, @DownloadOpenSource int source, Context context) { @@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -614,6 +616,8 @@ public class ProcessInitializationHandler { +@@ -615,6 +617,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni -@@ -19,6 +19,7 @@ import("//chrome/browser/tab_group_sync/android/test_java_sources.gni") +@@ -7,6 +7,7 @@ import("//chrome/android/chrome_java_sources.gni") import("//chrome/common/features.gni") import("//components/offline_pages/buildflags/features.gni") import("//device/vr/buildflags/buildflags.gni") @@ -317,7 +317,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni # Only used for testing, should not be shipped to end users. if (enable_offline_pages_harness) { -@@ -55,3 +56,5 @@ if (enable_cardboard) { +@@ -26,3 +27,5 @@ if (enable_cardboard) { "java/src/org/chromium/chrome/browser/vr/VrCompositorDelegateProviderImpl.java", ] } @@ -326,7 +326,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3448,6 +3448,13 @@ static_library("browser") { +@@ -3480,6 +3480,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -354,7 +354,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -270,6 +270,7 @@ +@@ -273,6 +273,7 @@ #include "components/ntp_tiles/popular_sites_impl.h" #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/webapps/browser/android/install_prompt_prefs.h" @@ -362,7 +362,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/device_api/device_service_impl.h" #include "chrome/browser/gcm/gcm_product_util.h" -@@ -2122,6 +2123,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2053,6 +2054,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -388,7 +388,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -565,6 +565,10 @@ +@@ -570,6 +570,10 @@ #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || // BUILDFLAG(IS_WIN) @@ -396,10 +396,10 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +#include "components/user_scripts/browser/userscripts_browser_client.h" +#endif + - namespace chrome { - void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -1361,6 +1365,9 @@ void ChromeBrowserMainExtraPartsProfiles:: + main_parts->AddParts(std::make_unique()); + } +@@ -1374,6 +1378,9 @@ void ChromeBrowserMainExtraPartsProfiles:: } #endif // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || // BUILDFLAG(IS_WIN) @@ -412,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -120,6 +120,10 @@ +@@ -123,6 +123,10 @@ #include "extensions/common/manifest.h" #endif @@ -423,7 +423,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1480,6 +1484,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1484,6 +1488,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, ChildAccountServiceFactory::GetForProfile(profile)->Init(); SupervisedUserServiceFactory::GetForProfile(profile)->Init(); ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); @@ -511,7 +511,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_NACL) #include "chrome/browser/ui/webui/nacl_ui.h" -@@ -405,4 +408,7 @@ void RegisterChromeWebUIConfigs() { +@@ -392,4 +395,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); #endif map.AddWebUIConfig(std::make_unique()); @@ -522,7 +522,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -133,6 +133,7 @@ template("chrome_extra_paks") { +@@ -140,6 +140,7 @@ template("chrome_extra_paks") { "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak", "$root_gen_dir/third_party/blink/public/strings/permission_element_generated_strings.pak", @@ -530,7 +530,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/ui/webui/resources/webui_resources.pak", ] deps = [ -@@ -152,6 +153,7 @@ template("chrome_extra_paks") { +@@ -160,6 +161,7 @@ template("chrome_extra_paks") { "//third_party/blink/public:resources", "//third_party/blink/public/strings:permission_element_generated_strings", "//ui/webui/resources", @@ -552,7 +552,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -238,6 +238,12 @@ static_library("renderer") { +@@ -236,6 +236,12 @@ static_library("renderer") { "//v8", ] @@ -580,7 +580,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; -@@ -462,6 +467,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -469,6 +474,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -595,7 +595,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -629,6 +642,15 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -636,6 +649,15 @@ void ChromeContentRendererClient::RenderFrameCreated( registry); #endif @@ -611,7 +611,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); #endif -@@ -1681,6 +1703,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1677,6 +1699,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -629,7 +629,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1690,6 +1723,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1686,6 +1719,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -647,7 +647,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1699,6 +1743,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1695,6 +1739,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -1633,11 +1633,11 @@ new file mode 100644 + + @Override + public void onBindViewHolder(ViewHolder viewHolder, int i) { -+ ((ScriptInfoRowViewHolder) viewHolder).updateScriptInfo(mElements.get(i)); ++ ((ScriptInfoRowViewHolder) viewHolder).updateScriptInfo(mItems.get(i)); + } + + void setDisplayedScriptInfo(List values) { -+ mElements = new ArrayList<>(values); ++ mItems = new ArrayList<>(values); + notifyDataSetChanged(); + } + @@ -5910,7 +5910,7 @@ diff --git a/components/user_scripts/common/url_pattern_set.cc b/components/user new file mode 100755 --- /dev/null +++ b/components/user_scripts/common/url_pattern_set.cc -@@ -0,0 +1,335 @@ +@@ -0,0 +1,229 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -5923,7 +5923,6 @@ new file mode 100755 +#include "base/containers/contains.h" +#include "base/logging.h" +#include "base/stl_util.h" -+#include "base/values.h" +#include "error_utils.h" +#include "url_pattern.h" +#include "url/gurl.h" @@ -5939,111 +5938,6 @@ new file mode 100755 + +} // namespace + -+// static -+URLPatternSet URLPatternSet::CreateDifference(const URLPatternSet& set1, -+ const URLPatternSet& set2) { -+ return URLPatternSet(base::STLSetDifference>( -+ set1.patterns_, set2.patterns_)); -+} -+ -+// static -+URLPatternSet URLPatternSet::CreateIntersection( -+ const URLPatternSet& set1, -+ const URLPatternSet& set2, -+ IntersectionBehavior intersection_behavior) { -+ // Note: leverage return value optimization; always return the same object. -+ URLPatternSet result; -+ -+ if (intersection_behavior == IntersectionBehavior::kStringComparison) { -+ // String comparison just relies on STL set behavior, which looks at the -+ // string representation. -+ result = URLPatternSet(base::STLSetIntersection>( -+ set1.patterns_, set2.patterns_)); -+ return result; -+ } -+ -+ // Look for a semantic intersection. -+ -+ // Step 1: Iterate over each set. Find any patterns that are completely -+ // contained by the other (thus being necessarily present in any intersection) -+ // and add them, collecting the others in a set of unique items. -+ // Note: Use a collection of pointers for the uniques to avoid excessive -+ // copies. Since these are owned by the URLPatternSet passed in, which is -+ // const, this should be safe. -+ std::vector unique_set1; -+ for (const URLPattern& pattern : set1) { -+ if (set2.ContainsPattern(pattern)) -+ result.patterns_.insert(pattern); -+ else -+ unique_set1.push_back(&pattern); -+ } -+ std::vector unique_set2; -+ for (const URLPattern& pattern : set2) { -+ if (set1.ContainsPattern(pattern)) -+ result.patterns_.insert(pattern); -+ else -+ unique_set2.push_back(&pattern); -+ } -+ -+ // If we're just looking for patterns contained by both, we're done. -+ if (intersection_behavior == IntersectionBehavior::kPatternsContainedByBoth) -+ return result; -+ -+ DCHECK_EQ(IntersectionBehavior::kDetailed, intersection_behavior); -+ -+ // Step 2: Iterate over all the unique patterns and find the intersections -+ // they have with the other patterns. -+ for (const auto* pattern : unique_set1) { -+ for (const auto* pattern2 : unique_set2) { -+ std::optional intersection = -+ pattern->CreateIntersection(*pattern2); -+ if (intersection) -+ result.patterns_.insert(std::move(*intersection)); -+ } -+ } -+ -+ return result; -+} -+ -+// static -+URLPatternSet URLPatternSet::CreateUnion(const URLPatternSet& set1, -+ const URLPatternSet& set2) { -+ return URLPatternSet( -+ base::STLSetUnion>(set1.patterns_, set2.patterns_)); -+} -+ -+// static -+URLPatternSet URLPatternSet::CreateUnion( -+ const std::vector& sets) { -+ URLPatternSet result; -+ if (sets.empty()) -+ return result; -+ -+ // N-way union algorithm is basic O(nlog(n)) merge algorithm. -+ // -+ // Do the first merge step into a working set so that we don't mutate any of -+ // the input. -+ // TODO(devlin): Looks like this creates a bunch of copies; we can probably -+ // clean that up. -+ std::vector working; -+ for (size_t i = 0; i < sets.size(); i += 2) { -+ if (i + 1 < sets.size()) -+ working.push_back(CreateUnion(sets[i], sets[i + 1])); -+ else -+ working.push_back(sets[i].Clone()); -+ } -+ -+ for (size_t skip = 1; skip < working.size(); skip *= 2) { -+ for (size_t i = 0; i < (working.size() - skip); i += skip) { -+ URLPatternSet u = CreateUnion(working[i], working[i + skip]); -+ working[i].patterns_.swap(u.patterns_); -+ } -+ } -+ -+ result.patterns_.swap(working[0].patterns_); -+ return result; -+} -+ +URLPatternSet::URLPatternSet() = default; + +URLPatternSet::URLPatternSet(URLPatternSet&& rhs) = default; @@ -6250,7 +6144,7 @@ diff --git a/components/user_scripts/common/url_pattern_set.h b/components/user_ new file mode 100755 --- /dev/null +++ b/components/user_scripts/common/url_pattern_set.h -@@ -0,0 +1,160 @@ +@@ -0,0 +1,103 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -6261,7 +6155,6 @@ new file mode 100755 +#include + +#include -+#include +#include + +#include "base/values.h" @@ -6278,64 +6171,8 @@ new file mode 100755 +// Represents the set of URLs an extension uses for web content. +class URLPatternSet { + public: -+ URLPatternSet(const URLPatternSet&) = delete; -+ URLPatternSet& operator=(const URLPatternSet&) = delete; -+ typedef std::set::const_iterator const_iterator; -+ typedef std::set::iterator iterator; -+ -+ // Returns |set1| - |set2|. -+ static URLPatternSet CreateDifference(const URLPatternSet& set1, -+ const URLPatternSet& set2); -+ -+ enum class IntersectionBehavior { -+ // For the following descriptions, consider the two URLPatternSets: -+ // Set 1: {"https://example.com/*", "https://*.google.com/*", "http://*/*"} -+ // Set 2: {"https://example.com/*", "https://google.com/maps", -+ // "*://chromium.org/*"} -+ -+ // Only includes patterns that are exactly in both sets. The intersection of -+ // the two sets above is {"https://example.com/*"}, since that is the only -+ // pattern that appears exactly in each. -+ kStringComparison, -+ -+ // Includes patterns that are effectively contained by both sets. The -+ // intersection of the two sets above is -+ // { -+ // "https://example.com/*" (contained exactly by each set) -+ // "https://google.com/maps" (contained exactly by set 2 and a strict -+ // subset of https://*.google.com/* in set 1) -+ // } -+ kPatternsContainedByBoth, -+ -+ // Includes patterns that are contained by both sets and creates new -+ // patterns to represent the intersection of any others. The intersection of -+ // the two sets above is -+ // { -+ // "https://example.com/*" (contained exactly by each set) -+ // "https://google.com/maps" (contained exactly by set 2 and a strict -+ // subset of https://*.google.com/* in set 1) -+ // "http://chromium.org/*" (the overlap between "http://*/*" in set 1 and -+ // *://chromium.org/*" in set 2). -+ // } -+ // Note that this is the most computationally expensive - potentially -+ // O(n^2) - since it can require comparing each pattern in one set to every -+ // pattern in the other set. -+ kDetailed, -+ }; -+ -+ // Returns the intersection of |set1| and |set2| according to -+ // |intersection_behavior|. -+ static URLPatternSet CreateIntersection( -+ const URLPatternSet& set1, -+ const URLPatternSet& set2, -+ IntersectionBehavior intersection_behavior); -+ -+ // Returns the union of |set1| and |set2|. -+ static URLPatternSet CreateUnion(const URLPatternSet& set1, -+ const URLPatternSet& set2); -+ -+ // Returns the union of all sets in |sets|. -+ static URLPatternSet CreateUnion(const std::vector& sets); ++ using const_iterator = std::set::const_iterator; ++ using iterator = std::set::iterator; + + URLPatternSet(); + URLPatternSet(URLPatternSet&& rhs); @@ -10501,7 +10338,7 @@ diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1051,6 +1051,12 @@ +@@ -1099,6 +1099,12 @@ "META": {"sizes": {"includes": [30],}}, "includes": [7480], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index c3b1ae4d..44f21de3 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -189,7 +189,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -168,8 +168,6 @@ static_library("browser") { +@@ -177,8 +177,6 @@ static_library("browser") { "adblock/adblock_content_browser_client.h", "adblock/adblock_controller_factory.cc", "adblock/adblock_controller_factory.h", @@ -201,7 +201,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/browser/adblock/adblock_content_browser_client.cc --- a/chrome/browser/adblock/adblock_content_browser_client.cc +++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -24,6 +24,8 @@ +@@ -23,6 +23,8 @@ #include "chrome/browser/adblock/resource_classification_runner_factory.h" #include "chrome/browser/adblock/sitekey_storage_factory.h" #include "chrome/browser/adblock/subscription_service_factory.h" @@ -210,7 +210,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser_navigator_params.h" #include "components/adblock/content/browser/adblock_url_loader_factory.h" -@@ -41,6 +43,7 @@ +@@ -40,6 +42,7 @@ #include "content/public/browser/web_contents.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "services/network/public/mojom/websocket.mojom.h" @@ -218,7 +218,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b #include "services/service_manager/public/cpp/binder_registry.h" #include "third_party/blink/public/common/loader/url_loader_throttle.h" -@@ -54,17 +57,41 @@ +@@ -53,17 +56,41 @@ namespace { @@ -242,7 +242,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b + } + // Filtering may be needed if there's at least one enabled + // FilteringConfiguration. -+ bool ret = base::ranges::any_of( ++ bool ret = std::ranges::any_of( + adblock::SubscriptionServiceFactory::GetForBrowserContext(profile) + ->GetInstalledFilteringConfigurations(), + &adblock::FilteringConfiguration::IsEnabled); @@ -266,7 +266,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b } } return false; -@@ -79,10 +106,11 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -78,10 +105,11 @@ class AdblockContextData : public base::SupportsUserData::Data { static void StartProxying( Profile* profile, @@ -280,7 +280,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b bool use_test_loader) { const void* const kAdblockContextUserDataKey = &kAdblockContextUserDataKey; auto* self = static_cast( -@@ -91,8 +119,6 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -90,8 +118,6 @@ class AdblockContextData : public base::SupportsUserData::Data { self = new AdblockContextData(); profile->SetUserData(kAdblockContextUserDataKey, base::WrapUnique(self)); } @@ -289,7 +289,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b adblock::AdblockURLLoaderFactoryConfig config{ adblock::SubscriptionServiceFactory::GetForBrowserContext( browser_context), -@@ -102,28 +128,12 @@ class AdblockContextData : public base::SupportsUserData::Data { +@@ -101,28 +127,12 @@ class AdblockContextData : public base::SupportsUserData::Data { adblock::SitekeyStorageFactory::GetForBrowserContext(browser_context), adblock::ContentSecurityPolicyInjectorFactory::GetForBrowserContext( browser_context)}; @@ -321,7 +321,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b embedder_support::GetUserAgent(), base::BindOnce(&AdblockContextData::RemoveProxy, self->weak_factory_.GetWeakPtr())); -@@ -163,47 +173,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() { +@@ -162,47 +172,50 @@ void AdblockContentBrowserClient::ForceAdblockProxyForTesting() { #endif bool AdblockContentBrowserClient::WillInterceptWebSocket( @@ -389,7 +389,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b auto* subscription_service = adblock::SubscriptionServiceFactory::GetForBrowserContext( browser_context); -@@ -211,33 +224,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal( +@@ -210,33 +223,33 @@ void AdblockContentBrowserClient::CreateWebSocketInternal( adblock::ResourceClassificationRunnerFactory::GetForBrowserContext( browser_context); classification_runner->CheckRequestFilterMatchForWebSocket( @@ -431,7 +431,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b std::move(handshake_client)); return; } -@@ -254,15 +267,134 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( +@@ -253,15 +266,134 @@ void AdblockContentBrowserClient::OnWebSocketFilterCheckCompleted( VLOG(1) << "[eyeo] Web socket blocked for " << url; } @@ -568,7 +568,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b mojo::PendingRemote* header_client, bool* bypass_redirect_checks, -@@ -271,30 +403,17 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( +@@ -270,30 +402,17 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( scoped_refptr navigation_response_task_runner) { // Create Chromium proxy first as WebRequestProxyingURLLoaderFactory logic // depends on being first proxy @@ -608,7 +608,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b bool use_test_loader = false; #ifdef EYEO_INTERCEPT_DEBUG_URL -@@ -309,12 +428,8 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( +@@ -308,12 +427,8 @@ bool AdblockContentBrowserClient::WillCreateURLLoaderFactory( #endif if (use_adblock_proxy) { @@ -723,7 +723,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6604,7 +6604,9 @@ ChromeContentBrowserClient:: +@@ -6621,7 +6621,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -734,7 +734,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS) if (!frame) { return false; -@@ -6627,9 +6629,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6643,9 +6645,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -749,7 +749,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -691,11 +691,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -696,11 +696,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( content::FrameTreeNodeId frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -1009,7 +1009,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/adblock/content_security_policy_injector_factory.h" #include "chrome/browser/adblock/element_hider_factory.h" #include "chrome/browser/adblock/resource_classification_runner_factory.h" -@@ -897,7 +896,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -906,7 +905,6 @@ void ChromeBrowserMainExtraPartsProfiles:: FakeSmartCardDeviceServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); @@ -1051,7 +1051,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page.ts", "appearance_page/home_url_input.ts", -@@ -377,6 +378,7 @@ build_webui("build") { +@@ -381,6 +382,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1570,7 +1570,7 @@ new file mode 100644 diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chrome/browser/resources/settings/basic_page/basic_page.html --- a/chrome/browser/resources/settings/basic_page/basic_page.html +++ b/chrome/browser/resources/settings/basic_page/basic_page.html -@@ -47,6 +47,13 @@ +@@ -53,6 +53,13 @@ @@ -1587,7 +1587,7 @@ diff --git a/chrome/browser/resources/settings/basic_page/basic_page.html b/chro diff --git a/chrome/browser/resources/settings/basic_page/basic_page.ts b/chrome/browser/resources/settings/basic_page/basic_page.ts --- a/chrome/browser/resources/settings/basic_page/basic_page.ts +++ b/chrome/browser/resources/settings/basic_page/basic_page.ts -@@ -10,6 +10,7 @@ import 'chrome://resources/cr_elements/cr_hidden_style.css.js'; +@@ -12,6 +12,7 @@ import 'chrome://resources/cr_elements/cr_icon/cr_icon.js'; import 'chrome://resources/cr_elements/cr_shared_style.css.js'; import 'chrome://resources/cr_elements/cr_shared_vars.css.js'; import '../ai_page/ai_page.js'; @@ -1609,7 +1609,7 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -236,6 +236,10 @@ function createRoutes(): SettingsRoutes { +@@ -237,6 +237,10 @@ function createRoutes(): SettingsRoutes { r.FONTS = r.APPEARANCE.createChild('/fonts'); } @@ -1660,7 +1660,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html 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 -@@ -21,6 +21,7 @@ +@@ -20,6 +20,7 @@ #include "chrome/browser/adblock/element_hider_factory.h" #include "chrome/browser/adblock/sitekey_storage_factory.h" #include "chrome/browser/adblock/subscription_service_factory.h" @@ -1668,7 +1668,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -350,6 +351,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -341,6 +342,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } } @@ -1677,7 +1677,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc AdblockWebContentObserver::CreateForWebContents( web_contents, adblock::SubscriptionServiceFactory::GetForBrowserContext( -@@ -358,7 +361,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -349,7 +352,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents->GetBrowserContext()), adblock::SitekeyStorageFactory::GetForBrowserContext( web_contents->GetBrowserContext()), @@ -2660,7 +2660,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ } } // namespace -@@ -186,8 +186,13 @@ class AdblockURLLoaderFactory::InProgressRequest +@@ -184,8 +184,13 @@ class AdblockURLLoaderFactory::InProgressRequest void OnRequestError(int error_code); void CheckFilterMatch(CheckFilterMatchCallback callback); void ProcessResponseHeaders( @@ -2674,7 +2674,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ void CheckRewriteFilterMatch(CheckRewriteFilterMatchCallback callback); void OnRequestUrlClassified(CheckFilterMatchCallback callback, FilterMatchResult result); -@@ -307,7 +312,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( +@@ -293,7 +298,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( VLOG(1) << "[eyeo] Sending headers for processing: " << request_url_; client_receiver_.Pause(); const scoped_refptr& headers = head->headers; @@ -2684,7 +2684,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ headers, base::BindOnce(&InProgressRequest::OnProcessHeadersResult, weak_factory_.GetWeakPtr(), std::move(head), std::move(body), std::move(cached_metadata))); -@@ -344,12 +351,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( +@@ -330,12 +337,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( CheckFilterMatchCallback callback) { @@ -2697,7 +2697,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; if (is_document_request_) { auto* host = content::RenderFrameHost::FromID(factory_->host_id_); -@@ -386,9 +387,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -372,9 +373,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( FilterMatchResult::kNoRule); } } else { @@ -2710,7 +2710,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ base::BindOnce( &AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified, weak_factory_.GetWeakPtr(), -@@ -399,6 +401,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -385,6 +387,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( } void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( @@ -2718,7 +2718,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ const scoped_refptr& headers, ProcessResponseHeadersCallback callback) { if (!factory_->CheckHostValid()) { -@@ -407,6 +410,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( +@@ -393,6 +396,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( return; } @@ -2755,7 +2755,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; factory_->config_.resource_classifier->CheckResponseFilterMatch( subscription_service->GetCurrentSnapshot(), request_url_, -@@ -677,12 +710,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( +@@ -663,12 +696,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( AdblockURLLoaderFactory::AdblockURLLoaderFactory( AdblockURLLoaderFactoryConfig config, @@ -2771,7 +2771,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ host_id_(host_id), user_agent_string_(std::move(user_agent_string)), on_disconnect_(std::move(on_disconnect)) { -@@ -691,10 +725,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( +@@ -677,10 +711,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( DCHECK(config_.element_hider); DCHECK(config_.sitekey_storage); DCHECK(config_.csp_injector); @@ -3685,7 +3685,7 @@ deleted file mode 100644 diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adblock/core/adblock_controller_impl.cc --- a/components/adblock/core/adblock_controller_impl.cc +++ b/components/adblock/core/adblock_controller_impl.cc -@@ -103,6 +103,7 @@ bool AdblockControllerImpl::IsAdblockEnabled() const { +@@ -102,6 +102,7 @@ bool AdblockControllerImpl::IsAdblockEnabled() const { } void AdblockControllerImpl::SetAcceptableAdsEnabled(bool enabled) { @@ -3693,7 +3693,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb if (enabled) { InstallSubscription(AcceptableAdsUrl()); } else { -@@ -117,6 +118,7 @@ bool AdblockControllerImpl::IsAcceptableAdsEnabled() const { +@@ -116,6 +117,7 @@ bool AdblockControllerImpl::IsAcceptableAdsEnabled() const { } void AdblockControllerImpl::InstallSubscription(const GURL& url) { @@ -3701,7 +3701,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb adblock_filtering_configuration_->AddFilterList(url); } -@@ -165,10 +167,8 @@ void AdblockControllerImpl::RunFirstRunLogic(PrefService* pref_service) { +@@ -164,10 +166,8 @@ void AdblockControllerImpl::RunFirstRunLogic(PrefService* pref_service) { common::prefs::kInstallFirstStartSubscriptions)) { // On first run, install additional subscriptions. for (const auto& cur : known_subscriptions_) { @@ -3714,7 +3714,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb // Do not install Acceptable Ads on first run because a command line // switch forbids it. Mostly used for testing. continue; -@@ -236,7 +236,7 @@ void AdblockControllerImpl::InstallLanguageBasedRecommendedSubscriptions() { +@@ -235,7 +235,7 @@ void AdblockControllerImpl::InstallLanguageBasedRecommendedSubscriptions() { SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch && std::find(subscription.languages.begin(), subscription.languages.end(), language_) != subscription.languages.end()) { @@ -4373,7 +4373,7 @@ diff --git a/components/adblock/core/converter/flatbuffer_converter.cc b/compone diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/adblock/core/converter/parser/metadata.cc --- a/components/adblock/core/converter/parser/metadata.cc +++ b/components/adblock/core/converter/parser/metadata.cc -@@ -58,13 +58,6 @@ std::optional Metadata::FromStream(std::istream& filter_stream) { +@@ -57,13 +57,6 @@ std::optional Metadata::FromStream(std::istream& filter_stream) { if (key == "homepage") { homepage = value; } else if (key == "redirect") { @@ -4387,7 +4387,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a } else if (key == "title") { title = value; } else if (key == "version") { -@@ -107,6 +100,7 @@ Metadata::~Metadata() = default; +@@ -106,6 +99,7 @@ Metadata::~Metadata() = default; // static bool Metadata::IsValidAdblockHeader(const std::string& adblock_header) { @@ -4395,7 +4395,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a static re2::RE2 adblock_header_re("^\\[Adblock.*\\]"); std::string adblock_header_trimmed; -@@ -131,7 +125,7 @@ base::TimeDelta Metadata::ParseExpirationTime( +@@ -130,7 +124,7 @@ base::TimeDelta Metadata::ParseExpirationTime( if (!re2::RE2::FullMatch(expiration_value, expiration_time_re, &expiration_time, &expiration_unit)) { @@ -4947,7 +4947,7 @@ diff --git a/components/adblock/core/subscription/ongoing_subscription_request_i diff --git a/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc --- a/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc +++ b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc -@@ -62,10 +62,10 @@ class PreloadedSubscriptionProviderImpl::SingleSubscriptionProvider { +@@ -61,10 +61,10 @@ class PreloadedSubscriptionProviderImpl::SingleSubscriptionProvider { utils::MakeFlatbufferDataFromResourceBundle( info_.flatbuffer_resource_id), Subscription::InstallationState::Preloaded, base::Time()); @@ -5007,7 +5007,7 @@ diff --git a/components/adblock/core/subscription/subscription.h b/components/ad diff --git a/components/adblock/core/subscription/subscription_collection_impl.cc b/components/adblock/core/subscription/subscription_collection_impl.cc --- a/components/adblock/core/subscription/subscription_collection_impl.cc +++ b/components/adblock/core/subscription/subscription_collection_impl.cc -@@ -342,6 +342,7 @@ std::set SubscriptionCollectionImpl::GetHeaderFilters( +@@ -341,6 +341,7 @@ std::set SubscriptionCollectionImpl::GetHeaderFilters( ContentType content_type, FilterCategory category) const { std::set filters{}; @@ -5124,7 +5124,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.h b/compon diff --git a/components/adblock/core/subscription/subscription_downloader_impl.cc b/components/adblock/core/subscription/subscription_downloader_impl.cc --- a/components/adblock/core/subscription/subscription_downloader_impl.cc +++ b/components/adblock/core/subscription/subscription_downloader_impl.cc -@@ -55,6 +55,7 @@ GURL AddUrlParameters(const GURL& subscription_url, +@@ -54,6 +54,7 @@ GURL AddUrlParameters(const GURL& subscription_url, const SubscriptionPersistentMetadata* persistent_metadata, const utils::AppInfo& client_metadata, const bool is_disabled) { @@ -5132,7 +5132,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c const std::string query = base::StrCat( {"addonName=", "eyeo-chromium-sdk", "&addonVersion=", "1.0", "&application=", base::EscapeQueryParamValue(client_metadata.name, true), -@@ -115,6 +116,8 @@ void SubscriptionDownloaderImpl::StartDownload( +@@ -114,6 +115,8 @@ void SubscriptionDownloaderImpl::StartDownload( } void SubscriptionDownloaderImpl::CancelDownload(const GURL& subscription_url) { @@ -5141,7 +5141,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); ongoing_downloads_.erase(subscription_url); } -@@ -139,10 +142,6 @@ void SubscriptionDownloaderImpl::DoHeadRequest( +@@ -138,10 +141,6 @@ void SubscriptionDownloaderImpl::DoHeadRequest( bool SubscriptionDownloaderImpl::IsUrlAllowed( const GURL& subscription_url) const { @@ -5152,7 +5152,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c if (!subscription_url.SchemeIs("https") && !subscription_url.SchemeIs("data")) { return false; -@@ -156,12 +155,14 @@ void SubscriptionDownloaderImpl::OnHeadersOnlyDownloaded( +@@ -155,12 +154,14 @@ void SubscriptionDownloaderImpl::OnHeadersOnlyDownloaded( scoped_refptr headers) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(ongoing_ping_.has_value()); @@ -5170,7 +5170,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c } std::move(std::get(*ongoing_ping_)) -@@ -192,11 +193,11 @@ void SubscriptionDownloaderImpl::OnDownloadFinished( +@@ -191,11 +192,11 @@ void SubscriptionDownloaderImpl::OnDownloadFinished( persistent_metadata_->IncrementDownloadErrorCount(subscription_url); if (std::get(download_it->second) == RetryPolicy::RetryUntilSucceeded) { @@ -5184,7 +5184,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c << subscription_url << ", will abort"; std::move(std::get(download_it->second)) .Run(nullptr); -@@ -213,8 +214,10 @@ void SubscriptionDownloaderImpl::OnDownloadFinished( +@@ -212,8 +213,10 @@ void SubscriptionDownloaderImpl::OnDownloadFinished( TRACE_ID_LOCAL(GenerateTraceId(subscription_url)), "url", subscription_url.spec()); @@ -5196,7 +5196,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c base::BindOnce(&SubscriptionDownloaderImpl::OnConversionFinished, weak_ptr_factory_.GetWeakPtr(), subscription_url)); } -@@ -228,14 +231,14 @@ void SubscriptionDownloaderImpl::OnConversionFinished( +@@ -227,14 +230,14 @@ void SubscriptionDownloaderImpl::OnConversionFinished( TRACE_ID_LOCAL(GenerateTraceId(subscription_url))); const auto download_it = ongoing_downloads_.find(subscription_url); if (download_it == ongoing_downloads_.end()) { @@ -5213,7 +5213,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c << " successfully"; std::move(std::get(download_it->second)) .Run(std::move( -@@ -278,7 +281,7 @@ void SubscriptionDownloaderImpl::AbortWithWarning( +@@ -277,7 +280,7 @@ void SubscriptionDownloaderImpl::AbortWithWarning( if (ongoing_download_it == ongoing_downloads_.end()) { return; } @@ -5338,7 +5338,7 @@ diff --git a/components/adblock/core/subscription/subscription_service.h b/compo diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b/components/adblock/core/subscription/subscription_service_impl.cc --- a/components/adblock/core/subscription/subscription_service_impl.cc +++ b/components/adblock/core/subscription/subscription_service_impl.cc -@@ -36,9 +36,23 @@ +@@ -35,9 +35,23 @@ #include "components/adblock/core/subscription/filtering_configuration_maintainer.h" #include "components/adblock/core/subscription/subscription_collection.h" #include "components/adblock/core/subscription/subscription_service.h" @@ -5351,7 +5351,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b +bool IsKnownSubscription( + const std::vector& known_subscriptions, + const GURL& url) { -+ return base::ranges::any_of(known_subscriptions, ++ return std::ranges::any_of(known_subscriptions, + [&](const auto& known_subscription) { + return known_subscription.url == url; + }); @@ -5362,7 +5362,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b class EmptySubscription : public Subscription { public: EmptySubscription(const GURL& url) : url_(url) {} -@@ -133,6 +147,68 @@ void SubscriptionServiceImpl::UninstallFilteringConfiguration( +@@ -132,6 +146,68 @@ void SubscriptionServiceImpl::UninstallFilteringConfiguration( maintainers_.erase(it); } @@ -5402,12 +5402,12 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b + GetCurrentSubscriptions(configuration); + + auto known_subscriptions = adblock::config::GetKnownSubscriptions(); -+ selected.erase(base::ranges::remove_if(selected, -+ [&](const auto& subscription) { -+ return IsKnownSubscription( -+ known_subscriptions, -+ subscription->GetSourceUrl()); -+ }), ++ selected.erase(std::remove_if(selected.begin(), selected.end(), ++ [&known_subscriptions](const auto& subscription) { ++ return IsKnownSubscription( ++ known_subscriptions, ++ subscription->GetSourceUrl()); ++ }), + selected.end()); + return selected; +} @@ -5419,7 +5419,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b +raw_ptr SubscriptionServiceImpl::GetMetadataFor( + raw_ptr configuration) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) { ++ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) { + return entry.first.get() == configuration; + }); + if (it != maintainers_.end() && it->second) { @@ -5431,7 +5431,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b std::vector SubscriptionServiceImpl::GetInstalledFilteringConfigurations() { std::vector result; -@@ -178,7 +254,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( +@@ -177,7 +253,7 @@ void SubscriptionServiceImpl::OnEnabledStateChanged( }); DCHECK(it != maintainers_.end()) << "Received OnEnabledStateChanged from " "unregistered FilteringConfiguration"; @@ -5563,7 +5563,7 @@ new file mode 100644 diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn -@@ -91,7 +91,6 @@ grit("components_resources") { +@@ -100,7 +100,6 @@ grit("components_resources") { deps += [ "//components/resources/adblocking:copy_snippets_lib", @@ -10566,7 +10566,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1093,7 +1093,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1108,7 +1108,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -10575,7 +10575,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1102,9 +1102,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1117,9 +1117,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -10590,7 +10590,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -2051,7 +2051,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2070,7 +2070,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -10599,7 +10599,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br // Returns the WebSocket creation options. virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -2073,9 +2073,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2092,9 +2092,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -10633,7 +10633,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -649,6 +649,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( +@@ -647,6 +647,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( } } @@ -10651,7 +10651,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h --- a/third_party/blink/renderer/core/css/style_engine.h +++ b/third_party/blink/renderer/core/css/style_engine.h -@@ -266,6 +266,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, +@@ -280,6 +280,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, const ComputedStyle* embedder_style) const; void ViewportStyleSettingChanged(); @@ -10662,7 +10662,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/bl diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -291,6 +291,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -286,6 +286,16 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( Document* document = Unwrap(); DCHECK(document); @@ -10679,7 +10679,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa auto* parsed_sheet = MakeGarbageCollected( MakeGarbageCollected(*document)); parsed_sheet->ParseString(source_code); -@@ -300,7 +310,7 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -295,7 +305,7 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( if (IsValidAbpRule(parsed_sheet->RuleAt(n))) ++n; else { @@ -10688,7 +10688,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa parsed_sheet->WrapperDeleteRule(n); LOG(WARNING) << "[eyeo] Broken rule"; } -@@ -312,9 +322,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( +@@ -307,9 +317,6 @@ WebStyleSheetKey WebDocument::InsertAbpElemhideStylesheet( {SchedulingPolicy::DisableBackForwardCache()}); } diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index 40e9be3b..d7921db6 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -44,7 +44,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -226,6 +226,7 @@ static_library("safe_browsing") { +@@ -231,6 +231,7 @@ static_library("safe_browsing") { "//components/webdata/common", "//content/public/browser", "//services/preferences/public/mojom:mojom", @@ -55,7 +55,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn --- a/components/component_updater/installer_policies/BUILD.gn +++ b/components/component_updater/installer_policies/BUILD.gn -@@ -47,6 +47,7 @@ static_library("installer_policies_no_content_deps") { +@@ -54,6 +54,7 @@ static_library("installer_policies_no_content_deps") { "//components/update_client", "//mojo/public/cpp/base:protobuf_support", "//services/network/public/cpp", @@ -143,7 +143,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1740,6 +1740,7 @@ component("net") { +@@ -1746,6 +1746,7 @@ component("net") { if (!is_cronet_build) { deps += [ "//mojo/public/cpp/bindings:default_construct_tag" ] } diff --git a/build/patches/Fix-chromium-vanilla.patch b/build/patches/Fix-chromium-vanilla.patch index 2a219151..6aec55cc 100644 --- a/build/patches/Fix-chromium-vanilla.patch +++ b/build/patches/Fix-chromium-vanilla.patch @@ -23,7 +23,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java b/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java --- a/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java +++ b/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java -@@ -238,6 +238,7 @@ public final class SafeBrowsingApiBridge { +@@ -241,6 +241,7 @@ public final class SafeBrowsingApiBridge { @CalledByNative private static void startUriLookupBySafeBrowsingApi( long callbackId, String uri, int[] threatTypes, int protocol) { diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index c5e5e824..b65979c7 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -70,7 +70,7 @@ new file mode 100644 diff --git a/skia/ext/skia_utils_win.cc b/skia/ext/skia_utils_win.cc --- a/skia/ext/skia_utils_win.cc +++ b/skia/ext/skia_utils_win.cc -@@ -370,6 +370,26 @@ void CreateBitmapHeaderForXRGB888(int width, +@@ -371,6 +371,26 @@ void CreateBitmapHeaderForXRGB888(int width, CreateBitmapHeaderWithColorDepth(width, height, 32, hdr); } @@ -94,9 +94,9 @@ diff --git a/skia/ext/skia_utils_win.cc b/skia/ext/skia_utils_win.cc + } +} + - base::win::ScopedBitmap CreateHBitmapXRGB8888(int width, - int height, - HANDLE shared_section, + base::win::ScopedGDIObject CreateHBitmapXRGB8888(int width, + int height, + HANDLE shared_section, diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h --- a/skia/ext/skia_utils_win.h +++ b/skia/ext/skia_utils_win.h @@ -116,11 +116,11 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h + // Creates an HBITMAP backed by 32-bits-per-pixel RGB data (the high bits are // unused in each pixel). - SK_API base::win::ScopedBitmap CreateHBitmapXRGB8888( + SK_API base::win::ScopedGDIObject CreateHBitmapXRGB8888( 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 -@@ -257,6 +257,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, +@@ -260,6 +260,9 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, kMaxDiskDataAllocatorCapacityMB); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); @@ -133,7 +133,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -795,6 +795,7 @@ component("platform") { +@@ -786,6 +786,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index ac72c0ae..1c371c04 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1605,7 +1605,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1595,7 +1595,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterIntegerPref( prefs::kUserAgentReduction, static_cast( @@ -24,7 +24,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc --- a/content/common/user_agent.cc +++ b/content/common/user_agent.cc -@@ -347,14 +347,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) { +@@ -352,14 +352,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) { } std::string BuildModelInfo() { @@ -40,7 +40,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc } #if BUILDFLAG(IS_ANDROID) -@@ -383,6 +376,10 @@ std::string GetAndroidOSInfo( +@@ -388,6 +381,10 @@ std::string GetAndroidOSInfo( IncludeAndroidModel include_android_model) { std::string android_info_str; @@ -54,7 +54,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3508,23 +3508,23 @@ +@@ -3525,23 +3525,23 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch index ebe71112..cd696405 100644 --- a/build/patches/Hardening-against-incognito-mode-detection.patch +++ b/build/patches/Hardening-against-incognito-mode-detection.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota/quota_manager_impl.cc --- a/storage/browser/quota/quota_manager_impl.cc +++ b/storage/browser/quota/quota_manager_impl.cc -@@ -1804,7 +1804,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( +@@ -1816,7 +1816,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey( } if (type == StorageType::kTemporary && special_storage_policy_ && @@ -23,7 +23,7 @@ diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota diff --git a/storage/browser/quota/quota_settings.cc b/storage/browser/quota/quota_settings.cc --- a/storage/browser/quota/quota_settings.cc +++ b/storage/browser/quota/quota_settings.cc -@@ -60,7 +60,7 @@ std::optional CalculateNominalDynamicSettings( +@@ -55,7 +55,7 @@ std::optional CalculateNominalDynamicSettings( base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, base::BlockingType::MAY_BLOCK); diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 2c0086d9..60597ea7 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -149,6 +149,12 @@ found in the LICENSE file. +@@ -143,6 +143,12 @@ found in the LICENSE file. android:title="@string/cablev2_paask_title" android:summary="@string/cablev2_paask_body" android:fragment="org.chromium.chrome.browser.webauthn.PrivacySettingsFragment" /> @@ -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/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 -@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; +@@ -49,6 +49,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsUtils; @@ -64,7 +64,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; import org.chromium.components.browser_ui.site_settings.SingleCategorySettings; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -77,6 +78,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -76,6 +77,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment implements Preference.OnPreferenceChangeListener { -@@ -124,6 +128,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -119,6 +123,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(Bundle savedInstanceState, String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -278,6 +284,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -273,6 +279,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (showTrackingProtectionUi()) { if (thirdPartyCookies != null) thirdPartyCookies.setVisible(false); -@@ -566,6 +606,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -553,6 +593,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment && ChromeFeatureList.isEnabled(ChromeFeatureList.FINGERPRINTING_PROTECTION_UX); } @@ -190,7 +190,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -379,6 +379,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -382,6 +382,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -247,7 +247,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 -@@ -1404,6 +1404,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1400,6 +1400,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -269,7 +269,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 -@@ -1932,6 +1932,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1948,6 +1948,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, IDS_SETTINGS_SAFEBROWSING_ENHANCED_THINGS_TO_CONSIDER_BULLET_THREE}, {"safeBrowsingStandard", IDS_SETTINGS_SAFEBROWSING_STANDARD}, {"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC}, @@ -361,7 +361,7 @@ diff --git a/components/browser_ui/settings/android/java/res/layout/preference_s diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java -@@ -6,6 +6,7 @@ package org.chromium.components.browser_ui.settings; +@@ -8,6 +8,7 @@ import static org.chromium.build.NullUtil.assumeNonNull; import android.content.Context; import android.content.res.TypedArray; @@ -369,17 +369,17 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium import android.util.AttributeSet; import android.view.View; import android.widget.AdapterView; -@@ -88,6 +89,12 @@ public class SpinnerPreference extends Preference { +@@ -94,6 +95,12 @@ public class SpinnerPreference extends Preference { super.onBindViewHolder(holder); - ((TextView) holder.findViewById(R.id.title)).setText(getTitle()); + ((TextView) assumeNonNull(holder.findViewById(R.id.title))).setText(getTitle()); + CharSequence summary = getSummary(); + TextView summaryView = ((TextView) holder.findViewById(R.id.summary)); + if (summaryView != null && !TextUtils.isEmpty(summary)) { + summaryView.setText(summary); + summaryView.setVisibility(View.VISIBLE); + } - mSpinner = (Spinner) holder.findViewById(R.id.spinner); + mSpinner = (Spinner) assumeNonNull(holder.findViewById(R.id.spinner)); mSpinner.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { diff --git a/components/cromite_components_strings_grd/History-number-of-days-privacy-setting.grdp b/components/cromite_components_strings_grd/History-number-of-days-privacy-setting.grdp @@ -640,7 +640,7 @@ diff --git a/components/history_embeddings/sql_database.cc b/components/history_ diff --git a/components/omnibox/browser/shortcuts_backend.cc b/components/omnibox/browser/shortcuts_backend.cc --- a/components/omnibox/browser/shortcuts_backend.cc +++ b/components/omnibox/browser/shortcuts_backend.cc -@@ -511,7 +511,7 @@ void ShortcutsBackend::ComputeDatabaseMetrics() { +@@ -509,7 +509,7 @@ void ShortcutsBackend::ComputeDatabaseMetrics() { const base::Time now(base::Time::Now()); for (const auto& shortcut_pair : shortcuts_map_) { if (now - shortcut_pair.second.last_access_time > @@ -649,7 +649,7 @@ diff --git a/components/omnibox/browser/shortcuts_backend.cc b/components/omnibo num_old_shortcuts++; } } -@@ -629,7 +629,7 @@ bool ShortcutsBackend::DeleteOldShortcuts() { +@@ -627,7 +627,7 @@ bool ShortcutsBackend::DeleteOldShortcuts() { const base::Time now(base::Time::Now()); for (const auto& guid_pair : guid_map_) { if (now - guid_pair.second->second.last_access_time > diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index fd317151..150e6b05 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -59,7 +59,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2407,6 +2407,7 @@ static_library("browser") { +@@ -2444,6 +2444,7 @@ static_library("browser") { "//third_party/ungoogled:switches", "//services/device/public/mojom", "//services/device/public/mojom:usb", @@ -289,7 +289,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1116,6 +1116,7 @@ component("net") { +@@ -1122,6 +1122,7 @@ component("net") { "//components/network_time/time_tracker", "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", @@ -1654,7 +1654,7 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -100,6 +100,7 @@ +@@ -99,6 +99,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" @@ -1662,7 +1662,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont #include "services/network/brokered_client_socket_factory.h" #include "services/network/cookie_manager.h" #include "services/network/data_remover_util.h" -@@ -1790,6 +1791,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1794,6 +1795,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { void NetworkContext::CreateUDPSocket( mojo::PendingReceiver receiver, mojo::PendingRemote listener) { @@ -1672,7 +1672,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener)); } -@@ -1802,6 +1806,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1806,6 +1810,17 @@ void NetworkContext::CreateRestrictedUDPSocket( mojo::PendingRemote listener, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. @@ -1690,7 +1690,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateRestrictedUDPSocket( addr, mode, traffic_annotation, std::move(params), std::move(receiver), std::move(listener), SimpleHostResolver::Create(this), -@@ -1814,6 +1829,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1818,6 +1833,17 @@ void NetworkContext::CreateTCPServerSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPServerSocketCallback callback) { @@ -1708,7 +1708,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPServerSocket( local_addr, std::move(options), static_cast(traffic_annotation), -@@ -1828,6 +1854,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1832,6 +1858,21 @@ void NetworkContext::CreateTCPConnectedSocket( mojo::PendingReceiver receiver, mojo::PendingRemote observer, CreateTCPConnectedSocketCallback callback) { @@ -1730,7 +1730,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPConnectedSocket( local_addr, remote_addr_list, std::move(tcp_connected_socket_options), static_cast(traffic_annotation), -@@ -1839,6 +1880,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1843,6 +1884,20 @@ void NetworkContext::CreateTCPBoundSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPBoundSocketCallback callback) { @@ -1751,7 +1751,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPBoundSocket( local_addr, static_cast(traffic_annotation), -@@ -1905,6 +1960,24 @@ void NetworkContext::CreateWebSocket( +@@ -1909,6 +1964,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { diff --git a/build/patches/Invalidate-components-public-key.patch b/build/patches/Invalidate-components-public-key.patch index c37f0c43..9a24189b 100644 --- a/build/patches/Invalidate-components-public-key.patch +++ b/build/patches/Invalidate-components-public-key.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/component_updater/pki_metadata_component_installer.cc b/chrome/browser/component_updater/pki_metadata_component_installer.cc --- a/chrome/browser/component_updater/pki_metadata_component_installer.cc +++ b/chrome/browser/component_updater/pki_metadata_component_installer.cc -@@ -82,7 +82,8 @@ const uint64_t kMaxSupportedKPCompatibilityVersion = 1; +@@ -77,7 +77,8 @@ const uint64_t kMaxSupportedKPCompatibilityVersion = 1; // The extension id is: efniojlnjndmcbiieegkicadnoecjjef const uint8_t kPKIMetadataPublicKeySHA256[32] = { 0x45, 0xd8, 0xe9, 0xbd, 0x9d, 0x3c, 0x21, 0x88, 0x44, 0x6a, 0x82, diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 45585602..049ac7c5 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -287,7 +287,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3240,6 +3240,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3295,6 +3295,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( if (IsJitDisabled()) { command_line->AppendSwitchASCII(blink::switches::kJavaScriptFlags, "--jitless"); diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index 391dece6..6fd2ba2c 100644 --- a/build/patches/Keep-ComputePressure-disabled.patch +++ b/build/patches/Keep-ComputePressure-disabled.patch @@ -10,8 +10,8 @@ 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 -@@ -890,11 +890,9 @@ - status: "experimental", +@@ -895,11 +895,9 @@ + status: "stable", }, { - name: "ComputePressure", diff --git a/build/patches/Keep-Side-Panel-Companion-disabled.patch b/build/patches/Keep-Side-Panel-Companion-disabled.patch index b5cfe800..c81499c0 100644 --- a/build/patches/Keep-Side-Panel-Companion-disabled.patch +++ b/build/patches/Keep-Side-Panel-Companion-disabled.patch @@ -5,8 +5,7 @@ Subject: Keep Side Panel Companion disabled License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- chrome/browser/ui/side_search/side_search_prefs.cc | 2 +- - components/search_engines/template_url.cc | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser/ui/side_search/side_search_prefs.cc --- a/chrome/browser/ui/side_search/side_search_prefs.cc @@ -20,16 +19,4 @@ diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser } } // namespace side_search_prefs -diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc ---- a/components/search_engines/template_url.cc -+++ b/components/search_engines/template_url.cc -@@ -2020,7 +2020,7 @@ const TemplateURLData::RegulatoryExtension* TemplateURL::GetRegulatoryExtension( - } - - bool TemplateURL::IsSideSearchSupported() const { -- return !side_search_param().empty(); -+ return false; - } - - bool TemplateURL::IsSideImageSearchSupported() const { -- diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 57bb385e..a5c87cf8 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -79,7 +79,7 @@ diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/l diff --git a/content/browser/loader/keep_alive_url_loader.h b/content/browser/loader/keep_alive_url_loader.h --- a/content/browser/loader/keep_alive_url_loader.h +++ b/content/browser/loader/keep_alive_url_loader.h -@@ -312,9 +312,6 @@ class CONTENT_EXPORT KeepAliveURLLoader +@@ -306,9 +306,6 @@ class CONTENT_EXPORT KeepAliveURLLoader // disconnected from the remote of URLLoader in the renderer. base::OneShotTimer disconnected_loader_timer_; @@ -99,7 +99,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_party/blink/renderer/core/fetch/fetch_manager.cc --- a/third_party/blink/renderer/core/fetch/fetch_manager.cc +++ b/third_party/blink/renderer/core/fetch/fetch_manager.cc -@@ -280,6 +280,7 @@ class ResponseResolver final : public GarbageCollected { +@@ -270,6 +270,7 @@ class ResponseResolver final : public GarbageCollected { // Rejects the promise with the supplied object. void Reject(v8::Local error); void Reject(DOMException*); @@ -107,7 +107,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part // Rejects the promise with the TypeError exception created at construction // time. Also optionally passes `devtools_request_id`, `issue_id`, and -@@ -335,6 +336,12 @@ void ResponseResolver::Reject(DOMException* dom_exception) { +@@ -325,6 +326,12 @@ void ResponseResolver::Reject(DOMException* dom_exception) { Clear(); } @@ -120,7 +120,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part void ResponseResolver::RejectBecauseFailed( std::optional devtools_request_id, std::optional issue_id, -@@ -1299,10 +1306,20 @@ void FetchManager::Loader::Failed( +@@ -1282,10 +1289,20 @@ void FetchManager::Loader::Failed( if (response_resolver_) { ScriptState::Scope scope(GetScriptState()); if (dom_exception) { @@ -146,7 +146,7 @@ diff --git a/third_party/blink/renderer/core/fetch/fetch_manager.cc b/third_part diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc --- a/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc +++ b/third_party/blink/renderer/platform/loader/child_url_loader_factory_bundle.cc -@@ -255,6 +255,12 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( +@@ -250,6 +250,12 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( return; } @@ -159,7 +159,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory // Use |keep_alive_loader_factory_| to send the keepalive requests to the // KeepAliveURLLoaderService in the browser process and trigger the special // keepalive request handling. -@@ -263,12 +269,8 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( +@@ -258,12 +264,8 @@ void ChildURLLoaderFactoryBundle::CreateLoaderAndStart( if (request.keepalive) { FetchUtils::LogFetchKeepAliveRequestSentToServiceMetric(request); } @@ -177,7 +177,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -3042,7 +3042,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -3063,7 +3063,7 @@ void ResourceFetcher::PrepareForLeakDetection() { void ResourceFetcher::StopFetchingInternal(StopFetchingTarget target) { // TODO(toyoshim): May want to suspend scheduler while canceling loaders so // that the cancellations below do not awake unnecessary scheduling. @@ -189,7 +189,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1927,10 +1927,9 @@ +@@ -1969,10 +1969,9 @@ }, { // The Blink runtime-enabled feature name for the API's IDL. diff --git a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch index 4060ac5b..e66da77a 100644 --- a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch +++ b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc --- a/android_webview/common/aw_features.cc +++ b/android_webview/common/aw_features.cc -@@ -72,6 +72,7 @@ BASE_FEATURE(kWebViewLazyFetchHandWritingIcon, +@@ -73,6 +73,7 @@ BASE_FEATURE(kWebViewLazyFetchHandWritingIcon, BASE_FEATURE(kWebViewMediaIntegrityApiBlinkExtension, "WebViewMediaIntegrityApiBlinkExtension", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 9fd74d17..cd680b23 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -11,7 +11,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/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -1228,27 +1228,12 @@ public class TabPersistentStore { +@@ -1229,27 +1229,12 @@ public class TabPersistentStore { continue; } diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index 3fbc09dc..699012c8 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/Incog 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 -@@ -5185,9 +5185,9 @@ +@@ -5218,9 +5218,9 @@ "expiry_milestone": 136 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index c51b118c..78d78410 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -23,10 +23,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -1020,6 +1020,11 @@ public final class ProductionSupportedFlagList { - Flag.baseFeature( - BlinkFeatures.WEB_SQL_WEBVIEW_ACCESS, - "If false, prevents access to WebSQL on webview."), +@@ -1050,6 +1050,11 @@ public final class ProductionSupportedFlagList { + AwFeatures.WEBVIEW_PARTITIONED_COOKIES_EXCLUDED, + "When enabled, WebView records if a site with partitioned cookies has any cookies" + + " excluded due to a different cookie partition key than the current site's."), + Flag.baseFeature( + "SystemKeyboardProtection", + "Hides user preference on the system keyboard by setting the standard " @@ -259,20 +259,20 @@ diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h +COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsSystemKeyboardProtectionEnabled(); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kUiCompositorScrollWithLayers); - + COMPONENT_EXPORT(UI_BASE_FEATURES) diff --git a/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc b/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc --- a/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc +++ b/ui/events/keycodes/dom/dom_keyboard_layout_map_win.cc @@ -13,6 +13,8 @@ + #include "base/check_op.h" #include "base/containers/flat_map.h" #include "base/logging.h" - #include "base/ranges/algorithm.h" +#include "base/feature_list.h" +#include "ui/base/ui_base_features.h" #include "ui/events/keycodes/dom/dom_code.h" #include "ui/events/keycodes/dom/dom_key.h" #include "ui/events/keycodes/dom/dom_keyboard_layout_map_base.h" -@@ -74,6 +76,17 @@ uint32_t DomKeyboardLayoutMapWin::GetKeyboardLayoutCount() { +@@ -73,6 +75,17 @@ uint32_t DomKeyboardLayoutMapWin::GetKeyboardLayoutCount() { iter != keyboard_layout_handles_.end()) std::iter_swap(keyboard_layout_handles_.begin(), iter); diff --git a/build/patches/Lock-Profile-Cookie-Database.patch b/build/patches/Lock-Profile-Cookie-Database.patch index 18a38702..0b58ceed 100644 --- a/build/patches/Lock-Profile-Cookie-Database.patch +++ b/build/patches/Lock-Profile-Cookie-Database.patch @@ -4,26 +4,33 @@ Subject: Lock Profile Cookie Database License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - chrome/browser/net/profile_network_context_service.cc | 3 ++- - .../browser_features_cc/Lock-Profile-Cookie-Database.inc | 7 +++++++ - .../browser_features_h/Lock-Profile-Cookie-Database.inc | 5 +++++ - 3 files changed, 14 insertions(+), 1 deletion(-) + chrome/browser/net/profile_network_context_service.cc | 8 ++++++++ + .../browser_features_cc/Lock-Profile-Cookie-Database.inc | 7 +++++++ + .../browser_features_h/Lock-Profile-Cookie-Database.inc | 5 +++++ + services/network/network_context.cc | 2 +- + services/network/public/mojom/network_context.mojom | 8 ++++++++ + 5 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Lock-Profile-Cookie-Database.inc create mode 100644 cromite_flags/chrome/browser/browser_features_h/Lock-Profile-Cookie-Database.inc 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 -@@ -1388,7 +1388,8 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( - // access by sqlite3 implementation in the network service. - // - // TODO(crbug.com/377642763): See if we can remove this flag. -- network_context_params->enable_locking_cookie_database = true; +@@ -1361,6 +1361,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( + network_context_params->file_paths->cookie_database_name = + base::FilePath(chrome::kCookieFilename); + ++#if BUILDFLAG(IS_WIN) ++ // The cookie database used by this profile will be locked for exclusive ++ // access by sqlite3 implementation in the network service. ++ // + network_context_params->enable_locking_cookie_database = + base::FeatureList::IsEnabled(features::kLockProfileCookieDatabase); - #endif // BUILDFLAG(IS_WIN) - ++#endif // BUILDFLAG(IS_WIN) ++ g_browser_process->system_network_context_manager() + ->AddCookieEncryptionManagerToNetworkContextParams( + network_context_params); diff --git a/cromite_flags/chrome/browser/browser_features_cc/Lock-Profile-Cookie-Database.inc b/cromite_flags/chrome/browser/browser_features_cc/Lock-Profile-Cookie-Database.inc new file mode 100644 --- /dev/null @@ -46,4 +53,34 @@ new file mode 100644 +BASE_DECLARE_FEATURE(kLockProfileCookieDatabase); + +#endif +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 +@@ -3070,7 +3070,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { + + #if BUILDFLAG(IS_WIN) + const bool enable_exclusive_access = +- network_service()->exclusive_cookie_database_locking(); ++ params_->enable_locking_cookie_database.value_or(true); + #else + const bool enable_exclusive_access = false; + #endif // BUILDFLAG(IS_WIN) +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 +@@ -352,6 +352,14 @@ struct NetworkContextParams { + // If true, cookies will be stored encrypted. + bool enable_encrypted_cookies = true; + ++ // On Windows, whether or not the cookie database should be opened with ++ // the sqlite3 flag `exclusive=true` which asks the sqlite VFS to open them ++ // without file sharing enabled. This has the consequence that other processes ++ // should not be able to open the cookie database file. If left unspecified ++ // then a feature-determined default value will be used. ++ [EnableIf=is_win] ++ bool? enable_locking_cookie_database; ++ + // If the cookie file is given, this controls whether previously written + // session cookies are restored. Otherwise it should be false. + bool restore_old_session_cookies = false; -- diff --git a/build/patches/Log-dangling-attributes-in-some-html-elements.patch b/build/patches/Log-dangling-attributes-in-some-html-elements.patch index 15590bdf..87526fdc 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -42,7 +42,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4664,6 +4664,14 @@ void Document::ProcessBaseElement() { +@@ -4684,6 +4684,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (!stripped_href.empty()) base_element_url = KURL(FallbackBaseURL(), stripped_href); } -@@ -4681,6 +4689,14 @@ void Document::ProcessBaseElement() { +@@ -4701,6 +4709,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -4711,6 +4727,8 @@ void Document::ProcessBaseElement() { +@@ -4731,6 +4747,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -3104,8 +3104,26 @@ void Element::StripScriptingAttributes( +@@ -3194,8 +3194,26 @@ void Element::StripScriptingAttributes( attribute_vector.Shrink(destination); } @@ -115,7 +115,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h -@@ -721,7 +721,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { +@@ -730,7 +730,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/core/editing/serializers/markup_formatte diff --git a/third_party/blink/renderer/core/html/forms/html_form_element.cc b/third_party/blink/renderer/core/html/forms/html_form_element.cc --- a/third_party/blink/renderer/core/html/forms/html_form_element.cc +++ b/third_party/blink/renderer/core/html/forms/html_form_element.cc -@@ -317,7 +317,7 @@ void HTMLFormElement::PrepareForSubmission( +@@ -318,7 +318,7 @@ void HTMLFormElement::PrepareForSubmission( if (form_control_element && form_control_element->BlocksFormSubmission()) { UseCounter::Count(GetDocument(), WebFeature::kFormSubmittedWithUnclosedFormControl); @@ -214,7 +214,7 @@ diff --git a/third_party/blink/renderer/core/html/html_frame_element_base.cc b/t diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third_party/blink/renderer/core/html/html_iframe_element.cc --- a/third_party/blink/renderer/core/html/html_iframe_element.cc +++ b/third_party/blink/renderer/core/html/html_iframe_element.cc -@@ -161,6 +161,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute( +@@ -163,6 +163,12 @@ void HTMLIFrameElement::CollectStyleForPresentationAttribute( } } @@ -227,7 +227,7 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third void HTMLIFrameElement::ParseAttribute( const AttributeModificationParams& params) { const QualifiedName& name = params.name; -@@ -175,6 +181,16 @@ void HTMLIFrameElement::ParseAttribute( +@@ -177,6 +183,16 @@ void HTMLIFrameElement::ParseAttribute( } AtomicString old_name = name_; name_ = value; @@ -247,9 +247,9 @@ diff --git a/third_party/blink/renderer/core/html/html_iframe_element.cc b/third diff --git a/third_party/blink/renderer/core/html/html_iframe_element.h b/third_party/blink/renderer/core/html/html_iframe_element.h --- a/third_party/blink/renderer/core/html/html_iframe_element.h +++ b/third_party/blink/renderer/core/html/html_iframe_element.h -@@ -61,6 +61,8 @@ class CORE_EXPORT HTMLIFrameElement : public HTMLFrameElementBase, +@@ -63,6 +63,8 @@ class CORE_EXPORT HTMLIFrameElement : public HTMLFrameElementBase, - bool Credentialless() const override { return credentialless_; } + void CheckPotentialPermissionsPolicyViolation() override; + void ParserSetAttributes(Vector&) override; + @@ -267,7 +267,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_load_request.cc b/thir #include "third_party/blink/renderer/core/fileapi/public_url_manager.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/html/forms/html_form_element.h" -@@ -144,6 +145,14 @@ const LocalFrameToken* FrameLoadRequest::GetInitiatorFrameToken() const { +@@ -147,6 +148,14 @@ void FrameLoadRequest::ResolveBlobURLIfNeeded() { const AtomicString& FrameLoadRequest::CleanNavigationTarget( const AtomicString& target) const { if (ContainsNewLineAndLessThan(target)) { @@ -285,7 +285,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_load_request.cc b/thir diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/blink/renderer/core/page/frame_tree.cc --- a/third_party/blink/renderer/core/page/frame_tree.cc +++ b/third_party/blink/renderer/core/page/frame_tree.cc -@@ -21,6 +21,9 @@ +@@ -26,6 +26,9 @@ #include "third_party/blink/renderer/core/page/frame_tree.h" #include "third_party/blink/renderer/core/dom/document.h" @@ -295,7 +295,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl #include "third_party/blink/renderer/core/frame/frame_client.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_frame.h" -@@ -41,6 +44,12 @@ namespace { +@@ -46,6 +49,12 @@ namespace { const unsigned kInvalidChildCount = ~0U; @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl } // namespace FrameTree::FrameTree(Frame* this_frame) -@@ -211,6 +220,19 @@ FrameTree::FindResult FrameTree::FindOrCreateFrameForNavigation( +@@ -216,6 +225,19 @@ FrameTree::FindResult FrameTree::FindOrCreateFrameForNavigation( if (request.GetNavigationPolicy() != kNavigationPolicyCurrentTab) return FindResult(current_frame, false); @@ -331,7 +331,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1696,8 +1696,8 @@ +@@ -1738,8 +1738,8 @@ // Experiment with preventing some instances of mutation XSS // by escaping "<" and ">" in attribute values. // See: crbug.com/1175016 @@ -342,7 +342,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, { name: "EventTimingHandleKeyboardEventSimulatedClick", -@@ -2660,6 +2660,12 @@ +@@ -2680,6 +2680,12 @@ name: "LongTaskFromLongAnimationFrame", status: "test", }, diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 3138db14..e32493bb 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -136,7 +136,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.h b/chro diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc -@@ -147,6 +147,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { +@@ -113,6 +113,13 @@ bool IsAccessAllowedAndroid(const base::FilePath& path) { if (external_storage_path.IsParent(path)) return true; @@ -153,7 +153,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -665,6 +665,7 @@ static_library("ui") { +@@ -663,6 +663,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -164,7 +164,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/webui/crashes/crashes_ui.cc --- a/chrome/browser/ui/webui/crashes/crashes_ui.cc +++ b/chrome/browser/ui/webui/crashes/crashes_ui.cc -@@ -40,6 +40,19 @@ +@@ -39,6 +39,19 @@ #include "ui/base/resource/resource_scale_factor.h" #include "ui/webui/webui_util.h" @@ -184,7 +184,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w #if BUILDFLAG(IS_CHROMEOS) #include "chromeos/ash/components/dbus/debug_daemon/debug_daemon_client.h" #endif -@@ -69,6 +82,10 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { +@@ -68,6 +81,10 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { IDR_CRASHES_CRASHES_HTML); } @@ -195,7 +195,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w //////////////////////////////////////////////////////////////////////////////// // // CrashesDOMHandler -@@ -78,7 +95,7 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { +@@ -77,7 +94,7 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { // The handler for Javascript messages for the chrome://crashes/ page. class CrashesDOMHandler : public WebUIMessageHandler { public: @@ -204,7 +204,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w CrashesDOMHandler(const CrashesDOMHandler&) = delete; CrashesDOMHandler& operator=(const CrashesDOMHandler&) = delete; -@@ -95,6 +112,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -94,6 +111,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously fetches the list of crashes. Called from JS. void HandleRequestCrashes(const base::Value::List& args); @@ -213,7 +213,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w #if BUILDFLAG(IS_CHROMEOS) // Asynchronously triggers crash uploading. Called from JS. void HandleRequestUploads(const base::Value::List& args); -@@ -106,13 +125,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -105,13 +124,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously requests a user triggered upload. Called from JS. void HandleRequestSingleCrashUpload(const base::Value::List& args); @@ -245,7 +245,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } CrashesDOMHandler::~CrashesDOMHandler() { -@@ -138,6 +174,16 @@ void CrashesDOMHandler::RegisterMessages() { +@@ -137,6 +173,16 @@ void CrashesDOMHandler::RegisterMessages() { crash_reporter::kCrashesUIRequestSingleCrashUpload, base::BindRepeating(&CrashesDOMHandler::HandleRequestSingleCrashUpload, base::Unretained(this))); @@ -262,7 +262,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } void CrashesDOMHandler::OnJavascriptDisallowed() { -@@ -146,6 +192,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { +@@ -145,6 +191,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { void CrashesDOMHandler::HandleRequestCrashes(const base::Value::List& args) { AllowJavascript(); @@ -273,7 +273,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w if (first_load_) { first_load_ = false; if (list_available_) { -@@ -179,8 +229,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { +@@ -178,8 +228,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { } void CrashesDOMHandler::UpdateUI() { @@ -283,7 +283,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w bool system_crash_reporter = false; #if BUILDFLAG(IS_CHROMEOS) -@@ -229,14 +278,117 @@ void CrashesDOMHandler::UpdateUI() { +@@ -228,14 +277,117 @@ void CrashesDOMHandler::UpdateUI() { void CrashesDOMHandler::HandleRequestSingleCrashUpload( const base::Value::List& args) { @@ -407,7 +407,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } } // namespace -@@ -248,7 +400,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( +@@ -247,7 +399,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( /////////////////////////////////////////////////////////////////////////////// CrashesUI::CrashesUI(content::WebUI* web_ui) : WebUIController(web_ui) { @@ -772,7 +772,7 @@ diff --git a/components/crash_strings.grdp b/components/crash_strings.grdp diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java -@@ -105,6 +105,8 @@ public class CrashFileManager { +@@ -107,6 +107,8 @@ public class CrashFileManager { private static final Pattern TMP_PATTERN = Pattern.compile("\\.tmp\\z"); @@ -781,7 +781,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen // The maximum number of non-uploaded crashes that may be kept in the crash reports directory. // Chosen to attempt to balance between keeping a generous number of crashes, and not using up // too much filesystem storage space for obsolete crash reports. -@@ -113,7 +115,7 @@ public class CrashFileManager { +@@ -115,7 +117,7 @@ public class CrashFileManager { // The maximum age, in days, considered acceptable for a crash report. Reports older than this // age will be removed. The constant is chosen to be quite conservative, while still allowing // users to eventually reclaim filesystem storage space from obsolete crash reports. @@ -790,7 +790,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen // The maximum number of non-uploaded crashes to copy to the crash reports directory. The // difference between this value and MAX_CRASH_REPORTS_TO_KEEP is that TO_KEEP is only checked -@@ -597,6 +599,9 @@ public class CrashFileManager { +@@ -599,6 +601,9 @@ public class CrashFileManager { && !f.getName().contains(UPLOAD_FORCED_MINIDUMP_SUFFIX)) { continue; } @@ -803,7 +803,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java -@@ -70,30 +70,8 @@ public class MinidumpUploadCallable implements Callable { +@@ -73,30 +73,8 @@ public class MinidumpUploadCallable implements Callable { if (mPermManager.isUploadEnabledForTests()) { Log.i(TAG, "Minidump upload enabled for tests, skipping other checks."); } else if (!CrashFileManager.isForcedUpload(mFileToUpload)) { @@ -838,7 +838,7 @@ diff --git a/components/minidump_uploader/android/java/src/org/chromium/componen diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java -@@ -120,33 +120,10 @@ public class MinidumpUploader { +@@ -123,33 +123,10 @@ public class MinidumpUploader { if (fileToUpload == null || !fileToUpload.exists()) { return Result.failure("Crash report does not exist"); } diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 1caf6056..3531a420 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -54,7 +54,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1557,7 +1557,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1547,7 +1547,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -102,7 +102,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -97,10 +97,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -96,10 +96,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -115,7 +115,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); registry->RegisterDictionaryPref(prefs::kAppWindowPlacement); -@@ -171,7 +171,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -170,7 +170,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { #endif registry->RegisterBooleanPref( @@ -146,7 +146,7 @@ diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browse diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmarks/browser/bookmark_utils.cc --- a/components/bookmarks/browser/bookmark_utils.cc +++ b/components/bookmarks/browser/bookmark_utils.cc -@@ -26,6 +26,7 @@ +@@ -27,6 +27,7 @@ #include "build/build_config.h" #include "components/bookmarks/browser/bookmark_client.h" #include "components/bookmarks/browser/bookmark_model.h" @@ -154,7 +154,7 @@ diff --git a/components/bookmarks/browser/bookmark_utils.cc b/components/bookmar #include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -421,11 +422,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, +@@ -462,11 +463,13 @@ bool DoesBookmarkContainWords(const std::u16string& title, void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -272,7 +272,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -196,13 +196,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -211,13 +211,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -291,7 +291,7 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -299,7 +299,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -297,7 +297,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kGoogleServicesSyncingGaiaIdMigratedToSignedIn, std::string()); registry->RegisterStringPref( prefs::kGoogleServicesSyncingUsernameMigratedToSignedIn, std::string()); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index dbe12691..c967de67 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -24,11 +24,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiViewBinder.java | 3 + .../tab_management/TabListCoordinator.java | 162 +++++++++++++++++- .../TabListEmptyCoordinator.java | 17 +- + .../tab_management/TabSwitcherPaneBase.java | 9 + .../browser/feed/FeedSurfaceCoordinator.java | 4 + .../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++ - .../chrome/browser/app/ChromeActivity.java | 3 + .../compositor/CompositorViewHolder.java | 7 + - .../layouts/LayoutManagerChrome.java | 19 +- + .../layouts/LayoutManagerChrome.java | 12 +- .../layouts/LayoutManagerChromeTablet.java | 4 +- .../layouts/ToolbarSwipeLayout.java | 14 +- .../overlays/strip/ScrollDelegate.java | 2 +- @@ -67,12 +67,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++- .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ - ...mniboxSuggestionsDropdownEmbedderImpl.java | 18 ++ - .../suggestions/AutocompleteCoordinator.java | 13 ++ + ...rredIMEWindowInsetApplicationCallback.java | 7 + + .../omnibox/LocationBarCoordinator.java | 1 + + ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ + .../suggestions/AutocompleteCoordinator.java | 14 ++ .../suggestions/AutocompleteMediator.java | 6 +- .../DropdownItemViewInfoListManager.java | 1 + .../OmniboxSuggestionsDropdown.java | 11 +- - .../OmniboxSuggestionsDropdownEmbedder.java | 4 + + .../OmniboxSuggestionsDropdownEmbedder.java | 6 + .../base/BaseSuggestionViewBinder.java | 7 + .../strings/android_chrome_strings.grd | 6 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 + @@ -88,11 +90,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../top/TopToolbarOverlayProperties.java | 8 +- .../toolbar/top/TopToolbarSceneLayer.java | 10 +- .../res/xml/accessibility_preferences.xml | 8 + - .../accessibility/AccessibilitySettings.java | 26 +++ + .../accessibility/AccessibilitySettings.java | 27 +++ .../AccessibilitySettingsDelegate.java | 8 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 79 files changed, 1015 insertions(+), 77 deletions(-) + 81 files changed, 1039 insertions(+), 77 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -152,7 +154,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -4776,6 +4776,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -4819,6 +4819,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -281,7 +283,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mHandleBackPressChangedSupplier = handleBackPressChangedSupplier; if (mTabGridDialogControllerSupplier != null) { mTabGridDialogControllerSupplier.onAvailable( -@@ -338,6 +374,18 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, +@@ -337,6 +373,18 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, mModel.set(TabGroupUiProperties.TINT, mThemeColorProvider.getTint()); } @@ -300,7 +302,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser private void setupToolbarButtons() { View.OnClickListener showGroupDialogOnClickListener = view -> { -@@ -516,6 +564,7 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, +@@ -515,6 +563,7 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, } public void destroy() { @@ -414,7 +416,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.widget.ImageView; import androidx.annotation.DrawableRes; -@@ -60,6 +66,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -61,6 +67,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; @@ -423,7 +425,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -130,6 +138,128 @@ public class TabListCoordinator +@@ -132,6 +140,128 @@ public class TabListCoordinator private int mAwaitingTabId = Tab.INVALID_TAB_ID; private @TabActionState int mTabActionState; @@ -552,7 +554,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * -@@ -350,6 +480,12 @@ public class TabListCoordinator +@@ -353,6 +483,12 @@ public class TabListCoordinator checkAwaitingLayout(); } }; @@ -565,7 +567,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -359,7 +495,7 @@ public class TabListCoordinator +@@ -362,7 +498,7 @@ public class TabListCoordinator Rect frame = new Rect(); mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -574,7 +576,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser LinearLayoutManager layoutManager = new LinearLayoutManager( activity, -@@ -374,6 +510,25 @@ public class TabListCoordinator +@@ -377,6 +513,25 @@ public class TabListCoordinator } }; mRecyclerView.setLayoutManager(layoutManager); @@ -600,7 +602,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -395,7 +550,7 @@ public class TabListCoordinator +@@ -398,7 +553,7 @@ public class TabListCoordinator if (hasEmptyView) { mTabListEmptyCoordinator = new TabListEmptyCoordinator( @@ -609,7 +611,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } configureRecyclerViewTouchHelpers(); -@@ -688,6 +843,9 @@ public class TabListCoordinator +@@ -691,6 +846,9 @@ public class TabListCoordinator void prepareTabSwitcherPaneView() { registerLayoutChangeListener(); mRecyclerView.setupCustomItemAnimator(); @@ -676,6 +678,39 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } setEmptyViewVisibility(View.GONE); } +diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java +--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java ++++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java +@@ -40,6 +40,7 @@ import org.chromium.base.task.PostTask; + import org.chromium.base.task.TaskTraits; + import org.chromium.build.BuildConfig; + import org.chromium.chrome.browser.compositor.CompositorViewHolder; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.hub.DisplayButtonData; + import org.chromium.chrome.browser.hub.FadeHubLayoutAnimationFactory; + import org.chromium.chrome.browser.hub.FullButtonData; +@@ -152,6 +153,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc + private boolean mNativeInitialized; + private @Nullable PaneHubController mPaneHubController; + private @Nullable Long mWaitForTabStateInitializedStartTimeMs; ++ private boolean isFirstRequest = true; + + /** + * @param context The activity context. +@@ -396,6 +398,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc + Log.d(TAG, "Geometry not ready using fallback animation."); + useFallbackAnimation = true; + } ++ if (isFirstRequest) { ++ isFirstRequest = false; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ // skip first tab animation since rects are fake ++ return; ++ } ++ } + // Ignore left offset and just ensure the width is correct. See crbug/1502437. + initialRect.offset(-leftOffset, -initialTopOffset); + finalRect.offset(-leftOffset, -finalTopOffset); diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java @@ -791,23 +826,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s @Override public BrowserContextHandle getBrowserContextHandle() { return mProfile; -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/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 -@@ -248,6 +248,9 @@ import org.chromium.webapk.lib.client.WebApkNavigationClient; - import java.util.ArrayList; - import java.util.List; - -+import android.widget.ImageView; -+import android.view.ViewGroup.LayoutParams; -+ - /** - * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} and - * associated classes. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -254,6 +254,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -242,6 +242,10 @@ public class CompositorViewHolder extends FrameLayout @Override public void setCurrentTouchEventOffsets(float top) { EventForwarder forwarder = getEventForwarder(); @@ -818,7 +840,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp if (forwarder != null) forwarder.setCurrentTouchOffsetY(top); } -@@ -894,6 +898,9 @@ public class CompositorViewHolder extends FrameLayout +@@ -876,6 +880,9 @@ public class CompositorViewHolder extends FrameLayout mApplicationBottomInsetSupplier != null ? mApplicationBottomInsetSupplier.get().webContentsHeightInset : 0; @@ -831,7 +853,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java -@@ -38,6 +38,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -39,6 +39,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.ScrollDirection; import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; @@ -839,58 +861,37 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.List; -@@ -152,7 +153,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -154,7 +155,9 @@ public class LayoutManagerChrome extends LayoutManagerImpl @Override - public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { -- return new ToolbarSwipeHandler(supportSwipeDown); -+ boolean move_top_toolbar = -+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); -+ return new ToolbarSwipeHandler(supportSwipeDown && !move_top_toolbar, -+ supportSwipeDown && move_top_toolbar); + public SwipeHandler createToolbarSwipeHandler(boolean supportsSwipeToShowTabSwitcher) { +- return new ToolbarSwipeHandler(supportsSwipeToShowTabSwitcher); ++ return new ToolbarSwipeHandler( ++ supportsSwipeToShowTabSwitcher || ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(), ++ !ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled()); } @Override -@@ -362,9 +366,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -364,9 +367,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl private static final float SWIPE_RANGE_DEG = 25; - private final boolean mSupportSwipeDown; + private final boolean mSupportsSwipeToShowTabSwitcher; + private final boolean mSupportSwipeUp; -- public ToolbarSwipeHandler(boolean supportSwipeDown) { -+ public ToolbarSwipeHandler(boolean supportSwipeDown, boolean supportSwipeUp) { - mSupportSwipeDown = supportSwipeDown; +- public ToolbarSwipeHandler(boolean supportsSwipeToShowTabSwitcher) { ++ public ToolbarSwipeHandler(boolean supportsSwipeToShowTabSwitcher, boolean supportSwipeUp) { + mSupportsSwipeToShowTabSwitcher = supportsSwipeToShowTabSwitcher; + mSupportSwipeUp = supportSwipeUp; } @Override -@@ -395,6 +401,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl - if (mSupportSwipeDown && mScrollDirection == ScrollDirection.DOWN) { - RecordUserAction.record("MobileToolbarSwipeOpenStackView"); - showLayout(LayoutType.TAB_SWITCHER, true); -+ } else if (mSupportSwipeUp -+ && mScrollDirection == ScrollDirection.UP -+ && !ChromeFeatureList.sDisableToolbarSwipeUp.isEnabled()) { -+ showLayout(LayoutType.TAB_SWITCHER, true); - } else if (mScrollDirection == ScrollDirection.LEFT - || mScrollDirection == ScrollDirection.RIGHT) { - startShowing(mToolbarSwipeLayout, true); -@@ -446,6 +456,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl - direction = ScrollDirection.RIGHT; - } else if (swipeAngle < 270 + SWIPE_RANGE_DEG && swipeAngle > 270 - SWIPE_RANGE_DEG) { - direction = ScrollDirection.DOWN; -+ } else if (swipeAngle < 90 + SWIPE_RANGE_DEG && swipeAngle > 90 - SWIPE_RANGE_DEG) { -+ direction = ScrollDirection.UP; - } +@@ -473,7 +478,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl - return direction; -@@ -462,7 +474,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl - - return direction == ScrollDirection.DOWN + return direction == showTabSwitcherScrollDirection || direction == ScrollDirection.LEFT - || direction == ScrollDirection.RIGHT; + || direction == ScrollDirection.RIGHT -+ || direction == ScrollDirection.UP; ++ || (direction == ScrollDirection.UP && mSupportSwipeUp); } } @@ -905,7 +906,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo /** LayoutManagerChromeTablet is the specialization of LayoutManagerChrome for the tablet. */ public class LayoutManagerChromeTablet extends LayoutManagerChrome { -@@ -124,7 +125,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { +@@ -127,7 +128,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { desktopWindowStateManager, actionConfirmationManager, modalDialogManager, @@ -927,7 +928,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.ArrayList; import java.util.List; -@@ -509,7 +511,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -510,7 +512,11 @@ public class ToolbarSwipeLayout extends Layout { mLeftToolbarOverlay.setXOffset(leftX * dpToPx); } mLeftTab.setX(leftX); @@ -940,7 +941,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo needUpdate = updateSnap(dt, mLeftTab) || needUpdate; } else if (mLeftToolbarOverlay != null) { mLeftToolbarOverlay.setManualVisibility(false); -@@ -522,7 +528,11 @@ public class ToolbarSwipeLayout extends Layout { +@@ -523,7 +529,11 @@ public class ToolbarSwipeLayout extends Layout { mRightToolbarOverlay.setXOffset(rightX * dpToPx); } mRightTab.setX(rightX); @@ -968,15 +969,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 -@@ -31,6 +31,7 @@ import androidx.appcompat.content.res.AppCompatResources; - +@@ -33,6 +33,7 @@ import androidx.appcompat.content.res.AppCompatResources; import org.chromium.base.Callback; + import org.chromium.base.Log; import org.chromium.base.metrics.RecordUserAction; +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.cc.input.BrowserControlsOffsetTagsInfo; -@@ -102,6 +103,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; + import org.chromium.cc.input.BrowserControlsState; +@@ -105,6 +106,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -985,7 +986,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.ArrayList; import java.util.List; -@@ -250,12 +253,16 @@ public class StripLayoutHelperManager +@@ -257,12 +260,16 @@ public class StripLayoutHelperManager // Drag-Drop @Nullable private TabDragSource mTabDragSource; @@ -1002,7 +1003,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null && mModelSelectorButton.onDown(x, y, fromMouse, buttons)) { return; -@@ -281,6 +288,7 @@ public class StripLayoutHelperManager +@@ -288,6 +295,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1010,7 +1011,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null) { mModelSelectorButton.drag(x, y); } -@@ -292,6 +300,7 @@ public class StripLayoutHelperManager +@@ -299,6 +307,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1018,7 +1019,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, fromMouse, buttons)) { -@@ -306,6 +315,7 @@ public class StripLayoutHelperManager +@@ -313,6 +322,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1026,7 +1027,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY); } -@@ -314,6 +324,7 @@ public class StripLayoutHelperManager +@@ -321,6 +331,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1034,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(time(), x, y); } -@@ -421,7 +432,8 @@ public class StripLayoutHelperManager +@@ -436,7 +447,8 @@ public class StripLayoutHelperManager @Nullable DesktopWindowStateManager desktopWindowStateManager, ActionConfirmationManager actionConfirmationManager, ModalDialogManager modalDialogManager, @@ -1044,16 +1045,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over Resources res = context.getResources(); mUpdateHost = updateHost; mLayerTitleCacheSupplier = layerTitleCacheSupplier; -@@ -526,6 +538,8 @@ public class StripLayoutHelperManager - !mTabStripObscured - && getStripVisibilityState() - == StripVisibilityState.VISIBLE); +@@ -533,6 +545,8 @@ public class StripLayoutHelperManager + modalDialogManager, + dataSharingTabManager, + () -> getStripVisibilityState() == StripVisibilityState.VISIBLE); + mBrowserControlsManagerSupplier = browserControlsManagerSupplier; + mDpToPx = context.getResources().getDisplayMetrics().density; tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -758,6 +772,10 @@ public class StripLayoutHelperManager +@@ -780,6 +794,10 @@ public class StripLayoutHelperManager // layer should be a negative value. yOffset -= getHeight(); } @@ -1064,7 +1065,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -771,7 +789,9 @@ public class StripLayoutHelperManager +@@ -793,7 +811,9 @@ public class StripLayoutHelperManager mStripTransitionScrimOpacity, mLeftPadding, mRightPadding, @@ -1075,9 +1076,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -830,11 +850,21 @@ public class StripLayoutHelperManager - mLeftPadding, - mRightPadding); +@@ -859,11 +879,21 @@ public class StripLayoutHelperManager + mRightPadding, + mTopPadding); + float top = mTopPadding; + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && @@ -1216,7 +1217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java -@@ -44,6 +44,8 @@ import org.chromium.content_public.browser.WebContents; +@@ -48,6 +48,8 @@ import org.chromium.ui.OffsetTagConstraints; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.util.TokenHolder; @@ -1225,7 +1226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow /** A class that manages browser control visibility and positioning. */ public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer { // The amount of time to delay the control show request after returning to a once visible -@@ -459,6 +461,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -485,6 +487,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon return mTopControlsHeight; } @@ -1240,7 +1241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow @Override public int getTopControlsMinHeight() { return mTopControlsMinHeight; -@@ -560,6 +570,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -581,6 +591,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon @Override public float getTopVisibleContentOffset() { @@ -1292,7 +1293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java -@@ -289,7 +289,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter +@@ -283,7 +283,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter Resources resources, BrowserControlsStateProvider provider) { int scrimVerticalMargin = resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin); @@ -1475,7 +1476,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -219,6 +219,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -214,6 +214,11 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); } @@ -1539,7 +1540,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -192,6 +192,9 @@ import org.chromium.url.GURL; +@@ -194,6 +194,9 @@ import org.chromium.url.GURL; import java.util.List; import java.util.Objects; @@ -1549,7 +1550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -706,6 +709,17 @@ public class ToolbarManager +@@ -756,6 +759,17 @@ public class ToolbarManager }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1567,7 +1568,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBookmarkModelSupplier = bookmarkModelSupplier; mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver); -@@ -1261,6 +1275,7 @@ public class ToolbarManager +@@ -1316,6 +1330,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1575,7 +1576,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1274,6 +1289,7 @@ public class ToolbarManager +@@ -1329,6 +1344,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1583,7 +1584,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -1706,9 +1722,21 @@ public class ToolbarManager +@@ -1766,9 +1782,21 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider(); } @@ -1606,16 +1607,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mTabGroupUiOneshotSupplier == null; ThemeColorProvider bottomUiThemeColorProvider = new BottomUiThemeColorProvider( -@@ -1722,7 +1750,7 @@ public class ToolbarManager +@@ -1782,7 +1810,7 @@ public class ToolbarManager mActivityTabProvider, mTabModelSelector, mActivity, - root.findViewById(R.id.bottom_container_slot), + mBottomRoot.findViewById(R.id.bottom_container_slot), mBrowserControlsSizer, - mScrimCoordinator, + mScrimManager, mOmniboxFocusStateSupplier, -@@ -1747,7 +1775,7 @@ public class ToolbarManager +@@ -1807,7 +1835,7 @@ public class ToolbarManager mControlsVisibilityDelegate, mFullscreenManager, mEdgeToEdgeControllerSupplier, @@ -1624,7 +1625,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -1755,7 +1783,8 @@ public class ToolbarManager +@@ -1815,7 +1843,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1693,10 +1694,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu import org.chromium.chrome.browser.layouts.LayoutManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; -@@ -474,6 +476,12 @@ public class StatusBarColorController - boolean needsDarkStatusBarIcons = !ColorUtils.shouldUseLightForegroundOnBackground(color); - UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); - UiUtils.setStatusBarColor(window, color); +@@ -482,6 +484,12 @@ public class StatusBarColorController + UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); + UiUtils.setStatusBarColor(window, color); + } + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled() && + Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + UiUtils.setNavigationBarIconColor(window.getDecorView().getRootView(), @@ -1744,7 +1745,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/TabStripSceneLayer_jni.h" -@@ -107,8 +108,10 @@ void TabStripSceneLayer::SetContentTree( +@@ -118,8 +119,10 @@ void TabStripSceneLayer::SetContentTree( content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1757,22 +1758,22 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -160,7 +163,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -172,7 +175,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, jfloat right_padding, jfloat top_padding) { gfx::RectF content(0, y_offset, width, height); - layer()->SetPosition(gfx::PointF(0, y_offset)); + if (base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) { + // do not move the whole layer (which also contains the contents) but only the tab strip layer -+ tab_strip_layer_->SetPosition(gfx::PointF(0, y_offset)); ++ background_layer_->SetPosition(gfx::PointF(0, y_offset)); + } else { + layer()->SetPosition(gfx::PointF(0, y_offset)); + } - tab_strip_layer_->SetBounds(gfx::Size(width, height)); - tab_strip_layer_->SetBackgroundColor(SkColor4f::FromColor(background_color)); + background_layer_->SetBounds(gfx::Size(width, height)); + background_layer_->SetBackgroundColor(SkColor4f::FromColor(background_color)); -@@ -172,7 +180,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, - group_ui_parent_layer_->SetPosition(gfx::PointF(0, top_padding)); +@@ -181,7 +189,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, + tab_strip_layer_->SetPosition(gfx::PointF(0, top_padding)); // Content tree should not be affected by tab strip scene layer visibility. - if (content_tree_) @@ -1783,7 +1784,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java -@@ -246,7 +246,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser +@@ -271,7 +271,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser /** * @return {@link BrowserControlsStateProvider} instance in the current Activity. */ @@ -1817,7 +1818,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java -@@ -116,6 +116,12 @@ public interface BrowserControlsStateProvider { +@@ -115,6 +115,12 @@ public interface BrowserControlsStateProvider { */ int getTopControlsHeight(); @@ -1864,7 +1865,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "chrome/browser/android/webapk/webapk_features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/flags/android/chrome_session_state.h" -@@ -292,6 +293,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -295,6 +296,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNavBarColorMatchesTabBackground, &kNewTabSearchEngineUrlAndroid, &kNewTabPageAndroidTriggerForPrerender2, @@ -1876,7 +1877,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,10 @@ public abstract class ChromeFeatureList { +@@ -406,6 +406,10 @@ public abstract class ChromeFeatureList { public static final String NEW_TAB_PAGE_ANDROID_TRIGGER_FOR_PRERENDER2 = "NewTabPageAndroidTriggerForPrerender2"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; @@ -1887,7 +1888,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -753,6 +757,10 @@ public abstract class ChromeFeatureList { +@@ -765,6 +769,10 @@ public abstract class ChromeFeatureList { PRICE_INSIGHTS, /* defaultValue= */ false, /* defaultValueInTests= */ true); public static final CachedFlag sOptimizationGuidePushNotifications = newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true); @@ -1897,8 +1898,8 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f + newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = - newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, false); -@@ -905,6 +913,8 @@ public abstract class ChromeFeatureList { + newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); +@@ -921,6 +929,8 @@ public abstract class ChromeFeatureList { sPriceChangeModule, sPriceInsights, sOptimizationGuidePushNotifications, @@ -1910,7 +1911,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/BUILD.gn --- a/chrome/browser/hub/internal/BUILD.gn +++ b/chrome/browser/hub/internal/BUILD.gn -@@ -16,6 +16,7 @@ android_library("java") { +@@ -17,6 +17,7 @@ android_library("java") { "//chrome/test/android:chrome_java_transit", ] sources = [ @@ -1918,7 +1919,7 @@ diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/ "android/java/src/org/chromium/chrome/browser/hub/ApplyButtonData.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactory.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactoryImpl.java", -@@ -83,6 +84,10 @@ android_library("java") { +@@ -85,6 +86,10 @@ android_library("java") { "//ui/android:ui_no_recycler_view_java", "//url:url_java", ] @@ -1948,7 +1949,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.toolbar.menu_button.MenuButtonCoordinator; -@@ -109,6 +111,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { +@@ -117,6 +119,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { HubPaneHostView hubPaneHostView = mContainerView.findViewById(R.id.hub_pane_host); mHubPaneHostCoordinator = new HubPaneHostCoordinator(hubPaneHostView, paneManager.getFocusedPaneSupplier()); @@ -1980,7 +1981,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.tab.Tab; -@@ -126,7 +128,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -130,7 +132,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mStatusIndicatorHeight = height; @@ -1992,7 +1993,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -136,7 +141,10 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -140,7 +145,10 @@ public class HubManagerImpl implements HubManager, HubController { LayoutParams params = (LayoutParams) mHubContainerView.getLayoutParams(); assert params != null : "HubContainerView should always have layout params."; mAppHeaderHeight = height; @@ -2004,7 +2005,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br mHubContainerView.setLayoutParams(params); } -@@ -272,6 +280,8 @@ public class HubManagerImpl implements HubManager, HubController { +@@ -277,6 +285,8 @@ public class HubManagerImpl implements HubManager, HubController { } mSnackbarOverrideToken = mSnackbarManager.pushParentViewToOverrideStack( @@ -2104,7 +2105,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2433,7 +2433,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2367,7 +2367,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2145,7 +2146,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); -@@ -296,7 +304,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -301,7 +309,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Math.min( Math.abs(mTempLocation[1] - visibleDisplayFrame.top), Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom)); @@ -2154,7 +2155,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch menuItemIds, heightList, visibleDisplayFrame, -@@ -316,8 +324,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -321,8 +329,14 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler sizingPadding, anchorView, popupWidth, @@ -2170,7 +2171,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch try { mPopup.showAtLocation( -@@ -378,11 +392,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -383,11 +397,20 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler Rect padding, View anchorView, int popupWidth, @@ -2192,7 +2193,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. -@@ -556,7 +579,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -561,7 +584,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler if (mAdapter != null) mAdapter.notifyDataSetChanged(); } @@ -2201,7 +2202,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch List menuItemIds, List heightList, Rect appDimensions, -@@ -575,7 +598,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -580,7 +603,13 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler - footerHeight - headerHeight - anchorViewImpactHeight; @@ -2216,7 +2217,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 = -@@ -605,6 +634,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler +@@ -610,6 +639,7 @@ class AppMenu implements OnItemClickListener, OnKeyListener, AppMenuClickHandler menuItemIds, heightList, groupDividerResourceId, availableScreenSpace); menuHeight += footerHeight + headerHeight + padding.top + padding.bottom; mPopup.setHeight(menuHeight); @@ -2252,6 +2253,53 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch ContextThemeWrapper wrapper = new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay); +diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java +--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java ++++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/DeferredIMEWindowInsetApplicationCallback.java +@@ -32,6 +32,7 @@ public class DeferredIMEWindowInsetApplicationCallback + private static final int NO_DEFERRED_KEYBOARD_HEIGHT = -1; + private int mDeferredKeyboardHeight = NO_DEFERRED_KEYBOARD_HEIGHT; + private int mKeyboardHeight; ++ private int mSystemBarInsetsBottom; + private boolean mAnimationInProgress; + private WindowInsetsAnimationCompat mCurrentAnimation; + private InsetObserver mInsetObserver; +@@ -86,6 +87,10 @@ public class DeferredIMEWindowInsetApplicationCallback + return mKeyboardHeight; + } + ++ public int getSystemBarInsetsBottom() { ++ return mSystemBarInsetsBottom; ++ } ++ + @Override + public void onPrepare(@NonNull WindowInsetsAnimationCompat animation) { + if ((animation.getTypeMask() & WindowInsetsCompat.Type.ime()) == 0) return; +@@ -121,11 +126,13 @@ public class DeferredIMEWindowInsetApplicationCallback + public WindowInsetsCompat onApplyWindowInsets( + @NonNull View view, @NonNull WindowInsetsCompat windowInsetsCompat) { + int newKeyboardHeight = 0; ++ mSystemBarInsetsBottom = 0; + Insets imeInsets = windowInsetsCompat.getInsets(WindowInsetsCompat.Type.ime()); + if (imeInsets.bottom > 0) { + Insets systemBarInsets = + windowInsetsCompat.getInsets(WindowInsetsCompat.Type.systemBars()); + newKeyboardHeight = imeInsets.bottom - systemBarInsets.bottom; ++ mSystemBarInsetsBottom = systemBarInsets.bottom; + } + // Keyboard going away or the change is not animated; apply immediately. + if (newKeyboardHeight < mKeyboardHeight || !mAnimationInProgress) { +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 +@@ -206,6 +206,7 @@ public class LocationBarCoordinator + uiOverrides.isForcedPhoneStyleOmnibox(), + baseChromeLayout, + deferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight, ++ deferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom, + bottomWindowPaddingSupplier); + + mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java @@ -2271,7 +2319,30 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.base.WindowAndroid; -@@ -108,6 +110,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -44,6 +46,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl + private final @NonNull View mAlignmentView; + private final boolean mForcePhoneStyleOmnibox; + private final Supplier mKeyboardHeightSupplier; ++ private final Supplier mSystemBarInsetsBottomSupplier; + private final Supplier mBottomWindowPaddingSupplier; + private final @NonNull Context mContext; + // Reusable int array to pass to positioning methods that operate on a two element int array. +@@ -82,12 +85,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl + boolean forcePhoneStyleOmnibox, + @Nullable View baseChromeLayout, + Supplier keyboardHeightSupplier, ++ Supplier systemBarInsetsBottomSupplier, + Supplier bottomWindowPaddingSupplier) { + mWindowAndroid = windowAndroid; + mAnchorView = anchorView; + mAlignmentView = alignmentView; + mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox; + mKeyboardHeightSupplier = keyboardHeightSupplier; ++ mSystemBarInsetsBottomSupplier = systemBarInsetsBottomSupplier; + mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier; + mContext = mAnchorView.getContext(); + mContext.registerComponentCallbacks(this); +@@ -108,6 +113,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.removeObserver(obs); } @@ -2283,42 +2354,67 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxAlignment getCurrentAlignment() { -@@ -132,6 +139,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -132,6 +142,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl @Override public void onDetachedFromWindow() { + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + recalculateOmniboxAlignment(); ++ detachKeyboardAlignment(); + } mAnchorView.removeOnLayoutChangeListener(this); mAlignmentView.removeOnLayoutChangeListener(this); mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); -@@ -222,6 +232,8 @@ class OmniboxSuggestionsDropdownEmbedderImpl - ViewUtils.getRelativeLayoutPosition(baseRelativeLayout, mAnchorView, mPositionArray); +@@ -218,6 +232,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl - int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentViewTopPadding; -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) + ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray); + int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop(); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + top -= mPositionArray[1]; ++ } int left; int width; int paddingLeft; -@@ -295,6 +307,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -291,6 +308,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl : contentView.getMeasuredHeight() - keyboardHeight; int height = Math.min(windowSpace, contentSpace) - top; + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + ViewCompat.setPaddingRelative( -+ contentView, 0, 0, 0, keyboardHeight); ++ contentView, 0, 0, 0, keyboardHeight + mSystemBarInsetsBottomSupplier.get()); + top = 0; + } + // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to // the previous alignment value. OmniboxAlignment omniboxAlignment = +@@ -299,6 +322,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl + mOmniboxAlignmentSupplier.set(omniboxAlignment); + } + ++ private void detachKeyboardAlignment() { ++ View contentView = mBaseChromeLayout; ++ if (contentView == null) { ++ contentView = mAnchorView.getRootView().findViewById(android.R.id.content); ++ } ++ ViewCompat.setPaddingRelative(contentView, 0, 0, 0, 0); ++ } ++ + /** + * Returns whether the given view's position in the window has changed since the last call to + * offsetInWindowChanged(). 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 -@@ -48,6 +48,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -10,6 +10,7 @@ import android.view.KeyEvent; + import android.view.View; + import android.view.ViewGroup; + ++import androidx.annotation.NonNull; + import androidx.annotation.ColorInt; + import androidx.annotation.VisibleForTesting; + import androidx.core.view.ViewCompat; +@@ -49,6 +50,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; @@ -2326,15 +2422,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -66,6 +67,7 @@ public class AutocompleteCoordinator +@@ -68,6 +70,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; - private @NonNull ObserverList mScrollListenerList = + private ObserverList mScrollListenerList = new ObserverList<>(); + private final @NonNull OmniboxSuggestionsDropdownEmbedder mDropdownEmbedder; /** An observer watching for changes to the visual state of the omnibox suggestions. */ public interface OmniboxSuggestionsVisualStateObserver { -@@ -102,6 +104,7 @@ public class AutocompleteCoordinator +@@ -102,6 +105,7 @@ public class AutocompleteCoordinator Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2342,7 +2438,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) -@@ -222,6 +225,16 @@ public class AutocompleteCoordinator +@@ -223,6 +227,16 @@ public class AutocompleteCoordinator dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); @@ -2362,16 +2458,16 @@ 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 -@@ -74,6 +74,8 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -73,6 +73,8 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; +import org.chromium.chrome.browser.flags.ChromeFeatureList; + - import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -1213,7 +1215,9 @@ class AutocompleteMediator + import java.util.Optional; + +@@ -1182,7 +1184,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2385,10 +2481,10 @@ 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/DropdownItemViewInfoListManager.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java -@@ -9,6 +9,7 @@ import android.view.View; - - import androidx.annotation.NonNull; +@@ -8,6 +8,7 @@ import android.content.Context; + import android.view.View; + import org.chromium.build.annotations.NullMarked; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; import org.chromium.ui.base.DeviceFormFactor; @@ -2431,16 +2527,23 @@ 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/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java -@@ -5,6 +5,7 @@ +@@ -5,11 +5,14 @@ package org.chromium.chrome.browser.omnibox.suggestions; import android.annotation.SuppressLint; +import android.view.View; - import androidx.annotation.NonNull; - import androidx.annotation.Nullable; -@@ -120,6 +121,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { - @NonNull + import org.chromium.base.Callback; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; + ++import androidx.annotation.NonNull; ++ + import java.util.Objects; + + /** Provider of capabilities required to embed the omnibox suggestion list into the UI. */ +@@ -118,6 +121,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { + */ OmniboxAlignment getCurrentAlignment(); + @NonNull @@ -2452,7 +2555,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/base/BaseSuggestionViewBinder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/base/BaseSuggestionViewBinder.java -@@ -32,6 +32,7 @@ import androidx.appcompat.content.res.AppCompatResources; +@@ -29,6 +29,7 @@ import androidx.appcompat.content.res.AppCompatResources; import androidx.core.view.ViewCompat; import androidx.core.widget.ImageViewCompat; @@ -2460,7 +2563,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.R; import org.chromium.chrome.browser.omnibox.styles.OmniboxDrawableState; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; -@@ -108,6 +109,12 @@ public final class BaseSuggestionViewBinder +@@ -105,6 +106,12 @@ public final class BaseSuggestionViewBinder updateColorScheme(model, view); } else if (DropdownCommonProperties.BG_BOTTOM_CORNER_ROUNDED == propertyKey || DropdownCommonProperties.BG_TOP_CORNER_ROUNDED == propertyKey) { @@ -2476,7 +2579,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,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1689,6 +1689,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2555,7 +2658,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -@@ -34,6 +34,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -32,6 +32,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.ViewResourceAdapter; import org.chromium.ui.widget.Toast; @@ -2564,7 +2667,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import java.util.HashSet; import java.util.Set; -@@ -86,6 +88,8 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -82,6 +84,8 @@ public class BottomControlsCoordinator implements BackPressHandler { * @param constraintsSupplier Used to access current constraints of the browser controls. * @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently * restoring its player, e.g. after theme change. @@ -2573,7 +2676,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow */ @SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup. public BottomControlsCoordinator( -@@ -102,7 +106,9 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -98,7 +102,9 @@ public class BottomControlsCoordinator implements BackPressHandler { TabObscuringHandler tabObscuringHandler, ObservableSupplier overlayPanelVisibilitySupplier, ObservableSupplier constraintsSupplier, @@ -2584,8 +2687,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mRootFrameLayout = root; root.setConstraintsSupplier(constraintsSupplier); PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS); -@@ -171,7 +177,8 @@ public class BottomControlsCoordinator implements BackPressHandler { - mMediator.setBottomControlsColor(color); +@@ -162,7 +168,8 @@ public class BottomControlsCoordinator implements BackPressHandler { + mMediator.setBottomControlsVisible(isVisible); } }, - root::onModelTokenChange); @@ -2605,7 +2708,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * This class is responsible for reacting to events from the outside world, interacting with other -@@ -158,6 +159,12 @@ class BottomControlsMediator +@@ -155,6 +156,12 @@ class BottomControlsMediator void setBottomControlsVisible(boolean visible) { boolean visibilityChanged = mIsBottomControlsVisible != visible; @@ -2618,7 +2721,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -202,6 +209,7 @@ class BottomControlsMediator +@@ -194,6 +201,7 @@ class BottomControlsMediator boolean bottomControlsMinHeightChanged, boolean requestNewFrame, boolean isVisibilityForced) { @@ -2626,7 +2729,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // Method call routed to onBrowserControlsOffsetUpdate. if (BottomControlsStacker.isDispatchingYOffset()) return; -@@ -334,11 +342,13 @@ class BottomControlsMediator +@@ -321,11 +329,13 @@ class BottomControlsMediator && !mIsInSwipeLayout && getBrowserControls().getBottomControlOffset() == 0; if (visible) { @@ -2919,7 +3022,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -187,6 +208,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -187,6 +208,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getBrowserContextHandle(), (Integer) newValue); } else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) { PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue); @@ -2928,6 +3031,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c + mDelegate.requestRestart(getActivity()); + } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { + mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); ++ mDelegate.requestRestart(getActivity()); } else if (PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT.equals(preference.getKey())) { // TODO(mschillaci): Implement the override behavior for OS level. } else if (OmniboxFeatures.KEY_JUMP_START_OMNIBOX.equals(preference.getKey())) { @@ -2966,8 +3070,8 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "base/threading/scoped_blocking_call.h" +#include "cc/base/features.h" #include "cc/base/math_util.h" - #include "cc/input/browser_controls_offset_tags_info.h" #include "cc/slim/layer.h" + #include "components/input/events_helper.h" @@ -863,6 +864,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = 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 972e14d4..bf321809 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 @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -97,6 +97,19 @@ found in the LICENSE file. +@@ -91,6 +91,19 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -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 -@@ -57,6 +57,14 @@ import org.chromium.device.DeviceFeatureList; +@@ -56,6 +56,14 @@ import org.chromium.device.DeviceFeatureList; import org.chromium.device.DeviceFeatureMap; import org.chromium.ui.text.SpanApplier; @@ -52,9 +52,9 @@ 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 { -@@ -77,6 +85,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -75,6 +83,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + private static final String PREF_JAVASCRIPT_OPTIMIZER = "javascript_optimizer"; private static final String PREF_PHONE_AS_A_SECURITY_KEY = "phone_as_a_security_key"; - @VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; + // moved from SyncAndServicesSettings.java + private static final String PREF_SERVICES_CATEGORY = "services_category"; @@ -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"; -@@ -178,6 +196,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -173,6 +191,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment passwordLeakTogglePref.setVisible(false); } @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -328,6 +356,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -315,6 +343,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); @@ -96,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -340,6 +371,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -327,6 +358,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { @@ -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 -@@ -436,6 +436,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 d73e8968..6ff7775c 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 -@@ -2388,6 +2388,7 @@ static_library("browser") { +@@ -2424,6 +2424,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -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 -@@ -281,6 +281,7 @@ source_set("browser") { +@@ -283,6 +283,7 @@ source_set("browser") { "//third_party/re2", "//third_party/snappy", "//third_party/sqlite", @@ -97,7 +97,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -212,6 +212,7 @@ +@@ -213,6 +213,7 @@ #include "url/gurl.h" #include "url/origin.h" @@ -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" -@@ -3310,6 +3311,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3369,6 +3370,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -138,7 +138,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -524,6 +526,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -514,6 +516,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -188,15 +188,15 @@ diff --git a/third_party/blink/public/platform/web_runtime_features.h b/third_pa diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -41,6 +41,7 @@ +@@ -42,6 +42,7 @@ #include "base/metrics/histogram_functions.h" #include "base/not_fatal_until.h" #include "base/notreached.h" +#include "base/rand_util.h" - #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" -@@ -863,6 +864,17 @@ Document::Document(const DocumentInit& initializer, + #include "base/trace_event/trace_event.h" +@@ -866,6 +867,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(); -@@ -2480,6 +2492,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2492,6 +2504,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 -@@ -551,6 +551,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -550,6 +550,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -243,7 +243,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ V8VisibilityState visibilityState() const; String visibilityStateAsString() const; bool IsPageVisible() const; -@@ -2632,6 +2636,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2641,6 +2645,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 -@@ -2633,6 +2633,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2723,6 +2723,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; } -@@ -2641,6 +2642,10 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2731,6 +2732,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() { -@@ -2686,6 +2691,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2776,6 +2781,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 -@@ -1617,6 +1617,12 @@ DOMRectList* Range::getClientRects() const { +@@ -1632,6 +1632,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); } -@@ -1755,7 +1761,11 @@ gfx::RectF Range::BoundingRect() const { +@@ -1770,7 +1776,11 @@ gfx::RectF Range::BoundingRect() const { // If all rects are empty, return the first rect. if (result.IsEmpty() && !quads.empty()) @@ -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 @@ +@@ -197,6 +197,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" -@@ -2966,6 +2971,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -2970,6 +2975,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -492,9 +492,9 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -3718,8 +3727,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { - const CanvasRenderingContext2DState& state = GetState(); - TextDirection direction = ToTextDirection(state.GetDirection(), canvas); +@@ -3705,8 +3714,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { + TextDirection direction = ToTextDirection( + state.GetDirection(), GetCanvasRenderingContextHost(), computed_style); - return MakeGarbageCollected( + auto* text_metrics = MakeGarbageCollected( @@ -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 -@@ -1715,7 +1715,9 @@ component("platform") { +@@ -1706,7 +1706,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", -@@ -1800,6 +1802,7 @@ component("platform") { +@@ -1791,6 +1793,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 -@@ -2980,6 +2980,15 @@ +@@ -2981,6 +2981,15 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Never-treat-Proguard-warnings-as-errors.patch b/build/patches/Never-treat-Proguard-warnings-as-errors.patch index c82e347e..c5592ba2 100644 --- a/build/patches/Never-treat-Proguard-warnings-as-errors.patch +++ b/build/patches/Never-treat-Proguard-warnings-as-errors.patch @@ -9,7 +9,7 @@ Subject: Never treat Proguard warnings as errors diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni -@@ -1283,9 +1283,9 @@ if (enable_java_templates) { +@@ -1317,9 +1317,9 @@ if (enable_java_templates) { _source_file_template, "--proguard-configs=@FileArg($_rebased_build_config:deps_info:proguard_all_configs)", ] diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index 356d5957..d2a1c3b2 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-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/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java --- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java +++ b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java -@@ -280,7 +280,9 @@ public class SearchEngineAdapter extends BaseAdapter +@@ -284,7 +284,9 @@ public class SearchEngineAdapter extends BaseAdapter continue; } if (recentEngineNum < MAX_RECENT_ENGINE_NUM @@ -181,7 +181,7 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c diff --git a/components/search_engines/template_url_fetcher.cc b/components/search_engines/template_url_fetcher.cc --- a/components/search_engines/template_url_fetcher.cc +++ b/components/search_engines/template_url_fetcher.cc -@@ -260,18 +260,32 @@ void TemplateURLFetcher::ScheduleDownload( +@@ -261,18 +261,32 @@ void TemplateURLFetcher::ScheduleDownload( return; } @@ -222,7 +222,7 @@ diff --git a/components/search_engines/template_url_fetcher.cc b/components/sear diff --git a/components/search_engines/template_url_parser.cc b/components/search_engines/template_url_parser.cc --- a/components/search_engines/template_url_parser.cc +++ b/components/search_engines/template_url_parser.cc -@@ -173,7 +173,7 @@ void SafeTemplateURLParser::OnXmlParseComplete( +@@ -176,7 +176,7 @@ void SafeTemplateURLParser::OnXmlParseComplete( std::move(callback_).Run([&]() -> std::unique_ptr { ASSIGN_OR_RETURN(const base::Value root, std::move(value_or_error), [](std::string error) -> std::unique_ptr { @@ -234,7 +234,7 @@ diff --git a/components/search_engines/template_url_parser.cc b/components/searc diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -362,7 +362,10 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -364,7 +364,10 @@ class TemplateURLService final : public WebDataServiceConsumer, void UpdateProviderFavicons(const GURL& potential_search_url, const GURL& favicon_url); @@ -246,7 +246,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; -@@ -776,9 +779,6 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -747,9 +750,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 a3e097fd..427d97ae 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -@@ -33,6 +33,10 @@ import java.util.Locale; +@@ -35,6 +35,10 @@ import java.util.Locale; public class AppLocaleUtils { private AppLocaleUtils() {} @@ -24,9 +24,9 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse + } + // Value of AppLocale preference when the system language is used. - public static final String APP_LOCALE_USE_SYSTEM_LANGUAGE = null; + public static final @Nullable String APP_LOCALE_USE_SYSTEM_LANGUAGE = null; -@@ -104,6 +108,22 @@ public class AppLocaleUtils { +@@ -106,6 +110,22 @@ public class AppLocaleUtils { return locales.get(0).toLanguageTag(); } @@ -49,7 +49,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse /** * Gets the first original system locale from {@link LocaleManager}. This is the language that * Chrome would use if there was no override set. If there are no possible UI languages en-US is -@@ -187,7 +207,7 @@ public class AppLocaleUtils { +@@ -189,7 +209,7 @@ public class AppLocaleUtils { */ @ChecksSdkIntAtLeast(api = Build.VERSION_CODES.TIRAMISU) public static boolean shouldUseSystemManagedLocale() { @@ -62,14 +62,14 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc @@ -71,6 +71,7 @@ - #include "build/build_config.h" #include "cc/base/switches.h" + #include "components/input/utils.h" #include "components/metrics/histogram_controller.h" +#include "components/language/core/browser/language_prefs.h" #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3222,8 +3223,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3277,8 +3278,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Override-the-MV2-deprecation.patch b/build/patches/Override-the-MV2-deprecation.patch index 40ac3f9b..3347fab7 100644 --- a/build/patches/Override-the-MV2-deprecation.patch +++ b/build/patches/Override-the-MV2-deprecation.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/extensions/manifest_v2_experiment_manager.cc b/chrome/browser/extensions/manifest_v2_experiment_manager.cc --- a/chrome/browser/extensions/manifest_v2_experiment_manager.cc +++ b/chrome/browser/extensions/manifest_v2_experiment_manager.cc -@@ -36,7 +36,7 @@ namespace extensions { +@@ -37,7 +37,7 @@ namespace extensions { namespace { // Whether to override the MV2 deprecation for testing purposes. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index 822015be..ea14398c 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -49,8 +49,8 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.c - url, /*skip_service_worker=*/false)); + url, /*skip_service_worker=*/false, document->TopFrameOrigin())); } - if (cached_resource && InspectorPageAgent::CachedResourceContent( - cached_resource, content, base64_encoded)) { + if (cached_resource && + InspectorPageAgent::CachedResourceContent(cached_resource, content, diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_page_agent.cc @@ -78,7 +78,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/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -722,7 +722,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -716,7 +716,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( url, element_->GetDocument().Fetcher()->GetCacheIdentifier( @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/th diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc -@@ -197,7 +197,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, +@@ -196,7 +196,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, } bool MemoryCache::Contains(const Resource* resource) const { @@ -113,7 +113,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ return false; const auto resource_maps_it = -@@ -213,13 +213,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -212,13 +212,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } @@ -154,7 +154,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -1025,7 +1025,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -1026,7 +1026,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( } const String cache_identifier = GetCacheIdentifier( @@ -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()) { -@@ -1450,7 +1451,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1462,7 +1463,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); -@@ -1773,7 +1775,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1794,7 +1796,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)); -@@ -2882,11 +2885,41 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2903,11 +2906,41 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { } String ResourceFetcher::GetCacheIdentifier(const KURL& url, @@ -231,7 +231,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2901,7 +2934,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2922,7 +2955,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); } diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index cf2e5030..778e6822 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -30,14 +30,14 @@ 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 -@@ -410,6 +410,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( - network::mojom::NetworkContext* network_context = - profile->GetDefaultStoragePartition()->GetNetworkContext(); +@@ -412,6 +412,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( + + CHECK(tentative_resource_request.trusted_params); network_context->IsHSTSActiveForHost( + tentative_resource_request.trusted_params->isolation_info.network_anonymization_key(), tentative_resource_request.url.host(), - mojo::WrapCallbackWithDefaultInvokeIfNotRun( - std::move(query_complete_callback), + tentative_resource_request.trusted_params->isolation_info + .IsMainFrameRequest(), diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc @@ -81,12 +81,12 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components/password_manager/core/browser/hsts_query.cc --- a/components/password_manager/core/browser/hsts_query.cc +++ b/components/password_manager/core/browser/hsts_query.cc -@@ -59,6 +59,7 @@ void PostHSTSQueryForHostAndNetworkContext( - scoped_refptr callback_helper = - base::MakeRefCounted(std::move(callback)); +@@ -63,6 +63,7 @@ void PostHSTSQueryForHostAndNetworkContext( + // privacy leaks. Since our use is internal to the browser we don't need to + // worry about leaking state so we can set true for is_top_level_nav. network_context->IsHSTSActiveForHost( + net::IsolationInfo::CreateForInternalRequest(origin).network_anonymization_key(), - origin.host(), + origin.host(), /*is_top_level_nav=*/true, mojo::WrapCallbackWithDropHandler( base::BindOnce(&HSTSCallbackHelper::ReportResult, callback_helper), diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc @@ -321,10 +321,10 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ bool TransportSecurityState::ShouldUpgradeToSSL( + const NetworkAnonymizationKey& nak, std::string_view host, + bool is_top_level_nav, const NetLogWithSource& net_log) { - // TODO(crbug.com/361746120): Propagate `is_top_level_nav` to callers. -- return GetSSLUpgradeDecision(host, true, net_log) != -+ return GetSSLUpgradeDecision(nak, host, true, net_log) != +- return GetSSLUpgradeDecision(host, is_top_level_nav, net_log) != ++ return GetSSLUpgradeDecision(nak, host, is_top_level_nav, net_log) != SSLUpgradeDecision::kNoUpgrade; } @@ -514,7 +514,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s std::string_view host, bool is_top_level_nav, const NetLogWithSource& net_log = NetLogWithSource()); -@@ -299,13 +300,14 @@ class NET_EXPORT TransportSecurityState { +@@ -299,14 +300,15 @@ 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. @@ -522,6 +522,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s - bool ShouldUpgradeToSSL(std::string_view host, + bool ShouldSSLErrorsBeFatal(const NetworkAnonymizationKey& nak, std::string_view host); + bool ShouldUpgradeToSSL(const NetworkAnonymizationKey& nak, std::string_view host, + bool is_top_level_nav, const NetLogWithSource& net_log = NetLogWithSource()); PKPStatus CheckPublicKeyPins(std::string_view host, bool is_issued_by_known_root, @@ -533,7 +534,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 -@@ -389,7 +391,7 @@ class NET_EXPORT TransportSecurityState { +@@ -390,7 +392,7 @@ class NET_EXPORT TransportSecurityState { // // If an entry is deleted, the new state will be persisted through // the Delegate (if any). @@ -542,7 +543,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 -@@ -399,8 +401,8 @@ class NET_EXPORT TransportSecurityState { +@@ -400,8 +402,8 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -553,7 +554,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 -@@ -414,22 +416,24 @@ class NET_EXPORT TransportSecurityState { +@@ -415,22 +417,24 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -583,7 +584,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); -@@ -471,7 +475,7 @@ class NET_EXPORT TransportSecurityState { +@@ -472,7 +476,7 @@ class NET_EXPORT TransportSecurityState { typedef std::map STSStateMap; typedef std::map PKPStateMap; @@ -592,7 +593,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 -@@ -481,7 +485,8 @@ class NET_EXPORT TransportSecurityState { +@@ -482,7 +486,8 @@ class NET_EXPORT TransportSecurityState { // Helper method for actually checking pins. PKPStatus CheckPublicKeyPinsImpl(std::string_view host, bool is_issued_by_known_root, @@ -602,7 +603,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. -@@ -491,11 +496,13 @@ class NET_EXPORT TransportSecurityState { +@@ -492,11 +497,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). @@ -643,7 +644,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 -@@ -1509,7 +1509,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1520,7 +1520,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -764,7 +765,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque url.host(), /*is_top_level_nav=*/request->isolation_info().IsMainFrameRequest(), request->net_log()); -@@ -1205,7 +1206,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1207,7 +1208,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { std::optional value; if ((value = headers->EnumerateHeader(nullptr, "Strict-Transport-Security"))) { @@ -773,7 +774,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } } -@@ -1276,7 +1277,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1278,7 +1279,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { TransportSecurityState* state = context->transport_security_state(); NotifySSLCertificateError( result, transaction_->GetResponseInfo()->ssl_info, @@ -785,7 +786,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 -@@ -2011,6 +2011,7 @@ void NetworkContext::CreateHostResolver( +@@ -2023,6 +2023,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -793,7 +794,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) { -@@ -2021,6 +2022,7 @@ void NetworkContext::VerifyCertForSignedExchange( +@@ -2033,6 +2034,7 @@ void NetworkContext::VerifyCertForSignedExchange( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->url = url; @@ -801,7 +802,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 = -@@ -2065,17 +2067,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2077,17 +2079,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -821,15 +822,15 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont -void NetworkContext::IsHSTSActiveForHost(const std::string& host, +void NetworkContext::IsHSTSActiveForHost(const net::NetworkAnonymizationKey& nak, + const std::string& host, + bool is_top_level_nav, IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = - url_request_context_->transport_security_state(); -@@ -2085,10 +2089,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, - return; +@@ -2099,10 +2103,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, } -- std::move(callback).Run(security_state->ShouldUpgradeToSSL(host)); -+ std::move(callback).Run(security_state->ShouldUpgradeToSSL(nak, host)); + std::move(callback).Run( +- security_state->ShouldUpgradeToSSL(host, is_top_level_nav)); ++ security_state->ShouldUpgradeToSSL(nak, host, is_top_level_nav)); } -void NetworkContext::GetHSTSState(const std::string& domain, @@ -837,7 +838,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -2126,10 +2130,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2140,10 +2144,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( @@ -850,7 +851,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)); -@@ -2167,6 +2171,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2181,6 +2185,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -858,7 +859,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 = -@@ -2177,7 +2182,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2191,7 +2196,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -867,7 +868,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2221,7 +2226,7 @@ void NetworkContext::PreconnectSockets( +@@ -2235,7 +2240,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -876,7 +877,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -3061,7 +3066,9 @@ void NetworkContext::OnConnectionError() { +@@ -3042,7 +3047,9 @@ void NetworkContext::OnConnectionError() { } } @@ -887,15 +888,15 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // TODO(lilyhoughton) This needs to be gotten rid of once explicit // construction with a URLRequestContext is no longer supported. -@@ -3078,6 +3085,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { - } - +@@ -3068,6 +3075,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { + // top-level navigation so we need to disallow HSTS upgrades for every + // preconnect. if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL( + network_anonymization_key, - original_url.host())) { + original_url.host(), /*is_top_level_nav=*/false)) { RecordHSTSPreconnectUpgradeReason( HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin); -@@ -3129,7 +3137,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( +@@ -3119,7 +3127,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( url_request_context_->transport_security_state()->CheckPublicKeyPins( pending_cert_verify->url.host(), pending_cert_verify->result->is_issued_by_known_root, @@ -908,7 +909,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -408,18 +408,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -409,19 +409,22 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -924,6 +925,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte AddHSTSCallback callback) override; - void IsHSTSActiveForHost(const std::string& host, + void IsHSTSActiveForHost(const net::NetworkAnonymizationKey& nak, const std::string& host, + bool is_top_level_nav, IsHSTSActiveForHostCallback callback) override; - void GetHSTSState(const std::string& domain, + void GetHSTSState(const net::NetworkAnonymizationKey& nak, const std::string& domain, @@ -933,7 +935,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -752,7 +755,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -755,7 +758,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -943,7 +945,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -955,6 +959,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -954,6 +958,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertForSignedExchangeCallback callback; scoped_refptr certificate; GURL url; @@ -954,7 +956,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 -@@ -1523,22 +1523,23 @@ interface NetworkContext { +@@ -1520,24 +1520,25 @@ interface NetworkContext { // implementation is currently specific for use by Signed Exchange. VerifyCertForSignedExchange(X509Certificate certificate, url.mojom.Url url, @@ -969,10 +971,12 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw + AddHSTS(NetworkAnonymizationKey nak, string host, mojo_base.mojom.Time expiry, bool include_subdomains) => (); - // Returns true if it is known that |host| has requested to always be - // accessed via HTTPS. -- IsHSTSActiveForHost(string host) => (bool result); -+ IsHSTSActiveForHost(NetworkAnonymizationKey nak, string host) => (bool result); + // Returns true if it is known that `host` has requested to always be + // accessed via HTTPS. `is_top_level_nav` indicates whether or not the query + // for the HSTS state is being made by a top-level/primary/outermost frame + // navigation request. +- IsHSTSActiveForHost(string host, bool is_top_level_nav) => (bool result); ++ IsHSTSActiveForHost(NetworkAnonymizationKey nak, string host, bool is_top_level_nav) => (bool result); // Retrieve values from the HSTS state from the associated contexts // transport security state. @@ -981,7 +985,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw // Sets allowed and blocked origins respectively for the URLLoaderFactory // consumers to access beyond the same-origin policy. The list is managed per -@@ -1557,7 +1558,7 @@ interface NetworkContext { +@@ -1556,7 +1557,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 f980c41b..33a3cbd5 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -6,10 +6,10 @@ and, in windows, hide the presence of the webcam if the user has not given permi License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../core/browser/bromite_content_settings/camera.inc | 8 ++++++++ - components/media_device_salt/media_device_salt_service.cc | 3 +++ + components/media_device_salt/media_device_salt_service.cc | 2 ++ content/browser/media/media_devices_util.cc | 3 +++ .../browser/renderer_host/media/media_devices_manager.cc | 5 +++++ - 4 files changed, 19 insertions(+) + 4 files changed, 18 insertions(+) create mode 100644 components/content_settings/core/browser/bromite_content_settings/camera.inc diff --git a/components/content_settings/core/browser/bromite_content_settings/camera.inc b/components/content_settings/core/browser/bromite_content_settings/camera.inc @@ -28,12 +28,11 @@ new file mode 100644 diff --git a/components/media_device_salt/media_device_salt_service.cc b/components/media_device_salt/media_device_salt_service.cc --- a/components/media_device_salt/media_device_salt_service.cc +++ b/components/media_device_salt/media_device_salt_service.cc -@@ -28,6 +28,9 @@ BASE_FEATURE(kMediaDeviceIdRandomSaltsPerStorageKey, - "MediaDeviceIdRandomSaltsPerStorageKey", +@@ -25,6 +25,8 @@ BASE_FEATURE(kMediaDeviceIdPartitioning, + "MediaDeviceIdPartitioning", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_ENABLED(kMediaDeviceIdPartitioning); -+SET_CROMITE_FEATURE_ENABLED(kMediaDeviceIdRandomSaltsPerStorageKey); + namespace { diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index ab2b69e4..bb7d5552 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -9,12 +9,12 @@ Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../Partition-blobs-by-top-frame-URL.inc | 1 + - storage/browser/blob/blob_url_store_impl.cc | 36 ++++++++++++++++++- + storage/browser/blob/blob_url_store_impl.cc | 35 +++++++++++++++++++ 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(-) + 6 files changed, 75 insertions(+), 3 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 @@ -26,7 +26,7 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/blob_url_store_impl.cc --- a/storage/browser/blob/blob_url_store_impl.cc +++ b/storage/browser/blob/blob_url_store_impl.cc -@@ -87,6 +87,20 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { +@@ -89,6 +89,20 @@ BlobURLStoreImpl::~BlobURLStoreImpl() { } } @@ -47,7 +47,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ void BlobURLStoreImpl::Register( mojo::PendingRemote blob, const GURL& url, -@@ -121,6 +135,8 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { +@@ -123,12 +137,18 @@ void BlobURLStoreImpl::Revoke(const GURL& url) { void BlobURLStoreImpl::ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -56,7 +56,17 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ ResolveAsURLLoaderFactoryCallback callback) { if (!registry_) { BlobURLLoaderFactory::Create(mojo::NullRemote(), url, std::move(receiver)); -@@ -139,6 +155,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( + std::move(callback).Run(std::nullopt, std::nullopt); + return; + } ++ if (!IsSamePartition(url, unsafe_agent_cluster_id, unsafe_top_level_site)) { ++ std::move(callback).Run(std::nullopt, std::nullopt); ++ return; ++ } + if (!registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), + storage_key_)) { + partitioned_fetch_failure_closure_.Run(); +@@ -142,6 +162,12 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( } } @@ -69,10 +79,10 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ BlobURLLoaderFactory::Create(registry_->GetBlobFromUrl(url), url, std::move(receiver)); // When a fragment URL is present, registry_->GetUnsafeAgentClusterID(url) and -@@ -152,11 +174,17 @@ void BlobURLStoreImpl::ResolveAsURLLoaderFactory( - void BlobURLStoreImpl::ResolveForNavigation( +@@ -156,12 +182,18 @@ void BlobURLStoreImpl::ResolveForNavigation( const GURL& url, mojo::PendingReceiver token, + bool is_top_level_navigation, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, ResolveForNavigationCallback callback) { @@ -80,14 +90,15 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ 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; + } - mojo::PendingRemote blob = registry_->GetBlobFromUrl(url); - if (!blob) { - std::move(callback).Run(std::nullopt); -@@ -169,11 +197,17 @@ void BlobURLStoreImpl::ResolveForNavigation( + if (!is_top_level_navigation && + !registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), + storage_key_)) { +@@ -187,12 +219,15 @@ void BlobURLStoreImpl::ResolveForNavigation( void BlobURLStoreImpl::ResolveForWorkerScriptFetch( const GURL& url, mojo::PendingReceiver token, @@ -98,26 +109,15 @@ diff --git a/storage/browser/blob/blob_url_store_impl.cc b/storage/browser/blob/ 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 (!registry_->IsUrlMapped(BlobUrlUtils::ClearUrlFragment(url), - storage_key_)) { - partitioned_fetch_failure_closure_.Run(); -@@ -183,7 +217,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)); + ResolveForNavigation(url, std::move(token), /*is_top_level_navigation=*/false, ++ 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 -@@ -53,14 +53,20 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -54,15 +54,21 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl void ResolveAsURLLoaderFactory( const GURL& url, mojo::PendingReceiver receiver, @@ -127,6 +127,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b void ResolveForNavigation( const GURL& url, mojo::PendingReceiver token, + bool is_top_level_navigation, + const base::UnguessableToken& unsafe_agent_cluster_id, + const std::optional& unsafe_top_level_site, ResolveForNavigationCallback callback) override; @@ -138,7 +139,7 @@ diff --git a/storage/browser/blob/blob_url_store_impl.h b/storage/browser/blob/b ResolveForNavigationCallback callback) override; private: -@@ -70,6 +76,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl +@@ -72,6 +78,11 @@ class COMPONENT_EXPORT(STORAGE_BROWSER) BlobURLStoreImpl // `Revoke()`. bool BlobUrlIsValid(const GURL& url, const char* method) const; @@ -175,18 +176,18 @@ diff --git a/third_party/blink/public/mojom/blob/blob_url_store.mojom b/third_pa // TODO(https://crbug.com/1224926): Remove these once experiment is over. mojo_base.mojom.UnguessableToken? unsafe_agent_cluster_id, network.mojom.SchemefulSite? unsafe_top_level_site); -@@ -47,7 +49,9 @@ interface BlobURLStore { - // refer to, even after the URL is revoked. +@@ -48,7 +50,9 @@ interface BlobURLStore { // As long as the token is alive, the resolved blob will also be kept alive. ResolveForNavigation(url.mojom.Url url, -- pending_receiver token) => ( -+ pending_receiver token, + pending_receiver token, +- bool is_top_level_navigation) => ( ++ bool is_top_level_navigation, + 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 { +@@ -59,7 +63,9 @@ interface BlobURLStore { // currently intended for use when fetching a dedicated / shared worker // script. ResolveForWorkerScriptFetch(url.mojom.Url url, @@ -230,15 +231,15 @@ diff --git a/third_party/blink/renderer/core/fileapi/public_url_manager.cc b/thi WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } -@@ -292,6 +308,7 @@ void PublicURLManager::Resolve( +@@ -293,6 +309,7 @@ void PublicURLManager::ResolveForNavigation( GetBlobURLStore().ResolveForNavigation( - url, std::move(token_receiver), + url, std::move(token_receiver), is_top_level_navigation, + GetExecutionContext()->GetAgentClusterID(), GetInsecureTopLevelSite(GetExecutionContext()), WTF::BindOnce(metrics_callback, WrapPersistent(GetExecutionContext()))); } -@@ -318,6 +335,7 @@ void PublicURLManager::ResolveForWorkerScriptFetch( +@@ -319,6 +336,7 @@ void PublicURLManager::ResolveForWorkerScriptFetch( GetBlobURLStore().ResolveForWorkerScriptFetch( url, std::move(token_receiver), diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index 68f8fd98..02dfcbaf 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -47,7 +47,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 -@@ -3674,7 +3674,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3690,7 +3690,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -73,7 +73,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 -@@ -1018,16 +1018,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1007,16 +1007,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. @@ -110,7 +110,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc --- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc +++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc -@@ -431,6 +431,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( +@@ -432,6 +432,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( permissions::PermissionRequestData request_data, permissions::BrowserPermissionCallback callback, net::FirstPartySetMetadata metadata) { @@ -164,7 +164,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc -@@ -133,6 +133,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( +@@ -126,6 +126,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( const GURL& first_party_url, base::TimeDelta ttl, bool use_schemeless_patterns) { @@ -172,7 +172,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -416,8 +417,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { +@@ -409,8 +410,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { } bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { @@ -185,7 +185,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 -@@ -559,72 +559,17 @@ CookieSettingsBase::DecideAccess( +@@ -581,18 +581,6 @@ CookieSettingsBase::DecideAccess( ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting}; } @@ -204,7 +204,8 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c if (IsAllowedByStorageAccessGrant(url, first_party_url, overrides)) { return AllowAllCookies{ ThirdPartyCookieAllowMechanism::kAllowByStorageAccess, - AllowedByStorageAccessType::kStorageAccessOnly}; +@@ -603,54 +591,11 @@ CookieSettingsBase::DecideAccess( + ThirdPartyCookieAllowMechanism::kAllowBySandboxValue}; } - if (IsAllowedBy3pcdHeuristicsGrantsSettings(url, first_party_url, @@ -258,7 +259,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c return AllowPartitionedCookies{}; } -@@ -653,7 +598,7 @@ CookieSettingsBase::GetCookieSettingInternal( +@@ -679,7 +624,7 @@ CookieSettingsBase::GetCookieSettingInternal( } return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW, /*allow_partitioned_cookies=*/true, @@ -318,7 +319,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 { +@@ -977,9 +977,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { if (CookiePartitionKey::HasNonce(PartitionKey())) { return true; } @@ -344,7 +345,7 @@ diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_i diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc -@@ -2318,6 +2318,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( +@@ -2193,6 +2193,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( if (cookie_partition_it == partitioned_cookies_.end()) return num_deleted; @@ -355,7 +356,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc --- a/net/cookies/cookie_util.cc +++ b/net/cookies/cookie_util.cc -@@ -750,6 +750,7 @@ bool IsCookiePartitionedValid(const GURL& url, +@@ -760,6 +760,7 @@ bool IsCookiePartitionedValid(const GURL& url, bool secure, bool is_partitioned, bool partition_has_nonce) { @@ -436,8 +437,8 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti + return cookie.SameSite() == net::CookieSameSite::NO_RESTRICTION; } - bool IsValidType(ContentSettingsType type) { -@@ -120,8 +119,7 @@ bool IsOriginOpaqueHttpOrHttps( + +@@ -123,8 +122,7 @@ bool IsOriginOpaqueHttpOrHttps( // static bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie, const CookieSettingWithMetadata& setting) { @@ -450,7 +451,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -854,6 +854,12 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -887,6 +887,12 @@ void RestrictedCookieManager::SetCookieFromString( std::move(callback).Run(); @@ -476,7 +477,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -348,6 +348,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -349,6 +349,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -484,7 +485,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return set(script_state, set_options, exception_state); } -@@ -371,6 +372,7 @@ ScriptPromise CookieStore::Delete( +@@ -372,6 +373,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue("deleted"); set_options->setExpires(0); @@ -492,7 +493,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return DoWrite(script_state, set_options, exception_state); } -@@ -386,6 +388,7 @@ ScriptPromise CookieStore::Delete( +@@ -387,6 +389,7 @@ ScriptPromise CookieStore::Delete( set_options->setPath(options->path()); set_options->setSameSite("strict"); set_options->setPartitioned(options->partitioned()); diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index c813593f..c1998748 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -7769,7 +7769,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -7783,7 +7783,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( } #if BUILDFLAG(IS_ANDROID) @@ -175,7 +175,7 @@ new file mode 100644 diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -1069,7 +1069,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1064,7 +1064,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -184,7 +184,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co CHECK(ShouldIgnorePrivateNetworkAccessErrors( request_.required_ip_address_space)); CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess); -@@ -1393,12 +1393,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( +@@ -1388,12 +1388,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( if (!state) { return false; } @@ -222,7 +222,7 @@ diff --git a/services/network/private_network_access_checker.cc b/services/netwo using Result = PrivateNetworkAccessCheckResult; using Policy = mojom::PrivateNetworkRequestPolicy; -@@ -290,11 +298,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( +@@ -288,11 +296,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( const GURL& url, bool is_web_secure_context, mojom::IPAddressSpace target_address_space) { diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch index b2599aee..8436433e 100644 --- a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch +++ b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch @@ -13,7 +13,7 @@ the Windows platform diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc --- a/content/browser/webauth/authenticator_common_impl.cc +++ b/content/browser/webauth/authenticator_common_impl.cc -@@ -1688,6 +1688,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -1712,6 +1712,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( MakeCapability(client_capabilities::kRelatedOrigins, true)); IsHybridTransportSupported( @@ -21,7 +21,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow base::BindOnce(&MakeCapability, client_capabilities::kHybridTransport) .Then(barrier_callback)); -@@ -1704,6 +1705,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -1728,6 +1729,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( } void AuthenticatorCommonImpl::IsHybridTransportSupported( @@ -29,7 +29,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow base::OnceCallback callback) { // Similar to Web Bluetooth API (`navigator.bluetooth.getAvailability()`) we // want respect the policy and return `false` if the policy is enforced. -@@ -1712,6 +1714,19 @@ void AuthenticatorCommonImpl::IsHybridTransportSupported( +@@ -1736,6 +1738,19 @@ void AuthenticatorCommonImpl::IsHybridTransportSupported( std::move(callback).Run(false); return; } @@ -49,7 +49,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow if (!device::BluetoothAdapterFactory::Get()->IsLowEnergySupported()) { std::move(callback).Run(false); -@@ -1762,6 +1777,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( +@@ -1786,6 +1801,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( IsUserVerifyingPlatformAuthenticatorAvailableCallback callback, bool is_get_client_capabilities_call, std::optional is_uvpaa_override) { @@ -66,7 +66,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow diff --git a/content/browser/webauth/authenticator_common_impl.h b/content/browser/webauth/authenticator_common_impl.h --- a/content/browser/webauth/authenticator_common_impl.h +++ b/content/browser/webauth/authenticator_common_impl.h -@@ -252,7 +252,7 @@ class CONTENT_EXPORT AuthenticatorCommonImpl : public AuthenticatorCommon { +@@ -254,7 +254,7 @@ class CONTENT_EXPORT AuthenticatorCommonImpl : public AuthenticatorCommon { // Bluetooth adapter that supports BLE. If so, runs |callback| with `true`. // Otherwise, or if Bluetooth is disabled by Permissions Policy, runs // |callback| with `false`. diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index a04b63c1..d6fb1bc0 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -206,6 +206,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -202,6 +202,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kAutomotiveFullscreenToolbarImprovements, &kAuxiliarySearchDonation, &kAvoidSelectedTabFocusOnLayoutDoneShowing, @@ -56,10 +56,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 -@@ -289,6 +289,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"; +@@ -293,6 +293,7 @@ public abstract class ChromeFeatureList { + public static final String CLANK_WHATS_NEW = "ClankWhatsNew"; + public static final String CLEAR_BROWSING_DATA_ANDROID_SURVEY = + "ClearBrowsingDataAndroidSurvey"; + public static final String CLOSE_ALL_TABS_MODAL_DIALOG = "CloseAllTabsModalDialog"; public static final String COLLECT_ANDROID_FRAME_TIMELINE_METRICS = "CollectAndroidFrameTimelineMetrics"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 140fd9fc..80f70f0a 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 -@@ -4201,8 +4201,13 @@ action("build_date") { +@@ -4203,8 +4203,13 @@ action("build_date") { args = [ rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), diff --git a/build/patches/Remove-ChromiumNetworkAdapter.patch b/build/patches/Remove-ChromiumNetworkAdapter.patch index c1a624d6..696c10d6 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -267,10 +267,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase diff --git a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java --- a/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java +++ b/components/minidump_uploader/android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java -@@ -37,11 +37,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory { +@@ -40,11 +40,6 @@ public class HttpURLConnectionFactoryImpl implements HttpURLConnectionFactory { @Override - public HttpURLConnection createHttpURLConnection(String url) { + public @Nullable HttpURLConnection createHttpURLConnection(String url) { - try { - return (HttpURLConnection) - ChromiumNetworkAdapter.openConnection(new URL(url), TRAFFIC_ANNOTATION); 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 6a28d13e..47e50c84 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 -@@ -640,6 +640,8 @@ chrome_java_resources = [ +@@ -643,6 +643,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 -@@ -948,6 +948,8 @@ chrome_java_sources = [ +@@ -961,6 +961,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", @@ -120,7 +120,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -132,6 +132,10 @@ found in the LICENSE file. +@@ -126,6 +126,10 @@ found in the LICENSE file. android:title="@string/close_tabs_on_exit_title" android:summary="@string/close_tabs_on_exit_summary" android:defaultValue="false" /> @@ -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; -@@ -94,6 +95,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -93,6 +94,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -515,6 +517,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -502,6 +504,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -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 -@@ -615,6 +615,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -604,6 +604,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( -@@ -696,6 +699,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -679,6 +682,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 -@@ -112,6 +112,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, +@@ -113,6 +113,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. */ -@@ -495,6 +506,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -493,6 +504,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 @@ -514,7 +514,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -107,6 +107,8 @@ PrefWatcher::PrefWatcher(Profile* profile) +@@ -106,6 +106,8 @@ PrefWatcher::PrefWatcher(Profile* profile) renderer_callback); profile_pref_change_registrar_.Add(prefs::kEnableReferrers, renderer_callback); @@ -538,7 +538,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1937,6 +1937,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1953,6 +1953,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1582,6 +1582,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; +@@ -1566,6 +1566,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; @@ -615,7 +615,7 @@ diff --git a/components/download/content/internal/context_menu_download.cc b/com diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -405,6 +405,15 @@ void AddAdditionalRequestHeaders( +@@ -392,6 +392,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } @@ -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 -@@ -152,7 +152,7 @@ struct COMPONENT_EXPORT(NETWORK_CPP_BASE) ResourceRequest { +@@ -153,7 +153,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 5ab9cdb1..839549f1 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java -@@ -125,51 +125,6 @@ public class AppLocaleUtils { +@@ -127,51 +127,6 @@ public class AppLocaleUtils { return Locale.forLanguageTag("en-US"); } @@ -240,7 +240,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; -@@ -78,62 +68,14 @@ public class SmsVerificationReceiver extends BroadcastReceiver { +@@ -78,61 +68,13 @@ public class SmsVerificationReceiver extends BroadcastReceiver { // lightweight (e.g. it responds quickly without much computation). If this broadcast // receiver becomes more heavyweight, we should make this registration expire after the SMS // message is received. @@ -268,7 +268,6 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } @Override - @SuppressWarnings("NullAway") // https://github.com/uber/NullAway/issues/1122 public void onReceive(Context context, Intent intent) { - if (DEBUG) Log.d(TAG, "Received something!"); - @@ -303,7 +302,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } public void onPermissionDone(int resultCode, boolean isLocalRequest) { -@@ -153,71 +95,10 @@ public class SmsVerificationReceiver extends BroadcastReceiver { +@@ -152,71 +94,10 @@ public class SmsVerificationReceiver extends BroadcastReceiver { * task. */ public void onRetrieverTaskFailure(boolean isLocalRequest, Exception e) { 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 2d1b17d3..affbe8a2 100644 --- a/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch +++ b/build/patches/Remove-auth-header-upon-cross-origin-redirect.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/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 -@@ -590,6 +590,9 @@ bool ResourceLoader::WillFollowRedirect( +@@ -589,6 +589,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 84f0f93c..67bee4e9 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -27,7 +27,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...em_webview_bundle.AndroidManifest.expected | 5 - build/android/gyp/proguard.py | 2 + build/config/android/config.gni | 4 +- - chrome/android/BUILD.gn | 45 +- + chrome/android/BUILD.gn | 32 +- chrome/android/chrome_java_sources.gni | 5 - chrome/android/java/AndroidManifest.xml | 50 -- .../org/chromium/chrome/browser/AppHooks.java | 1 - @@ -35,9 +35,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../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 - + chrome/android/javatests/BUILD.gn | 7 - + chrome/android/junit/BUILD.gn | 6 - chrome/browser/language/android/BUILD.gn | 3 - .../language/AppLanguagePromoDialog.java | 31 - .../language/settings/LanguageSettings.java | 6 - @@ -64,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gcm_driver/GoogleCloudMessagingV2.java | 2 + components/gcm_driver/gcm_client_impl.cc | 4 + .../gcm_driver/instance_id/android/BUILD.gn | 3 - - .../instance_id/InstanceIDBridge.java | 55 +- + .../instance_id/InstanceIDBridge.java | 56 +- .../media_router/browser/android/BUILD.gn | 11 - .../media_router/BrowserMediaRouter.java | 21 +- .../components/media_router/MediaSink.java | 44 +- @@ -76,11 +78,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../media_router/caf/CafMessageHandler.java | 102 +-- .../media_router/caf/CastMediaSource.java | 10 +- .../media_router/caf/CastOptionsProvider.java | 22 +- - .../caf/CastSessionController.java | 84 -- + .../caf/CastSessionController.java | 84 --- .../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 - @@ -88,7 +90,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/omnibox/common/BUILD.gn | 1 - .../components/omnibox/OmniboxFeatures.java | 8 - components/signin/public/android/BUILD.gn | 3 - - .../signin/AccountRenameChecker.java | 16 - components/webauthn/android/BUILD.gn | 15 +- .../webauthn/AuthenticatorImpl.java | 80 +- .../webauthn/ConditionalUiState.java | 15 + @@ -98,19 +99,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../cred_man/CredManMetricsHelper.java | 2 +- .../push_messaging/push_messaging_manager.cc | 2 +- content/public/android/BUILD.gn | 5 - - .../webid/IdentityCredentialsDelegate.java | 85 +- + .../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 | 764 +----------------- + third_party/android_deps/BUILD.gn | 705 +----------------- .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 13 +- third_party/cardboard/BUILD.gn | 4 - - 86 files changed, 128 insertions(+), 2370 deletions(-) + 87 files changed, 128 insertions(+), 2295 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 @@ -138,7 +139,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest. diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py --- a/build/android/gyp/proguard.py +++ b/build/android/gyp/proguard.py -@@ -52,6 +52,8 @@ _IGNORE_WARNINGS = ( +@@ -53,6 +53,8 @@ _IGNORE_WARNINGS = ( r'EditorDialogToolbar', # https://crbug.com/1441226 r'PaymentRequest[BH]', @@ -165,8 +166,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn @@ -311,14 +311,6 @@ if (current_toolchain == default_toolchain) { - ":google_api_keys_java", ":java_overlay_resources", + ":system_ai_service_proto_java", ":usage_stats_proto_java", - "$google_play_services_package:google_play_services_auth_base_java", - "$google_play_services_package:google_play_services_base_java", @@ -179,7 +180,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", -@@ -709,11 +701,20 @@ if (current_toolchain == default_toolchain) { +@@ -718,11 +710,20 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -202,34 +203,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -971,12 +972,6 @@ if (current_toolchain == default_toolchain) { - ":chrome_jni_headers", - ":chrome_unit_test_util_java", - ":delegate_public_impl_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cast_framework_java", -- "$google_play_services_package:google_play_services_cast_java", -- "$google_play_services_package:google_play_services_gcm_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java_test_support", - "//base:base_java_test_support_uncommon", - "//base:base_junit_test_support", -@@ -1694,13 +1689,6 @@ if (current_toolchain == default_toolchain) { - ":chrome_app_java_resources", - ":chrome_test_util_java", - ":delegate_public_impl_java", -- "$google_play_services_package:google_play_services_base_java", -- "$google_play_services_package:google_play_services_basement_java", -- "$google_play_services_package:google_play_services_cast_framework_java", -- "$google_play_services_package:google_play_services_cast_java", -- "$google_play_services_package:google_play_services_gcm_java", -- "$google_play_services_package:google_play_services_iid_java", -- "$google_play_services_package:google_play_services_tasks_java", - "//base:base_java", - "//base:base_java_test_support", - "//base:base_java_test_support_uncommon", -@@ -2625,7 +2613,6 @@ if (current_toolchain == default_toolchain) { +@@ -1884,7 +1885,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -237,7 +211,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", -@@ -2727,7 +2714,6 @@ if (current_toolchain == default_toolchain) { +@@ -1986,7 +1986,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -245,7 +219,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", -@@ -2744,8 +2730,6 @@ if (current_toolchain == default_toolchain) { +@@ -2003,8 +2002,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", @@ -254,7 +228,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", -@@ -2771,15 +2755,10 @@ if (current_toolchain == default_toolchain) { +@@ -2030,15 +2027,10 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", "java/src/org/chromium/chrome/browser/provider/PageContentProvider.java", @@ -268,17 +242,17 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn - "$google_play_services_package:google_firebase_firebase_messaging_java", - "$google_play_services_package:google_play_services_gcm_java", "//base:base_java", + "//chrome/browser/autofill/android:third_party_provider_java", "//chrome/browser/download/android:file_provider_java", - "//chrome/browser/flags:java", -@@ -2794,7 +2773,6 @@ if (current_toolchain == default_toolchain) { +@@ -2053,7 +2045,6 @@ if (current_toolchain == default_toolchain) { + "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", - "//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", -@@ -2814,7 +2792,6 @@ if (current_toolchain == default_toolchain) { +@@ -2073,7 +2064,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. @@ -289,7 +263,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 -@@ -13,7 +13,6 @@ chrome_java_sources = [ +@@ -14,7 +14,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", @@ -297,7 +271,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", -@@ -976,10 +975,6 @@ chrome_java_sources = [ +@@ -989,10 +988,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", @@ -331,7 +305,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -784,16 +779,6 @@ by a child template that "extends" this file. +@@ -796,16 +791,6 @@ by a child template that "extends" this file. @@ -348,7 +322,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -375,7 +349,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1005,15 +970,6 @@ by a child template that "extends" this file. +@@ -1019,15 +984,6 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -391,8 +365,8 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1275,12 +1231,6 @@ by a child template that "extends" this file. - +@@ -1294,12 +1250,6 @@ by a child template that "extends" this file. + {% endif %} - @@ -721,15 +695,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/Ins diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -133,7 +133,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -131,7 +131,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment private Preference mLinkPref; private Menu mMenu; - private @Nullable PasswordCheck mPasswordCheck; private @ManagePasswordsReferrer int mManagePasswordsReferrer; - private OneshotSupplier mBottomSheetControllerSupplier; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); -@@ -217,7 +216,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment + +@@ -214,7 +213,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -737,7 +711,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage computeTrustedVaultBannerState(); } -@@ -322,9 +320,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -319,9 +317,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment if (shouldShowAutoSigninOption()) { createAutoSignInCheckbox(); } @@ -747,7 +721,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner( -@@ -527,10 +522,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -518,10 +513,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment // by the system. if (getActivity().isFinishing()) { PasswordManagerHandlerProvider.getForProfile(getProfile()).removeObserver(this); @@ -758,6 +732,39 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage } } +diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn +--- a/chrome/android/javatests/BUILD.gn ++++ b/chrome/android/javatests/BUILD.gn +@@ -12,13 +12,6 @@ testonly = true + + # Partition tests into one target per-package to keep incremental build times down. + chrome_test_java_helper_deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_framework_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_gcm_java", +- "$google_play_services_package:google_play_services_iid_java", +- "$google_play_services_package:google_play_services_tasks_java", + "//base:base_java", + "//base:base_java_test_support", + "//base:base_java_test_support_uncommon", +diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn +--- a/chrome/android/junit/BUILD.gn ++++ b/chrome/android/junit/BUILD.gn +@@ -35,12 +35,6 @@ shared_library_with_jni("libchrome_junit_tests") { + if (is_android) { + # Partition tests into one target per-package to keep incremental build times down. + chrome_junit_tests_helper_deps = [ +- "$google_play_services_package:google_play_services_base_java", +- "$google_play_services_package:google_play_services_basement_java", +- "$google_play_services_package:google_play_services_cast_framework_java", +- "$google_play_services_package:google_play_services_cast_java", +- "$google_play_services_package:google_play_services_gcm_java", +- "$google_play_services_package:google_play_services_tasks_java", + "//base:base_java", + "//base:base_java_test_support", + "//base:base_java_test_support_uncommon", 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 @@ -862,7 +869,7 @@ diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/androi diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -122,8 +122,6 @@ android_library("java") { +@@ -124,8 +124,6 @@ android_library("java") { ":java_resources", ":settings_interface_java", ":utils_java", @@ -871,7 +878,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "account_storage_notice:java", "//base:base_java", "//build/android:build_java", -@@ -257,7 +255,6 @@ android_library("utils_java") { +@@ -259,7 +257,6 @@ android_library("utils_java") { ] deps = [ @@ -879,7 +886,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", ] -@@ -312,8 +309,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -314,8 +311,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", @@ -897,10 +904,10 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom -import com.google.android.gms.common.GoogleApiAvailability; - + import org.chromium.build.annotations.NullMarked; + /** Launches the UI through which the user can update Google Play Services/ */ - public class GmsUpdateLauncher { - // Referrer string for the Google Play Store when installing GMS Core package -@@ -22,31 +20,5 @@ public class GmsUpdateLauncher { +@@ -25,31 +23,5 @@ public class GmsUpdateLauncher { * @param context to start the new store Activity from. */ public static void launch(Context context) { @@ -1071,7 +1078,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -198,8 +198,6 @@ static_library("ui") { +@@ -194,8 +194,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1080,7 +1087,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -495,7 +493,6 @@ static_library("ui") { +@@ -489,7 +487,6 @@ static_library("ui") { "//components/find_in_page", "//components/fingerprinting_protection_filter/browser", "//components/flags_ui", @@ -1091,16 +1098,16 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -153,8 +153,6 @@ android_library("java") { +@@ -155,8 +155,6 @@ android_library("java") { deps = [ ":java_resources", - "$google_play_services_package:google_play_services_location_java", - "$google_play_services_package:google_play_services_tasks_java", "//base:base_java", + "//base/version_info/android:version_constants_java", "//build/android:build_java", - "//chrome/browser/android/lifecycle:java", -@@ -469,8 +467,6 @@ robolectric_library("junit") { +@@ -473,8 +471,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -1141,14 +1148,14 @@ 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 -@@ -1519,16 +1519,9 @@ AuthenticatorMultiSourcePickerSheetModel:: +@@ -1548,16 +1548,9 @@ AuthenticatorMultiSourcePickerSheetModel:: bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() const { - using Mechanism = AuthenticatorRequestDialogModel::Mechanism; // If any phones or passkeys from a phone are shown then also show a button // that goes to the settings page to manage them. -- return base::ranges::any_of( +- return std::ranges::any_of( - dialog_model()->mechanisms, [](const Mechanism& mech) { - return absl::holds_alternative(mech.type) || - (absl::holds_alternative(mech.type) && @@ -1162,7 +1169,7 @@ diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/weba diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -223,7 +223,6 @@ void RegisterChromeWebUIConfigs() { +@@ -217,7 +217,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -1243,7 +1250,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauthn/cablev2_devices.cc --- a/chrome/browser/webauthn/cablev2_devices.cc +++ b/chrome/browser/webauthn/cablev2_devices.cc -@@ -366,6 +366,9 @@ void AddPairing(Profile* profile, std::unique_ptr pairing) { +@@ -371,6 +371,9 @@ void AddPairing(Profile* profile, std::unique_ptr pairing) { // This is called when doing a QR-code pairing with a phone and the phone // sends long-term pairing information during the handshake. The pairing // information is saved in preferences for future operations. @@ -1256,7 +1263,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 -@@ -371,8 +371,6 @@ android_library("chrome_java_integration_test_support") { +@@ -379,8 +379,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1268,7 +1275,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 -@@ -2553,14 +2553,6 @@ public class ExternalNavigationHandler { +@@ -2552,14 +2552,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -1425,7 +1432,7 @@ diff --git a/components/externalauth/android/java/src/org/chromium/components/ex diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java --- a/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java +++ b/components/gcm_driver/android/java/src/org/chromium/components/gcm_driver/GoogleCloudMessagingV2.java -@@ -128,6 +128,8 @@ public class GoogleCloudMessagingV2 implements GoogleCloudMessagingSubscriber { +@@ -136,6 +136,8 @@ public class GoogleCloudMessagingV2 implements GoogleCloudMessagingSubscriber { } private Intent registerRpc(Bundle data) throws IOException { @@ -1437,7 +1444,7 @@ diff --git a/components/gcm_driver/android/java/src/org/chromium/components/gcm_ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc --- a/components/gcm_driver/gcm_client_impl.cc +++ b/components/gcm_driver/gcm_client_impl.cc -@@ -449,6 +449,7 @@ void GCMClientImpl::StartGCM() { +@@ -432,6 +432,7 @@ void GCMClientImpl::StartGCM() { void GCMClientImpl::InitializeMCSClient() { DCHECK(network_connection_tracker_); @@ -1445,7 +1452,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc std::vector endpoints; endpoints.push_back(gservices_settings_.GetMCSMainEndpoint()); GURL fallback_endpoint = gservices_settings_.GetMCSFallbackEndpoint(); -@@ -642,6 +643,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, +@@ -600,6 +601,7 @@ void GCMClientImpl::AddHeartbeatInterval(const std::string& scope, int interval_ms) { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); DCHECK(mcs_client_); @@ -1453,7 +1460,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc mcs_client_->AddHeartbeatInterval(scope, interval_ms); } -@@ -653,6 +655,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { +@@ -611,6 +613,7 @@ void GCMClientImpl::RemoveHeartbeatInterval(const std::string& scope) { void GCMClientImpl::StartCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1461,7 +1468,7 @@ diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gc // Make sure no checkin is in progress. if (checkin_request_) -@@ -731,6 +734,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { +@@ -684,6 +687,7 @@ void GCMClientImpl::SetGServicesSettingsCallback(bool success) { void GCMClientImpl::SchedulePeriodicCheckin() { DCHECK(io_task_runner_->RunsTasksInCurrentSequence()); @@ -1498,15 +1505,16 @@ diff --git a/components/gcm_driver/instance_id/android/BUILD.gn b/components/gcm diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java --- a/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java +++ b/components/gcm_driver/instance_id/android/java/src/org/chromium/components/gcm_driver/instance_id/InstanceIDBridge.java -@@ -28,7 +28,6 @@ public class InstanceIDBridge { +@@ -30,8 +30,6 @@ public class InstanceIDBridge { * Underlying InstanceIDWithSubtype. May be shared by multiple InstanceIDBridges. Must be * initialized on a background thread. */ +- @SuppressWarnings("NullAway.Init") - private InstanceIDWithSubtype mInstanceID; private static boolean sBlockOnAsyncTasksForTesting; -@@ -73,7 +72,7 @@ public class InstanceIDBridge { +@@ -76,7 +74,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { @@ -1515,7 +1523,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -90,7 +89,7 @@ public class InstanceIDBridge { +@@ -93,7 +91,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Long doBackgroundWork() { @@ -1524,7 +1532,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -117,21 +116,7 @@ public class InstanceIDBridge { +@@ -120,21 +118,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected String doBackgroundWork() { @@ -1546,7 +1554,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -150,22 +135,7 @@ public class InstanceIDBridge { +@@ -153,22 +137,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Boolean doBackgroundWork() { @@ -1570,7 +1578,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -186,12 +156,7 @@ public class InstanceIDBridge { +@@ -189,12 +158,7 @@ public class InstanceIDBridge { new BridgeAsyncTask() { @Override protected Boolean doBackgroundWork() { @@ -1584,7 +1592,7 @@ diff --git a/components/gcm_driver/instance_id/android/java/src/org/chromium/com } @Override -@@ -227,24 +192,12 @@ public class InstanceIDBridge { +@@ -230,24 +194,12 @@ public class InstanceIDBridge { protected abstract void sendResultToNative(Result result); public void execute() { @@ -3111,7 +3119,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/ import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -143,12 +141,6 @@ public class OmniboxFeatures { +@@ -146,12 +144,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -3136,7 +3144,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", -@@ -199,7 +197,6 @@ robolectric_library("junit") { +@@ -197,7 +195,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3144,39 +3152,6 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:base_java_test_support", "//base:base_java_test_support_uncommon", -diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java b/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java ---- a/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java -+++ b/components/signin/public/android/java/src/org/chromium/components/signin/AccountRenameChecker.java -@@ -10,10 +10,6 @@ import androidx.annotation.Nullable; - import androidx.annotation.VisibleForTesting; - import androidx.annotation.WorkerThread; - --import com.google.android.gms.auth.AccountChangeEvent; --import com.google.android.gms.auth.GoogleAuthException; --import com.google.android.gms.auth.GoogleAuthUtil; -- - import org.chromium.base.ContextUtils; - import org.chromium.base.Log; - import org.chromium.base.Promise; -@@ -45,18 +41,6 @@ public final class AccountRenameChecker { - /** Gets the new account name of the renamed account. */ - @Override - public @Nullable String getNewNameOfRenamedAccount(String accountEmail) { -- final Context context = ContextUtils.getApplicationContext(); -- try { -- final List accountChangeEvents = -- GoogleAuthUtil.getAccountChangeEvents(context, 0, accountEmail); -- for (AccountChangeEvent event : accountChangeEvents) { -- if (event.getChangeType() == GoogleAuthUtil.CHANGE_TYPE_ACCOUNT_RENAMED_TO) { -- return event.getChangeData(); -- } -- } -- } catch (IOException | GoogleAuthException e) { -- Log.w(TAG, "Failed to get change events", e); -- } - return null; - } - } diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn --- a/components/webauthn/android/BUILD.gn +++ b/components/webauthn/android/BUILD.gn @@ -3222,7 +3197,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", -@@ -212,7 +200,6 @@ robolectric_library("junit") { +@@ -211,7 +199,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3588,7 +3563,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 -@@ -158,11 +158,6 @@ android_library("content_full_java") { +@@ -163,11 +163,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", ":content_util_java", @@ -3603,7 +3578,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java b/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java --- a/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java +++ b/content/public/android/java/src/org/chromium/content/browser/webid/IdentityCredentialsDelegate.java -@@ -15,13 +15,6 @@ import android.os.Handler; +@@ -14,13 +14,6 @@ import android.os.Handler; import android.os.Looper; import android.os.ResultReceiver; @@ -3617,7 +3592,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ import org.chromium.base.Log; import org.chromium.base.Promise; import org.chromium.base.ServiceLoaderUtil; -@@ -44,83 +37,7 @@ public class IdentityCredentialsDelegate { +@@ -43,82 +36,7 @@ public class IdentityCredentialsDelegate { } public Promise get(Activity window, String origin, String request) { @@ -3635,8 +3610,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ - ResultReceiver resultReceiver = - new ResultReceiver(new Handler(Looper.getMainLooper())) { - // android.credentials.GetCredentialException requires API level 34 -- @NullUnmarked -- @SuppressLint("NewApi") +- @SuppressWarnings("NewApi") - @Override - protected void onReceiveResult(int code, Bundle data) { - Log.d(TAG, "Received a response"); @@ -3646,7 +3620,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webid/ - response.getCredential() - .getData() - .getByteArray("identityToken"); -- result.fulfill(token); +- result.fulfill(Objects.requireNonNull(token)); - } catch (Exception e) { - Log.e(TAG, e.toString()); - @@ -3705,7 +3679,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 -@@ -3594,10 +3594,6 @@ if (is_android) { +@@ -3625,10 +3625,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3732,7 +3706,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn diff --git a/device/fido/features.cc b/device/fido/features.cc --- a/device/fido/features.cc +++ b/device/fido/features.cc -@@ -137,6 +137,7 @@ BASE_FEATURE(kWebAuthniCloudKeychainPrf, +@@ -123,6 +123,7 @@ BASE_FEATURE(kWebAuthniCloudKeychainPrf, BASE_FEATURE(kWebAuthnHybridLinking, "WebAuthenticationHybridLinking", base::FEATURE_ENABLED_BY_DEFAULT); @@ -3743,7 +3717,7 @@ diff --git a/device/fido/features.cc b/device/fido/features.cc diff --git a/services/BUILD.gn b/services/BUILD.gn --- a/services/BUILD.gn +++ b/services/BUILD.gn -@@ -149,11 +149,6 @@ if (is_android) { +@@ -150,11 +150,6 @@ if (is_android) { "shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java", ] deps = [ @@ -3755,7 +3729,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", -@@ -183,10 +178,6 @@ if (is_android) { +@@ -184,10 +179,6 @@ if (is_android) { "shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java", ] deps = [ @@ -3819,8 +3793,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. } # The section below is generated by running -@@ -317,296 +308,6 @@ if (!limit_android_deps) { - ] +@@ -321,295 +312,6 @@ if (!limit_android_deps) { + [ "local_modifications/accessibility_test_framework.pcfg" ] } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. @@ -3905,12 +3879,11 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_play_services_basement_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.4.0.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.5.0.aar" - info_path = "libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info" - enable_bytecode_checks = false - deps = [ -- "//third_party/androidx:androidx_collection_collection_java", -- "//third_party/androidx:androidx_core_core_java", +- "//third_party/androidx:androidx_collection_collection_jvm_java", - "//third_party/androidx:androidx_fragment_fragment_java", - ] - @@ -4003,7 +3976,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_identity_credentials_java") { -- aar_path = "cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha02.aar" +- aar_path = "cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha04.aar" - info_path = "libs/com_google_android_gms_play_services_identity_credentials/com_google_android_gms_play_services_identity_credentials.info" - enable_bytecode_checks = false - deps = [ @@ -4116,7 +4089,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(material_design_target)) { android_aar_prebuilt("com_google_android_material_material_java") { -@@ -654,24 +355,6 @@ if (!limit_android_deps) { +@@ -657,24 +359,6 @@ if (!limit_android_deps) { } } @@ -4141,8 +4114,8 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(dagger_java_target)) { java_prebuilt("com_google_dagger_dagger_java") { -@@ -712,56 +395,6 @@ if (!limit_android_deps) { - ] +@@ -693,56 +377,6 @@ if (!limit_android_deps) { + } } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. @@ -4198,47 +4171,10 @@ 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") { -@@ -888,20 +521,6 @@ if (!limit_android_deps) { - requires_android = true - } - -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- android_aar_prebuilt("io_grpc_grpc_binder_java") { -- aar_path = "cipd/libs/io_grpc_grpc_binder/grpc-binder-1.49.0.aar" -- info_path = "libs/io_grpc_grpc_binder/io_grpc_grpc_binder.info" -- enable_bytecode_checks = false -- deps = [ -- ":io_grpc_grpc_core_java", -- "//third_party/android_deps:guava_android_java", -- "//third_party/androidx:androidx_annotation_annotation_jvm_java", -- "//third_party/androidx:androidx_core_core_java", -- "//third_party/androidx:androidx_lifecycle_lifecycle_common_java", -- ] -- } -- - # 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" -@@ -1181,357 +800,6 @@ if (!limit_android_deps) { +@@ -1081,340 +715,6 @@ if (!limit_android_deps) { is_robolectric = true } -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- java_prebuilt("com_google_android_annotations_java") { -- jar_path = -- "cipd/libs/com_google_android_annotations/annotations-4.1.1.4.jar" -- output_name = "com_google_android_annotations" -- supports_android = true -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- } -- - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - if (google_play_services_package == "//third_party/android_deps") { - android_aar_prebuilt("google_android_datatransport_transport_api_java") { @@ -4389,7 +4325,6 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. - ":*", - "//third_party/androidx:*", - ] -- testonly = true - } - - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. @@ -4577,41 +4512,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_google_testparameterinjector_test_parameter_injector_java") { -@@ -1584,33 +852,6 @@ if (!limit_android_deps) { - ] - } - -- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. -- java_prebuilt("io_grpc_grpc_core_java") { -- jar_path = "cipd/libs/io_grpc_grpc_core/grpc-core-1.49.0.jar" -- output_name = "io_grpc_grpc_core" -- supports_android = true -- enable_bytecode_checks = false -- -- # To remove visibility constraint, add this dependency to -- # //third_party/android_deps/build.gradle. -- visibility = [ -- ":*", -- "//third_party/androidx:*", -- ] -- deps = [ -- ":com_google_android_annotations_java", -- ":com_google_code_gson_gson_java", -- ":com_google_errorprone_error_prone_annotations_java", -- ":io_grpc_grpc_api_java", -- ":io_perfmark_perfmark_api_java", -- ":org_codehaus_mojo_animal_sniffer_annotations_java", -- "//third_party/android_deps:guava_android_java", -- ] -- -- # https://crbug.com/1412551 -- requires_android = true -- } -- - # 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" -@@ -1870,7 +1111,6 @@ if (!limit_android_deps) { +@@ -1700,7 +1000,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ @@ -4619,7 +4520,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", -@@ -1892,7 +1132,6 @@ if (!limit_android_deps) { +@@ -1722,7 +1021,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ @@ -4627,7 +4528,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", -@@ -1962,7 +1201,6 @@ if (!limit_android_deps) { +@@ -1792,7 +1090,6 @@ if (!limit_android_deps) { ] testonly = true deps = [ @@ -4656,10 +4557,10 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; - + import org.chromium.build.annotations.NullMarked; + // Refer to go/doubledown-play-services#new-apis for more detail. - public final class ChromiumPlayServicesAvailability { - /** -@@ -30,9 +27,7 @@ public final class ChromiumPlayServicesAvailability { +@@ -33,9 +30,7 @@ public final class ChromiumPlayServicesAvailability { * PM/UX. */ public static boolean isGooglePlayServicesAvailable(final Context context) { @@ -4670,7 +4571,7 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices } /** -@@ -50,7 +45,6 @@ public final class ChromiumPlayServicesAvailability { +@@ -53,7 +48,6 @@ public final class ChromiumPlayServicesAvailability { * PM/UX. */ public static int getGooglePlayServicesConnectionResult(final Context context) { @@ -4682,7 +4583,7 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni --- a/third_party/androidx/customizations.gni +++ b/third_party/androidx/customizations.gni -@@ -129,7 +129,7 @@ template("androidx_java_prebuilt") { +@@ -136,7 +136,7 @@ template("androidx_java_prebuilt") { } } @@ -4691,7 +4592,7 @@ diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/cust _androidx_prebuilt(target_name) { forward_variables_from(invoker, "*") target_type = "android_aar_prebuilt" -@@ -152,6 +152,17 @@ template("androidx_android_aar_prebuilt") { +@@ -157,6 +157,17 @@ template("androidx_android_aar_prebuilt") { } } diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index f40f8a8c..ece64636 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 -@@ -511,7 +511,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -504,7 +504,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 2bf96593..8aacb96d 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -30,7 +30,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 -@@ -155,9 +155,6 @@ found in the LICENSE file. +@@ -158,9 +158,6 @@ found in the LICENSE file. @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java -@@ -113,6 +113,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment +@@ -115,6 +115,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -97,7 +97,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -124,6 +124,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -126,6 +126,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -916,6 +916,7 @@ public abstract class ClearBrowsingDataFragment extends ChromeBaseSettingsFragme +@@ -908,6 +908,7 @@ public class ClearBrowsingDataFragment extends ChromeBaseSettingsFragment TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -1024,7 +1024,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1029,7 +1029,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { // Disable creating new tabs, bookmark, print, help, focus_url, etc. if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id @@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -237,6 +237,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -234,6 +234,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment mSearchItem = menu.findItem(R.id.menu_id_search); mSearchItem.setVisible(true); mHelpItem = menu.findItem(R.id.menu_id_targeted_help); @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -509,6 +509,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -496,6 +496,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -436,6 +436,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -420,6 +420,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getTheme())); @@ -174,7 +174,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -505,6 +505,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -508,6 +508,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -263,12 +263,12 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc --- a/chrome/browser/ui/chrome_pages.cc +++ b/chrome/browser/ui/chrome_pages.cc -@@ -141,6 +141,7 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { +@@ -138,6 +138,7 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { // shown in the last active browser. If there is no such browser, a new browser // is created. void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) { + if ((true)) return; base::RecordAction(UserMetricsAction("ShowHelpTab")); - #if BUILDFLAG(IS_CHROMEOS_ASH) && BUILDFLAG(GOOGLE_CHROME_BRANDING) + #if BUILDFLAG(IS_CHROMEOS) && BUILDFLAG(GOOGLE_CHROME_BRANDING) auto app_launch_source = apps::LaunchSource::kUnknown; -- diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index b6e6fc09..efc82253 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,9 +47,9 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -247,4 +247,7 @@ constexpr base::FeatureParam kMaxTabGroupSyncCardImpressions{ - &kEducationalTipModule, "max_tab_group_sync_card_impressions", - /*default_value=*/10}; +@@ -266,4 +266,7 @@ BASE_FEATURE(kSegmentationPlatformFedCmUser, + "SegmentationPlatformFedCmUser", + base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index 6cefb942..3e8252f3 100644 --- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch @@ -247,7 +247,7 @@ diff --git a/third_party/blink/renderer/core/timing/memory_info.cc b/third_party diff --git a/third_party/blink/renderer/core/timing/window_performance.cc b/third_party/blink/renderer/core/timing/window_performance.cc --- a/third_party/blink/renderer/core/timing/window_performance.cc +++ b/third_party/blink/renderer/core/timing/window_performance.cc -@@ -306,7 +306,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { +@@ -320,7 +320,7 @@ MemoryInfo* WindowPerformance::memory(ScriptState* script_state) const { const bool is_locked_to_site = Platform::Current()->IsLockedToSite(); auto* memory_info = MakeGarbageCollected( is_locked_to_site ? MemoryInfo::Precision::kPrecise diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index 7409023a..dbf39f1d 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.chrome.browser.ui.native_page.NativePage; -@@ -322,7 +321,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -325,7 +324,7 @@ public class SearchActivity extends AsyncInitializationActivity /*omniboxUma*/ (url, transition, isNtp) -> {}, TabWindowManagerSingleton::getInstance, /* bookmarkState= */ (url) -> false, @@ -179,7 +179,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; @@ -187,7 +187,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; -@@ -2601,10 +2600,6 @@ public class ToolbarManager +@@ -2682,10 +2681,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -201,7 +201,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 -@@ -102,8 +102,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -106,8 +106,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; @@ -210,7 +210,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; -@@ -146,7 +144,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +@@ -148,7 +146,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; @@ -218,7 +218,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; -@@ -308,7 +305,6 @@ public class RootUiCoordinator +@@ -310,7 +307,6 @@ public class RootUiCoordinator private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); @@ -226,7 +226,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 +@@ -636,9 +632,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -236,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1471,39 +1464,12 @@ public class RootUiCoordinator +@@ -1472,39 +1465,12 @@ public class RootUiCoordinator () -> mToolbarManager.setUrlBarFocus( false, OmniboxFocusReason.UNFOCUS)); @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.ADD_TO_BOOKMARKS, addToBookmarksToolbarButtonController); -@@ -1670,13 +1634,6 @@ public class RootUiCoordinator +@@ -1669,13 +1633,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -302,7 +302,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -143,7 +143,6 @@ android_library("java") { +@@ -145,7 +145,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -336,7 +336,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/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 -@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; +@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -344,7 +344,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; -@@ -479,13 +478,6 @@ public class LocationBarCoordinator +@@ -464,13 +463,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -358,7 +358,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -807,11 +799,6 @@ public class LocationBarCoordinator +@@ -792,11 +784,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -396,7 +396,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 -@@ -55,7 +55,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -57,7 +57,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; @@ -404,7 +404,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; -@@ -96,8 +95,6 @@ import java.util.function.BooleanSupplier; +@@ -98,8 +97,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -413,15 +413,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -162,7 +159,6 @@ class LocationBarMediator +@@ -164,7 +161,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; - private VoiceRecognitionHandler mVoiceRecognitionHandler; private final LocationBarDataProvider mLocationBarDataProvider; + private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; - private StatusCoordinator mStatusCoordinator; -@@ -235,8 +231,6 @@ class LocationBarMediator +@@ -239,8 +235,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -430,7 +430,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; -@@ -279,9 +273,6 @@ class LocationBarMediator +@@ -284,9 +278,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -440,7 +440,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -413,11 +404,6 @@ class LocationBarMediator +@@ -418,11 +409,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -452,7 +452,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -687,10 +673,6 @@ class LocationBarMediator +@@ -692,10 +678,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); @@ -463,7 +463,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1166,10 +1148,7 @@ class LocationBarMediator +@@ -1178,10 +1160,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -475,7 +475,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1186,6 +1165,7 @@ class LocationBarMediator +@@ -1198,6 +1177,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -483,7 +483,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. -@@ -1410,11 +1390,6 @@ class LocationBarMediator +@@ -1422,11 +1402,6 @@ class LocationBarMediator } } @@ -495,7 +495,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1430,31 +1405,13 @@ class LocationBarMediator +@@ -1442,31 +1417,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -529,7 +529,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; -@@ -1477,20 +1434,6 @@ class LocationBarMediator +@@ -1489,20 +1446,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -579,15 +579,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteController.java -@@ -15,7 +15,6 @@ import org.jni_zero.NativeMethods; - +@@ -15,7 +15,6 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.omnibox.OmniboxMetrics; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxAnswerAction; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteMatch; -@@ -335,25 +334,6 @@ public class AutocompleteController { +@@ -331,25 +330,6 @@ public class AutocompleteController { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } @@ -613,7 +613,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. -@@ -501,11 +481,6 @@ public class AutocompleteController { +@@ -497,11 +477,6 @@ public class AutocompleteController { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); @@ -628,7 +628,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 -@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On +@@ -31,7 +31,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -636,7 +636,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; -@@ -292,13 +291,6 @@ public class AutocompleteCoordinator +@@ -293,13 +292,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -653,7 +653,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 -@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -42,7 +42,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; @@ -661,7 +661,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; -@@ -500,13 +499,6 @@ class AutocompleteMediator +@@ -479,13 +478,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } 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 aaf62760..d7846150 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 -@@ -2982,7 +2982,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3004,7 +3004,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(); } -@@ -2993,6 +2993,7 @@ void DocumentLoader::CommitNavigation() { +@@ -3015,6 +3015,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index 96e9423a..217e7bb0 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,9 +27,9 @@ 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 -@@ -1661,6 +1661,16 @@ static_library("browser") { - "webid/identity_provider_permission_request.h", - ] +@@ -1698,6 +1698,16 @@ static_library("browser") { + ] + } + sources += [ + "permissions/last_tab_standing_tracker.cc", @@ -382,7 +382,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 -@@ -129,6 +129,7 @@ +@@ -135,6 +135,7 @@ #include "chrome/browser/password_manager/password_manager_settings_service_factory.h" #include "chrome/browser/password_manager/password_reuse_manager_factory.h" #include "chrome/browser/password_manager/profile_password_store_factory.h" @@ -390,7 +390,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" -@@ -1046,6 +1047,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1058,6 +1059,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -401,7 +401,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc 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 -@@ -52,6 +52,7 @@ +@@ -51,6 +51,7 @@ #include "chrome/browser/page_info/page_info_features.h" #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" @@ -409,7 +409,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -412,6 +413,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -405,6 +406,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 0957f1ba..f62657ac 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 -@@ -314,6 +314,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -316,6 +316,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReadAloudIPHMenuButtonHighlightCCT, &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 -@@ -386,6 +386,7 @@ public abstract class ChromeFeatureList { - public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; +@@ -389,6 +389,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; + public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; + 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 = @@ -45,23 +45,23 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -@@ -11,6 +11,7 @@ import androidx.annotation.NonNull; - import androidx.annotation.Nullable; +@@ -9,6 +9,7 @@ import android.text.TextUtils; + import androidx.annotation.VisibleForTesting; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.base.supplier.Supplier; - import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; - import org.chromium.chrome.browser.omnibox.styles.OmniboxImageSupplier; -@@ -49,6 +50,7 @@ class DropdownItemViewInfoListBuilder { + import org.chromium.build.annotations.Initializer; + import org.chromium.build.annotations.NullMarked; +@@ -50,6 +51,7 @@ class DropdownItemViewInfoListBuilder { private @Nullable Supplier mShareDelegateSupplier; - private @NonNull Optional mImageSupplier; - private @NonNull BookmarkState mBookmarkState; + private Optional mImageSupplier; + private BookmarkState mBookmarkState; + private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor; - DropdownItemViewInfoListBuilder( - @NonNull Supplier tabSupplier, @NonNull BookmarkState bookmarkState) { -@@ -81,9 +83,11 @@ class DropdownItemViewInfoListBuilder { + DropdownItemViewInfoListBuilder(Supplier tabSupplier, BookmarkState bookmarkState) { + mPriorityOrderedSuggestionProcessors = new ArrayList<>(); +@@ -80,9 +82,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( -@@ -169,6 +173,9 @@ class DropdownItemViewInfoListBuilder { +@@ -168,6 +172,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 2366f343..9012187a 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.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 -@@ -544,6 +544,7 @@ chrome_java_resources = [ +@@ -547,6 +547,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_tile_grid_placeholder.xml", "java/res/layout/one_line_list_item.xml", "java/res/layout/open_full_chrome_history_header.xml", @@ -55,7 +55,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 -@@ -627,6 +627,7 @@ chrome_java_sources = [ +@@ -640,6 +640,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", @@ -63,7 +63,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", -@@ -1039,6 +1040,7 @@ chrome_java_sources = [ +@@ -1053,6 +1054,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", @@ -244,7 +244,7 @@ diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -134,6 +134,8 @@ found in the LICENSE file. +@@ -126,6 +126,8 @@ found in the LICENSE file. 62dp @@ -256,7 +256,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java -@@ -66,6 +66,7 @@ public class ChromeFeedbackCollector extends FeedbackCollector 0, sort, and trim to kMaxBookmarks. @@ -738,7 +738,7 @@ 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 -@@ -277,6 +277,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -279,6 +279,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kHistoryPaneAndroid, &kLockBackPressHandlerAtStart, &kIncognitoScreenshot, @@ -749,23 +749,23 @@ 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 -@@ -387,6 +387,7 @@ public abstract class ChromeFeatureList { - public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; +@@ -390,6 +390,7 @@ public abstract class ChromeFeatureList { public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = "MayLaunchUrlUsesSeparateStoragePartition"; + public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; + 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 = -@@ -721,7 +722,7 @@ public abstract class ChromeFeatureList { +@@ -730,7 +731,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, true); public static final CachedFlag sLogoPolishAnimationKillSwitch = newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); - public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = newCachedFlag(MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION, false); - public static final CachedFlag sMostVisitedTilesReselect = - newCachedFlag(MOST_VISITED_TILES_RESELECT, false); + public static final CachedFlag sMostVisitedTilesCustomization = + newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); + public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java b/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java --- a/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java +++ b/chrome/browser/segmentation_platform/android/java/src/org/chromium/chrome/browser/segmentation_platform/client_util/HomeModulesRankingHelper.java diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index e66a226d..c0b0bbba 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.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/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -267,15 +267,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -264,15 +264,7 @@ public class MainSettings extends ChromeBaseSettingsFragment templateUrlService.load(); } @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.cc b/chrome/browser/segmentation_platform/segmentation_platform_config.cc --- a/chrome/browser/segmentation_platform/segmentation_platform_config.cc +++ b/chrome/browser/segmentation_platform/segmentation_platform_config.cc -@@ -71,6 +71,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; +@@ -72,6 +72,7 @@ constexpr int kAdaptiveToolbarDefaultSelectionTTLDays = 56; #if BUILDFLAG(IS_ANDROID) std::unique_ptr GetConfigForAdaptiveToolbar() { diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 301bb605..fa7ecc73 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -4,63 +4,62 @@ Subject: Restore chrome password store License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../android/login_db_deprecation_runner_factory.cc | 2 +- - .../password_manager/profile_password_store_factory.cc | 2 +- - .../browser/resources/password_manager/user_utils_mixin.ts | 4 ++-- - chrome/browser/ui/android/strings/android_chrome_strings.grd | 2 +- - chrome/browser/ui/autofill/autofill_client_provider.cc | 5 ----- - components/password_manager/core/browser/buildflags.gni | 2 +- - .../features/password_manager_features_util_common.cc | 1 + - components/sync/service/sync_prefs.cc | 2 +- - .../password_features_cc/Restore-chrome-password-store.inc | 1 + - 9 files changed, 9 insertions(+), 12 deletions(-) + chrome/android/java/AndroidManifest.xml | 5 ++--- + .../autofill/AutofillClientProviderUtils.java | 1 + + .../login_db_deprecation_runner_factory.cc | 2 +- + .../android/strings/android_chrome_strings.grd | 2 +- + .../ui/autofill/autofill_client_provider.cc | 16 ---------------- + .../autofill/core/common/autofill_features.cc | 1 + + .../password_manager/core/browser/buildflags.gni | 2 +- + .../features/password_manager_features_util.cc | 1 + + components/sync/service/sync_prefs.cc | 2 +- + .../Restore-chrome-password-store.inc | 1 + + 10 files changed, 10 insertions(+), 23 deletions(-) create mode 100644 cromite_flags/components/password_manager/core/browser/features/password_features_cc/Restore-chrome-password-store.inc +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 +@@ -452,10 +452,9 @@ by a child template that "extends" this file. + + + +- ++ android:excludeFromRecents="true"> + + + +diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java ++++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +@@ -119,6 +119,7 @@ public class AutofillClientProviderUtils { + + @CalledByNative + public static void setAutofillOptionsDeepLinkPref(boolean featureOn) { ++ featureOn = false; + Editor editor = + ContextUtils.getApplicationContext() + .getSharedPreferences( diff --git a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc --- a/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc +++ b/chrome/browser/password_manager/android/login_db_deprecation_runner_factory.cc -@@ -38,7 +38,7 @@ std::unique_ptr +@@ -39,7 +39,7 @@ std::unique_ptr LoginDbDeprecationRunnerFactory::BuildServiceInstanceForBrowserContext( content::BrowserContext* context) const { #if BUILDFLAG(USE_LOGIN_DATABASE_AS_BACKEND) - return nullptr; + if ((true)) return nullptr; - #endif + #else Profile* profile = Profile::FromBrowserContext(context); PrefService* prefs = profile->GetPrefs(); -diff --git a/chrome/browser/password_manager/profile_password_store_factory.cc b/chrome/browser/password_manager/profile_password_store_factory.cc ---- a/chrome/browser/password_manager/profile_password_store_factory.cc -+++ b/chrome/browser/password_manager/profile_password_store_factory.cc -@@ -101,7 +101,7 @@ scoped_refptr BuildPasswordStore( - - password_affiliation_adapter->RegisterPasswordStore(ps.get()); - affiliation_service->RegisterSource(std::move(password_affiliation_adapter)); --#if BUILDFLAG(IS_ANDROID) -+#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(USE_LOGIN_DATABASE_AS_BACKEND) - CHECK(password_manager_android_util::IsInternalBackendPresent()); - password_manager::LoginDbDeprecationRunner* login_db_deprecation_runner = - LoginDbDeprecationRunnerFactory::GetForProfile(profile); -diff --git a/chrome/browser/resources/password_manager/user_utils_mixin.ts b/chrome/browser/resources/password_manager/user_utils_mixin.ts ---- a/chrome/browser/resources/password_manager/user_utils_mixin.ts -+++ b/chrome/browser/resources/password_manager/user_utils_mixin.ts -@@ -138,11 +138,11 @@ export const UserUtilMixin = dedupingMixin( - } - - private computeIsEligibleForAccountStorage_(): boolean { -- return !!this.syncInfo_ && this.syncInfo_.isEligibleForAccountStorage; -+ return !!this.syncInfo_ && !!this.syncInfo_.isEligibleForAccountStorage; - } - - private computeIsSyncingPasswords_(): boolean { -- return !!this.syncInfo_ && this.syncInfo_.isSyncingPasswords; -+ return !!this.syncInfo_ && !!this.syncInfo_.isSyncingPasswords; - } - - private computeAccountEmail_(): string { 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 -@@ -734,7 +734,7 @@ For more settings that use data to improve your Chrome experience, go to @@ -72,18 +71,40 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc +++ b/chrome/browser/ui/autofill/autofill_client_provider.cc -@@ -26,11 +26,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { +@@ -25,22 +25,6 @@ AutofillClientProvider::AutofillClientProvider(PrefService* prefs) { #if BUILDFLAG(IS_ANDROID) prefs->SetBoolean(prefs::kAutofillUsingVirtualViewStructure, true); - if (base::FeatureList::IsEnabled( +- autofill::features::kAutofillVirtualViewStructureAndroid) && +- base::FeatureList::IsEnabled( - autofill::features::kAutofillThirdPartyModeContentProvider)) { - Java_AutofillClientProviderUtils_setThirdPartyModePref( - base::android::AttachCurrentThread(), uses_platform_autofill_); +- } else { +- Java_AutofillClientProviderUtils_unsetThirdPartyModePref( +- base::android::AttachCurrentThread()); - } +- Java_AutofillClientProviderUtils_setAutofillOptionsDeepLinkPref( +- base::android::AttachCurrentThread(), +- base::FeatureList::IsEnabled( +- autofill::features::kAutofillVirtualViewStructureAndroid) && +- base::FeatureList::IsEnabled( +- autofill::features::kAutofillDeepLinkAutofillOptions)); #endif // BUILDFLAG(IS_ANDROID) } +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 +@@ -741,6 +741,7 @@ BASE_FEATURE(kAutofillBetterLocalHeuristicPlaceholderSupport, + BASE_FEATURE(kAutofillDeepLinkAutofillOptions, + "AutofillDeepLinkAutofillOptions", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions); + + // Controls if Chrome Autofill UI surfaces ignore touch events if something is + // fully or partially obscuring the Chrome window. diff --git a/components/password_manager/core/browser/buildflags.gni b/components/password_manager/core/browser/buildflags.gni --- a/components/password_manager/core/browser/buildflags.gni +++ b/components/password_manager/core/browser/buildflags.gni @@ -96,10 +117,10 @@ diff --git a/components/password_manager/core/browser/buildflags.gni b/component } # Drawables from the downstream clank/ repository are -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 -@@ -55,6 +55,7 @@ bool CanAccountStorageBeEnabled(const PrefService* pref_service, +diff --git a/components/password_manager/core/browser/features/password_manager_features_util.cc b/components/password_manager/core/browser/features/password_manager_features_util.cc +--- a/components/password_manager/core/browser/features/password_manager_features_util.cc ++++ b/components/password_manager/core/browser/features/password_manager_features_util.cc +@@ -63,6 +63,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) { @@ -110,15 +131,15 @@ diff --git a/components/password_manager/core/browser/features/password_manager_ diff --git a/components/sync/service/sync_prefs.cc b/components/sync/service/sync_prefs.cc --- a/components/sync/service/sync_prefs.cc +++ b/components/sync/service/sync_prefs.cc -@@ -725,7 +725,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -726,7 +726,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); + return true; + case UserSelectableType::kPayments: 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 2816094a..4a2b168d 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 -@@ -1168,7 +1168,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1174,7 +1174,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; } -@@ -1201,6 +1202,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1207,6 +1208,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 -@@ -295,6 +295,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -298,6 +298,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 -@@ -407,6 +407,7 @@ public abstract class ChromeFeatureList { +@@ -410,6 +410,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-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 720ee185..8f7f7562 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 -@@ -2061,6 +2061,10 @@ +@@ -2073,6 +2073,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 711e8dfe..aaa1cd15 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -28,8 +28,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ed_service_worker_module_script_fetcher.cc | 1 + .../modulescript/module_script_loader_test.cc | 1 + .../worker_module_script_fetcher.cc | 3 +- - .../renderer/core/workers/dedicated_worker.cc | 14 ++++++-- - .../renderer/core/workers/dedicated_worker.h | 5 ++- + .../renderer/core/workers/dedicated_worker.cc | 10 ++++++ + .../renderer/core/workers/dedicated_worker.h | 3 ++ .../workers/dedicated_worker_global_scope.cc | 9 ++++- .../workers/dedicated_worker_global_scope.h | 1 + .../workers/global_scope_creation_params.cc | 2 ++ @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 36 files changed, 191 insertions(+), 18 deletions(-) + 36 files changed, 188 insertions(+), 15 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc @@ -85,15 +85,15 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -34,6 +34,7 @@ - #include "base/task/single_thread_task_runner.h" +@@ -35,6 +35,7 @@ #include "net/storage_access_api/status.h" #include "services/metrics/public/cpp/ukm_source_id.h" + #include "services/network/public/mojom/permissions_policy/permissions_policy_feature.mojom-blink-forward.h" +#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h" #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" -@@ -385,6 +386,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -391,6 +392,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -254,6 +254,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -258,6 +258,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -171,7 +171,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8090,6 +8090,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8066,6 +8066,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -274,25 +274,25 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third Vector(), + std::nullopt /* response_address_space */, String() /* source_code */, reject_coep_unsafe_none, - std::move(back_forward_cache_controller_host)); - return; -@@ -429,6 +430,7 @@ void DedicatedWorker::OnScriptLoadStarted( + std::move(back_forward_cache_controller_host), + /*coep_reporting_observer=*/mojo::NullReceiver(), +@@ -435,6 +436,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), + std::nullopt /* response_address_space */, String() /* source_code */, RejectCoepUnsafeNone(false), - std::move(back_forward_cache_controller_host)); - } -@@ -501,6 +503,7 @@ void DedicatedWorker::OnFinished( + std::move(back_forward_cache_controller_host), + std::move(coep_reporting_observer), +@@ -509,6 +511,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), + classic_script_loader_->ResponseAddressSpace(), classic_script_loader_->SourceText(), RejectCoepUnsafeNone(false), - std::move(back_forward_cache_controller_host)); - probe::ScriptImported(GetExecutionContext(), -@@ -517,6 +520,7 @@ void DedicatedWorker::ContinueStart( + std::move(back_forward_cache_controller_host), + /*coep_reporting_observer=*/mojo::NullReceiver(), +@@ -527,6 +530,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -300,23 +300,23 @@ 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 -@@ -539,6 +543,7 @@ void DedicatedWorker::ContinueStart( +@@ -553,6 +557,7 @@ void DedicatedWorker::ContinueStart( std::move(worker_main_script_load_params), std::move(referrer_policy), std::move(response_content_security_policies), + response_address_space, source_code, reject_coep_unsafe_none, - std::move(back_forward_cache_controller_host)), - base::Milliseconds(features::kDedicatedWorkerStartDelayInMs.Get())); -@@ -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), -+ response_address_space, - source_code, reject_coep_unsafe_none, - std::move(back_forward_cache_controller_host)); - } -@@ -558,6 +564,7 @@ void DedicatedWorker::ContinueStartInternal( + std::move(back_forward_cache_controller_host), + std::move(coep_reporting_observer), +@@ -563,6 +568,7 @@ void DedicatedWorker::ContinueStart( + ContinueStartInternal( + script_url, std::move(worker_main_script_load_params), + std::move(referrer_policy), std::move(response_content_security_policies), ++ response_address_space, + source_code, reject_coep_unsafe_none, + std::move(back_forward_cache_controller_host), + std::move(coep_reporting_observer), std::move(dip_reporting_observer)); +@@ -575,6 +581,7 @@ void DedicatedWorker::ContinueStartInternal( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -324,27 +324,23 @@ 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 -@@ -569,7 +576,8 @@ void DedicatedWorker::ContinueStartInternal( - context_proxy_->StartWorkerGlobalScope( +@@ -591,6 +598,7 @@ void DedicatedWorker::ContinueStartInternal( CreateGlobalScopeCreationParams( script_url, referrer_policy, -- std::move(response_content_security_policies)), -+ std::move(response_content_security_policies), -+ response_address_space), + std::move(response_content_security_policies), ++ response_address_space, + std::move(coep_reporting_observer), + std::move(dip_reporting_observer)), 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_, -@@ -606,7 +614,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( - const KURL& script_url, +@@ -630,6 +638,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( network::mojom::ReferrerPolicy referrer_policy, Vector -- response_content_security_policies) { -+ response_content_security_policies, -+ std::optional response_address_space) { - base::UnguessableToken parent_devtools_token; - std::unique_ptr settings; - ExecutionContext* execution_context = GetExecutionContext(); -@@ -655,6 +664,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( + response_content_security_policies, ++ std::optional response_address_space, + mojo::PendingReceiver + coep_reporting_observer, + mojo::PendingReceiver +@@ -682,6 +691,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -355,7 +351,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_party/blink/renderer/core/workers/dedicated_worker.h --- a/third_party/blink/renderer/core/workers/dedicated_worker.h +++ b/third_party/blink/renderer/core/workers/dedicated_worker.h -@@ -152,6 +152,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -157,6 +157,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -363,7 +359,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -163,6 +164,7 @@ class CORE_EXPORT DedicatedWorker final +@@ -172,6 +173,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector response_content_security_policies, @@ -371,16 +367,14 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -171,7 +173,8 @@ class CORE_EXPORT DedicatedWorker final - const KURL& script_url, +@@ -185,6 +187,7 @@ class CORE_EXPORT DedicatedWorker final network::mojom::ReferrerPolicy, Vector -- response_content_security_policies); -+ response_content_security_policies, -+ std::optional response_address_space); - scoped_refptr CreateWebWorkerFetchContext(); - // May return nullptr. - std::unique_ptr CreateWebContentSettingsClient(); + response_content_security_policies, ++ std::optional response_address_space, + mojo::PendingReceiver + coep_reporting_observer, + mojo::PendingReceiver diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc @@ -450,7 +444,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr worker_settings, -@@ -72,6 +73,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( +@@ -76,6 +77,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams( starter_https_state(starter_https_state), worker_clients(worker_clients), content_settings_client(std::move(content_settings_client)), @@ -469,7 +463,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/permissions_policy/permissions_policy.h" #include "third_party/blink/public/common/tokens/tokens.h" -@@ -62,6 +63,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -63,6 +64,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final { HttpsState starter_https_state, WorkerClients*, std::unique_ptr, @@ -477,7 +471,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param const Vector* inherited_trial_features, const base::UnguessableToken& parent_devtools_token, std::unique_ptr, -@@ -182,6 +184,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { +@@ -187,6 +189,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final { std::unique_ptr content_settings_client; @@ -647,7 +641,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc --- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc +++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.cc -@@ -30,6 +30,7 @@ +@@ -35,6 +35,7 @@ #include #include "base/memory/scoped_refptr.h" @@ -655,7 +649,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h" #include "third_party/blink/renderer/core/execution_context/execution_context.h" -@@ -100,7 +101,8 @@ String CheckSameOriginEnforcement(const KURL& request_url, +@@ -105,7 +106,8 @@ String CheckSameOriginEnforcement(const KURL& request_url, } // namespace @@ -665,7 +659,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade void WorkerClassicScriptLoader::LoadSynchronously( ExecutionContext& execution_context, -@@ -236,6 +238,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse( +@@ -241,6 +243,7 @@ void WorkerClassicScriptLoader::DidReceiveResponse( identifier_ = identifier; response_url_ = response.ResponseUrl(); response_encoding_ = response.TextEncodingName(); @@ -791,7 +785,7 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc --- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc +++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc -@@ -204,7 +204,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( +@@ -213,7 +213,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread( Vector(), network::mojom::ReferrerPolicy::kDefault, starter_origin.get(), starter_secure_context, starter_https_state, nullptr /* worker_clients */, 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 a20a3056..14e3330f 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -188,7 +188,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -50,6 +50,7 @@ +@@ -52,6 +52,7 @@ #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/public/platform/web_string.h" #include "third_party/blink/public/web/web_picture_in_picture_window_options.h" @@ -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" -@@ -488,7 +489,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -490,7 +491,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 -@@ -4070,19 +4070,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4065,19 +4065,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 -@@ -929,12 +929,6 @@ class CORE_EXPORT LocalFrame final +@@ -928,12 +928,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index b027bd9f..a90232b7 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 -@@ -2395,6 +2395,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn +@@ -2416,6 +2416,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements MismatchedIn mInactivityTracker = new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF); @@ -149,14 +149,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC 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 -@@ -332,6 +332,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -334,6 +334,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCT, &kSearchInCCTAlternateTapHandling, &kSearchResumptionModuleAndroid, + &kShowNtpAtStartupAndroid, &kSettingsSingleActivity, &kShareCustomActionsInCCT, - &kSmallerTabStripTitleLimit, + &kSkipIsolatedSplitPreload, diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java new file mode 100644 --- /dev/null @@ -198,7 +198,7 @@ new file mode 100644 diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -795,6 +795,8 @@ public final class ChromePreferenceKeys { +@@ -797,6 +797,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -260,7 +260,7 @@ diff --git a/chrome/browser/single_tab/android/java/res/layout/single_tab_module diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java --- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java +++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java -@@ -175,7 +175,7 @@ public class SingleTabSwitcherCoordinator implements ModuleProvider { +@@ -176,7 +176,7 @@ public class SingleTabSwitcherCoordinator implements ModuleProvider { /** Returns the layout resource id for the single tab card. */ public static int getModuleLayoutId() { @@ -280,7 +280,7 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow mPropertyModel.set( SEE_MORE_LINK_CLICK_LISTENER, () -> { -@@ -266,14 +267,14 @@ public class SingleTabSwitcherOnNtpMediator { +@@ -265,14 +266,14 @@ public class SingleTabSwitcherOnNtpMediator { public void onPageLoadFinished(Tab tab, GURL url) { super.onPageLoadFinished(tab, url); mPropertyModel.set(TITLE, tab.getTitle()); diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index fb9433da..debeeeb4 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -323,7 +323,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4057,19 +4057,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4052,19 +4052,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(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 -@@ -928,12 +928,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 -@@ -1033,9 +1033,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1034,9 +1034,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -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 -@@ -818,6 +818,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -819,6 +819,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,7 +459,7 @@ 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( -@@ -1980,7 +1981,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( +@@ -2001,7 +2002,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; } @@ -468,7 +468,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2225,8 +2226,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2246,8 +2247,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } diff --git a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch index 18b53092..31191a06 100644 --- a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch +++ b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing. } AtomicString PerformanceResourceTiming::deliveryType() const { -@@ -172,6 +172,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( +@@ -176,6 +176,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 3e522855..df386473 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 -@@ -4560,10 +4560,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -4622,10 +4622,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/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch new file mode 100644 index 00000000..adb37198 --- /dev/null +++ b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch @@ -0,0 +1,33 @@ +From: uazo +Date: Mon, 3 Mar 2025 14:33:03 +0000 +Subject: Temporarily disable Tab Group Sync Android + +--- + .../org/chromium/chrome/browser/flags/ChromeFeatureList.java | 2 +- + components/saved_tab_groups/public/features.cc | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +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 +@@ -815,7 +815,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sTabGroupCreationDialogAndroid = + newCachedFlag(TAB_GROUP_CREATION_DIALOG_ANDROID, true); + public static final CachedFlag sTabGroupPaneAndroid = +- newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ true); ++ newCachedFlag(TAB_GROUP_PANE_ANDROID, /* defaultValue= */ false); + public static final CachedFlag sTabResumptionModuleAndroid = + newCachedFlag( + TAB_RESUMPTION_MODULE_ANDROID, +diff --git a/components/saved_tab_groups/public/features.cc b/components/saved_tab_groups/public/features.cc +--- a/components/saved_tab_groups/public/features.cc ++++ b/components/saved_tab_groups/public/features.cc +@@ -135,4 +135,7 @@ bool IsUrlRestrictionEnabled() { + return base::FeatureList::IsEnabled(kEnableUrlRestriction); + } + ++SET_CROMITE_FEATURE_DISABLED(kTabGroupSyncAndroid); ++SET_CROMITE_FEATURE_DISABLED(kTabGroupPaneAndroid); ++SET_CROMITE_FEATURE_ENABLED(kTabGroupSyncDisableNetworkLayer); + } // namespace tab_groups +-- diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 54546b41..f8fcc180 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -720,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 -@@ -151,6 +151,11 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, +@@ -148,6 +148,11 @@ void GetRendererContentSettingRules(const HostContentSettingsMap* map, ContentSettingToValue(CONTENT_SETTING_BLOCK), ProviderType::kNone, map->IsOffTheRecord())); #endif @@ -735,7 +735,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -666,6 +666,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -665,6 +665,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -821,7 +821,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h -@@ -245,6 +245,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = +@@ -251,6 +251,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = "desktop_site.window_setting"; #endif diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 33545ff3..8acc3793 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 -@@ -132,7 +132,7 @@ std::atomic g_use_boringssl; +@@ -137,7 +137,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 f2c6f733..9b75b3b3 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -97,6 +97,7 @@ import org.chromium.ui.resources.dynamics.DynamicResourceLoader; +@@ -92,6 +92,7 @@ import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.url.GURL; import java.util.ArrayList; @@ -86,7 +86,7 @@ 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 -@@ -14,6 +14,7 @@ import org.chromium.base.BuildInfo; +@@ -13,6 +13,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; @@ -94,15 +94,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Hist import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -197,6 +198,9 @@ public class HistoryNavigationCoordinator +@@ -203,6 +204,9 @@ public class HistoryNavigationCoordinator * @return {@code} true if the feature is enabled. */ private boolean isFeatureEnabled() { + if (sUseBrowserNavigationHandler.getInstance().isEnabled()) { + return true; + } - if (mForceFeatureEnabledForTesting) { - return true; + if (mForceFeatureEnabledForTesting != null) { + return mForceFeatureEnabledForTesting; } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationLayout.java @@ -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 -@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -69,6 +69,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; -@@ -660,6 +661,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -678,6 +679,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); @@ -319,9 +319,9 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer.java --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/CoordinatorLayoutForPointer.java -@@ -14,6 +14,10 @@ import androidx.coordinatorlayout.widget.CoordinatorLayout; - - import org.chromium.base.ObserverList; +@@ -16,6 +16,10 @@ import org.chromium.base.ObserverList; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +import android.graphics.Rect; +import android.os.Build; @@ -330,7 +330,7 @@ diff --git a/components/browser_ui/widget/android/java/src/org/chromium/componen /** * This class overrides {@link onResolvePointerIcon} method to correctly determine the pointer icon * from a mouse motion event. This is needed because the default android impl does not consider view -@@ -34,6 +38,22 @@ public class CoordinatorLayoutForPointer extends CoordinatorLayout implements To +@@ -37,6 +41,22 @@ public class CoordinatorLayoutForPointer extends CoordinatorLayout implements To && (y >= view.getTop() && y <= view.getBottom())); } diff --git a/build/patches/Use-dummy-DFM-installer.patch b/build/patches/Use-dummy-DFM-installer.patch index bdd7e8a0..6592b676 100644 --- a/build/patches/Use-dummy-DFM-installer.patch +++ b/build/patches/Use-dummy-DFM-installer.patch @@ -5,11 +5,11 @@ Subject: Use dummy DFM installer License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- components/module_installer/android/BUILD.gn | 1 - - .../engine/SplitCompatEngine.java | 64 +------------------ - .../engine/SplitCompatEngineFacade.java | 25 -------- + .../engine/SplitCompatEngine.java | 66 +------------------ + .../engine/SplitCompatEngineFacade.java | 25 ------- .../module_installer/util/ModuleUtil.java | 3 - .../util/SplitCompatInitializer.java | 6 -- - 5 files changed, 1 insertion(+), 98 deletions(-) + 5 files changed, 1 insertion(+), 100 deletions(-) diff --git a/components/module_installer/android/BUILD.gn b/components/module_installer/android/BUILD.gn --- a/components/module_installer/android/BUILD.gn @@ -25,7 +25,7 @@ diff --git a/components/module_installer/android/BUILD.gn b/components/module_in diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngine.java -@@ -8,10 +8,6 @@ import android.app.Activity; +@@ -10,10 +10,6 @@ import android.app.Activity; import androidx.annotation.VisibleForTesting; @@ -34,17 +34,17 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component -import com.google.android.play.core.splitinstall.model.SplitInstallSessionStatus; - import org.chromium.base.ThreadUtils; + import org.chromium.build.annotations.NullMarked; - import java.util.ArrayList; -@@ -24,7 +20,6 @@ import java.util.Set; - /** Install engine that uses Play Core and SplitCompat to install modules. */ +@@ -28,7 +24,6 @@ import java.util.Set; + @NullMarked class SplitCompatEngine implements InstallEngine { private final SplitCompatEngineFacade mFacade; - private final SplitInstallStateUpdatedListener mUpdateListener = getStatusUpdateListener(); private static final Map> sSessions = new HashMap<>(); public SplitCompatEngine() { -@@ -42,70 +37,19 @@ class SplitCompatEngine implements InstallEngine { +@@ -46,72 +41,19 @@ class SplitCompatEngine implements InstallEngine { @Override public boolean isInstalled(String moduleName) { @@ -108,15 +108,17 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component - }; } - private void notifyListeners(String moduleName, Boolean success) { -- for (InstallListener listener : sSessions.get(moduleName)) { + private void notifyListeners(String moduleName, boolean success) { +- List listeners = sSessions.remove(moduleName); +- assumeNonNull(listeners); +- for (InstallListener listener : listeners) { - notifyListener(listener, success); - } - - sSessions.remove(moduleName); - unregisterUpdateListener(); -@@ -120,15 +64,9 @@ class SplitCompatEngine implements InstallEngine { + } + +@@ -124,15 +66,9 @@ class SplitCompatEngine implements InstallEngine { } private void registerUpdateListener() { @@ -135,7 +137,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/engine/SplitCompatEngineFacade.java -@@ -6,48 +6,23 @@ package org.chromium.components.module_installer.engine; +@@ -6,14 +6,8 @@ package org.chromium.components.module_installer.engine; import android.app.Activity; @@ -145,12 +147,14 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component -import com.google.android.play.core.splitinstall.SplitInstallRequest; - import org.chromium.base.ContextUtils; + import org.chromium.build.annotations.NullMarked; -import org.chromium.components.module_installer.util.ModuleUtil; /** * PlayCore SplitCompatEngine Context. Class used to segregate external dependencies that cannot be - * easily mocked and simplify the engine's design. +@@ -21,35 +15,16 @@ import org.chromium.components.module_installer.util.ModuleUtil; */ + @NullMarked class SplitCompatEngineFacade { - private final SplitInstallManager mSplitManager; - @@ -187,7 +191,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component diff --git a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java --- a/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java +++ b/components/module_installer/android/java/src/org/chromium/components/module_installer/util/ModuleUtil.java -@@ -10,9 +10,6 @@ import org.chromium.base.BundleUtils; +@@ -12,9 +12,6 @@ import org.chromium.build.annotations.NullMarked; public class ModuleUtil { /** Updates the CrashKey report containing modules currently present. */ public static void updateCrashKeys() { @@ -209,7 +213,7 @@ diff --git a/components/module_installer/android/java/src/org/chromium/component import org.chromium.base.ContextUtils; import org.chromium.base.StrictModeContext; import org.chromium.base.ThreadUtils; -@@ -21,10 +19,6 @@ class SplitCompatInitializer { +@@ -23,10 +21,6 @@ class SplitCompatInitializer { return; } diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 98ea2b95..a20aa019 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -7,44 +7,35 @@ Added a setting for the option need: Add-cromite-flags-support.patch License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../java/res/layout/tab_card_label_layout.xml | 1 + - .../tab_management/TabUiFeatureUtilities.java | 4 +-- + .../tab_management/TabUiFeatureUtilities.java | 7 ++-- .../java/res/xml/privacy_preferences.xml | 6 ++++ .../flags/cromite/sTabSwitcherListMode.java | 33 +++++++++++++++++++ .../Use-list-mode-for-tab-switcher.grdp | 9 +++++ .../browser/toolbar/top/ToolbarPhone.java | 6 ++-- .../tab-switcher-list-mode.inc | 3 ++ - 7 files changed, 58 insertions(+), 4 deletions(-) + 6 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sTabSwitcherListMode.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Use-list-mode-for-tab-switcher.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/tab-switcher-list-mode.inc -diff --git a/chrome/android/features/tab_ui/java/res/layout/tab_card_label_layout.xml b/chrome/android/features/tab_ui/java/res/layout/tab_card_label_layout.xml ---- a/chrome/android/features/tab_ui/java/res/layout/tab_card_label_layout.xml -+++ b/chrome/android/features/tab_ui/java/res/layout/tab_card_label_layout.xml -@@ -11,6 +11,7 @@ found in the LICENSE file. - android:layout_width="wrap_content" - android:layout_height="@dimen/tab_card_label_height" - android:padding="4dp" -+ android:visibility="gone" - android:elevation="@dimen/default_elevation_3" - android:clipToOutline="true" - android:background="@drawable/tab_label_background" diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java -@@ -11,6 +11,7 @@ import org.chromium.base.ResettersForTesting; +@@ -9,6 +9,7 @@ import android.os.Build; + import org.chromium.base.ResettersForTesting; import org.chromium.base.SysUtils; import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; import java.util.Locale; import java.util.Set; -@@ -45,8 +46,7 @@ public class TabUiFeatureUtilities { +@@ -34,11 +35,7 @@ public class TabUiFeatureUtilities { /** Returns whether the Grid Tab Switcher UI should use list mode. */ public static boolean shouldUseListMode() { +- if (ChromeFeatureList.sDisableListTabSwitcher.isEnabled()) { +- return false; +- } - // Low-end forces list mode. - return SysUtils.isLowEndDevice() || ChromeFeatureList.sForceListTabSwitcher.isEnabled(); + return sTabSwitcherListMode.getInstance().isEnabled() || ChromeFeatureList.sForceListTabSwitcher.isEnabled(); @@ -54,7 +45,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -99,6 +99,12 @@ found in the LICENSE file. +@@ -98,6 +98,12 @@ found in the LICENSE file. android:summary="@string/allow_external_intent_requests_summary" app:featureName="AllowExternalIntentRequests" app:needRestart="false" /> @@ -122,15 +113,15 @@ new file mode 100644 diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -@@ -51,6 +51,7 @@ import org.chromium.base.TraceEvent; +@@ -50,6 +50,7 @@ import org.chromium.base.MathUtils; + import org.chromium.base.TraceEvent; 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.sTabSwitcherListMode; import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; -@@ -1899,7 +1900,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1871,7 +1872,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. @@ -139,7 +130,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2101,7 +2102,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2073,7 +2074,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 4ff21088..7419ad0a 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -33,7 +33,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../settings/PrivacyPreferencesManager.java | 8 + .../org/chromium/chrome/browser/tab/Tab.java | 2 + .../browser/tabmodel/TabWindowManager.java | 2 + - .../tabmodel/TabWindowManagerImpl.java | 18 ++ + .../tabmodel/TabWindowManagerImpl.java | 19 ++ .../strings/android_chrome_strings.grd | 26 +++ chrome/common/pref_names.h | 8 + ...omiteRequestDesktopSiteContentSetting.java | 76 ++++++++ @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 798 insertions(+), 16 deletions(-) + 36 files changed, 799 insertions(+), 16 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -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 -@@ -641,4 +641,6 @@ chrome_java_resources = [ +@@ -644,4 +644,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 -@@ -919,6 +919,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", @@ -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 -@@ -2537,6 +2537,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2543,6 +2543,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -958,7 +958,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 -@@ -1055,8 +1055,6 @@ public final class ChromePreferenceKeys { +@@ -1059,8 +1059,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -970,7 +970,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java b/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java --- a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java +++ b/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManager.java -@@ -100,6 +100,14 @@ public interface PrivacyPreferencesManager extends CrashReportingPermissionManag +@@ -102,6 +102,14 @@ public interface PrivacyPreferencesManager extends CrashReportingPermissionManag */ boolean isMetricsReportingEnabled(); @@ -1000,7 +1000,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 -@@ -119,6 +119,8 @@ public interface TabWindowManager { +@@ -121,6 +121,8 @@ public interface TabWindowManager { */ Tab getTabById(int tabId); @@ -1012,7 +1012,15 @@ 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 -@@ -419,6 +419,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan +@@ -33,6 +33,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; + + import java.lang.annotation.Retention; + import java.lang.annotation.RetentionPolicy; ++import java.util.List; + import java.util.Collection; + import java.util.HashMap; + import java.util.Map; +@@ -418,6 +419,24 @@ public class TabWindowManagerImpl implements ActivityStateListener, TabWindowMan return null; } @@ -1036,7 +1044,7 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro + @Override public Tab getTabById(int tabId) { - for (int i = 0; i < mSelectors.size(); i++) { + for (TabModelSelector selector : getAllTabModelSelectors()) { 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 @@ -1076,7 +1084,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 -@@ -1933,6 +1933,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1917,6 +1917,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1198,7 +1206,7 @@ new file mode 100644 diff --git a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java --- a/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java +++ b/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditText.java -@@ -167,6 +167,17 @@ public class RadioButtonWithEditText extends RadioButtonWithDescription { +@@ -171,6 +171,17 @@ public class RadioButtonWithEditText extends RadioButtonWithDescription { mEditText.setCursorVisible(false); KeyboardVisibilityDelegate.getInstance().hideKeyboard(mEditText); } @@ -1219,7 +1227,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 -@@ -562,7 +562,8 @@ void SetDesktopUserAgentOverride(content::WebContents* web_contents, +@@ -521,7 +521,8 @@ void SetDesktopUserAgentOverride(content::WebContents* web_contents, blink::UserAgentOverride spoofed_ua; spoofed_ua.ua_string_override = content::BuildUserAgentFromOSAndProduct( @@ -1264,7 +1272,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 -@@ -3475,6 +3475,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3534,6 +3534,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1275,15 +1283,15 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content 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 -@@ -16,6 +16,7 @@ - #include - #include +@@ -19,6 +19,7 @@ -+#include "base/base_switches.h" + #include "base/auto_reset.h" #include "base/base_switches.h" ++#include "base/base_switches.h" #include "base/check_op.h" #include "base/command_line.h" -@@ -2314,8 +2315,6 @@ void WebContentsImpl::SetUserAgentOverride( + #include "base/containers/contains.h" +@@ -2320,8 +2321,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); @@ -1292,7 +1300,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3482,6 +3481,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -3491,6 +3490,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1325,7 +1333,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 -@@ -912,7 +912,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -908,7 +908,6 @@ void RenderThreadImpl::InitializeRenderer( uint64_t trace_id) { TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer", perfetto::TerminatingFlow::Global(trace_id)); diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 3ff0d331..ced5538f 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 -@@ -642,6 +642,14 @@ void GuestViewBase::AttachToOuterWebContentsFrame( +@@ -662,6 +662,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 -@@ -4115,6 +4115,7 @@ +@@ -4209,6 +4209,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, -@@ -4122,7 +4123,6 @@ +@@ -4216,7 +4217,6 @@ field_template: "primitive", default_value: "1.0", type_name: "float", @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -2159,7 +2159,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2218,7 +2218,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1515,7 +1515,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1557,7 +1557,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1540,7 +1545,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1582,7 +1587,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; -@@ -1734,7 +1744,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1776,7 +1786,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 { -@@ -2347,6 +2358,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2391,6 +2402,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 -@@ -2398,6 +2426,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2442,6 +2470,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 -@@ -1590,6 +1590,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1595,6 +1595,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_); } -@@ -1771,12 +1775,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1776,12 +1780,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; } -@@ -3370,6 +3378,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 -@@ -429,13 +429,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. -@@ -1095,6 +1096,7 @@ class CORE_EXPORT LocalFrame final +@@ -1087,6 +1088,7 @@ class CORE_EXPORT LocalFrame final unsigned did_run_detach_impl_ : 1 = false; float layout_zoom_factor_; @@ -600,7 +600,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.cc b/ } void ScreenMetricsEmulator::UpdateVisualProperties( -@@ -197,9 +210,8 @@ void ScreenMetricsEmulator::OnUpdateScreenRects( +@@ -201,9 +214,8 @@ void ScreenMetricsEmulator::OnUpdateScreenRects( const gfx::Rect& window_screen_rect) { original_view_screen_rect_ = view_screen_rect; original_window_screen_rect_ = window_screen_rect; @@ -646,7 +646,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t + // Original values to restore back after emulation ends. display::ScreenInfos original_screen_infos_; - gfx::Size original_widget_size_; + gfx::Size original_widget_size_dips_; @@ -100,6 +111,9 @@ class ScreenMetricsEmulator : public GarbageCollected { std::vector original_root_viewport_segments_ ALLOW_DISCOURAGED_TYPE( @@ -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 -@@ -1978,6 +1978,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1995,6 +1995,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -670,7 +670,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th + View()->ResizeWithBrowserControls( + size_.value(), + widget_base_->DIPsToCeiledBlinkSpace( -+ widget_base_->VisibleViewportSizeInDIPs()), ++ widget_base_->VisibleViewportSize()), + visual_properties.browser_controls_params); return; } @@ -686,8 +686,8 @@ diff --git a/third_party/blink/renderer/core/frame/web_remote_frame_impl.cc b/th + // for a cross-site iframe, set the actual (original or emulated) screen infos + visual_properties.screen_infos = ancestor_widget->GetScreenInfos(); visual_properties.visible_viewport_size = - ancestor_widget->VisibleViewportSizeInDIPs(); - const WebVector& viewport_segments = + ancestor_widget->VisibleViewportSize(); + const std::vector& viewport_segments = diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/renderer/core/input/touch.cc --- a/third_party/blink/renderer/core/input/touch.cc +++ b/third_party/blink/renderer/core/input/touch.cc @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1250,7 +1256,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1251,7 +1257,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -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 -@@ -1883,6 +1883,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1924,6 +1924,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch index 27eab89f..f05d3120 100644 --- a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch +++ b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch @@ -9,10 +9,10 @@ Subject: WIN Add some prefs to secure preferences diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -121,6 +121,14 @@ bool g_disable_domain_check_for_testing = false; +@@ -118,6 +118,14 @@ bool g_disable_domain_check_for_testing = false; // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a // deprecated tracked preference. - const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { + const auto kTrackedPrefs = std::to_array({ +#if BUILDFLAG(IS_WIN) + {200, prefs::kFileOrDirectoryPickerWithoutGestureAllowedForOrigins, EnforcementLevel::ENFORCE_ON_LOAD, + PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL}, diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index fa60fcdc..053587d3 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -4,9 +4,9 @@ Subject: WIN Disable updater --- chrome/browser/active_use_util.h | 2 +- - chrome/browser/updater/BUILD.gn | 16 ---------- - .../browser/updater/browser_updater_client.cc | 30 +------------------ - 3 files changed, 2 insertions(+), 46 deletions(-) + chrome/browser/updater/BUILD.gn | 16 ------- + .../browser/updater/browser_updater_client.cc | 46 +------------------ + 3 files changed, 2 insertions(+), 62 deletions(-) diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h --- a/chrome/browser/active_use_util.h @@ -48,7 +48,7 @@ diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/updater/browser_updater_client.cc --- a/chrome/browser/updater/browser_updater_client.cc +++ b/chrome/browser/updater/browser_updater_client.cc -@@ -36,19 +36,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { +@@ -62,19 +62,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { void BrowserUpdaterClient::Register(base::OnceClosure complete) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -68,7 +68,7 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::RegistrationCompleted(base::OnceClosure complete, -@@ -80,19 +67,6 @@ void BrowserUpdaterClient::CheckForUpdate( +@@ -106,24 +93,6 @@ void BrowserUpdaterClient::CheckForUpdate( base::RepeatingCallback version_updater_callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -81,20 +81,36 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u - GetAppId(), {}, updater::UpdateService::Priority::kForeground, - updater::UpdateService::PolicySameVersionUpdate::kNotAllowed, - /*language=*/{}, -- base::BindPostTaskToCurrentDefault(version_updater_callback), +- base::BindPostTaskToCurrentDefault( +- base::BindRepeating([](const updater::UpdateService::UpdateState& +- state) { +- *GetLastOnDemandUpdateStateStorage() = state; +- return state; +- }).Then(version_updater_callback)), - base::BindPostTaskToCurrentDefault( - base::BindOnce(&BrowserUpdaterClient::UpdateCompleted, this, - version_updater_callback))); } void BrowserUpdaterClient::UpdateCompleted( -@@ -141,9 +115,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( +@@ -172,20 +141,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( base::OnceCallback callback, const std::vector& apps) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -- std::move(callback).Run(std::find_if(apps.begin(), apps.end(), -- &BrowserUpdaterClient::AppMatches) != -- apps.end()); +- const auto updater = std::ranges::find_if( +- apps, [](const updater::UpdateService::AppState& state) { +- return base::EqualsCaseInsensitiveASCII(state.app_id, +- updater::kUpdaterAppId); +- }); +- if (updater != apps.end()) { +- *GetLastKnownUpdaterRegistrationStorage() = *updater; +- } +- const auto app = +- std::ranges::find_if(apps, &BrowserUpdaterClient::AppMatches); +- if (app != apps.end()) { +- *GetLastKnownBrowserRegistrationStorage() = *app; +- } +- std::move(callback).Run(app != apps.end()); + std::move(callback).Run(true); } diff --git a/build/patches/WIN-Fix-log-to-file.patch b/build/patches/WIN-Fix-log-to-file.patch index 85a2e6c6..594a2425 100644 --- a/build/patches/WIN-Fix-log-to-file.patch +++ b/build/patches/WIN-Fix-log-to-file.patch @@ -88,7 +88,7 @@ diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h diff --git a/content/app/content_main.cc b/content/app/content_main.cc --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -326,9 +326,12 @@ NO_STACK_PROTECTOR int RunContentProcess( +@@ -331,9 +331,12 @@ NO_STACK_PROTECTOR int RunContentProcess( } else if (command_line->HasSwitch(switches::kEnableLogging)) { // Route stdio to parent console (if any) or create one, do not create a // console in children if handles are being passed. diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index c55ea5eb..e8ee15a1 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 -@@ -2288,7 +2288,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2293,7 +2293,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 9de1ca1b..b378bd0f 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -440,6 +440,7 @@ if (is_win) { +@@ -428,6 +428,7 @@ if (is_win) { "//components/policy:generated", "//content/public/app", "//crypto", @@ -59,19 +59,19 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1659,6 +1660,8 @@ if (is_android) { +@@ -1646,6 +1647,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", + "//crypto", + "//third_party/boringssl", + "//components/crash/android:crash_android", "//components/minidump_uploader", "//components/safe_browsing:buildflags", - "//components/safe_browsing/android:safe_browsing_api_handler", diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -106,6 +106,9 @@ +@@ -107,6 +107,9 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/scoped_startup_resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1213,6 +1216,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1097,6 +1100,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 -@@ -7300,6 +7300,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7235,6 +7235,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 -@@ -225,6 +225,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) { +@@ -229,6 +229,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 -@@ -3480,6 +3480,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3539,6 +3539,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 02be9237..2aba7f8e 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -9,7 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/chrome_java_resources.gni | 1 + chrome/android/chrome_java_sources.gni | 2 + .../android/java/res/layout/fre_tosanduma.xml | 160 +++++++++ - chrome/android/java/res/values/dimens.xml | 10 + + chrome/android/java/res/values/dimens.xml | 11 + chrome/android/java/res/values/styles.xml | 24 ++ .../DefaultSearchEngineFirstRunFragment.java | 3 - .../browser/firstrun/FirstRunActivity.java | 23 +- @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...creenSigninAndHistorySyncActivityBase.java | 6 +- .../browser/locale/LocaleManagerDelegate.java | 5 +- .../Welcome-screen.grdp | 27 ++ - 15 files changed, 917 insertions(+), 80 deletions(-) + 15 files changed, 918 insertions(+), 80 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 @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -505,6 +505,7 @@ chrome_java_resources = [ +@@ -508,6 +508,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -41,7 +41,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 -@@ -651,6 +651,8 @@ chrome_java_sources = [ +@@ -664,6 +664,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", @@ -218,10 +218,11 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -114,6 +114,16 @@ found in the LICENSE file. +@@ -106,6 +106,17 @@ found in the LICENSE file. 48dp 18dp 8dp ++ 110dp + 36dp + 32dp + 24dp @@ -298,10 +299,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR -import org.chromium.chrome.browser.signin.SigninCheckerProvider; -import org.chromium.chrome.browser.signin.SigninFirstRunFragment; +import org.chromium.chrome.browser.firstrun.ToSAndUMAFirstRunFragment; + import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout; import org.chromium.chrome.browser.ui.signin.SigninUtils; - import org.chromium.chrome.browser.ui.signin.fullscreen_signin.FullscreenSigninMediator; -@@ -233,7 +232,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -234,7 +233,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -310,7 +311,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -258,7 +257,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -259,7 +258,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -318,7 +319,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -273,18 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -274,18 +272,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -337,7 +338,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -690,11 +676,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -695,11 +681,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 0ffa3606..d772d719 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -42,7 +42,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -147,80 +147,18 @@ bool EnablePerMonitorV2() { +@@ -156,80 +156,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -173,7 +173,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/browser/metrics/chrome_feature_list_creator.cc --- a/chrome/browser/metrics/chrome_feature_list_creator.cc +++ b/chrome/browser/metrics/chrome_feature_list_creator.cc -@@ -59,6 +59,8 @@ +@@ -58,6 +58,8 @@ #include "content/public/common/content_switches.h" #include "services/network/public/cpp/network_switches.h" #include "ui/base/resource/resource_bundle.h" @@ -182,7 +182,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h" -@@ -212,6 +214,16 @@ void ChromeFeatureListCreator::CreatePrefService() { +@@ -205,6 +207,16 @@ void ChromeFeatureListCreator::CreatePrefService() { // ManagementService's cache. if (local_state_pref_store->ReadPrefs() == JsonPrefStore::PREF_READ_ERROR_NONE) { @@ -227,7 +227,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2358,9 +2358,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2404,9 +2404,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -325,7 +325,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 -@@ -237,7 +237,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -235,7 +235,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -336,7 +336,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -360,6 +362,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -358,6 +360,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -358,7 +358,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( +@@ -439,8 +439,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) || @@ -380,7 +380,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" @@ -388,7 +388,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" -@@ -210,6 +212,10 @@ void PolicyUIHandler::RegisterMessages() { +@@ -209,6 +211,10 @@ void PolicyUIHandler::RegisterMessages() { "exportPoliciesJSON", base::BindRepeating(&PolicyUIHandler::HandleExportPoliciesJson, base::Unretained(this))); @@ -399,7 +399,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse web_ui()->RegisterMessageCallback( "listenPoliciesUpdates", base::BindRepeating(&PolicyUIHandler::HandleListenPoliciesUpdates, -@@ -490,8 +496,102 @@ void PolicyUIHandler::SendPolicies() { +@@ -489,8 +495,102 @@ void PolicyUIHandler::SendPolicies() { "policies-updated", base::Value( policy_value_and_status_aggregator_->GetAggregatedPolicyNames()), @@ -507,7 +507,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browse diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser/ui/webui/policy/policy_ui_handler.h --- a/chrome/browser/ui/webui/policy/policy_ui_handler.h +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.h -@@ -54,6 +54,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, +@@ -53,6 +53,8 @@ class PolicyUIHandler : public content::WebUIMessageHandler, private: void HandleExportPoliciesJson(const base::Value::List& args); @@ -588,7 +588,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, -@@ -403,16 +353,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -387,16 +337,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -608,7 +608,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -465,6 +414,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, +@@ -449,6 +398,7 @@ bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const base::Feature& feature_region_launched, const std::string& country_code, const std::string& locale) { @@ -616,7 +616,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm bool flag_enabled = base::FeatureList::IsEnabled(feature); bool region_launched = base::FeatureList::IsEnabled(feature_region_launched) && -@@ -487,6 +437,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -471,6 +421,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -624,7 +624,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -497,4 +448,12 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -482,4 +433,12 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host_piece(), *pattern_from_component); } #endif @@ -823,9 +823,9 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo diff --git a/components/policy/core/common/policy_pref_names.cc b/components/policy/core/common/policy_pref_names.cc --- a/components/policy/core/common/policy_pref_names.cc +++ b/components/policy/core/common/policy_pref_names.cc -@@ -94,6 +94,9 @@ const char kReadAloudEnabled[] = "policy.read_aloud_enabled"; - const char kUserAgentClientHintsGREASEUpdateEnabled[] = - "policy.user_agent_client_hints_grease_update_enabled"; +@@ -89,6 +89,9 @@ const char kBackForwardCacheEnabled[] = "policy.back_forward_cache_enabled"; + const char kReadAloudEnabled[] = "policy.read_aloud_enabled"; + #endif // BUILDFLAG(IS_ANDROID) +const char kDisabledDefaultPoliciesList[] = + "policy.disabled_default_policies_list"; @@ -836,10 +836,10 @@ 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 -@@ -61,6 +61,7 @@ extern const char kUrlAllowlist[]; +@@ -60,6 +60,7 @@ extern const char kUrlBlocklist[]; + extern const char kUrlAllowlist[]; extern const char kUserPolicyRefreshRate[]; extern const char kIntensiveWakeUpThrottlingEnabled[]; - extern const char kUserAgentClientHintsGREASEUpdateEnabled[]; +extern const char kDisabledDefaultPoliciesList[]; #if BUILDFLAG(IS_ANDROID) extern const char kBackForwardCacheEnabled[]; @@ -847,7 +847,7 @@ diff --git a/components/policy/core/common/policy_pref_names.h b/components/poli diff --git a/components/policy/core/common/policy_service_impl.cc b/components/policy/core/common/policy_service_impl.cc --- a/components/policy/core/common/policy_service_impl.cc +++ b/components/policy/core/common/policy_service_impl.cc -@@ -57,6 +57,9 @@ namespace { +@@ -56,6 +56,9 @@ namespace { // Metrics should not be enforced so if this policy is set as mandatory // downgrade it to a recommended level policy. void DowngradeMetricsReportingToRecommendedPolicy(PolicyMap* policies) { @@ -956,7 +956,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -654,8 +654,8 @@ Additional details: +@@ -657,8 +657,8 @@ Additional details: Default @@ -993,7 +993,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 -@@ -479,6 +479,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -473,6 +473,8 @@ void GaiaCookieManagerService::RegisterPrefs(PrefRegistrySimple* registry) { } void GaiaCookieManagerService::InitCookieListener() { @@ -1002,15 +1002,15 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser DCHECK(!cookie_listener_receiver_.is_bound()); network::mojom::CookieManager* cookie_manager = -@@ -887,6 +889,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( +@@ -869,6 +871,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished( } void GaiaCookieManagerService::HandleNextRequest() { + // Make GaiaCookieManagerService compliant to SigninAllowed policy + if (!signin_client_->AreSigninCookiesAllowed()) requests_.clear(); - VLOG(1) << "GaiaCookieManagerService::HandleNextRequest"; // Pop the completed request. requests_.pop_front(); + OptimizeListAccounts(); diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc --- a/google_apis/gaia/gaia_auth_fetcher.cc +++ b/google_apis/gaia/gaia_auth_fetcher.cc diff --git a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch index 23fb0a13..824c84e3 100644 --- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch +++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch @@ -23,7 +23,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py """ import sys -@@ -231,7 +233,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): +@@ -232,7 +234,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): sys.exit(1) @@ -32,7 +32,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py stamp_file = None package_file = None -@@ -263,6 +265,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -264,6 +266,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): target_os = env.get('target_os', target_os) except: pass @@ -41,7 +41,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py if os.path.exists(OLD_STAMP_FILE): # Delete the old stamp file so it doesn't look like an old version of clang -@@ -280,7 +284,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -281,7 +285,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): # Updating the main clang package nukes the output dir. Any other packages # need to be updated *after* the clang package. @@ -50,7 +50,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py RmTree(dir) DownloadAndUnpackPackage(package_file, dir, host_os) -@@ -330,6 +334,8 @@ def main(): +@@ -331,6 +335,8 @@ def main(): 'and exit.')) parser.add_argument('--verify-version', help='Verify that clang has the passed-in version.') @@ -58,8 +58,8 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py + help='Do not remove old file before extracting.') args = parser.parse_args() - if args.verify_version and args.verify_version != RELEASE_VERSION: -@@ -371,7 +377,7 @@ def main(): + # TODO(crbug.com/39292993): Remove in next Clang roll. +@@ -377,7 +383,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index ea970739..a2f36fa8 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -1050,10 +1050,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1053,10 +1053,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { autofill::AutofillCrowdsourcingManager* ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() { @@ -42,7 +42,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -322,15 +322,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -378,15 +378,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -100,11 +100,11 @@ diff --git a/components/android_autofill/browser/android_autofill_client.h b/com - autofill::AutofillCrowdsourcingManager& GetCrowdsourcingManager() final; autofill::VotesUploader& GetVotesUploader() override; autofill::PersonalDataManager& GetPersonalDataManager() final; - autofill::SingleFieldFillRouter& GetSingleFieldFillRouter() final; + autofill::EntityDataManager* GetEntityDataManager() override; diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -481,33 +481,6 @@ std::optional GetUploadPayloadForApi( +@@ -475,33 +475,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -138,7 +138,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, RequestType type) { -@@ -539,15 +512,7 @@ std::optional GetAPIQueryPayload( +@@ -533,15 +506,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -155,7 +155,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -846,34 +811,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -840,34 +805,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -225,7 +225,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h --- a/components/autofill/core/browser/foundations/autofill_client.h +++ b/components/autofill/core/browser/foundations/autofill_client.h -@@ -242,10 +242,6 @@ class AutofillClient { +@@ -243,10 +243,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -239,7 +239,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -324,17 +324,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { +@@ -326,17 +326,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { driver().SendTypePredictionsToRenderer(queryable_forms); LogTypePredictionsAvailable(log_manager(), non_queryable_forms); LogTypePredictionsAvailable(log_manager(), queryable_forms); @@ -260,7 +260,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -961,6 +961,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -877,6 +877,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 a060920c..374e53cc 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 -@@ -735,6 +735,7 @@ set_defaults("component") { +@@ -734,6 +734,7 @@ set_defaults("component") { configs = default_component_configs } diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 30015c50..fb849abb 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -343,12 +343,6 @@ public class WebViewChromiumAwInit { +@@ -349,12 +349,6 @@ public class WebViewChromiumAwInit { AwBrowserProcess.configureChildProcessLauncher(); @@ -28,7 +28,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -554,10 +554,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -588,10 +588,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { } } diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index ce1a4f6c..8b6dbc3c 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 -@@ -2593,7 +2593,7 @@ template("run_mksnapshot") { +@@ -2459,7 +2459,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/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index dadc1013..96da3b63 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 @@ -19,7 +19,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module components/adblock/android/BUILD.gn | 99 +++ components/adblock/android/adblock_jni.cc | 176 ++++++ components/adblock/android/adblock_jni.h | 52 ++ - .../filtering_configuration_bindings.cc | 295 +++++++++ + .../filtering_configuration_bindings.cc | 294 +++++++++ .../filtering_configuration_bindings.h | 68 +++ .../adblock/AdblockContentType.java | 61 ++ .../components/adblock/AdblockController.java | 203 +++++++ @@ -43,9 +43,9 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock/TestPagesSnippetsTestBase.java | 562 ++++++++++++++++++ .../adblock/TestPagesWebsocketTestBase.java | 56 ++ .../adblock/TestVerificationUtils.java | 163 +++++ - ...source_classification_notifier_bindings.cc | 164 +++++ + ...source_classification_notifier_bindings.cc | 163 +++++ ...esource_classification_notifier_bindings.h | 69 +++ - 39 files changed, 5008 insertions(+) + 39 files changed, 5006 insertions(+) create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.cc create mode 100644 chrome/browser/android/adblock/adblock_jni_factory.h create mode 100644 chrome/browser/android/adblock/filtering_configuration_bindings_factory.cc @@ -97,31 +97,31 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -527,6 +531,7 @@ if (current_toolchain == default_toolchain) { +@@ -531,6 +535,7 @@ if (current_toolchain == default_toolchain) { + "//chrome/browser/xsurface:java", + "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", ++ "//components/adblock/android:adblock_controller_java", "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", -+ "//components/adblock/android:adblock_controller_java", "//components/autofill/android:autofill_java", - "//components/background_task_scheduler:background_task_scheduler_java", - "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -1709,6 +1714,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", +@@ -1320,6 +1325,7 @@ if (current_toolchain == default_toolchain) { + "javatests:chrome_test_java_org.chromium.chrome.browser.toolbar", + "javatests:chrome_test_java_org.chromium.chrome.browser.webapps", + "javatests:chrome_test_java_various", + "//chrome/browser/adblock/android:adblock_java_tests", - "//chrome/browser/android/browserservices/intents:java", - "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/browserservices/verification:javatests", -@@ -2095,6 +2101,7 @@ if (current_toolchain == default_toolchain) { - srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] + "//chrome/browser/android/httpclient:javatests", + "//chrome/browser/android/metrics:ukm_javatests", +@@ -1366,6 +1372,7 @@ if (current_toolchain == default_toolchain) { + ] data = [ + "//chrome/test/data/adblock/", "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3992,6 +3999,7 @@ group("jni_headers") { +@@ -3262,6 +3269,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 -@@ -2526,6 +2526,18 @@ static_library("browser") { +@@ -2561,6 +2561,18 @@ static_library("browser") { } if (is_android) { @@ -645,7 +645,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 -@@ -304,6 +304,11 @@ +@@ -310,6 +310,11 @@ #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -657,7 +657,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" -@@ -903,6 +908,11 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -912,6 +917,11 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_ANDROID) FastCheckoutCapabilitiesFetcherFactory::GetInstance(); @@ -1015,7 +1015,7 @@ diff --git a/components/adblock/android/filtering_configuration_bindings.cc b/co new file mode 100644 --- /dev/null +++ b/components/adblock/android/filtering_configuration_bindings.cc -@@ -0,0 +1,295 @@ +@@ -0,0 +1,294 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -1040,7 +1040,6 @@ new file mode 100644 + +#include "base/android/jni_array.h" +#include "base/android/jni_string.h" -+#include "base/ranges/algorithm.h" +#include "components/adblock/android/java_bindings_getters.h" +#include "components/adblock/android/jni_headers/FilteringConfiguration_jni.h" +#include "components/adblock/core/configuration/filtering_configuration.h" @@ -1110,7 +1109,7 @@ new file mode 100644 + const std::string& configuration_name) { + const auto installed_configurations = GetConfigurations(); + auto existing_configuration_it = -+ base::ranges::find(installed_configurations, configuration_name, ++ std::ranges::find(installed_configurations, configuration_name, + &FilteringConfiguration::GetName); + return existing_configuration_it != installed_configurations.end() + ? *existing_configuration_it @@ -1190,7 +1189,7 @@ new file mode 100644 +JNI_FilteringConfiguration_GetConfigurations(JNIEnv* env) { + auto& bindings = adblock::GetFilteringConfigurationBindings(); + std::vector configurations; -+ base::ranges::transform( ++ std::ranges::transform( + bindings.GetConfigurations(), std::back_inserter(configurations), + [](adblock::FilteringConfiguration* fc) { return fc->GetName(); }); + return base::android::ToJavaArrayOfStrings(env, configurations); @@ -1244,7 +1243,7 @@ new file mode 100644 + std::vector urls; + auto* configuration = GetConfigurationWithName(env, configuration_name); + if (configuration) { -+ base::ranges::transform(configuration->GetFilterLists(), ++ std::ranges::transform(configuration->GetFilterLists(), + std::back_inserter(urls), &GURL::spec); + } + return base::android::ToJavaArrayOfStrings(env, urls); @@ -5097,7 +5096,7 @@ diff --git a/components/adblock/android/resource_classification_notifier_binding new file mode 100644 --- /dev/null +++ b/components/adblock/android/resource_classification_notifier_bindings.cc -@@ -0,0 +1,164 @@ +@@ -0,0 +1,163 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -5123,7 +5122,6 @@ new file mode 100644 +#include "base/android/jni_android.h" +#include "base/android/jni_array.h" +#include "base/android/jni_string.h" -+#include "base/ranges/algorithm.h" +#include "components/adblock/android/java_bindings_getters.h" +#include "components/adblock/android/jni_headers/ResourceClassificationNotifier_jni.h" +#include "components/adblock/content/browser/resource_classification_runner.h" 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 9c9ffc9c..c06560c3 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 -@@ -286,6 +286,10 @@ if (current_toolchain == default_toolchain) { +@@ -285,6 +285,10 @@ if (current_toolchain == default_toolchain) { "//third_party/androidx:androidx_preference_preference_java", ] @@ -254,8 +254,8 @@ 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 { -@@ -764,6 +768,10 @@ if (current_toolchain == default_toolchain) { - "//url/mojom:url_mojom_gurl_java", +@@ -774,6 +778,10 @@ if (current_toolchain == default_toolchain) { + "//url/mojom:url_mojom_origin_java", ] + ### Android UI module start 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 a10ad89e..fa2e4783 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -20,7 +20,7 @@ Based on Chromium 118.0.5993.48 .../content/browser/adblock_filter_match.h | 30 + .../adblock_telemetry_service_factory_base.cc | 100 ++ .../adblock_telemetry_service_factory_base.h | 54 + - .../browser/adblock_url_loader_factory.cc | 748 +++++++++ + .../browser/adblock_url_loader_factory.cc | 734 +++++++++ .../browser/adblock_url_loader_factory.h | 100 ++ .../adblock_url_loader_factory_for_test.cc | 436 +++++ .../adblock_url_loader_factory_for_test.h | 70 + @@ -49,7 +49,7 @@ Based on Chromium 118.0.5993.48 .../activeping_telemetry_topic_provider.cc | 285 ++++ .../activeping_telemetry_topic_provider.h | 87 + components/adblock/core/adblock_controller.h | 64 + - .../adblock/core/adblock_controller_impl.cc | 271 ++++ + .../adblock/core/adblock_controller_impl.cc | 270 ++++ .../adblock/core/adblock_controller_impl.h | 95 ++ components/adblock/core/adblock_switches.cc | 26 + components/adblock/core/adblock_switches.h | 29 + @@ -90,11 +90,11 @@ Based on Chromium 118.0.5993.48 .../adblock/core/converter/parser/BUILD.gn | 66 + .../core/converter/parser/content_filter.cc | 68 + .../core/converter/parser/content_filter.h | 49 + - .../core/converter/parser/domain_option.cc | 114 ++ + .../core/converter/parser/domain_option.cc | 111 ++ .../core/converter/parser/domain_option.h | 57 + .../converter/parser/filter_classifier.cc | 39 + .../core/converter/parser/filter_classifier.h | 45 + - .../adblock/core/converter/parser/metadata.cc | 145 ++ + .../adblock/core/converter/parser/metadata.cc | 144 ++ .../adblock/core/converter/parser/metadata.h | 64 + .../core/converter/parser/snippet_filter.cc | 62 + .../core/converter/parser/snippet_filter.h | 46 + @@ -126,27 +126,27 @@ Based on Chromium 118.0.5993.48 .../filtering_configuration_maintainer_impl.h | 119 ++ .../subscription/installed_subscription.cc | 42 + .../subscription/installed_subscription.h | 137 ++ - .../installed_subscription_impl.cc | 552 +++++++ + .../installed_subscription_impl.cc | 551 +++++++ .../installed_subscription_impl.h | 149 ++ .../ongoing_subscription_request.h | 50 + .../ongoing_subscription_request_impl.cc | 190 +++ .../ongoing_subscription_request_impl.h | 74 + - .../core/subscription/pattern_matcher.cc | 264 +++ + .../core/subscription/pattern_matcher.cc | 263 +++ .../core/subscription/pattern_matcher.h | 33 + .../preloaded_subscription_provider.h | 56 + - .../preloaded_subscription_provider_impl.cc | 120 ++ + .../preloaded_subscription_provider_impl.cc | 119 ++ .../preloaded_subscription_provider_impl.h | 50 + .../core/subscription/regex_matcher.cc | 162 ++ .../adblock/core/subscription/regex_matcher.h | 73 + .../adblock/core/subscription/subscription.cc | 24 + .../adblock/core/subscription/subscription.h | 78 + .../subscription/subscription_collection.h | 97 ++ - .../subscription_collection_impl.cc | 353 ++++ + .../subscription_collection_impl.cc | 352 ++++ .../subscription_collection_impl.h | 97 ++ .../core/subscription/subscription_config.cc | 338 ++++ .../core/subscription/subscription_config.h | 120 ++ .../subscription/subscription_downloader.h | 66 + - .../subscription_downloader_impl.cc | 288 ++++ + .../subscription_downloader_impl.cc | 287 ++++ .../subscription_downloader_impl.h | 102 ++ .../subscription_persistent_metadata.h | 86 + .../subscription_persistent_metadata_impl.cc | 170 ++ @@ -155,7 +155,7 @@ Based on Chromium 118.0.5993.48 .../subscription_persistent_storage_impl.cc | 229 +++ .../subscription_persistent_storage_impl.h | 80 + .../core/subscription/subscription_service.h | 87 + - .../subscription/subscription_service_impl.cc | 211 +++ + .../subscription/subscription_service_impl.cc | 210 +++ .../subscription/subscription_service_impl.h | 97 ++ .../core/subscription/subscription_updater.h | 35 + .../subscription/subscription_updater_impl.cc | 65 + @@ -163,7 +163,7 @@ Based on Chromium 118.0.5993.48 .../subscription/subscription_validator.h | 59 + .../subscription_validator_impl.cc | 144 ++ .../subscription_validator_impl.h | 53 + - .../subscription/url_keyword_extractor.cc | 67 + + .../subscription/url_keyword_extractor.cc | 66 + .../core/subscription/url_keyword_extractor.h | 59 + .../adblock/docs/ad-filtering/README.md | 18 + .../ad-filtering/element-hiding-sequence.png | Bin 0 -> 177168 bytes @@ -215,7 +215,7 @@ Based on Chromium 118.0.5993.48 .../network/public/cpp/net_ipc_param_traits.h | 5 + .../blink/public/mojom/frame/frame.mojom | 8 + third_party/blink/public/web/web_document.h | 12 + - .../renderer/core/exported/web_document.cc | 52 + + .../renderer/core/exported/web_document.cc | 48 + .../core/frame/local_frame_mojo_handler.cc | 8 + .../core/frame/local_frame_mojo_handler.h | 5 + .../url_loader/mojo_url_loader_client.cc | 6 +- @@ -223,7 +223,7 @@ Based on Chromium 118.0.5993.48 tools/eyeo/generate_modules.sh | 209 +++ tools/eyeo/snippets_deps.py | 61 + tools/gritsettings/resource_ids.spec | 11 +- - 219 files changed, 22053 insertions(+), 4 deletions(-) + 219 files changed, 22023 insertions(+), 4 deletions(-) create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE create mode 100644 components/adblock/README.md @@ -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', -@@ -502,6 +508,11 @@ vars = { +@@ -498,6 +504,11 @@ vars = { # and whatever else without interference from each other. - 'llvm_libc_revision': '039fea2058d14b408637a931b36a717169617227', + 'llvm_libc_revision': '6d0c8ee02e2fd44e69ac30e721e13be463035ee5', + # 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': '1f7db7501cf902d5d3ad5fd9b31bea33bb8bf9da', -@@ -1447,6 +1458,10 @@ deps = { + 'libcxx_revision': '2e25154d49c29fa9aa42c30ad4a027bd30123434', +@@ -1456,6 +1467,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' + '@' + '4d214097ba7305ec2b3f2dfcf0aa4fd2104c960a', + 'url': Var('chromium_git') + '/website.git' + '@' + '600fc3a0b121d5007b4bb97b001e756625e6d418', }, -@@ -1587,6 +1602,13 @@ deps = { +@@ -1596,6 +1611,13 @@ deps = { 'dep_type': 'cipd', }, @@ -525,14 +525,14 @@ diff --git a/README.md b/README.md diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -98,6 +98,7 @@ - X("exo") \ - X("extensions") \ - X("explore_sites") \ -+ X("eyeo") \ - X("FileSystem") \ - X("file_system_provider") \ - X("fledge") \ +@@ -97,6 +97,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS( + perfetto::Category("exo"), + perfetto::Category("extensions"), + perfetto::Category("explore_sites"), ++ perfetto::Category("eyeo"), + perfetto::Category("FileSystem"), + perfetto::Category("file_system_provider"), + perfetto::Category("fledge"), diff --git a/build/install-build-deps.py b/build/install-build-deps.py --- a/build/install-build-deps.py +++ b/build/install-build-deps.py @@ -2512,7 +2512,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ new file mode 100644 --- /dev/null +++ b/components/adblock/content/browser/adblock_url_loader_factory.cc -@@ -0,0 +1,748 @@ +@@ -0,0 +1,734 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -2650,8 +2650,6 @@ new file mode 100644 + const std::optional& new_url) override; + void SetPriority(net::RequestPriority priority, + int32_t intra_priority_value) override; -+ void PauseReadingBodyFromNet() override; -+ void ResumeReadingBodyFromNet() override; + + void OnReceiveEarlyHints( + ::network::mojom::EarlyHintsPtr early_hints) override; @@ -2788,18 +2786,6 @@ new file mode 100644 + } +} + -+void AdblockURLLoaderFactory::InProgressRequest::PauseReadingBodyFromNet() { -+ if (target_loader_.is_bound()) { -+ target_loader_->PauseReadingBodyFromNet(); -+ } -+} -+ -+void AdblockURLLoaderFactory::InProgressRequest::ResumeReadingBodyFromNet() { -+ if (target_loader_.is_bound()) { -+ target_loader_->ResumeReadingBodyFromNet(); -+ } -+} -+ +void AdblockURLLoaderFactory::InProgressRequest::OnReceiveEarlyHints( + network::mojom::EarlyHintsPtr early_hints) { + target_client_->OnReceiveEarlyHints(std::move(early_hints)); @@ -3548,7 +3534,7 @@ new file mode 100644 + DCHECK(adblock_configuration) + << "Action called for non existing \"adblock\" configuration"; + std::vector subscriptions; -+ base::ranges::transform( ++ std::ranges::transform( + adblock_configuration->GetFilterLists(), + std::back_inserter(subscriptions), + [](const auto& subscription) { return subscription.spec(); }); @@ -3593,7 +3579,7 @@ new file mode 100644 + subscription_service->GetAdblockFilteringConfiguration(); + DCHECK(adblock_configuration) + << "Action called for non existing \"adblock\" configuration"; -+ return base::ranges::any_of( ++ return std::ranges::any_of( + adblock_configuration->GetFilterLists(), + [&](const auto& url) { return url == AcceptableAdsUrl(); }); +} @@ -4069,7 +4055,7 @@ new file mode 100644 +} + +bool AdblockWebContentObserver::IsAdblockEnabled() const { -+ return base::ranges::any_of( ++ return std::ranges::any_of( + subscription_service_->GetInstalledFilteringConfigurations(), + &adblock::FilteringConfiguration::IsEnabled); +} @@ -4685,14 +4671,14 @@ new file mode 100644 + collection->FindBySpecialFilter(SpecialFilterType::Elemhide, url, + frame_hierarchy, sitekey); + if (!ehe_allowlisted) { -+ base::ranges::copy( ++ std::ranges::copy( + collection->GetElementHideSelectors(url, frame_hierarchy, sitekey), + std::back_inserter(stylesheet)); -+ base::ranges::copy(collection->GetElementHideEmulationSelectors(url), ++ std::ranges::copy(collection->GetElementHideEmulationSelectors(url), + std::back_inserter(elemhide_js)); + } + if (!doc_allowlisted) { -+ base::ranges::for_each( ++ std::ranges::for_each( + collection->GenerateSnippets(url, frame_hierarchy), + [&snippet_js](auto& item) { snippet_js.Append(std::move(item)); }); + } @@ -7105,7 +7091,7 @@ diff --git a/components/adblock/core/adblock_controller_impl.cc b/components/adb new file mode 100644 --- /dev/null +++ b/components/adblock/core/adblock_controller_impl.cc -@@ -0,0 +1,271 @@ +@@ -0,0 +1,270 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -7134,7 +7120,6 @@ new file mode 100644 +#include "base/command_line.h" +#include "base/functional/bind.h" +#include "base/logging.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/string_util.h" +#include "base/version.h" +#include "components/adblock/core/adblock_switches.h" @@ -7219,7 +7204,7 @@ new file mode 100644 +} + +bool AdblockControllerImpl::IsAcceptableAdsEnabled() const { -+ return base::ranges::any_of( ++ return std::ranges::any_of( + adblock_filtering_configuration_->GetFilterLists(), + [&](const auto& url) { return url == AcceptableAdsUrl(); }); +} @@ -7356,7 +7341,7 @@ new file mode 100644 + + // If there's no language-specific recommended subscription, see if we may + // install the default subscription.. -+ if (base::ranges::any_of( ++ if (std::ranges::any_of( + known_subscriptions_, [&](const KnownSubscriptionInfo& subscription) { + return subscription.url == DefaultSubscriptionUrl() && + subscription.first_run != @@ -8444,14 +8429,14 @@ new file mode 100644 + blocking_rewrites.end()); + // Remove blocking filters overruled by allowing filters. + blocking_rewrites_v.erase( -+ base::ranges::remove_if( -+ blocking_rewrites_v, -+ [&allowing_rewrites](const auto blocking_rewrite) { -+ return base::ranges::find_if( -+ allowing_rewrites, [&](const auto& allowing_rewrite) { -+ return blocking_rewrite == allowing_rewrite; -+ }) != allowing_rewrites.end(); -+ }), ++ std::remove_if(blocking_rewrites_v.begin(), blocking_rewrites_v.end(), ++ [&allowing_rewrites](const auto blocking_rewrite) { ++ return std::ranges::find_if( ++ allowing_rewrites, ++ [&](const auto& allowing_rewrite) { ++ return blocking_rewrite == allowing_rewrite; ++ }) != allowing_rewrites.end(); ++ }), + blocking_rewrites_v.end()); + + if (blocking_rewrites_v.empty()) { @@ -10274,7 +10259,7 @@ new file mode 100644 + const std::string& value) { + DCHECK(configuration.FindList(key)); // see SetDefaultValuesIfNeeded(). + auto* list = configuration.FindList(key); -+ if (base::ranges::find(*list, base::Value(value)) != list->end()) { ++ if (std::ranges::find(*list, base::Value(value)) != list->end()) { + // value already exists in the list. + return false; + } @@ -10287,7 +10272,7 @@ new file mode 100644 + const std::string& value) { + DCHECK(configuration.FindList(key)); // see SetDefaultValuesIfNeeded(). + auto* list = configuration.FindList(key); -+ auto it = base::ranges::find(*list, base::Value(value)); ++ auto it = std::ranges::find(*list, base::Value(value)); + if (it == list->end()) { + // value was not on the list. + return false; @@ -11172,7 +11157,7 @@ diff --git a/components/adblock/core/converter/parser/domain_option.cc b/compone new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/domain_option.cc -@@ -0,0 +1,114 @@ +@@ -0,0 +1,111 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -11193,7 +11178,6 @@ new file mode 100644 +#include "components/adblock/core/converter/parser/content_filter.h" + +#include "base/logging.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/string_split.h" +#include "base/strings/string_util.h" + @@ -11251,22 +11235,20 @@ new file mode 100644 + +void DomainOption::RemoveDomainsWithNoSubdomain() { + exclude_domains_.erase( -+ base::ranges::remove_if( -+ exclude_domains_, -+ [](auto it) { return !HasSubdomainOrLocalhost(it); }), ++ std::remove_if(exclude_domains_.begin(), exclude_domains_.end(), ++ [](auto it) { return !HasSubdomainOrLocalhost(it); }), + exclude_domains_.end()); + + include_domains_.erase( -+ base::ranges::remove_if( -+ include_domains_, -+ [](auto it) { return !HasSubdomainOrLocalhost(it); }), ++ std::remove_if(include_domains_.begin(), include_domains_.end(), ++ [](auto it) { return !HasSubdomainOrLocalhost(it); }), + include_domains_.end()); +} + +bool DomainOption::UnrestrictedByDomain() const { -+ return base::ranges::count_if(exclude_domains_, &HasSubdomainOrLocalhost) == ++ return std::ranges::count_if(exclude_domains_, &HasSubdomainOrLocalhost) == + 0 && -+ base::ranges::count_if(include_domains_, &HasSubdomainOrLocalhost) == ++ std::ranges::count_if(include_domains_, &HasSubdomainOrLocalhost) == + 0; +} + @@ -11447,7 +11429,7 @@ diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/a new file mode 100644 --- /dev/null +++ b/components/adblock/core/converter/parser/metadata.cc -@@ -0,0 +1,145 @@ +@@ -0,0 +1,144 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -11468,7 +11450,6 @@ new file mode 100644 +#include "components/adblock/core/converter/parser/metadata.h" + +#include "base/logging.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/string_number_conversions.h" +#include "base/strings/string_util.h" +#include "third_party/re2/src/re2/re2.h" @@ -11586,7 +11567,7 @@ new file mode 100644 + << kDefaultExpirationInterval.InDays() << " days."; + return kDefaultExpirationInterval; + } -+ return base::ranges::clamp(expiration_unit == "h" ++ return std::ranges::clamp(expiration_unit == "h" + ? base::Hours(expiration_time) + : base::Days(expiration_time), + kMinExpirationInterval, kMaxExpirationInterval); @@ -14423,7 +14404,7 @@ new file mode 100644 + if (custom_filters_) { + state.push_back(custom_filters_); + } -+ base::ranges::move( ++ std::ranges::move( + preloaded_subscription_provider_->GetCurrentPreloadedSubscriptions(), + std::back_inserter(state)); + VLOG(2) << "[eyeo] FilteringConfiguration " << configuration_->GetName() @@ -14437,17 +14418,17 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + // Result will contain the currently installed subscriptions: + std::vector> result; -+ base::ranges::copy(current_state_, std::back_inserter(result)); ++ std::ranges::copy(current_state_, std::back_inserter(result)); + // And all preloaded subscriptions: + auto preloaded_subscriptions = + preloaded_subscription_provider_->GetCurrentPreloadedSubscriptions(); -+ base::ranges::move(preloaded_subscriptions, std::back_inserter(result)); ++ std::ranges::move(preloaded_subscriptions, std::back_inserter(result)); + // Also, dummy subscriptions that represent ongoing installations (unless + // already present, in which case they'd represent updates). -+ base::ranges::copy_if( ++ std::ranges::copy_if( + ongoing_installations_, std::back_inserter(result), + [&](const auto& ongoing_installation) { -+ return base::ranges::find(result, ongoing_installation->GetSourceUrl(), ++ return std::ranges::find(result, ongoing_installation->GetSourceUrl(), + &Subscription::GetSourceUrl) == result.end(); + }); + return result; @@ -14486,15 +14467,15 @@ new file mode 100644 + DCHECK(IsInitialized()); + // Subscriptions that are either installed or being installed: + auto installed_subscriptions = GetReadySubscriptions(); -+ base::ranges::copy(GetPendingSubscriptions(), ++ std::ranges::copy(GetPendingSubscriptions(), + std::back_inserter(installed_subscriptions)); + // Subscriptions that are demanded by the FilteringConfiguration: + auto demanded_subscriptions = configuration_->GetFilterLists(); -+ base::ranges::sort(installed_subscriptions); -+ base::ranges::sort(demanded_subscriptions); ++ std::ranges::sort(installed_subscriptions); ++ std::ranges::sort(demanded_subscriptions); + // Missing subscriptions is the difference between the two: + std::vector missing_subscriptions; -+ base::ranges::set_difference(demanded_subscriptions, installed_subscriptions, ++ std::ranges::set_difference(demanded_subscriptions, installed_subscriptions, + std::back_inserter(missing_subscriptions)); + for (const auto& url : missing_subscriptions) { + DownloadAndInstallSubscription(url); @@ -14506,18 +14487,18 @@ new file mode 100644 + DCHECK(IsInitialized()); + // Subscriptions that are either installed or being installed: + auto installed_subscriptions = GetReadySubscriptions(); -+ base::ranges::copy(GetPendingSubscriptions(), ++ std::ranges::copy(GetPendingSubscriptions(), + std::back_inserter(installed_subscriptions)); + // Subscriptions that are demanded by the FilteringConfiguration: + auto demanded_subscriptions = configuration_->GetFilterLists(); -+ base::ranges::sort(installed_subscriptions); -+ base::ranges::sort(demanded_subscriptions); ++ std::ranges::sort(installed_subscriptions); ++ std::ranges::sort(demanded_subscriptions); + installed_subscriptions.erase(std::unique(installed_subscriptions.begin(), + installed_subscriptions.end()), + installed_subscriptions.end()); + // Unneeded subscriptions is the difference between the two: + std::vector unneeded_subscriptions; -+ base::ranges::set_difference(installed_subscriptions, demanded_subscriptions, ++ std::ranges::set_difference(installed_subscriptions, demanded_subscriptions, + std::back_inserter(unneeded_subscriptions)); + for (const auto& url : unneeded_subscriptions) { + UninstallSubscription(url); @@ -14596,7 +14577,7 @@ new file mode 100644 + // of installing an update. + const auto& url = subscription->GetSourceUrl(); + if (persistent_metadata_->IsExpired(url) && -+ base::ranges::find(ongoing_installations_, url, ++ std::ranges::find(ongoing_installations_, url, + &Subscription::GetSourceUrl) == + ongoing_installations_.end()) { + VLOG(1) << "[eyeo] Updating expired subscription " << url; @@ -14614,7 +14595,7 @@ new file mode 100644 + // downloading it. + // This is to support legacy behavior. + if (configuration_->GetName() == "adblock" && -+ base::ranges::none_of(GetCurrentSubscriptions(), ++ std::ranges::none_of(GetCurrentSubscriptions(), + [](const auto& subscription) { + return subscription->GetSourceUrl() == + AcceptableAdsUrl(); @@ -14629,7 +14610,7 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(IsInitialized()); + const bool is_an_update = -+ base::ranges::any_of(current_state_, [&](const auto candidate) { ++ std::ranges::any_of(current_state_, [&](const auto candidate) { + return candidate->GetSourceUrl() == subscription_url; + }); + @@ -14754,7 +14735,7 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(IsInitialized()); + bool subscription_removed = false; -+ auto it = base::ranges::find(current_state_, subscription_url, ++ auto it = std::ranges::find(current_state_, subscription_url, + &Subscription::GetSourceUrl); + if (it != current_state_.end()) { + storage_->RemoveSubscription(*it); @@ -14762,7 +14743,7 @@ new file mode 100644 + subscription_removed = true; + } + -+ auto ongoing_installation_it = base::ranges::find( ++ auto ongoing_installation_it = std::ranges::find( + ongoing_installations_, subscription_url, &Subscription::GetSourceUrl); + if (ongoing_installation_it != ongoing_installations_.end()) { + ongoing_installations_.erase(ongoing_installation_it); @@ -14780,7 +14761,7 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + std::vector filters = configuration_->GetCustomFilters(); -+ base::ranges::transform(configuration_->GetAllowedDomains(), ++ std::ranges::transform(configuration_->GetAllowedDomains(), + std::back_inserter(filters), + &utils::CreateDomainAllowlistingFilter); + for (const auto& filter : filters) { @@ -14805,7 +14786,7 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + std::vector result; + result.reserve(current_state_.size()); -+ base::ranges::transform(current_state_, std::back_inserter(result), ++ std::ranges::transform(current_state_, std::back_inserter(result), + &Subscription::GetSourceUrl); + return result; +} @@ -14815,7 +14796,7 @@ new file mode 100644 + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + std::vector result; + result.reserve(ongoing_installations_.size()); -+ base::ranges::transform(ongoing_installations_, std::back_inserter(result), ++ std::ranges::transform(ongoing_installations_, std::back_inserter(result), + &Subscription::GetSourceUrl); + return result; +} @@ -15138,7 +15119,7 @@ diff --git a/components/adblock/core/subscription/installed_subscription_impl.cc new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/installed_subscription_impl.cc -@@ -0,0 +1,552 @@ +@@ -0,0 +1,551 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -15164,7 +15145,6 @@ new file mode 100644 + +#include "absl/types/optional.h" +#include "base/logging.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/string_util.h" +#include "base/trace_event/trace_event.h" +#include "components/adblock/core/common/adblock_constants.h" @@ -15184,7 +15164,7 @@ new file mode 100644 +namespace { + +bool NeedsLowercasing(const std::string& input) { -+ return base::ranges::any_of( ++ return std::ranges::any_of( + input, [](const char c) { return base::IsAsciiUpper(c); }); +} + @@ -16178,7 +16158,7 @@ diff --git a/components/adblock/core/subscription/pattern_matcher.cc b/component new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/pattern_matcher.cc -@@ -0,0 +1,264 @@ +@@ -0,0 +1,263 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -16201,7 +16181,6 @@ new file mode 100644 +#include "absl/types/optional.h" +#include "base/logging.h" +#include "base/notreached.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/string_util.h" +#include "components/adblock/core/common/regex_filter_pattern.h" + @@ -16546,7 +16525,7 @@ diff --git a/components/adblock/core/subscription/preloaded_subscription_provide new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/preloaded_subscription_provider_impl.cc -@@ -0,0 +1,120 @@ +@@ -0,0 +1,119 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -16569,7 +16548,6 @@ new file mode 100644 +#include "base/functional/bind.h" +#include "base/logging.h" +#include "base/memory/scoped_refptr.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/pattern.h" +#include "base/trace_event/trace_event.h" +#include "components/adblock/core/common/adblock_utils.h" @@ -17185,7 +17163,7 @@ diff --git a/components/adblock/core/subscription/subscription_collection_impl.c new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_collection_impl.cc -@@ -0,0 +1,353 @@ +@@ -0,0 +1,352 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -17210,7 +17188,6 @@ new file mode 100644 +#include +#include + -+#include "base/ranges/algorithm.h" +#include "components/adblock/core/common/adblock_utils.h" + +namespace adblock { @@ -17480,7 +17457,7 @@ new file mode 100644 + + // Last chance to avoid blocking: maybe there is a Genericblock filter and + // we should re-search for domain-specific filters only? -+ if (base::ranges::any_of(subscriptions_, [&](const auto& sub) { ++ if (std::ranges::any_of(subscriptions_, [&](const auto& sub) { + return HasSpecialFilter(sub, SpecialFilterType::Genericblock, + request_url, frame_hierarchy, SiteKey()); + })) { @@ -18184,7 +18161,7 @@ diff --git a/components/adblock/core/subscription/subscription_downloader_impl.c new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_downloader_impl.cc -@@ -0,0 +1,288 @@ +@@ -0,0 +1,287 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -18211,7 +18188,6 @@ new file mode 100644 + +#include "base/files/file_path.h" +#include "base/functional/bind.h" -+#include "base/ranges/algorithm.h" +#include "base/strings/escape.h" +#include "base/strings/strcat.h" +#include "base/strings/string_number_conversions.h" @@ -19393,7 +19369,7 @@ diff --git a/components/adblock/core/subscription/subscription_service_impl.cc b new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/subscription_service_impl.cc -@@ -0,0 +1,211 @@ +@@ -0,0 +1,210 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -19423,7 +19399,6 @@ new file mode 100644 +#include "base/memory/scoped_refptr.h" +#include "base/memory/weak_ptr.h" +#include "base/parameter_pack.h" -+#include "base/ranges/algorithm.h" +#include "base/trace_event/common/trace_event_common.h" +#include "base/trace_event/trace_event.h" +#include "components/adblock/core/common/adblock_constants.h" @@ -19473,7 +19448,7 @@ new file mode 100644 +SubscriptionServiceImpl::GetCurrentSubscriptions( + FilteringConfiguration* configuration) const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) { ++ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) { + return entry.first.get() == configuration; + }); + DCHECK(it != maintainers_.end()) << "Cannot get Subscriptions from an " @@ -19482,7 +19457,7 @@ new file mode 100644 + // Configuration is disabled + auto urls = it->first->GetFilterLists(); + std::vector> result; -+ base::ranges::transform( ++ std::ranges::transform( + urls, std::back_inserter(result), [](const auto& url) { + return base::MakeRefCounted(url); + }); @@ -19515,7 +19490,7 @@ new file mode 100644 + const std::string& configuration_name) { + VLOG(1) << "[eyeo] FilteringConfiguration uninstalled: " + << configuration_name; -+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) { ++ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) { + return entry.first.get()->GetName() == configuration_name; + }); + if (it == maintainers_.end()) { @@ -19532,14 +19507,14 @@ new file mode 100644 +std::vector +SubscriptionServiceImpl::GetInstalledFilteringConfigurations() { + std::vector result; -+ base::ranges::transform(maintainers_, std::back_inserter(result), ++ std::ranges::transform(maintainers_, std::back_inserter(result), + [](const auto& pair) { return pair.first.get(); }); + return result; +} + +FilteringConfiguration* +SubscriptionServiceImpl::GetAdblockFilteringConfiguration() const { -+ const auto it = base::ranges::find_if(maintainers_, [](const auto& pair) { ++ const auto it = std::ranges::find_if(maintainers_, [](const auto& pair) { + return pair.first->GetName() == kAdblockFilteringConfigurationName; + }); + DCHECK(it != maintainers_.end()); @@ -19569,7 +19544,7 @@ new file mode 100644 + +void SubscriptionServiceImpl::OnEnabledStateChanged( + FilteringConfiguration* config) { -+ auto it = base::ranges::find_if(maintainers_, [&](const auto& entry) { ++ auto it = std::ranges::find_if(maintainers_, [&](const auto& entry) { + return entry.first.get() == config; + }); + DCHECK(it != maintainers_.end()) << "Received OnEnabledStateChanged from " @@ -20149,7 +20124,7 @@ diff --git a/components/adblock/core/subscription/url_keyword_extractor.cc b/com new file mode 100644 --- /dev/null +++ b/components/adblock/core/subscription/url_keyword_extractor.cc -@@ -0,0 +1,67 @@ +@@ -0,0 +1,66 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -20172,7 +20147,6 @@ new file mode 100644 +#include +#include + -+#include "base/ranges/algorithm.h" +#include "base/strings/string_util.h" +#include "components/adblock/core/common/keyword_extractor_utils.h" + @@ -20210,7 +20184,7 @@ new file mode 100644 + // null-terminated. + // This isn't elegant, but it's a valid workaround for the limitations of + // the flatbuffers generated API. -+ base::ranges::replace_if(url_with_nulls_, &IsSeparatorCharacter, '\0'); ++ std::ranges::replace_if(url_with_nulls_, &IsSeparatorCharacter, '\0'); + input_ = url_with_nulls_; +} + @@ -31341,7 +31315,7 @@ new file mode 100644 diff --git a/components/resources/BUILD.gn b/components/resources/BUILD.gn --- a/components/resources/BUILD.gn +++ b/components/resources/BUILD.gn -@@ -88,6 +88,11 @@ grit("components_resources") { +@@ -97,6 +97,11 @@ grit("components_resources") { if (is_android && safe_browsing_mode == 2) { deps += [ "//components/safe_browsing/content/resources/real_time_url_checks_allowlist:make_real_time_url_allowlist_protobuf" ] } @@ -52297,7 +52271,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 -@@ -1190,7 +1194,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1208,7 +1212,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -52320,7 +52294,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" -@@ -3169,6 +3173,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3458,6 +3462,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -52347,7 +52321,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_ -@@ -482,6 +486,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -494,6 +498,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -52372,7 +52346,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -540,6 +544,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, +@@ -551,6 +555,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -52421,7 +52395,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 -@@ -469,6 +473,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( +@@ -453,6 +457,7 @@ void WebRequestProxyingURLLoaderFactory::InProgressRequest::OnReceiveRedirect( TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT); if (redirect_url_ != redirect_info.new_url && @@ -52515,7 +52489,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -142,6 +146,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -143,6 +147,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -52533,18 +52507,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -28,6 +28,10 @@ - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -+// 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 "third_party/blink/public/web/web_document.h" - - #include "base/memory/scoped_refptr.h" -@@ -267,6 +271,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -266,6 +266,54 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -53111,7 +53074,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 -@@ -1421,7 +1425,12 @@ +@@ -1469,7 +1473,12 @@ "<(SHARED_INTERMEDIATE_DIR)/third_party/blink/public/strings/permission_element_generated_strings.grd": { "META": {"sizes": {"messages": [2000],}}, "messages": [10080], 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 2740c95f..295e7780 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 @@ -9,7 +9,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/app/chrome_main_delegate.cc | 7 +- chrome/browser/BUILD.gn | 26 ++ chrome/browser/adblock/README.md | 3 + - .../adblock/adblock_content_browser_client.cc | 320 ++++++++++++++++++ + .../adblock/adblock_content_browser_client.cc | 319 ++++++++++++++++++ .../adblock/adblock_content_browser_client.h | 101 ++++++ ...adblock_content_browser_client_unittest.cc | 203 +++++++++++ .../adblock/adblock_controller_factory.cc | 67 ++++ @@ -54,7 +54,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/common/BUILD.gn | 3 + chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 5 + - 48 files changed, 2299 insertions(+), 2 deletions(-) + 48 files changed, 2298 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 @@ -103,14 +103,14 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #ifdef UNSAFE_BUFFERS_BUILD // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. @@ -42,6 +46,7 @@ + #include "base/timer/timer.h" #include "base/trace_event/trace_event_impl.h" #include "build/build_config.h" - #include "build/chromeos_buildflags.h" +#include "chrome/browser/adblock/adblock_content_browser_client.h" #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1749,7 +1754,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1619,7 +1624,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") -@@ -161,6 +164,26 @@ static_library("browser") { +@@ -170,6 +173,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", -@@ -1970,6 +1993,9 @@ static_library("browser") { +@@ -2005,6 +2028,9 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -181,7 +181,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/adblock_content_browser_client.cc -@@ -0,0 +1,320 @@ +@@ -0,0 +1,319 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH @@ -202,7 +202,6 @@ new file mode 100644 +#include "chrome/browser/adblock/adblock_content_browser_client.h" + +#include "base/containers/unique_ptr_adapters.h" -+#include "base/ranges/algorithm.h" +#include "chrome/browser/adblock/content_security_policy_injector_factory.h" +#include "chrome/browser/adblock/element_hider_factory.h" +#include "chrome/browser/adblock/resource_classification_runner_factory.h" @@ -2030,7 +2029,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" #include "chrome/browser/ui/webui/chrome_urls/chrome_urls_ui.h" #include "chrome/browser/ui/webui/data_sharing_internals/data_sharing_internals_ui.h" -@@ -933,6 +938,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -881,6 +886,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); @@ -2075,9 +2074,9 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse +// Use of this source code is governed by the GPLv3 that can be found in the +// components/adblock/LICENSE file. - #ifdef UNSAFE_BUFFERS_BUILD - // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. -@@ -48,6 +52,7 @@ + #include "chrome/browser/prefs/chrome_pref_service_factory.h" + +@@ -45,6 +49,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/browser_resources.h" #include "chrome/grit/generated_resources.h" @@ -2085,7 +2084,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse #include "components/component_updater/pref_names.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -195,6 +200,12 @@ const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { +@@ -192,6 +197,12 @@ const auto kTrackedPrefs = std::to_array({ {35, prefs::kExtensionsUIDeveloperMode, EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL}, #endif @@ -2128,7 +2127,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" -@@ -290,6 +303,8 @@ +@@ -296,6 +309,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" @@ -2137,7 +2136,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" -@@ -876,8 +891,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -885,8 +900,19 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -2170,7 +2169,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") -@@ -250,6 +253,7 @@ if (!is_android) { +@@ -253,6 +256,7 @@ if (!is_android) { group("dev_ui_resources") { public_deps = [ "accessibility:resources", @@ -2178,7 +2177,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "bluetooth_internals:resources", "browsing_topics:resources", "components:resources", -@@ -317,6 +321,7 @@ repack("dev_ui_paks") { +@@ -318,6 +322,7 @@ repack("dev_ui_paks") { sources = [ "$root_gen_dir/chrome/accessibility_resources.pak", @@ -2379,8 +2378,8 @@ 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") -@@ -152,6 +156,10 @@ static_library("ui") { + import("//build/config/compiler/compiler.gni") +@@ -146,6 +150,10 @@ static_library("ui") { "webui/about/about_ui.h", "webui/accessibility/accessibility_ui.cc", "webui/accessibility/accessibility_ui.h", @@ -2391,7 +2390,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", -@@ -386,6 +394,7 @@ static_library("ui") { +@@ -382,6 +390,7 @@ static_library("ui") { "//chrome/browser/signin", "//chrome/browser/signin:identity_manager_provider", "//chrome/browser/signin:impl", @@ -2399,7 +2398,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:impl", -@@ -435,6 +444,7 @@ static_library("ui") { +@@ -430,6 +439,7 @@ static_library("ui") { "//components/access_code_cast/common:metrics", "//components/account_id", "//components/affiliations/core/browser:affiliations", @@ -2410,7 +2409,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/pref_watcher.cc --- a/chrome/browser/ui/prefs/pref_watcher.cc +++ b/chrome/browser/ui/prefs/pref_watcher.cc -@@ -23,6 +23,7 @@ +@@ -22,6 +22,7 @@ #include "chrome/browser/ui/prefs/prefs_tab_helper.h" #include "chrome/common/pref_names.h" #include "components/keyed_service/core/keyed_service.h" @@ -2418,7 +2417,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p #include "components/language/core/browser/pref_names.h" #include "components/live_caption/pref_names.h" #include "components/prefs/pref_change_registrar.h" -@@ -83,6 +84,13 @@ const char* const kWebPrefsToObserve[] = { +@@ -82,6 +83,13 @@ const char* const kWebPrefsToObserve[] = { prefs::kAccessibilityFocusHighlightEnabled, #endif prefs::kPageColorsBlockList, @@ -2446,17 +2445,17 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -14,6 +18,9 @@ +@@ -13,6 +17,9 @@ + #include "base/time/default_tick_clock.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" - #include "build/chromeos_buildflags.h" +#include "chrome/browser/adblock/element_hider_factory.h" +#include "chrome/browser/adblock/sitekey_storage_factory.h" +#include "chrome/browser/adblock/subscription_service_factory.h" #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -112,6 +119,7 @@ +@@ -111,6 +118,7 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -2464,7 +2463,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/foundations/browser_autofill_manager.h" -@@ -341,6 +349,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -332,6 +340,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -2836,7 +2835,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #include "chrome/browser/ui/webui/proxy_config_ui.h" #if BUILDFLAG(IS_ANDROID) -@@ -419,4 +421,5 @@ void RegisterChromeWebUIConfigs() { +@@ -406,4 +408,5 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(IS_ANDROID) map.AddWebUIConfig(std::make_unique()); #endif // BUILDFLAG(IS_ANDROID) 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 d79e4159..20e48841 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 @@ -55,7 +55,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL import("//build/config/chromebox_for_meetings/buildflags.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -95,6 +99,8 @@ source_set("extensions") { +@@ -109,6 +113,8 @@ source_set("extensions") { # here. "api/automation_internal/chrome_automation_internal_api_delegate.cc", "api/automation_internal/chrome_automation_internal_api_delegate.h", @@ -64,7 +64,7 @@ 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", -@@ -150,6 +156,8 @@ source_set("extensions") { +@@ -158,6 +164,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", @@ -73,7 +73,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/feedback_private/chrome_feedback_private_delegate.cc", "api/feedback_private/chrome_feedback_private_delegate.h", "api/file_system/chrome_file_system_delegate.cc", -@@ -795,6 +803,7 @@ source_set("extensions") { +@@ -792,6 +800,7 @@ source_set("extensions") { "//chrome/browser/ui/safety_hub", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/web_applications", @@ -95,7 +95,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") -@@ -135,6 +139,7 @@ function_registration("api_registration") { +@@ -134,6 +138,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -535,7 +535,7 @@ new file mode 100644 + << "adblock_private expects \"adblock\" configuration"; + return RespondNow(ArgumentList( + api::adblock_private::IsAcceptableAdsEnabled::Results::Create( -+ base::ranges::any_of(adblock_configuration->GetFilterLists(), ++ std::ranges::any_of(adblock_configuration->GetFilterLists(), + [&](const auto& url) { + return url == adblock::AcceptableAdsUrl(); + })))); @@ -2133,7 +2133,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -80,6 +86,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -76,6 +82,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -2141,7 +2141,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); -@@ -91,6 +98,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -87,6 +94,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(IS_CHROMEOS) extensions::DocumentScanAPIHandler::GetFactoryInstance(); #endif @@ -2209,7 +2209,7 @@ new file mode 100644 + const auto installed_configurations = + subscription_service->GetInstalledFilteringConfigurations(); + auto configuration_it = -+ base::ranges::find(installed_configurations, config_name, ++ std::ranges::find(installed_configurations, config_name, + &adblock::FilteringConfiguration::GetName); + return configuration_it != installed_configurations.end() ? *configuration_it + : nullptr; @@ -2560,7 +2560,7 @@ new file mode 100644 + const auto installed_configurations = + subscription_service->GetInstalledFilteringConfigurations(); + auto configuration_it = -+ base::ranges::find(installed_configurations, params->config_name, ++ std::ranges::find(installed_configurations, params->config_name, + &adblock::FilteringConfiguration::GetName); + if (configuration_it == installed_configurations.end()) { + auto new_filtering_configuration = @@ -2593,7 +2593,7 @@ new file mode 100644 + const auto installed_configurations = + subscription_service->GetInstalledFilteringConfigurations(); + auto configuration_it = -+ base::ranges::find(installed_configurations, params->config_name, ++ std::ranges::find(installed_configurations, params->config_name, + &adblock::FilteringConfiguration::GetName); + if (configuration_it != installed_configurations.end()) { + subscription_service->UninstallFilteringConfiguration( @@ -2616,7 +2616,7 @@ new file mode 100644 + const auto installed_configurations = + subscription_service->GetInstalledFilteringConfigurations(); + std::vector configurations; -+ base::ranges::transform(installed_configurations, ++ std::ranges::transform(installed_configurations, + std::back_inserter(configurations), + [](adblock::FilteringConfiguration* config) { + return config->GetName(); @@ -3479,7 +3479,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" -@@ -177,6 +182,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -175,6 +180,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -4120,15 +4120,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 -@@ -764,6 +764,7 @@ Called by update_extension_histograms.py.--> - +@@ -766,6 +766,7 @@ Called by update_extension_histograms.py.--> -+ + ++ -@@ -3170,6 +3171,8 @@ Called by update_extension_permission.py.--> +@@ -3176,6 +3177,8 @@ Called by update_extension_permission.py.--> diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index d82ef723..cac3ae14 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 63 +------------------ - 1 file changed, 3 insertions(+), 60 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 65 +------------------ + 1 file changed, 3 insertions(+), 62 deletions(-) diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -20,7 +20,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.ContextUtils; -@@ -87,18 +84,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -88,18 +85,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public Account[] getAccountsSynchronous() throws AccountManagerDelegateException { @@ -39,7 +39,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Don't report any accounts if we don't have permission. // TODO(crbug.com/40942462): Throw an exception if permission was denied. return new Account[] {}; -@@ -109,31 +94,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -110,31 +95,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { throws AuthException { ThreadUtils.assertOnBackgroundThread(); assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); @@ -73,7 +73,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } protected boolean hasFeatures(Account account, String[] features) { -@@ -165,24 +131,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -166,24 +132,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback callback) { @@ -98,12 +98,14 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -217,12 +165,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -218,14 +166,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Nullable @Override - public String getAccountGaiaId(String accountEmail) { + public GaiaId getAccountGaiaId(String accountEmail) { - try { -- return GoogleAuthUtil.getAccountId(ContextUtils.getApplicationContext(), accountEmail); +- return new GaiaId( +- GoogleAuthUtil.getAccountId( +- ContextUtils.getApplicationContext(), accountEmail)); - } catch (IOException | GoogleAuthException ex) { - Log.e(TAG, "SystemAccountManagerDelegate.getAccountGaiaId", ex); - return null; diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index b90076d7..2912beb0 100644 --- a/build/patches/sharing-hub-always-use-visible-URL.patch +++ b/build/patches/sharing-hub-always-use-visible-URL.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java -@@ -223,14 +223,8 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -230,14 +230,8 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index d75a48d8..1c27d3a9 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 -@@ -1255,8 +1255,6 @@ static_library("browser") { +@@ -1286,8 +1286,6 @@ static_library("browser") { "profiles/keep_alive/scoped_profile_keep_alive.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -364,12 +364,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -374,12 +374,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( int size_for_placeholder_avatar, bool use_high_res_file, const PlaceholderAvatarIconParams& icon_params) const { @@ -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( +@@ -962,7 +962,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 ef779854..15d26e99 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 -@@ -2087,9 +2087,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2059,9 +2059,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-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 69dc5cff..ce8ec860 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -114,7 +114,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -113,7 +113,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 947cf7b1..d4caa215 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -71,7 +71,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/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -100,7 +100,6 @@ import org.chromium.chrome.browser.messages.MessageContainerObserver; +@@ -104,7 +104,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; @@ -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 -@@ -860,10 +860,6 @@ static_library("browser") { +@@ -887,10 +887,6 @@ static_library("browser") { "page_info/privacy_policy_insights_service_factory.h", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", @@ -104,7 +104,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -872,10 +868,6 @@ static_library("browser") { +@@ -899,10 +895,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", -@@ -1518,8 +1510,6 @@ static_library("browser") { +@@ -1548,8 +1540,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,17 +124,18 @@ 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", -@@ -1701,9 +1691,6 @@ static_library("browser") { - "//chrome/browser/commerce:impl", +@@ -1732,10 +1722,7 @@ static_library("browser") { + "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", - "//chrome/browser/feedback", - "//chrome/browser/feedback:feedback_impl", + "//chrome/browser/file_system_access:impl", - "//chrome/browser/google", + "//chrome/browser/ip_protection", "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", - "//chrome/browser/file_system_access:impl", -@@ -1781,7 +1768,6 @@ static_library("browser") { +@@ -1814,7 +1801,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 +166,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1211,7 +1211,6 @@ BrowserProcessImpl::component_updater() { +@@ -1231,7 +1231,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -203,7 +204,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2959,7 +2959,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2967,7 +2967,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -211,7 +212,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5338,9 +5337,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5356,9 +5355,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -219,9 +220,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch - SupervisedUserGoogleAuthNavigationThrottle::MaybeCreate(handle), - &throttles); - if (base::FeatureList::IsEnabled( - supervised_user::kClassifyUrlOnProcessResponseEvent)) { -@@ -5942,7 +5938,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { + MaybeAddThrottle( + supervised_user::MaybeCreateClassifyUrlNavigationThrottleFor(handle), +@@ -5963,7 +5959,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -231,7 +232,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -5982,7 +5979,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -6003,7 +6000,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -240,7 +241,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6039,15 +6036,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -6060,15 +6057,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -256,7 +257,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6102,20 +6090,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -6123,20 +6111,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -326,7 +327,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 -@@ -783,7 +783,6 @@ source_set("extensions") { +@@ -780,7 +780,6 @@ source_set("extensions") { "//chrome/browser/devtools", "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/favicon", @@ -348,15 +349,15 @@ diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc --- a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc +++ b/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log_source.cc -@@ -122,7 +122,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; +@@ -124,7 +124,6 @@ constexpr char kOsVersionTag[] = "OS VERSION"; #if BUILDFLAG(IS_WIN) constexpr char kUsbKeyboardDetected[] = "usb_keyboard_detected"; constexpr char kIsEnrolledToDomain[] = "enrolled_to_domain"; -constexpr char kInstallerBrandCode[] = "installer_brand_code"; #if BUILDFLAG(GOOGLE_CHROME_BRANDING) - constexpr char kUpdateErrorCode[] = "update_error_code"; - constexpr char kUpdateHresult[] = "update_hresult"; -@@ -636,10 +635,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( + constexpr char kInstallResultCode[] = "install_result_code"; + constexpr char kInstallLocation[] = "install_location"; +@@ -656,10 +655,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( void ChromeInternalLogSource::PopulateInstallerBrandCode( SystemLogsResponse* response) { @@ -453,7 +454,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -602,7 +602,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -606,7 +606,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -583,7 +584,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -866,7 +866,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -849,7 +849,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -594,7 +595,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc --- a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc +++ b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc -@@ -316,10 +316,11 @@ bool OneGoogleBarLoaderImpl::SetAdditionalQueryParams( +@@ -327,10 +327,11 @@ bool OneGoogleBarLoaderImpl::SetAdditionalQueryParams( } GURL OneGoogleBarLoaderImpl::GetApiUrl() const { @@ -610,7 +611,7 @@ diff --git a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_im diff --git a/chrome/browser/new_tab_page/promos/promo_service.cc b/chrome/browser/new_tab_page/promos/promo_service.cc --- a/chrome/browser/new_tab_page/promos/promo_service.cc +++ b/chrome/browser/new_tab_page/promos/promo_service.cc -@@ -80,11 +80,7 @@ bool CanBlockPromos() { +@@ -85,11 +85,7 @@ bool CanBlockPromos() { } GURL GetGoogleBaseUrl() { @@ -638,7 +639,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -165,12 +165,7 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -166,12 +166,7 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -665,7 +666,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 -@@ -104,8 +104,7 @@ ProfileResetter::ProfileResetter(Profile* profile) +@@ -100,8 +100,7 @@ ProfileResetter::ProfileResetter(Profile* profile) DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(profile_); @@ -678,7 +679,7 @@ diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browse 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 -@@ -26,7 +26,6 @@ static_library("safe_browsing") { +@@ -27,7 +27,6 @@ static_library("safe_browsing") { "//build:branding_buildflags", "//chrome/app:generated_resources", "//chrome/browser:browser_process", @@ -736,7 +737,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -356,7 +356,6 @@ static_library("ui") { +@@ -352,7 +352,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -759,7 +760,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; +@@ -32,7 +32,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.merchant_viewer.MerchantTrustSignalsCoordinator; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.LocationBarMediator.SaveOfflineButtonState; @@ -767,7 +768,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; -@@ -395,7 +394,6 @@ public class LocationBarCoordinator +@@ -380,7 +379,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -778,7 +779,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 -@@ -50,7 +50,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -52,7 +52,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 +787,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; -@@ -307,24 +306,6 @@ class LocationBarMediator +@@ -312,24 +311,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -811,7 +812,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -340,8 +321,6 @@ class LocationBarMediator +@@ -345,8 +326,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -820,7 +821,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -574,7 +553,6 @@ class LocationBarMediator +@@ -579,7 +558,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -828,7 +829,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1564,8 +1542,6 @@ class LocationBarMediator +@@ -1576,8 +1554,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -837,7 +838,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -1573,7 +1549,6 @@ class LocationBarMediator +@@ -1585,7 +1561,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -864,7 +865,7 @@ diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/br diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc --- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc +++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc -@@ -72,12 +72,6 @@ constexpr auto kOutdatedBuildAge = base::Days(7) * 8; +@@ -69,12 +69,6 @@ constexpr auto kOutdatedBuildAge = base::Days(7) * 8; bool ShouldDetectOutdatedBuilds() { #if BUILDFLAG(ENABLE_UPDATE_NOTIFICATIONS) && !BUILDFLAG(IS_CHROMEOS) @@ -880,7 +881,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -147,8 +147,6 @@ static_library("common_lib") { +@@ -144,8 +144,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -926,7 +927,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 -@@ -6322,7 +6322,6 @@ test("unit_tests") { +@@ -6408,7 +6408,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1161,7 +1162,7 @@ diff --git a/components/domain_reliability/uploader.cc b/components/domain_relia diff --git a/components/google/core/common/google_util.cc b/components/google/core/common/google_util.cc --- a/components/google/core/common/google_util.cc +++ b/components/google/core/common/google_util.cc -@@ -36,65 +36,6 @@ namespace google_util { +@@ -32,65 +32,6 @@ namespace google_util { namespace { @@ -1227,7 +1228,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co // True if |url| is a valid URL with HTTP or HTTPS scheme. If |port_permission| // is DISALLOW_NON_STANDARD_PORTS, this also requires |url| to use the standard // port for its scheme (80 for HTTP, 443 for HTTPS). -@@ -109,60 +50,14 @@ bool IsValidURL(const GURL& url, PortPermission port_permission) { +@@ -105,60 +46,14 @@ bool IsValidURL(const GURL& url, PortPermission port_permission) { bool IsCanonicalHostGoogleHostname(std::string_view canonical_host, SubdomainPermission subdomain_permission) { @@ -1290,7 +1291,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co std::string GetGoogleLocale(const std::string& application_locale) { // Google does not recognize "nb" for Norwegian Bokmal; it uses "no". -@@ -171,34 +66,11 @@ std::string GetGoogleLocale(const std::string& application_locale) { +@@ -167,34 +62,11 @@ std::string GetGoogleLocale(const std::string& application_locale) { GURL AppendGoogleLocaleParam(const GURL& url, const std::string& application_locale) { @@ -1327,7 +1328,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co } GURL GetGoogleSearchURL(const GURL& google_homepage_url) { -@@ -245,208 +117,25 @@ bool IsGoogleDomainUrl(const GURL& url, +@@ -241,208 +113,25 @@ bool IsGoogleDomainUrl(const GURL& url, bool IsGoogleHostname(std::string_view host, SubdomainPermission subdomain_permission) { @@ -1393,7 +1394,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - - // Some domains don't have international TLD extensions, so testing for them - // is very straightforward. -- static const char* kSuffixesToSetHeadersFor[] = { +- static auto kSuffixesToSetHeadersFor = std::to_array({ - ".android.com", - ".doubleclick.com", - ".doubleclick.net", @@ -1407,7 +1408,7 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - ".litepages.googlezip.net", - ".youtubekids.com", - ".ytimg.com", -- }; +- }); - const std::string host = url.host(); - for (auto* i : kSuffixesToSetHeadersFor) { - if (base::EndsWith(host, i, base::CompareCase::INSENSITIVE_ASCII)) { @@ -1416,9 +1417,9 @@ diff --git a/components/google/core/common/google_util.cc b/components/google/co - } - - // Exact hostnames in lowercase to set headers for. -- static const char* kHostsToSetHeadersFor[] = { +- static auto kHostsToSetHeadersFor = std::to_array({ - "googleweblight.com", -- }; +- }); - for (auto* i : kHostsToSetHeadersFor) { - if (base::EqualsCaseInsensitiveASCII(host, i)) { - return true; @@ -1638,15 +1639,15 @@ diff --git a/components/search_engines/search_terms_data.cc b/components/search_ diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -609,11 +609,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -613,11 +613,7 @@ std::u16string TemplateURLRef::SearchTermToString16( + bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { - ParseIfNecessary(search_terms_data); -- return base::ranges::any_of( -- replacements_, [](const Replacement& replacement) { -- return replacement.type == GOOGLE_BASE_URL || -- replacement.type == GOOGLE_BASE_SUGGEST_URL; -- }); +- ParseIfNecessary(search_terms_data); +- return std::ranges::any_of(replacements_, [](const Replacement& replacement) { +- return replacement.type == GOOGLE_BASE_URL || +- replacement.type == GOOGLE_BASE_SUGGEST_URL; +- }); + return false; } @@ -1674,9 +1675,9 @@ diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/ - template_url_service_->search_terms_data()); + const bool is_google = false; if (is_google) { - // TODO(treib): Put the Google doodle URL into prepopulated_engines.json. - base_url = -@@ -272,23 +271,12 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { + // Note: Ideally the Google doodle URL would be specified in + // prepopulated_engines.json, but there is some custom logic in +@@ -274,23 +273,12 @@ void LogoServiceImpl::GetLogo(LogoCallbacks callbacks, bool for_webui_ntp) { clock_ = base::DefaultClock::GetInstance(); } @@ -1704,7 +1705,7 @@ diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_util.cc --- a/components/url_matcher/url_util.cc +++ b/components/url_matcher/url_util.cc -@@ -37,27 +37,15 @@ namespace { +@@ -42,27 +42,15 @@ namespace { // Host/regex pattern for Google AMP Cache URLs. // See https://developers.google.com/amp/cache/overview#amp-cache-url-format // for a definition of the format of AMP Cache URLs. @@ -1732,7 +1733,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, -@@ -115,87 +103,10 @@ class EmbeddedURLExtractor { +@@ -120,87 +108,10 @@ class EmbeddedURLExtractor { // Implements url_filter::GetEmbeddedURL(). GURL GetEmbeddedURL(const GURL& url) { @@ -1836,7 +1837,7 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc @@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_DISABLED(kFedCmIdpSigninStatusEnabled); ++// none diff --git a/net/base/url_util.cc b/net/base/url_util.cc --- a/net/base/url_util.cc +++ b/net/base/url_util.cc @@ -1879,7 +1880,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 -@@ -2961,7 +2961,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2965,7 +2965,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index bb19b145..ff2a7e28 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -109,7 +109,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -108,7 +108,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 36db46f9..0d7ea00b 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 -@@ -78,13 +78,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( +@@ -79,13 +79,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() {