diff --git a/Dockerfile b/Dockerfile index 3ba18e0b78dacb3f51981c3cff6341d2e19e95c1..d273e7ae6b286adcc129a47247ad8f8ef3d9417d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ubuntu:20.04 ENV CHROMIUM_DIR "/srv/chromium" -ENV CHROMIUM_VER "132.0.6834.83" +ENV CHROMIUM_VER "133.0.6943.99" RUN apt-get update && \ DEBIAN_FRONTEND=noninteractive \ diff --git a/build.sh b/build.sh index d72dd2eb67c7535c06b172bf1577eb417eba0c87..cf2c491a02d506b275c904b0e6c639e1172db4a1 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash set -e diff --git a/build/cromite_patches/AImageReader-CFI-crash-mitigations.patch b/build/cromite_patches/AImageReader-CFI-crash-mitigations.patch index d480165668c8e956f3fcf94697a6fa362ad6e95a..9b19a981a77b94cde7fdba7bd90874e2e55a1846 100644 --- a/build/cromite_patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/cromite_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 -@@ -3290,6 +3290,10 @@ +@@ -3219,6 +3219,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 -@@ -2606,6 +2606,22 @@ +@@ -2605,6 +2605,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -171,7 +171,7 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc -@@ -125,6 +125,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( +@@ -126,6 +126,9 @@ GpuFeatureStatus GetAndroidSurfaceControlFeatureStatus( #if !BUILDFLAG(IS_ANDROID) return kGpuFeatureStatusDisabled; #else @@ -181,7 +181,7 @@ diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc if (!gpu_preferences.enable_android_surface_control) return kGpuFeatureStatusDisabled; -@@ -378,6 +381,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, +@@ -379,6 +382,11 @@ void AdjustGpuFeatureStatusToWorkarounds(GpuFeatureInfo* gpu_feature_info, kGpuFeatureStatusSoftware; } } @@ -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 -@@ -68,6 +68,7 @@ +@@ -69,6 +69,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) -@@ -701,6 +702,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -716,6 +717,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/cromite_patches/Add-AllowUserCertificates-flag.patch b/build/cromite_patches/Add-AllowUserCertificates-flag.patch index 7edc05714c0ee2fae7e5d66d30cc817a11e64f32..ab204a7044e72ccbc456a961e2f23d902c03c852 100644 --- a/build/cromite_patches/Add-AllowUserCertificates-flag.patch +++ b/build/cromite_patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -223,6 +223,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -225,6 +225,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -1056,6 +1057,8 @@ public abstract class ChromeActivity +@@ -963,6 +964,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,42 +40,42 @@ 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 -@@ -165,6 +165,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -169,6 +169,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, + &kAllowUserCertificates, + &feed::kFeedRecyclerBinderUnmountOnDetach, &feed::kInterestFeedV2, - &feed::kInterestFeedV2Hearts, &feed::kWebFeedAwareness, 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 -@@ -155,6 +155,7 @@ public abstract class ChromeFeatureList { +@@ -157,6 +157,7 @@ public abstract class ChromeFeatureList { + + // Feature names. /* Alphabetical: */ - public static final String ACCOUNT_REAUTHENTICATION_RECENT_TIME_WINDOW = - "AccountReauthenticationRecentTimeWindow"; + 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 = -@@ -586,6 +587,8 @@ public abstract class ChromeFeatureList { +@@ -616,6 +617,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); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAsyncNotificationManager = - newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false); + newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sBlockIntentsWhileLocked = -@@ -744,6 +747,7 @@ public abstract class ChromeFeatureList { +@@ -832,6 +835,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( - sAccountReauthenticationRecentTimeWindow, -+ sAllowUserCertificates, sAndroidAppIntegration, ++ sAllowUserCertificates, + sAndroidAppIntegrationModule, sAndroidAppIntegrationV2, - sAndroidAppIntegrationWithFavicon, + sNewTabPageCustomization, 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,7 +111,7 @@ 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 -@@ -525,6 +525,8 @@ public class X509Util { +@@ -528,6 +528,8 @@ public class X509Util { return userRootBytes.toArray(new byte[0][]); } @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, String authType, String host) throws KeyStoreException, NoSuchAlgorithmException { -@@ -613,6 +615,9 @@ public class X509Util { +@@ -616,6 +618,9 @@ public class X509Util { isIssuedByKnownRoot = isKnownRoot(root); } diff --git a/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index d35e0a213329731c63a782b82b0b399d2f7fd61b..a06517b910b8889a395f6038283b81886453c041 100644 --- a/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -403,6 +403,8 @@ public class KeyboardShortcuts { +@@ -472,6 +472,8 @@ public class KeyboardShortcuts { R.string.keyboard_shortcut_address_bar, KeyEvent.KEYCODE_L, KeyEvent.META_CTRL_ON); diff --git a/build/cromite_patches/Add-IsCleartextPermitted-flag.patch b/build/cromite_patches/Add-IsCleartextPermitted-flag.patch index 1eb7da687843633e735cb7799c4fe2d80dd5f01b..08929780b5d8c26f8b954c3adab5a64ad62c2371 100644 --- a/build/cromite_patches/Add-IsCleartextPermitted-flag.patch +++ b/build/cromite_patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -371,6 +371,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -372,6 +372,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/cromite_patches/Add-a-proxy-configuration-page.patch b/build/cromite_patches/Add-a-proxy-configuration-page.patch index 451073f5fb00a37de4e14e4236cb22f6cce4248b..1c0c491c37627bf7dcfd265eb87d24f007a695af 100644 --- a/build/cromite_patches/Add-a-proxy-configuration-page.patch +++ b/build/cromite_patches/Add-a-proxy-configuration-page.patch @@ -77,18 +77,18 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private static final String PREF_SAFE_BROWSING = "safe_browsing"; +@@ -82,6 +82,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"; + private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; - @VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; + private static final String PREF_JAVASCRIPT_OPTIMIZER = "javascript_optimizer"; diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -318,6 +318,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -333,6 +333,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -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 -@@ -239,6 +239,9 @@ +@@ -231,6 +231,9 @@ @@ -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 -@@ -1615,6 +1617,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1714,6 +1716,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -660,7 +660,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -224,6 +224,8 @@ static_library("ui") { +@@ -226,6 +226,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -672,7 +672,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc --- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc -@@ -56,6 +56,9 @@ +@@ -55,6 +55,9 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" @@ -682,10 +682,10 @@ 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 -@@ -410,4 +413,5 @@ void RegisterChromeWebUIConfigs() { - map.AddWebUIConfig(std::make_unique()); - map.AddWebUIConfig(std::make_unique()); - #endif // !BUILDFLAG(IS_CHROMEOS_ASH) && !BUILDFLAG(IS_ANDROID) +@@ -401,4 +404,5 @@ void RegisterChromeWebUIConfigs() { + #if BUILDFLAG(ENABLE_GLIC) + map.AddWebUIConfig(std::make_unique()); + #endif + map.AddWebUIConfig(std::make_unique()); } diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webui/proxy_config_ui.cc @@ -1131,7 +1131,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -53,6 +53,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -50,6 +50,7 @@ bool IsSystemWebUIHost(std::string_view host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1139,7 +1139,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -75,6 +76,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -71,6 +72,7 @@ bool IsSystemWebUIHost(std::string_view host) { // These hosts will also be suggested by BuiltinProvider. base::span ChromeURLHosts() { static constexpr auto kChromeURLHosts = std::to_array({ @@ -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 -@@ -173,6 +173,8 @@ inline constexpr char kChromeUINetExportURL[] = "chrome://net-export"; +@@ -159,6 +159,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"; @@ -1179,7 +1179,7 @@ diff --git a/components/proxy_config/pref_proxy_config_tracker_impl.cc b/compone registry->RegisterBooleanPref(proxy_config::prefs::kUseSharedProxies, false); } -@@ -412,6 +412,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( +@@ -405,6 +405,7 @@ bool PrefProxyConfigTrackerImpl::PrefConfigToNetConfig( if (proxy_dict.GetBypassList(&proxy_bypass)) { proxy_config.proxy_rules().bypass_rules.ParseFromString(proxy_bypass); } @@ -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 -@@ -381,7 +381,7 @@ void ProxyPolicyHandler::ApplyPolicySettings(const PolicyMap& policies, +@@ -380,7 +380,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/cromite_patches/Add-an-always-incognito-mode.patch b/build/cromite_patches/Add-an-always-incognito-mode.patch index a986644b361fea26f8224a18ad253f0b80bca19b..57a60d4656adccac46f109d26289749e8298cebf 100644 --- a/build/cromite_patches/Add-an-always-incognito-mode.patch +++ b/build/cromite_patches/Add-an-always-incognito-mode.patch @@ -52,6 +52,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome_autocomplete_provider_client.cc | 9 + .../chrome_autocomplete_provider_client.h | 1 + .../remote_suggestions_service_factory.cc | 5 + + .../bookmarks/android/bookmark_bridge.cc | 7 + .../host_content_settings_map_factory.cc | 22 ++- chrome/browser/history/history_tab_helper.cc | 20 +++ chrome/browser/history/history_tab_helper.h | 10 +- @@ -84,7 +85,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 65 files changed, 784 insertions(+), 112 deletions(-) + 66 files changed, 791 insertions(+), 112 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -97,7 +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 -@@ -627,6 +627,7 @@ chrome_java_resources = [ +@@ -633,6 +633,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", @@ -116,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", -@@ -947,6 +948,7 @@ chrome_java_sources = [ +@@ -933,6 +934,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", @@ -169,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 -@@ -86,6 +86,11 @@ found in the LICENSE file. +@@ -97,6 +97,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" /> @@ -254,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; -@@ -699,14 +703,19 @@ public class ChromeTabbedActivity extends ChromeActivity ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; + import org.chromium.chrome.browser.download.DownloadManagerService; + import org.chromium.chrome.browser.download.DownloadUtils; +@@ -1952,6 +1953,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -326,7 +327,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; -@@ -102,6 +104,10 @@ import java.util.ArrayList; +@@ -101,6 +103,10 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -337,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. -@@ -593,6 +599,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -597,6 +603,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -351,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; -@@ -656,7 +669,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -660,7 +673,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -368,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); -@@ -870,8 +891,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -865,8 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -383,7 +384,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -30,6 +30,7 @@ import org.chromium.base.ContextUtils; +@@ -30,6 +30,7 @@ import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; @@ -391,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; -@@ -267,6 +268,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -329,6 +330,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -401,7 +402,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isAnchor()) { -@@ -277,6 +281,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -339,6 +343,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { if (mMode == ContextMenuMode.NORMAL) { linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB_IN_GROUP)); linkGroup.add(createListItem(Item.OPEN_IN_NEW_TAB)); @@ -409,7 +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)); } -@@ -301,7 +306,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -369,7 +374,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -421,7 +422,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/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -70,45 +70,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -63,45 +63,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { @@ -491,7 +492,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -88,6 +88,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -86,6 +86,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -501,7 +502,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1231,6 +1234,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1180,6 +1183,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -558,7 +559,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -@@ -271,7 +271,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -277,7 +277,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.generateFooterItems(); // Listen to changes in sign in state. @@ -568,8 +569,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History + IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this); // Create PrefChangeRegistrar to receive notifications on preference changes. - mPrefChangeRegistrar = new PrefChangeRegistrar(); -@@ -347,7 +349,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver + mPrefChangeRegistrar = PrefServiceUtil.createFor(profile); +@@ -353,7 +355,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; @@ -597,7 +598,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -154,7 +162,7 @@ public class HistoryManager +@@ -157,7 +165,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -606,7 +607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -421,9 +429,22 @@ public class HistoryManager +@@ -425,9 +433,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -630,7 +631,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -483,7 +504,7 @@ public class HistoryManager +@@ -487,7 +508,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -683,7 +684,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -320,7 +321,8 @@ public class NativePageFactory { +@@ -319,7 +320,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) { NativePage page; @@ -696,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 -@@ -39,6 +39,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; +@@ -43,6 +43,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; import org.chromium.components.sync.SyncService; import org.chromium.url.GURL; @@ -712,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; -@@ -105,7 +114,8 @@ public class RecentTabsManager +@@ -111,7 +120,8 @@ public class RecentTabsManager Profile profile, Context context, Runnable showHistoryManager) { @@ -722,7 +723,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -269,6 +279,22 @@ public class RecentTabsManager +@@ -295,6 +305,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -915,17 +916,17 @@ 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 -@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; +@@ -54,6 +54,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; +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; + import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; - import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; -@@ -270,6 +271,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl - safetyHubFragment.setCustomTabIntentHelper( - LaunchIntentDispatcher::createCustomTabActivityIntent); +@@ -243,6 +244,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl + mModalDialogManagerSupplier, + SigninAndHistorySyncActivityLauncherImpl.get())); } + if (fragment instanceof INeedSnackbarManager) { + ((INeedSnackbarManager)fragment).setSnackbarManagerSupplier(mSnackbarManagerSupplier); @@ -1042,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 -@@ -159,6 +159,8 @@ import org.chromium.ui.InsetObserver; +@@ -169,6 +169,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1051,7 +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; -@@ -1029,7 +1031,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1072,7 +1074,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1063,7 +1064,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -47,6 +47,10 @@ import org.chromium.ui.base.PageTransition; +@@ -46,6 +46,10 @@ import org.chromium.ui.base.PageTransition; import org.chromium.ui.base.WindowAndroid; import org.chromium.url.GURL; @@ -1074,7 +1075,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ public class ChromeTabCreator extends TabCreator { private final Activity mActivity; -@@ -507,7 +511,6 @@ public class ChromeTabCreator extends TabCreator { +@@ -500,7 +504,6 @@ public class ChromeTabCreator extends TabCreator { // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1093,7 +1094,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -117,6 +118,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -118,6 +119,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1114,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; -@@ -815,6 +817,13 @@ public class TabPersistentStore { +@@ -820,6 +822,13 @@ public class TabPersistentStore { } } } @@ -1131,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 -@@ -44,6 +44,7 @@ import org.chromium.base.supplier.Supplier; +@@ -43,6 +43,7 @@ import org.chromium.base.supplier.Supplier; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1139,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; -@@ -699,7 +700,7 @@ public class ToolbarManager +@@ -702,7 +703,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1263,7 +1264,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -359,6 +359,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { +@@ -374,6 +374,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { return ProviderStateServiceFactory::GetForProfile(profile_); } @@ -1282,7 +1283,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h -@@ -85,6 +85,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { +@@ -89,6 +89,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { OnDeviceTailModelService* GetOnDeviceTailModelService() const override; ProviderStateService* GetProviderStateService() const override; bool IsOffTheRecord() const override; @@ -1315,6 +1316,30 @@ diff --git a/chrome/browser/autocomplete/remote_suggestions_service_factory.cc b // TODO(crbug.com/41488885): Check if this service is needed for // Ash Internals. .WithAshInternals(ProfileSelection::kOriginalOnly) +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" + #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( + if (!profile) + return nullptr; + ++#if BUILDFLAG(IS_ANDROID) ++ if (profile->GetOriginalProfile() ++ ->GetPrefs()->GetBoolean(prefs::kAlwaysIncognitoEnabled)) { ++ profile = profile->GetOriginalProfile(); ++ } ++#endif + BookmarkModel* model = BookmarkModelFactory::GetForBrowserContext(profile); + if (!model) + return nullptr; diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc --- a/chrome/browser/content_settings/host_content_settings_map_factory.cc +++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc @@ -1621,7 +1646,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ namespace { class DefaultRecentTabHelperDelegate : public offline_pages::RecentTabHelper::Delegate { -@@ -180,6 +185,14 @@ bool RecentTabHelper::EnsureInitialized() { +@@ -179,6 +184,14 @@ bool RecentTabHelper::EnsureInitialized() { // WebContents with its origin as well. snapshots_enabled_ = !tab_id_.empty() && !web_contents()->GetBrowserContext()->IsOffTheRecord(); @@ -1636,7 +1661,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ if (snapshots_enabled_) { page_model_ = OfflinePageModelFactory::GetForBrowserContext( -@@ -339,7 +352,8 @@ void RecentTabHelper::WebContentsWasHidden() { +@@ -338,7 +351,8 @@ void RecentTabHelper::WebContentsWasHidden() { GetRecentPagesClientId(), base::BindOnce(&RecentTabHelper::ContinueSnapshotWithIdsToPurge, weak_ptr_factory_.GetWeakPtr(), @@ -1646,7 +1671,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ last_n_latest_saved_snapshot_info_.reset(); } -@@ -403,11 +417,12 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) { +@@ -402,11 +416,12 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) { downloads_latest_saved_snapshot_info_->request_id, downloads_latest_saved_snapshot_info_->origin); std::vector ids{downloads_latest_saved_snapshot_info_->request_id}; @@ -1660,7 +1685,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ OfflinePageModel::DeletePageResult::SUCCESS); } } -@@ -424,6 +439,7 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) { +@@ -423,6 +438,7 @@ void RecentTabHelper::SaveSnapshotForDownloads(bool replace_latest) { // for early termination in case of errors. void RecentTabHelper::ContinueSnapshotWithIdsToPurge( SnapshotProgressInfo* snapshot_info, @@ -1668,7 +1693,7 @@ diff --git a/chrome/browser/offline_pages/recent_tab_helper.cc b/chrome/browser/ const std::vector& page_ids) { DCHECK(snapshot_info); -@@ -433,13 +449,20 @@ void RecentTabHelper::ContinueSnapshotWithIdsToPurge( +@@ -432,13 +448,20 @@ void RecentTabHelper::ContinueSnapshotWithIdsToPurge( criteria.offline_ids = page_ids; page_model_->DeletePagesWithCriteria( criteria, base::BindOnce(&RecentTabHelper::ContinueSnapshotAfterPurge, @@ -1744,10 +1769,10 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" +#include "chrome/browser/history/history_tab_helper.h" - #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" -@@ -2068,6 +2069,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, + #include "chrome/browser/android/preferences/browser_prefs_android.h" +@@ -2177,6 +2178,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1908,7 +1933,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1411,6 +1411,31 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1419,6 +1419,31 @@ Your Google account may have other forms of browsing history like searches and a Deletes history from all synced devices @@ -1965,7 +1990,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/messages/android/BUILD.gn b/chrome/browser/ui/messages/android/BUILD.gn --- a/chrome/browser/ui/messages/android/BUILD.gn +++ b/chrome/browser/ui/messages/android/BUILD.gn -@@ -25,6 +25,7 @@ android_library("java") { +@@ -27,6 +27,7 @@ android_library("java") { srcjar_deps = [ ":jni_headers" ] sources = [ "java/src/org/chromium/chrome/browser/ui/messages/infobar/SimpleConfirmInfoBarBuilder.java", @@ -2009,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 -@@ -4193,6 +4193,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4138,6 +4138,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2075,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 -@@ -266,6 +266,7 @@ struct ContentSettingEntry { +@@ -265,6 +265,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2083,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) -@@ -275,6 +276,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -274,6 +275,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2091,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()) { -@@ -288,7 +290,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -287,7 +289,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2123,7 +2148,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -46,3 +46,7 @@ base::WeakPtr +@@ -51,3 +51,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2134,7 +2159,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -137,6 +137,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -143,6 +143,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2157,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 -@@ -915,7 +915,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -912,7 +912,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/cromite_patches/Add-bookmark-import-export-actions.patch b/build/cromite_patches/Add-bookmark-import-export-actions.patch index 944bf6d1d8bbfbc011b20e77627ed93c2f18521c..0413d3d9bb9905ecc781203026fa68df5b8b42a7 100644 --- a/build/cromite_patches/Add-bookmark-import-export-actions.patch +++ b/build/cromite_patches/Add-bookmark-import-export-actions.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 1 - .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- - .../app/bookmarks/BookmarkActivity.java | 30 ++ + .../app/bookmarks/BookmarkActivity.java | 32 ++ .../browser/bookmarks/BookmarkBridge.java | 285 ++++++++++++++++++ .../browser/bookmarks/BookmarkDelegate.java | 10 + .../bookmarks/BookmarkManagerCoordinator.java | 9 + @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 42 files changed, 898 insertions(+), 30 deletions(-) + 42 files changed, 900 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 @@ -145,14 +145,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); -@@ -61,8 +67,23 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -62,8 +68,25 @@ public class BookmarkActivity extends SnackbarActivity { getOnBackPressedDispatcher(), mBookmarkManagerCoordinator, SecondaryActivity.BOOKMARK); + + final boolean listenToActivityState = true; + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); -+ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, mIntentRequestTracker, /*InsetObserver*/ null); ++ mWindowAndroid = new ActivityWindowAndroid(this, listenToActivityState, ++ mIntentRequestTracker, /*InsetObserver*/ null, ++ /* trackOcclusion= */ true); + mWindowAndroid.getIntentRequestTracker().restoreInstanceState(savedInstanceState); + mBookmarkManagerCoordinator.setWindow(mWindowAndroid, + new ModalDialogManager( @@ -169,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onDestroy() { super.onDestroy(); -@@ -72,6 +93,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -73,6 +96,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -177,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { BookmarkId bookmarkId = BookmarkId.getBookmarkIdFromString( -@@ -85,6 +107,14 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -86,6 +110,14 @@ public class BookmarkActivity extends SnackbarActivity { return new ModalDialogManager(new AppModalPresenter(this), ModalDialogType.APP); } @@ -195,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -@@ -33,6 +33,48 @@ import org.chromium.url.GURL; +@@ -34,6 +34,48 @@ import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -244,10 +246,43 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the bookmark model stored * in native. -@@ -474,6 +516,212 @@ class BookmarkBridge { +@@ -490,6 +532,245 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } ++ @CalledByNative ++ public void bookmarksExported(WindowAndroid window, String bookmarksPath, boolean success) { ++ Uri uri = Uri.parse(bookmarksPath); ++ ++ if (success == false) { ++ ((Activity)window.getContext().get()).runOnUiThread(new Runnable() { ++ public void run() { ++ window.showError(R.string.saving_file_error); ++ } ++ }); ++ } else { ++ SharedPreferencesManager sharedPrefs = ChromeSharedPreferences.getInstance(); ++ sharedPrefs.writeString(ChromePreferenceKeys.BOOKMARKS_LAST_EXPORT_URI, bookmarksPath); ++ ++ Context context = ContextUtils.getApplicationContext(); ++ ++ Intent intent = new Intent(Intent.ACTION_VIEW, ++ ContentUriUtils.isContentUri(bookmarksPath) ? ++ Uri.parse(bookmarksPath) : Uri.parse("file://" + bookmarksPath)); ++ intent.putExtra(Browser.EXTRA_APPLICATION_ID, ++ context.getPackageName()); ++ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ++ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK); ++ ++ // If the bookmark manager is shown in a tab on a phone (rather than in a separate ++ // activity) the component name may be null. Send the intent through ++ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012. ++ intent.setClass(context, ChromeLauncherActivity.class); ++ ++ IntentHandler.startActivityForTrustedIntent(intent); ++ } ++ } ++ + /** + * Import bookmarks from a selected file. + * @param window The current window of the bookmarks activity or page. @@ -457,47 +492,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. * -@@ -1032,6 +1280,39 @@ class BookmarkBridge { - BookmarkUtils.clearLastUsedPrefs(); - } - -+ @CalledByNative -+ public void bookmarksExported(WindowAndroid window, String bookmarksPath, boolean success) { -+ Uri uri = Uri.parse(bookmarksPath); -+ -+ if (success == false) { -+ ((Activity)window.getContext().get()).runOnUiThread(new Runnable() { -+ public void run() { -+ window.showError(R.string.saving_file_error); -+ } -+ }); -+ } else { -+ SharedPreferencesManager sharedPrefs = ChromeSharedPreferences.getInstance(); -+ sharedPrefs.writeString(ChromePreferenceKeys.BOOKMARKS_LAST_EXPORT_URI, bookmarksPath); -+ -+ Context context = ContextUtils.getApplicationContext(); -+ -+ Intent intent = new Intent(Intent.ACTION_VIEW, -+ ContentUriUtils.isContentUri(bookmarksPath) ? -+ Uri.parse(bookmarksPath) : Uri.parse("file://" + bookmarksPath)); -+ intent.putExtra(Browser.EXTRA_APPLICATION_ID, -+ context.getPackageName()); -+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); -+ intent.putExtra(IntentHandler.EXTRA_PAGE_TRANSITION_TYPE, PageTransition.AUTO_BOOKMARK); -+ -+ // If the bookmark manager is shown in a tab on a phone (rather than in a separate -+ // activity) the component name may be null. Send the intent through -+ // ChromeLauncherActivity instead to avoid crashing. See crbug.com/615012. -+ intent.setClass(context, ChromeLauncherActivity.class); -+ -+ IntentHandler.startActivityForTrustedIntent(intent); -+ } -+ } -+ - private static List> createPairsList(int[] left, int[] right) { - List> pairList = new ArrayList<>(); - for (int i = 0; i < left.length; i++) { -@@ -1094,6 +1375,10 @@ class BookmarkBridge { +@@ -1102,6 +1383,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -531,7 +526,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/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -49,6 +49,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; +@@ -54,6 +54,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; @@ -540,7 +535,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; -@@ -302,6 +304,13 @@ public class BookmarkManagerCoordinator +@@ -334,6 +336,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -557,7 +552,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 -@@ -57,6 +57,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; +@@ -59,6 +59,8 @@ import org.chromium.components.commerce.core.SubscriptionsObserver; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.power_bookmarks.PowerBookmarkMeta; import org.chromium.components.power_bookmarks.PowerBookmarkType; @@ -566,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -81,6 +83,9 @@ class BookmarkManagerMediator +@@ -85,6 +87,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -576,7 +571,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; -@@ -552,6 +557,14 @@ class BookmarkManagerMediator +@@ -571,6 +576,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -591,7 +586,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. -@@ -732,6 +745,16 @@ class BookmarkManagerMediator +@@ -752,6 +765,16 @@ class BookmarkManagerMediator } } @@ -630,9 +625,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm super(host); mBookmarkManagerCoordinator = -@@ -43,6 +46,9 @@ public class BookmarkPage extends BasicNativePage { - profile, - new BookmarkUiPrefs(ChromeSharedPreferences.getInstance())); +@@ -44,6 +47,9 @@ public class BookmarkPage extends BasicNativePage { + new BookmarkUiPrefs(ChromeSharedPreferences.getInstance()), + /* bookmarkOpenedCallback= */ null); mBookmarkManagerCoordinator.setBasicNativePage(this); + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( @@ -800,7 +795,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -243,7 +244,7 @@ public class NativePageFactory { +@@ -242,7 +243,7 @@ public class NativePageFactory { mActivity.getComponentName(), mSnackbarManagerSupplier.get(), tab.getProfile(), @@ -812,7 +807,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 -@@ -205,6 +205,8 @@ static_library("browser") { +@@ -207,6 +207,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -821,7 +816,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1679,6 +1681,13 @@ static_library("browser") { +@@ -1661,6 +1663,13 @@ static_library("browser") { "webid/identity_provider_permission_request.h", ] @@ -835,7 +830,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3486,8 +3495,6 @@ static_library("browser") { +@@ -3475,8 +3484,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -974,7 +969,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -228,6 +335,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -229,6 +336,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -985,7 +980,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -767,6 +878,172 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -768,6 +879,172 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1164,7 +1159,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser @@ -20,6 +20,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/supports_user_data.h" - #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" + #include "chrome/browser/partnerbookmarks/partner_bookmarks_shim.h" +#include "chrome/browser/bookmarks/bookmark_html_writer.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_observer.h" @@ -1336,7 +1331,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 -@@ -206,6 +206,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -216,6 +216,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTAuthTab, &kCCTAuthTabDisableAllExternalIntents, &kCCTAuthTabEnableHttpsRedirects, @@ -1347,7 +1342,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 -@@ -546,6 +546,7 @@ public abstract class ChromeFeatureList { +@@ -579,6 +579,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1401,7 +1396,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 -@@ -103,6 +103,8 @@ public final class ChromePreferenceKeys { +@@ -115,6 +115,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"; @@ -1410,8 +1405,8 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Whether Chrome is set as the default browser. Default value is false. */ public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; -@@ -919,6 +921,7 @@ public final class ChromePreferenceKeys { - AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, +@@ -935,6 +937,7 @@ public final class ChromePreferenceKeys { + AUXILIARY_SEARCH_IS_SCHEMA_SET, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, @@ -1449,7 +1444,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 -@@ -359,6 +359,9 @@ static_library("common_lib") { +@@ -360,6 +360,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1633,15 +1628,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 -@@ -45,6 +45,7 @@ import org.chromium.base.task.AsyncTask; - import org.chromium.base.task.PostTask; - import org.chromium.base.task.TaskTraits; +@@ -49,6 +49,7 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.NullUnmarked; + 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; -@@ -67,6 +68,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -72,6 +73,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"; @@ -1649,7 +1644,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"; -@@ -312,6 +314,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -324,6 +326,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mMimeTypes = convertToSupportedMimeTypes(mFileTypes); } @@ -1661,7 +1656,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. * -@@ -374,7 +381,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -399,7 +406,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick List missingPermissions = new ArrayList<>(); String storagePermission = Manifest.permission.READ_EXTERNAL_STORAGE; boolean shouldUsePhotoPicker = shouldUsePhotoPicker(); @@ -1670,7 +1665,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 -@@ -427,7 +434,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -452,7 +459,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick // TODO(finnur): Remove once we figure out the cause of // crbug.com/950024. @@ -1679,7 +1674,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( -@@ -444,7 +451,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -469,7 +476,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick } } @@ -1688,7 +1683,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) -@@ -751,6 +758,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -775,6 +782,7 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick mimeTypes.add(mimeType); } } @@ -1696,7 +1691,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1121,6 +1129,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1149,6 +1157,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } @@ -1735,8 +1730,8 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc -@@ -161,6 +161,12 @@ void SelectFileDialogImpl::SelectFileImpl( - accept_multiple_files, owning_window->GetJavaObject()); +@@ -175,6 +175,12 @@ void SelectFileDialogImpl::SelectFileImpl( + owning_window->GetJavaObject()); } +void SelectFileDialogImpl::ShowToast(const std::string& message) { diff --git a/build/cromite_patches/Add-cromite-flags-support.patch b/build/cromite_patches/Add-cromite-flags-support.patch index 6c0577b9116f0f503eacd70851540871997f5486..03c79c73afff8cd2ea4fd539624fbd0da782f4bb 100644 --- a/build/cromite_patches/Add-cromite-flags-support.patch +++ b/build/cromite_patches/Add-cromite-flags-support.patch @@ -21,7 +21,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html build/android/gyp/java_cpp_features.py | 17 ++ chrome/android/java/res/values/values.xml | 3 + .../java/res/xml/privacy_preferences.xml | 4 + - .../settings/AccessibilitySettings.java | 5 +- .../homepage/settings/HomepageSettings.java | 2 +- .../privacy/settings/PrivacySettings.java | 2 +- .../settings/FragmentDependencyProvider.java | 10 +- @@ -42,7 +41,9 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../placeholder.txt | 1 + chrome/browser/ui/ui_features.cc | 1 + chrome/common/chrome_features.cc | 1 + + .../browser_ui/accessibility/android/BUILD.gn | 1 + .../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 +- @@ -53,7 +54,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/flags_ui/resources/app.css | 24 +++ components/flags_ui/resources/app.html.ts | 28 +++ components/flags_ui/resources/app.ts | 23 +++ - components/flags_ui/resources/experiment.css | 7 +- + components/flags_ui/resources/experiment.css | 9 +- .../flags_ui/resources/experiment.html.ts | 7 +- components/flags_ui/resources/experiment.ts | 14 +- .../flags_ui/resources/flags_browser_proxy.ts | 5 + @@ -104,7 +105,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 + - 91 files changed, 801 insertions(+), 28 deletions(-) + 92 files changed, 805 insertions(+), 28 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp @@ -141,7 +142,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -163,6 +163,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -165,6 +165,8 @@ use_epoll = is_linux || is_chromeos || is_android # This does not include test code (test support and anything in the test # directory) which should use source_set as is recommended for GN targets). component("base") { @@ -150,7 +151,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1005,7 +1007,7 @@ component("base") { +@@ -1017,7 +1019,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -177,8 +178,8 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java --- a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java +++ b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java -@@ -16,7 +16,7 @@ import java.util.Map; - /** Keeps track of values returned for cached flags and field trial parameters. */ +@@ -18,7 +18,7 @@ import java.util.Map; + @NullMarked public abstract class ValuesReturned { @GuardedBy("sBoolValues") - private static final Map sBoolValues = new HashMap<>(); @@ -221,7 +222,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -469,6 +494,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -473,6 +498,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -268,7 +269,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -735,6 +800,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, +@@ -743,6 +808,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -289,7 +290,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.h b/base/feature_list.h --- a/base/feature_list.h +++ b/base/feature_list.h -@@ -166,8 +166,10 @@ enum class FeatureMacroHandshake { kSecret }; +@@ -170,8 +170,10 @@ enum class FeatureMacroHandshake { kSecret }; struct BASE_EXPORT LOGICALLY_CONST Feature { constexpr Feature(const char* name, FeatureState default_state, @@ -302,7 +303,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) { -@@ -194,6 +196,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { +@@ -198,6 +200,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { // command line switch. const FeatureState default_state; @@ -312,7 +313,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h private: friend class FeatureList; -@@ -469,6 +474,11 @@ class BASE_EXPORT FeatureList { +@@ -477,6 +482,11 @@ class BASE_EXPORT FeatureList { // instance, which is checked in builds with DCHECKs enabled. static bool IsEnabled(const Feature& feature); @@ -324,7 +325,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h // Some characters are not allowed to appear in feature names or the // associated field trial names, as they are used as special characters for // command-line serialization. This function checks that the strings are ASCII -@@ -734,4 +744,62 @@ class BASE_EXPORT FeatureList { +@@ -746,4 +756,62 @@ class BASE_EXPORT FeatureList { } // namespace base @@ -434,7 +435,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 -@@ -55,6 +55,10 @@ found in the LICENSE file. +@@ -54,6 +54,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" /> @@ -445,35 +446,6 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi mPageTitle = new ObservableSupplierImpl<>(); @Override @@ -509,7 +481,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; -@@ -78,18 +79,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -76,18 +77,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mSnackbarManagerSupplier; private final OneshotSupplier mBottomSheetControllerSupplier; private final ObservableSupplier mModalDialogManagerSupplier; @@ -532,7 +504,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme } @Override -@@ -98,6 +102,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -96,6 +100,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl @NonNull Fragment fragment, @NonNull Context unusedContext) { // Common dependencies attachments. @@ -644,9 +616,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4315,6 +4319,10 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = { - std::size(kServiceWorkerAutoPreload_SWNotRunningOnly), nullptr}, - }; +@@ -4313,6 +4317,10 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = { + std::size(kMerchantTrustEnabledWithSampleData), nullptr}}; + #endif // !BUILDFLAG(IS_ANDROID) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -655,7 +627,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. -@@ -4341,6 +4349,9 @@ const FeatureEntry::FeatureVariation kServiceWorkerAutoPreloadVariations[] = { +@@ -4339,6 +4347,9 @@ const FeatureEntry::FeatureVariation kMerchantTrustVariations[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -668,7 +640,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 -@@ -372,4 +372,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -352,4 +352,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -677,7 +649,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h -@@ -145,6 +145,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -136,6 +136,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -701,9 +673,9 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "//base:base_java", + "//base:base_cached_flags_java", "//base/version_info/android:version_constants_java", + "//build:android_buildflags", "//build:chromeos_buildflags", - "//build/android:build_java", -@@ -24,12 +29,20 @@ android_library("java") { +@@ -25,12 +30,20 @@ android_library("java") { "//third_party/jni_zero:jni_zero_java", ] srcjar_deps = [ @@ -727,7 +699,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 -@@ -1063,5 +1063,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, +@@ -1133,5 +1133,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); @@ -737,7 +709,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 -@@ -215,6 +215,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -225,6 +225,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -748,9 +720,9 @@ 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 -@@ -17,6 +17,10 @@ import org.chromium.components.cached_flags.DoubleCachedFieldTrialParameter; - import org.chromium.components.cached_flags.IntCachedFieldTrialParameter; - import org.chromium.components.cached_flags.StringCachedFieldTrialParameter; +@@ -20,6 +20,10 @@ import org.chromium.components.cached_flags.DoubleCachedFeatureParam; + import org.chromium.components.cached_flags.IntCachedFeatureParam; + import org.chromium.components.cached_flags.StringCachedFeatureParam; +import org.chromium.chrome.browser.flags.cromite.CromiteCachedFlagImplBase; +import java.util.Arrays; @@ -759,16 +731,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -730,7 +734,7 @@ public abstract class ChromeFeatureList { +@@ -818,7 +822,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); - public static final List sFlagsCachedFullBrowser = + public static final List sFlagsCachedFullBrowserChromium = List.of( - sAccountReauthenticationRecentTimeWindow, sAndroidAppIntegration, -@@ -823,6 +827,13 @@ public abstract class ChromeFeatureList { + sAndroidAppIntegrationModule, +@@ -916,6 +920,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -854,7 +826,7 @@ diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java -@@ -7,11 +7,18 @@ package org.chromium.chrome.browser.settings; +@@ -7,12 +7,19 @@ package org.chromium.chrome.browser.settings; import androidx.annotation.NonNull; import androidx.preference.PreferenceFragmentCompat; @@ -863,6 +835,7 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; + import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; +import android.os.Bundle; +import androidx.preference.Preference; @@ -873,9 +846,9 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse /** * Base class for settings in Chrome. * -@@ -22,6 +29,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa - implements EmbeddableSettingsPage, ProfileDependentSetting { +@@ -26,6 +33,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa private Profile mProfile; + private SettingsCustomTabLauncher mCustomTabLauncher; + private Supplier mRequireRestartDelegateSupplier; + @@ -957,21 +930,32 @@ 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 -@@ -487,4 +487,5 @@ BASE_FEATURE(kInlineFullscreenPerfExperiment, - "InlineFullscreenPerfExperiment", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -440,4 +440,5 @@ BASE_FEATURE(kPageActionsMigration, + "PageActionsMigration", + base::FEATURE_DISABLED_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 -@@ -1629,4 +1629,5 @@ BASE_FEATURE(kPeriodicLogUploadMigration, - base::FEATURE_DISABLED_BY_DEFAULT); - #endif // BUILDFLAG(IS_CHROMEOS_ASH) +@@ -1561,4 +1561,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, + "DisableShortcutsEnableDiy", + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/chrome_common_chrome_features_cc.inc" } // namespace features +diff --git a/components/browser_ui/accessibility/android/BUILD.gn b/components/browser_ui/accessibility/android/BUILD.gn +--- a/components/browser_ui/accessibility/android/BUILD.gn ++++ b/components/browser_ui/accessibility/android/BUILD.gn +@@ -55,6 +55,7 @@ android_library("lib_java") { + ":page_zoom_utils_java", + "//base:base_java", + "//build/android:build_java", ++ "//chrome/browser/settings:java", + "//components/browser_ui/settings/android:java", + "//components/browser_ui/site_settings/android:java", + "//components/cached_flags:java", diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml @@ -985,6 +969,30 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil +@@ -282,6 +282,7 @@ + + @@ -1090,7 +1098,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc -@@ -113,5 +113,6 @@ BASE_FEATURE(kContentSettingsPartitioning, +@@ -163,5 +163,6 @@ BASE_FEATURE(kContentSettingsPartitioning, "ContentSettingsPartitioning", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1106,7 +1114,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 -@@ -365,6 +365,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -363,6 +363,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -1128,7 +1136,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; -@@ -682,6 +697,27 @@ void FlagsState::GetFlagFeatureEntries( +@@ -680,6 +695,27 @@ void FlagsState::GetFlagFeatureEntries( data.Set("links", std::move(links)); } @@ -1156,7 +1164,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: -@@ -810,6 +846,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -806,6 +842,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()) { @@ -1170,10 +1178,10 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat + continue; + } + } - NOTREACHED_IN_MIGRATION(); - continue; + NOTREACHED(); } -@@ -1062,6 +1108,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( + +@@ -1057,6 +1103,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1230,7 +1238,7 @@ diff --git a/components/flags_ui/resources/app.html.ts b/components/flags_ui/res -
-
-@@ -138,6 +165,7 @@ export function getHtml(this: AppElement) { +
+@@ -127,6 +154,7 @@ export function getHtml(this: AppElement) {
@@ -1274,7 +1282,7 @@ diff --git a/components/flags_ui/resources/app.html.ts b/components/flags_ui/res diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resources/app.ts --- a/components/flags_ui/resources/app.ts +++ b/components/flags_ui/resources/app.ts -@@ -128,6 +128,7 @@ export class FlagsAppElement extends CrLitElement { +@@ -132,6 +132,7 @@ export class FlagsAppElement extends CrLitElement { // loadTimeData.getString('unavailable'), // @@ -1282,19 +1290,20 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource ]; protected selectedTabIndex_: number = 0; -@@ -149,8 +150,11 @@ export class FlagsAppElement extends CrLitElement { +@@ -150,9 +151,12 @@ export class FlagsAppElement extends CrLitElement { protected defaultFeatures: Feature[] = []; protected nonDefaultFeatures: Feature[] = []; + protected defaultCromiteFeatures: Feature[] = []; + protected nonDefaultCromiteFeatures: Feature[] = []; protected searching: boolean = false; + protected needsRestart: boolean = false; + private onlyCromiteFlags: boolean = false; private announceStatusDelayMs: number = 100; private featuresResolver: PromiseResolver = new PromiseResolver(); private flagSearch: FlagSearch|null = null; -@@ -184,10 +188,24 @@ export class FlagsAppElement extends CrLitElement { +@@ -186,10 +190,24 @@ export class FlagsAppElement extends CrLitElement { if (changedPrivateProperties.has('data')) { const defaultFeatures: Feature[] = []; const nonDefaultFeatures: Feature[] = []; @@ -1318,8 +1327,8 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource + this.nonDefaultCromiteFeatures = nonDefaultCromiteFeatures; this.defaultFeatures = defaultFeatures; this.nonDefaultFeatures = nonDefaultFeatures; - } -@@ -228,6 +246,11 @@ export class FlagsAppElement extends CrLitElement { + +@@ -233,6 +251,11 @@ export class FlagsAppElement extends CrLitElement { override connectedCallback() { super.connectedCallback(); @@ -1334,7 +1343,15 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource diff --git a/components/flags_ui/resources/experiment.css b/components/flags_ui/resources/experiment.css --- a/components/flags_ui/resources/experiment.css +++ b/components/flags_ui/resources/experiment.css -@@ -79,6 +79,11 @@ +@@ -12,6 +12,7 @@ + } + + .experiment { ++ padding-bottom: 25px; + color: var(--secondary-color); + line-height: 1.45; + width: 100%; +@@ -79,6 +80,11 @@ resize: none; } @@ -1346,7 +1363,15 @@ diff --git a/components/flags_ui/resources/experiment.css b/components/flags_ui/ select { background: white; border: 1px solid var(--link-color); -@@ -172,7 +177,6 @@ input { +@@ -155,6 +161,7 @@ input { + @media (max-width: 480px) { + .experiment { + border-bottom: 1px solid var(--separator-color); ++ padding-bottom: 8px; + } + + .experiment-name { +@@ -172,7 +179,6 @@ input { .experiment .experiment-actions { max-width: 100%; padding-top: 12px; @@ -1354,7 +1379,7 @@ diff --git a/components/flags_ui/resources/experiment.css b/components/flags_ui/ width: 100%; } -@@ -180,7 +184,6 @@ input { +@@ -180,7 +186,6 @@ input { .body { overflow: hidden; text-overflow: ellipsis; @@ -1458,7 +1483,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 -@@ -193,4 +193,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -188,4 +188,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1467,7 +1492,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 -@@ -153,6 +153,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, +@@ -122,6 +122,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, BASE_FEATURE(kCpssUseTfliteSignatureRunner, "CpssUseTfliteSignatureRunner", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1541,7 +1566,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 -@@ -619,4 +619,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -475,4 +475,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, // Please keep features in alphabetical order. @@ -1550,7 +1575,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 -@@ -1498,4 +1498,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1421,4 +1421,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1559,7 +1584,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 -@@ -352,6 +352,7 @@ CONTENT_EXPORT extern const base::FeatureParam +@@ -341,6 +341,7 @@ CONTENT_EXPORT extern const base::FeatureParam CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1905,7 +1930,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 -@@ -1837,5 +1837,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1819,5 +1819,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1915,7 +1940,7 @@ diff --git a/media/base/media_switches.cc b/media/base/media_switches.cc diff --git a/media/base/media_switches.h b/media/base/media_switches.h --- a/media/base/media_switches.h +++ b/media/base/media_switches.h -@@ -572,5 +572,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -570,5 +570,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1925,18 +1950,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 -@@ -629,4 +629,5 @@ BASE_FEATURE(kIgnoreHSTSForLocalhost, - "IgnoreHSTSForLocalhost", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -666,4 +666,5 @@ BASE_FEATURE(kHstsTopLevelNavigationsOnly, + "HstsTopLevelNavigationsOnly", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -650,6 +650,7 @@ NET_EXPORT extern const base::FeatureParam - // If enabled, ignore Strict-Transport-Security for [*.]localhost hosts. - NET_EXPORT BASE_DECLARE_FEATURE(kIgnoreHSTSForLocalhost); +@@ -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); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1945,18 +1970,18 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -475,4 +475,5 @@ BASE_FEATURE(kEnableLockCookieDatabaseByDefault, - base::FEATURE_ENABLED_BY_DEFAULT); - #endif // BUILDFLAG(IS_WIN) +@@ -366,4 +366,5 @@ BASE_FEATURE(kSRIMessageSignatureEnforcement, + "SRIMessageSignatureEnforcement", + base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -211,6 +211,7 @@ COMPONENT_EXPORT(NETWORK_CPP) - BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault); - #endif // BUILDFLAG(IS_WIN) +@@ -155,6 +155,7 @@ BASE_DECLARE_FEATURE(kEnableLockCookieDatabaseByDefault); + COMPONENT_EXPORT(NETWORK_CPP) + BASE_DECLARE_FEATURE(kSRIMessageSignatureEnforcement); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -1965,7 +1990,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 -@@ -2932,4 +2932,5 @@ bool IsCanvasSharedBitmapConversionEnabled() { +@@ -2898,4 +2898,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { // // DO NOT ADD NEW FEATURES HERE. @@ -1974,7 +1999,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 -@@ -1886,6 +1886,7 @@ BLINK_COMMON_EXPORT bool IsCanvasSharedBitmapConversionEnabled(); +@@ -1874,6 +1874,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -1985,7 +2010,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 -@@ -503,4 +503,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, +@@ -454,4 +454,5 @@ BASE_FEATURE(kAsyncFullscreenWindowState, "AsyncFullscreenWindowState", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1994,7 +2019,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 -@@ -259,6 +259,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); +@@ -235,6 +235,7 @@ BASE_DECLARE_FEATURE(kWriteBookmarkWithoutTitle); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); diff --git a/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch b/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch index 27ac9054e69f21118f205c3ce943ca8c083b4580..9562750a189a2adbdab365a4681fa28d0073dbfe 100644 --- a/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/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 -@@ -63,6 +63,21 @@ found in the LICENSE file. +@@ -62,6 +62,21 @@ found in the LICENSE file. android:key="cromite_flags" android:title="@string/cromite_flags_title" app:url="@string/cromite_flags_url" /> @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis /** * Dispatches incoming intents to the appropriate activity based on the current configuration and * Intent fired. -@@ -266,6 +269,9 @@ public class LaunchIntentDispatcher { +@@ -267,6 +270,9 @@ public class LaunchIntentDispatcher { @OptIn(markerClass = ExperimentalAuthTab.class) public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; @@ -76,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -294,6 +300,10 @@ public class LaunchIntentDispatcher { +@@ -295,6 +301,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -1238,7 +1238,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1187,7 +1187,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java -@@ -969,6 +969,7 @@ public class CustomTabsConnection { +@@ -980,6 +980,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -133,7 +133,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java -@@ -39,6 +39,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -143,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito Custom Tabs specific customization * data. -@@ -116,6 +119,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -118,6 +121,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -153,7 +153,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -216,6 +222,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -217,6 +223,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -162,9 +162,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco + return true; + } if (!isIncognitoRequested(intent)) return false; - var session = CustomTabsSessionToken.getSessionTokenFromIntent(intent); + var session = SessionHolder.getSessionHolderFromIntent(intent); if (isIntentFromThirdPartyAllowed() -@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -330,6 +340,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -178,8 +178,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -57,6 +57,15 @@ import org.chromium.components.signin.identitymanager.ConsentLevel; - import org.chromium.components.user_prefs.UserPrefs; +@@ -60,6 +60,15 @@ import org.chromium.device.DeviceFeatureList; + import org.chromium.device.DeviceFeatureMap; import org.chromium.ui.text.SpanApplier; +import android.app.role.RoleManager; @@ -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; -@@ -104,6 +113,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -112,6 +121,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)); -@@ -326,6 +338,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -349,6 +361,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(); -@@ -342,6 +357,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -369,6 +384,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; } -@@ -364,6 +404,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -401,6 +441,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -266,7 +266,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -662,6 +662,7 @@ public abstract class ChromeFeatureList { +@@ -719,6 +719,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sLogoPolishAnimationKillSwitch = newCachedFlag(LOGO_POLISH_ANIMATION_KILL_SWITCH, true); public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); @@ -274,14 +274,14 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -792,6 +793,7 @@ public abstract class ChromeFeatureList { +@@ -883,6 +884,7 @@ public abstract class ChromeFeatureList { sLogoPolishAnimationKillSwitch, sNotificationTrampoline, sMagicStackAndroid, + sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, sMultiInstanceApplicationStatusCleanup, - sNavBarColorMatchesTabBackground, + sNavBarColorAnimation, diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java --- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java +++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAssociatedApp.java diff --git a/build/cromite_patches/Add-exit-menu-item.patch b/build/cromite_patches/Add-exit-menu-item.patch index 59881404651a24af37a0297b53178c9ca1f3fe19..bbdeae3474bc2459523e426c82fa90b3beded99b 100644 --- a/build/cromite_patches/Add-exit-menu-item.patch +++ b/build/cromite_patches/Add-exit-menu-item.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -160,6 +160,9 @@ found in the LICENSE file. +@@ -163,6 +163,9 @@ found in the LICENSE file. @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -189,6 +192,9 @@ found in the LICENSE file. +@@ -192,6 +195,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 -@@ -276,6 +276,8 @@ import java.util.Set; +@@ -292,6 +292,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; @@ -48,9 +48,9 @@ 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. -@@ -2887,6 +2889,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2374,6 +2375,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4385,6 +4385,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4388,6 +4388,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 4de1e5afa70025972426e607d26b49a598eca80c..830ffb01adf01e7ecdfb50a7bbb1186a2c2f2d61 100644 --- a/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/cromite_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" -@@ -536,6 +537,15 @@ AutocompleteController::AutocompleteController( +@@ -535,6 +536,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 -@@ -488,6 +488,9 @@ void HistoryURLProvider::Start(const AutocompleteInput& input, +@@ -490,6 +490,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" -@@ -631,6 +632,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -628,6 +629,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { @@ -88,15 +88,15 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/i18n/char_iterator.h" -@@ -625,6 +627,8 @@ GURL FixupURLInternal(const std::string& text, +@@ -655,6 +657,8 @@ GURL FixupURLInternal(const std::string& text, FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url); - if (chrome_url && !parts.host.is_valid()) + if (chrome_url && !parts.host.is_valid()) { + if (!base::CommandLine::ForCurrentProcess()->HasSwitch("omnibox-autocomplete-filtering") || + base::Contains(base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII("omnibox-autocomplete-filtering"), "chrome")) url.append(kChromeUIDefaultHost); + } FixupPort(trimmed, parts.port, &url); - FixupPath(trimmed, parts.path, &url); diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-omnibox-autocomplete-filtering.inc new file mode 100644 --- /dev/null diff --git a/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch index fbc9bdad064f0f3718833f75e26d853e30a0d8a9..845cff1577f93730c3e612c9919fec36ce33b036 100644 --- a/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -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" -@@ -172,6 +176,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -165,6 +169,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/cromite_patches/Add-flag-to-disable-IPv6-probes.patch b/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch index c1912cc387adab7ccb577c42220f8b16e0b59063..ac0aed5148d4f81d39e0ab1016fe5f29c4b2e7da 100644 --- a/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch @@ -45,14 +45,14 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1102,6 +1102,7 @@ component("net") { +@@ -1112,6 +1112,7 @@ component("net") { + "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//components/network_time/time_tracker", ++ "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", -+ "//components/network_session_configurator/common" + "//third_party/simdutf:simdutf", ] - - public_deps = [ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc diff --git a/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch b/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch index 3376982df3d7a72f100d70656f42cd52e27c1267..b981be038a131b48ebcd8694098480df0bcb6983 100644 --- a/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch @@ -11,6 +11,7 @@ enables IntentBlockExternalFormRedirectsNoGesture. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../java/res/xml/privacy_preferences.xml | 7 +++- + .../customtabs/CustomTabDelegateFactory.java | 2 ++ .../ExternalNavigationDelegateImpl.java | 4 ++- .../cromite/sAllowExternalIntentRequests.java | 33 +++++++++++++++++++ ...g-to-disable-external-intent-requests.grdp | 9 +++++ @@ -21,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ag-to-disable-external-intent-requests.inc | 13 ++++++++ ...t-Delete-block-external-form-redirects.inc | 15 +++++++++ ...ag-to-disable-external-intent-requests.inc | 3 ++ - 11 files changed, 116 insertions(+), 3 deletions(-) + 12 files changed, 118 insertions(+), 3 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAllowExternalIntentRequests.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-flag-to-disable-external-intent-requests.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-to-disable-external-intent-requests.inc @@ -31,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 -@@ -88,7 +88,12 @@ found in the LICENSE file. +@@ -87,7 +87,12 @@ found in the LICENSE file. android:title="@string/settings_incognito_tab_lock_title" android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false" /> @@ -45,10 +46,29 @@ 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/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; + import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; + import org.chromium.chrome.browser.flags.ActivityType; + import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import org.chromium.chrome.browser.flags.cromite.sAllowExternalIntentRequests; + import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; + import org.chromium.chrome.browser.fullscreen.FullscreenManager; + import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; +@@ -133,6 +134,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { + + @Override + public boolean shouldDisableAllExternalIntents() { ++ if (!sAllowExternalIntentRequests.getInstance().isEnabled()) return true; + return mActivityType == ActivityType.AUTH_TAB + && ChromeFeatureList.sCctAuthTabDisableAllExternalIntents.isEnabled(); + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -@@ -19,6 +19,7 @@ import org.chromium.base.IntentUtils; +@@ -20,6 +20,7 @@ import org.chromium.base.IntentUtils; import org.chromium.base.PackageManagerUtils; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.ChromeTabbedActivity2; @@ -56,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.password_manager.CctPasswordSavingMetricsRecorderBridge; import org.chromium.chrome.browser.safe_browsing.SafeBrowsingBridge; -@@ -105,7 +106,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat +@@ -107,7 +108,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override public boolean shouldDisableExternalIntentRequestsForUrl(GURL url) { @@ -173,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 -@@ -1532,6 +1532,12 @@ public class ExternalNavigationHandler { +@@ -1530,6 +1530,12 @@ public class ExternalNavigationHandler { || ignoreBackForwardNav(params); } @@ -186,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1588,6 +1594,21 @@ public class ExternalNavigationHandler { +@@ -1586,6 +1592,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/cromite_patches/Add-flag-to-disable-vibration.patch b/build/cromite_patches/Add-flag-to-disable-vibration.patch index 24f732e0fb983ea93a540848fa2011955965b763..c02d47a544fff5ead41e123e53b5a0c255d6cde6 100644 --- a/build/cromite_patches/Add-flag-to-disable-vibration.patch +++ b/build/cromite_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 -@@ -793,6 +793,10 @@ +@@ -853,6 +853,10 @@ status: {"Android": "stable"}, base_feature: "none", }, diff --git a/build/cromite_patches/Add-lifetime-options-for-permissions.patch b/build/cromite_patches/Add-lifetime-options-for-permissions.patch index 9ffcd0fc20e317ed18e8db6c67d0214e3b2ae791..ff1b03136e795d2fb739d64ec84d4828bec61695 100644 --- a/build/cromite_patches/Add-lifetime-options-for-permissions.patch +++ b/build/cromite_patches/Add-lifetime-options-for-permissions.patch @@ -64,7 +64,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../site_settings/SingleWebsiteSettings.java | 9 ++ .../android/website_preference_bridge.cc | 2 +- .../strings/android/browser_ui_strings.grd | 5 ++ - .../core/browser/content_settings_utils.cc | 36 ++++++++ + .../core/browser/content_settings_utils.cc | 42 ++++++++-- .../core/browser/content_settings_utils.h | 6 ++ .../core/common/content_settings_enums.mojom | 9 ++ .../page_info/PageInfoController.java | 4 +- @@ -88,7 +88,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(+), 63 deletions(-) + 36 files changed, 490 insertions(+), 69 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 @@ -242,7 +242,7 @@ diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrom diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc --- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc +++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc -@@ -660,7 +660,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { +@@ -664,7 +664,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { delegate_->Accept(); break; case Action::kAllowThisTime: @@ -289,7 +289,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -589,6 +589,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -591,6 +591,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } } @@ -301,7 +301,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1154,6 +1159,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1156,6 +1161,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } @@ -315,7 +315,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -199,7 +199,7 @@ void GetOrigins(JNIEnv* env, +@@ -200,7 +200,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -327,7 +327,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -646,6 +646,11 @@ +@@ -637,6 +637,11 @@ URL truncated @@ -342,7 +342,7 @@ diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/comp diff --git a/components/content_settings/core/browser/content_settings_utils.cc b/components/content_settings/core/browser/content_settings_utils.cc --- a/components/content_settings/core/browser/content_settings_utils.cc +++ b/components/content_settings/core/browser/content_settings_utils.cc -@@ -161,6 +161,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { +@@ -160,6 +160,42 @@ bool IsConstraintPersistent(const ContentSettingConstraints& constraints) { return constraints.session_model() == mojom::SessionModel::DURABLE; } @@ -385,6 +385,26 @@ 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() { + ContentSettingsType::CAPTURED_SURFACE_CONTROL, + #endif + ContentSettingsType::KEYBOARD_LOCK, +- ContentSettingsType::GEOLOCATION, +- ContentSettingsType::MEDIASTREAM_MIC, +- ContentSettingsType::MEDIASTREAM_CAMERA, + ContentSettingsType::HAND_TRACKING, + ContentSettingsType::SMART_CARD_DATA, + }}; +@@ -274,9 +307,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { + ContentSettingsType::CAPTURED_SURFACE_CONTROL, + #endif + ContentSettingsType::KEYBOARD_LOCK, +- ContentSettingsType::GEOLOCATION, +- ContentSettingsType::MEDIASTREAM_MIC, +- ContentSettingsType::MEDIASTREAM_CAMERA, + ContentSettingsType::HAND_TRACKING, + }}; + return *types; diff --git a/components/content_settings/core/browser/content_settings_utils.h b/components/content_settings/core/browser/content_settings_utils.h --- a/components/content_settings/core/browser/content_settings_utils.h +++ b/components/content_settings/core/browser/content_settings_utils.h @@ -423,7 +443,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 -@@ -424,9 +424,9 @@ public class PageInfoController +@@ -383,9 +383,9 @@ public class PageInfoController String name, String nameMidSentence, int type, @@ -481,7 +501,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -166,6 +166,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -165,6 +165,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -490,7 +510,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -174,6 +176,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -173,6 +175,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -499,7 +519,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -190,7 +194,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -189,7 +193,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -509,7 +529,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -203,7 +208,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -202,7 +207,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -522,7 +542,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1201,6 +1201,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1206,6 +1206,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -933,7 +953,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -267,6 +267,17 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const { +@@ -251,6 +251,17 @@ bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } @@ -951,7 +971,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, -@@ -513,7 +524,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -497,7 +508,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -961,7 +981,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); -@@ -528,13 +540,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -512,13 +524,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) { @@ -980,7 +1000,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -602,11 +615,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -586,11 +599,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -1009,7 +1029,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -646,6 +675,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -630,6 +659,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -1025,7 +1045,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -655,6 +693,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -639,6 +677,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); @@ -1212,7 +1232,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission diff --git a/components/permissions/permission_request_manager.cc b/components/permissions/permission_request_manager.cc --- a/components/permissions/permission_request_manager.cc +++ b/components/permissions/permission_request_manager.cc -@@ -172,7 +172,7 @@ void PermissionRequestManager::AddRequest( +@@ -171,7 +171,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1221,7 +1241,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -249,7 +249,7 @@ void PermissionRequestManager::AddRequest( +@@ -246,7 +246,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { @@ -1230,7 +1250,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -620,7 +620,8 @@ void PermissionRequestManager::Accept() { +@@ -609,7 +609,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1240,7 +1260,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -638,7 +639,7 @@ void PermissionRequestManager::Accept() { +@@ -627,7 +628,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1249,7 +1269,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -651,7 +652,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -640,7 +641,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1259,7 +1279,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -659,6 +661,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -648,6 +650,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1275,7 +1295,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -683,7 +694,7 @@ void PermissionRequestManager::Deny() { +@@ -670,7 +681,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1284,7 +1304,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1264,32 +1275,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1255,32 +1266,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1327,7 +1347,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1550,7 +1561,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1541,7 +1552,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch index 36c1cc1a6a7701d27f3c0516bc84f01ce66bee75..9d380f90cc752df079a1a4e781ae6559cdcc3ed0 100644 --- a/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -10,11 +10,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/android/bookmark_bridge.cc | 44 +++++++++++- .../bookmarks/android/bookmark_bridge.h | 8 +++ .../browser/bookmarks/bookmark_html_writer.cc | 11 ++- - .../bookmark_merged_surface_service.cc | 2 + + .../bookmark_merged_surface_service.cc | 3 + + .../permanent_folder_ordering_tracker.cc | 2 + .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 + .../bookmark_ui_operations_helper.cc | 2 + - .../views/bookmarks/bookmark_menu_delegate.cc | 2 + components/bookmark_bar_strings.grdp | 6 ++ .../bookmarks/browser/bookmark_codec.cc | 20 +++++- components/bookmarks/browser/bookmark_codec.h | 7 +- @@ -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, 247 insertions(+), 15 deletions(-) + 25 files changed, 248 insertions(+), 15 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -45,7 +45,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -183,6 +187,9 @@ found in the LICENSE file. +@@ -186,6 +190,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 -@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.base.ColdStartTracker; +@@ -96,6 +96,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; -@@ -2919,6 +2920,8 @@ public class ChromeTabbedActivity extends ChromeActivity mObservers = new ObserverList<>(); + private static final String TAG = "BookmarkBridge"; + private long mNativeBookmarkBridge; - private boolean mIsDestroyed; + private Profile mProfile; private boolean mIsDoingExtensiveChanges; -@@ -395,6 +403,16 @@ class BookmarkBridge { +@@ -411,6 +419,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -150,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** Returns Id representing the special "other" folder from bookmark model. */ public BookmarkId getOtherFolderId() { ThreadUtils.assertOnUiThread(); -@@ -1083,6 +1101,50 @@ class BookmarkBridge { +@@ -1132,6 +1150,50 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -201,7 +203,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Helper method to mark an item as read. * -@@ -1331,6 +1393,9 @@ class BookmarkBridge { +@@ -1339,6 +1401,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -211,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( -@@ -1352,6 +1417,8 @@ class BookmarkBridge { +@@ -1360,6 +1425,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -223,7 +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 -@@ -184,7 +184,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver { +@@ -185,7 +185,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver { JNIEnv* env = AttachCurrentThread(); Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(), @@ -232,7 +234,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse result == Result::kSuccess); delete this; } -@@ -355,6 +355,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { +@@ -363,6 +363,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { return bookmark_model_->account_mobile_node() != nullptr; } @@ -266,7 +268,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -467,6 +494,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -475,6 +502,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -274,7 +276,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -560,6 +588,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -568,6 +596,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -284,7 +286,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)) { -@@ -1261,6 +1292,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1269,6 +1300,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -373,7 +375,7 @@ diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/b diff --git a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc --- a/chrome/browser/bookmarks/bookmark_merged_surface_service.cc +++ b/chrome/browser/bookmarks/bookmark_merged_surface_service.cc -@@ -43,6 +43,8 @@ std::optional GetIfPermanentFolderType( +@@ -44,6 +44,8 @@ std::optional GetIfPermanentFolderType( case BookmarkNode::Type::URL: NOTREACHED(); @@ -382,6 +384,33 @@ 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) { + switch (type) { + case bookmarks::BookmarkNode::URL: + case bookmarks::BookmarkNode::FOLDER: ++ case bookmarks::BookmarkNode::TABS_COLLECTION: + NOTREACHED(); + + case bookmarks::BookmarkNode::BOOKMARK_BAR: +@@ -168,6 +169,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { + switch (tracked_type_) { + case bookmarks::BookmarkNode::URL: + case bookmarks::BookmarkNode::FOLDER: ++ case bookmarks::BookmarkNode::TABS_COLLECTION: + NOTREACHED(); + + case bookmarks::BookmarkNode::BOOKMARK_BAR: 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 @@ -406,7 +435,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 -@@ -4512,6 +4512,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4515,6 +4515,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -419,31 +448,19 @@ 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 -@@ -54,6 +54,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( +@@ -137,6 +137,8 @@ ui::mojom::DragOperation BookmarkUIOperationsHelper::DropBookmarks( if (is_reorder) { base::UmaHistogramEnumeration("Bookmarks.ReorderDropTarget", target); - switch (GetParentType()) { + switch (target_parent()->GetType()) { + case bookmarks::BookmarkNode::TABS_COLLECTION: + break; case bookmarks::BookmarkNode::URL: NOTREACHED(); case bookmarks::BookmarkNode::FOLDER: -diff --git a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc ---- a/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc -+++ b/chrome/browser/ui/views/bookmarks/bookmark_menu_delegate.cc -@@ -103,6 +103,8 @@ BookmarkParentFolder GetBookmarkParentFolderForNode( - return BookmarkParentFolder::OtherFolder(); - case bookmarks::BookmarkNode::MOBILE: - return BookmarkParentFolder::MobileFolder(); -+ case bookmarks::BookmarkNode::TABS_COLLECTION: -+ NOTREACHED(); - } - NOTREACHED(); - } diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp --- a/components/bookmark_bar_strings.grdp +++ b/components/bookmark_bar_strings.grdp -@@ -20,6 +20,9 @@ +@@ -15,6 +15,9 @@ Mobile bookmarks @@ -453,7 +470,7 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri Other bookmarks -@@ -34,6 +37,9 @@ +@@ -29,6 +32,9 @@ Mobile Bookmarks @@ -551,7 +568,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar // Need to reset the title as the title is persisted and restored from // the file. -@@ -477,12 +489,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( +@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -702,7 +719,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1134,6 +1134,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1147,6 +1147,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(); @@ -713,7 +730,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 -@@ -149,6 +149,12 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -151,6 +151,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). const BookmarkNode* account_mobile_node() const; @@ -726,7 +743,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_; -@@ -566,6 +572,7 @@ class BookmarkModel : public BookmarkUndoProvider, +@@ -592,6 +598,7 @@ class BookmarkModel : public BookmarkUndoProvider, raw_ptr account_bookmark_bar_node_ = nullptr; raw_ptr account_other_node_ = nullptr; raw_ptr account_mobile_node_ = nullptr; @@ -860,7 +877,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc -@@ -444,6 +444,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( +@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( case bookmarks::BookmarkNode::BOOKMARK_BAR: case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::MOBILE: diff --git a/build/cromite_patches/Add-menu-item-to-view-source.patch b/build/cromite_patches/Add-menu-item-to-view-source.patch index e7055d65810d1a086f0ed134a844e72c7adcd595..efe0eb24294e93d7346c19060a2c1d1be042018a 100644 --- a/build/cromite_patches/Add-menu-item-to-view-source.patch +++ b/build/cromite_patches/Add-menu-item-to-view-source.patch @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -113,6 +113,9 @@ found in the LICENSE file. +@@ -116,6 +116,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 -@@ -2952,6 +2952,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2518,6 +2518,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -575,6 +575,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -580,6 +580,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isNativePage, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isNativePage); -@@ -1286,6 +1287,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1281,6 +1282,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate findInPageMenuRow.setVisible(itemVisible); } @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -300,6 +300,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -303,6 +303,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isNativePage); @@ -115,8 +115,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust 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 -@@ -312,6 +312,10 @@ CHAR_LIMIT guidelines: - USB +@@ -315,6 +315,10 @@ CHAR_LIMIT guidelines: + Collaboration + diff --git a/build/cromite_patches/Add-option-to-force-tablet-UI.patch b/build/cromite_patches/Add-option-to-force-tablet-UI.patch index cd8bbd2f225729919cb3cf77719607c618f094ac..31e5829c94b02bf8a09f803628960b2aeaade7f7 100644 --- a/build/cromite_patches/Add-option-to-force-tablet-UI.patch +++ b/build/cromite_patches/Add-option-to-force-tablet-UI.patch @@ -7,37 +7,37 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../layout/custom_tabs_control_container.xml | 2 +- .../java/res/layout/recent_tabs_page.xml | 2 +- .../java/res/values-sw600dp/dimens.xml | 4 ++-- - chrome/android/java/res/values/dimens.xml | 6 ++++- + chrome/android/java/res/values/dimens.xml | 6 +++++- .../browser/ChromeBaseAppCompatActivity.java | 3 +++ - .../chrome/browser/WarmupManager.java | 5 +++- - .../settings/AccessibilitySettings.java | 13 ++++++++++ - .../ChromeAccessibilitySettingsDelegate.java | 19 +++++++++++++++ + .../chrome/browser/WarmupManager.java | 5 ++++- + .../ChromeAccessibilitySettingsDelegate.java | 19 ++++++++++++++++++ .../chrome/browser/app/ChromeActivity.java | 4 +++- - .../overlays/strip/StripLayoutHelper.java | 10 ++++++-- - .../strip/StripLayoutHelperManager.java | 6 ++++- + .../overlays/strip/StripLayoutHelper.java | 10 ++++++++-- + .../strip/StripLayoutHelperManager.java | 6 +++++- .../init/ChromeBrowserInitializer.java | 2 ++ .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +++- - .../chrome/browser/ui/RootUiCoordinator.java | 6 ++++- + .../chrome/browser/ui/RootUiCoordinator.java | 6 +++++- chrome/browser/preferences/BUILD.gn | 1 + .../preferences/ChromePreferenceKeys.java | 1 + - .../preferences/ChromeSharedPreferences.java | 12 ++++++++++ + .../preferences/ChromeSharedPreferences.java | 12 +++++++++++ .../LegacyChromePreferenceKeys.java | 1 + .../AppHeaderCoordinator.java | 2 ++ .../omnibox/LocationBarCoordinator.java | 2 +- - .../strings/android_chrome_strings.grd | 7 ++++++ - .../java/res/layout/control_container.xml | 10 ++++---- + .../strings/android_chrome_strings.grd | 7 +++++++ + .../java/res/layout/control_container.xml | 8 ++++---- .../java/res/layout/toolbar_tablet.xml | 2 +- - .../java/res/values-sw600dp/dimens.xml | 5 ++-- - .../toolbar/java/res/values/dimens.xml | 6 +++-- + .../java/res/values-sw600dp/dimens.xml | 5 +++-- + .../toolbar/java/res/values/dimens.xml | 6 ++++-- .../browser/toolbar/ControlContainer.java | 2 +- - .../toolbar/top/ToolbarControlContainer.java | 24 ++++++++++++++++++- - .../browser/toolbar/top/ToolbarLayout.java | 5 +++- + .../toolbar/top/ToolbarControlContainer.java | 20 ++++++++++++++++++- + .../browser/toolbar/top/ToolbarLayout.java | 5 ++++- .../tab_strip/HeightTransitionHandler.java | 2 ++ - .../TabStripTransitionCoordinator.java | 6 ++++- - .../res/xml/accessibility_preferences.xml | 5 ++++ - .../AccessibilitySettingsDelegate.java | 11 +++++++++ - .../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++ - 33 files changed, 177 insertions(+), 27 deletions(-) + .../TabStripTransitionCoordinator.java | 6 +++++- + .../res/xml/accessibility_preferences.xml | 5 +++++ + .../accessibility/AccessibilitySettings.java | 13 ++++++++++++ + .../AccessibilitySettingsDelegate.java | 2 ++ + .../chromium/ui/base/DeviceFormFactor.java | 14 +++++++++++++ + 33 files changed, 163 insertions(+), 26 deletions(-) diff --git a/chrome/android/java/res/layout/custom_tabs_control_container.xml b/chrome/android/java/res/layout/custom_tabs_control_container.xml --- a/chrome/android/java/res/layout/custom_tabs_control_container.xml @@ -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 -@@ -115,9 +115,13 @@ found in the LICENSE file. +@@ -125,9 +125,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 -@@ -51,6 +51,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -57,6 +57,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; -@@ -115,6 +116,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -128,6 +129,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; -@@ -469,7 +470,9 @@ public class WarmupManager { +@@ -473,7 +474,9 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -137,66 +137,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j } return mainView; } catch (InflateException e) { -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettings.java -@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.preferences.Pref; - import org.chromium.chrome.browser.settings.SettingsNavigationFactory; - import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; - import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate; -+import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; - import org.chromium.components.browser_ui.accessibility.FontSizePrefs; - import org.chromium.components.browser_ui.accessibility.PageZoomPreference; - import org.chromium.components.browser_ui.accessibility.PageZoomUma; -@@ -50,6 +51,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment - public static final String PREF_ZOOM_INFO = "zoom_info"; - public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; - -+ private BooleanPreferenceDelegate mForceTabletUIDelegate; -+ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; -+ - private PageZoomPreference mPageZoomDefaultZoomPref; - private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; - private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -124,6 +128,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment - mPrefService.getBoolean(Pref.READER_FOR_ACCESSIBILITY)); - readerForAccessibilityPref.setOnPreferenceChangeListener(this); - -+ ChromeSwitchPreference forceTabletUiPref = -+ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI); -+ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); -+ forceTabletUiPref.setChecked(mForceTabletUIDelegate.isEnabled()); -+ forceTabletUiPref.setOnPreferenceChangeListener(this); -+ - Preference captions = findPreference(PREF_CAPTIONS); - captions.setOnPreferenceClickListener( - preference -> { -@@ -185,6 +195,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment - public boolean onPreferenceChange(Preference preference, Object newValue) { - if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { - mFontSizePrefs.setForceEnableZoom((Boolean) newValue); -+ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { -+ mForceTabletUIDelegate.setEnabled((Boolean) newValue); -+ mDelegate.requestRestart(getActivity()); - } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { - mPrefService.setBoolean(Pref.READER_FOR_ACCESSIBILITY, (Boolean) newValue); - } else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) { diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java -@@ -38,6 +38,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting +@@ -62,6 +62,25 @@ public class ChromeAccessibilitySettingsDelegate implements AccessibilitySetting } } + private static class ForceTabletUIDelegate implements BooleanPreferenceDelegate { + @Override -+ public boolean isEnabled() { ++ public boolean getValue() { + return ChromeSharedPreferences.getInstance().readBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false); + } + + @Override -+ public void setEnabled(boolean value) { ++ public void setValue(boolean value) { + ChromeSharedPreferences.getInstance().writeBoolean( + ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, value); + } @@ -213,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 -@@ -850,7 +850,9 @@ public abstract class ChromeActivity +@@ -757,7 +757,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) { @@ -227,15 +183,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -99,6 +99,7 @@ import org.chromium.components.feature_engagement.Tracker; - import org.chromium.components.prefs.PrefService; +@@ -112,6 +112,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; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -4277,8 +4278,13 @@ public class StripLayoutHelper +@@ -3999,8 +4000,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(); @@ -262,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; -@@ -439,7 +440,10 @@ public class StripLayoutHelperManager +@@ -438,7 +439,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -296,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 -@@ -576,7 +576,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -602,7 +602,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -310,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 -@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -105,6 +105,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; @@ -319,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; -@@ -1773,7 +1775,9 @@ public class RootUiCoordinator +@@ -1788,7 +1790,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -333,7 +289,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn --- a/chrome/browser/preferences/BUILD.gn +++ b/chrome/browser/preferences/BUILD.gn -@@ -26,6 +26,7 @@ android_library("java") { +@@ -25,6 +25,7 @@ android_library("java") { "//components/cached_flags:java", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/jni_zero:jni_zero_java", @@ -344,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 -@@ -262,6 +262,7 @@ public final class ChromePreferenceKeys { +@@ -274,6 +274,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"; @@ -395,26 +351,26 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java --- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java -@@ -34,6 +34,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.DesktopWi +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils.Windowing import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.InsetObserver; - import org.chromium.ui.InsetObserver.WindowInsetObserver; + import org.chromium.ui.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.InsetsRectProvider; -@@ -273,6 +274,7 @@ public class AppHeaderCoordinator - InsetObserver insetObserver, +@@ -259,6 +260,7 @@ public class AppHeaderCoordinator + private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow( InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult) { + if (DeviceFormFactor.isForceTabletUI()) return DesktopWindowHeuristicResult.IN_DESKTOP_WINDOW; @DesktopWindowHeuristicResult int newResult; - assert insetObserver.getLastRawWindowInsets() != null + Insets captionBarInset = insetsRectProvider.getCachedInset(); 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 -@@ -786,7 +786,7 @@ public class LocationBarCoordinator +@@ -814,7 +814,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -479,15 +435,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container android:layout_width="match_parent" android:layout_height="@dimen/toolbar_height_no_shadow" android:layout="@layout/find_toolbar" /> -@@ -55,7 +55,7 @@ found in the LICENSE file. - android:id="@+id/target_view_stub" - android:inflatedId="@+id/toolbar_drag_drop_target_view" - android:layout_width="match_parent" -- android:layout_marginTop="@dimen/tab_strip_height" -+ android:layout_marginTop="@dimen/tab_strip_height_cromite" - android:layout_height="@dimen/toolbar_height_no_shadow" - android:layout="@layout/drag_drop_target_view" /> - diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml --- a/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml +++ b/chrome/browser/ui/android/toolbar/java/res/layout/toolbar_tablet.xml @@ -552,7 +499,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.PorterDuff; import android.graphics.Rect; -@@ -143,8 +144,29 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -143,8 +144,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout } @Override @@ -575,10 +522,6 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + view = findViewById(R.id.find_toolbar_stub); + if (view != null) + ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; -+ -+ view = findViewById(R.id.target_view_stub); -+ if (view != null) -+ ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; + } mToolbarContainer = (ToolbarViewResourceFrameLayout) findViewById(R.id.toolbar_container); @@ -616,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; -@@ -542,6 +543,7 @@ class HeightTransitionHandler { +@@ -544,6 +545,7 @@ class HeightTransitionHandler { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } @@ -627,7 +570,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java -@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; +@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; @@ -662,40 +605,68 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil +diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java ++++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +@@ -25,6 +25,7 @@ import org.chromium.content_public.browser.ContentFeatureList; + import org.chromium.content_public.browser.ContentFeatureMap; + + import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; ++import org.chromium.components.browser_ui.accessibility.AccessibilitySettingsDelegate.BooleanPreferenceDelegate; + + /** Fragment to keep track of all the accessibility related preferences. */ + public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -39,6 +40,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + public static final String PREF_ZOOM_INFO = "zoom_info"; + public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; + ++ private BooleanPreferenceDelegate mForceTabletUIDelegate; ++ static final String PREF_FORCE_TABLET_UI = "force_tablet_ui"; ++ + private PageZoomPreference mPageZoomDefaultZoomPref; + private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; + private ChromeSwitchPreference mPageZoomAlwaysShowPref; +@@ -105,6 +109,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + mDelegate.getReaderAccessibilityDelegate().getValue()); + readerForAccessibilityPref.setOnPreferenceChangeListener(this); + ++ ChromeSwitchPreference forceTabletUiPref = ++ (ChromeSwitchPreference) findPreference(PREF_FORCE_TABLET_UI); ++ mForceTabletUIDelegate = mDelegate.getForceTabletUIDelegate(); ++ forceTabletUiPref.setChecked(mForceTabletUIDelegate.getValue()); ++ forceTabletUiPref.setOnPreferenceChangeListener(this); ++ + Preference captions = findPreference(PREF_CAPTIONS); + captions.setOnPreferenceClickListener( + preference -> { +@@ -165,6 +175,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { + mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); ++ } else if (PREF_FORCE_TABLET_UI.equals(preference.getKey())) { ++ mForceTabletUIDelegate.setValue((Boolean) newValue); ++ mDelegate.requestRestart(getActivity()); + } else if (PREF_READER_FOR_ACCESSIBILITY.equals(preference.getKey())) { + mDelegate.getReaderAccessibilityDelegate().setValue((Boolean) newValue); + } else if (PREF_PAGE_ZOOM_DEFAULT_ZOOM.equals(preference.getKey())) { diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettingsDelegate.java -@@ -11,6 +11,15 @@ import org.chromium.content_public.browser.BrowserContextHandle; - * embedder-specific logic. - */ - public interface AccessibilitySettingsDelegate { -+ /** An interface to control a single boolean preference. */ -+ interface BooleanPreferenceDelegate { -+ /** @return whether the preference is enabled. */ -+ boolean isEnabled(); -+ -+ /** Called when the preference value is changed. */ -+ void setEnabled(boolean value); -+ } -+ - /** An interface to control a single integer preference. */ - interface IntegerPreferenceDelegate { - /** -@@ -25,6 +34,8 @@ public interface AccessibilitySettingsDelegate { - /** @return The BrowserContextHandle that should be used to read and update settings. */ +@@ -39,6 +39,8 @@ public interface AccessibilitySettingsDelegate { + */ BrowserContextHandle getBrowserContextHandle(); + BooleanPreferenceDelegate getForceTabletUIDelegate(); + /** - * @return the InterPreferenceDelegate instance that should be used for reading and setting the - * text size contrast value for accessibility settings. Return null to omit the preference. + * @return boolean value specifying if the Image Descriptions user setting should be shown. + */ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java -@@ -49,6 +49,14 @@ public class DeviceFormFactor { - /** See {@link #setIsTabletForTesting(boolean)}. */ - private static Boolean sIsTabletForTesting; +@@ -69,6 +69,14 @@ public class DeviceFormFactor { + return BuildConfig.IS_DESKTOP_ANDROID; + } + private static boolean mForceTabletUI = false; + public static void setForceTabletUI(boolean forceTabletUI) { @@ -708,7 +679,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui /** * Each activity could be on a different display, and this will just tell you whether the * display associated with the application context is "tablet sized". Use {@link -@@ -57,6 +65,7 @@ public class DeviceFormFactor { +@@ -77,6 +85,7 @@ public class DeviceFormFactor { @CalledByNative @Deprecated public static boolean isTablet() { @@ -716,7 +687,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui if (sIsTabletForTesting != null) { return sIsTabletForTesting; } -@@ -87,6 +96,7 @@ public class DeviceFormFactor { +@@ -107,6 +116,7 @@ public class DeviceFormFactor { * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { @@ -724,7 +695,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } -@@ -122,6 +132,7 @@ public class DeviceFormFactor { +@@ -142,6 +152,7 @@ public class DeviceFormFactor { * @return The screen width bucket the device is in (see constants at the top of this class). */ private static int detectScreenWidthBucket(Context context) { @@ -732,7 +703,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -129,6 +140,7 @@ public class DeviceFormFactor { +@@ -149,6 +160,7 @@ public class DeviceFormFactor { ThreadUtils.assertOnUiThread(); Context context = windowAndroid.getContext().get(); if (context == null) return 0; @@ -740,7 +711,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -138,6 +150,7 @@ public class DeviceFormFactor { +@@ -158,6 +170,7 @@ public class DeviceFormFactor { */ @UiThread public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) { @@ -748,7 +719,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context)); } -@@ -146,6 +159,7 @@ public class DeviceFormFactor { +@@ -166,6 +179,7 @@ public class DeviceFormFactor { * layout. */ public static int getMinimumTabletWidthPx(DisplayAndroid display) { diff --git a/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch index 2da7eec467a8b7cd9743d429f682b9910bc833b2..7b156254d5db594a80b165c867a778fa633ccc24 100644 --- a/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/cromite_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 -@@ -91,6 +91,11 @@ found in the LICENSE file. +@@ -102,6 +102,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1590,8 +1591,10 @@ public class ChromeTabbedActivity extends ChromeActivityBEGIN_LINKdelete the Chrome d +@@ -5539,6 +5539,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d IMAGE diff --git a/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch b/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch index 1d46a5292ca44845496cdcbd80dd4993d1b1bb9a..f9e160516578f2737731a18e4378595c8c2afd8a 100644 --- a/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch @@ -6,9 +6,10 @@ And allow use about:blank as default homepage License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- + .../tab_management/TabGridDialogMediator.java | 11 ++++++++++- .../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++- - .../browser/tasks/tab_management/TabUiUtils.java | 9 ++++++++- .../java/res/xml/homepage_preferences.xml | 5 +++++ + .../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++- .../chrome/browser/homepage/HomepageManager.java | 16 ++++++++++++++++ .../homepage/settings/HomepageSettings.java | 12 ++++++++++++ .../chrome/browser/metrics/LaunchMetrics.java | 1 - @@ -18,12 +19,42 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/strings/android_chrome_strings.grd | 3 +++ chrome/browser/ui/browser_ui_prefs.cc | 2 ++ chrome/common/pref_names.h | 4 ++++ - 12 files changed, 67 insertions(+), 3 deletions(-) + 13 files changed, 79 insertions(+), 4 deletions(-) +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; + import java.util.Objects; + import java.util.Optional; + ++import org.chromium.chrome.browser.homepage.HomepageManager; ++import org.chromium.url.GURL; ++ + /** + * 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 + return; + } + ++ String url = UrlConstants.NTP_URL; ++ if (UrlConstants.NTP_URL.equals(url) ++ && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { ++ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); ++ url = gurl != null ? gurl.getSpec() : url; ++ } + TabGroupUtils.openUrlInGroup( + mCurrentTabGroupModelFilterSupplier.get(), +- UrlConstants.NTP_URL, ++ url, + currentTab.getId(), + TabLaunchType.FROM_TAB_GROUP_UI); + RecordUserAction.record("MobileNewTabOpened." + mComponentName); diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -22,6 +22,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.collaboration.CollaborationServiceFactory; import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -31,7 +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; -@@ -408,10 +409,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, +@@ -367,10 +368,15 @@ public class TabGroupUiMediator implements BackPressHandler, ThemeColorObserver, assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -48,33 +79,6 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach); RecordUserAction.record( -diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java ---- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java -+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiUtils.java -@@ -48,6 +48,8 @@ import org.chromium.components.tab_groups.TabGroupColorId; - import org.chromium.content_public.browser.LoadUrlParams; - import org.chromium.ui.modaldialog.ModalDialogManager; - import org.chromium.ui.modaldialog.ModalDialogUtils; -+import org.chromium.chrome.browser.homepage.HomepageManager; -+import org.chromium.url.GURL; - - import java.util.List; - -@@ -210,8 +212,13 @@ public class TabUiUtils { - List relatedTabs = filter.getRelatedTabList(tabId); - assert relatedTabs.size() > 0; - -+ String url = UrlConstants.NTP_URL; -+ if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { -+ GURL gurl = HomepageManager.getInstance().getHomepageGurl(); -+ url = gurl != null ? gurl.getSpec() : url; -+ } - Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); -- tabCreator.createNewTab(new LoadUrlParams(UrlConstants.NTP_URL), type, parentTabToAttach); -+ tabCreator.createNewTab(new LoadUrlParams(url), type, parentTabToAttach); - } - - /** diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/android/java/res/xml/homepage_preferences.xml --- a/chrome/android/java/res/xml/homepage_preferences.xml +++ b/chrome/android/java/res/xml/homepage_preferences.xml @@ -90,6 +94,36 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro Last hour @@ -226,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 -@@ -89,6 +89,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kShowForwardButton, true, GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); @@ -238,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 -@@ -1339,6 +1339,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; +@@ -1342,6 +1342,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; // toolbar. inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; diff --git a/build/cromite_patches/Add-search-engine.patch b/build/cromite_patches/Add-search-engine.patch index eaf3d962574449d7c3ae8b622cc0ccd705c63936..3b6fa1eaea161978c01931ecfffeb856e73fd0b8 100644 --- a/build/cromite_patches/Add-search-engine.patch +++ b/build/cromite_patches/Add-search-engine.patch @@ -60,7 +60,7 @@ 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 -@@ -133,6 +133,16 @@ +@@ -130,6 +130,16 @@ ] }, @@ -77,7 +77,7 @@ diff --git a/components/search_engines/prepopulated_engines.json b/components/se "ecosia": { "name": "Ecosia", "keyword": "ecosia.org", -@@ -208,6 +218,27 @@ +@@ -205,6 +215,27 @@ "id": 111 }, diff --git a/build/cromite_patches/Add-site-engagement-flag.patch b/build/cromite_patches/Add-site-engagement-flag.patch index 52b7ec7fbad8a5b4a64c64514a54ee5396cc8998..8b3aee18f498a6804acde52a82c7f23ea5cb414e 100644 --- a/build/cromite_patches/Add-site-engagement-flag.patch +++ b/build/cromite_patches/Add-site-engagement-flag.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -162,6 +162,7 @@ +@@ -164,6 +164,7 @@ #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" @@ -68,15 +68,15 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc -@@ -24,6 +24,7 @@ +@@ -23,6 +23,7 @@ + #include "base/task/single_thread_task_runner.h" #include "base/time/clock.h" #include "build/build_config.h" - #include "build/chromeos_buildflags.h" +#include "components/site_engagement/core/features.h" #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" -@@ -212,6 +213,8 @@ TrackerImpl::TrackerImpl( +@@ -211,6 +212,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { diff --git a/build/cromite_patches/Add-support-for-writing-URIs.patch b/build/cromite_patches/Add-support-for-writing-URIs.patch index 6e776b78d393eadbfce80f7e57c533931fb18329..4b1848148d606c83c47244ce541a08bdd283d639 100644 --- a/build/cromite_patches/Add-support-for-writing-URIs.patch +++ b/build/cromite_patches/Add-support-for-writing-URIs.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc -@@ -130,6 +130,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector( +@@ -119,6 +119,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, Time::FromMillisecondsSinceUnixEpoch(last_modified)); } @@ -31,7 +31,7 @@ diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils. + std::string GetContentUriMimeType(const FilePath& content_uri) { JNIEnv* env = android::AttachCurrentThread(); - ScopedJavaLocalRef j_mime = + return Java_ContentUriUtils_getMimeType(env, content_uri.value()); diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h --- a/base/android/content_uri_utils.h +++ b/base/android/content_uri_utils.h @@ -49,7 +49,7 @@ diff --git a/base/android/content_uri_utils.h b/base/android/content_uri_utils.h diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base/android/java/src/org/chromium/base/ContentUriUtils.java --- a/base/android/java/src/org/chromium/base/ContentUriUtils.java +++ b/base/android/java/src/org/chromium/base/ContentUriUtils.java -@@ -10,6 +10,7 @@ import android.content.res.AssetFileDescriptor; +@@ -12,6 +12,7 @@ import android.content.res.AssetFileDescriptor; import android.database.Cursor; import android.net.Uri; import android.os.Build; @@ -57,7 +57,7 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base import android.provider.DocumentsContract; import android.provider.MediaStore; import android.text.TextUtils; -@@ -26,6 +27,9 @@ import org.jni_zero.NativeMethods; +@@ -30,6 +31,9 @@ import org.chromium.build.annotations.Nullable; import java.io.IOException; import java.util.List; @@ -66,8 +66,8 @@ diff --git a/base/android/java/src/org/chromium/base/ContentUriUtils.java b/base + /** This class provides methods to access content URI schemes. */ @JNINamespace("base") - public abstract class ContentUriUtils { -@@ -59,6 +63,36 @@ public abstract class ContentUriUtils { + @NullMarked +@@ -64,6 +68,36 @@ public abstract class ContentUriUtils { return -1; } diff --git a/build/cromite_patches/Add-webGL-site-setting.patch b/build/cromite_patches/Add-webGL-site-setting.patch index e16eca76263df6a1484ab967e4e0d297ea1abdce..c532b36c27bf97f8c209f561d81a39f7b82eb83e 100644 --- a/build/cromite_patches/Add-webGL-site-setting.patch +++ b/build/cromite_patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -117,6 +117,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -116,6 +116,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -290,6 +290,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -291,6 +291,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_); -@@ -559,25 +566,6 @@ static String ExtractWebGLContextCreationError( +@@ -560,25 +567,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('.'); -@@ -637,6 +625,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -638,6 +626,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 -@@ -1929,6 +1929,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, +@@ -1926,6 +1926,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/cromite_patches/Add-webRTC-site-settings.patch b/build/cromite_patches/Add-webRTC-site-settings.patch index ec5144bd37cba78b8cead75959f6aa5e50c01911..2edaf11e3e729751582521a054f36accc8559aca 100644 --- a/build/cromite_patches/Add-webRTC-site-settings.patch +++ b/build/cromite_patches/Add-webRTC-site-settings.patch @@ -187,7 +187,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -40,6 +40,7 @@ +@@ -41,6 +41,7 @@ #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" @@ -195,22 +195,22 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -879,6 +880,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -936,6 +937,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( + // |request_multiple_routes|. Whether local IP addresses could be + // collected depends on if mic/camera permission is granted for this // origin. - WebRTCIPHandlingPolicy policy = - GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); + blink::WebContentSettingsClient* settings = web_frame->GetContentSettingsClient(); + if (settings && settings->AllowContentSetting(ContentSettingsType::WEBRTC, false)) { -+ policy = kDefault; ++ webrtc_ip_handling_policy = mojom::blink::WebRtcIpHandlingPolicy::kDefault; + } + - switch (policy) { + switch (webrtc_ip_handling_policy) { // TODO(guoweis): specify the flag of disabling local candidate // collection when webrtc is updated. 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 -@@ -12,6 +12,8 @@ +@@ -13,6 +13,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" -@@ -283,6 +285,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -284,6 +286,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 -@@ -17,6 +17,8 @@ +@@ -18,6 +18,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" -@@ -1030,6 +1032,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1031,6 +1033,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/cromite_patches/Allow-building-without-enable_reporting.patch b/build/cromite_patches/Allow-building-without-enable_reporting.patch index 469a695199d24676ecd297ad304225f6ec602bbf..95f47a12c6909f093bd3bd39a8d28c1113d45649 100644 --- a/build/cromite_patches/Allow-building-without-enable_reporting.patch +++ b/build/cromite_patches/Allow-building-without-enable_reporting.patch @@ -13,9 +13,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + .../Allow-building-without-enable_reporting.inc | 2 ++ - net/base/features.cc | 1 + + net/reporting/reporting_header_parser.cc | 1 + net/reporting/reporting_service.cc | 6 ++++++ services/network/network_context.h | 6 +++--- + services/network/public/cpp/parsed_headers.cc | 1 + services/network/public/mojom/BUILD.gn | 1 - .../network/public/mojom/network_context.mojom | 3 +++ .../core/frame/csp/content_security_policy.cc | 3 +++ @@ -24,7 +25,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 +-- - 20 files changed, 60 insertions(+), 26 deletions(-) + 21 files changed, 61 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 @@ -41,15 +42,15 @@ 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 -@@ -1464,6 +1464,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1470,6 +1470,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } +#if BUILDFLAG(ENABLE_REPORTING) std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; - frame_host->ForEachRenderFrameHostWithAction( -@@ -1477,6 +1478,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { + frame_host->ForEachRenderFrameHostImplWithAction( +@@ -1483,6 +1484,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -106,7 +107,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" -@@ -175,12 +176,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { +@@ -190,12 +191,14 @@ class ReportingServiceProxyImpl : public blink::mojom::ReportingServiceProxy { const std::string& group, const std::string& type, base::Value::Dict body) { @@ -124,7 +125,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 -@@ -15172,12 +15172,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15258,12 +15258,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -251,17 +252,17 @@ new file mode 100644 @@ -0,0 +1,2 @@ +SET_CROMITE_FEATURE_DISABLED(kNetworkErrorLogging); +SET_CROMITE_FEATURE_DISABLED(kReporting); -diff --git a/net/base/features.cc b/net/base/features.cc ---- a/net/base/features.cc -+++ b/net/base/features.cc -@@ -207,6 +207,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( - base::Seconds(30)); - - #if BUILDFLAG(ENABLE_REPORTING) -+#error Attempting to build with enable_reporting - BASE_FEATURE(kDocumentReporting, - "DocumentReporting", - base::FEATURE_ENABLED_BY_DEFAULT); +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( + const NetworkAnonymizationKey& network_anonymization_key, + const url::Origin& origin, + base::flat_map header) { ++ CHECK(false); + DCHECK(GURL::SchemeIsCryptographic(origin.scheme())); + DCHECK(!reporting_source.is_empty()); + DCHECK(network_anonymization_key.IsEmpty() || diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_service.cc --- a/net/reporting/reporting_service.cc +++ b/net/reporting/reporting_service.cc @@ -299,10 +300,21 @@ diff --git a/services/network/network_context.h b/services/network/network_conte void AddDomainReliabilityContextForTesting( const url::Origin& origin, const GURL& upload_url, +diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc +--- a/services/network/public/cpp/parsed_headers.cc ++++ b/services/network/public/cpp/parsed_headers.cc +@@ -115,6 +115,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( + } + + #if BUILDFLAG(ENABLE_REPORTING) ++#error Attempting to build with enable_reporting + if (std::optional reporting_endpoints = + headers->GetNormalizedHeader("Reporting-Endpoints")) { + parsed_headers->reporting_endpoints = 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 -@@ -1560,7 +1560,6 @@ mojom("mojom") { +@@ -1557,7 +1557,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -313,7 +325,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 -@@ -1181,6 +1181,7 @@ interface NetworkContext { +@@ -1208,6 +1208,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -321,15 +333,15 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1188,6 +1189,7 @@ interface NetworkContext { +@@ -1215,6 +1216,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); + [EnableIf=enable_reporting] QueueEnterpriseReport(string type, - string group, - url.mojom.Url url, -@@ -1198,6 +1200,7 @@ interface NetworkContext { + string group, + url.mojom.Url url, +@@ -1225,6 +1227,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`. @@ -340,15 +352,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 -@@ -29,6 +29,7 @@ - #include +@@ -30,6 +30,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" -@@ -1243,6 +1244,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1284,6 +1285,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -356,7 +368,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); -@@ -1250,6 +1252,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1291,6 +1293,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -375,7 +387,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" -@@ -2789,9 +2790,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2791,9 +2792,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -398,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/metrics/public/cpp/ukm_source_id.h" -@@ -659,8 +660,9 @@ class CORE_EXPORT LocalFrame final +@@ -660,8 +661,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; @@ -420,7 +432,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" -@@ -53,7 +54,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; +@@ -58,7 +59,9 @@ const char ReportingContext::kSupplementName[] = "ReportingContext"; ReportingContext::ReportingContext(ExecutionContext& context) : Supplement(context), execution_context_(context), @@ -430,7 +442,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ receiver_(this, &context) {} // static -@@ -121,7 +124,9 @@ void ReportingContext::Trace(Visitor* visitor) const { +@@ -126,7 +129,9 @@ void ReportingContext::Trace(Visitor* visitor) const { visitor->Trace(observers_); visitor->Trace(report_buffer_); visitor->Trace(execution_context_); @@ -440,7 +452,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ visitor->Trace(receiver_); Supplement::Trace(visitor); } -@@ -143,6 +148,7 @@ void ReportingContext::CountReport(Report* report) { +@@ -148,6 +153,7 @@ void ReportingContext::CountReport(Report* report) { UseCounter::Count(execution_context_, feature); } @@ -448,23 +460,23 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.cc b/third_ const HeapMojoRemote& ReportingContext::GetReportingService() const { if (!reporting_service_.is_bound()) { -@@ -152,6 +158,7 @@ ReportingContext::GetReportingService() const { +@@ -157,6 +163,7 @@ ReportingContext::GetReportingService() const { } return reporting_service_; } +#endif void ReportingContext::NotifyInternal(Report* report) { - // Buffer the report. -@@ -174,6 +181,7 @@ void ReportingContext::NotifyInternal(Report* report) { + if (!ShouldReportBeVisibleToObservers(report)) { +@@ -183,6 +190,7 @@ void ReportingContext::NotifyInternal(Report* report) { void ReportingContext::SendToReportingAPI(Report* report, const String& endpoint) const { +#if BUILDFLAG(ENABLE_REPORTING) const String& type = report->type(); - if (!(type == ReportType::kCSPViolation || type == ReportType::kDeprecation || - type == ReportType::kPermissionsPolicyViolation || -@@ -230,6 +238,7 @@ void ReportingContext::SendToReportingAPI(Report* report, + if (!(type == ReportType::kCSPViolation || type == ReportType::kCSPHash || + type == ReportType::kDeprecation || +@@ -246,6 +254,7 @@ void ReportingContext::SendToReportingAPI(Report* report, url, endpoint, body->featureId(), body->disposition(), body->message(), body->sourceFile(), line_number, column_number); } diff --git a/build/cromite_patches/Allow-building-without-supervised-users.patch b/build/cromite_patches/Allow-building-without-supervised-users.patch index 640bd2eaccd2a3d63d49d0c9c04c579979045e4d..306c382d318960ad6b788e181e8efe032508871c 100644 --- a/build/cromite_patches/Allow-building-without-supervised-users.patch +++ b/build/cromite_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 -@@ -771,7 +771,6 @@ if (current_toolchain == default_toolchain) { +@@ -774,7 +774,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", @@ -64,7 +64,7 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/ 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 -@@ -341,7 +341,7 @@ void PrepareFactory( +@@ -331,7 +331,7 @@ void PrepareFactory( policy::BrowserPolicyConnector* policy_connector) { factory->SetManagedPolicies(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 -@@ -454,7 +454,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -459,7 +459,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 -@@ -684,10 +684,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -670,10 +670,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( -@@ -1649,6 +1645,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1625,6 +1621,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 -@@ -1179,10 +1179,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1178,10 +1178,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); -@@ -1967,9 +1963,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1962,9 +1958,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 -@@ -89,10 +89,6 @@ void ManagedUIHandler::AddObservers() { +@@ -90,10 +90,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 -@@ -580,10 +580,6 @@ bool ManagementUIHandler::managed() const { +@@ -578,10 +578,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -173,7 +173,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_pref_store. diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc -@@ -158,6 +158,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -155,6 +155,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { } void EnableParentalControls(PrefService& pref_service) { @@ -184,7 +184,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences pref_service.SetString(prefs::kSupervisedUserId, supervised_user::kChildAccountSUID); SetIsChildAccountStatusKnown(pref_service); -@@ -180,7 +184,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { +@@ -177,7 +181,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } bool IsSubjectToParentalControls(const PrefService& pref_service) { @@ -207,7 +207,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); } -@@ -139,6 +135,7 @@ SupervisedUserService::SupervisedUserService( +@@ -138,6 +134,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetActive(bool active) { @@ -229,7 +229,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/ diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -181,4 +181,10 @@ bool IsKidFriendlyContentFeedAvailable() { +@@ -196,4 +196,10 @@ bool IsKidFriendlyContentFeedAvailable() { return base::FeatureList::IsEnabled(kKidFriendlyContentFeed); } diff --git a/build/cromite_patches/Allow-playing-audio-in-background.patch b/build/cromite_patches/Allow-playing-audio-in-background.patch index d1e1f772629d4d84c7e858ca6250621844ad51f1..c2018a10208e24cf397a5269bb42dcd41008654a 100644 --- a/build/cromite_patches/Allow-playing-audio-in-background.patch +++ b/build/cromite_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 -@@ -1305,6 +1305,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1309,6 +1309,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( pipeline_controller_->OnSelectedVideoTrackChanged(selected); } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabled_track_ids) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3709,7 +3715,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3710,7 +3716,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/cromite_patches/Always-use-new-tab-page-for-default-home-page.patch b/build/cromite_patches/Always-use-new-tab-page-for-default-home-page.patch index 079b9c22d4ed2bc138efa2dca396eacd6ed16cd4..23300d41b1716d8c48c0119612591b02bbd36c4d 100644 --- a/build/cromite_patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/cromite_patches/Always-use-new-tab-page-for-default-home-page.patch @@ -7,11 +7,12 @@ Ignore any partner-provided home page. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ---- + .../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 + .../partnercustomizations/PartnerBrowserCustomizations.java | 2 +- .../org/chromium/components/search_engines/TemplateUrl.java | 1 + .../search_engines/android/template_url_service_android.cc | 1 + .../always-use-new-tab-page-for-default-home-page.inc | 2 ++ - 5 files changed, 5 insertions(+), 5 deletions(-) + 6 files changed, 6 insertions(+), 5 deletions(-) create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java @@ -28,6 +29,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa String homepagePartnerDefaultGurlSerialized = ChromeSharedPreferences.getInstance() .readString( +diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java +--- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java ++++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java +@@ -61,6 +61,7 @@ public class PartnerBookmarksProviderIterator implements PartnerBookmark.Bookmar + * @return Iterator over bookmarks or null. + */ + public static PartnerBookmarksProviderIterator createIfAvailable() { ++ if ((true)) return null; + try { + Cursor cursor = + ContextUtils.getApplicationContext() 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 diff --git a/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index 1d705612e07c618c45591a07fe5980d75f615e96..17cea64c6667c19c4ea7e36b0ef2a2551496aee9 100644 --- a/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/cromite_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 -@@ -201,6 +201,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -197,6 +197,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -61,7 +61,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third + if (NotShared array = getChannelData(i)) { + size_t len = array->length(); + if (len > 0) { -+ float* destination = array->Data(); ++ base::span destination = array->AsSpan(); + for (unsigned j = 0; j < len; ++j) { + destination[j] = BaseAudioContext::ShuffleAudioData(destination[j], j); + } @@ -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 -@@ -12,6 +12,7 @@ +@@ -13,6 +13,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" -@@ -612,7 +613,9 @@ double AudioContext::baseLatency() const { +@@ -637,7 +638,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 -@@ -449,9 +449,8 @@ +@@ -481,9 +481,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch b/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch index 9cbc485cc1815af72c0ae3bf035137fae75be989..9cc2ecd0ccf1d8d4d8e34d94e4f06bcbdcb11756 100644 --- a/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc --- a/chrome/browser/ui/singleton_tabs.cc +++ b/chrome/browser/ui/singleton_tabs.cc -@@ -127,6 +127,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -128,6 +128,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { continue; } @@ -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 -@@ -93,10 +93,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { +@@ -92,10 +92,15 @@ void OffsetComponentsExcludingScheme(url::Parsed* parts, int offset) { bool HasScheme(const std::u16string& input, const char* scheme) { std::string utf8_input(base::UTF16ToUTF8(input)); url::Component view_source_scheme; @@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib return url::FindAndCompareScheme(utf8_input, scheme, nullptr); } -@@ -572,7 +577,8 @@ void AutocompleteInput::ParseForEmphasizeComponents( +@@ -568,7 +573,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) || @@ -93,7 +93,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib 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 -@@ -580,6 +580,10 @@ GURL FixupURLInternal(const std::string& text, +@@ -607,6 +607,10 @@ GURL FixupURLInternal(const std::string& text, } } @@ -102,7 +102,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur + } + // We handle the file scheme separately. - if (scheme == url::kFileScheme) + if (scheme == url::kFileScheme) { return GURL(parts.scheme.is_valid() ? text : FixupPath(text)); diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc @@ -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 -@@ -1068,6 +1068,8 @@ component("net") { +@@ -1079,6 +1079,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/cromite_patches/Bromite-subresource-adblocker.patch b/build/cromite_patches/Bromite-subresource-adblocker.patch index 91d126877cc8f2bcee18cb0319de6e170a49129c..8222750a29f4ade334e3a5921a8b1ebc4e8b1225 100644 --- a/build/cromite_patches/Bromite-subresource-adblocker.patch +++ b/build/cromite_patches/Bromite-subresource-adblocker.patch @@ -51,7 +51,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/subresource_filter_features.cc | 114 +------ .../core/browser/verified_ruleset_dealer.cc | 4 + .../core/common/indexed_ruleset.cc | 5 +- - 39 files changed, 1273 insertions(+), 127 deletions(-) + 39 files changed, 1271 insertions(+), 129 deletions(-) create mode 100644 chrome/android/java/res/layout/adblock_editor.xml create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java @@ -66,7 +66,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -324,6 +324,7 @@ if (current_toolchain == default_toolchain) { +@@ -322,6 +322,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/features/tab_ui/public:ui_java_resources", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -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 -@@ -428,6 +428,7 @@ chrome_java_resources = [ +@@ -433,6 +433,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,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -615,6 +616,7 @@ chrome_java_resources = [ +@@ -621,6 +622,7 @@ chrome_java_resources = [ "java/res/xml/about_chrome_preferences.xml", "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", @@ -96,8 +96,8 @@ 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 -@@ -942,6 +942,8 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java", +@@ -928,6 +928,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", + "java/src/org/chromium/chrome/browser/settings/AdBlockEditor.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 -@@ -905,9 +905,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -924,9 +924,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 -@@ -16478,6 +16478,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -16566,6 +16566,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1223,6 +1223,34 @@ BrowserProcessImpl::component_updater() { +@@ -1220,6 +1220,34 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -568,7 +568,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -469,6 +469,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -468,6 +468,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -589,7 +589,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", -@@ -46,6 +47,7 @@ java_bromite_impl("java_cromite_cached_flags") { +@@ -47,6 +48,7 @@ java_bromite_impl("java_cromite_cached_flags") { generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -597,7 +597,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] -@@ -60,6 +62,7 @@ static_library("flags_android") { +@@ -61,6 +63,7 @@ static_library("flags_android") { "android/chrome_session_state.cc", "android/chrome_session_state.h", ] @@ -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 -@@ -638,6 +638,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -651,6 +651,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 -@@ -2837,6 +2837,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2846,6 +2846,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -749,7 +749,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -379,6 +379,9 @@ +@@ -373,6 +373,9 @@ This site shows intrusive or misleading ads @@ -762,7 +762,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen diff --git a/components/component_updater/BUILD.gn b/components/component_updater/BUILD.gn --- a/components/component_updater/BUILD.gn +++ b/components/component_updater/BUILD.gn -@@ -16,6 +16,12 @@ static_library("component_updater") { +@@ -19,6 +19,12 @@ static_library("component_updater") { "component_installer.h", "component_updater_command_line_config_policy.cc", "component_updater_command_line_config_policy.h", @@ -775,7 +775,7 @@ diff --git a/components/component_updater/BUILD.gn b/components/component_update "component_updater_service.cc", "component_updater_service.h", "component_updater_service_internal.h", -@@ -47,9 +53,11 @@ static_library("component_updater") { +@@ -49,9 +55,11 @@ static_library("component_updater") { "//components/update_client", "//components/version_info", "//net", @@ -1624,18 +1624,21 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc --- a/components/subresource_filter/content/shared/browser/ruleset_service.cc +++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc -@@ -51,9 +51,7 @@ namespace { +@@ -51,12 +51,7 @@ namespace { void RecordIndexAndWriteRulesetResult( std::string_view uma_tag, RulesetService::IndexAndWriteRulesetResult result) { - base::UmaHistogramEnumeration( - base::StrCat({uma_tag, ".WriteRuleset.Result"}), result, -- RulesetService::IndexAndWriteRulesetResult::MAX); +- static_cast( +- static_cast( +- RulesetService::IndexAndWriteRulesetResult::kMaxValue) + +- 1)); + VLOG(1) << "SubresourceFilter.WriteRuleset.Result: " << static_cast(result); } // Implements operations on a `sentinel file`, which is used as a safeguard to -@@ -234,10 +232,13 @@ RulesetService::RulesetService( +@@ -237,10 +232,13 @@ RulesetService::RulesetService( RulesetService::~RulesetService() = default; void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( @@ -1651,7 +1654,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Trying to store a ruleset with the same version for a second time would // not only be futile, but would fail on Windows due to "File System // Tunneling" as long as the previously stored copy of the rules is still -@@ -247,13 +248,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( +@@ -250,13 +248,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( if (most_recently_indexed_version.IsCurrentFormatVersion() && most_recently_indexed_version.content_version == unindexed_ruleset_info.content_version) { @@ -1668,7 +1671,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic return; } -@@ -273,6 +277,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -276,6 +277,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( const RulesetConfig& config, const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info) { @@ -1692,29 +1695,29 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, base::BlockingType::MAY_BLOCK); -@@ -280,6 +301,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -283,6 +301,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info); if (!unindexed_ruleset_stream_generator.ruleset_stream()) { + LOG(WARNING) << "RulesetService: failed to open: " << unindexed_ruleset_info.ruleset_path; RecordIndexAndWriteRulesetResult( config.uma_tag, - IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET); -@@ -294,6 +316,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( + IndexAndWriteRulesetResult::kFailedOpeningUnindexedRuleset); +@@ -297,6 +316,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( indexed_ruleset_base_dir, indexed_version); if (!base::CreateDirectory(indexed_ruleset_version_dir)) { + LOG(WARNING) << "RulesetService: failed to create version dir: " << indexed_ruleset_version_dir; RecordIndexAndWriteRulesetResult( - config.uma_tag, - IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR); -@@ -302,13 +325,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( + config.uma_tag, IndexAndWriteRulesetResult::kFailedCreatingVersionDir); + return IndexedRulesetVersion(config.filter_tag); +@@ -304,13 +324,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( SentinelFile sentinel_file(indexed_ruleset_version_dir); if (sentinel_file.IsPresent()) { - RecordIndexAndWriteRulesetResult( - config.uma_tag, -- IndexAndWriteRulesetResult::ABORTED_BECAUSE_SENTINEL_FILE_PRESENT); +- IndexAndWriteRulesetResult::kAbortedBecauseSentinelFilePresent); - return IndexedRulesetVersion(config.filter_tag); + LOG(WARNING) << "RulesetService: sentinel file is present in " << indexed_ruleset_version_dir; } @@ -1723,30 +1726,29 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic + LOG(WARNING) << "RulesetService: cannot create sentinel file in " << indexed_ruleset_version_dir; RecordIndexAndWriteRulesetResult( config.uma_tag, - IndexAndWriteRulesetResult::FAILED_CREATING_SENTINEL_FILE); -@@ -323,6 +344,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( + IndexAndWriteRulesetResult::kFailedCreatingSentinelFile); +@@ -325,6 +343,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( RulesetIndexer indexer; if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator, &indexer)) { + LOG(WARNING) << "RulesetService: failed parsing."; RecordIndexAndWriteRulesetResult( config.uma_tag, - IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET); -@@ -342,8 +364,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( - WriteRuleset(indexed_ruleset_version_dir, + IndexAndWriteRulesetResult::kFailedParsingUnindexedRuleset); +@@ -345,9 +364,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info.license_path, indexer.data()); RecordIndexAndWriteRulesetResult(config.uma_tag, result); -- if (result != IndexAndWriteRulesetResult::SUCCESS) -+ if (result != IndexAndWriteRulesetResult::SUCCESS) { + if (result != IndexAndWriteRulesetResult::kSuccess) { + LOG(INFO) << "RulesetService: failed to index."; return IndexedRulesetVersion(config.filter_tag); -+ } -+ -+ LOG(INFO) << "RulesetService: successful parsing."; + } ++ LOG(INFO) << "RulesetService: successful parsing."; ++ CHECK(indexed_version.IsValid(), base::NotFatalUntil::M129); return indexed_version; -@@ -467,6 +493,7 @@ void RulesetService::IndexAndStoreRuleset( + } +@@ -470,6 +492,7 @@ void RulesetService::IndexAndStoreRuleset( void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback, const IndexedRulesetVersion& version) { CHECK(!result_callback.is_null(), base::NotFatalUntil::M129); @@ -1757,7 +1759,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.h b/components/subresource_filter/content/shared/browser/ruleset_service.h --- a/components/subresource_filter/content/shared/browser/ruleset_service.h +++ b/components/subresource_filter/content/shared/browser/ruleset_service.h -@@ -185,7 +185,7 @@ class RulesetService { +@@ -183,7 +183,7 @@ class RulesetService { // // Virtual so that it can be mocked out in tests. virtual void IndexAndStoreAndPublishRulesetIfNeeded( @@ -1766,7 +1768,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Get the ruleset version associated with the current local_state_. IndexedRulesetVersion GetMostRecentlyIndexedVersion() const; -@@ -221,6 +221,12 @@ class RulesetService { +@@ -219,6 +219,12 @@ class RulesetService { const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info); diff --git a/build/cromite_patches/Client-hints-overrides.patch b/build/cromite_patches/Client-hints-overrides.patch index 3653f4b2c04baec1c3f28dc335eefa7121d182f5..aa779b6bd79c3350a03a38b4288348d3d908b801 100644 --- a/build/cromite_patches/Client-hints-overrides.patch +++ b/build/cromite_patches/Client-hints-overrides.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc --- a/components/embedder_support/user_agent_utils.cc +++ b/components/embedder_support/user_agent_utils.cc -@@ -191,9 +191,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( +@@ -190,9 +190,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList( bool parse_result = base::StringToInt(major_version, &major_version_number); DCHECK(parse_result); std::optional brand; @@ -38,9 +38,9 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd - brand = version_info::GetProductName(); -#endif + brand = "Google Chrome"; - std::optional maybe_brand_override = - base::GetFieldTrialParamValueByFeature(features::kGreaseUACH, - "brand_override"); + + std::string brand_version = + output_version_type == blink::UserAgentBrandVersionType::kFullVersion diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc @@ -52,7 +52,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" -@@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -704,7 +705,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -888,10 +890,12 @@ void AddRequestClientHintsHeaders( +@@ -886,10 +888,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -79,7 +79,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); -@@ -985,6 +989,7 @@ ParseAndPersistAcceptCHForNavigation( +@@ -975,6 +979,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { @@ -90,7 +90,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1224,6 +1224,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1283,6 +1283,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -131,7 +131,7 @@ new file mode 100644 diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc -@@ -108,6 +108,7 @@ const size_t kMaxRestarts = 32; +@@ -109,6 +109,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -142,7 +142,7 @@ diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transa diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc --- a/services/network/public/cpp/client_hints.cc +++ b/services/network/public/cpp/client_hints.cc -@@ -120,6 +120,7 @@ const DecodeMap& GetDecodeMap() { +@@ -112,6 +112,7 @@ const DecodeMap& GetDecodeMap() { std::optional> ParseClientHintsHeader(const std::string& header) { @@ -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 -@@ -400,6 +400,11 @@ +@@ -417,6 +417,11 @@ name: "AriaNotify", status: "test", }, diff --git a/build/cromite_patches/Content-settings-infrastructure.patch b/build/cromite_patches/Content-settings-infrastructure.patch index 3ecd2d83efe6d807666df12d564590e29e07b5a9..f4b6428fe0170a3a21f392d5b022808c6120a983 100644 --- a/build/cromite_patches/Content-settings-infrastructure.patch +++ b/build/cromite_patches/Content-settings-infrastructure.patch @@ -30,7 +30,7 @@ Require: bromite-build-utils.patch .../ui/views/page_info/page_info_main_view.cc | 28 +- .../views/page_info/page_info_view_factory.cc | 20 + .../views/page_info/page_info_view_factory.h | 5 + - .../page_info/permission_toggle_row_view.cc | 179 +++++++- + .../page_info/permission_toggle_row_view.cc | 180 +++++++- .../page_info/permission_toggle_row_view.h | 18 +- .../settings_localized_strings_provider.cc | 54 +++ .../ui/webui/settings/site_settings_helper.cc | 46 +- @@ -38,6 +38,7 @@ Require: bromite-build-utils.patch .../preference_spinner_single_widget.xml | 92 ++++ .../settings/SpinnerPreference.java | 24 + .../browser_ui/site_settings/android/BUILD.gn | 18 + + .../res/xml/site_settings_preferences.xml | 7 + .../site_settings/AllSiteSettings.java | 5 +- .../BromiteCustomContentSetting.java | 155 +++++++ .../BromiteCustomContentSettingImpl.java | 412 ++++++++++++++++++ @@ -72,7 +73,7 @@ Require: bromite-build-utils.patch .../common/content_settings_mojom_traits.cc | 12 +- .../common/content_settings_mojom_traits.h | 24 + .../core/common/content_settings_types.mojom | 2 + - .../renderer/content_settings_agent_impl.cc | 71 +++ + .../renderer/content_settings_agent_impl.cc | 74 ++++ .../renderer/content_settings_agent_impl.h | 9 + .../PageInfoPermissionsController.java | 9 + .../PermissionParamsListBuilder.java | 8 +- @@ -83,7 +84,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 72 files changed, 1931 insertions(+), 103 deletions(-) + 73 files changed, 1941 insertions(+), 104 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -108,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 = -@@ -240,7 +244,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -243,7 +247,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -117,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -402,6 +406,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -400,6 +404,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -138,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C diff --git a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc --- a/chrome/browser/content_settings/page_specific_content_settings_delegate.cc +++ b/chrome/browser/content_settings/page_specific_content_settings_delegate.cc -@@ -199,7 +199,7 @@ namespace { +@@ -191,7 +191,7 @@ namespace { void GetGuestViewDefaultContentSettingRules( bool incognito, RendererContentSettingRules* rules) { @@ -150,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 -@@ -1493,4 +1493,5 @@ +@@ -1457,4 +1457,5 @@ @@ -159,7 +160,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -53,6 +53,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ +@@ -52,6 +52,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js'; import {getTemplate} from './privacy_page.html.js'; @@ -167,7 +168,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch interface BlockAutoplayStatus { enabled: boolean; -@@ -76,8 +77,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -75,8 +76,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { return 'settings-privacy-page'; } @@ -262,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, -@@ -167,6 +168,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -165,6 +166,7 @@ function addPrivacyChildRoutes(r: Partial) { r.SITE_SETTINGS_WEB_APP_INSTALLATION = r.SITE_SETTINGS.createChild('webApplications'); } @@ -369,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 -@@ -322,4 +322,5 @@ +@@ -331,4 +331,5 @@ label="$i18n{siteSettingsWebAppInstallation}"> @@ -378,7 +379,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts --- a/chrome/browser/resources/settings/site_settings/site_details.ts +++ b/chrome/browser/resources/settings/site_settings/site_details.ts -@@ -63,8 +63,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { +@@ -62,8 +62,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { return 'site-details'; } @@ -525,7 +526,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details_permis /** * @return true if |this| should be hidden. */ -@@ -412,6 +454,8 @@ export class SiteDetailsPermissionElement extends +@@ -416,6 +458,8 @@ export class SiteDetailsPermissionElement extends private showAskSetting_( category: ContentSettingsTypes, setting: ContentSetting, source: SiteSettingSource): boolean { @@ -579,7 +580,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_mixin diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts -@@ -48,7 +48,7 @@ function getCategoryItemMap(): Map { +@@ -47,7 +47,7 @@ function getCategoryItemMap(): Map { } // The following list is ordered alphabetically by |id|. The order in which // these appear in the UI is determined elsewhere in this file. @@ -588,10 +589,10 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -460,10 +460,36 @@ function getCategoryItemMap(): Map { +@@ -451,10 +451,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', - }); - } + }, + ]; + for (let index=0; index < loadTimeData.getInteger("br_cs_count"); index++) { + let obj = JSON.parse(loadTimeData.getString("br_cs_" + index)); + let name = obj["name"]; @@ -625,7 +626,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -551,7 +577,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -544,7 +570,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -709,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 -@@ -1759,6 +1759,7 @@ static_library("ui") { +@@ -1767,6 +1767,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -717,8 +718,8 @@ 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", -@@ -5007,6 +5008,7 @@ static_library("ui") { - "//components/power_bookmarks/storage", +@@ -4962,6 +4963,7 @@ static_library("ui") { + "//components/prefs", "//components/reading_list/features:flags", "//components/segmentation_platform/embedder/default_model:default_model", + "//components/strings:components_strings_grit", @@ -745,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 -@@ -51,6 +51,7 @@ +@@ -54,6 +54,7 @@ #include "ui/views/controls/separator.h" #include "ui/views/layout/box_layout.h" #include "ui/views/layout/flex_layout.h" @@ -753,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) -@@ -261,8 +262,20 @@ void PageInfoMainView::SetPermissionInfo( +@@ -254,8 +255,20 @@ void PageInfoMainView::SetPermissionInfo( scroll_view->SetDrawOverflowIndicator(false); auto* content_view = scroll_view->SetContents(std::make_unique()); @@ -776,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); -@@ -277,11 +290,16 @@ void PageInfoMainView::SetPermissionInfo( +@@ -270,11 +283,16 @@ void PageInfoMainView::SetPermissionInfo( } } @@ -793,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); -@@ -289,6 +307,8 @@ void PageInfoMainView::SetPermissionInfo( +@@ -282,6 +300,8 @@ void PageInfoMainView::SetPermissionInfo( } for (auto& object : chosen_object_info_list) { @@ -802,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), -@@ -299,6 +319,10 @@ void PageInfoMainView::SetPermissionInfo( +@@ -292,6 +312,10 @@ void PageInfoMainView::SetPermissionInfo( content_view->AddChildView(std::move(object_view))); } @@ -816,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 -@@ -27,6 +27,8 @@ +@@ -28,6 +28,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" @@ -825,7 +826,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom #include "components/page_info/core/features.h" #include "components/page_info/core/proto/about_this_site_metadata.pb.h" #include "components/page_info/page_info.h" -@@ -265,7 +267,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -279,7 +281,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT ? info.default_setting : info.setting; @@ -840,7 +841,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom // For guard content settings and Automatic Picture-in-Picture, ASK is treated // as an "on" state. const bool show_blocked_badge = -@@ -562,6 +571,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -576,6 +585,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( icon = &vector_icons::kPrinterIcon; break; default: @@ -861,7 +862,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome/browser/ui/views/page_info/page_info_view_factory.h --- a/chrome/browser/ui/views/page_info/page_info_view_factory.h +++ b/chrome/browser/ui/views/page_info/page_info_view_factory.h -@@ -88,6 +88,11 @@ class PageInfoViewFactory { +@@ -94,6 +94,11 @@ class PageInfoViewFactory { const PageInfo::PermissionInfo& info, bool blocked_on_system_level = false); @@ -906,9 +907,9 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c + } +} - DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(PermissionToggleRowView, - kRowSubTitleCameraElementId); -@@ -62,16 +87,12 @@ PermissionToggleRowView::PermissionToggleRowView( + namespace { + +@@ -75,17 +100,12 @@ PermissionToggleRowView::PermissionToggleRowView( // instead of adding it as the only child. SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -920,13 +921,14 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c - // Add extra details as sublabel. - std::u16string detail = delegate->GetPermissionDetail(permission.type); -- if (!detail.empty()) +- if (!detail.empty()) { - row_view_->AddSecondaryLabel(detail); +- } - if (permission.requesting_origin.has_value()) { std::u16string requesting_origin_string; switch (permission.type) { -@@ -168,6 +189,90 @@ void PermissionToggleRowView::UpdatePermission( +@@ -183,6 +203,90 @@ void PermissionToggleRowView::UpdatePermission( UpdateUiOnPermissionChanged(); } @@ -1017,7 +1019,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -176,27 +281,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { +@@ -191,27 +295,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { void PermissionToggleRowView::AddToggleButton( const std::u16string& toggle_accessible_name, int icon_label_spacing) { @@ -1052,7 +1054,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } void PermissionToggleRowView::InitForUserSource( -@@ -238,9 +335,6 @@ void PermissionToggleRowView::InitForUserSource( +@@ -253,9 +349,6 @@ void PermissionToggleRowView::InitForUserSource( auto spacer_view = std::make_unique(); spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size)); spacer_view_ = row_view_->AddControl(std::move(spacer_view)); @@ -1062,7 +1064,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -267,6 +361,14 @@ void PermissionToggleRowView::InitForManagedSource( +@@ -281,6 +374,14 @@ void PermissionToggleRowView::InitForManagedSource( } void PermissionToggleRowView::UpdateUiOnPermissionChanged() { @@ -1077,7 +1079,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (blocked_on_system_level_label_) { if (permission_.setting == CONTENT_SETTING_DEFAULT) { permission_blocked_on_system_level_ = false; -@@ -312,6 +414,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -326,6 +427,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { } } } @@ -1175,17 +1177,17 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -77,6 +78,9 @@ +@@ -74,6 +75,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" - #include "components/history_embeddings/history_embeddings_features.h" +#include "components/content_settings/core/browser/content_settings_registry.h" +#include "components/content_settings/core/browser/website_settings_info.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/password_manager/core/browser/leak_detection_dialog_utils.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/common/password_manager_features.h" -@@ -3773,6 +3777,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3779,6 +3783,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1245,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 -@@ -53,6 +53,8 @@ +@@ -49,6 +49,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" @@ -1254,19 +1256,19 @@ 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" -@@ -249,13 +251,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { - {ContentSettingsType::DIRECT_SOCKETS_PRIVATE_NETWORK_ACCESS, nullptr}, - }; +@@ -247,13 +249,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< + {ContentSettingsType::LEGACY_COOKIE_SCOPE, nullptr}, + }); -static_assert( -- std::size(kContentSettingsTypeGroupNames) == +- kContentSettingsTypeGroupNames.size() == - // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue - 1 + static_cast(ContentSettingsType::kMaxValue) - - static_cast(ContentSettingsType::kMinValue), - "kContentSettingsTypeGroupNames should have the correct number " - "of elements"); +// static_assert( -+// std::size(kContentSettingsTypeGroupNames) == ++// kContentSettingsTypeGroupNames.size() == +// // Add one since the sequence is kMinValue = -1, 0, ..., kMaxValue +// 1 + static_cast(ContentSettingsType::kMaxValue) - +// static_cast(ContentSettingsType::kMinValue), @@ -1275,7 +1277,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -503,6 +505,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -501,6 +503,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1289,7 +1291,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -516,11 +525,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -514,11 +523,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1315,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 -@@ -535,7 +557,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -533,7 +555,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1323,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."; } -@@ -642,6 +663,13 @@ std::vector GetVisiblePermissionCategories( +@@ -643,6 +664,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::WEB_APP_INSTALLATION); } @@ -1340,7 +1342,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -86,6 +86,7 @@ android_resources("java_resources") { +@@ -87,6 +87,7 @@ android_resources("java_resources") { "java/res/layout/managed_disclaimer_preference_for_radio_groups.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -1535,6 +1537,21 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b sources = [ "java/res/drawable-hdpi/ic_volume_up_grey600_24dp.png", "java/res/drawable-hdpi/permission_background_sync.png", +diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml +--- a/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml ++++ b/components/browser_ui/site_settings/android/java/res/xml/site_settings_preferences.xml +@@ -181,4 +181,11 @@ The order of the following items is from: http://crbug.com/610358. + android:title="@string/safety_hub_autorevocation_toggle_title" + android:summary="@string/safety_hub_autorevocation_toggle_summary" /> + ++ ++ ++ ++ + diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java @@ -2184,7 +2201,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c int icon, int title, @ContentSettingValues @Nullable Integer defaultEnabledValue, -@@ -435,6 +435,8 @@ public class ContentSettingsResources { +@@ -445,6 +445,8 @@ public class ContentSettingsResources { R.string.website_settings_category_vr_blocked, R.string.website_settings_category_vr_a11y); } @@ -2193,7 +2210,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert false; // NOTREACHED return null; } -@@ -593,6 +595,14 @@ public class ContentSettingsResources { +@@ -603,6 +605,14 @@ public class ContentSettingsResources { return getResourceItem(contentType).getDefaultDisabledValue(); } @@ -2208,7 +2225,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** * Returns the string resource id for a given ContentSetting to show with a permission category. * -@@ -756,6 +766,8 @@ public class ContentSettingsResources { +@@ -776,6 +786,8 @@ public class ContentSettingsResources { * Blocked states, in that order. */ public static int[] getTriStateSettingDescriptionIDs(int contentType) { @@ -2220,7 +2237,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -330,6 +330,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -324,6 +324,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment website.site() .getContentSetting( browserContextHandle, mCategory.getContentSettingsType()); @@ -2231,7 +2248,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSettingValues.BLOCK == contentSetting; } -@@ -494,6 +498,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -488,6 +492,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2239,7 +2256,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureGlobalToggles(); if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) { RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered"); -@@ -529,7 +534,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -523,7 +528,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2249,7 +2266,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -541,12 +547,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -535,12 +541,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2270,7 +2287,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) { getSiteSettingsDelegate() .launchProtectedContentHelpAndFeedbackActivity(getActivity()); -@@ -618,6 +632,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -612,6 +626,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2282,16 +2299,16 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); boolean toggleValue = (boolean) newValue; -@@ -791,7 +810,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - ? R.string.website_settings_blocked_group_heading_request_desktop_site - : R.string.website_settings_allowed_group_heading_request_desktop_site; +@@ -789,7 +808,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + ? R.string.website_settings_add_site_description_javascript_optimizer_block + : R.string.website_settings_add_site_description_javascript_optimizer_allow; } - return 0; + return BromiteCustomContentSettingImpl.getAddExceptionDialogMessage(mCategory); } // OnPreferenceClickListener: -@@ -904,10 +923,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -903,10 +922,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2306,7 +2323,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c getPreferenceScreen() .addPreference( new AddExceptionPreference( -@@ -1092,8 +1112,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1091,8 +1111,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2323,9 +2340,9 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1160,7 +1188,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - } else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) { - infoText.setSummary(getStorageAccessSummary()); +@@ -1162,7 +1190,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + infoText.setSummary( + R.string.website_settings_category_javascript_optimizer_page_description); } else { - screen.removePreference(infoText); + int infoMessage = BromiteCustomContentSettingImpl.getCategoryDescription(mCategory); @@ -2336,7 +2353,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1197,6 +1229,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1199,6 +1231,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2344,7 +2361,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1355,7 +1388,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1357,7 +1390,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -2353,7 +2370,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1479,6 +1512,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1481,6 +1514,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2379,7 +2396,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ public class SingleWebsiteSettings extends BaseSiteSettingsFragment -@@ -175,7 +176,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -177,7 +178,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.FILE_SYSTEM_WRITE_GUARD: return "file_system_write_guard_permission_list"; default: @@ -2388,7 +2405,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -564,8 +565,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -566,8 +567,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder(); @@ -2412,7 +2429,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1142,20 +1156,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1144,20 +1158,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2453,7 +2470,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1376,14 +1402,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1372,14 +1398,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSettingValues.BLOCK; } else { @@ -2505,7 +2522,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c Preference p = findPreference(prefCategory); int contentType = SiteSettingsCategory.contentSettingsType(prefCategory); // p can be null if the Preference was removed in configurePreferences. -@@ -174,19 +175,21 @@ public class SiteSettings extends BaseSiteSettingsFragment +@@ -176,19 +177,21 @@ public class SiteSettings extends BaseSiteSettingsFragment } else if (Type.ZOOM == prefCategory) { // Don't want to set a summary for Zoom because we don't want any message to display // under the Zoom row on site settings. @@ -2542,25 +2559,25 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SiteSettingsCategory.java -@@ -74,7 +74,7 @@ public class SiteSettingsCategory { - Type.STORAGE_ACCESS, +@@ -75,7 +75,7 @@ public class SiteSettingsCategory { Type.TRACKING_PROTECTION, Type.FILE_EDITING, + Type.JAVASCRIPT_OPTIMIZER, - Type.NUM_ENTRIES + Type.NUM_ENTRIES_CHROMIUM }) @Retention(RetentionPolicy.SOURCE) public @interface Type { -@@ -115,7 +115,7 @@ public class SiteSettingsCategory { - int FILE_EDITING = 32; +@@ -117,7 +117,7 @@ public class SiteSettingsCategory { + int JAVASCRIPT_OPTIMIZER = 33; /** Number of handled categories used for calculating array sizes. */ -- int NUM_ENTRIES = 33; -+ int NUM_ENTRIES_CHROMIUM = 33; +- int NUM_ENTRIES = 34; ++ int NUM_ENTRIES_CHROMIUM = 34; } private final BrowserContextHandle mBrowserContextHandle; -@@ -164,6 +164,9 @@ public class SiteSettingsCategory { +@@ -166,6 +166,9 @@ public class SiteSettingsCategory { } else { permission = ""; } @@ -2570,7 +2587,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return new SiteSettingsCategory(browserContextHandle, type, permission); } -@@ -172,7 +175,7 @@ public class SiteSettingsCategory { +@@ -174,7 +177,7 @@ public class SiteSettingsCategory { @ContentSettingsType.EnumType int contentSettingsType) { assert contentSettingsType != -1; assert Type.ALL_SITES == 0; @@ -2579,7 +2596,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSettingsType(i) == contentSettingsType) { return createFromType(browserContextHandle, i); } -@@ -183,7 +186,7 @@ public class SiteSettingsCategory { +@@ -185,7 +188,7 @@ public class SiteSettingsCategory { public static SiteSettingsCategory createFromPreferenceKey( BrowserContextHandle browserContextHandle, String preferenceKey) { assert Type.ALL_SITES == 0; @@ -2588,7 +2605,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (preferenceKey(i).equals(preferenceKey)) { return createFromType(browserContextHandle, i); } -@@ -258,8 +261,7 @@ public class SiteSettingsCategory { +@@ -262,8 +265,7 @@ public class SiteSettingsCategory { case Type.TRACKING_PROTECTION: return ContentSettingsType.DEFAULT; // Conversion unavailable. } @@ -2598,7 +2615,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } /** -@@ -348,8 +350,12 @@ public class SiteSettingsCategory { +@@ -354,8 +356,12 @@ public class SiteSettingsCategory { case Type.ZOOM: return "zoom"; default: @@ -2794,7 +2811,7 @@ diff --git a/components/content_settings/android/BUILD.gn b/components/content_s diff --git a/components/content_settings/core/browser/BUILD.gn b/components/content_settings/core/browser/BUILD.gn --- a/components/content_settings/core/browser/BUILD.gn +++ b/components/content_settings/core/browser/BUILD.gn -@@ -85,6 +85,13 @@ static_library("browser") { +@@ -84,6 +84,13 @@ static_library("browser") { } configs += [ "//build/config/compiler:wexit_time_destructors" ] @@ -2825,7 +2842,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. namespace content_settings { -@@ -838,6 +839,7 @@ void ContentSettingsRegistry::Init() { +@@ -848,6 +849,7 @@ void ContentSettingsRegistry::Init() { WebsiteSettingsRegistry::DESKTOP, ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -2936,7 +2953,7 @@ diff --git a/components/content_settings/core/browser/website_settings_info.h b/ diff --git a/components/content_settings/core/browser/website_settings_registry.cc b/components/content_settings/core/browser/website_settings_registry.cc --- a/components/content_settings/core/browser/website_settings_registry.cc +++ b/components/content_settings/core/browser/website_settings_registry.cc -@@ -46,6 +46,12 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Get( +@@ -45,6 +45,12 @@ const WebsiteSettingsInfo* WebsiteSettingsRegistry::Get( return nullptr; } @@ -3103,7 +3120,7 @@ diff --git a/components/content_settings/core/common/content_settings.mojom b/co diff --git a/components/content_settings/core/common/content_settings_mojom_traits.cc b/components/content_settings/core/common/content_settings_mojom_traits.cc --- a/components/content_settings/core/common/content_settings_mojom_traits.cc +++ b/components/content_settings/core/common/content_settings_mojom_traits.cc -@@ -120,12 +120,22 @@ bool StructTraitsmetadata) && data.ReadSource(&out->source); } @@ -3168,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 -@@ -463,5 +463,7 @@ enum ContentSettingsType { - // Content settings for private network access in the context of the - // Direct Sockets API. - DIRECT_SOCKETS_PRIVATE_NETWORK_ACCESS, +@@ -468,5 +468,7 @@ enum ContentSettingsType { + // Checks whether cookies scope is handled according to origin-bound cookies + // or legacy behavior. + LEGACY_COOKIE_SCOPE, + +#include "components/content_settings/core/common/bromite_content_settings.inc" }; @@ -3179,7 +3196,7 @@ diff --git a/components/content_settings/core/common/content_settings_types.mojo diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc --- a/components/content_settings/renderer/content_settings_agent_impl.cc +++ b/components/content_settings/renderer/content_settings_agent_impl.cc -@@ -200,6 +200,77 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules( +@@ -199,6 +199,80 @@ void ContentSettingsAgentImpl::SendRendererContentSettingRules( std::move(renderer_settings)); } @@ -3231,6 +3248,9 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc + WebSecurityOrigin origin = document.GetSecurityOrigin(); + WebURL document_url = document.Url(); + ++ if (document_url.GetString() == content::kUnreachableWebDataURL) ++ return true; ++ + if (origin.IsNull() || origin.IsOpaque()) + return false; // Uninitialized document? + @@ -3341,7 +3361,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/page_info/android/page_info_client.h" -@@ -164,6 +165,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -163,6 +164,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS); @@ -3357,7 +3377,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; std::map -@@ -223,6 +233,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -222,6 +232,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3375,15 +3395,15 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -23,6 +23,7 @@ +@@ -22,6 +22,7 @@ + #include "base/values.h" #include "build/build_config.h" - #include "build/chromeos_buildflags.h" #include "components/browsing_data/content/browsing_data_helper.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/content_settings/browser/ui/cookie_controls_controller.h" #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/content_settings_uma_util.h" -@@ -1262,6 +1263,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1267,6 +1268,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3398,7 +3418,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. // Note |ContentSettingsType::ADS| will show up regardless of its default // value when it has been activated on the current origin. if (info.type == ContentSettingsType::ADS) { -@@ -1378,7 +1387,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1383,7 +1392,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3422,15 +3442,15 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_info_ui.cc --- a/components/page_info/page_info_ui.cc +++ b/components/page_info/page_info_ui.cc -@@ -19,6 +19,7 @@ - #include "build/chromeos_buildflags.h" +@@ -18,6 +18,7 @@ + #include "build/build_config.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/page_info/core/features.h" #include "components/page_info/page_info.h" #include "components/page_info/page_info_ui_delegate.h" -@@ -331,6 +332,13 @@ void CreateOppositeToDefaultSiteException( +@@ -330,6 +331,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3444,7 +3464,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in switch (type) { case ContentSettingsType::GEOLOCATION: message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK; -@@ -627,6 +635,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -626,6 +634,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3457,7 +3477,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id); -@@ -637,6 +651,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -636,6 +650,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3470,7 +3490,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id_mid_sentence); -@@ -1078,6 +1098,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -1077,6 +1097,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3559,7 +3579,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" -@@ -104,6 +105,10 @@ class SecurityOrigin; +@@ -103,6 +104,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch index b1a92dcc55f9fc872b06f0b2fc273ca228efb431..74427050d903192970b16003670aa578129ac5cb 100644 --- a/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -27,10 +27,10 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -289,8 +289,17 @@ class LocationBarMediator - if (mNativeInitialized) RecordUserAction.record("FocusLocation"); - boolean shouldRetainOmniboxOnFocus = OmniboxFeatures.shouldRetainOmniboxOnFocus(); - if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus) { +@@ -292,8 +292,17 @@ class LocationBarMediator + if (!mUrlFocusedWithPastedText + && !shouldRetainOmniboxOnFocus + && mLocationBarLayout.shouldClearTextOnFocus()) { - setUrlBarText( - UrlBarData.EMPTY, UrlBar.ScrollType.NO_SCROLL, SelectionState.SELECT_END); + UrlBarData data = mLocationBarDataProvider.getUrlBarData(); diff --git a/build/cromite_patches/Disable-Accessibility-service-by-default.patch b/build/cromite_patches/Disable-Accessibility-service-by-default.patch index df0e1d35165c40deb00d2f942fd700358e5a0359..0fd469477ec5cf4d4919a71f971f47557b315c59 100644 --- a/build/cromite_patches/Disable-Accessibility-service-by-default.patch +++ b/build/cromite_patches/Disable-Accessibility-service-by-default.patch @@ -42,7 +42,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil diff --git a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/accessibility/WebContentsAccessibilityImpl.java -@@ -1079,6 +1079,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa +@@ -1095,6 +1095,11 @@ public class WebContentsAccessibilityImpl extends AccessibilityNodeProviderCompa structure.setChildCount(0); return; } diff --git a/build/cromite_patches/Disable-PrivacyGuide.patch b/build/cromite_patches/Disable-PrivacyGuide.patch index 8725ae1d512ba3dc991df3bab7607c80f2f999d5..08dbffb50ab8e2422f61291ee3421d5978d1dfb2 100644 --- a/build/cromite_patches/Disable-PrivacyGuide.patch +++ b/build/cromite_patches/Disable-PrivacyGuide.patch @@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc -@@ -354,8 +354,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -347,8 +347,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) #endif // BUILDFLAG(IS_CHROMEOS_ASH) bool show_privacy_guide = @@ -31,5 +31,5 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui + false; html_source->AddBoolean("showPrivacyGuide", show_privacy_guide); - html_source->AddBoolean( + html_source->AddBoolean("enableHandTrackingContentSetting", -- diff --git a/build/cromite_patches/Disable-TLS-resumption.patch b/build/cromite_patches/Disable-TLS-resumption.patch index ba73f9c46e669a0b4230fe4511d6bc0720f258b9..2761b6d2bfb51e83eeb49d6e496ee9f86bd05756 100644 --- a/build/cromite_patches/Disable-TLS-resumption.patch +++ b/build/cromite_patches/Disable-TLS-resumption.patch @@ -79,9 +79,9 @@ new file mode 100644 diff --git a/net/http/http_network_session.cc b/net/http/http_network_session.cc --- a/net/http/http_network_session.cc +++ b/net/http/http_network_session.cc -@@ -222,6 +222,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, +@@ -223,6 +223,7 @@ HttpNetworkSession::HttpNetworkSession(const HttpNetworkSessionParams& params, - next_protos_.push_back(kProtoHTTP11); + next_protos_.push_back(NextProto::kProtoHTTP11); + DCHECK(context.quic_context->params()->max_server_configs_stored_in_properties == 0); http_server_properties_->SetMaxServerConfigsStoredInProperties( @@ -98,7 +98,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc #include "url/gurl.h" #include "url/scheme_host_port.h" #include "url/url_constants.h" -@@ -250,6 +251,38 @@ void LogUsingExistingSession(const NetLogWithSource& request_net_log, +@@ -332,6 +333,38 @@ void LogSessionKeyMismatch(QuicSessionKeyPartialMatchResult result, } // namespace @@ -137,7 +137,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -2122,7 +2155,7 @@ QuicSessionPool::CreateCryptoConfigHandle( +@@ -2229,7 +2262,7 @@ QuicSessionPool::CreateCryptoConfigHandle( cert_verifier_, transport_security_state_, sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), @@ -149,7 +149,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -283,7 +283,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( +@@ -284,7 +284,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( CHECK(context_); } @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -670,6 +696,8 @@ int SSLClientSocketImpl::Init() { +@@ -671,6 +697,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -956,6 +984,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -957,6 +985,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info and EMS -@@ -1584,6 +1641,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1588,6 +1645,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { @@ -240,7 +240,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h --- a/net/socket/ssl_client_socket_impl.h +++ b/net/socket/ssl_client_socket_impl.h -@@ -125,6 +125,8 @@ class SSLClientSocketImpl : public SSLClientSocket, +@@ -123,6 +123,8 @@ class SSLClientSocketImpl : public SSLClientSocket, friend class SSLClientSocket; friend class SSLContext; diff --git a/build/cromite_patches/Disable-all-predictors-code.patch b/build/cromite_patches/Disable-all-predictors-code.patch index f116cd90eeef219c6411ed0100971f910d409b4f..9d2611301f7ef0069b9e04495f690b4f718782f4 100644 --- a/build/cromite_patches/Disable-all-predictors-code.patch +++ b/build/cromite_patches/Disable-all-predictors-code.patch @@ -5,45 +5,46 @@ Subject: Disable all predictors code Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/BUILD.gn | 3 --- - .../preloading_model_keyed_service.cc | 3 +++ - .../preloading_model_keyed_service_factory.cc | 4 +--- - .../optimization_guide/chrome_hints_manager.cc | 1 + - .../model_validator_keyed_service.cc | 6 +++++- - .../optimization_guide_keyed_service.cc | 1 - - .../predictors/autocomplete_action_predictor.cc | 2 ++ - .../predictors/loading_predictor_config.cc | 4 ++-- - chrome/browser/predictors/predictors_features.cc | 3 +-- - chrome/browser/safe_browsing/BUILD.gn | 1 - - ...ification_content_detection_service_factory.cc | 5 +++++ - chrome/browser/ui/tab_helpers.cc | 1 - - .../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++ - .../read_anything/read_aloud_app_model.cc | 8 ++++++++ - .../read_anything/read_aloud_app_model.h | 7 +++++++ - .../read_anything/read_anything_app_controller.cc | 12 ++++++++++++ - .../read_anything/read_anything_app_controller.h | 4 ++++ - chrome/utility/BUILD.gn | 2 +- - chrome/utility/services.cc | 8 -------- - .../core/browser/autofill_optimization_guide.cc | 5 +++-- - .../omnibox/browser/autocomplete_controller.cc | 4 ++++ - .../optimization_guide/core/hints_fetcher.cc | 1 + - .../optimization_guide/core/hints_manager.cc | 5 +++++ - .../core/optimization_guide_features.cc | 15 +++++++++------ - .../core/prediction_model_download_manager.cc | 6 ++++-- - .../core/prediction_model_fetcher_impl.cc | 1 + - components/optimization_guide/features.gni | 3 +-- - .../core/page_content_annotations_features.cc | 5 +++++ - components/safe_browsing/core/common/features.cc | 1 + - .../Disable-all-predictors-code.inc | 3 +++ - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 3 +++ - .../features_cc/Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 2 ++ - services/webnn/features.gni | 2 +- - .../document_speculation_rules.cc | 1 + - .../platform/runtime_enabled_features.json5 | 2 +- - 38 files changed, 102 insertions(+), 37 deletions(-) + chrome/browser/BUILD.gn | 3 --- + .../preloading_model_keyed_service.cc | 3 +++ + .../preloading_model_keyed_service_factory.cc | 4 +--- + .../optimization_guide/chrome_hints_manager.cc | 1 + + .../model_validator_keyed_service.cc | 6 +++++- + .../optimization_guide_keyed_service.cc | 1 - + .../predictors/autocomplete_action_predictor.cc | 2 ++ + .../predictors/loading_predictor_config.cc | 4 ++-- + chrome/browser/predictors/predictors_features.cc | 3 +-- + chrome/browser/safe_browsing/BUILD.gn | 1 - + ...fication_content_detection_service_factory.cc | 5 +++++ + chrome/browser/ui/tab_helpers.cc | 1 - + .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- + .../read_anything/read_aloud_app_model.h | 9 ++++++++- + .../read_anything_app_controller.cc | 10 ++++++++++ + .../read_anything/read_anything_app_controller.h | 4 ++++ + chrome/utility/BUILD.gn | 2 +- + chrome/utility/services.cc | 8 -------- + .../integrators/autofill_optimization_guide.cc | 5 +++-- + .../omnibox/browser/autocomplete_controller.cc | 4 ++++ + .../optimization_guide/core/hints_fetcher.cc | 1 + + .../optimization_guide/core/hints_manager.cc | 5 +++++ + .../core/optimization_guide_features.cc | 15 +++++++++------ + .../core/prediction_model_download_manager.cc | 6 ++++-- + .../core/prediction_model_fetcher_impl.cc | 1 + + components/optimization_guide/features.gni | 3 +-- + .../core/page_content_annotations_features.cc | 4 ++++ + .../page_content_annotations_model_manager.cc | 1 + + components/safe_browsing/core/common/features.cc | 1 + + .../Disable-all-predictors-code.inc | 3 +++ + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 3 +++ + .../features_cc/Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 2 ++ + services/webnn/features.gni | 2 +- + .../core/html/parser/html_document_parser.cc | 1 + + .../document_speculation_rules.cc | 1 + + .../platform/runtime_enabled_features.json5 | 2 +- + 39 files changed, 106 insertions(+), 40 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -54,7 +55,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 -@@ -760,8 +760,6 @@ static_library("browser") { +@@ -727,8 +727,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -63,7 +64,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "navigation_predictor/preloading_model_keyed_service.cc", "navigation_predictor/preloading_model_keyed_service.h", "navigation_predictor/preloading_model_keyed_service_factory.cc", -@@ -2242,7 +2240,6 @@ static_library("browser") { +@@ -2226,7 +2224,6 @@ static_library("browser") { "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:client_side_detection", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -124,7 +125,7 @@ diff --git a/chrome/browser/optimization_guide/chrome_hints_manager.cc b/chrome/ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc b/chrome/browser/optimization_guide/model_validator_keyed_service.cc --- a/chrome/browser/optimization_guide/model_validator_keyed_service.cc +++ b/chrome/browser/optimization_guide/model_validator_keyed_service.cc -@@ -66,13 +66,13 @@ namespace optimization_guide { +@@ -67,13 +67,13 @@ namespace optimization_guide { ModelValidatorKeyedService::ModelValidatorKeyedService(Profile* profile) : profile_(profile) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -139,7 +140,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc if (switches::ShouldValidateModel()) { // Create the validator object which will get destroyed when the model // load is complete. -@@ -133,6 +133,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( +@@ -134,6 +134,7 @@ void ModelValidatorKeyedService::OnPrimaryAccountChanged( void ModelValidatorKeyedService::StartModelExecutionValidation() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -147,7 +148,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc auto* opt_guide_service = OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); if (!opt_guide_service) { -@@ -151,6 +152,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { +@@ -152,6 +153,7 @@ void ModelValidatorKeyedService::StartModelExecutionValidation() { /*execution_timeout=*/std::nullopt, base::BindOnce(&ModelValidatorKeyedService::OnModelExecuteResponse, weak_ptr_factory_.GetWeakPtr())); @@ -155,7 +156,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc } void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( -@@ -168,6 +170,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( +@@ -169,6 +171,7 @@ void ModelValidatorKeyedService::StartOnDeviceModelExecutionValidation( void ModelValidatorKeyedService::PerformOnDeviceModelExecutionValidation( std::unique_ptr input) { @@ -163,7 +164,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); auto* opt_guide_service = OptimizationGuideKeyedServiceFactory::GetForProfile(profile_); -@@ -207,6 +210,7 @@ void ModelValidatorKeyedService::ExecuteModel( +@@ -219,6 +222,7 @@ void ModelValidatorKeyedService::ExecuteModel( *metadata, base::BindRepeating( &ModelValidatorKeyedService::OnDeviceModelExecuteResponse, weak_ptr_factory_.GetWeakPtr(), std::move(request))); @@ -174,7 +175,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -497,7 +497,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -498,7 +498,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -264,33 +265,20 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection_service 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 -@@ -439,7 +439,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -426,7 +426,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); - NavigationPredictorPreconnectClient::CreateForWebContents(web_contents); - OpenerHeuristicTabHelper::CreateForWebContents(web_contents); + OpenerHeuristicService::Get(web_contents->GetBrowserContext()); if (optimization_guide::features::IsOptimizationHintsEnabled()) { OptimizationGuideWebContentsObserver::CreateForWebContents(web_contents); -diff --git a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc ---- a/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc -+++ b/chrome/browser/ui/webui/omnibox/omnibox_page_handler.cc -@@ -41,7 +41,9 @@ - #include "components/omnibox/browser/autocomplete_provider.h" - #include "components/omnibox/browser/autocomplete_result.h" - #include "components/omnibox/browser/omnibox_feature_configs.h" -+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - #include "components/omnibox/browser/omnibox_field_trial.h" -+#endif - #include "components/optimization_guide/machine_learning_tflite_buildflags.h" - #include "components/search_engines/template_url.h" - #include "content/public/browser/web_ui.h" diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc --- a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc +++ b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc -@@ -6,7 +6,9 @@ - - #include "base/strings/utf_string_conversions.h" +@@ -15,7 +15,9 @@ + #include "base/task/task_traits.h" + #include "base/task/thread_pool.h" #include "base/values.h" +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) #include "chrome/renderer/accessibility/phrase_segmentation/dependency_parser_model.h" @@ -298,48 +286,70 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc #include "chrome/renderer/accessibility/phrase_segmentation/dependency_tree.h" #include "chrome/renderer/accessibility/phrase_segmentation/phrase_segmenter.h" #include "chrome/renderer/accessibility/phrase_segmentation/token_boundaries.h" -@@ -16,6 +18,7 @@ +@@ -25,6 +27,7 @@ namespace { +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - std::vector GetDependencyHeads( - DependencyParserModel& dependency_parser_model, - std::vector input) { -@@ -25,6 +28,7 @@ std::vector GetDependencyHeads( - return {}; - } + // Returns the dependency parser model for this renderer process. + DependencyParserModel& GetDependencyParserModel_() { + static base::NoDestructor instance; +@@ -37,6 +40,7 @@ std::vector GetDependencyHeads(base::span input) { + ? dependency_parser_model.GetDependencyHeads(input) + : std::vector(); } +#endif } // namespace -@@ -131,6 +135,7 @@ void ReadAloudAppModel::PreprocessTextForSpeech( +@@ -148,10 +152,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( } } +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - void ReadAloudAppModel::PreprocessPhrasesForText( - DependencyParserModel& dependency_parser_model) { - if (features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) { -@@ -145,7 +150,9 @@ void ReadAloudAppModel::PreprocessPhrasesForText( - DLOG(WARNING) << "Phrase calculation done."; - } + DependencyParserModel& ReadAloudAppModel::GetDependencyParserModel() { + return GetDependencyParserModel_(); } +#endif +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) void ReadAloudAppModel::CalculatePhrases( - DependencyParserModel& dependency_parser_model, a11y::ReadAloudCurrentGranularity& granularity) { -@@ -200,6 +207,7 @@ void ReadAloudAppModel::CalculatePhrases( - smart_highlight, tokenized_sentence, token_boundaries, Strategy::kWords, - /* max_words_per_phrase=*/5); + if (!features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) { +@@ -206,19 +213,23 @@ void ReadAloudAppModel::CalculatePhrases( + base::BindOnce(&ReadAloudAppModel::UpdatePhraseBoundaries, + weak_ptr_factory_.GetWeakPtr(), phrase_tokens)); } +#endif +-static const Strategy kPhraseStrategy = Strategy::kWords; +-static const int kPhraseStrategyParameter = 5; ++[[maybe_unused]] static const Strategy kPhraseStrategy = Strategy::kWords; ++[[maybe_unused]] static const int kPhraseStrategyParameter = 5; + + void ReadAloudAppModel::StartPhraseCalculation() { + if (processed_granularities_on_current_page_.size() > 0) { + current_phrase_calculation_index_ = 0; ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + CalculatePhrases(processed_granularities_on_current_page_[0]); ++#endif + } + } + + void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, + std::vector heads) { ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + // Reset the phrase calculation flag, so that the next phrase calculation can + // be scheduled, if needed. + is_calculating_phrases = false; +@@ -279,6 +290,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, + current_phrase_calculation_index_ = -1; + LOG(WARNING) << "All phrases calculated!"; + } ++#endif + } + // TODO(crbug.com/40927698): Update to use AXRange to better handle multiple - // nodes. This may require updating GetText in ax_range.h to return AXNodeIds. diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h --- a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h +++ b/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h @@ -354,28 +364,38 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "ui/accessibility/ax_node_position.h" -@@ -87,7 +90,9 @@ class ReadAloudAppModel { +@@ -87,8 +90,10 @@ class ReadAloudAppModel { bool is_docs, const std::set* current_nodes); +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - void PreprocessPhrasesForText(DependencyParserModel& dependency_parser_model); + // Get the dependency parsing model for this renderer process. + DependencyParserModel& GetDependencyParserModel(); +#endif // Increments the processed_granularity_index_, updating ReadAloud's state of // the current granularity to refer to the next granularity. The current -@@ -241,9 +246,11 @@ class ReadAloudAppModel { +@@ -242,9 +247,11 @@ class ReadAloudAppModel { // still needs to be read. bool NoValidTextRemainingInCurrentNode(bool is_pdf, bool is_docs) const; +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - // Segment the given granularity into phrases with the given model. - void CalculatePhrases(DependencyParserModel& dependency_parser_model, - a11y::ReadAloudCurrentGranularity& granularity); + // Asynchronously segment the given granularity into phrases. Once the phrases + // are calculated, `UpdatePhraseBoundaries` will be called. + void CalculatePhrases(a11y::ReadAloudCurrentGranularity& granularity); +#endif - // Whether Read Aloud speech is currently playing or not. - bool speech_playing_ = false; + // Once the phrase segmentation has completed for a given sentence, update the + // granularity with the phrase boundaries, and calculate phrases for the next +@@ -306,7 +313,7 @@ class ReadAloudAppModel { + + // Whether a phrase calculation for a sentence is currently underway. (We + // do not initiate a second calculation before the first has completed.) +- bool is_calculating_phrases = false; ++ [[maybe_unused]] bool is_calculating_phrases = false; + + // Which sentence (index into `processed_granularities_on_current_page`) is + // currently being processed for phrases. -1 if none. diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc --- a/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc +++ b/chrome/renderer/accessibility/read_anything/read_anything_app_controller.cc @@ -389,29 +409,15 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "chrome/renderer/accessibility/read_anything/read_anything_node_utils.h" #include "components/language/core/common/locale_util.h" -@@ -363,11 +365,13 @@ SkBitmap CorrectColorOfBitMap(SkBitmap& originalBitmap) { - return converted; - } - -+#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - // Returns the dependency parser model for this renderer process. - DependencyParserModel& GetDependencyParserModel() { - static base::NoDestructor instance; - return *instance; - } -+#endif - - } // namespace - -@@ -1457,6 +1461,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1444,6 +1446,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) // Get the dependency parser model used by phrase-based highlighting. - DependencyParserModel& dependency_parser_model = GetDependencyParserModel(); - if (dependency_parser_model.IsAvailable()) { -@@ -1466,6 +1471,7 @@ void ReadAnythingAppController::OnConnected() { + if (read_aloud_model_.GetDependencyParserModel().IsAvailable()) { + return; +@@ -1452,6 +1455,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -419,7 +425,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -1675,6 +1681,7 @@ std::vector ReadAnythingAppController::GetCurrentText() { +@@ -1661,11 +1665,13 @@ std::vector ReadAnythingAppController::GetCurrentText() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -427,28 +433,26 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr const std::set* node_ids = model_.selection_node_ids().empty() ? &model_.display_node_ids() : &model_.selection_node_ids(); -@@ -1684,6 +1691,7 @@ void ReadAnythingAppController::PreprocessTextForSpeech() { - DependencyParserModel& model = GetDependencyParserModel(); - read_aloud_model_.PreprocessPhrasesForText(model); - } + read_aloud_model_.PreprocessTextForSpeech(model_.is_pdf(), model_.IsDocs(), + node_ids); +#endif } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -1857,14 +1865,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -1843,14 +1849,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) - DependencyParserModel& dependency_parser_model = GetDependencyParserModel(); - dependency_parser_model.UpdateWithFile(std::move(model_file)); + read_aloud_model_.GetDependencyParserModel().UpdateWithFile( + std::move(model_file)); +#endif } +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) DependencyParserModel& ReadAnythingAppController::GetDependencyParserModelForTesting() { - return GetDependencyParserModel(); + return read_aloud_model_.GetDependencyParserModel(); } +#endif @@ -514,10 +518,10 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc services.Add(RunScreenAIServiceFactory); #endif // !BUILDFLAG(IS_ANDROID) -diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc ---- a/components/autofill/core/browser/autofill_optimization_guide.cc -+++ b/components/autofill/core/browser/autofill_optimization_guide.cc -@@ -208,6 +208,7 @@ void AutofillOptimizationGuide::OnDidParseForm( +diff --git a/components/autofill/core/browser/integrators/autofill_optimization_guide.cc b/components/autofill/core/browser/integrators/autofill_optimization_guide.cc +--- a/components/autofill/core/browser/integrators/autofill_optimization_guide.cc ++++ b/components/autofill/core/browser/integrators/autofill_optimization_guide.cc +@@ -206,6 +206,7 @@ void AutofillOptimizationGuide::OnDidParseForm( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { // Register all optimization types that we need based on `form_structure`. @@ -525,7 +529,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -259,7 +260,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( +@@ -257,7 +258,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( const AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -534,7 +538,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -285,7 +286,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( +@@ -283,7 +284,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -546,7 +550,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -48,7 +48,9 @@ +@@ -49,7 +49,9 @@ #include "components/omnibox/browser/autocomplete_input.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -556,7 +560,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" #include "components/omnibox/browser/bookmark_provider.h" #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" -@@ -120,6 +122,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -119,6 +121,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -564,7 +568,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ void RecordMlScoreCoverage(size_t matches_with_non_null_scores, size_t total_scored_matches) { int percent_score_coverage = -@@ -228,6 +231,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -227,6 +230,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -594,7 +598,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op switch (optimization_type_decision) { case OptimizationTypeDecision::kAllowedByOptimizationFilter: case OptimizationTypeDecision::kAllowedByHint: -@@ -1114,6 +1115,7 @@ void HintsManager::CanApplyOptimizationOnDemand( +@@ -1100,6 +1101,7 @@ void HintsManager::CanApplyOptimizationOnDemand( OnDemandOptimizationGuideDecisionRepeatingCallback callback, std::optional request_context_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -602,7 +606,7 @@ diff --git a/components/optimization_guide/core/hints_manager.cc b/components/op InsertionOrderedSet urls_to_fetch; InsertionOrderedSet hosts_to_fetch; -@@ -1417,6 +1419,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( +@@ -1403,6 +1405,9 @@ OptimizationTypeDecision HintsManager::CanApplyOptimization( bool skip_cache, OptimizationMetadata* optimization_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -627,7 +631,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -422,8 +418,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -450,8 +446,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -637,8 +641,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -864,5 +859,13 @@ int GetOnDeviceModelValidationAttemptCount() { - return kParam.Get(); +@@ -897,5 +892,13 @@ bool IsPrivacyGuideAiSettingsEnabled() { + return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } +SET_CROMITE_FEATURE_DISABLED(kOptimizationHints); @@ -715,20 +719,30 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc --- a/components/page_content_annotations/core/page_content_annotations_features.cc +++ b/components/page_content_annotations/core/page_content_annotations_features.cc -@@ -263,4 +263,9 @@ size_t MaxRelatedSearchesCacheSize() { +@@ -255,4 +255,8 @@ size_t MaxRelatedSearchesCacheSize() { "max_related_searches_cache_size", 10); } +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations); +SET_CROMITE_FEATURE_DISABLED(kRemotePageMetadata); -+SET_CROMITE_FEATURE_DISABLED(kPageVisibilityBatchAnnotations); +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsValidation); +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotationsPersistSalientImageMetadata); } // namespace page_content_annotations::features +diff --git a/components/page_content_annotations/core/page_content_annotations_model_manager.cc b/components/page_content_annotations/core/page_content_annotations_model_manager.cc +--- a/components/page_content_annotations/core/page_content_annotations_model_manager.cc ++++ b/components/page_content_annotations/core/page_content_annotations_model_manager.cc +@@ -44,6 +44,7 @@ PageContentAnnotationsModelManager::~PageContentAnnotationsModelManager() = + void PageContentAnnotationsModelManager::SetUpPageVisibilityModel( + optimization_guide::OptimizationGuideModelProvider* + optimization_guide_model_provider) { ++ if ((true)) return; // was kPageVisibilityBatchAnnotations + if (page_visibility_model_handler_) + return; + diff --git a/components/safe_browsing/core/common/features.cc b/components/safe_browsing/core/common/features.cc --- a/components/safe_browsing/core/common/features.cc +++ b/components/safe_browsing/core/common/features.cc -@@ -228,6 +228,7 @@ BASE_FEATURE(kLogAccountEnhancedProtectionStateInProtegoPings, +@@ -234,6 +234,7 @@ BASE_FEATURE(kLocalListsUseSBv5, BASE_FEATURE(kOnDeviceNotificationContentDetectionModel, "OnDeviceNotificationContentDetectionModel", base::FEATURE_DISABLED_BY_DEFAULT); @@ -789,10 +803,21 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni # Enable logging of TFLite profiling information on MLGraph destruction. webnn_enable_tflite_profiler = false +diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc +--- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc ++++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc +@@ -1764,6 +1764,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( + } + + bool HTMLDocumentParser::ShouldSkipPreloadScan() { ++ if ((true)) return true; // see https://wpt.live/html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html + // Check if Document-Policy has Expect-No-Linked-Resources hint. + auto* document = GetDocument(); + if (const auto* context = document->GetExecutionContext()) { diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -642,6 +642,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -641,6 +641,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -803,7 +828,7 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3363,7 +3363,7 @@ +@@ -3385,7 +3385,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/cromite_patches/Disable-all-promo-dialogs.patch b/build/cromite_patches/Disable-all-promo-dialogs.patch index aff148b005283b625713bdc48189aa949b417387..3da7a8e366bcf3256982a4bc5c9da31c42a56180 100644 --- a/build/cromite_patches/Disable-all-promo-dialogs.patch +++ b/build/cromite_patches/Disable-all-promo-dialogs.patch @@ -4,20 +4,20 @@ Subject: Disable all promo dialogs License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 + - chrome/browser/ui/browser_ui_prefs.cc | 2 +- - .../views/profiles/profile_picker_feature_promo_controller.cc | 1 + - .../user_education/impl/browser_feature_promo_controller_20.cc | 1 + - .../chrome/browser/user_education/UserEducationHelper.java | 1 + - .../common/feature_promo/feature_promo_registry.cc | 2 ++ - .../common/feature_promo/impl/feature_promo_controller_20.cc | 1 + - .../common/feature_promo/impl/feature_promo_controller_25.cc | 1 + - 8 files changed, 9 insertions(+), 1 deletion(-) + .../chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java | 1 + + chrome/browser/ui/browser_ui_prefs.cc | 2 +- + .../views/profiles/profile_picker_feature_promo_controller.cc | 1 + + .../user_education/impl/browser_feature_promo_controller_20.cc | 1 + + .../chrome/browser/user_education/UserEducationHelper.java | 1 + + .../common/feature_promo/feature_promo_registry.cc | 2 ++ + .../common/feature_promo/impl/feature_promo_controller_20.cc | 1 + + .../common/feature_promo/impl/feature_promo_controller_25.cc | 3 ++- + 8 files changed, 10 insertions(+), 2 deletions(-) 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 -@@ -1379,6 +1379,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1465,6 +1465,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -148,7 +148,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -151,7 +151,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -57,8 +57,8 @@ diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_c ui::TrackedElement* anchor_element) const { + if ((true)) return false; // Trying to show an IPH while the browser is closing can cause problems; - // see crbug.com/346461762 for an example. - if (browser_view_->browser()->IsBrowserClosing()) { + // see crbug.com/346461762 for an example. This can also crash unit_tests that + // use a BrowserWindow but not a browser, so also check if the browser view's diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java @@ -92,7 +92,7 @@ diff --git a/components/user_education/common/feature_promo/feature_promo_regist diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc --- a/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc +++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_20.cc -@@ -89,6 +89,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( +@@ -99,6 +99,7 @@ FeaturePromoResult FeaturePromoController20::CanShowPromoCommon( const FeaturePromoParams& params, ShowSource source, CanShowPromoOutputs* outputs) const { @@ -103,12 +103,21 @@ diff --git a/components/user_education/common/feature_promo/impl/feature_promo_c diff --git a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc --- a/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc +++ b/components/user_education/common/feature_promo/impl/feature_promo_controller_25.cc -@@ -48,6 +48,7 @@ FeaturePromoResult FeaturePromoController25::CanShowPromoCommon( - const FeaturePromoParams& params, - ShowSource source, - CanShowPromoOutputs* outputs) const { +@@ -172,6 +172,7 @@ FeaturePromoController25::~FeaturePromoController25() { + + FeaturePromoResult FeaturePromoController25::CanShowPromo( + const FeaturePromoParams& params) const { + if ((true)) return FeaturePromoResult::kBlockedByContext; - return FeaturePromoResult::kError; - } + auto* const spec = registry()->GetParamsForFeature(*params.feature); + return spec ? private_->queues.CanShow(*spec, params) + : FeaturePromoResult::kError; +@@ -184,7 +185,7 @@ void FeaturePromoController25::MaybeShowStartupPromo( + void FeaturePromoController25::MaybeShowPromo(FeaturePromoParams params) { + auto* const spec = registry()->GetParamsForFeature(*params.feature); +- if (!spec) { ++ if (((true)) || !spec) { + PostShowPromoResult(std::move(params.show_promo_result_callback), + FeaturePromoResult::kError); + return; -- diff --git a/build/cromite_patches/Disable-conversion-measurement-api.patch b/build/cromite_patches/Disable-conversion-measurement-api.patch index 27879db234faa4802fa0a35443c6975b3ca9fae3..ca239642e8d539199d54cec4c72d0552913a4c5a 100644 --- a/build/cromite_patches/Disable-conversion-measurement-api.patch +++ b/build/cromite_patches/Disable-conversion-measurement-api.patch @@ -12,39 +12,47 @@ 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 --- .../browser/aw_content_browser_client.cc | 3 + + ..._token_key_commitments_component_loader.cc | 1 + .../chromium/android_webview/AwSettings.java | 4 +- chrome/android/java/AndroidManifest.xml | 4 - + .../ChromeSiteSettingsDelegate.java | 2 + + .../k_anonymity_trust_token_getter.cc | 2 +- + .../settings/privacy_page/privacy_page.html | 5 - + chrome/browser/resources/settings/route.ts | 2 +- + .../site_settings_page/site_settings_page.ts | 1 + .../aggregatable_trigger_config.cc | 2 +- components/attribution_reporting/features.cc | 1 + - .../origin_trials/features.cc | 2 + + .../core/browser/content_settings_registry.cc | 2 +- + .../origin_trials/features.cc | 1 + .../render_view_context_menu_base.cc | 3 - .../aggregatable_report_sender.cc | 15 +- - .../aggregation_service_features.cc | 1 + .../attribution_data_host_manager_impl.cc | 2 + .../attribution_reporting/attribution_host.cc | 1 + .../attribution_os_level_manager.cc | 3 +- .../attribution_report_network_sender.cc | 9 + .../attribution_storage_sql.cc | 8 +- - content/browser/storage_partition_impl.cc | 9 - + .../renderer_host/render_frame_host_impl.cc | 11 + + content/browser/storage_partition_impl.cc | 12 - content/public/android/BUILD.gn | 2 - .../browser/AttributionOsLevelManager.java | 349 +----------------- .../public/browser/content_browser_client.cc | 7 +- .../public/browser/navigation_controller.cc | 1 - - .../Disable-conversion-measurement-api.inc | 3 + - .../Disable-conversion-measurement-api.inc | 9 + + .../Disable-conversion-measurement-api.inc | 1 + + .../Disable-conversion-measurement-api.inc | 8 + .../attribution/request_headers_internal.cc | 1 + + services/network/network_context.cc | 2 + .../network/public/cpp/attribution_utils.cc | 2 + third_party/blink/renderer/core/page/page.cc | 2 +- - .../platform/runtime_enabled_features.json5 | 10 +- + .../platform/runtime_enabled_features.json5 | 14 +- ui/events/android/motion_event_android.cc | 8 +- - 26 files changed, 79 insertions(+), 382 deletions(-) + 34 files changed, 96 insertions(+), 395 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1321,6 +1321,7 @@ network::mojom::AttributionSupport +@@ -1298,6 +1298,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -52,7 +60,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1339,6 +1340,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1316,6 +1317,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -61,6 +69,17 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv AwBrowserContext* aw_context = static_cast(browser_context); // WebView only supports OS-level attribution and not web-attribution. +diff --git a/android_webview/browser/component_updater/trust_token_key_commitments_component_loader.cc b/android_webview/browser/component_updater/trust_token_key_commitments_component_loader.cc +--- a/android_webview/browser/component_updater/trust_token_key_commitments_component_loader.cc ++++ b/android_webview/browser/component_updater/trust_token_key_commitments_component_loader.cc +@@ -20,6 +20,7 @@ namespace android_webview { + // Tokens is enabled. + void LoadTrustTokenKeyCommitmentsComponent( + ComponentLoaderPolicyVector& policies) { ++ if ((true)) return; + DVLOG(1) + << "Registering Trust Token Key Commitments component for loading in " + "embedded WebView."; diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java @@ -93,7 +112,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro +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 +@@ -152,6 +152,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { + // not great to dynamically remove the preference in this way. + case SiteSettingsCategory.Type.ADS: + return SiteSettingsCategory.adsCategoryEnabled(); ++ case SiteSettingsCategory.Type.ANTI_ABUSE: ++ return false; + case SiteSettingsCategory.Type.AUTO_DARK_WEB_CONTENT: + return ChromeFeatureList.isEnabled( + ChromeFeatureList.DARKEN_WEBSITES_CHECKBOX_IN_THEMES_SETTING); +diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc +--- a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc ++++ b/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.cc +@@ -119,7 +119,7 @@ KAnonymityTrustTokenGetter::~KAnonymityTrustTokenGetter() = default; + + void KAnonymityTrustTokenGetter::TryGetTrustTokenAndKey( + TryGetTrustTokenAndKeyCallback callback) { +- if (!identity_manager_ || ++ if (((true)) || !identity_manager_ || + !identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { + std::move(callback).Run(std::nullopt); + return; +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 +@@ -635,11 +635,6 @@ + + + +- +