diff --git a/build/RELEASE b/build/RELEASE index a41fbcc7..10791ae2 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -136.0.7103.125 \ No newline at end of file +137.0.7151.44 \ No newline at end of file diff --git a/build/cromite.gn_args b/build/cromite.gn_args index 0b26f49d..f827aae4 100644 --- a/build/cromite.gn_args +++ b/build/cromite.gn_args @@ -4,10 +4,8 @@ build_contextual_search=false build_with_tflite_lib=false chrome_pgo_phase=0 dcheck_always_on=false -dfmify_dev_ui=false disable_android_lint=true disable_fieldtrial_testing_config=true -enable_gvr_services=false enable_hangout_services_extension=false enable_iterator_debugging=false enable_mdns=false @@ -119,6 +117,9 @@ if (target_os == "android") { chrome_pgo_phase = 2 # enable pgo + # do not split Developer UI split into a separate Dynamic Feature Module + dfmify_dev_ui = false + if (getenv("USE_KEYSTORE") != "") { android_keystore_path = "/home/lg/working_dir/cromite.keystore" android_keystore_name = "cromite" @@ -136,6 +137,9 @@ if (target_os == "android") { symbol_level = 1 strip_debug_info = false generate_linker_map = false + + # Disable static analysis + android_static_analysis = "off" } else { generate_linker_map = true } diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 10779853..cabdd877 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -3,6 +3,7 @@ Do-not-check-for-the-presence-of-use-remoteexec.patch bromite-build-utils.patch Add-cromite-flags-support.patch Force-use-vpython3-for-some-scripts.patch +Permit-PGO-for-debug-builds.patch Fix-chromium-vanilla.patch Final-patch-for-chromium-vanilla.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 66f9d6d1..2276e291 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -90,7 +90,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3344,6 +3344,10 @@ +@@ -3479,6 +3479,10 @@ "chrome-signin-team@google.com" ], "expiry_milestone": 138 @@ -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) -@@ -688,6 +689,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -684,6 +685,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index 187285e9..ceada304 100644 --- a/build/patches/Add-AllowUserCertificates-flag.patch +++ b/build/patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -228,6 +228,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -229,6 +229,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; -@@ -984,6 +985,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -977,6 +978,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -163,6 +163,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -170,6 +170,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,15 +51,15 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -158,6 +158,7 @@ public abstract class ChromeFeatureList { - // Feature names. - /* Alphabetical: */ +@@ -160,6 +160,7 @@ public abstract class ChromeFeatureList { public static final String ACT_USER_BYPASS_UX = "ActUserBypassUx"; + public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = + "AdaptiveButtonInTopToolbarCustomizationV2"; + 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 = -@@ -641,6 +642,8 @@ public abstract class ChromeFeatureList { + public static final String ALLOW_NEW_INCOGNITO_TAB_INTENTS = "AllowNewIncognitoTabIntents"; +@@ -649,6 +650,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupLargeScreen = newCachedFlag(ANDROID_WINDOW_POPUP_LARGE_SCREEN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); @@ -68,14 +68,14 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false, true); public static final CachedFlag sAsyncNotificationManagerForDownload = -@@ -858,6 +861,7 @@ public abstract class ChromeFeatureList { +@@ -862,6 +865,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowserChromium = List.of( sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, + sAndroidAppIntegrationMultiDataSource, sAndroidAppIntegrationV2, - sAndroidAppIntegrationWithFavicon, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index 84a7969d..e4eae079 100644 --- a/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/build/patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -4,19 +4,22 @@ Subject: Add Alt+D hotkey to focus address bar License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../java/src/org/chromium/chrome/browser/KeyboardShortcuts.java | 2 ++ - 1 file changed, 2 insertions(+) + .../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++ + 1 file changed, 5 insertions(+) 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 -@@ -628,6 +628,8 @@ public class KeyboardShortcuts { - R.string.keyboard_shortcut_address_bar, - KeyEvent.KEYCODE_L, - KeyEvent.META_CTRL_ON); -+ addShortcut(context, chromeFeatureShortcutGroup, R.string.keyboard_shortcut_address_bar, -+ KeyEvent.KEYCODE_D, KeyEvent.META_ALT_ON); - shortcutGroups.add(chromeFeatureShortcutGroup); +@@ -830,6 +830,11 @@ public class KeyboardShortcuts { + KeyEvent.KEYCODE_B, + (KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)); + } ++ addShortcut(context, ++ shortcutGroupsById.get(R.string.keyboard_shortcut_chrome_feature_group_header), ++ R.string.keyboard_shortcut_address_bar, ++ KeyEvent.KEYCODE_D, ++ KeyEvent.META_ALT_ON); + return new ArrayList<>(shortcutGroupsById.values()); + } - KeyboardShortcutGroup webpageShortcutGroup = -- diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index aff9a9e3..718d27e2 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -125,6 +125,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, +@@ -133,6 +133,10 @@ BASE_FEATURE(kPostGetMyMemoryStateToBackground, FEATURE_ENABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index d0cc5837..af48fb07 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -7921,9 +7921,9 @@ +@@ -8152,9 +8152,9 @@ "expiry_milestone": 140 }, { @@ -33,9 +33,9 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc @@ -257,6 +257,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { + {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, + {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, - {wf::EnablePushMessagingSubscriptionChange, - raw_ref(features::kPushSubscriptionChangeEvent)}, + {wf::EnableRestrictGamepadAccess, + raw_ref(features::kRestrictGamepadAccess)}, {wf::EnableSecurePaymentConfirmation, diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 5e69a048..b5245fdd 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -78,7 +78,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -79,6 +79,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -100,6 +100,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"; @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -335,6 +335,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -363,6 +363,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -195,6 +195,8 @@ +@@ -202,6 +202,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/extensions/background_mode_manager.h" #endif -@@ -1562,6 +1564,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1578,6 +1580,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -218,7 +218,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/prefs/chrome_command_line_pref_store.cc b/chrome/browser/prefs/chrome_command_line_pref_store.cc --- a/chrome/browser/prefs/chrome_command_line_pref_store.cc +++ b/chrome/browser/prefs/chrome_command_line_pref_store.cc -@@ -156,7 +156,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { +@@ -160,7 +160,7 @@ void ChromeCommandLinePrefStore::ApplyProxyMode() { command_line()->GetSwitchValueASCII(switches::kProxyBypassList); SetValue(proxy_config::prefs::kProxy, base::Value(ProxyConfigDictionary::CreateFixedServers( @@ -661,7 +661,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -225,6 +225,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", @@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_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 -@@ -54,6 +54,9 @@ +@@ -55,6 +55,9 @@ #include "extensions/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h" @@ -683,7 +683,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_NACL) #include "chrome/browser/ui/webui/nacl_ui.h" #endif -@@ -395,7 +398,7 @@ void RegisterChromeWebUIConfigs() { +@@ -406,7 +409,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1135,7 +1135,7 @@ new file mode 100644 diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc --- a/chrome/common/webui_url_constants.cc +++ b/chrome/common/webui_url_constants.cc -@@ -50,6 +50,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -51,6 +51,7 @@ bool IsSystemWebUIHost(std::string_view host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1143,7 +1143,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -71,6 +72,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -72,6 +73,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({ @@ -1154,10 +1154,10 @@ 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 -@@ -161,6 +161,8 @@ inline constexpr char kChromeUINetExportHost[] = "net-export"; - inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -163,6 +163,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; + inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; +inline constexpr char16_t kChromeUIProxyConfigURL16[] = u"chrome://proxy/"; +inline constexpr char kChromeUIProxyConfigHost[] = "proxy"; inline constexpr char kChromeUINewTabPageHost[] = "new-tab-page"; @@ -1350,8 +1350,8 @@ diff --git a/net/proxy_resolution/pac_file_fetcher_impl.cc b/net/proxy_resolutio diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_config.cc --- a/net/proxy_resolution/proxy_config.cc +++ b/net/proxy_resolution/proxy_config.cc -@@ -129,7 +129,7 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, - std::move(url_scheme), &single_proxies, ProxyServer::SCHEME_HTTP, +@@ -133,7 +133,7 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules, + url_scheme, &single_proxies, ProxyServer::SCHEME_HTTP, allow_bracketed_proxy_chains, is_quic_allowed); type = Type::PROXY_LIST; - return; @@ -1359,7 +1359,7 @@ diff --git a/net/proxy_resolution/proxy_config.cc b/net/proxy_resolution/proxy_c } // Trim whitespace off the url scheme. -@@ -160,6 +160,57 @@ void ProxyConfig::ProxyRules::ParseFromString(const std::string& proxy_rules, +@@ -164,6 +164,57 @@ void ProxyConfig::ProxyRules::ParseFromString(std::string_view proxy_rules, } } @@ -1421,7 +1421,7 @@ diff --git a/net/proxy_resolution/proxy_config.h b/net/proxy_resolution/proxy_co --- a/net/proxy_resolution/proxy_config.h +++ b/net/proxy_resolution/proxy_config.h @@ -107,6 +107,9 @@ class NET_EXPORT ProxyConfig { - void ParseFromString(const std::string& proxy_rules, + void ParseFromString(std::string_view proxy_rules, bool allow_bracketed_proxy_chains = false, bool is_quic_allowed = false); + // Returns the proxy rules in a format that can be parsed by ParseFromString; diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 8cd14b20..818cdfb2 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -26,12 +26,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AlwaysIncognitoLinkInterceptor.java | 54 ++++++ .../chrome/browser/ChromeTabbedActivity.java | 28 ++- .../chrome/browser/app/ChromeActivity.java | 4 + - .../AppMenuPropertiesDelegateImpl.java | 28 ++- + .../AppMenuPropertiesDelegateImpl.java | 7 +- .../ChromeContextMenuPopulator.java | 6 +- .../CustomTabActivityLifecycleUmaTracker.java | 39 ----- .../CustomTabAppMenuPropertiesDelegate.java | 4 + .../CustomTabIntentDataProvider.java | 10 ++ - .../browser/download/DownloadUtils.java | 16 +- + .../browser/download/DownloadUtils.java | 13 +- .../history/HistoryContentManager.java | 7 +- .../browser/history/HistoryManager.java | 27 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ @@ -42,6 +42,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../HistoricalTabModelObserver.java | 5 +- .../tab/tab_restore/HistoricalTabSaver.java | 2 +- .../tab_restore/HistoricalTabSaverImpl.java | 17 +- + .../TabbedAppMenuPropertiesDelegate.java | 17 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + @@ -68,6 +69,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + .../browser/ui/native_page/NativePage.java | 22 ++- + .../browser/omnibox/LocationBarMediator.java | 10 +- .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 5 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + @@ -86,7 +88,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 + - 67 files changed, 796 insertions(+), 112 deletions(-) + 69 files changed, 798 insertions(+), 113 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 @@ -99,7 +101,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 -@@ -645,6 +645,7 @@ chrome_java_resources = [ +@@ -648,6 +648,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", @@ -118,7 +120,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", -@@ -880,6 +881,7 @@ chrome_java_sources = [ +@@ -898,6 +899,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", @@ -171,7 +173,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 -@@ -91,6 +91,11 @@ found in the LICENSE file. +@@ -90,6 +90,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" /> @@ -245,7 +247,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -72,6 +72,10 @@ import org.chromium.base.task.TaskTraits; +@@ -73,6 +73,10 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -256,7 +258,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; -@@ -705,14 +709,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -720,14 +724,19 @@ public class ChromeTabbedActivity extends ChromeActivity { Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -283,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -2733,8 +2742,9 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2798,8 +2807,9 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine the model as soon as possible so every systems get initialized coherently. boolean startIncognito = @@ -304,9 +306,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; + import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; - import org.chromium.chrome.browser.download.DownloadUtils; -@@ -1977,6 +1978,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1967,6 +1968,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -319,58 +321,16 @@ 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 -@@ -41,6 +41,8 @@ import org.chromium.build.BuildConfig; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.ActivityTabProvider; - import org.chromium.chrome.browser.ai.AiAssistantService; -+import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; -+import org.chromium.chrome.browser.profiles.ProfileManager; - import org.chromium.chrome.browser.bookmarks.BookmarkModel; - import org.chromium.chrome.browser.bookmarks.PowerBookmarkUtils; - import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; -@@ -106,6 +108,10 @@ import java.util.ArrayList; +@@ -89,6 +89,8 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -+import org.chromium.components.prefs.PrefService; -+import org.chromium.components.user_prefs.UserPrefs; -+import org.chromium.chrome.browser.preferences.Pref; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -617,6 +623,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - - private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { -+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (always_incognito) { -+ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); -+ if (newTabOption != null) -+ newTabOption.setVisible(false); -+ } -+ - // 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; -@@ -676,7 +689,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - } - - if (item.getItemId() == R.id.recent_tabs_menu_id) { -- item.setVisible(!isIncognito); -+ if (always_incognito) { -+ PrefService prefService = -+ UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ boolean historyEnabledInIncognito = -+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ item.setVisible(historyEnabledInIncognito); -+ } -+ else -+ item.setVisible(!isIncognito); - } - if (item.getItemId() == R.id.menu_select_tabs) { - item.setVisible(isMenuSelectTabsVisible); -@@ -884,8 +905,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -494,8 +496,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -385,7 +345,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 -@@ -29,6 +29,7 @@ import org.chromium.base.ContextUtils; +@@ -31,6 +31,7 @@ import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; @@ -393,7 +353,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ListItemType; -@@ -293,6 +294,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -347,6 +348,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { public List> buildContextMenu() { mShowEphemeralTabNewLabel = null; @@ -403,7 +363,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List> groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -350,7 +354,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -417,7 +421,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -472,7 +432,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.app.appmenu.DividerLineMenuItemViewBinder; -@@ -218,6 +219,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -485,7 +445,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 -@@ -86,6 +86,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -93,6 +93,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -531,24 +491,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ public class DownloadUtils { private static final String TAG = "download"; -@@ -302,7 +307,16 @@ public class DownloadUtils { - // Offline pages isn't supported in Incognito. This should be checked before calling - // OfflinePageBridge.getForProfile because OfflinePageBridge instance will not be found - // for incognito profile. -- if (tab.isIncognito()) return false; -+ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (always_incognito) { -+ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); -+ boolean historyEnabledInIncognito = -+ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); -+ if (historyEnabledInIncognito == false) -+ return false; -+ } else { -+ if (tab.isIncognito()) return false; -+ } +@@ -302,7 +307,13 @@ public class DownloadUtils { + public static boolean isAllowedToDownloadPage(Tab tab) { + if (tab == null) return false; - // Check if the page url is supported for saving. Only HTTP and HTTPS pages are allowed. - if (!OfflinePageBridge.canSavePage(tab.getUrl())) return false; +- if (tab.isIncognito() ++ boolean historyEnabledInIncognito = false; ++ if (AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()) { ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ historyEnabledInIncognito = ++ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); ++ } ++ if (tab.isIncognito() && !historyEnabledInIncognito + && !ChromeFeatureList.isEnabled( + ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD)) { + return false; 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 @@ -917,7 +874,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; -@@ -239,6 +240,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -244,6 +245,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -1033,10 +990,51 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore void createHistoricalGroup( TabModel model, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +@@ -24,6 +24,7 @@ import org.chromium.base.supplier.Supplier; + import org.chromium.build.BuildConfig; + import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.R; ++import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + import org.chromium.chrome.browser.ActivityTabProvider; + import org.chromium.chrome.browser.ai.AiAssistantService; + import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; +@@ -316,6 +317,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + } + + private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { ++ boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); ++ if (always_incognito) { ++ final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); ++ if (newTabOption != null) ++ newTabOption.setVisible(false); ++ } ++ + // 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; +@@ -375,7 +383,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + } + + if (item.getItemId() == R.id.recent_tabs_menu_id) { +- item.setVisible(!isIncognito); ++ if (always_incognito) { ++ boolean historyEnabledInIncognito = ++ UserPrefs.get(currentTab.getProfile()).getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); ++ item.setVisible(historyEnabledInIncognito); ++ } ++ else { ++ item.setVisible(!isIncognito); ++ } + } + if (item.getItemId() == R.id.menu_select_tabs) { + item.setVisible(isMenuSelectTabsVisible); 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 -@@ -201,6 +201,8 @@ import org.chromium.ui.InsetObserver; +@@ -207,6 +207,8 @@ import org.chromium.ui.InsetObserver; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1045,7 +1043,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; -@@ -1174,7 +1176,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1182,7 +1184,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1068,7 +1066,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 implements NeedsTabModel, NeedsTabModelOrderController { -@@ -520,7 +524,6 @@ public class ChromeTabCreator extends TabCreator +@@ -523,7 +527,6 @@ public class ChromeTabCreator extends TabCreator // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1085,9 +1083,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod import org.chromium.base.supplier.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.flags.ActivityType; + import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.ntp.RecentlyClosedBridge; - import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -121,6 +122,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod +@@ -119,6 +120,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1099,7 +1097,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -50,6 +50,8 @@ import org.chromium.chrome.browser.tabpersistence.TabStateFileManager; +@@ -51,6 +51,8 @@ import org.chromium.chrome.browser.tabwindow.TabWindowManager; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; @@ -1108,7 +1106,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; -@@ -833,6 +835,13 @@ public class TabPersistentStore { +@@ -835,6 +837,13 @@ public class TabPersistentStore { } } } @@ -1131,9 +1129,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.IntentHandler; - import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; + import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -754,7 +755,7 @@ public class ToolbarManager +@@ -807,7 +808,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1257,8 +1255,8 @@ 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 -@@ -376,6 +376,15 @@ ChromeAutocompleteProviderClient::GetProviderStateService() const { - return ProviderStateServiceFactory::GetForProfile(profile_); +@@ -409,6 +409,15 @@ ChromeAutocompleteProviderClient::GetTabGroupSyncService() const { + return tab_groups::TabGroupSyncServiceFactory::GetForProfile(profile_); } +bool ChromeAutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { @@ -1276,9 +1274,9 @@ 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 -@@ -89,6 +89,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { - OnDeviceTailModelService* GetOnDeviceTailModelService() const override; +@@ -96,6 +96,7 @@ class ChromeAutocompleteProviderClient : public AutocompleteProviderClient { ProviderStateService* GetProviderStateService() const override; + tab_groups::TabGroupSyncService* GetTabGroupSyncService() const override; bool IsOffTheRecord() const override; + bool IsAlwaysIncognitoEnabled() const override; bool IsIncognitoProfile() const override; @@ -1344,7 +1342,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c #include "components/content_settings/core/browser/content_settings_pref_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/permissions/features.h" -@@ -105,9 +106,25 @@ scoped_refptr +@@ -117,9 +118,25 @@ scoped_refptr GetForProfile(original_profile); bool should_record_metrics = profiles::IsRegularUserProfile(profile); @@ -1371,9 +1369,9 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c /*store_last_modified=*/true, profile->ShouldRestoreOldSessionCookies(), should_record_metrics)); -@@ -116,6 +133,9 @@ scoped_refptr - settings_map->RegisterProvider(ProviderType::kWebuiAllowlistProvider, - std::move(allowlist_provider)); +@@ -137,6 +154,9 @@ scoped_refptr + std::move(component_extension_provider)); + #endif // BUILDFLAG(IS_CHROMEOS) + if (always_incognito_enabled) + return settings_map; @@ -1394,7 +1392,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -549,6 +552,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -570,6 +573,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1408,7 +1406,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -556,6 +566,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -577,6 +587,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1757,7 +1755,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -244,6 +244,7 @@ +@@ -252,6 +252,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1765,7 +1763,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/preferences/browser_prefs_android.h" -@@ -2008,6 +2009,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2033,6 +2034,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1923,10 +1921,40 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ return NativePageType.RECENT_TABS; } else if (UrlConstants.EXPLORE_HOST.equals(host)) { return NativePageType.EXPLORE; +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 +@@ -89,6 +89,11 @@ import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.interpolators.Interpolators; + import org.chromium.url.GURL; + ++import org.chromium.components.user_prefs.UserPrefs; ++import org.chromium.components.prefs.PrefService; ++import org.chromium.chrome.browser.profiles.ProfileManager; ++import org.chromium.chrome.browser.preferences.Pref; ++ + import java.util.ArrayList; + import java.util.List; + import java.util.function.BooleanSupplier; +@@ -1223,10 +1228,13 @@ class LocationBarMediator + } + Tab tab = mLocationBarDataProvider.getTab(); + if (tab == null) return false; ++ PrefService prefService = UserPrefs.get(ProfileManager.getLastUsedRegularProfile()); ++ boolean historyEnabledInIncognito = ++ prefService.getBoolean(Pref.INCOGNITO_TAB_HISTORY_ENABLED); + // The save offline button should not be shown on native pages. Currently, trying to + // save an offline page in incognito crashes, so don't show it on incognito either. + return shouldShowPageActionButtons() +- && (!tab.isOffTheRecord() ++ && (!tab.isOffTheRecord() || historyEnabledInIncognito + || ChromeFeatureList.isEnabled( + ChromeFeatureList.ENABLE_SAVE_PACKAGE_FOR_OFF_THE_RECORD)); + } 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 -@@ -6574,6 +6574,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6647,6 +6647,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1961,7 +1989,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -160,6 +160,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -163,6 +163,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1969,12 +1997,12 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -183,7 +184,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -186,7 +187,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro Context context, NewTabPageDelegate newTabPageDelegate, - @NonNull UrlFormatter urlFormatter, -- @NonNull OfflineStatus offlineStatus) { -+ @NonNull OfflineStatus offlineStatus, + UrlFormatter urlFormatter, +- OfflineStatus offlineStatus) { ++ OfflineStatus offlineStatus, + boolean isAlwaysIncognito) { + mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check mContext = context; @@ -2050,7 +2078,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc 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 -@@ -4070,6 +4070,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4097,6 +4097,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2116,7 +2144,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 -@@ -247,6 +247,7 @@ struct ContentSettingEntry { +@@ -268,6 +268,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2124,7 +2152,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -256,6 +257,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -277,6 +278,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2132,7 +2160,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()) { -@@ -269,7 +271,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -290,7 +292,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2164,7 +2192,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 -@@ -51,3 +51,7 @@ base::WeakPtr +@@ -53,3 +53,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2175,7 +2203,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 -@@ -143,6 +143,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -152,6 +152,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2186,7 +2214,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -394,7 +394,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -392,7 +392,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 98418797..3c4579ad 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -279,7 +279,7 @@ new file mode 100644 diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc --- a/components/content_settings/core/browser/content_settings_registry.cc +++ b/components/content_settings/core/browser/content_settings_registry.cc -@@ -248,7 +248,7 @@ void ContentSettingsRegistry::Init() { +@@ -249,7 +249,7 @@ void ContentSettingsRegistry::Init() { ContentSettingsInfo::INHERIT_IN_INCOGNITO, ContentSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY); @@ -299,7 +299,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi #include "third_party/blink/public/platform/web_media_player.h" #include "third_party/blink/public/web/web_local_frame.h" #include "third_party/blink/public/web/web_local_frame_client.h" -@@ -337,6 +338,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { +@@ -346,6 +347,8 @@ void AutoplayPolicy::TryUnlockingUserGesture() { } bool AutoplayPolicy::IsGestureNeededForPlayback() const { @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi if (!IsLockedPendingUserGesture()) return false; -@@ -449,6 +452,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { +@@ -458,6 +461,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { } } diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index c39db94b..194e1fb1 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -233,7 +233,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat - private final Activity mActivity; + private final ChromeActivity mActivity; private final BottomSheetController mBottomSheetController; - private final Supplier mUma; + private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; @@ -251,7 +252,7 @@ public class NativePageFactory { mSnackbarManagerSupplier.get(), @@ -247,7 +247,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 -@@ -221,6 +221,8 @@ static_library("browser") { +@@ -219,6 +219,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -256,7 +256,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", -@@ -1735,6 +1737,13 @@ static_library("browser") { +@@ -1729,6 +1731,13 @@ static_library("browser") { ] } @@ -270,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3570,8 +3579,6 @@ static_library("browser") { +@@ -3581,8 +3590,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -380,7 +380,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -765,6 +842,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -782,6 +859,196 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -597,8 +597,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser + class BookmarkBridgeTest; - // The delegate to fetch bookmarks information for the Android native -@@ -50,7 +54,8 @@ class BookmarkBridge : public ProfileObserver, + // Values for a bitmask used to refer to a collection of bookmark nodes. +@@ -77,7 +81,8 @@ class BookmarkBridge : public ProfileObserver, public ReadingListManager::Observer, public ReadingListModelObserver, public signin::IdentityManager::Observer, @@ -608,7 +608,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: // All of the injected pointers must be non-null and must outlive `this`. BookmarkBridge(Profile* profile, -@@ -81,6 +86,11 @@ class BookmarkBridge : public ProfileObserver, +@@ -108,6 +113,11 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); @@ -620,7 +620,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -93,6 +103,17 @@ class BookmarkBridge : public ProfileObserver, +@@ -120,6 +130,17 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -638,7 +638,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -362,6 +383,8 @@ class BookmarkBridge : public ProfileObserver, +@@ -390,6 +411,8 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak @@ -647,7 +647,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -376,6 +399,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -404,6 +427,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -655,7 +655,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -407,6 +431,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -435,6 +459,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -689,7 +689,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows // Lazily set pseudo-constants. These should never change at runtime. Used to avoid crossing // JNI to fetch information. private @Nullable BookmarkId mRootFolderId; -@@ -498,6 +504,35 @@ class BookmarkBridge { +@@ -499,6 +505,35 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } @@ -725,7 +725,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1120,6 +1155,10 @@ class BookmarkBridge { +@@ -1121,6 +1156,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -759,7 +759,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -54,6 +54,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; +@@ -53,6 +53,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; @@ -768,7 +768,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; -@@ -332,6 +334,13 @@ public class BookmarkManagerCoordinator +@@ -322,6 +324,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -785,7 +785,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerMediator.java -@@ -58,6 +58,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; @@ -794,7 +794,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.listmenu.ListMenu; import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -76,6 +78,47 @@ import java.util.function.BooleanSupplier; +@@ -77,6 +79,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -842,7 +842,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Responsible for BookmarkManager business logic. */ // TODO(crbug.com/40256938): Remove BookmarkDelegate if possible. class BookmarkManagerMediator -@@ -85,6 +128,9 @@ class BookmarkManagerMediator +@@ -86,6 +129,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -852,7 +852,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -579,6 +625,14 @@ class BookmarkManagerMediator +@@ -583,6 +629,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -867,7 +867,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -754,6 +808,235 @@ class BookmarkManagerMediator +@@ -758,6 +812,235 @@ class BookmarkManagerMediator } } @@ -1139,7 +1139,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -96,6 +96,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -98,6 +98,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -1157,7 +1157,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -172,6 +183,12 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -174,6 +185,12 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); @@ -1170,7 +1170,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -191,6 +208,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -197,6 +214,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -1184,7 +1184,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -206,6 +230,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -217,6 +241,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -1197,7 +1197,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -138,6 +138,10 @@ class BookmarkToolbarMediator +@@ -135,6 +135,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -1211,9 +1211,9 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -79,6 +79,10 @@ class BookmarkToolbarProperties { +@@ -84,6 +84,10 @@ class BookmarkToolbarProperties { - static final WritableObjectPropertyKey NAVIGATE_BACK_RUNNABLE = + static final WritableObjectPropertyKey NEXT_FOCUSABLE_VIEW = new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey IMPORT_BOOKMARK_RUNNABLE = + new WritableObjectPropertyKey<>(); @@ -1222,12 +1222,12 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows static final PropertyKey[] ALL_KEYS = { SELECTION_DELEGATE, -@@ -106,6 +110,8 @@ class BookmarkToolbarProperties { - SELECTION_MODE_SHOW_OPEN_IN_INCOGNITO, +@@ -112,6 +116,8 @@ class BookmarkToolbarProperties { SELECTION_MODE_SHOW_MOVE, SELECTION_MODE_SHOW_MARK_READ, -- SELECTION_MODE_SHOW_MARK_UNREAD -+ SELECTION_MODE_SHOW_MARK_UNREAD, + SELECTION_MODE_SHOW_MARK_UNREAD, +- NEXT_FOCUSABLE_VIEW ++ NEXT_FOCUSABLE_VIEW, + IMPORT_BOOKMARK_RUNNABLE, + EXPORT_BOOKMARK_RUNNABLE }; @@ -1251,7 +1251,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows 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 -@@ -47,7 +47,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -50,7 +50,7 @@ public class DownloadLocationCustomView extends ScrollView private TextView mFileSize; private Spinner mFileLocation; private TextView mLocationAvailableSpace; @@ -1259,8 +1259,8 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse + public CheckBox mDontShowAgain; private @DownloadLocationDialogType int mDialogType; private long mTotalBytes; - private Callback mOnClickedCallback; -@@ -72,7 +72,7 @@ public class DownloadLocationCustomView extends ScrollView + private @Nullable Callback mOnClickedCallback; +@@ -75,7 +75,7 @@ public class DownloadLocationCustomView extends ScrollView mDontShowAgain = findViewById(R.id.show_again_checkbox); } @@ -1269,63 +1269,66 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse @DownloadLocationDialogType int dialogType, long totalBytes, Callback onClickedCallback, -@@ -130,7 +130,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -133,7 +133,7 @@ public class DownloadLocationCustomView extends ScrollView + /** * @return The text that the user inputted as the name of the file. */ - @Nullable -- String getFileName() { -+ public String getFileName() { +- @Nullable String getFileName() { ++ @Nullable public String getFileName() { if (mFileName == null || mFileName.getText() == null) return null; return mFileName.getText().toString(); } -@@ -139,7 +139,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -141,7 +141,7 @@ public class DownloadLocationCustomView extends ScrollView + /** * @return The file path based on what the user selected as the location of the file. */ - @Nullable -- DirectoryOption getDirectoryOption() { -+ public DirectoryOption getDirectoryOption() { +- @Nullable DirectoryOption getDirectoryOption() { ++ @Nullable public DirectoryOption getDirectoryOption() { if (mFileLocation == null) return null; DirectoryOption selected = (DirectoryOption) mFileLocation.getSelectedItem(); return selected; diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java --- a/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java +++ b/chrome/browser/download/android/java/src/org/chromium/chrome/browser/download/dialogs/DownloadLocationDialogCoordinator.java -@@ -38,18 +38,18 @@ import java.util.ArrayList; - */ +@@ -43,13 +43,13 @@ import java.util.ArrayList; + @NullMarked public class DownloadLocationDialogCoordinator implements ModalDialogProperties.Controller { - @NonNull private DownloadLocationDialogController mController; -- private PropertyModel mDialogModel; -+ protected PropertyModel mDialogModel; - private PropertyModel mDownloadLocationDialogModel; - private PropertyModelChangeProcessor + private DownloadLocationDialogController mController; +- private @Nullable PropertyModel mDialogModel; ++ protected @Nullable PropertyModel mDialogModel; + private @Nullable PropertyModel mDownloadLocationDialogModel; + private @Nullable + PropertyModelChangeProcessor mPropertyModelChangeProcessor; -- private DownloadLocationCustomView mCustomView; -- private ModalDialogManager mModalDialogManager; -+ protected DownloadLocationCustomView mCustomView; -+ protected ModalDialogManager mModalDialogManager; +- private @Nullable DownloadLocationCustomView mCustomView; +- private @Nullable ModalDialogManager mModalDialogManager; ++ protected @Nullable DownloadLocationCustomView mCustomView; ++ protected @Nullable ModalDialogManager mModalDialogManager; + private long mTotalBytes; private @DownloadLocationDialogType int mDialogType; - private String mSuggestedPath; - private Context mContext; +@@ -57,7 +57,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. + private @Nullable Context mContext; + private boolean mHasMultipleDownloadLocations; -- private Profile mProfile; -+ protected Profile mProfile; +- private @Nullable Profile mProfile; ++ protected @Nullable Profile mProfile; + private boolean mLocationDialogManaged; - /** -@@ -141,7 +141,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. +@@ -153,7 +153,7 @@ public class DownloadLocationDialogCoordinator implements ModalDialogProperties. * Called after retrieved the download directory options. * @param dirs An list of available download directories. */ - private void onDirectoryOptionsRetrieved(ArrayList dirs) { + protected void onDirectoryOptionsRetrieved(ArrayList dirs) { - // Already showing the dialog. - if (mDialogModel != null) return; - + assertNonNull(mContext); + assertNonNull(mModalDialogManager); + assertNonNull(mSuggestedPath); 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 -@@ -209,6 +209,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -218,6 +218,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBackgroundThreadPool, &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, @@ -1336,7 +1339,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 -@@ -594,6 +594,7 @@ public abstract class ChromeFeatureList { +@@ -604,6 +604,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1390,7 +1393,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 -@@ -140,6 +140,8 @@ public final class ChromePreferenceKeys { +@@ -144,6 +144,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"; @@ -1399,8 +1402,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"; -@@ -986,6 +988,7 @@ public final class ChromePreferenceKeys { - AUXILIARY_SEARCH_IS_SCHEMA_V2_SET, +@@ -995,6 +997,7 @@ public final class ChromePreferenceKeys { + AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, + BOOKMARKS_LAST_EXPORT_URI, @@ -1438,7 +1441,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 -@@ -350,6 +350,9 @@ static_library("common_lib") { +@@ -351,6 +351,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1691,7 +1694,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui return mimeTypes; } -@@ -1156,6 +1170,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick +@@ -1155,6 +1169,10 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback, PhotoPick return countAcceptTypesFor(superType) == mMimeTypes.size(); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index dde4e03c..6bb6dc90 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -144,7 +144,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 -@@ -174,6 +174,8 @@ use_epoll = is_linux || is_chromeos || is_android +@@ -177,6 +177,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") { @@ -153,7 +153,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1029,7 +1031,7 @@ component("base") { +@@ -1033,7 +1035,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -437,7 +437,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 -@@ -48,6 +48,10 @@ found in the LICENSE file. +@@ -44,6 +44,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" /> @@ -463,8 +463,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -81,7 +81,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); +@@ -126,7 +126,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + } @Override - public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { @@ -483,7 +483,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; -@@ -75,18 +76,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; @@ -506,7 +506,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme } @Override -@@ -95,6 +99,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. @@ -528,7 +528,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -@@ -32,7 +33,9 @@ import org.chromium.base.Callback; +@@ -34,7 +35,9 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackUtils; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; @@ -538,7 +538,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeBaseAppCompatActivity; -@@ -40,12 +43,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; +@@ -42,12 +45,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -553,7 +553,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; -@@ -84,6 +89,40 @@ import java.util.Locale; +@@ -87,6 +92,40 @@ import java.util.Locale; */ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { @@ -594,7 +594,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) public static final String EXTRA_SHOW_FRAGMENT = "show_fragment"; -@@ -150,7 +189,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -153,7 +192,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -633,7 +633,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting 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 -@@ -402,6 +402,10 @@ using flags_ui::kOsLinux; +@@ -405,6 +405,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -644,9 +644,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4419,6 +4423,10 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { - {" - In all browsing modes", kEnableCanvasNoiseInAllModes, - std::size(kEnableCanvasNoiseInAllModes), nullptr}}; +@@ -4592,6 +4596,10 @@ const FeatureEntry::FeatureVariation + {"(retroactive)", kInvalidateChoiceOnRestoreIsRetroactiveOption, + std::size(kInvalidateChoiceOnRestoreIsRetroactiveOption), nullptr}}; +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -655,7 +655,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. -@@ -4445,6 +4453,9 @@ const FeatureEntry::FeatureVariation kEnableCanvasNoiseVariations[] = { +@@ -4618,6 +4626,9 @@ const FeatureEntry::FeatureVariation const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -668,7 +668,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 -@@ -351,4 +351,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, +@@ -349,4 +349,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, "RemovalOfIWAsFromTabCapture", base::FEATURE_ENABLED_BY_DEFAULT); @@ -727,8 +727,8 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1213,5 +1213,6 @@ BASE_FEATURE(kAndroidWebAppLaunchHandler, - "AndroidWebAppLaunchHandler", +@@ -1262,5 +1262,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, + "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" @@ -737,7 +737,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.h b/chrome/browser/flags/android/chrome_feature_list.h --- a/chrome/browser/flags/android/chrome_feature_list.h +++ b/chrome/browser/flags/android/chrome_feature_list.h -@@ -246,6 +246,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( +@@ -263,6 +263,7 @@ constexpr base::FeatureParam kQuickDeleteAndroidSurveyTriggerId( "trigger_id", /*default_value=*/""); @@ -759,7 +759,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -843,7 +847,7 @@ public abstract class ChromeFeatureList { +@@ -847,7 +851,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sWebApkMinShellApkVersion = newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); @@ -768,7 +768,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAndroidAppIntegration, sAndroidAppIntegrationModule, -@@ -944,6 +948,13 @@ public abstract class ChromeFeatureList { +@@ -952,6 +956,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sWebApkMinShellApkVersion); @@ -958,8 +958,8 @@ 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 -@@ -374,4 +374,5 @@ BASE_FEATURE(kByDateHistoryInSidePanel, - "ByDateHistoryInSidePanel", +@@ -397,4 +397,5 @@ BASE_FEATURE(kTabStripBrowserApi, + "TabStripBrowserApi", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" @@ -999,7 +999,7 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1640,4 +1640,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, +@@ -1729,4 +1729,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, "DisableShortcutsEnableDiy", base::FEATURE_ENABLED_BY_DEFAULT); @@ -1032,7 +1032,7 @@ 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 -@@ -27,9 +27,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; +@@ -29,9 +29,11 @@ import org.chromium.components.omnibox.OmniboxFeatures; import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; @@ -1045,7 +1045,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c implements EmbeddableSettingsPage, Preference.OnPreferenceChangeListener { public static final String PREF_PAGE_ZOOM_DEFAULT_ZOOM = "page_zoom_default_zoom"; public static final String PREF_PAGE_ZOOM_INCLUDE_OS_ADJUSTMENT = -@@ -68,7 +70,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat +@@ -70,7 +72,7 @@ public class AccessibilitySettings extends PreferenceFragmentCompat } @Override @@ -1186,7 +1186,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 -@@ -183,4 +183,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, +@@ -175,4 +175,5 @@ BASE_FEATURE(kImprovedPasswordChangeService, "ImprovedPasswordChangeService", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1628,7 +1628,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -515,4 +515,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, +@@ -549,4 +549,5 @@ BASE_FEATURE(kLimitCrossOriginNonActivatedPaintHolding, // Please keep features in alphabetical order. @@ -1637,8 +1637,8 @@ 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 -@@ -1486,4 +1486,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { - VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; +@@ -1506,4 +1506,5 @@ bool IsPushSubscriptionChangeEventEnabled() { + features::kPushSubscriptionChangeEventOnResubscribe); } +#include "cromite_flags/content_public_common_content_features_cc.inc" @@ -1646,9 +1646,9 @@ 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 -@@ -351,6 +351,7 @@ CONTENT_EXPORT extern const base::FeatureParam - CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -357,6 +357,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); + CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); +#include "cromite_flags/content_public_common_content_features_h.inc" } // namespace features @@ -1992,7 +1992,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 -@@ -1827,5 +1827,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1830,5 +1830,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2002,7 +2002,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 bool IsOutOfProcessVideoDecodingEnabled(); +@@ -570,5 +570,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2012,18 +2012,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 -@@ -708,4 +708,5 @@ BASE_FEATURE(kSelfSignedLocalNetworkInterstitial, - BASE_FEATURE(kVerifyQWACs, "VerifyQWACs", base::FEATURE_DISABLED_BY_DEFAULT); - #endif // BUILDFLAG(CHROME_ROOT_STORE_SUPPORTED) +@@ -779,4 +779,5 @@ BASE_FEATURE(kRestrictAbusePortsOnLocalhost, + "RestrictAbusePortsOnLocalhost", + 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 -@@ -723,6 +723,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kSelfSignedLocalNetworkInterstitial); - NET_EXPORT BASE_DECLARE_FEATURE(kVerifyQWACs); - #endif +@@ -800,6 +800,7 @@ NET_EXPORT extern const base::FeatureParam + // Finch-controlled list of ports that should be blocked on localhost. + NET_EXPORT BASE_DECLARE_FEATURE(kRestrictAbusePortsOnLocalhost); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2032,18 +2032,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 -@@ -588,4 +588,5 @@ BASE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals, - "ProtectedAudienceCorsSafelistKVv2Signals", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -614,4 +614,5 @@ BASE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote, + + BASE_FEATURE(kCSPScriptSrcV2, "ScriptSrcV2", 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 -@@ -311,6 +311,7 @@ BASE_DECLARE_FEATURE(kPopulatePermissionsPolicyOnRequest); +@@ -329,6 +329,7 @@ BASE_DECLARE_FEATURE(kDeviceBoundSessionAccessObserverSharedRemote); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) - BASE_DECLARE_FEATURE(kProtectedAudienceCorsSafelistKVv2Signals); + BASE_DECLARE_FEATURE(kCSPScriptSrcV2); +#include "cromite_flags/services_network_public_cpp_features_h.inc" } // namespace network::features @@ -2052,7 +2052,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 -@@ -2901,4 +2901,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { +@@ -2914,4 +2914,5 @@ bool IsLinkPreviewTriggerTypeEnabled(LinkPreviewTriggerType type) { // // DO NOT ADD NEW FEATURES HERE. @@ -2061,7 +2061,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 -@@ -1900,6 +1900,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); +@@ -1903,6 +1903,7 @@ BLINK_COMMON_EXPORT bool IsUpdateComplexSafaAreaConstraintsEnabled(); // // DO NOT ADD NEW FEATURES HERE. @@ -2072,7 +2072,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 -@@ -466,4 +466,5 @@ BASE_FEATURE(kClipboardChangeEvent, +@@ -472,4 +472,5 @@ BASE_FEATURE(kClipboardChangeEvent, "ClipboardChangeEvent", base::FEATURE_DISABLED_BY_DEFAULT); @@ -2081,7 +2081,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 -@@ -237,6 +237,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); +@@ -240,6 +240,7 @@ BASE_DECLARE_FEATURE(kAsyncFullscreenWindowState); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kClipboardChangeEvent); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 6b699dc5..0032d282 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -56,6 +56,21 @@ found in the LICENSE file. +@@ -52,6 +52,21 @@ found in the LICENSE file. android:key="cromite_flags" android:title="@string/cromite_flags_title" app:url="@string/cromite_flags_url" /> @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java -@@ -64,6 +64,9 @@ import java.lang.annotation.Retention; +@@ -65,6 +65,9 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Set; @@ -67,8 +67,8 @@ 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. -@@ -267,6 +270,9 @@ public class LaunchIntentDispatcher { - @OptIn(markerClass = ExperimentalAuthTab.class) +@@ -306,6 +309,9 @@ public class LaunchIntentDispatcher { + */ public static boolean isCustomTabIntent(Intent intent) { if (intent == null) return false; + if (!ContextUtils.getAppSharedPreferences() @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis Log.w( TAG, "CustomTabsIntent#shouldAlwaysUseBrowserUI() = " -@@ -295,6 +301,10 @@ public class LaunchIntentDispatcher { +@@ -334,6 +340,10 @@ public class LaunchIntentDispatcher { // Make sure the result of the CustomTabActivity is forwarded to the client. newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); @@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Since configureIntentForResizableCustomTab() might change the componenet/class // associated with the passed intent, it needs to be called after #setClassName(context, // CustomTabActivity.class.getName()); -@@ -490,6 +500,17 @@ public class LaunchIntentDispatcher { +@@ -530,6 +540,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -123,7 +123,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 -@@ -985,6 +985,7 @@ public class CustomTabsConnection { +@@ -979,6 +979,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -179,9 +179,9 @@ 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; - import org.chromium.ui.text.SpanApplier; +@@ -79,6 +79,15 @@ import org.chromium.ui.text.SpanApplier; + import java.util.concurrent.TimeUnit; + import java.util.function.Consumer; +import android.app.role.RoleManager; +import android.content.Context; @@ -192,12 +192,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting +import org.chromium.base.IntentUtils; +import org.chromium.base.PackageManagerUtils; + - import androidx.annotation.Nullable; import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; -@@ -104,6 +113,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - private IncognitoLockSettings mIncognitoLockSettings; - private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); + import org.chromium.base.shared_preferences.SharedPreferencesManager; +@@ -148,6 +157,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); + } + private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference openExternalLinksPref; @@ -205,7 +205,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)); -@@ -329,6 +341,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -379,6 +391,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -215,7 +215,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(); -@@ -349,6 +364,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -399,6 +414,31 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -247,7 +247,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -381,6 +421,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -431,6 +471,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -267,7 +267,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -917,7 +917,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -956,7 +956,7 @@ BASE_FEATURE(kMagicStackAndroid, // Enables an experimental feature which forces mayLaunchUrl to use a different // storage partition. This may reduce performance. This should not be enabled by // default. @@ -279,8 +279,8 @@ 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 -@@ -768,6 +768,8 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); +@@ -773,6 +773,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sMiniOriginBar = newCachedFlag(MINI_ORIGIN_BAR, false); public static final CachedFlag sMostVisitedTilesCustomization = newCachedFlag(MOST_VISITED_TILES_CUSTOMIZATION, false); + public static final CachedFlag sMayLaunchurlUsesSeparateStoragePartition = @@ -288,9 +288,9 @@ 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 = -@@ -915,6 +917,7 @@ public abstract class ChromeFeatureList { - sNotificationTrampoline, +@@ -925,6 +927,7 @@ public abstract class ChromeFeatureList { sMagicStackAndroid, + sMiniOriginBar, sMostVisitedTilesCustomization, + sMayLaunchurlUsesSeparateStoragePartition, sMostVisitedTilesReselect, diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 17be6f7e..f82f333e 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml +++ b/chrome/android/java/res/menu/main_menu.xml -@@ -178,6 +178,9 @@ found in the LICENSE file. +@@ -181,6 +181,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 -@@ -210,6 +213,9 @@ found in the LICENSE file. +@@ -213,6 +216,9 @@ found in the LICENSE file. @@ -39,16 +39,16 @@ 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 -@@ -309,6 +309,8 @@ import java.util.Set; +@@ -323,6 +323,8 @@ import java.util.Map; + import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; - import java.util.function.DoubleConsumer; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; + /** * 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. -@@ -3200,6 +3202,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3283,6 +3285,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; -@@ -2399,6 +2400,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2406,6 +2407,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 -@@ -4392,6 +4392,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4420,6 +4420,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 837ff187..3d1ef6c2 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -543,6 +544,15 @@ AutocompleteController::AutocompleteController( +@@ -545,6 +546,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index d682d339..498f708b 100644 --- a/build/patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/patches/Add-flag-to-disable-IPv6-probes.patch @@ -45,7 +45,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1127,6 +1127,7 @@ component("net") { +@@ -1138,6 +1138,7 @@ component("net") { ":net_deps", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -56,7 +56,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc --- a/net/dns/host_resolver_manager.cc +++ b/net/dns/host_resolver_manager.cc -@@ -115,6 +115,7 @@ +@@ -116,6 +116,7 @@ #include "net/log/net_log_event_type.h" #include "net/log/net_log_source.h" #include "net/log/net_log_source_type.h" @@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/url_request/url_request_context.h" -@@ -1487,6 +1488,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1490,6 +1491,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/patches/Add-flag-to-disable-external-intent-requests.patch b/build/patches/Add-flag-to-disable-external-intent-requests.patch index 8f964759..eb938508 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -32,7 +32,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -81,7 +81,12 @@ found in the LICENSE file. +@@ -77,7 +77,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,7 +45,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi + app:needRestart="false" /> + android:title="@string/security_section_title" /> 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 diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index e0d2a61b..e63ab7d0 100644 --- a/build/patches/Add-flag-to-disable-vibration.patch +++ b/build/patches/Add-flag-to-disable-vibration.patch @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -890,6 +890,10 @@ +@@ -943,6 +943,10 @@ { name: "CompositingDecisionAtAnimationPhaseBoundaries" }, diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 20cc467e..f94a0ce6 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1997,7 +1997,6 @@ config("default_warnings") { +@@ -2065,7 +2065,6 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. "-Wno-nontrivial-memcall", ] @@ -22,7 +22,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn cflags_cc += [ # TODO(crbug.com/328490295): Fix and re-enable for C flags. "-Wenum-compare-conditional", -@@ -2023,6 +2022,16 @@ config("default_warnings") { +@@ -2091,6 +2090,16 @@ config("default_warnings") { # other issues if the versions are incompatible. cflags += [ "-Wno-version-check" ] ldflags += [ "-Wno-version-check" ] @@ -42,7 +42,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -55,6 +55,9 @@ declare_args() { +@@ -62,6 +62,9 @@ declare_args() { # to lack of toolchain support. gtest_enable_absl_printers = !is_nacl diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 1816c7fe..54253e48 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -257,6 +283,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( +@@ -254,6 +280,11 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); } @@ -244,9 +244,9 @@ diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrom diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc --- a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +++ b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc -@@ -100,7 +100,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { - } - ButtonType button = GetButtonType(button_id); +@@ -117,7 +117,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { + request_type(), GetPermissionActionString(button), + record_browser_always_active_value()); if (button == ButtonType::kAllowThisTime) { - delegate_->AcceptThisTime(); + delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); @@ -256,7 +256,7 @@ diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_pro diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc -@@ -266,7 +266,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -281,7 +281,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -279,7 +279,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 -@@ -617,6 +617,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -618,6 +618,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -291,7 +291,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(); -@@ -1285,6 +1290,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1286,6 +1291,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } @@ -317,7 +317,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 @@ +@@ -643,6 +643,11 @@ URL truncated @@ -433,7 +433,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -386,9 +386,9 @@ public class PageInfoController +@@ -364,9 +364,9 @@ public class PageInfoController String name, String nameMidSentence, int type, @@ -532,7 +532,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 -@@ -1210,6 +1210,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1220,6 +1220,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -716,7 +716,7 @@ diff --git a/components/permissions/android/permission_prompt/embedded_permissio diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc -@@ -139,6 +139,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { +@@ -137,6 +137,11 @@ void PermissionDialogJavaDelegate::UpdateDialog() { static_cast(permission_prompt_->GetEmbeddedPromptVariant())); } @@ -728,7 +728,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ // static std::unique_ptr PermissionDialogDelegate::Create( content::WebContents* web_contents, -@@ -168,6 +173,13 @@ PermissionDialogDelegate::CreateForTesting( +@@ -166,6 +171,13 @@ PermissionDialogDelegate::CreateForTesting( void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -742,7 +742,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ permission_prompt_->Accept(); } -@@ -175,7 +187,10 @@ void PermissionDialogDelegate::AcceptThisTime( +@@ -173,7 +185,10 @@ void PermissionDialogDelegate::AcceptThisTime( JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -754,7 +754,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ } void PermissionDialogDelegate::Acknowledge(JNIEnv* env, -@@ -187,6 +202,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, +@@ -185,6 +200,13 @@ void PermissionDialogDelegate::Acknowledge(JNIEnv* env, void PermissionDialogDelegate::Deny(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -1088,7 +1088,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -166,6 +166,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -169,6 +169,15 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1104,7 +1104,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -187,6 +196,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -190,6 +199,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1116,7 +1116,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -217,6 +231,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -220,6 +234,12 @@ class PermissionContextBase : public content_settings::Observer { PermissionRequest::PermissionDecidedCallback permission_decided_callback, base::OnceClosure delete_callback) const; @@ -1129,7 +1129,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; -@@ -253,7 +273,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -256,7 +276,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1214,7 +1214,7 @@ diff --git a/components/permissions/permission_request.cc b/components/permissio diff --git a/components/permissions/permission_request.h b/components/permissions/permission_request.h --- a/components/permissions/permission_request.h +++ b/components/permissions/permission_request.h -@@ -43,6 +43,11 @@ class PermissionRequest { +@@ -44,6 +44,11 @@ class PermissionRequest { bool /*is_one_time*/, bool /*is_final_decision*/)>; @@ -1226,7 +1226,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // `permission_decided_callback` is called when the permission request is // resolved by the user (see comment on PermissionDecidedCallback above). // `delete_callback` is called when the permission request is no longer needed -@@ -63,6 +68,10 @@ class PermissionRequest { +@@ -64,6 +69,10 @@ class PermissionRequest { base::OnceClosure delete_callback, bool uses_automatic_embargo); @@ -1237,7 +1237,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission PermissionRequest(const PermissionRequest&) = delete; PermissionRequest& operator=(const PermissionRequest&) = delete; -@@ -169,10 +178,10 @@ class PermissionRequest { +@@ -170,10 +179,10 @@ class PermissionRequest { // If |is_one_time| is true the permission will last until all tabs of // |origin| are closed or navigated away from, and then the permission will // automatically expire after 1 day. @@ -1250,7 +1250,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -228,6 +237,9 @@ class PermissionRequest { +@@ -235,6 +244,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; @@ -1263,7 +1263,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 -@@ -171,7 +171,7 @@ void PermissionRequestManager::AddRequest( +@@ -173,7 +173,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1272,7 +1272,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request->RequestFinished(); return; } -@@ -246,7 +246,7 @@ void PermissionRequestManager::AddRequest( +@@ -248,7 +248,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { @@ -1281,7 +1281,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } request->RequestFinished(); return; -@@ -609,7 +609,8 @@ void PermissionRequestManager::Accept() { +@@ -611,7 +611,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1291,7 +1291,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -627,7 +628,7 @@ void PermissionRequestManager::Accept() { +@@ -629,7 +630,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1300,7 +1300,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -640,7 +641,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -642,7 +643,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(*requests_iter, @@ -1310,7 +1310,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -648,6 +650,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -650,6 +652,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1326,7 +1326,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) return; DCHECK(view_); -@@ -670,7 +681,7 @@ void PermissionRequestManager::Deny() { +@@ -672,7 +683,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1335,7 +1335,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1267,32 +1278,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1271,32 +1282,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1378,7 +1378,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1562,7 +1573,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1566,7 +1577,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 464cf7ed..ce8c4274 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -28,8 +28,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/browser/bookmark_uuids.cc | 3 ++ components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 8 +++- + ...ookmark_model_merger_comparison_metrics.cc | 4 ++ .../bookmark_specifics_conversions.cc | 1 + - 25 files changed, 241 insertions(+), 14 deletions(-) + 26 files changed, 245 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/res/menu/main_menu.xml --- a/chrome/android/java/res/menu/main_menu.xml @@ -45,7 +46,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re -@@ -204,6 +208,9 @@ found in the LICENSE file. +@@ -207,6 +211,9 @@ found in the LICENSE file. @@ -58,15 +59,15 @@ 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 -@@ -101,6 +101,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkUtils; - import org.chromium.chrome.browser.bookmarks.bar.BookmarkBarUtils; +@@ -102,6 +102,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; +import org.chromium.chrome.browser.bookmarks.BookmarkModel; import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -263,12 +264,17 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; +@@ -273,6 +274,9 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator; import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate; import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -75,7 +76,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; - import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController; + import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; +@@ -282,6 +286,8 @@ import org.chromium.chrome.browser.undo_tab_close_snackbar.UndoBarController; import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.XrLayoutStateObserver; @@ -84,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.edge_to_edge.SystemBarColorHelper; import org.chromium.components.browser_ui.edge_to_edge.TabbedSystemBarColorHelper; -@@ -3233,6 +3239,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3316,6 +3322,8 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModelSelectorSupplier().get(), closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -93,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { // Close only incognito tabs Runnable closeAllTabsRunnable = -@@ -3331,6 +3339,41 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3418,6 +3426,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -180,7 +182,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -531,6 +559,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -546,6 +574,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -189,8 +191,8 @@ 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)) { -@@ -1256,6 +1287,17 @@ void BookmarkBridge::GetBookmarksOfType( + if (IsPermanentFolderVisible( +@@ -1273,6 +1304,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -211,7 +213,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -79,6 +79,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -106,6 +106,10 @@ class BookmarkBridge : public ProfileObserver, jboolean AreAccountBookmarkFoldersActive(JNIEnv* env); @@ -222,7 +224,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -250,6 +254,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -260,7 +262,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows private final ObserverList mObservers = new ObserverList<>(); private final Profile mProfile; -@@ -383,6 +386,16 @@ class BookmarkBridge { +@@ -384,6 +387,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -277,7 +279,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Returns Id representing the special "other" folder from bookmark model. */ public BookmarkId getOtherFolderId() { ThreadUtils.assertOnUiThread(); -@@ -894,6 +907,29 @@ class BookmarkBridge { +@@ -895,6 +908,29 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -307,7 +309,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Helper method to mark an item as read. * -@@ -1111,6 +1147,9 @@ class BookmarkBridge { +@@ -1112,6 +1148,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -317,7 +319,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1132,6 +1171,8 @@ class BookmarkBridge { +@@ -1133,6 +1172,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -406,7 +408,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr NOTREACHED(); case bookmarks::BookmarkNode::BOOKMARK_BAR: -@@ -291,6 +292,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { +@@ -303,6 +304,7 @@ void PermanentFolderOrderingTracker::SetTrackedPermanentNodes() { switch (tracked_type_) { case bookmarks::BookmarkNode::URL: case bookmarks::BookmarkNode::FOLDER: @@ -417,7 +419,7 @@ diff --git a/chrome/browser/bookmarks/permanent_folder_ordering_tracker.cc b/chr 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 -@@ -85,7 +85,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -88,7 +88,7 @@ public class DownloadLocationCustomView extends ScrollView mDirectoryAdapter.update(); } @@ -426,7 +428,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse mTitle.setText(title); } -@@ -93,7 +93,7 @@ public class DownloadLocationCustomView extends ScrollView +@@ -96,7 +96,7 @@ public class DownloadLocationCustomView extends ScrollView mSubtitleView.setText(subtitle); } @@ -438,7 +440,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 -@@ -4497,6 +4497,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4525,6 +4525,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -713,7 +715,7 @@ diff --git a/components/bookmarks/browser/bookmark_load_details.h b/components/b diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmarks/browser/bookmark_model.cc --- a/components/bookmarks/browser/bookmark_model.cc +++ b/components/bookmarks/browser/bookmark_model.cc -@@ -835,7 +835,7 @@ bool BookmarkModel::HasBookmarks() const { +@@ -890,7 +890,7 @@ bool BookmarkModel::HasBookmarks() const { bool BookmarkModel::HasNoUserCreatedBookmarksOrFolders() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return bookmark_bar_node_->children().empty() && @@ -722,7 +724,7 @@ diff --git a/components/bookmarks/browser/bookmark_model.cc b/components/bookmar } bool BookmarkModel::IsBookmarked(const GURL& url) const { -@@ -1167,6 +1167,7 @@ void BookmarkModel::DoneLoading(std::unique_ptr details) { +@@ -1222,6 +1222,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(); @@ -735,10 +737,10 @@ diff --git a/components/bookmarks/browser/bookmark_model.h b/components/bookmark +++ b/components/bookmarks/browser/bookmark_model.h @@ -150,6 +150,12 @@ class BookmarkModel : public BookmarkUndoProvider, // bookmarks in the account storage). - const BookmarkNode* account_mobile_node() const; + const BookmarkPermanentNode* account_mobile_node() const; + // Returns the 'mobile' node. This is NULL until loaded. -+ const BookmarkNode* tabs_collection_node() const { ++ const BookmarkPermanentNode* tabs_collection_node() const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + return tabs_collection_node_; + } @@ -877,6 +879,27 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { details->set_local_or_syncable_sync_metadata_str( std::move(sync_metadata_str)); +diff --git a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +--- a/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc ++++ b/components/sync_bookmarks/bookmark_model_merger_comparison_metrics.cc +@@ -38,6 +38,7 @@ const char kOtherBookmarksTag[] = "other_bookmarks"; + constexpr char16_t kBookmarkBarFolderName[] = u"__Bookmarks bar__"; + constexpr char16_t kOtherBookmarksFolderName[] = u"__Other bookmarks__"; + constexpr char16_t kMobileBookmarksFolderName[] = u"__Mobile bookmarks__"; ++constexpr char16_t kTabsCollectionBookmarksFolderName[] = u"__Tabs collection__"; + + using RemoteForest = BookmarkModelMerger::RemoteForest; + using RemoteTreeNode = BookmarkModelMerger::RemoteTreeNode; +@@ -129,6 +130,9 @@ std::u16string_view GetBookmarkNodeTitle(const bookmarks::BookmarkNode* node) { + return kOtherBookmarksFolderName; + case bookmarks::BookmarkNode::MOBILE: + return kMobileBookmarksFolderName; ++ case bookmarks::BookmarkNode::TABS_COLLECTION: ++ return kTabsCollectionBookmarksFolderName; ++ + } + NOTREACHED(); + } 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 diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 2ea47a95..f2af3d95 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -4,19 +4,20 @@ Subject: Add menu item to view source License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../android/java/res/menu/custom_tabs_menu.xml | 3 +++ - chrome/android/java/res/menu/main_menu.xml | 3 +++ - .../chrome/browser/ChromeTabbedActivity.java | 2 ++ - .../chrome/browser/app/ChromeActivity.java | 5 +++++ - .../appmenu/AppMenuPropertiesDelegateImpl.java | 18 ++++++++++++++++++ - .../CustomTabAppMenuPropertiesDelegate.java | 1 + - .../android/strings/android_chrome_strings.grd | 4 ++++ - 7 files changed, 36 insertions(+) + .../android/java/res/menu/custom_tabs_menu.xml | 3 +++ + chrome/android/java/res/menu/main_menu.xml | 3 +++ + .../chrome/browser/ChromeTabbedActivity.java | 2 ++ + .../chrome/browser/app/ChromeActivity.java | 5 +++++ + .../appmenu/AppMenuPropertiesDelegateImpl.java | 17 +++++++++++++++++ + .../CustomTabAppMenuPropertiesDelegate.java | 1 + + .../TabbedAppMenuPropertiesDelegate.java | 6 +++--- + .../android/strings/android_chrome_strings.grd | 4 ++++ + 8 files changed, 38 insertions(+), 3 deletions(-) diff --git a/chrome/android/java/res/menu/custom_tabs_menu.xml b/chrome/android/java/res/menu/custom_tabs_menu.xml --- a/chrome/android/java/res/menu/custom_tabs_menu.xml +++ b/chrome/android/java/res/menu/custom_tabs_menu.xml -@@ -58,6 +58,9 @@ found in the LICENSE file. +@@ -69,6 +69,9 @@ found in the LICENSE file. @@ -29,7 +30,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 -@@ -128,6 +128,9 @@ found in the LICENSE file. +@@ -131,6 +131,9 @@ found in the LICENSE file. @@ -42,7 +43,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 -@@ -3273,6 +3273,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3356,6 +3356,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -54,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2556,6 +2556,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2563,6 +2563,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -69,16 +70,8 @@ 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 -@@ -595,6 +595,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - isNativePage, isFileScheme, isContentScheme, isIncognito, url)); - - updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); -+ updateViewSourceMenuItem(menu, currentTab); - - updateAutoDarkMenuItem(menu, currentTab, isNativePage); - -@@ -1336,6 +1337,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate - findInPageMenuRow.setVisible(itemVisible); +@@ -862,6 +862,23 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties + } } + /** @@ -104,7 +97,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 -@@ -304,6 +304,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -320,6 +320,7 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat updateRequestDesktopSiteMenuItem( menu, currentTab, requestDesktopSiteVisible, isNativePage); @@ -112,10 +105,40 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust prepareAddToHomescreenMenuItem(menu, currentTab, addToHomeScreenVisible); } } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +@@ -133,7 +133,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + if (menuGroup == MenuGroup.PAGE_MENU) { + preparePageMenu(menu, currentTab, handler, isIncognito); + } +- prepareCommonMenuItems(menu, menuGroup, isIncognito); ++ prepareCommonMenuItems(menu, menuGroup, isIncognito, currentTab); + } + + private void setMenuGroupVisibility(@MenuGroup int menuGroup, Menu menu) { +@@ -296,7 +296,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + isNativePage, isFileScheme, isContentScheme, isIncognito, url)); + + updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); +- ++ updateViewSourceMenuItem(menu, currentTab); + updateAutoDarkMenuItem(menu, currentTab, isNativePage); + + // Only display reader mode settings menu option if the current page is in reader mode. +@@ -316,7 +316,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm + .setVisible(ChromeFeatureList.sNewTabPageCustomization.isEnabled()); + } + +- private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { ++ private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito, Tab currentTab) { + boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); + if (always_incognito) { + final MenuItem newTabOption = menu.findItem(R.id.new_tab_menu_id); 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 -@@ -318,6 +318,10 @@ CHAR_LIMIT guidelines: +@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines: Collaboration diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 4036092b..b037b0d1 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -40,7 +40,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabProperties.java -@@ -72,6 +72,9 @@ public class TabProperties { +@@ -81,6 +81,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -50,15 +50,15 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** Property for lazily fetching favicons when required by an item in a UI. */ public static final WritableObjectPropertyKey FAVICON_FETCHER = new WritableObjectPropertyKey<>(); -@@ -155,6 +158,7 @@ public class TabProperties { +@@ -165,6 +168,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, + FAVICON, - SHOPPING_PERSISTED_TAB_DATA_FETCHER, - SHOULD_SHOW_PRICE_DROP_TOOLTIP, QUICK_DELETE_ANIMATION_STATUS, -@@ -173,6 +177,7 @@ public class TabProperties { + TAB_GROUP_COLOR_VIEW_PROVIDER, + VISIBILITY, +@@ -204,6 +208,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -69,7 +69,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -77,6 +77,11 @@ found in the LICENSE file. +@@ -73,6 +73,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -84,7 +84,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -143,6 +143,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -144,6 +144,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileProvider; -@@ -625,7 +626,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -633,7 +634,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -105,15 +105,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/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 -@@ -21,6 +21,7 @@ import androidx.preference.Preference; - +@@ -28,6 +28,7 @@ import org.chromium.base.ContextUtils; + import org.chromium.base.IntentUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.base.ContextUtils; -@@ -76,12 +77,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import org.chromium.build.annotations.Nullable; +@@ -97,12 +98,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_CAN_MAKE_PAYMENT = "can_make_payment"; private static final String PREF_PRELOAD_PAGES = "preload_pages"; private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode"; -@@ -167,6 +182,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -205,6 +220,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -163,7 +163,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -385,6 +415,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -435,6 +465,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -171,7 +171,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -431,6 +462,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -481,6 +512,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -185,7 +185,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -497,6 +535,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -531,6 +569,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -199,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6088,6 +6088,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6166,6 +6166,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d Your %1$swww.amazon.com timer ran out. It'll start again tomorrow. diff --git a/build/patches/Add-option-to-force-tablet-UI.patch b/build/patches/Add-option-to-force-tablet-UI.patch index 22974798..c93f737f 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -99,15 +99,15 @@ 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 -@@ -59,6 +59,7 @@ import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder +@@ -58,6 +58,7 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; + import org.chromium.chrome.browser.night_mode.GlobalNightModeStateProviderHolder; import org.chromium.chrome.browser.night_mode.NightModeStateProvider; import org.chromium.chrome.browser.night_mode.NightModeUtils; - import org.chromium.chrome.browser.theme.ThemeModuleUtils; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; -@@ -134,6 +135,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -133,6 +134,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java -@@ -63,6 +63,7 @@ import org.chromium.content_public.browser.WebContents; +@@ -66,6 +66,7 @@ import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContentsObserver; import org.chromium.net.NetId; import org.chromium.ui.LayoutInflaterUtils; @@ -127,7 +127,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; -@@ -476,7 +477,9 @@ public class WarmupManager { +@@ -481,7 +482,9 @@ public class WarmupManager { ControlContainer controlContainer = mainView.findViewById(R.id.control_container); if (toolbarId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -170,7 +170,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 -@@ -774,7 +774,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -783,7 +783,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) { @@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -119,6 +119,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; +@@ -117,6 +117,7 @@ import org.chromium.components.tab_group_sync.SavedTabGroup; import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -4211,8 +4212,13 @@ public class StripLayoutHelper +@@ -4264,8 +4265,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -211,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -96,6 +96,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa +@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -219,7 +219,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; -@@ -460,7 +461,10 @@ public class StripLayoutHelperManager +@@ -468,7 +469,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -234,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/TabStripSceneLayer.java -@@ -104,6 +104,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { +@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { if (mNativePtr == 0) return; final boolean visible = yOffset > -layoutHelper.getHeight(); @@ -271,7 +271,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 -@@ -693,7 +693,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -697,7 +697,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -285,7 +285,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 -@@ -100,6 +100,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -104,6 +104,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -294,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1616,7 +1618,9 @@ public class RootUiCoordinator +@@ -1625,7 +1627,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -319,7 +319,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 -@@ -307,6 +307,7 @@ public final class ChromePreferenceKeys { +@@ -314,6 +314,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"; @@ -378,7 +378,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.InsetObserver; import org.chromium.ui.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.InsetsRectProvider; -@@ -266,6 +267,7 @@ public class AppHeaderCoordinator +@@ -260,6 +261,7 @@ public class AppHeaderCoordinator private static @DesktopWindowHeuristicResult int checkIsInDesktopWindow( InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult) { @@ -389,7 +389,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -791,7 +791,7 @@ public class LocationBarCoordinator +@@ -847,7 +847,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,8 +401,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1674,6 +1674,13 @@ Your Google account may have other forms of browsing history like searches and a - Hide your IP address +@@ -1660,6 +1660,13 @@ Your Google account may have other forms of browsing history like searches and a + Privacy guide explanation closed + @@ -483,7 +483,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro --- a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml +++ b/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml @@ -10,8 +10,10 @@ found in the LICENSE file. - 10dp + 9dp - 0dp @@ -498,8 +498,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/values/dimens.xml b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ControlContainer.java -@@ -23,7 +23,7 @@ public interface ControlContainer { - * Initialize the control container with the specified toolbar. +@@ -26,7 +26,7 @@ public interface ControlContainer { + * * @param toolbarLayoutId The ID of the toolbar layout to use. */ - void initWithToolbar(int toolbarLayoutId); @@ -510,18 +510,18 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java -@@ -5,6 +5,7 @@ - package org.chromium.chrome.browser.toolbar.top; +@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar.top; + import static org.chromium.build.NullUtil.assumeNonNull; import android.content.Context; +import android.content.res.Resources; import android.graphics.Canvas; + import android.graphics.Color; import android.graphics.PorterDuff; - import android.graphics.Rect; -@@ -144,8 +145,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout - } +@@ -154,8 +155,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override + @Initializer - public void initWithToolbar(int toolbarLayoutId) { + public void initWithToolbar(int toolbarLayoutId, int controlContainerHeightOverrideId) { try (TraceEvent te = TraceEvent.scoped("ToolbarControlContainer.initWithToolbar")) { @@ -548,7 +548,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/ToolbarLayout.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarLayout.java -@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; import org.chromium.components.feature_engagement.Tracker; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.util.MotionEventUtils; @@ -556,7 +556,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.util.TokenHolder; import org.chromium.url.GURL; -@@ -578,7 +579,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -571,7 +572,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -570,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/HeightTransitionHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/HeightTransitionHandler.java -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.toolbar.top.ToolbarLayout; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripHeightObserver; import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoordinator.TabStripTransitionDelegate; import org.chromium.ui.base.ViewUtils; @@ -578,7 +578,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; -@@ -556,6 +557,7 @@ class HeightTransitionHandler { +@@ -559,6 +560,7 @@ class HeightTransitionHandler { if (TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting != null) { return TabStripTransitionCoordinator.sHeightTransitionThresholdForTesting; } @@ -596,8 +596,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow +import org.chromium.ui.base.DeviceFormFactor; /** Class used to manage tab strip visibility and height updates. */ - public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHeaderObserver { -@@ -154,7 +155,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea + @NullMarked +@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -627,7 +627,7 @@ 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 -@@ -28,6 +28,7 @@ import org.chromium.content_public.browser.ContentFeatureList; +@@ -30,6 +30,7 @@ import org.chromium.content_public.browser.ContentFeatureList; import org.chromium.content_public.browser.ContentFeatureMap; import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; @@ -635,7 +635,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c /** Fragment to keep track of all the accessibility related preferences. */ @NullMarked -@@ -43,6 +44,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -45,6 +46,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public static final String PREF_ZOOM_INFO = "zoom_info"; public static final String PREF_IMAGE_DESCRIPTIONS = "image_descriptions"; @@ -645,7 +645,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -107,6 +111,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -112,6 +116,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getReaderAccessibilityDelegate().getValue()); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -658,7 +658,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -166,6 +176,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -171,6 +181,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); diff --git a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch index d388f679..c55d564d 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -96,6 +96,11 @@ found in the LICENSE file. +@@ -95,6 +95,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -46,6 +46,7 @@ import org.chromium.base.Callback; +@@ -47,6 +47,7 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1775,8 +1776,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1798,8 +1799,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -51,33 +51,34 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct 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 -@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.privacy.settings; - import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS_MODE; +@@ -8,6 +8,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS - import android.os.Build; + import android.content.Context; + import android.content.Intent; +import android.content.SharedPreferences; + import android.graphics.drawable.Drawable; + import android.os.Build; import android.os.Bundle; - import android.text.SpannableString; - import android.text.style.ClickableSpan; -@@ -22,6 +23,8 @@ import org.chromium.base.metrics.RecordHistogram; - import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.ContextUtils; +@@ -21,7 +22,9 @@ import android.view.View; + import androidx.annotation.VisibleForTesting; + import androidx.preference.Preference; + +import org.chromium.base.BuildInfo; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.enterprise.util.ManagedBrowserUtils; - import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -89,6 +92,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + import org.chromium.base.Callback; ++import org.chromium.base.ContextUtils; + import org.chromium.base.IntentUtils; + import org.chromium.base.metrics.RecordHistogram; + import org.chromium.base.metrics.RecordUserAction; +@@ -112,6 +115,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); + private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit"; + private ManagedPreferenceDelegate mManagedPreferenceDelegate; - @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; - @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; -@@ -326,7 +331,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; + @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; +@@ -376,7 +381,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -90,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting UserPrefs.get(getProfile()) .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue); } else if (PREF_HTTPS_FIRST_MODE_LEGACY.equals(key)) { -@@ -402,6 +411,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -436,6 +445,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -105,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -5616,6 +5616,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5691,6 +5691,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d IMAGE diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index bf7e4539..a40fcabb 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -24,9 +24,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -100,6 +100,9 @@ import java.util.Map; - import java.util.Objects; +@@ -112,6 +112,9 @@ import java.util.Objects; import java.util.Optional; + import java.util.Set; +import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.url.GURL; @@ -34,7 +34,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGridDialog component, responsible for communicating with the components' * coordinator as well as managing the business logic for dialog show/hide. -@@ -940,9 +943,15 @@ public class TabGridDialogMediator +@@ -1030,9 +1033,15 @@ public class TabGridDialogMediator return; } @@ -62,7 +62,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -414,10 +415,15 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -415,10 +416,15 @@ public class TabGroupUiMediator implements BackPressHandler { assert relatedTabs.size() > 0; Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -505,6 +506,13 @@ public class ChromeTabCreator extends TabCreator +@@ -508,6 +509,13 @@ public class ChromeTabCreator extends TabCreator * @return the created tab. */ public Tab launchUrl(String url, @TabLaunchType int type, Intent intent, long intentTimestamp) { @@ -225,7 +225,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -320,6 +320,7 @@ public final class ChromePreferenceKeys { +@@ -327,6 +327,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -247,7 +247,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1498,6 +1498,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1489,6 +1489,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -261,9 +261,9 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc @@ -91,6 +91,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { - registry->RegisterBooleanPref( - prefs::kShowForwardButton, true, - GetHomeAndForwardButtonAndHomePageIsNewTabPageFlags()); + + registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, + pref_registration_flags); + registry->RegisterBooleanPref(prefs::kNewTabPageIsHomePage, false, + PrefRegistry::NO_REGISTRATION_FLAGS); @@ -272,7 +272,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1319,6 +1319,10 @@ inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; +@@ -1328,6 +1328,10 @@ inline constexpr char kPinSplitTabButton[] = "browser.pin_split_tab_button"; // by enterprise policy. inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; diff --git a/build/patches/Add-search-engine.patch b/build/patches/Add-search-engine.patch index c3684987..10b7697d 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -15,13 +15,13 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../cromite/cromite_prepopulated_engines.json | 37 ++++++++++++++++++ .../search_engine_choice_utils.cc | 5 +-- .../search_engines/search_engine_type.h | 5 +++ - .../template_url_prepopulate_data.cc | 15 ++++++- - .../template_url_prepopulate_data.h | 7 ---- + .../template_url_prepopulate_data.cc | 21 +++++++++- + .../template_url_prepopulate_data.h | 9 ----- tools/json_to_struct/json_to_struct.gni | 9 +++++ tools/json_to_struct/json_to_struct.py | 26 ++++++++---- tools/json_to_struct/struct_generator.py | 10 +++-- tools/variations/fieldtrial_to_struct.py | 4 +- - 13 files changed, 108 insertions(+), 26 deletions(-) + 13 files changed, 114 insertions(+), 28 deletions(-) create mode 100644 components/resources/default_100_percent/search_engine_choice/default_favicon.png create mode 100644 components/search_engines/cromite/BUILD.gn create mode 100644 components/search_engines/cromite/cromite_prepopulated_engines.json @@ -67,15 +67,15 @@ diff --git a/components/resources/search_engine_choice_scaled_resources.grdp b/c diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUILD.gn --- a/components/search_engines/BUILD.gn +++ b/components/search_engines/BUILD.gn -@@ -73,6 +73,7 @@ static_library("search_engines") { +@@ -72,6 +72,7 @@ static_library("search_engines") { + "//third_party/metrics_proto", "//third_party/omnibox_proto", "//third_party/search_engines_data:prepopulated_engines", - "//third_party/search_engines_data:regional_settings", + "cromite:cromite_prepopulated_engines", ] deps = [ -@@ -159,6 +160,7 @@ source_set("search_engine_utils") { +@@ -158,6 +159,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -83,7 +83,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -242,6 +244,7 @@ source_set("unit_tests") { +@@ -246,6 +248,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", @@ -153,7 +153,7 @@ new file mode 100644 diff --git a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc --- a/components/search_engines/search_engine_choice/search_engine_choice_utils.cc +++ b/components/search_engines/search_engine_choice/search_engine_choice_utils.cc -@@ -183,10 +183,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -187,10 +187,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -188,49 +188,61 @@ diff --git a/components/search_engines/search_engine_type.h b/components/search_ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/components/search_engines/template_url_prepopulate_data.cc --- a/components/search_engines/template_url_prepopulate_data.cc +++ b/components/search_engines/template_url_prepopulate_data.cc -@@ -30,6 +30,8 @@ +@@ -28,6 +28,8 @@ + #include "components/search_engines/template_url_data_util.h" #include "third_party/search_engines_data/resources/definitions/prepopulated_engines.h" - #include "third_party/search_engines_data/resources/definitions/regional_settings.h" +#include "components/search_engines/cromite/cromite_prepopulated_engines.h" + namespace TemplateURLPrepopulateData { // Helpers -------------------------------------------------------------------- -@@ -85,11 +87,10 @@ GetPrepopulatedEnginesForEeaRegionCountries(CountryId country_id, - generator.seed(profile_seed); - std::shuffle(t_urls.begin(), t_urls.end(), generator); - -- CHECK_LE(t_urls.size(), kMaxEeaPrepopulatedEngines); - return t_urls; +@@ -123,7 +125,7 @@ int GetDataVersion(PrefService* prefs) { + kCurrentDataVersion; } --std::vector> GetPrepopulatedTemplateURLData( -+std::vector> GetPrepopulatedTemplateURLDataChromium( - CountryId country_id, - PrefService& prefs) { - if (regional_capabilities::HasSearchEngineCountryListOverride()) { -@@ -115,6 +116,16 @@ std::vector> GetPrepopulatedTemplateURLData( +-std::vector> GetPrepopulatedEngines( ++std::vector> GetPrepopulatedEnginesChromium( + PrefService& prefs, + std::vector + regional_prepopulated_engines) { +@@ -139,6 +141,17 @@ std::vector> GetPrepopulatedEngines( &PrepopulatedEngineToTemplateURLData); } -+std::vector> GetPrepopulatedTemplateURLData( -+ CountryId country_id, -+ PrefService& prefs) { ++std::vector> GetPrepopulatedEngines( ++ PrefService& prefs, ++ std::vector ++ regional_prepopulated_engines) { + std::vector> t_urls = -+ GetPrepopulatedTemplateURLDataChromium(country_id, prefs); ++ GetPrepopulatedEnginesChromium(prefs, regional_prepopulated_engines); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); + return t_urls; +} + - // These values are persisted to logs. Entries should not be renumbered and - // numeric values should never be reused. - enum class SearchProviderOverrideStatus { + std::unique_ptr GetPrepopulatedEngine( + PrefService& prefs, + std::vector +@@ -160,9 +173,13 @@ std::vector> GetLocalPrepopulatedEngines( + return std::vector>(); + } + +- return base::ToVector( ++ std::vector> t_urls = ++ base::ToVector( + regional_capabilities::GetPrepopulatedEngines(country_id, prefs), + &PrepopulatedEngineToTemplateURLData); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); ++ t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); ++ return t_urls; + } + + #endif diff --git a/components/search_engines/template_url_prepopulate_data.h b/components/search_engines/template_url_prepopulate_data.h --- a/components/search_engines/template_url_prepopulate_data.h +++ b/components/search_engines/template_url_prepopulate_data.h -@@ -32,13 +32,6 @@ struct PrepopulatedEngine; +@@ -27,15 +27,6 @@ struct PrepopulatedEngine; extern const int kMaxPrepopulatedEngineID; @@ -239,11 +251,13 @@ diff --git a/components/search_engines/template_url_prepopulate_data.h b/compone -// -// Note: If this is increased, please also increase the declared variant count -// for the `Search.ChoiceScreenShowedEngineAt.Index{Index}` histogram. +-// TODO(crbug.com/408932087): Investigate moving it to the file that actually +-// populates these, `//c/regional_capabilities/r*c*_util.cc`. -inline constexpr size_t kMaxEeaPrepopulatedEngines = 8; - // The maximum number of prepopulated search engines that can be returned in // in the rest of the world by `GetPrepopulatedEngines()`. - inline constexpr size_t kMaxRowPrepopulatedEngines = 5; + // TODO(crbug.com/408932087): Investigate deduping it with the constant diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json_to_struct.gni --- a/tools/json_to_struct/json_to_struct.gni +++ b/tools/json_to_struct/json_to_struct.gni @@ -273,7 +287,7 @@ diff --git a/tools/json_to_struct/json_to_struct.gni b/tools/json_to_struct/json diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_to_struct.py --- a/tools/json_to_struct/json_to_struct.py +++ b/tools/json_to_struct/json_to_struct.py -@@ -100,7 +100,7 @@ def _GenerateHeaderGuard(h_filename): +@@ -103,7 +103,7 @@ def _GenerateHeaderGuard(h_filename): return re.sub(u'^_*', '', result) + u'_' # Remove leading underscores. @@ -282,7 +296,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates the .h file containing the definition of the structure specified by the schema. -@@ -136,11 +136,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -139,11 +139,15 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#include "%s"\n' % header) f.write(u'\n') @@ -299,7 +313,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ schema['type_name'], schema['schema'])) f.write(u'\n') -@@ -175,7 +179,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): +@@ -170,7 +174,7 @@ def _GenerateH(basepath, fileroot, head, namespace, schema, description): f.write(u'#endif // %s\n' % header_guard) @@ -308,7 +322,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates the .cc file containing the static initializers for the of the elements specified in the description. -@@ -210,7 +214,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): +@@ -205,7 +209,7 @@ def _GenerateCC(basepath, fileroot, head, namespace, schema, description): f.write(element_generator.GenerateElements(schema['type_name'], schema['schema'], description)) @@ -316,8 +330,8 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ + if excludetype == False and not aggregation.export_items: f.write('\n} // anonymous namespace \n\n') - if aggregation.kind == AggregationKind.ARRAY: -@@ -315,7 +319,7 @@ def GenerateClass(basepath, + aggregated = GenerateCCAggregation(schema['type_name'], aggregation) +@@ -292,7 +296,7 @@ def GenerateClass(basepath, def GenerateStruct(basepath, output_root, namespace, schema, description, @@ -326,7 +340,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ """Generates a C++ struct from a JSON description. Args: -@@ -334,8 +338,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, +@@ -311,8 +315,8 @@ def GenerateStruct(basepath, output_root, namespace, schema, description, """ year = int(year) if year else datetime.now().year head = HEAD % (year, schema_filename, description_filename) @@ -337,7 +351,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ if __name__ == '__main__': parser = optparse.OptionParser( -@@ -350,11 +354,17 @@ if __name__ == '__main__': +@@ -327,11 +331,17 @@ if __name__ == '__main__': parser.add_option('-s', '--schema', help='path to the schema file, ' 'mandatory.') parser.add_option('-o', '--output', help='output filename, ') @@ -355,7 +369,7 @@ diff --git a/tools/json_to_struct/json_to_struct.py b/tools/json_to_struct/json_ description_filename = os.path.normpath(args[0]) root, ext = os.path.splitext(description_filename) shortroot = opts.output if opts.output else os.path.split(root)[1] -@@ -371,4 +381,4 @@ if __name__ == '__main__': +@@ -348,4 +358,4 @@ if __name__ == '__main__': schema = _Load(opts.schema) description = _Load(description_filename) GenerateStruct(basepath, output_root, opts.namespace, schema, description, @@ -395,7 +409,7 @@ diff --git a/tools/json_to_struct/struct_generator.py b/tools/json_to_struct/str diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py --- a/tools/variations/fieldtrial_to_struct.py +++ b/tools/variations/fieldtrial_to_struct.py -@@ -232,14 +232,14 @@ def main(arguments): +@@ -235,14 +235,14 @@ def main(arguments): json_to_struct.GenerateStruct( basepath, output_root, opts.namespace, schema, description, os.path.split(description_filename)[1], os.path.split(opts.schema)[1], diff --git a/build/patches/Add-setting-to-clear-data-on-exit.patch b/build/patches/Add-setting-to-clear-data-on-exit.patch index 4edcf91b..4981bf60 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -254,6 +254,7 @@ chrome_java_sources = [ +@@ -260,6 +260,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataCheckBoxPreference.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFetcher.java", "java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java", @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -190,6 +190,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -198,6 +198,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.read_later.ReadingListBackPressHandler; import org.chromium.chrome.browser.recent_tabs.CrossDevicePaneFactory; import org.chromium.chrome.browser.reengagement.ReengagementNotificationController; -@@ -1780,7 +1781,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -1803,7 +1804,11 @@ public class ChromeTabbedActivity extends ChromeActivity { Intent intent = getIntent(); boolean hadCipherData = @@ -334,7 +334,7 @@ new file mode 100644 diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2228,6 +2228,16 @@ +@@ -2227,6 +2227,16 @@ Delete browsing data @@ -420,7 +420,7 @@ diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chro diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc --- a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager.cc -@@ -311,8 +311,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { +@@ -324,8 +324,25 @@ void ChromeBrowsingDataLifetimeManager::Shutdown() { void ChromeBrowsingDataLifetimeManager::ClearBrowsingDataForOnExitPolicy( bool keep_browser_alive) { @@ -448,7 +448,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_lifetime_manager. if (!data_types.empty() && IsConditionSatisfiedForBrowsingDataRemoval(GetSyncTypesForPolicyPref( -@@ -421,6 +438,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { +@@ -434,6 +451,7 @@ void ChromeBrowsingDataLifetimeManager::StartScheduledBrowsingDataRemoval() { bool ChromeBrowsingDataLifetimeManager:: IsConditionSatisfiedForBrowsingDataRemoval( const syncer::UserSelectableTypeSet sync_types) { @@ -515,7 +515,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -541,6 +541,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -543,6 +543,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -594,7 +594,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile void ProfileManager::DoFinalInitForServices(Profile* profile, bool go_off_the_record) { if (!do_final_services_init_ || -@@ -2121,7 +2134,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2119,7 +2132,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { Profile* original_profile = profile->GetOriginalProfile(); // Do nothing if the closed window is not the last window of the same profile. for (Browser* browser_iter : *BrowserList::GetInstance()) { @@ -691,7 +691,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1590,6 +1590,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1581,6 +1581,9 @@ Your Google account may have other forms of browsing history like searches and a Some of your history might not show up here. To see all your Chrome history, open full Chrome history. Also, your Google Account may have other forms of browsing history at <link>myactivity.google.com</link>. @@ -718,7 +718,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1910,6 +1910,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1945,6 +1945,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -748,7 +748,7 @@ diff --git a/components/browsing_data/content/browsing_data_helper.cc b/componen diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/core/BUILD.gn --- a/components/browsing_data/core/BUILD.gn +++ b/components/browsing_data/core/BUILD.gn -@@ -61,6 +61,10 @@ if (is_android) { +@@ -62,6 +62,10 @@ if (is_android) { visibility = [ ":*" ] sources = [ "browsing_data_utils.h" ] } @@ -759,7 +759,7 @@ diff --git a/components/browsing_data/core/BUILD.gn b/components/browsing_data/c java_cpp_enum("cookie_or_cache_deletion_choice_javagen") { # External code should depend on ":java" instead. visibility = [ ":*" ] -@@ -70,6 +74,7 @@ if (is_android) { +@@ -71,6 +75,7 @@ if (is_android) { android_library("java") { srcjar_deps = [ ":browsing_data_utils_javagen", @@ -826,7 +826,7 @@ diff --git a/components/browsing_data/core/browsing_data_policies_utils.h b/comp diff --git a/components/browsing_data/core/browsing_data_utils.cc b/components/browsing_data/core/browsing_data_utils.cc --- a/components/browsing_data/core/browsing_data_utils.cc +++ b/components/browsing_data/core/browsing_data_utils.cc -@@ -341,6 +341,37 @@ bool GetDeletionPreferenceFromDataType( +@@ -407,6 +407,37 @@ bool GetDeletionPreferenceFromDataType( BrowsingDataType data_type, ClearBrowsingDataTab clear_browsing_data_tab, std::string* out_pref) { @@ -976,7 +976,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_service_impl.cc --- a/content/browser/btm/btm_service_impl.cc +++ b/content/browser/btm/btm_service_impl.cc -@@ -221,7 +221,7 @@ class StateClearer : public BrowsingDataRemover::Observer { +@@ -210,7 +210,7 @@ class StateClearer : public BrowsingDataRemover::Observer { remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), @@ -988,7 +988,7 @@ diff --git a/content/browser/btm/btm_service_impl.cc b/content/browser/btm/btm_s diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc -@@ -1528,6 +1528,7 @@ void StoragePartitionImpl::Initialize( +@@ -1511,6 +1511,7 @@ void StoragePartitionImpl::Initialize( .AppendASCII("Code Cache"); } DCHECK_GE(settings.size_in_bytes(), 0); @@ -999,22 +999,19 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/browser/browsing_data_remover.h b/content/public/browser/browsing_data_remover.h --- a/content/public/browser/browsing_data_remover.h +++ b/content/public/browser/browsing_data_remover.h -@@ -151,14 +151,19 @@ class BrowsingDataRemover { - static constexpr DataType DATA_TYPE_RELATED_WEBSITE_SETS_PERMISSIONS = 1 - << 24; +@@ -162,11 +162,16 @@ class BrowsingDataRemover { -+ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 25; -+ - // Device bound sessions - // (https://github.com/WICG/dbsc/blob/main/README.md) -- static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 25; -+ static constexpr DataType DATA_TYPE_DEVICE_BOUND_SESSIONS = 1 << 26; + // Clear-Site-Data Interaction with Prefetch and Prerender. + static constexpr DataType DATA_TYPE_PREFETCH_CACHE = 1 << 27; +- static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 28; ++ static constexpr DataType DATA_TYPE_PRERENDER_CACHE = 1 << 29; // Embedders can add more datatypes beyond this point. - static constexpr DataType DATA_TYPE_CONTENT_END = - DATA_TYPE_DEVICE_BOUND_SESSIONS; + static constexpr DataType DATA_TYPE_CONTENT_END = DATA_TYPE_PRERENDER_CACHE; -+ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_DEVICE_BOUND_SESSIONS, ++ static constexpr DataType DATA_TYPE_SKIP_SSL_HOST_STATE = 1 << 28; ++ ++ static_assert(DATA_TYPE_CONTENT_END == DATA_TYPE_PRERENDER_CACHE, + "Please check."); + // All data stored by the Attribution Reporting API. diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index 4fb409cb..c96e630e 100644 --- a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch +++ b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch @@ -38,15 +38,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java --- a/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java +++ b/android_webview/java/src/org/chromium/android_webview/contextmenu/AwContextMenuItemDelegate.java -@@ -11,6 +11,7 @@ import android.net.Uri; - import org.chromium.base.IntentUtils; +@@ -12,6 +12,7 @@ import org.chromium.base.IntentUtils; + import org.chromium.build.annotations.NullMarked; import org.chromium.components.embedder_support.contextmenu.ContextMenuItemDelegate; import org.chromium.components.embedder_support.contextmenu.ContextMenuParams; +import org.chromium.content_public.common.Referrer; import org.chromium.content_public.browser.WebContents; import org.chromium.ui.base.Clipboard; import org.chromium.url.GURL; -@@ -52,6 +53,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -54,6 +55,9 @@ public class AwContextMenuItemDelegate implements ContextMenuItemDelegate { IntentUtils.safeStartActivity(mActivity, intent); } @@ -59,7 +59,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/contextmenu/A diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -99,6 +99,7 @@ found in the LICENSE file. +@@ -104,6 +104,7 @@ found in the LICENSE file. @@ -98,29 +98,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuItem.java -@@ -118,8 +118,9 @@ class ChromeContextMenuItem { - int SAVE_PAGE = 35; - int SHARE_PAGE = 36; - int PRINT_PAGE = 37; -+ int FOLLOW_LINK = 38; +@@ -127,8 +127,9 @@ class ChromeContextMenuItem { + int RELOAD = 40; + // Developer Group + int INSPECT_ELEMENT = 41; ++ int FOLLOW_LINK = 42; // ALWAYS UPDATE! -- int NUM_ENTRIES = 38; -+ int NUM_ENTRIES = 39; +- int NUM_ENTRIES = 42; ++ int NUM_ENTRIES = 43; } /** Mapping from {@link Item} to the ID found in the ids.xml. */ -@@ -162,6 +163,7 @@ class ChromeContextMenuItem { - R.id.contextmenu_save_page, // Item.SAVE_PAGE - R.id.contextmenu_share_page, // Item.SHARE_PAGE - R.id.contextmenu_print_page, // Item.PRINT_PAGE +@@ -175,6 +176,7 @@ class ChromeContextMenuItem { + R.id.contextmenu_forward, // Item.FORWARD + R.id.contextmenu_reload, // Item.RELOAD + R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT + R.id.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; /** Mapping from {@link Item} to the ID of the string that describes the action of the item. */ -@@ -204,6 +206,7 @@ class ChromeContextMenuItem { - R.string.contextmenu_save_page, // Item.SAVE_PAGE - R.string.contextmenu_share_page, // Item.SHARE_PAGE - R.string.contextmenu_print_page, // Item.PRINT_PAGE +@@ -221,6 +223,7 @@ class ChromeContextMenuItem { + R.string.contextmenu_forward, // Item.FORWARD + R.string.contextmenu_reload, // Item.RELOAD + R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT + R.string.contextmenu_open_in_tab, // Item.OPEN_IN_NEW_CHROME_TAB }; @@ -128,8 +128,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -318,6 +318,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { - +@@ -380,6 +380,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { + } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); + if (ChromeFeatureList.sShowAlwaysContextMenuOnLinks.isEnabled()) { @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -734,6 +737,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -817,6 +820,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { getProfile(), false); }); @@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java -@@ -323,6 +323,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -356,6 +356,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -168,27 +168,27 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -350,6 +350,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -367,6 +367,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupEntryPointsAndroid, &kTabGroupParityBottomSheetAndroid, &kToolbarPhoneCleanup, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabStateFlatBuffer, &kTabStripContextMenuAndroid, - &kTabStripGroupCollapseAndroid, + &kTabStripGroupDragDropAndroid, 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 -@@ -423,6 +423,8 @@ public abstract class ChromeFeatureList { +@@ -438,6 +438,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; + public static final String SHOW_ALWAYS_CONTEXT_MENU_ON_LINKS = + "ShowAlwaysContextMenuOnLinks"; - public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; + public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; + public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = - "NotificationPermissionBottomSheet"; -@@ -805,6 +807,8 @@ public abstract class ChromeFeatureList { +@@ -809,6 +811,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -197,7 +197,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false); public static final CachedFlag sPostGetMyMemoryStateToBackground = newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true); -@@ -970,6 +974,7 @@ public abstract class ChromeFeatureList { +@@ -978,6 +982,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerReportIndicesMismatch, sTraceBinderIpc, sUseChimeAndroidSdk, @@ -208,7 +208,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1739,6 +1739,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1725,6 +1725,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -221,7 +221,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3313,6 +3319,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3326,6 +3332,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -249,7 +249,7 @@ 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 -@@ -52,6 +52,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -54,6 +54,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment private BooleanPreferenceDelegate mMoveTopToolbarToBottomDelegate; private BooleanPreferenceDelegate mDisableToolbarSwipeUpDelegate; @@ -259,7 +259,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -138,6 +141,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -143,6 +146,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDisableToolbarSwipeUpPref.setChecked(mDisableToolbarSwipeUpDelegate.getValue()); mDisableToolbarSwipeUpPref.setOnPreferenceChangeListener(this); @@ -272,7 +272,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -219,6 +228,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -224,6 +233,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment } else if (PREF_DISABLE_TOOLBAR_SWIPE_UP.equals(preference.getKey())) { mDisableToolbarSwipeUpDelegate.setValue((Boolean) newValue); mDelegate.requestRestart(getActivity()); @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third Frame* target_frame = frame->Tree().FindOrCreateFrameForNavigation(frame_request, target).frame; -@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::interestTargetElement() { +@@ -633,7 +654,7 @@ Element* HTMLAnchorElementBase::InterestTargetElement() const { html_names::kInteresttargetAttr); } @@ -428,7 +428,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ --- a/third_party/blink/renderer/core/html/html_anchor_element.h +++ b/third_party/blink/renderer/core/html/html_anchor_element.h @@ -112,6 +112,7 @@ class CORE_EXPORT HTMLAnchorElementBase : public HTMLElement, - Element* interestTargetElement() override; + Element* InterestTargetElement() const override; void Trace(Visitor*) const override; + void HandleClick(MouseEvent&, bool do_not_show_context_menu = false); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 17651896..b92919da 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -163,6 +163,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" diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 729cc878..bb1088fc 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,15 +12,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -440,8 +441,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.settings.SettingsFragment; +@@ -466,8 +467,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index d2684a36..46d7dd97 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -84,7 +84,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -503,6 +503,10 @@ vars = { +@@ -511,6 +511,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -95,7 +95,7 @@ diff --git a/DEPS b/DEPS 'highway_revision': '00fe003dac355b979f36157f9407c7c46448958e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1886,6 +1890,9 @@ deps = { +@@ -1889,6 +1893,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -375,7 +375,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc diff --git a/third_party/.gitignore b/third_party/.gitignore --- a/third_party/.gitignore +++ b/third_party/.gitignore -@@ -80,6 +80,7 @@ +@@ -81,6 +81,7 @@ /libjingle/source /libupnp /libva-fake-driver/src @@ -464,7 +464,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4809,6 +4809,7 @@ domain Emulation +@@ -4823,6 +4823,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -475,7 +475,7 @@ diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/t diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc -@@ -557,10 +557,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( +@@ -565,10 +565,10 @@ AtomicString InspectorEmulationAgent::OverrideAcceptImageHeader( String header(network_utils::ImageAcceptHeader()); for (String type : *disabled_image_types) { // The header string is expected to be like @@ -489,7 +489,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent header.Replace(String(type + ","), ""); } return AtomicString(header); -@@ -931,6 +931,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( +@@ -939,6 +939,7 @@ protocol::Response InspectorEmulationAgent::setDisabledImageTypes( namespace DisabledImageTypeEnum = protocol::Emulation::DisabledImageTypeEnum; for (protocol::Emulation::DisabledImageType type : *disabled_types) { if (DisabledImageTypeEnum::Avif == type || @@ -605,7 +605,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2414,6 +2414,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2431,6 +2431,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -616,7 +616,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2459,6 +2463,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2476,6 +2480,7 @@ source_set("blink_platform_unittests_sources") { "//third_party/blink/renderer/platform/wtf", "//third_party/dawn/src/dawn/native", "//third_party/dawn/src/dawn/wire", @@ -2215,7 +2215,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations -@@ -5405,6 +5405,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -5434,6 +5434,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2231,7 +2231,7 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -429,6 +429,15 @@ +@@ -478,6 +478,15 @@ "args": ["--enable-blink-features=FractionalScrollOffsets"], "expires": "Jun 1, 2025" }, @@ -2646,7 +2646,7 @@ new file mode 100644 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -14724,6 +14724,7 @@ from previous Chrome versions. +@@ -14847,6 +14847,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 17998c63..21a532b5 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -305,6 +305,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -336,6 +336,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_); -@@ -574,25 +581,6 @@ static String ExtractWebGLContextCreationError( +@@ -605,25 +612,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('.'); -@@ -652,6 +640,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -683,6 +671,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 -@@ -1933,6 +1933,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, +@@ -1950,6 +1950,8 @@ class MODULES_EXPORT WebGLRenderingContextBase : public ScriptWrappable, DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 4009e2b6..07e95cad 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -210,7 +210,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc -@@ -14,6 +14,8 @@ +@@ -16,6 +16,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" -@@ -286,6 +288,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -288,6 +290,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 -@@ -19,6 +19,8 @@ +@@ -21,6 +21,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" -@@ -1033,6 +1035,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1035,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 72df7385..f266e29e 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch @@ -20,7 +20,7 @@ diff --git a/third_party/blink/renderer/modules/document_picture_in_picture/pict #include "third_party/blink/renderer/modules/picture_in_picture/picture_in_picture_event.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" -@@ -390,6 +391,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -392,6 +393,12 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index cc5b90a5..efe24a7d 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/network/reporting_service_proxy.cc | 3 +++ .../renderer_host/render_frame_host_impl.cc | 6 ------ .../coop/cross_origin_opener_policy_reporter.cc | 16 +++++++--------- - .../dip/document_isolation_policy_reporter.cc | 2 ++ + .../dip/document_isolation_policy_reporter.cc | 3 +++ .../web_package/signed_exchange_reporter.cc | 2 ++ ...content_switch_dependent_feature_overrides.cc | 1 + .../Allow-building-without-enable_reporting.inc | 2 ++ @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/frame/reporting_context.cc | 9 +++++++++ .../renderer/core/frame/reporting_context.h | 7 +++++-- .../renderer/core/frame/reporting_observer.cc | 3 +-- - 22 files changed, 63 insertions(+), 25 deletions(-) + 22 files changed, 64 insertions(+), 25 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 @@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1481,6 +1481,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1482,6 +1482,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostImplWithAction( -@@ -1494,6 +1495,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1495,6 +1496,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -15823,12 +15823,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -15967,12 +15967,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -219,7 +219,15 @@ diff --git a/content/browser/security/coop/cross_origin_opener_policy_reporter.c diff --git a/content/browser/security/dip/document_isolation_policy_reporter.cc b/content/browser/security/dip/document_isolation_policy_reporter.cc --- a/content/browser/security/dip/document_isolation_policy_reporter.cc +++ b/content/browser/security/dip/document_isolation_policy_reporter.cc -@@ -94,11 +94,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( +@@ -7,6 +7,7 @@ + #include + + #include "base/values.h" ++#include "net/net_buildflags.h" + #include "content/public/browser/storage_partition.h" + #include "services/network/public/cpp/request_destination.h" + #include "services/network/public/mojom/network_context.mojom.h" +@@ -94,11 +95,13 @@ void DocumentIsolationPolicyReporter::QueueAndNotify( } body_to_pass.Set("disposition", disposition); @@ -284,7 +292,7 @@ diff --git a/net/reporting/reporting_header_parser.cc b/net/reporting/reporting_ 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 -@@ -225,6 +225,12 @@ class ReportingServiceImpl : public ReportingService { +@@ -236,6 +236,12 @@ class ReportingServiceImpl : public ReportingService { int depth, base::TimeTicks queued_ticks, ReportingTargetType target_type) { @@ -300,7 +308,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -481,14 +481,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -485,14 +485,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -332,7 +340,7 @@ diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/pu diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1761,7 +1761,6 @@ mojom("mojom") { +@@ -1791,7 +1791,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -343,7 +351,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 -@@ -1227,6 +1227,7 @@ interface NetworkContext { +@@ -1230,6 +1230,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -351,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1234,6 +1235,7 @@ interface NetworkContext { +@@ -1237,6 +1238,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -359,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1244,6 +1246,7 @@ interface NetworkContext { +@@ -1247,6 +1249,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`. @@ -377,8 +385,8 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c +#include "net/net_buildflags.h" #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" - #include "services/network/public/cpp/web_sandbox_flags.h" -@@ -1345,6 +1346,7 @@ void ContentSecurityPolicy::ReportViolation( + #include "base/feature_list.h" +@@ -1303,6 +1304,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -386,7 +394,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); -@@ -1352,6 +1354,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1310,6 +1312,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -405,7 +413,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" -@@ -2761,9 +2762,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2772,9 +2773,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -428,7 +436,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,7 +660,9 @@ class CORE_EXPORT LocalFrame final +@@ -662,7 +663,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 49f350dc..7417decf 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -11,19 +11,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_attributes_entry.cc | 2 +- chrome/browser/profiles/profile_impl.cc | 5 +---- chrome/browser/profiles/profile_manager.cc | 7 ------- + .../supervised_user/supervised_user_browser_utils.cc | 1 + chrome/browser/ui/webui/managed_ui_handler.cc | 4 ---- .../browser/ui/webui/management/management_ui_handler.cc | 4 ---- .../core/browser/supervised_user_pref_store.cc | 1 + .../core/browser/supervised_user_preferences.cc | 6 +++++- .../core/browser/supervised_user_service.cc | 5 +---- - .../supervised_user/core/browser/supervised_user_utils.cc | 1 + - components/supervised_user/core/common/features.cc | 5 ++++- - 14 files changed, 15 insertions(+), 31 deletions(-) + components/supervised_user/core/common/features.cc | 2 +- + extensions/browser/api/management/management_api.cc | 1 + + 15 files changed, 13 insertions(+), 31 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -789,7 +789,6 @@ if (current_toolchain == default_toolchain) { +@@ -803,7 +803,6 @@ if (_is_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", @@ -76,7 +77,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 -@@ -469,7 +469,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -467,7 +467,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -121,7 +122,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); -@@ -1977,9 +1973,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1975,9 +1971,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -131,6 +132,17 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(IS_CHROMEOS) user_manager::User* user = ash::ProfileHelper::Get()->GetUserByProfile(profile); +diff --git a/chrome/browser/supervised_user/supervised_user_browser_utils.cc b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +--- a/chrome/browser/supervised_user/supervised_user_browser_utils.cc ++++ b/chrome/browser/supervised_user/supervised_user_browser_utils.cc +@@ -99,6 +99,7 @@ bool SupervisedUserCanSkipExtensionParentApprovals(const Profile* profile) { + } + + bool AreExtensionsPermissionsEnabled(Profile* profile) { ++ if ((true)) return false; + #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) + return profile->IsChild(); + #else 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 @@ -196,7 +208,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences diff --git a/components/supervised_user/core/browser/supervised_user_service.cc b/components/supervised_user/core/browser/supervised_user_service.cc --- a/components/supervised_user/core/browser/supervised_user_service.cc +++ b/components/supervised_user/core/browser/supervised_user_service.cc -@@ -91,10 +91,6 @@ void SupervisedUserService::Init() { +@@ -92,10 +92,6 @@ void SupervisedUserService::Init() { DCHECK(settings_service_->IsReady()); pref_change_registrar_.Init(&user_prefs_.get()); @@ -204,10 +216,10 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc - prefs::kSupervisedUserId, - base::BindRepeating(&SupervisedUserService::OnSupervisedUserIdChanged, - base::Unretained(this))); - SetActive(supervised_user::IsSubjectToParentalControls(user_prefs_.get())); - } - -@@ -161,6 +157,7 @@ SupervisedUserService::SupervisedUserService( + pref_change_registrar_.Add( + policy::policy_prefs::kIncognitoModeAvailability, + base::BindRepeating( +@@ -183,6 +179,7 @@ void SupervisedUserService::SetSettingsServiceActive(bool active) { } void SupervisedUserService::SetActive(bool active) { @@ -215,35 +227,32 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc if (active_ == active) { return; } -diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc ---- a/components/supervised_user/core/browser/supervised_user_utils.cc -+++ b/components/supervised_user/core/browser/supervised_user_utils.cc -@@ -314,6 +314,7 @@ GURL NormalizeUrl(const GURL& url) { - } - - bool AreWebFilterPrefsDefault(const PrefService& pref_service) { -+ if ((true)) return true; - return pref_service - .FindPreference(prefs::kDefaultSupervisedUserFilteringBehavior) - ->IsDefaultValue() || 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 -@@ -102,7 +102,6 @@ BASE_FEATURE(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop, - "EnableExtensionsPermissionsForSupervisedUsersOnDesktop", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -35,7 +35,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, + #else + base::FEATURE_DISABLED_BY_DEFAULT); #endif - - #if BUILDFLAG(ENABLE_EXTENSIONS) - BASE_FEATURE(kExposedParentalControlNeededForExtensionInstallation, - "ExposedParentalControlNeededForExtensionInstallation", -@@ -191,4 +190,8 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, + #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_WIN) + const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; +@@ -141,4 +140,5 @@ BASE_FEATURE(kWaitUntilAccessTokenAvailableForClassifyUrl, #endif ); +SET_CROMITE_FEATURE_DISABLED(kLocalWebApprovals); -+#if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) -+SET_CROMITE_FEATURE_DISABLED(kEnableExtensionsPermissionsForSupervisedUsersOnDesktop); -+#endif } // namespace supervised_user +diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc +--- a/extensions/browser/api/management/management_api.cc ++++ b/extensions/browser/api/management/management_api.cc +@@ -310,6 +310,7 @@ void AddExtensionInfo(const Extension* source_extension, + } + + bool PlatformSupportsApprovalFlowForExtensions() { ++ if ((true)) return false; + #if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ + BUILDFLAG(IS_WIN) + return true; -- diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 14e3596d..384a858e 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1346,6 +1346,12 @@ void WebMediaPlayerImpl::OnSelectedVideoTrackChanged( +@@ -1336,6 +1336,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 std::vector& enabled_track_ids) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3752,7 +3758,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3697,7 +3703,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. @@ -35,11 +35,11 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc + if (!HasVideoNonEmptySize() && preserve_audio) return false; - // MediaPlayer always signals audio and video, so use an empty natural size to + // Video PiP is the only exception when background video playback is disabled. 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/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index b5573de3..6a1bfec9 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -26,7 +26,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -257,6 +259,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -290,6 +292,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -34,7 +34,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM RecordUserAction.record("MobileNewTabOpened"); RecordUserAction.record("LinkOpenedInNewTab"); LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); -@@ -277,6 +280,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -310,6 +313,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { * @param url The URL to open. */ public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index 677181e1..f20ce291 100644 --- a/build/patches/Always-use-new-tab-page-for-default-home-page.patch +++ b/build/patches/Always-use-new-tab-page-for-default-home-page.patch @@ -55,7 +55,7 @@ diff --git a/chrome/browser/partnercustomizations/java/src/org/chromium/chrome/b diff --git a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java --- a/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java +++ b/components/search_engines/android/java/src/org/chromium/components/search_engines/TemplateUrl.java -@@ -74,6 +74,7 @@ public class TemplateUrl { +@@ -72,6 +72,7 @@ public class TemplateUrl { * prepopulated_engines.json. */ public String getNewTabURL() { diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 459319b8..c0e67c32 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -54,16 +54,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -1073,6 +1073,9 @@ public final class ProductionSupportedFlagList { +@@ -1080,6 +1080,9 @@ public final class ProductionSupportedFlagList { "Hides user preference on the system keyboard by setting the standard " + "eng layout and removing the layout information from the " + "javascript keyboard events."), + Flag.baseFeature( + "AndroidFontsFingerprintingMitigation", + "Android fonts fingerprinting mitigation: replaces all system fonts with the same for all devices.."), - // Add new commandline switches and features above. The final entry should have a - // trailing comma for cleaner diffs. - }; + Flag.baseFeature( + BlinkFeatures.ASYNC_SET_COOKIE, + "When enabled, the communication between renderer and network service is " diff --git a/android_webview/nonembedded/component_updater/registration.cc b/android_webview/nonembedded/component_updater/registration.cc --- a/android_webview/nonembedded/component_updater/registration.cc +++ b/android_webview/nonembedded/component_updater/registration.cc @@ -106,7 +106,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -7745,6 +7745,13 @@ static_library("browser") { +@@ -7788,6 +7788,13 @@ static_library("browser") { } } @@ -614,7 +614,7 @@ diff --git a/components/services/font/public/mojom/font_service.mojom b/componen diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -2561,6 +2561,17 @@ source_set("browser") { +@@ -2572,6 +2572,17 @@ source_set("browser") { ] } @@ -632,7 +632,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn if (is_linux || is_chromeos) { sources -= [ "file_system_access/file_path_watcher/file_path_watcher_stub.cc" ] -@@ -2603,6 +2614,13 @@ source_set("browser") { +@@ -2614,6 +2625,13 @@ source_set("browser") { ] } @@ -649,8 +649,8 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc --- a/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc +++ b/content/browser/renderer_host/render_process_host_impl_receiver_bindings.cc -@@ -52,6 +52,11 @@ - #include "third_party/blink/public/mojom/webdatabase/web_database.mojom.h" +@@ -50,6 +50,11 @@ + #include "third_party/blink/public/mojom/android_font_lookup/android_font_lookup.mojom.h" #endif +#if BUILDFLAG(IS_ANDROID) @@ -661,7 +661,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl_receiver_bin #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) #include "components/services/font/public/mojom/font_service.mojom.h" // nogncheck #include "content/browser/font_service.h" // nogncheck -@@ -343,6 +348,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( +@@ -332,6 +337,13 @@ void RenderProcessHostImpl::IOThreadHostImpl::BindHostReceiver( } #endif @@ -695,7 +695,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn -@@ -357,6 +357,10 @@ target(link_target_type, "renderer") { +@@ -353,6 +353,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 532aba56..0d280b1f 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -29,9 +29,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../sAskForRestartOnConnectionChange.java | 32 +++++ .../browser/tabmodel/TabModelSelector.java | 2 + .../browser/tabmodel/TabModelUtils.java | 18 +++ - .../browser/tabmodel/TabWindowManager.java | 2 + - .../tabmodel/TabWindowManagerImpl.java | 10 ++ + .../browser/tabwindow/TabWindowManager.java | 2 + + .../tabwindow/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 15 +++ + .../java/res/layout/floating_snackbar.xml | 10 ++ .../android/java/res/layout/snackbar.xml | 10 ++ .../ui/messages/snackbar/Snackbar.java | 16 +++ .../ui/messages/snackbar/SnackbarManager.java | 6 + @@ -49,7 +50,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/frame/local_frame.cc | 2 + .../main_thread/frame_scheduler_impl.cc | 2 + .../main_thread/page_scheduler_impl.cc | 9 +- - 29 files changed, 322 insertions(+), 10 deletions(-) + 30 files changed, 332 insertions(+), 10 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc @@ -98,7 +99,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.url.GURL; +import org.chromium.chrome.R; -+import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; ++import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +import org.chromium.chrome.browser.layouts.LayoutManager; +import org.chromium.chrome.browser.compositor.layouts.Layout; +import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl; @@ -111,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.chrome.browser.tabmodel.TabModelUtils; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; -+import org.chromium.chrome.browser.tabmodel.TabWindowManager; ++import org.chromium.chrome.browser.tabwindow.TabWindowManager; +import org.chromium.chrome.browser.lifetime.ApplicationLifetime; +import org.chromium.content_public.browser.WebContentsObserver; +import org.chromium.content_public.browser.WebContents; @@ -281,7 +282,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1335,7 +1335,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1343,7 +1343,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -350,7 +351,7 @@ new file mode 100644 diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelector.java -@@ -147,6 +147,8 @@ public interface TabModelSelector { +@@ -146,6 +146,8 @@ public interface TabModelSelector { /** Get total tab count across all tab models */ int getTotalTabCount(); @@ -358,11 +359,11 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse + /** * Search all TabModels for a tab with the specified id. - * @return specified tab or null if tab is not found + * diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java -@@ -17,12 +17,16 @@ import org.chromium.base.supplier.SupplierUtils; +@@ -16,12 +16,16 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.content_public.browser.WebContents; @@ -400,10 +401,10 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse /** * Find the {@link Tab} index whose URL matches the specified URL. * -diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java ---- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -+++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManager.java -@@ -108,6 +108,8 @@ public interface TabWindowManager { +diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java ++++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java +@@ -138,6 +138,8 @@ public interface TabWindowManager { /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); @@ -412,10 +413,10 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse /** * @param tab The tab to look for in each model. * @return The TabModel containing the given Tab or null if one doesn't exist. -diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java ---- a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -+++ b/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chrome/browser/tabmodel/TabWindowManagerImpl.java -@@ -490,6 +490,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +diff --git a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +--- a/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java ++++ b/chrome/browser/tabwindow/internal/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManagerImpl.java +@@ -552,6 +552,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -452,6 +453,25 @@ new file mode 100644 + Not now + + +diff --git a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +--- a/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml ++++ b/chrome/browser/ui/messages/android/java/res/layout/floating_snackbar.xml +@@ -50,5 +50,15 @@ found in the LICENSE file. + android:paddingEnd="@dimen/snackbar_button_padding" + android:paddingStart="@dimen/snackbar_button_padding" + style="@style/TextButton" /> ++ ++ + + diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml --- a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml +++ b/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml @@ -474,16 +494,16 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/c diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java -@@ -133,6 +133,8 @@ public class Snackbar { - private String mTemplateText; - private String mActionText; - private Object mActionData; +@@ -135,6 +135,8 @@ public class Snackbar { + private @Nullable String mTemplateText; + private @Nullable String mActionText; + private @Nullable Object mActionData; + private String mDismissActionText; + private Object mDismissActionData; private int mBackgroundColor; private int mTextApperanceResId; private boolean mSingleLine = true; -@@ -235,6 +237,20 @@ public class Snackbar { +@@ -240,6 +242,20 @@ public class Snackbar { return this; } @@ -507,7 +527,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java -@@ -318,6 +318,12 @@ public class SnackbarManager +@@ -326,6 +326,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -523,7 +543,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarView.java -@@ -51,6 +51,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -55,6 +55,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -531,7 +551,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private final ImageView mProfileImageView; private final int mAnimationDuration; private final boolean mIsTablet; -@@ -97,11 +98,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -101,11 +102,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -545,7 +565,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro } /** -@@ -120,6 +122,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -124,6 +126,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -553,7 +573,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -147,6 +150,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -154,6 +157,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView.setOnClickListener(listener); @@ -562,7 +582,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mEdgeToEdgeSupplier = edgeToEdgeSupplier; if (SnackbarManager.isFloatingSnackbarEnabled()) { -@@ -404,6 +409,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -428,6 +433,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -578,7 +598,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc --- a/content/browser/web_contents/web_contents_android.cc +++ b/content/browser/web_contents/web_contents_android.cc -@@ -898,6 +898,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -899,6 +899,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -615,7 +635,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc --- a/content/browser/web_contents/web_contents_impl.cc +++ b/content/browser/web_contents/web_contents_impl.cc -@@ -3840,8 +3840,10 @@ void WebContentsImpl::Stop() { +@@ -3865,8 +3865,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -629,7 +649,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1128,6 +1128,12 @@ public class WebContentsImpl +@@ -1131,6 +1131,12 @@ public class WebContentsImpl WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -642,7 +662,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1432,6 +1438,8 @@ public class WebContentsImpl +@@ -1435,6 +1441,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -711,7 +731,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -4309,6 +4309,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4329,6 +4329,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -722,7 +742,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -3196,6 +3196,7 @@ void LocalFrame::DidFreeze() { +@@ -3206,6 +3206,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -730,7 +750,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3210,6 +3211,7 @@ void LocalFrame::DidResume() { +@@ -3220,6 +3221,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index f977da70..995d638d 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -52,7 +52,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc --- a/third_party/blink/renderer/modules/webaudio/audio_buffer.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_buffer.cc -@@ -203,6 +203,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) +@@ -199,6 +199,20 @@ AudioBuffer::AudioBuffer(AudioBus* bus) } } @@ -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" -@@ -639,7 +640,9 @@ double AudioContext::baseLatency() const { +@@ -660,7 +661,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 -@@ -495,9 +495,8 @@ +@@ -545,9 +545,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index 29ea5a43..aa2b0690 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -60,7 +60,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h -@@ -88,6 +88,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { +@@ -86,6 +86,7 @@ class CORE_EXPORT BaseFetchContext : public FetchContext { virtual SubresourceFilter* GetSubresourceFilter() const = 0; virtual bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const = 0; @@ -71,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -1015,6 +1015,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -1007,6 +1007,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } @@ -101,7 +101,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h -@@ -186,6 +186,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, +@@ -183,6 +183,7 @@ class CORE_EXPORT FrameFetchContext final : public BaseFetchContext, bool ShouldBlockWebSocketByMixedContentCheck(const KURL&) const override; std::unique_ptr CreateWebSocketHandshakeThrottle() override; diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch index fe53f1f9..052c3403 100644 --- a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch +++ b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch @@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -4982,7 +4982,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5104,7 +5104,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index 327e0e29..0753c335 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/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 -@@ -128,6 +128,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { continue; } @@ -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 -@@ -1095,6 +1095,8 @@ component("net") { +@@ -1108,6 +1108,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -227,7 +227,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc -@@ -50,6 +50,7 @@ +@@ -53,6 +53,7 @@ #include "net/socket/network_binding_client_socket_factory.h" #include "net/ssl/ssl_config_service_defaults.h" #include "net/url_request/static_http_user_agent_settings.h" @@ -235,7 +235,7 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job_factory.h" #include "url/url_constants.h" -@@ -595,6 +596,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { +@@ -610,6 +611,8 @@ std::unique_ptr URLRequestContextBuilder::Build() { job_factory->SetProtocolHandler(scheme_handler.first, std::move(scheme_handler.second)); } diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 5e1a26ec..faf57ee1 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -31,7 +31,7 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -24,6 +24,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega +@@ -25,6 +25,7 @@ import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelega import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -39,7 +39,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with -@@ -184,6 +185,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -186,6 +187,11 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); enableImportExportMenu(); @@ -51,7 +51,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows } void enableImportExportMenu() { -@@ -215,6 +221,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -221,6 +227,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -69,7 +69,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -232,6 +249,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -243,6 +260,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 49179d9a..262a5c18 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -58,8 +58,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template --- a/build/android/java/templates/BuildConfig.template +++ b/build/android/java/templates/BuildConfig.template -@@ -77,6 +77,8 @@ public class BuildConfig { - public static boolean IS_CRONET_BUILD; +@@ -83,6 +83,8 @@ public class BuildConfig { + public static boolean CRONET_FOR_AOSP_BUILD; #endif + public static String BUILD_TARGET_CPU = QUOTE(_BUILD_TARGET_CPU); @@ -70,7 +70,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni --- a/build/config/android/rules.gni +++ b/build/config/android/rules.gni -@@ -1935,6 +1935,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1938,6 +1938,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -83,7 +83,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -802,6 +802,8 @@ chrome_java_sources = [ +@@ -820,6 +820,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/omaha/OmahaBase.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java", "java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java", @@ -110,7 +110,7 @@ diff --git a/chrome/android/java/res/xml/about_chrome_preferences.xml b/chrome/a diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/about_settings/AboutChromeSettings.java -@@ -24,12 +24,18 @@ import org.chromium.ui.widget.Toast; +@@ -25,12 +25,18 @@ import org.chromium.ui.widget.Toast; import java.util.Calendar; @@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ private static final String PREF_OS_VERSION = "os_version"; private static final String PREF_LEGAL_INFORMATION = "legal_information"; -@@ -63,6 +69,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -64,6 +70,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat p = findPreference(PREF_LEGAL_INFORMATION); int currentYear = Calendar.getInstance().get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); @@ -144,11 +144,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -132,4 +145,17 @@ public class AboutChromeSettings extends PreferenceFragmentCompat - } +@@ -134,6 +147,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat return true; } -+ + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + String key = preference.getKey(); @@ -161,7 +160,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ + } + return true; + } - } ++ + @Override + public @SettingsFragment.AnimationType int getAnimationType() { + return SettingsFragment.AnimationType.PROPERTY; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java new file mode 100644 --- /dev/null @@ -1087,8 +1089,8 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -308,6 +308,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kPriceChangeModule, +@@ -324,6 +324,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, + &kInlineUpdateFlow, @@ -1098,14 +1100,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -388,6 +388,7 @@ public abstract class ChromeFeatureList { +@@ -401,6 +401,7 @@ public abstract class ChromeFeatureList { public static final String HISTORY_PANE_ANDROID = "HistoryPaneAndroid"; public static final String HTTPS_FIRST_BALANCED_MODE = "HttpsFirstBalancedMode"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; + public static final String KEYBOARD_ESC_BACK_NAVIGAION = "KeyboardEscBackNavigation"; public static final String LEGACY_TAB_STATE_DEPRECATION = "LegacyTabStateDeprecation"; - public static final String LENS_ON_QUICK_ACTION_SEARCH_WIDGET = "LensOnQuickActionSearchWidget"; diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn --- a/chrome/browser/omaha/android/BUILD.gn +++ b/chrome/browser/omaha/android/BUILD.gn @@ -1676,7 +1678,7 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2405,6 +2405,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2410,6 +2410,12 @@ Your Google account may have other forms of browsing history like searches and a Chrome updates are no longer supported for this version of Android @@ -1689,7 +1691,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4333,7 +4339,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4361,7 +4367,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1701,7 +1703,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4344,6 +4353,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4372,6 +4381,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1723,7 +1725,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc --- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc +++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc -@@ -876,6 +876,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -924,6 +924,7 @@ LensOverlayQueryController::CreateEndpointFetcher( /*post_data=*/request_string, /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), diff --git a/build/patches/Bromite-package-name.patch b/build/patches/Bromite-package-name.patch index 139e2d54..3b5387ab 100644 --- a/build/patches/Bromite-package-name.patch +++ b/build/patches/Bromite-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -26,7 +26,7 @@ declare_args() { +@@ -27,7 +27,7 @@ declare_args() { # WebView providers which declare one of a handful of package names. See # https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/build-instructions.md#Changing-package-name # for details. diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 30968f71..1424f0d0 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -44,14 +44,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../component_updater/download_filters_task.h | 129 ++++++++ ...ent_subresource_filter_throttle_manager.cc | 15 + ...tent_subresource_filter_throttle_manager.h | 2 + - .../content/shared/browser/ruleset_service.cc | 47 ++- + .../content/shared/browser/ruleset_service.cc | 44 ++- .../content/shared/browser/ruleset_service.h | 8 +- .../unindexed_ruleset_stream_generator.cc | 3 + .../core/browser/ruleset_version.h | 4 + - .../browser/subresource_filter_features.cc | 114 +------ + .../browser/subresource_filter_features.cc | 118 +------- .../core/browser/verified_ruleset_dealer.cc | 4 + .../core/common/indexed_ruleset.cc | 5 +- - 39 files changed, 1271 insertions(+), 129 deletions(-) + 39 files changed, 1269 insertions(+), 132 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 -@@ -320,6 +320,7 @@ if (current_toolchain == default_toolchain) { +@@ -328,6 +328,7 @@ if (_is_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", @@ -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", -@@ -633,6 +634,7 @@ chrome_java_resources = [ +@@ -636,6 +637,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -96,7 +96,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -875,6 +875,8 @@ chrome_java_sources = [ +@@ -893,6 +893,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", @@ -180,8 +180,8 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml --- a/chrome/android/java/res/values/styles.xml +++ b/chrome/android/java/res/values/styles.xml -@@ -251,6 +251,24 @@ found in the LICENSE file. - +@@ -263,6 +263,24 @@ found in the LICENSE file. + 20sp + @@ -1213,7 +1213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java --- a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java +++ b/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/LocaleManagerDelegate.java -@@ -384,8 +384,9 @@ public class LocaleManagerDelegate { +@@ -389,8 +389,9 @@ public class LocaleManagerDelegate { /** @see LocaleManager#getSearchEnginesForPromoDialog */ public List getSearchEnginesForPromoDialog(@SearchEnginePromoType int promoType) { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index acb1c8ed..87f36f83 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -8,7 +8,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/android/java/AndroidManifest.xml | 4 - .../privacy_preferences_manager_impl.cc | 5 + .../metrics/chrome_feature_list_creator.cc | 12 ++ - .../search_engine_preconnector.cc | 2 + + .../search_engine_preconnector.cc | 1 + .../policy/chrome_browser_policy_connector.cc | 3 - ...nfiguration_policy_handler_list_factory.cc | 6 +- .../account_consistency_mode_manager.cc | 7 +- @@ -37,12 +37,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 33 files changed, 322 insertions(+), 158 deletions(-) + 33 files changed, 321 insertions(+), 158 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc +++ b/base/win/win_util.cc -@@ -158,80 +158,18 @@ bool EnablePerMonitorV2() { +@@ -157,80 +157,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -129,7 +129,7 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml +++ b/chrome/android/java/AndroidManifest.xml -@@ -77,9 +77,7 @@ by a child template that "extends" this file. +@@ -81,9 +81,7 @@ by a child template that "extends" this file. @@ -139,7 +139,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -90,7 +88,6 @@ by a child template that "extends" this file. +@@ -94,7 +92,6 @@ by a child template that "extends" this file. @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -137,7 +134,6 @@ by a child template that "extends" this file. +@@ -141,7 +138,6 @@ by a child template that "extends" this file. @@ -202,12 +202,11 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow diff --git a/chrome/browser/navigation_predictor/search_engine_preconnector.cc b/chrome/browser/navigation_predictor/search_engine_preconnector.cc --- a/chrome/browser/navigation_predictor/search_engine_preconnector.cc +++ b/chrome/browser/navigation_predictor/search_engine_preconnector.cc -@@ -48,6 +48,8 @@ BASE_FEATURE(kPreconnectToSearch, - BASE_FEATURE(kPreconnectToSearchWithPrivacyModeEnabled, - "PreconnectToSearchWithPrivacyModeEnabled", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -55,6 +55,7 @@ BASE_FEATURE(kPreconnectFromKeyedService, + BASE_FEATURE(kPreconnectToSearch, + "PreconnectToSearch", + base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearch); -+SET_CROMITE_FEATURE_DISABLED(kPreconnectToSearchWithPrivacyModeEnabled); } // namespace features WebContentVisibilityManager::WebContentVisibilityManager() @@ -227,7 +226,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2433,9 +2433,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2450,9 +2450,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -1022,7 +1021,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -771,6 +771,7 @@ int SSLClientSocketImpl::Init() { +@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1030,7 +1029,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket // Disable SHA-1 server signatures. // TODO(crbug.com/boringssl/699): Once the default is flipped in BoringSSL, we // no longer need to override it. -@@ -1177,6 +1178,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1178,6 +1179,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); @@ -1038,5 +1037,5 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket + // If the connection was good, check HPKP and CT status simultaneously, // but prefer to treat the HPKP error as more serious, if there was one. - if (result == OK) { + if (result == OK || result == ERR_CERTIFICATE_TRANSPARENCY_REQUIRED) { -- diff --git a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch index 23fb0a13..72354f16 100644 --- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch +++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch @@ -23,7 +23,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py """ import sys -@@ -231,7 +233,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): +@@ -234,7 +236,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): sys.exit(1) @@ -32,7 +32,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py stamp_file = None package_file = None -@@ -263,6 +265,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -266,6 +268,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): target_os = env.get('target_os', target_os) except: pass @@ -41,7 +41,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py if os.path.exists(OLD_STAMP_FILE): # Delete the old stamp file so it doesn't look like an old version of clang -@@ -280,7 +284,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -283,7 +287,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): # Updating the main clang package nukes the output dir. Any other packages # need to be updated *after* the clang package. @@ -50,16 +50,16 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py RmTree(dir) DownloadAndUnpackPackage(package_file, dir, host_os) -@@ -330,6 +334,8 @@ def main(): +@@ -331,6 +335,8 @@ def main(): + parser.add_argument('--print-clang-version', action='store_true', + help=('Print current clang release version (e.g. 9.0.0) ' 'and exit.')) - parser.add_argument('--verify-version', - help='Verify that clang has the passed-in version.') + parser.add_argument('--no-clear', + help='Do not remove old file before extracting.') args = parser.parse_args() - if args.verify_version and args.verify_version != RELEASE_VERSION: -@@ -371,7 +377,7 @@ def main(): + if args.print_clang_version: +@@ -366,7 +372,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index 971cb602..af4bf8b8 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc -@@ -1054,10 +1054,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { +@@ -1080,10 +1080,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() { autofill::AutofillCrowdsourcingManager* ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() { @@ -42,7 +42,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -390,15 +390,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -391,15 +391,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -61,7 +61,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h --- a/chrome/browser/ui/autofill/chrome_autofill_client.h +++ b/chrome/browser/ui/autofill/chrome_autofill_client.h -@@ -107,7 +107,6 @@ class ChromeAutofillClient : public ContentAutofillClient, +@@ -106,7 +106,6 @@ class ChromeAutofillClient : public ContentAutofillClient, version_info::Channel GetChannel() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; @@ -93,18 +93,18 @@ diff --git a/components/android_autofill/browser/android_autofill_client.cc b/co diff --git a/components/android_autofill/browser/android_autofill_client.h b/components/android_autofill/browser/android_autofill_client.h --- a/components/android_autofill/browser/android_autofill_client.h +++ b/components/android_autofill/browser/android_autofill_client.h -@@ -86,7 +86,6 @@ class AndroidAutofillClient : public autofill::ContentAutofillClient { +@@ -87,7 +87,6 @@ class AndroidAutofillClient : public autofill::ContentAutofillClient { const std::string& GetAppLocale() const final; bool IsOffTheRecord() const final; scoped_refptr GetURLLoaderFactory() final; - autofill::AutofillCrowdsourcingManager& GetCrowdsourcingManager() final; autofill::VotesUploader& GetVotesUploader() override; autofill::PersonalDataManager& GetPersonalDataManager() final; - autofill::EntityDataManager* GetEntityDataManager() override; + autofill::ValuablesDataManager* GetValuablesDataManager() override; diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -492,33 +492,6 @@ std::optional GetUploadPayloadForApi( +@@ -493,33 +493,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -138,7 +138,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, RequestType type) { -@@ -550,15 +523,7 @@ std::optional GetAPIQueryPayload( +@@ -551,15 +524,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -155,7 +155,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -865,31 +830,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -866,31 +831,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -206,7 +206,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc --- a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc +++ b/components/autofill/core/browser/crowdsourcing/votes_uploader.cc -@@ -403,9 +403,6 @@ void VotesUploader::UploadVote( +@@ -419,9 +419,6 @@ void VotesUploader::UploadVote( client_->GetUkmRecorder(), ukm_source_id, *submitted_form, submission_timestamp); } @@ -233,10 +233,10 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -327,17 +327,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { - driver().SendTypePredictionsToRenderer(queryable_forms); - LogTypePredictionsAvailable(log_manager(), non_queryable_forms); - LogTypePredictionsAvailable(log_manager(), queryable_forms); +@@ -307,17 +307,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { + if (base::FeatureList::IsEnabled(features::test::kShowDomNodeIDs)) { + driver().ExposeDomNodeIDs(); + } - - // Query the server if at least one of the forms was parsed. - if (!queryable_forms.empty()) { @@ -254,7 +254,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -959,6 +959,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -981,6 +981,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -288,7 +288,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -80,7 +80,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -81,7 +81,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch index ceca2aff..5e99fbc0 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -426,7 +426,7 @@ new file mode 100644 diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn -@@ -792,3 +792,5 @@ if (is_component_build) { +@@ -796,3 +796,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } @@ -723,7 +723,7 @@ diff --git a/mojo/public/tools/mojom/mojom_parser.py b/mojo/public/tools/mojom/m diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py --- a/tools/grit/grit/grd_reader.py +++ b/tools/grit/grit/grd_reader.py -@@ -93,11 +93,28 @@ class GrdContentHandler(xml.sax.handler.ContentHandler): +@@ -96,11 +96,28 @@ class GrdContentHandler(xml.sax.handler.ContentHandler): raise exception.FileNotFound(partname) # Exceptions propagate to the handler in grd_reader.Parse(). oldsource = self.source diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index f3e2b226..5e293ec8 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/subresource_filter/content/browser/profile_interaction_manager.cc b/components/subresource_filter/content/browser/profile_interaction_manager.cc --- a/components/subresource_filter/content/browser/profile_interaction_manager.cc +++ b/components/subresource_filter/content/browser/profile_interaction_manager.cc -@@ -129,6 +129,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( +@@ -130,6 +130,7 @@ mojom::ActivationLevel ProfileInteractionManager::OnPageActivationComputed( } void ProfileInteractionManager::MaybeShowNotification() { diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 05b1a4c3..48ecf3ad 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java -@@ -400,13 +400,6 @@ public class WebViewChromiumAwInit { +@@ -407,13 +407,6 @@ public class WebViewChromiumAwInit { } AwBrowserProcess.configureChildProcessLauncher(); @@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -626,10 +626,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -627,10 +627,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { mAwInit.setStartupTaskExperimentEnabled(enableStartupTasksExperiment); AwBrowserMainParts.setWebViewStartupTasksLogicIsEnabled(enableStartupTasksExperiment); diff --git a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch index 94651c5b..5295749f 100644 --- a/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch +++ b/build/patches/dns-send-IPv6-connectivity-probes-to-RIPE-DNS.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -150,12 +150,12 @@ const size_t kMaxHostLength = 4096; +@@ -151,12 +151,12 @@ const size_t kMaxHostLength = 4096; // Time between IPv6 probes, i.e. for how long results of each IPv6 probe are // cached. diff --git a/build/patches/do-not-add-suffix-to-package-name.patch b/build/patches/do-not-add-suffix-to-package-name.patch index a2dd93b2..bba7880a 100644 --- a/build/patches/do-not-add-suffix-to-package-name.patch +++ b/build/patches/do-not-add-suffix-to-package-name.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni --- a/chrome/android/chrome_public_apk_tmpl.gni +++ b/chrome/android/chrome_public_apk_tmpl.gni -@@ -29,7 +29,7 @@ declare_args() { +@@ -30,7 +30,7 @@ declare_args() { chrome_public_manifest_package = "org.chromium.chrome" if (use_stable_package_name_for_trichrome) { chrome_public_manifest_package += ".stable" diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index fc30ba05..77fa2165 100644 --- a/build/patches/do-not-block-build-incompatible-profiles.patch +++ b/build/patches/do-not-block-build-incompatible-profiles.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/v8/BUILD.gn b/v8/BUILD.gn --- a/v8/BUILD.gn +++ b/v8/BUILD.gn -@@ -2531,7 +2531,7 @@ template("run_mksnapshot") { +@@ -2539,7 +2539,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch index 315e57d0..1ab1191e 100644 --- a/build/patches/enable-ftrivial-auto-var-init-zero.patch +++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -398,6 +398,10 @@ config("compiler") { +@@ -399,6 +399,10 @@ config("compiler") { cflags += [ "-fwrapv" ] } diff --git a/build/patches/eyeo-133.0.6943.49-android_api.patch b/build/patches/eyeo-133.0.6943.49-android_api.patch index 8e20cde8..23b1e78a 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -6,7 +6,7 @@ Based on Chromium 133.0.6943.49 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module --- - chrome/android/BUILD.gn | 14 + + chrome/android/BUILD.gn | 13 + chrome/android/chrome_java_sources.gni | 4 + .../browser/adblock/TabIdTranslator.java | 36 ++ chrome/browser/BUILD.gn | 4 + @@ -46,7 +46,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../adblock/TestVerificationUtils.java | 220 +++++++ ...esource_classification_notifier_android.cc | 163 +++++ ...resource_classification_notifier_android.h | 72 +++ - 40 files changed, 5610 insertions(+) + 40 files changed, 5609 insertions(+) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java create mode 100644 chrome/browser/android/adblock/tab_id_translator_jni.cc create mode 100644 components/adblock/android/BUILD.gn @@ -95,17 +95,9 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn +# This source code is a part of eyeo Chromium SDK. +# Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. - import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -288,6 +291,7 @@ if (current_toolchain == default_toolchain) { - if (enable_screen_capture) { - deps += [ "//chrome/browser:screen_capture_java_resources" ] - } -+ - } - - android_resources("java_overlay_resources") { -@@ -533,6 +537,7 @@ if (current_toolchain == default_toolchain) { + import("//build/config/cronet/config.gni") +@@ -546,6 +549,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", @@ -113,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", "//components/autofill/android:autofill_java", -@@ -1338,6 +1343,7 @@ if (current_toolchain == default_toolchain) { +@@ -1355,6 +1359,7 @@ if (_is_default_toolchain) { "javatests:chrome_test_java_org.chromium.chrome.browser.toolbar", "javatests:chrome_test_java_org.chromium.chrome.browser.webapps", "javatests:chrome_test_java_various", @@ -121,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/verification:javatests", "//chrome/browser/android/httpclient:javatests", "//chrome/browser/android/metrics:ukm_javatests", -@@ -1407,6 +1413,7 @@ if (current_toolchain == default_toolchain) { +@@ -1424,6 +1429,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -129,27 +121,27 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/test/data/autofill/", "//components/test/data/payments/", "//content/test/data/browsing_data/", -@@ -3202,6 +3209,12 @@ generate_jni("chrome_jni_headers") { - sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] - } +@@ -3222,6 +3228,12 @@ if (_is_default_toolchain) { + sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] + } -+ ### Android API module start -+ sources += -+ [ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java" ] ++ ### Android API module start ++ sources += ++ [ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java" ] + -+ ### Android API module end ++ ### Android API module end + - # Used for testing only, should not be shipped to end users. - if (enable_offline_pages_harness) { - sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] -@@ -3293,6 +3306,7 @@ group("jni_headers") { - "//chrome/browser/ui/messages/android:jni_headers", - "//chrome/browser/util:jni_headers", - "//chrome/browser/webauthn/android:jni_headers", -+ "//components/adblock/android:jni_headers", - "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", - "//components/content_relationship_verification/android:jni_headers", - "//components/image_fetcher:jni_headers", + # Used for testing only, should not be shipped to end users. + if (enable_offline_pages_harness) { + sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ] +@@ -3313,6 +3325,7 @@ if (_is_default_toolchain) { + "//chrome/browser/ui/messages/android:jni_headers", + "//chrome/browser/util:jni_headers", + "//chrome/browser/webauthn/android:jni_headers", ++ "//components/adblock/android:jni_headers", + "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", + "//components/content_relationship_verification/android:jni_headers", + "//components/image_fetcher:jni_headers", 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 @@ -215,7 +207,7 @@ new file mode 100644 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3282,6 +3282,10 @@ static_library("browser") { +@@ -3292,6 +3292,10 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -275,9 +267,9 @@ 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 -@@ -1011,6 +1011,12 @@ static_library("ui") { +@@ -1025,6 +1025,12 @@ static_library("ui") { deps += [ - "//chrome/browser/search/background:ntp_background_proto", + "//components/themes:ntp_background_proto", ] + ### Android API module start + deps += [ diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch index bd9e73fd..c5558953 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -239,10 +239,10 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -292,6 +292,10 @@ if (current_toolchain == default_toolchain) { +@@ -298,6 +298,10 @@ if (_is_default_toolchain) { + if (enable_screen_capture) { deps += [ "//chrome/browser:screen_capture_java_resources" ] } - + ### Android UI module start + deps += [ "//chrome/browser/adblock/android:java_ui_resources" ] + @@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn } android_resources("java_overlay_resources") { -@@ -779,6 +783,10 @@ if (current_toolchain == default_toolchain) { +@@ -792,6 +796,10 @@ if (_is_default_toolchain) { "//url/mojom:url_mojom_origin_java", ] diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch index 84c030e4..846d28ff 100644 --- a/build/patches/eyeo-133.0.6943.49-base.patch +++ b/build/patches/eyeo-133.0.6943.49-base.patch @@ -9,7 +9,7 @@ Based on Chromium 133.0.6943.49 README.md | 12 + base/threading/thread_restrictions.h | 9 + base/trace_event/builtin_categories.h | 1 + - components/BUILD.gn | 10 + + components/BUILD.gn | 7 + components/adblock/BUILD.gn | 36 + components/adblock/CHANGELOG.md | 746 +++++++++ components/adblock/LICENSE | 674 ++++++++ @@ -365,7 +365,7 @@ Based on Chromium 133.0.6943.49 tools/eyeo/update_git_grafts.py | 138 ++ tools/gritsettings/resource_ids.spec | 12 + .../histograms/metadata/extensions/enums.xml | 8 +- - 361 files changed, 48848 insertions(+), 8 deletions(-) + 361 files changed, 48845 insertions(+), 8 deletions(-) create mode 100644 components/adblock/BUILD.gn create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE @@ -700,7 +700,7 @@ Based on Chromium 133.0.6943.49 diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -277,6 +277,7 @@ vars = { +@@ -286,6 +286,7 @@ vars = { 'download_libvpx_testdata': False, 'android_git': 'https://android.googlesource.com', @@ -708,9 +708,9 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -529,6 +530,11 @@ vars = { +@@ -533,6 +534,11 @@ vars = { # and whatever else without interference from each other. - 'compiler_rt_revision': 'bc2b30185219a2defe3c8a3b45f95a11386a7f6f', + 'compiler_rt_revision': 'd0e4db9fcea15a392aaada986cbe33658afc0454', + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed @@ -719,8 +719,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': '449310fe2e37834a7e62972d2a690cade2ef596b', -@@ -1500,6 +1506,10 @@ deps = { + 'libcxx_revision': '9d0cba76be7399399d3a499ff3a52c264db3b104', +@@ -1503,6 +1509,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -729,7 +729,7 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + '929dd3e6d02aac1f46653d03b2a644e2873a3bbb', + 'url': Var('chromium_git') + '/website.git' + '@' + 'e157e12d99cfc729a970b474344673c44e2d2c9c', }, diff --git a/LICENSE b/LICENSE --- a/LICENSE @@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri namespace ash { class LoginEventRecorder; class StartupCustomizationDocument; -@@ -659,6 +666,8 @@ class BASE_EXPORT ScopedAllowBlocking { +@@ -655,6 +662,8 @@ class BASE_EXPORT ScopedAllowBlocking { friend class ::BrowserStateDirectoryBuilder; #endif @@ -829,7 +829,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn import("//base/debug/debug.gni") import("//build/config/chrome_build.gni") -@@ -177,6 +180,7 @@ test("components_unittests") { +@@ -178,6 +181,7 @@ test("components_unittests") { deps = [ "//base", @@ -837,7 +837,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/affiliations/core/browser:unit_tests", "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", -@@ -907,6 +911,7 @@ test("components_unittests") { +@@ -910,6 +914,7 @@ test("components_unittests") { repack("components_tests_pak") { sources = [ @@ -845,7 +845,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "$root_gen_dir/components/arc/input_overlay_resources.pak", "$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak", "$root_gen_dir/components/components_resources.pak", -@@ -923,6 +928,7 @@ repack("components_tests_pak") { +@@ -926,6 +931,7 @@ repack("components_tests_pak") { # TODO(b/207518736): Input overlay resources will be changed to proto soon, # thus not going to move this resource pak to under ash. "//chromeos/ash/experiences/arc/input_overlay/resources:resources_grit", @@ -853,7 +853,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/core/browser:autofill_address_rewriter_resources", "//components/metrics:server_urls_grd", "//components/omnibox/resources:omnibox_pedal_synonyms", -@@ -1024,6 +1030,7 @@ if (use_blink) { +@@ -1027,6 +1033,7 @@ if (use_blink) { deps = [ "//base", "//base/test:test_support", @@ -861,16 +861,6 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/autofill/content/browser", "//components/autofill/content/browser:browser_tests", "//components/autofill/content/renderer", -@@ -1233,6 +1240,9 @@ if (use_blink) { - - deps = [ - "//base", -+ "//components/adblock/core/classifier:perf_tests", -+ "//components/adblock/core/converter:perf_tests", -+ "//components/adblock/core/subscription:perf_tests", - "//components/attribution_reporting", - "//components/bookmarks/test", - "//components/discardable_memory/common", diff --git a/components/adblock/BUILD.gn b/components/adblock/BUILD.gn new file mode 100644 --- /dev/null @@ -18701,7 +18691,7 @@ new file mode 100644 +build_webui("build") { + grd_prefix = "adblock_internals" + static_files = [ "adblock_internals.html" ] -+ non_web_component_files = [ "adblock_internals.ts" ] ++ ts_files = [ "adblock_internals.ts" ] + mojo_files_deps = [ "//components/adblock/content/browser/mojom:adblock_internals_ts__generator" ] + mojo_files = [ "$root_gen_dir/components/adblock/content/browser/mojom/adblock_internals.mojom-webui.ts" ] + ts_definitions = [ "//tools/typescript/definitions/chrome_send.d.ts" ] @@ -50287,7 +50277,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #include "content/browser/renderer_host/render_frame_host_impl.h" -@@ -3476,6 +3480,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3598,6 +3602,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50452,7 +50442,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -312,6 +320,8 @@ static_library("content_shell_lib") { +@@ -317,6 +325,8 @@ static_library("content_shell_lib") { "//base", "//base:base_static", "//cc/base", @@ -50461,7 +50451,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/cdm/renderer", "//components/custom_handlers", "//components/custom_handlers:test_support", -@@ -332,6 +342,7 @@ static_library("content_shell_lib") { +@@ -337,6 +347,7 @@ static_library("content_shell_lib") { "//components/prefs", "//components/services/storage/test_api", "//components/url_formatter", @@ -50469,7 +50459,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations", "//components/variations/service", "//components/web_cache/renderer", -@@ -424,6 +435,7 @@ static_library("content_shell_lib") { +@@ -429,6 +440,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50477,7 +50467,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (shell_use_toolkit_views) { -@@ -515,6 +527,8 @@ repack("pak") { +@@ -520,6 +532,8 @@ repack("pak") { sources = [ "$root_gen_dir/base/tracing/protos/tracing_proto_resources.pak", @@ -50486,7 +50476,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "$root_gen_dir/components/ukm_resources.pak", "$root_gen_dir/content/attribution_internals_resources.pak", "$root_gen_dir/content/browser/resources/media/media_internals_resources.pak", -@@ -547,6 +561,8 @@ repack("pak") { +@@ -552,6 +566,8 @@ repack("pak") { deps = [ ":resources", "//base/tracing/protos:chrome_track_event_resources", @@ -50892,7 +50882,7 @@ diff --git a/services/network/public/cpp/net_ipc_param_traits.h b/services/netwo #ifndef SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_ #define SERVICES_NETWORK_PUBLIC_CPP_NET_IPC_PARAM_TRAITS_H_ -@@ -269,6 +273,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo) +@@ -275,6 +279,7 @@ IPC_STRUCT_TRAITS_BEGIN(net::RedirectInfo) IPC_STRUCT_TRAITS_MEMBER(new_referrer) IPC_STRUCT_TRAITS_MEMBER(insecure_scheme_was_upgraded) IPC_STRUCT_TRAITS_MEMBER(is_signed_exchange_fallback_redirect) @@ -50914,7 +50904,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -972,6 +976,10 @@ interface LocalFrame { +@@ -971,6 +975,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -50939,7 +50929,7 @@ diff --git a/third_party/blink/public/web/web_document.h b/third_party/blink/pub #ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ #define THIRD_PARTY_BLINK_PUBLIC_WEB_WEB_DOCUMENT_H_ -@@ -143,6 +147,14 @@ class BLINK_EXPORT WebDocument : public WebNode { +@@ -144,6 +148,14 @@ class BLINK_EXPORT WebDocument : public WebNode { WebCssOrigin = WebCssOrigin::kAuthor, BackForwardCacheAware = BackForwardCacheAware::kAllow); @@ -50968,7 +50958,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ #include "third_party/blink/renderer/core/dom/events/event_target.h" #include -@@ -881,7 +885,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, +@@ -882,7 +886,10 @@ bool EventTarget::dispatchEventForBindings(Event* event, if (!GetExecutionContext()) return false; @@ -50983,7 +50973,7 @@ diff --git a/third_party/blink/renderer/core/dom/events/event_target.cc b/third_ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_party/blink/renderer/core/exported/web_document.cc --- a/third_party/blink/renderer/core/exported/web_document.cc +++ b/third_party/blink/renderer/core/exported/web_document.cc -@@ -266,6 +266,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( +@@ -270,6 +270,56 @@ WebStyleSheetKey WebDocument::InsertStyleSheet( return injection_key; } @@ -51105,7 +51095,7 @@ diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/ #include "third_party/blink/renderer/core/html/html_element.h" #include "base/containers/enum_set.h" -@@ -2419,7 +2423,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2432,7 +2436,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51784,7 +51774,7 @@ diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ # This file is used to assign starting resource ids for resources and strings # used by Chromium. This is done to ensure that resource ids are unique # across all the grd files. If you are adding a new grd file, please add -@@ -1137,6 +1141,14 @@ +@@ -1141,6 +1145,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7620], }, @@ -51822,10 +51812,10 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3202,6 +3206,8 @@ Called by update_extension_permission.py.--> - +@@ -3206,6 +3210,8 @@ Called by update_extension_permission.py.--> + + + diff --git a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch index 96c468c6..82bcb623 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -50,7 +50,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module .../profile_keyed_service_browsertest.cc | 18 + chrome/browser/resources/BUILD.gn | 5 + .../safe_browsing_blocking_page_test.cc | 7 +- - .../sessions/session_restore_browsertest.cc | 8 +- ...subresource_filter_browser_test_harness.cc | 8 +- chrome/browser/ui/BUILD.gn | 4 + chrome/browser/ui/prefs/pref_watcher.cc | 13 + @@ -59,7 +58,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module chrome/common/BUILD.gn | 3 + chrome/test/BUILD.gn | 14 + chrome/test/base/in_process_browser_test.cc | 24 +- - 53 files changed, 3309 insertions(+), 7 deletions(-) + 52 files changed, 3302 insertions(+), 6 deletions(-) create mode 100644 chrome/browser/adblock/README.md create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.cc create mode 100644 chrome/browser/adblock/adblock_chrome_content_browser_client.h @@ -142,18 +141,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "accessibility/prefers_default_scrollbar_styles_prefs.h", + "adblock/adblock_chrome_content_browser_client.cc", + "adblock/adblock_chrome_content_browser_client.h", - "affiliations/affiliation_service_factory.cc", - "affiliations/affiliation_service_factory.h", "after_startup_task_utils.cc", + "after_startup_task_utils.h", + "app_mode/app_mode_utils.cc", @@ -2050,6 +2055,7 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", + "//components/adblock/content:browser", + "//components/application_locale_storage", "//components/assist_ranker", "//components/autofill/core/browser", - "//components/back_forward_cache", -@@ -3276,6 +3282,7 @@ static_library("browser") { +@@ -3286,6 +3292,7 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -161,7 +160,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn deps += [ ":delta_file_proto", ":profile_token", -@@ -8359,6 +8366,7 @@ static_library("browser_public_dependencies") { +@@ -8407,6 +8414,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -3442,7 +3441,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "chrome/browser/chrome_browser_main.h" -@@ -76,6 +80,7 @@ +@@ -77,6 +81,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/installer/util/google_update_settings.h" @@ -3450,7 +3449,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "components/color/color_mixers.h" #include "components/device_event_log/device_event_log.h" #include "components/embedder_support/origin_trials/component_updater_utils.h" -@@ -1545,6 +1550,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1550,6 +1555,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // called inside PostProfileInit. content::WebUIControllerFactory::RegisterFactory( ChromeWebUIControllerFactory::GetInstance()); @@ -3500,7 +3499,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL import("//build/config/chromebox_for_meetings/buildflags.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -300,6 +303,7 @@ source_set("extensions") { +@@ -400,6 +403,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -3508,7 +3507,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL configs += [ "//build/config:precompiled_headers", "//build/config/compiler:wexit_time_destructors", -@@ -753,6 +757,7 @@ source_set("extensions") { +@@ -759,6 +763,7 @@ source_set("extensions") { ] } @@ -3569,8 +3568,8 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load +#include "components/adblock/core/features.h" #include "components/heavy_ad_intervention/heavy_ad_features.h" #include "components/page_load_metrics/browser/ads_page_load_metrics_test_waiter.h" - #include "components/page_load_metrics/browser/observers/ad_metrics/ad_intervention_browser_test_utils.h" -@@ -1501,7 +1506,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest + #include "components/page_load_metrics/browser/features.h" +@@ -1510,7 +1515,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest {heavy_ad_intervention::features::kHeavyAdIntervention, {}}, {heavy_ad_intervention::features::kHeavyAdPrivacyMitigations, {{"host-threshold", "3"}}}}, @@ -3649,7 +3648,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.h" -@@ -236,6 +240,15 @@ +@@ -239,6 +243,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -3665,7 +3664,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "components/autofill/content/browser/autofill_log_router_factory.h" #include "components/breadcrumbs/core/breadcrumbs_status.h" #include "components/captive_portal/core/buildflags.h" -@@ -883,6 +896,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -903,6 +916,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -3684,7 +3683,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chrome/browser/profiles/profile_keyed_service_browsertest.cc --- a/chrome/browser/profiles/profile_keyed_service_browsertest.cc +++ b/chrome/browser/profiles/profile_keyed_service_browsertest.cc -@@ -278,6 +278,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -279,6 +279,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "PermissionsUpdaterShutdownFactory", "PluginInfoHostImpl", "TurnSyncOnHelperShutdownNotifier", @@ -3702,7 +3701,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -845,6 +856,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, +@@ -856,6 +867,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, "ZeroSuggestCacheServiceFactory", #endif // !BUILDFLAG(IS_CHROMEOS) @@ -3729,7 +3728,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") -@@ -278,6 +281,7 @@ group("dev_ui_resources") { +@@ -280,6 +283,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", @@ -3737,7 +3736,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "//components/commerce/core/internals/resources", "//components/data_sharing/data_sharing_internals/resources", "//components/download/resources/download_internals:resources", -@@ -344,6 +348,7 @@ repack("dev_ui_paks") { +@@ -346,6 +350,7 @@ repack("dev_ui_paks") { "$root_gen_dir/chrome/predictors_resources.pak", "$root_gen_dir/chrome/privacy_sandbox_internals_resources.pak", "$root_gen_dir/chrome/usb_internals_resources.pak", @@ -3776,32 +3775,6 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ } SafeBrowsingBlockingPageBrowserTest( -diff --git a/chrome/browser/sessions/session_restore_browsertest.cc b/chrome/browser/sessions/session_restore_browsertest.cc ---- a/chrome/browser/sessions/session_restore_browsertest.cc -+++ b/chrome/browser/sessions/session_restore_browsertest.cc -@@ -1,6 +1,10 @@ - // Copyright 2012 The Chromium Authors - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. -+// -+// This source code is a part of eyeo Chromium SDK. -+// Use of this source code is governed by the GPLv3 that can be found in the -+// components/adblock/LICENSE file. - - #ifdef UNSAFE_BUFFERS_BUILD - // TODO(crbug.com/40285824): Remove this and convert code to safer constructs. -@@ -4400,8 +4404,10 @@ INSTANTIATE_TEST_SUITE_P( - SessionRestoreStaleSessionCookieDeletionTest, - testing::Bool()); - -+// Disabled as it's flaky, see: https://issues.chromium.org/issues/348923077 -+// See also: https://eyeo.atlassian.net/browse/DPD-2773 - IN_PROC_BROWSER_TEST_P(SessionRestoreStaleSessionCookieDeletionTest, -- CookieStorage) { -+ DISABLED_CookieStorage) { - GURL open_page = https_server()->GetURL("a.test", "/empty.html"); - GURL other_page = https_server()->GetURL("b.test", "/empty.html"); - ASSERT_TRUE(ui_test_utils::NavigateToURL(browser(), open_page)); diff --git a/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc b/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc --- a/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc +++ b/chrome/browser/subresource_filter/subresource_filter_browser_test_harness.cc @@ -3847,7 +3820,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/compiler/compiler.gni") -@@ -434,6 +437,7 @@ static_library("ui") { +@@ -437,6 +440,7 @@ static_library("ui") { "//chrome/services/media_gallery_util/public/mojom", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -3949,7 +3922,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni import("//ash/ambient/resources/resources.gni") import("//build/config/chrome_build.gni") -@@ -113,6 +116,7 @@ template("chrome_extra_paks") { +@@ -114,6 +117,7 @@ template("chrome_extra_paks") { "$root_gen_dir/chrome/common_resources.pak", "$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak", "$root_gen_dir/chrome/segmentation_internals_resources.pak", @@ -3957,7 +3930,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak", "$root_gen_dir/components/autofill_and_password_manager_internals_resources.pak", "$root_gen_dir/components/chrome_urls_resources.pak", -@@ -148,6 +152,7 @@ template("chrome_extra_paks") { +@@ -149,6 +153,7 @@ template("chrome_extra_paks") { "//chrome/browser/resources:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", @@ -3991,7 +3964,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn import("//build/cipd/cipd.gni") import("//build/config/buildflags_paint_preview.gni") -@@ -1689,6 +1692,7 @@ if (is_android) { +@@ -1739,6 +1742,7 @@ if (is_android) { "//chrome/test/data/webui:browser_tests", "//chrome/test/data/webui:interactive_ui_tests", "//chrome/test/data/webui:resources", @@ -3999,7 +3972,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/autofill/content/browser:test_support", "//components/autofill/content/renderer:test_support", "//components/autofill/core/common:common", -@@ -2282,6 +2286,7 @@ if (!is_android) { +@@ -2353,6 +2357,7 @@ if (!is_android) { "//chrome/test/media_router/access_code_cast:access_code_cast_integration_base", "//chrome/test/payments:test_support", "//chrome/test/supervised_user:test_support", @@ -4007,7 +3980,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/affiliations/core/browser:affiliation_proto", "//components/affiliations/core/browser:test_support", "//components/autofill/content/browser:autofill_shared_storage_proto", -@@ -2783,6 +2788,7 @@ if (!is_android) { +@@ -2854,6 +2859,7 @@ if (!is_android) { "//chrome/renderer/resources/extensions/", "//chrome/test/data/cart/", "//components/test/data/ad_tagging/", @@ -4015,7 +3988,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/test/data/ads_observer/", "//components/test/data/autofill/", "//components/test/data/custom_handlers", -@@ -2871,6 +2877,9 @@ if (!is_android) { +@@ -2942,6 +2948,9 @@ if (!is_android) { "../browser/accessibility/live_translate_controller_browsertest.cc", "../browser/accessibility/page_colors_browsertest.cc", "../browser/accessibility/phrase_segmentation/dependency_parser_model_loader_browsertest.cc", @@ -4023,9 +3996,9 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn + "../browser/adblock/test/adblock_multiple_tabs_browsertest.cc", + "../browser/adblock/test/adblock_popup_browsertest.cc", "../browser/ai/ai_data_keyed_service_browsertest.cc", + "../browser/ai/ai_on_device_browsertest.cc", "../browser/attribution_reporting/chrome_attribution_browsertest.cc", - "../browser/autocomplete/autocomplete_browsertest.cc", -@@ -4422,6 +4431,7 @@ if (!is_android) { +@@ -4493,6 +4502,7 @@ if (!is_android) { ] } @@ -4033,7 +4006,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chromeos) { deps += [ "//chromeos/ash/components/network/portal_detector:test_support" ] -@@ -5917,6 +5927,7 @@ test("unit_tests") { +@@ -5996,6 +6006,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4041,7 +4014,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/after_startup_task_utils_unittest.cc", "../browser/apps/icon_standardizer_unittest.cc", "../browser/apps/user_type_filter_unittest.cc", -@@ -6589,6 +6600,8 @@ test("unit_tests") { +@@ -6691,6 +6702,8 @@ test("unit_tests") { "//chrome/common/themes:unit_tests", "//chrome/services/file_util:unit_tests", "//components/account_id", @@ -4050,7 +4023,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "//components/affiliations/core/browser:test_support", "//components/assist_ranker/proto", "//components/autofill/content/browser:test_support", -@@ -10409,6 +10422,7 @@ if (!is_android) { +@@ -10516,6 +10529,7 @@ if (!is_android) { "//chrome/browser:test_support_ui", "//chrome/browser/ui/exclusive_access", "//chrome/browser/ui/views/side_panel", diff --git a/build/patches/eyeo-133.0.6943.49-extension_api.patch b/build/patches/eyeo-133.0.6943.49-extension_api.patch index 3a5decf2..2896e134 100644 --- a/build/patches/eyeo-133.0.6943.49-extension_api.patch +++ b/build/patches/eyeo-133.0.6943.49-extension_api.patch @@ -72,7 +72,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -757,6 +757,17 @@ source_set("extensions") { +@@ -763,6 +763,17 @@ source_set("extensions") { ] } @@ -103,7 +103,7 @@ diff --git a/chrome/browser/extensions/api/BUILD.gn b/chrome/browser/extensions/ import("//chrome/common/extensions/api/api_sources.gni") import("//chrome/common/features.gni") -@@ -134,6 +137,7 @@ function_registration("api_registration") { +@@ -137,6 +140,7 @@ function_registration("api_registration") { # include generated headers from these targets. # TODO(brettw) this should be made unnecessary if possible. "//chrome/common/extensions/api", @@ -2138,7 +2138,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/cookies/cookies_api.h" #include "chrome/browser/extensions/api/developer_private/developer_private_api.h" -@@ -15,12 +19,14 @@ +@@ -16,12 +20,14 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" @@ -2153,7 +2153,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -84,6 +90,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -85,6 +91,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -3580,9 +3580,9 @@ diff --git a/chrome/browser/extensions/extension_function_registration_test.cc b +// Use of this source code is governed by the GPLv3 that can be found in the +// components/adblock/LICENSE file. + #include "base/containers/contains.h" #include "base/one_shot_event.h" - #include "chrome/browser/extensions/extension_browsertest.h" -@@ -57,6 +61,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionRegistrationTest, +@@ -58,6 +62,12 @@ IN_PROC_BROWSER_TEST_F(ExtensionFunctionRegistrationTest, base::CompareCase::SENSITIVE)) { continue; } @@ -3609,7 +3609,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext // This features file defines extension APIs implemented under src/chrome. // See chrome/common/extensions/api/_features.md to understand this file, as -@@ -65,6 +69,16 @@ +@@ -70,6 +74,16 @@ "dependencies": ["permission:experimentalAiData"], "channel": "beta" }, @@ -3626,7 +3626,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -529,6 +543,14 @@ +@@ -534,6 +548,14 @@ "channel": "stable", "contexts": [] }, @@ -3669,7 +3669,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -376,6 +387,13 @@ +@@ -381,6 +392,13 @@ "channel": "beta", "command_line_switch": "extension-ai-data-collection" }, @@ -3881,9 +3881,9 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//build/config/features.gni") import("//chrome/common/features.gni") -@@ -90,6 +93,9 @@ if (enable_extensions) { +@@ -91,6 +94,9 @@ if (enable_extensions) { + "webrtc_logging_private.idl", - "webstore_private.json", "windows.json", + + "adblock_private.idl", @@ -4126,7 +4126,7 @@ diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/ch {APIPermissionID::kBackground, "background", APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning}, {APIPermissionID::kDeclarativeContent, "declarativeContent"}, -@@ -87,6 +93,8 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { +@@ -88,6 +94,8 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { {APIPermissionID::kEnterpriseNetworkingAttributes, "enterprise.networkingAttributes", APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning}, @@ -4149,7 +4149,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c #include "extensions/common/permissions/permission_set.h" -@@ -874,6 +878,10 @@ TEST(PermissionsTest, PermissionMessages) { +@@ -879,6 +883,10 @@ TEST(PermissionsTest, PermissionMessages) { skip.insert(APIPermissionID::kSystemLog); skip.insert(APIPermissionID::kOdfsConfigPrivate); @@ -4163,7 +4163,7 @@ diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/c diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -3815,6 +3815,20 @@ if (!is_android) { +@@ -3894,6 +3894,20 @@ if (!is_android) { ] } @@ -5508,10 +5508,10 @@ diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common module extensions.mojom; -@@ -286,6 +290,8 @@ enum APIPermissionID { - kAILanguageModelOriginTrial = 259, +@@ -287,6 +291,8 @@ enum APIPermissionID { kExperimentalAiData = 260, kOmniboxDirectInput = 261, + kExperimentalActor = 262, + kAdblockPrivate = 999, + kEyeoFilteringPrivate = 1000, diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index 39d9ea1c..62f18a0a 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,8 +4,8 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 65 +------------------ - 1 file changed, 3 insertions(+), 62 deletions(-) + .../signin/SystemAccountManagerDelegate.java | 78 +------------------ + 1 file changed, 4 insertions(+), 74 deletions(-) diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java --- a/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java @@ -20,7 +20,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.ContextUtils; -@@ -92,18 +89,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -94,18 +91,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public Account[] getAccountsSynchronous() throws AccountManagerDelegateException { @@ -39,10 +39,11 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s // Don't report any accounts if we don't have permission. // TODO(crbug.com/40942462): Throw an exception if permission was denied. return new Account[] {}; -@@ -115,31 +100,12 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -116,43 +101,13 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { + public AccessTokenData getAccessToken(Account account, String authTokenScope) throws AuthException { ThreadUtils.assertOnBackgroundThread(); - assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); +- assert AccountUtils.GOOGLE_ACCOUNT_TYPE.equals(account.type); - try { - return new AccessTokenData( - GoogleAuthUtil.getTokenWithNotification( @@ -51,14 +52,19 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - // This case includes a UserRecoverableNotifiedException, but most clients will have - // their own retry mechanism anyway. - throw new AuthException( -- AuthException.NONTRANSIENT, - "Error while getting token for scope '" + authTokenScope + "'", -- ex); +- ex, +- new GoogleServiceAuthError( +- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); - } catch (IOException ex) { -- throw new AuthException(AuthException.TRANSIENT, ex); +- throw new AuthException( +- "Error while getting token for scope '" + authTokenScope + "'", +- ex, +- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } + throw new AuthException(AuthException.NONTRANSIENT, -+ "Error while getting token for scope '" + authTokenScope + "'"); ++ "Error while getting token for scope '" + authTokenScope + "'", ++ new IOException()); } @Override @@ -66,14 +72,21 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s - try { - GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken); - } catch (GoogleAuthException ex) { -- throw new AuthException(AuthException.NONTRANSIENT, ex); +- throw new AuthException( +- "Error while invalidating access token", +- ex, +- new GoogleServiceAuthError( +- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); - } catch (IOException ex) { -- throw new AuthException(AuthException.TRANSIENT, ex); +- throw new AuthException( +- "Error while invalidating access token", +- ex, +- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); - } } protected boolean hasFeatures(Account account, String[] features) { -@@ -171,24 +137,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -184,24 +139,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @SuppressLint("MissingPermission") @Override public void createAddAccountIntent(Callback<@Nullable Intent> callback) { @@ -98,7 +111,7 @@ diff --git a/components/signin/public/android/java/src/org/chromium/components/s } // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -222,14 +170,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { +@@ -235,14 +172,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { @Override public @Nullable GaiaId getAccountGaiaId(String accountEmail) { diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index f13284e0..36b31f74 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -48,7 +48,7 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge diff --git a/services/device/public/cpp/device_features.cc b/services/device/public/cpp/device_features.cc --- a/services/device/public/cpp/device_features.cc +++ b/services/device/public/cpp/device_features.cc -@@ -71,6 +71,7 @@ BASE_FEATURE(kLocationProviderManager, +@@ -76,6 +76,7 @@ BASE_FEATURE(kLocationProviderManager, "LocationProviderManager", base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_MAC) @@ -56,7 +56,7 @@ diff --git a/services/device/public/cpp/device_features.cc b/services/device/pub #if BUILDFLAG(IS_CHROMEOS) // Enables crash key logging for USB device open operations on ChromeOS. See -@@ -119,7 +120,7 @@ const base::FeatureParam +@@ -124,7 +125,7 @@ const base::FeatureParam const base::FeatureParam kLocationProviderManagerParam{ &kLocationProviderManager, "LocationProviderManagerMode", diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index bd059133..de2be22b 100644 --- a/build/patches/kill-Vision.patch +++ b/build/patches/kill-Vision.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -317,8 +317,6 @@ if (current_toolchain == default_toolchain) { +@@ -324,8 +324,6 @@ if (_is_default_toolchain) { "$google_play_services_package:google_play_services_gcm_java", "$google_play_services_package:google_play_services_iid_java", "$google_play_services_package:google_play_services_tasks_java", @@ -23,7 +23,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn - "$google_play_services_package:google_play_services_vision_java", "//base:content_uri_utils_java", "//base:service_loader_java", - "//base/version_info/android:version_constants_java", + "//base:task_executor_java", diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.gn --- a/services/shape_detection/BUILD.gn +++ b/services/shape_detection/BUILD.gn diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index 2912beb0..457c4b2c 100644 --- a/build/patches/sharing-hub-always-use-visible-URL.patch +++ b/build/patches/sharing-hub-always-use-visible-URL.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareDelegateImpl.java -@@ -230,14 +230,8 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -237,14 +237,8 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch index 4c362e59..5da54455 100644 --- a/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch +++ b/build/patches/ungoogled-chromium-Disable-Network-Time-Tracker.patch @@ -23,7 +23,7 @@ diff --git a/components/network_time/network_time_tracker.cc b/components/networ namespace { -@@ -282,7 +283,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, +@@ -279,7 +280,7 @@ void NetworkTimeTracker::UpdateNetworkTime(base::Time network_time, } bool NetworkTimeTracker::AreTimeFetchesEnabled() const { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index d984ccbb..5159a54b 100644 --- a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch +++ b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1313,8 +1313,6 @@ static_library("browser") { +@@ -1305,8 +1305,6 @@ static_library("browser") { "profiles/keep_alive/scoped_profile_keep_alive.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -26,7 +26,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browser/profiles/profile_attributes_entry.cc --- a/chrome/browser/profiles/profile_attributes_entry.cc +++ b/chrome/browser/profiles/profile_attributes_entry.cc -@@ -374,12 +374,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -372,12 +372,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( int size_for_placeholder_avatar, bool use_high_res_file, const PlaceholderAvatarIconParams& icon_params) const { diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 81a7646b..a55389f6 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -81,7 +81,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences. diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java -@@ -49,12 +49,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -54,12 +54,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment static final String APP_LANGUAGE_PREFERENCE_KEY = "app_language_preference"; static final String PREFERRED_LANGUAGES_KEY = "preferred_languages"; static final String CONTENT_LANGUAGES_KEY = "content_languages_preference"; @@ -94,7 +94,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse private static final String TAG = "LanguageSettings"; -@@ -102,35 +96,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -107,35 +101,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -130,7 +130,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** -@@ -145,8 +110,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -150,8 +115,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment ContentLanguagesPreference mLanguageListPref = (ContentLanguagesPreference) findPreference(CONTENT_LANGUAGES_KEY); mLanguageListPref.initialize(this, getProfile(), getPrefService()); @@ -139,7 +139,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse } /** Setup the App Language section with a title and preference to choose the app language. */ -@@ -177,7 +140,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -182,7 +145,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment * @param contentLanguagesPreference ContentLanguagesPreference reference to update about state * changes. */ @@ -148,7 +148,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse // Setup expandable advanced settings section. PreferenceCategory translationAdvancedSection = (PreferenceCategory) findPreference(TRANSLATION_ADVANCED_SECTION); -@@ -255,7 +218,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -260,7 +223,7 @@ public class LanguageSettings extends ChromeBaseSettingsFragment return getPrefService().isManagedPreference(Pref.OFFER_TRANSLATE_ENABLED); } }); @@ -157,7 +157,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse @Override public void onStart() { -@@ -294,12 +257,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment +@@ -300,12 +263,6 @@ public class LanguageSettings extends ChromeBaseSettingsFragment // Set the default target language to match the new app language. TranslateBridge.setDefaultTargetLanguage(getProfile(), code); } else if (requestCode == REQUEST_CODE_CHANGE_TARGET_LANGUAGE) { @@ -173,7 +173,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2104,9 +2104,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2109,9 +2109,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 0ee71968..9304d145 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -71,15 +71,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -95,7 +95,6 @@ import org.chromium.chrome.browser.messages.MessageContainerObserver; - import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; - import org.chromium.chrome.browser.metrics.UmaSessionStats; +@@ -99,7 +99,6 @@ import org.chromium.chrome.browser.metrics.UmaSessionStats; + import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; + import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; -import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; -@@ -1154,10 +1153,8 @@ public class RootUiCoordinator +@@ -1161,10 +1160,8 @@ public class RootUiCoordinator String url = TemplateUrlServiceFactory.getForProfile(tab.getProfile()) .getUrlForSearchQuery(query); @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -908,10 +908,6 @@ static_library("browser") { +@@ -904,10 +904,6 @@ static_library("browser") { "page_info/privacy_policy_insights_service_factory.h", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.cc", "page_load_metrics/observers/bookmark_bar_page_load_metrics_observer.h", @@ -104,7 +104,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/core/amp_page_load_metrics_observer.cc", "page_load_metrics/observers/core/amp_page_load_metrics_observer.h", "page_load_metrics/observers/core/ukm_page_load_metrics_observer.cc", -@@ -920,10 +916,6 @@ static_library("browser") { +@@ -916,10 +912,6 @@ static_library("browser") { "page_load_metrics/observers/document_write_page_load_metrics_observer.h", "page_load_metrics/observers/foreground_duration_ukm_observer.cc", "page_load_metrics/observers/foreground_duration_ukm_observer.h", @@ -115,7 +115,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "page_load_metrics/observers/histogram_suffixes.cc", "page_load_metrics/observers/histogram_suffixes.h", "page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.cc", -@@ -1579,8 +1571,6 @@ static_library("browser") { +@@ -1573,8 +1565,6 @@ static_library("browser") { "supervised_user/classify_url_navigation_throttle.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -124,7 +124,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "supervised_user/supervised_user_interstitial_tab_closer.cc", "supervised_user/supervised_user_interstitial_tab_closer.h", "supervised_user/supervised_user_metrics_service_factory.cc", -@@ -1769,10 +1759,7 @@ static_library("browser") { +@@ -1764,10 +1754,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -135,7 +135,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//chrome/browser/ip_protection", "//chrome/browser/media/webrtc", "//chrome/browser/navigation_predictor:impl", -@@ -1855,7 +1842,6 @@ static_library("browser") { +@@ -1850,7 +1837,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", @@ -166,7 +166,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1239,7 +1239,6 @@ BrowserProcessImpl::component_updater() { +@@ -1261,7 +1261,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -177,7 +177,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -462,11 +462,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -463,11 +463,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -189,7 +189,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1717,11 +1712,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1722,11 +1717,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif @@ -204,7 +204,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -2990,7 +2990,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -3025,7 +3025,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -212,7 +212,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5420,9 +5419,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5464,9 +5463,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( &throttles); #endif @@ -222,7 +222,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch MaybeAddThrottle( supervised_user::MaybeCreateClassifyUrlNavigationThrottleFor(handle), -@@ -6041,7 +6037,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -6100,7 +6096,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -232,7 +232,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) const std::string& client_data_header, #endif -@@ -6081,7 +6078,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -6140,7 +6137,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -241,7 +241,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -6138,15 +6135,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -6197,15 +6194,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -257,9 +257,9 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -6201,20 +6189,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( - } - #endif +@@ -6249,20 +6237,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( + Profile* profile = Profile::FromBrowserContext(browser_context); + DCHECK(profile); -#if BUILDFLAG(IS_ANDROID) - auto [client_data_header, unused_is_custom_tab] = @@ -327,21 +327,21 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -313,7 +313,6 @@ source_set("extensions") { +@@ -421,7 +421,6 @@ source_set("extensions") { "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", - "//chrome/browser/google", + "//chrome/browser/lifetime:termination_notification", "//chrome/browser/prefetch", "//chrome/browser/prefs", - "//chrome/browser/preloading:prefs", diff --git a/chrome/browser/feedback/BUILD.gn b/chrome/browser/feedback/BUILD.gn --- a/chrome/browser/feedback/BUILD.gn +++ b/chrome/browser/feedback/BUILD.gn -@@ -101,7 +101,6 @@ source_set("feedback_impl") { - "//chrome/browser/crash_upload_list", +@@ -102,7 +102,6 @@ source_set("feedback_impl") { "//chrome/browser/devtools", "//chrome/browser/extensions", + "//chrome/browser/first_party_sets", - "//chrome/browser/google", "//chrome/browser/profiles:profile", "//chrome/browser/sync", @@ -398,7 +398,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn sources = [ "google_brand.cc", "google_brand.h", -@@ -86,7 +86,7 @@ source_set("unit_tests") { +@@ -89,7 +89,7 @@ source_set("unit_tests") { sources = [ "google_update_settings_unittest.cc" ] deps = [ @@ -454,7 +454,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc --- a/chrome/browser/metrics/chrome_metrics_service_client.cc +++ b/chrome/browser/metrics/chrome_metrics_service_client.cc -@@ -601,7 +601,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -605,7 +605,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -584,7 +584,7 @@ diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -851,7 +851,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -849,7 +849,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -639,7 +639,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metri diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc --- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc -@@ -168,14 +168,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( +@@ -169,14 +169,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -717,7 +717,7 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/browser/signin/android/signin_manager_android.cc --- a/chrome/browser/signin/android/signin_manager_android.cc +++ b/chrome/browser/signin/android/signin_manager_android.cc -@@ -70,6 +70,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -72,6 +72,7 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); @@ -725,7 +725,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br if (all_data) { chrome_browsing_data_remover::DataType removed_types = chrome_browsing_data_remover::ALL_DATA_TYPES; -@@ -93,10 +94,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -100,10 +101,6 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { // TODO(msramek): BrowsingDataFilterBuilder was not designed for // large filters. Optimize it. @@ -739,7 +739,7 @@ diff --git a/chrome/browser/signin/android/signin_manager_android.cc b/chrome/br diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -356,7 +356,6 @@ static_library("ui") { +@@ -358,7 +358,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -762,7 +762,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; +@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.merchant_viewer.MerchantTrustSignalsCoordinator; import org.chromium.chrome.browser.omnibox.LocationBarMediator.OmniboxUma; import org.chromium.chrome.browser.omnibox.LocationBarMediator.SaveOfflineButtonState; @@ -770,7 +770,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -381,7 +380,6 @@ public class LocationBarCoordinator +@@ -419,7 +418,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -781,7 +781,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -53,7 +53,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -56,7 +56,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.omnibox.UrlBar.UrlBarDelegate; import org.chromium.chrome.browser.omnibox.UrlBarCoordinator.SelectionState; @@ -789,7 +789,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -313,24 +312,6 @@ class LocationBarMediator +@@ -323,24 +322,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -814,7 +814,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -346,8 +327,6 @@ class LocationBarMediator +@@ -356,8 +337,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -823,7 +823,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -580,7 +559,6 @@ class LocationBarMediator +@@ -591,7 +570,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -831,7 +831,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1579,8 +1557,6 @@ class LocationBarMediator +@@ -1603,8 +1581,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && mProfileSupplier.hasValue() && mTemplateUrlServiceSupplier.hasValue()) { @@ -840,7 +840,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } } -@@ -1588,7 +1564,6 @@ class LocationBarMediator +@@ -1612,7 +1588,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -851,7 +851,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc --- a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc +++ b/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc -@@ -483,12 +483,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -478,12 +478,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { // chrome-untrusted://new-tab-page for other external content and resources. // NOTE: Use caution when overriding content security policies as that cean // lead to subtle security bugs such as https://crbug.com/1251541. @@ -883,7 +883,7 @@ diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/b diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -140,8 +140,6 @@ static_library("common_lib") { +@@ -141,8 +141,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -929,7 +929,7 @@ diff --git a/chrome/renderer/url_loader_throttle_provider_impl.cc b/chrome/rende diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn -@@ -6504,7 +6504,6 @@ test("unit_tests") { +@@ -6597,7 +6597,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1882,7 +1882,7 @@ diff --git a/net/base/url_util.cc b/net/base/url_util.cc diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3025,7 +3025,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3012,7 +3012,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 5dd5a19d..c0e7bbd2 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -73,13 +73,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( +@@ -74,13 +74,6 @@ void AwFeatureOverrides::OverrideFeatureWithFieldTrial( } // namespace internal void AwFieldTrials::OnVariationsSetupComplete() {