diff --git a/build/RELEASE b/build/RELEASE index 8cdc4f23..f3af872f 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -140.0.7339.186 \ No newline at end of file +141.0.7390.55 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index 878cc5de..3020c30b 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -314,7 +314,6 @@ Temp-guard-FileSystemAccessPersistentPermissions.patch Never-treat-Proguard-warnings-as-errors.patch Temp-disable-experimental-web-platform-features.patch Block-leakage-of-urls-in-sandbox-iframes.patch -Temporarily-disable-Tab-Group-Sync-Android.patch Fix-chromium-build-bugs.patch Try-to-fix-2082.patch diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index b77fcca6..df21203f 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 -@@ -236,6 +236,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -239,6 +239,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; -@@ -985,6 +986,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -999,6 +1000,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 -@@ -184,6 +184,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -59,7 +59,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = -@@ -768,6 +769,8 @@ public abstract class ChromeFeatureList { +@@ -796,6 +797,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); @@ -68,9 +68,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sAppSpecificHistoryViewIntent = newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); public static final CachedFlag sAsyncNotificationManager = -@@ -1080,6 +1083,7 @@ public abstract class ChromeFeatureList { - sAccountForSuppressedKeyboardInsets, - sAllowTabClosingUponMinimization, +@@ -1131,6 +1134,7 @@ public abstract class ChromeFeatureList { + sAndroidAnimatedProgressBarInBrowser, + sAndroidAnimatedProgressBarInViz, sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, 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 b9df368a..fceaf6d3 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,21 +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 --- - .../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 5 +++++ - 1 file changed, 5 insertions(+) + .../src/org/chromium/chrome/browser/KeyboardShortcuts.java | 6 ++++++ + 1 file changed, 6 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 -@@ -890,6 +890,11 @@ public class KeyboardShortcuts { - KeyEvent.KEYCODE_B, - (KeyEvent.META_CTRL_ON | KeyEvent.META_SHIFT_ON)); +@@ -895,6 +895,12 @@ public class KeyboardShortcuts { + KeyEvent.KEYCODE_ESCAPE, + KeyEvent.META_CTRL_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); ++ shortcutGroupsById, ++ 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()); } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index 0983566d..8c82ee41 100644 --- a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch +++ b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/features.cc b/base/features.cc --- a/base/features.cc +++ b/base/features.cc -@@ -149,6 +149,10 @@ bool IsReducePPMsEnabled() { +@@ -129,6 +129,10 @@ bool IsReducePPMsEnabled() { return g_is_reduce_ppms_enabled.load(std::memory_order_relaxed); } @@ -29,15 +29,15 @@ diff --git a/base/features.cc b/base/features.cc diff --git a/content/renderer/render_process_impl.cc b/content/renderer/render_process_impl.cc --- a/content/renderer/render_process_impl.cc +++ b/content/renderer/render_process_impl.cc -@@ -7,6 +7,7 @@ - #pragma allow_unsafe_libc_calls - #endif +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. +#include "base/features.h" #include "content/renderer/render_process_impl.h" #include "build/build_config.h" -@@ -127,10 +128,18 @@ RenderProcessImpl::RenderProcessImpl() +@@ -122,10 +123,18 @@ RenderProcessImpl::RenderProcessImpl() base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisallowV8FeatureFlagOverrides); if (!disallow_v8_feature_flag_overrides) { 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 5d48178d..a64f07cc 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 -@@ -8690,9 +8690,9 @@ +@@ -8787,9 +8787,9 @@ "expiry_milestone": 150 }, { @@ -28,11 +28,11 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js + "expiry_milestone": -1 }, { - "name": "retain-omnibox-on-focus", + "name": "rewriter-api-for-gemini-nano", diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -258,6 +258,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { +@@ -263,6 +263,8 @@ void SetRuntimeFeaturesFromChromiumFeatures() { {wf::EnablePaymentApp, raw_ref(features::kServiceWorkerPaymentApps)}, {wf::EnablePeriodicBackgroundSync, raw_ref(features::kPeriodicBackgroundSync)}, @@ -56,7 +56,7 @@ new file mode 100644 diff --git a/device/gamepad/public/cpp/gamepad_features.cc b/device/gamepad/public/cpp/gamepad_features.cc --- a/device/gamepad/public/cpp/gamepad_features.cc +++ b/device/gamepad/public/cpp/gamepad_features.cc -@@ -36,4 +36,12 @@ bool IsGamepadMultitouchEnabled() { +@@ -33,4 +33,12 @@ bool IsGamepadMultitouchEnabled() { return false; } diff --git a/build/patches/Add-a-proxy-configuration-page.patch b/build/patches/Add-a-proxy-configuration-page.patch index 0c6a07a3..ee5e9648 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 -@@ -100,6 +100,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -101,6 +101,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 -@@ -376,6 +376,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -409,6 +409,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -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 -@@ -1605,6 +1607,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1685,6 +1687,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { component_updater::RegisterPrefs(registry); domain_reliability::RegisterPrefs(registry); embedder_support::OriginTrialPrefs::RegisterPrefs(registry); @@ -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 -@@ -169,6 +169,8 @@ static_library("ui") { +@@ -156,6 +156,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -683,7 +683,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -422,7 +425,7 @@ void RegisterChromeWebUIConfigs() { +@@ -424,7 +427,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) { +@@ -53,6 +53,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) { +@@ -74,6 +75,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({ diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index e769bce3..ea86a9a7 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -28,11 +28,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/app/ChromeActivity.java | 4 + .../AppMenuPropertiesDelegateImpl.java | 7 +- .../ChromeContextMenuPopulator.java | 6 +- - .../CustomTabActivityLifecycleUmaTracker.java | 39 ---- + .../CustomTabActivityLifecycleUmaTracker.java | 31 ---- .../CustomTabAppMenuPropertiesDelegate.java | 4 + .../CustomTabIntentDataProvider.java | 10 + .../browser/download/DownloadUtils.java | 13 +- - .../history/HistoryContentManager.java | 7 +- + .../history/HistoryContentManager.java | 9 +- .../browser/history/HistoryManager.java | 27 ++- .../chrome/browser/history/HistoryPage.java | 16 ++ .../native_page/NativePageFactory.java | 4 +- @@ -42,7 +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 | 6 +- + .../TabbedAppMenuPropertiesDelegate.java | 4 +- .../tabbed_mode/TabbedRootUiCoordinator.java | 4 +- .../browser/tabmodel/ChromeTabCreator.java | 5 +- .../tabmodel/TabModelSelectorImpl.java | 3 + @@ -71,7 +71,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/ui/native_page/NativePage.java | 22 ++- .../browser/omnibox/LocationBarMediator.java | 8 + .../strings/android_chrome_strings.grd | 25 +++ - .../browser/toolbar/LocationBarModel.java | 5 +- + .../browser/toolbar/LocationBarModel.java | 4 +- chrome/browser/ui/messages/android/BUILD.gn | 1 + .../snackbar/INeedSnackbarManager.java | 28 +++ .../search_engine_tab_helper.cc | 6 + @@ -88,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 + - 69 files changed, 797 insertions(+), 111 deletions(-) + 69 files changed, 794 insertions(+), 105 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 @@ -101,8 +101,8 @@ 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 -@@ -620,6 +620,7 @@ chrome_java_resources = [ - "java/res/xml/main_preferences_legacy.xml", +@@ -624,6 +624,7 @@ chrome_java_resources = [ + "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", + "java/res/xml/incognito_preferences.xml", @@ -120,8 +120,8 @@ 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", -@@ -908,6 +909,7 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java", +@@ -916,6 +917,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", @@ -247,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 -@@ -74,6 +74,10 @@ import org.chromium.build.annotations.Nullable; +@@ -73,6 +73,10 @@ import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -258,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; -@@ -794,14 +798,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -803,14 +807,19 @@ public class ChromeTabbedActivity extends ChromeActivity { Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. @@ -285,9 +285,9 @@ 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( -@@ -3137,7 +3146,7 @@ public class ChromeTabbedActivity extends ChromeActivity { - } +@@ -3228,7 +3237,7 @@ public class ChromeTabbedActivity extends ChromeActivity { + // We determine SupportedProfileType in onPreCreate(). // We determine the model as soon as possible so every systems get initialized coherently. - boolean startIncognito = + boolean startIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() || @@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -95,6 +95,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH +@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; @@ -305,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; -@@ -2000,6 +2001,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2028,6 +2029,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -318,16 +318,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 -@@ -88,6 +88,8 @@ import java.lang.annotation.RetentionPolicy; - import java.util.Iterator; +@@ -91,6 +91,8 @@ import java.util.Iterator; import java.util.List; + import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -606,8 +608,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -620,8 +622,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -342,7 +342,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 -@@ -41,6 +41,7 @@ import org.chromium.base.supplier.Supplier; +@@ -39,6 +39,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -350,7 +350,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.ContextMenuItemType; -@@ -420,6 +421,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -425,6 +426,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -372,21 +372,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -63,45 +63,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -62,37 +62,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { - // TODO(crbug.com/352525607): Separate Ephemeral and Incognito CCT metrics. -- @IntentHandler.IncognitoCctCallerId int incognitoCctCallerId; -- if (mIntentDataProvider.getCustomTabMode() == CustomTabProfileType.INCOGNITO) { -- incognitoCctCallerId = -- ((IncognitoCustomTabIntentDataProvider) mIntentDataProvider) -- .getFeatureIdForMetricsCollection(); -- } else { -- incognitoCctCallerId = -- ((EphemeralCustomTabIntentDataProvider) mIntentDataProvider) -- .getFeatureIdForMetricsCollection(); -- } +- /*@IncognitoCctCallerId*/ int incognitoCctCallerId = +- mIntentDataProvider.getFeatureIdForMetricsCollection(); - - RecordHistogram.recordEnumeratedHistogram( - "CustomTabs.IncognitoCctCallerId", @@ -421,7 +413,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/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 -@@ -21,6 +21,7 @@ import org.chromium.base.supplier.Supplier; +@@ -20,6 +20,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -442,7 +434,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 -@@ -101,6 +101,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -104,6 +104,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -452,7 +444,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; -@@ -1260,6 +1263,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1263,6 +1266,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -488,8 +480,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ @NullMarked public class DownloadUtils { -@@ -313,7 +318,13 @@ public class DownloadUtils { - public static boolean isAllowedToDownloadPage(Tab tab) { +@@ -314,7 +319,13 @@ public class DownloadUtils { + public static boolean isAllowedToDownloadPage(@Nullable Tab tab) { if (tab == null) return false; - if (tab.isIncognito() @@ -506,22 +498,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryContentManager.java -@@ -307,7 +307,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -308,8 +308,9 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.generateFooterItems(); // Listen to changes in sign in state. -- IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this); +- assumeNonNull(IdentityServicesProvider.get().getSigninManager(profile)) +- .addSignInStateObserver(this); + // getSigninManager is null in incognito + if (IdentityServicesProvider.get().getSigninManager(profile) != null) + IdentityServicesProvider.get().getSigninManager(profile).addSignInStateObserver(this); // Create PrefChangeRegistrar to receive notifications on preference changes. mPrefChangeRegistrar = PrefServiceUtil.createFor(profile); -@@ -383,7 +385,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -386,8 +387,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; -- IdentityServicesProvider.get().getSigninManager(mProfile).removeSignInStateObserver(this); +- assumeNonNull(IdentityServicesProvider.get().getSigninManager(mProfile)) +- .removeSignInStateObserver(this); + if (IdentityServicesProvider.get().getSigninManager(mProfile) != null) + IdentityServicesProvider.get().getSigninManager(mProfile).removeSignInStateObserver(this); mPrefChangeRegistrar.destroy(); @@ -530,9 +524,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java -@@ -57,6 +57,14 @@ import org.chromium.ui.base.Clipboard; - import java.util.List; +@@ -61,6 +61,14 @@ import java.util.List; import java.util.function.Function; + import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.chrome.browser.profiles.Profile; @@ -543,9 +537,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History +import org.chromium.chrome.browser.preferences.Pref; + /** Combines and manages the different UI components of browsing history. */ + @NullMarked public class HistoryManager - implements OnMenuItemClickListener, -@@ -162,7 +170,7 @@ public class HistoryManager +@@ -166,7 +174,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -554,7 +548,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -415,9 +423,22 @@ public class HistoryManager +@@ -451,9 +459,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -578,7 +572,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // If Incognito placeholder is shown no need to call any destroy method. return; } -@@ -477,7 +498,7 @@ public class HistoryManager +@@ -514,7 +535,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -590,9 +584,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/history/HistoryPage.java -@@ -17,6 +17,14 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost; - import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; - import org.chromium.components.embedder_support.util.UrlConstants; +@@ -20,6 +20,14 @@ import org.chromium.components.embedder_support.util.UrlConstants; + + import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +import org.chromium.chrome.browser.profiles.Profile; @@ -603,9 +597,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History +import org.chromium.chrome.browser.preferences.Pref; + /** Native page for managing browsing history. */ + @NullMarked public class HistoryPage extends BasicNativePage { - private HistoryManager mHistoryManager; -@@ -45,6 +53,14 @@ public class HistoryPage extends BasicNativePage { +@@ -49,6 +57,14 @@ public class HistoryPage extends BasicNativePage { String url) { super(host); @@ -618,21 +612,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History + } + Uri uri = Uri.parse(url); - assert uri.getHost().equals(UrlConstants.HISTORY_HOST); + assert UrlConstants.HISTORY_HOST.equals(uri.getHost()); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -19,6 +19,7 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.Supplier; +@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -371,7 +372,8 @@ public class NativePageFactory { - String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) { +@@ -379,7 +380,8 @@ public class NativePageFactory { + @Nullable PdfInfo pdfInfo) { NativePage page; - switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null)) { @@ -808,7 +802,7 @@ new file mode 100644 + ApplicationLifetime.terminate(true); + } + }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) -+ .setSingleLine(false) ++ .setDefaultLines(false) + .setAction(getActivity().getString(R.string.relaunch), + /*actionData*/null) + .setDuration(/*durationMs*/70000); @@ -876,7 +870,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -49,6 +49,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; +@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; @@ -897,9 +891,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabModelObserver.java -@@ -32,6 +32,8 @@ import java.util.HashMap; - import java.util.List; +@@ -32,6 +32,8 @@ import java.util.List; import java.util.Set; + import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + @@ -933,9 +927,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore/HistoricalTabSaverImpl.java -@@ -30,6 +30,8 @@ import java.util.Arrays; - import java.util.Collections; +@@ -30,6 +30,8 @@ import java.util.Collections; import java.util.List; + import java.util.function.Supplier; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + @@ -991,7 +985,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore // Check the secondary tab model to see if the tab was moved instead of deleted. if (tabIdExistsInSecondaryModel(tab.getId())) return false; -@@ -293,7 +296,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { +@@ -294,7 +297,7 @@ public class HistoricalTabSaverImpl implements HistoricalTabSaver { @NativeMethods interface Natives { @@ -1003,30 +997,28 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/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 -@@ -27,6 +27,7 @@ import org.chromium.base.supplier.Supplier; - import org.chromium.build.annotations.Contract; +@@ -27,6 +27,7 @@ import org.chromium.build.annotations.Contract; + import org.chromium.build.annotations.NullMarked; 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; -@@ -220,7 +221,10 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - } +@@ -221,7 +222,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm - // New Tab -- modelList.add(buildNewTabItem()); + // When the feature is enabled, show either "New Incognito tab" in incognito mode + // or "New tab" in normal mode. When the feature is disabled, show both. +- if (!IncognitoUtils.shouldOpenIncognitoAsWindow() || !isIncognitoShowing()) { + boolean always_incognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ if (!always_incognito) { -+ modelList.add(buildNewTabItem()); -+ } - - // New Incognito Tab - modelList.add(buildNewIncognitoTabItem()); ++ if (!always_incognito || !IncognitoUtils.shouldOpenIncognitoAsWindow() || !isIncognitoShowing()) { + modelList.add(buildNewTabItem()); + } + if (!IncognitoUtils.shouldOpenIncognitoAsWindow() || isIncognitoShowing()) { 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 -@@ -212,6 +212,8 @@ import org.chromium.content_public.common.ContentSwitches; +@@ -210,6 +210,8 @@ import org.chromium.content_public.common.ContentSwitches; import org.chromium.ui.UiUtils; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; @@ -1035,7 +1027,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.display.DisplayUtil; -@@ -1247,7 +1249,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1270,7 +1272,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1047,9 +1039,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -53,6 +53,10 @@ import org.chromium.ui.base.PageTransition; - import org.chromium.ui.base.WindowAndroid; - import org.chromium.url.GURL; +@@ -55,6 +55,10 @@ import org.chromium.url.GURL; + import java.util.Collections; + import java.util.function.Supplier; +import org.chromium.base.ContextUtils; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; @@ -1058,7 +1050,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}. */ @NullMarked public class ChromeTabCreator extends TabCreator -@@ -580,7 +584,6 @@ public class ChromeTabCreator extends TabCreator +@@ -584,7 +588,6 @@ public class ChromeTabCreator extends TabCreator // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public @Nullable Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1069,15 +1061,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorImpl.java -@@ -17,6 +17,7 @@ import org.chromium.build.annotations.EnsuresNonNull; - import org.chromium.build.annotations.Initializer; +@@ -20,6 +20,7 @@ import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; +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; -@@ -127,6 +128,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod + import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; +@@ -139,6 +140,8 @@ public class TabModelSelectorImpl extends TabModelSelectorBase implements TabMod ProfileProvider profileProvider = mProfileProviderSupplier.get(); assert profileProvider != null; @@ -1115,7 +1107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -50,6 +50,7 @@ import org.chromium.base.supplier.Supplier; +@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1123,12 +1115,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -859,7 +860,7 @@ public class ToolbarManager - TraceEvent.end("isOfflinePage"); +@@ -866,7 +867,7 @@ public class ToolbarManager return ret; } -- }); -+ }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); + }, +- mToolbarPositionSupplier); ++ mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); @@ -1142,9 +1134,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; + /** Stores info about a web app. */ + @NullMarked public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider { - private final Drawable mCloseButtonIcon; -@@ -46,6 +48,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -47,6 +49,8 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider private final ColorProviderImpl mDarkColorProvider; private @DisplayMode.EnumType int mResolvedDisplayMode = DisplayMode.UNDEFINED; @@ -1153,7 +1145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI /** Returns the toolbar color to use if a custom color is not specified by the webapp. */ public static int getDefaultToolbarColor() { return Color.WHITE; -@@ -81,6 +85,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -82,6 +86,10 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider mWebappExtras = webappExtras; mWebApkExtras = webApkExtras; mActivityType = (webApkExtras != null) ? ActivityType.WEB_APK : ActivityType.WEBAPP; @@ -1164,7 +1156,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI } @Override -@@ -176,6 +184,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider +@@ -177,6 +185,13 @@ public class WebappIntentDataProvider extends BrowserServicesIntentDataProvider return mWebApkExtras; } @@ -1229,7 +1221,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and DCHECK_EQ(tab_group_ids.size(), group_titles.size()); DCHECK_EQ(tab_group_ids.size(), group_colors.size()); DCHECK_EQ(tab_group_ids.size(), tab_group_ids.size()); -@@ -291,11 +302,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -292,11 +303,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1247,7 +1239,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -427,6 +427,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { +@@ -460,6 +460,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { return AimEligibilityServiceFactory::GetForProfile(profile_); } @@ -1374,7 +1366,7 @@ diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.c diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/history/history_tab_helper.cc --- a/chrome/browser/history/history_tab_helper.cc +++ b/chrome/browser/history/history_tab_helper.cc -@@ -45,6 +45,9 @@ +@@ -48,6 +48,9 @@ #include "components/feed/core/v2/public/feed_api.h" // nogncheck #include "components/feed/core/v2/public/feed_service.h" // nogncheck #include "content/public/browser/web_contents.h" @@ -1384,7 +1376,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -598,6 +601,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -612,6 +615,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1398,7 +1390,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -605,6 +615,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -619,6 +629,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1482,7 +1474,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc b/chrome/browser/offline_pages/android/offline_page_model_factory.cc --- a/chrome/browser/offline_pages/android/offline_page_model_factory.cc +++ b/chrome/browser/offline_pages/android/offline_page_model_factory.cc -@@ -24,6 +24,9 @@ +@@ -23,6 +23,9 @@ #include "components/keyed_service/core/simple_dependency_manager.h" #include "components/offline_pages/core/model/offline_page_model_taskified.h" #include "components/offline_pages/core/offline_page_metadata_store.h" @@ -1492,7 +1484,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc namespace offline_pages { -@@ -55,13 +58,15 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -54,13 +57,15 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( scoped_refptr background_task_runner = base::ThreadPool::CreateSequencedTaskRunner({base::MayBlock()}); @@ -1510,7 +1502,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc // If base::PathService::Get returns false, the temporary_archives_dir will be // empty, and no temporary pages will be saved during this chrome lifecycle. base::FilePath temporary_archives_dir; -@@ -70,7 +75,6 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -69,7 +74,6 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( temporary_archives_dir.Append(chrome::kOfflinePageArchivesDirname); } @@ -1518,7 +1510,7 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_model_factory.cc auto archive_manager = std::make_unique( temporary_archives_dir, persistent_archives_dir, DownloadPrefs::GetDefaultDownloadDirectory(), background_task_runner, -@@ -88,4 +92,14 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( +@@ -87,4 +91,14 @@ std::unique_ptr OfflinePageModelFactory::BuildServiceInstanceFor( return model; } @@ -1755,7 +1747,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" -@@ -2061,6 +2062,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2138,6 +2139,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1860,12 +1852,12 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -209,11 +212,12 @@ public interface NativePage { - */ - // TODO(crbug.com/40549331) - Convert to using GURL. - static @NativePageType int nativePageType( -- String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload) { -+ String url, NativePage candidatePage, boolean isIncognito, boolean hasPdfDownload, +@@ -212,11 +215,12 @@ public interface NativePage { + String url, + @Nullable NativePage candidatePage, + boolean isIncognito, +- boolean hasPdfDownload) { ++ boolean hasPdfDownload, + boolean isAlwaysIncognito) { if (url == null) return NativePageType.NONE; @@ -1875,7 +1867,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -227,7 +231,8 @@ public interface NativePage { +@@ -230,7 +234,8 @@ public interface NativePage { GURL url, @Nullable NativePage candidatePage, boolean isIncognito, @@ -1885,7 +1877,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ if (hasPdfDownload) { // For navigation with associated pdf download (e.g. open a pdf link), pdf page should // be created. -@@ -245,7 +250,7 @@ public interface NativePage { +@@ -248,7 +253,7 @@ public interface NativePage { // created after the pdf document is re-downloaded in other parts of the code. return NativePageType.NONE; } else { @@ -1894,7 +1886,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } } -@@ -257,7 +262,7 @@ public interface NativePage { +@@ -260,7 +265,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1903,7 +1895,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ String host = url.getHost(); String scheme = url.getScheme(); if (!UrlConstants.CHROME_NATIVE_SCHEME.equals(scheme) -@@ -277,7 +282,8 @@ public interface NativePage { +@@ -280,7 +285,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1916,8 +1908,8 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ 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 -@@ -92,6 +92,11 @@ import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.interpolators.Interpolators; +@@ -97,6 +97,11 @@ import org.chromium.ui.interpolators.Interpolators; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; +import org.chromium.components.user_prefs.UserPrefs; @@ -1928,7 +1920,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -419,6 +424,9 @@ class LocationBarMediator +@@ -437,6 +442,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -1941,7 +1933,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6675,6 +6675,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6627,6 +6627,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1976,7 +1968,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 -@@ -165,6 +165,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1984,14 +1976,13 @@ 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 -@@ -188,7 +189,9 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro - Context context, +@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro NewTabPageDelegate newTabPageDelegate, UrlFormatter urlFormatter, -- OfflineStatus offlineStatus) { -+ OfflineStatus offlineStatus, + OfflineStatus offlineStatus, +- ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier) { ++ ObservableSupplier<@ControlsPosition Integer> toolbarPositionSupplier, + boolean isAlwaysIncognito) { -+ mIsAlwaysIncognito = isAlwaysIncognito; // (uazo) to do, check mContext = context; mNtpDelegate = newTabPageDelegate; mUrlFormatter = urlFormatter; @@ -2065,7 +2056,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 -@@ -4108,6 +4108,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4095,6 +4095,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2131,7 +2122,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 -@@ -287,6 +287,7 @@ struct ContentSettingEntry { +@@ -288,6 +288,7 @@ struct ContentSettingEntry { HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2139,7 +2130,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics) -@@ -296,6 +297,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -297,6 +298,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, #endif prefs_(prefs), is_off_the_record_(is_off_the_record), @@ -2147,7 +2138,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()) { -@@ -309,7 +311,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, +@@ -310,7 +312,7 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs, policy_provider->AddObserver(this); auto pref_provider_ptr = std::make_unique( @@ -2167,7 +2158,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -544,6 +545,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -551,6 +552,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2179,7 +2170,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 -@@ -66,3 +66,7 @@ base::WeakPtr +@@ -74,3 +74,7 @@ base::WeakPtr AutocompleteProviderClient::GetWeakPtr() { return nullptr; } @@ -2213,7 +2204,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc -@@ -916,7 +916,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( +@@ -921,7 +921,8 @@ std::unique_ptr SearchProvider::CreateSuggestLoader( // is required. // Request for suggestions in OTR contexts is not allowed; except for the Lens // searchboxes. diff --git a/build/patches/Add-autoplay-site-setting.patch b/build/patches/Add-autoplay-site-setting.patch index 7b784340..de521ad9 100644 --- a/build/patches/Add-autoplay-site-setting.patch +++ b/build/patches/Add-autoplay-site-setting.patch @@ -164,7 +164,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -177,8 +177,8 @@ new file mode 100644 +public class BromiteAutoplayContentSetting extends BromiteCustomContentSetting { + public BromiteAutoplayContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.AUTOPLAY, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "autoplay", + /*profilePrefKey*/ "autoplay"); @@ -197,11 +197,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_autoplay_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_autoplay_disabled; + default: + return 0; @@ -229,8 +229,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/autoplay.grdp b/components/browser_ui/strings/bromite_content_settings/autoplay.grdp @@ -308,7 +308,7 @@ diff --git a/third_party/blink/renderer/core/html/media/autoplay_policy.cc b/thi if (!IsLockedPendingUserGesture()) return false; -@@ -458,6 +461,17 @@ void AutoplayPolicy::MaybeSetAutoplayInitiated() { +@@ -457,6 +460,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 7754a013..e7db3b19 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -94,17 +94,17 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -13,6 +13,7 @@ import org.chromium.base.jank_tracker.JankTracker; - import org.chromium.base.supplier.ObservableSupplier; +@@ -11,6 +11,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.Supplier; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; -@@ -60,7 +61,7 @@ import java.util.List; - * ChromeTabbedActivity}. +@@ -60,7 +61,7 @@ import java.util.function.Supplier; */ + @NullMarked public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private final Activity mActivity; + private final ChromeActivity mActivity; @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; @@ -91,7 +92,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private NativePageFactory mNativePageFactory; + private @Nullable NativePageFactory mNativePageFactory; public TabbedModeTabDelegateFactory( - Activity activity, @@ -199,33 +199,33 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -19,6 +19,7 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.Supplier; +@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -63,7 +64,7 @@ import org.chromium.ui.util.ColorUtils; - * Creates NativePage objects to show chrome-native:// URLs using the native Android view system. +@@ -67,7 +68,7 @@ import java.util.function.Supplier; */ + @NullMarked public class NativePageFactory { - private final Activity mActivity; + private final ChromeActivity mActivity; private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; - private final Supplier mCurrentTabSupplier; -@@ -87,7 +88,7 @@ public class NativePageFactory { - private static NativePage sTestPage; + private final Supplier<@Nullable Tab> mCurrentTabSupplier; +@@ -91,7 +92,7 @@ public class NativePageFactory { + private static @Nullable NativePage sTestPage; public NativePageFactory( -- @NonNull Activity activity, -+ @NonNull ChromeActivity activity, - @NonNull BottomSheetController sheetController, - @NonNull BrowserControlsManager browserControlsManager, - @NonNull Supplier currentTabSupplier, -@@ -162,7 +163,7 @@ public class NativePageFactory { +- Activity activity, ++ ChromeActivity activity, + BottomSheetController sheetController, + BrowserControlsManager browserControlsManager, + Supplier<@Nullable Tab> currentTabSupplier, +@@ -166,7 +167,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -234,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; -@@ -271,7 +272,7 @@ public class NativePageFactory { +@@ -275,7 +276,7 @@ public class NativePageFactory { mBrowserControlsManager, mTabModelSelector, mEdgeToEdgeControllerSupplier), @@ -246,7 +246,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 -@@ -245,6 +245,8 @@ static_library("browser") { +@@ -241,6 +241,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -255,7 +255,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", -@@ -1721,6 +1723,13 @@ static_library("browser") { +@@ -1688,6 +1690,13 @@ static_library("browser") { ] } @@ -269,7 +269,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3704,8 +3713,6 @@ static_library("browser") { +@@ -3712,8 +3721,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -681,10 +681,10 @@ 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 -@@ -57,6 +57,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; - import org.chromium.components.image_fetcher.ImageFetcherConfig; +@@ -57,6 +57,8 @@ import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; + import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster; +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager; @@ -714,9 +714,9 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows +import org.chromium.ui.base.ActivityWindowAndroid; +import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.accessibility.AccessibilityState; - import org.chromium.ui.listmenu.ListMenu; - import org.chromium.ui.listmenu.ListMenuItemProperties; -@@ -81,6 +83,47 @@ import java.util.function.BooleanSupplier; + import org.chromium.ui.base.DeviceFormFactor; + import org.chromium.ui.base.DeviceInput; +@@ -83,6 +85,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -764,7 +764,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. @NullMarked -@@ -91,6 +134,9 @@ class BookmarkManagerMediator +@@ -93,6 +136,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -774,7 +774,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; -@@ -597,6 +643,14 @@ class BookmarkManagerMediator +@@ -608,6 +654,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -789,7 +789,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. -@@ -769,6 +823,235 @@ class BookmarkManagerMediator +@@ -780,6 +834,235 @@ class BookmarkManagerMediator } } @@ -1250,7 +1250,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -251,6 +251,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -255,6 +255,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBatchTabRestore, &kBlockIntentsWhileLocked, &kBookmarkPaneAndroid, @@ -1261,7 +1261,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 -@@ -689,6 +689,7 @@ public abstract class ChromeFeatureList { +@@ -702,6 +702,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1324,7 +1324,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Whether Chrome is set as the default browser. Default value is false. */ public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; -@@ -1017,6 +1019,7 @@ public final class ChromePreferenceKeys { +@@ -1051,6 +1053,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1410,7 +1410,7 @@ diff --git a/components/headless/select_file_dialog/headless_select_file_dialog. diff --git a/components/user_data_importer/content/content_bookmark_parser_utils.cc b/components/user_data_importer/content/content_bookmark_parser_utils.cc --- a/components/user_data_importer/content/content_bookmark_parser_utils.cc +++ b/components/user_data_importer/content/content_bookmark_parser_utils.cc -@@ -89,6 +89,7 @@ std::optional GetTimeAttribute(const std::string& attribute_list, +@@ -138,6 +138,7 @@ std::optional GetBoolAttribute(std::string_view attribute_list, // Given the URL of a page and a favicon data URL, adds an appropriate record // to the given favicon usage vector. @@ -1418,7 +1418,7 @@ diff --git a/components/user_data_importer/content/content_bookmark_parser_utils void DataURLToFaviconUsage(const GURL& link_url, const GURL& favicon_data, favicon_base::FaviconUsageDataList* favicons) { -@@ -438,9 +439,11 @@ BookmarkParser::ParsedBookmarks ParseBookmarksUnsafe( +@@ -495,9 +496,11 @@ BookmarkParser::ParsedBookmarks ParseBookmarksUnsafe( } parsing_result.bookmarks.push_back(std::move(entry)); diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 28ab519e..78de0c5e 100644 --- a/build/patches/Add-cromite-flags-support.patch +++ b/build/patches/Add-cromite-flags-support.patch @@ -17,7 +17,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html base/android/feature_map.cc | 5 + .../base/cached_flags/ValuesReturned.java | 2 +- base/feature_list.cc | 76 ++++++++ - base/feature_list.h | 80 +++++++- + base/feature_list.h | 98 +++++++++- build/android/gyp/java_cpp_features.py | 17 ++ chrome/android/java/res/values/values.xml | 3 + .../java/res/xml/privacy_preferences.xml | 4 + @@ -35,7 +35,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/flags/ChromeFeatureList.java | 13 +- .../flags/cromite/include_all_directory.java | 1 + .../java_template/CromiteCachedFlag.java.tmpl | 47 +++++ - chrome/browser/settings/BUILD.gn | 1 + .../settings/ChromeBaseSettingsFragment.java | 50 +++++ .../strings/android_chrome_strings.grd | 1 + .../Add-cromite-flags-support.grdp | 9 + @@ -107,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 1 + ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.h | 1 + - 94 files changed, 834 insertions(+), 31 deletions(-) + 93 files changed, 850 insertions(+), 32 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp @@ -144,7 +143,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 +@@ -170,6 +170,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 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1043,7 +1045,7 @@ component("base") { +@@ -1046,7 +1048,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -180,7 +179,7 @@ diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java --- a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java +++ b/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned.java -@@ -18,7 +18,7 @@ import java.util.Map; +@@ -18,7 +18,7 @@ import java.util.function.Supplier; @NullMarked public abstract class ValuesReturned { @GuardedBy("sBoolValues") @@ -192,7 +191,7 @@ diff --git a/base/android/java/src/org/chromium/base/cached_flags/ValuesReturned diff --git a/base/feature_list.cc b/base/feature_list.cc --- a/base/feature_list.cc +++ b/base/feature_list.cc -@@ -41,6 +41,31 @@ +@@ -42,6 +42,31 @@ namespace base { @@ -224,7 +223,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -470,6 +495,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -471,6 +496,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -271,7 +270,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -737,6 +802,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, +@@ -738,6 +803,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor, void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -292,7 +291,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.h b/base/feature_list.h --- a/base/feature_list.h +++ b/base/feature_list.h -@@ -177,8 +177,10 @@ enum class FeatureMacroHandshake { kSecret }; +@@ -238,8 +238,10 @@ constexpr const char* GetFeatureNameFromIdentifier(std::string_view feature) { struct BASE_EXPORT LOGICALLY_CONST Feature { constexpr Feature(const char* name, FeatureState default_state, @@ -305,7 +304,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) { -@@ -205,6 +207,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { +@@ -266,6 +268,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { // command line switch. const FeatureState default_state; @@ -315,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h private: friend class FeatureList; -@@ -485,6 +490,11 @@ class BASE_EXPORT FeatureList { +@@ -546,6 +551,11 @@ class BASE_EXPORT FeatureList { // instance, which is checked in builds with DCHECKs enabled. static bool IsEnabled(const Feature& feature); @@ -327,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h // Some characters are not allowed to appear in feature names or the // associated field trial names, as they are used as special characters for // command-line serialization. This function checks that the strings are ASCII -@@ -754,4 +764,70 @@ class BASE_EXPORT FeatureList { +@@ -815,4 +825,88 @@ class BASE_EXPORT FeatureList { } // namespace base @@ -389,22 +388,40 @@ diff --git a/base/feature_list.h b/base/feature_list.h + _Pragma("clang diagnostic pop") \ + static_assert(true, "") /* for a semicolon requirement */ + -+#define BASE_FEATURE_DISABLED(feature, name, default_state) \ ++#define BASE_FEATURE_DISABLED_3_ARGS(feature, name, default_state) \ + BASE_FEATURE(feature, name, default_state); \ + static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state") + -+#define BASE_FEATURE_ENABLED(feature, name, default_state) \ ++#define BASE_FEATURE_DISABLED_2_ARGS(name, default_state) \ ++ BASE_FEATURE(name, default_state); \ ++ static_assert(default_state == base::FEATURE_DISABLED_BY_DEFAULT, "Check default state") ++ ++#define GET_BASE_FEATURE_DISABLED_MACRO(_1, _2, _3, NAME, ...) NAME ++#define BASE_FEATURE_DISABLED(...) \ ++ GET_BASE_FEATURE_DISABLED_MACRO(__VA_ARGS__, BASE_FEATURE_DISABLED_3_ARGS, \ ++ BASE_FEATURE_DISABLED_2_ARGS)(__VA_ARGS__) ++ ++#define BASE_FEATURE_ENABLED_3_ARGS(feature, name, default_state) \ + BASE_FEATURE(feature, name, default_state); \ + static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state") ++ ++#define BASE_FEATURE_ENABLED_2_ARGS(name, default_state) \ ++ BASE_FEATURE(name, default_state); \ ++ static_assert(default_state == base::FEATURE_ENABLED_BY_DEFAULT, "Check default state") ++ ++#define GET_BASE_FEATURE_ENABLED_MACRO(_1, _2, _3, NAME, ...) NAME ++#define BASE_FEATURE_ENABLED(...) \ ++ GET_BASE_FEATURE_ENABLED_MACRO(__VA_ARGS__, BASE_FEATURE_ENABLED_3_ARGS, \ ++ BASE_FEATURE_ENABLED_2_ARGS)(__VA_ARGS__) + #endif // BASE_FEATURE_LIST_H_ diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp_features.py --- a/build/android/gyp/java_cpp_features.py +++ b/build/android/gyp/java_cpp_features.py -@@ -21,10 +21,27 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): - # ExtractConstantName() -> 'ConstantName' - # ExtractValue() -> '"StringNameOfTheFeature"' - FEATURE_RE = re.compile(r'BASE_FEATURE\(k([^,]+),') +@@ -25,10 +25,27 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): + _FEATURE_RE_3_ARGS = re.compile(r'BASE_FEATURE\(k([^,]+),') + # For 2-arg macro: BASE_FEATURE(MyFeature, ...) + _FEATURE_RE_2_ARGS = re.compile(r'BASE_FEATURE\(([^,]+),') + + FEATURE_RE1 = re.compile(r'CROMITE_FEATURE\(k([^,]+),') + FEATURE_RE2 = re.compile(r'CROMITE_FEATURE_KEEP_DISABLED\(k([^,]+),') @@ -412,10 +429,10 @@ diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp + FEATURE_RE4 = re.compile(r'CROMITE_FEATURE_KEEP_ENABLED\(k([^,]+),') + FEATURE_RE5 = re.compile(r'CROMITE_FEATURE_ENABLED\(k([^,]+),') + - VALUE_RE = re.compile(r'\s*("(?:\"|[^"])*")\s*,') + _VALUE_RE = re.compile(r'\s*("(?:\\"|[^"])*")\s*,') def ExtractConstantName(self, line): - match = FeatureParserDelegate.FEATURE_RE.match(line) + match = self._FEATURE_RE_3_ARGS.match(line) + if match is None: + match = FeatureParserDelegate.FEATURE_RE1.match(line) + if match is None: @@ -426,9 +443,9 @@ diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp + match = FeatureParserDelegate.FEATURE_RE4.match(line) + if match is None: + match = FeatureParserDelegate.FEATURE_RE5.match(line) - return match.group(1) if match else None - - def ExtractValue(self, line): + if match: + return match.group(1) + match = self._FEATURE_RE_2_ARGS.match(line) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml @@ -471,7 +488,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -130,7 +130,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -132,7 +132,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } @Override @@ -483,18 +500,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -11,6 +11,7 @@ import androidx.annotation.NonNull; +@@ -10,6 +10,7 @@ import android.os.Bundle; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.chrome.browser.accessibility.settings.ChromeAccessibilitySettingsDelegate; -@@ -70,18 +71,21 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl + import org.chromium.build.annotations.NullMarked; +@@ -72,24 +73,31 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mSnackbarManagerSupplier; private final OneshotSupplier mBottomSheetControllerSupplier; - private final ObservableSupplier mModalDialogManagerSupplier; + private final ObservableSupplier<@Nullable ModalDialogManager> mModalDialogManagerSupplier; + private final Supplier mRequireRestartDelegateSupplier; public FragmentDependencyProvider( @@ -502,8 +519,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme Profile profile, OneshotSupplier snackbarManagerSupplier, OneshotSupplier bottomSheetControllerSupplier, -- ObservableSupplier modalDialogManagerSupplier) { -+ ObservableSupplier modalDialogManagerSupplier, +- ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier) { ++ ObservableSupplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, + Supplier requireRestartDelegateSupplier) { mContext = context; mProfile = profile; @@ -514,9 +531,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme } @Override -@@ -90,6 +94,10 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl - @NonNull Fragment fragment, - @NonNull Context unusedContext) { + public void onFragmentAttached( + FragmentManager fragmentManager, Fragment fragment, Context unusedContext) { // Common dependencies attachments. + if (fragment instanceof ChromeBaseSettingsFragment) { + ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegateSupplier( @@ -528,25 +544,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme 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 -@@ -4,6 +4,7 @@ +@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.settings; - package org.chromium.chrome.browser.settings; + import static org.chromium.build.NullUtil.assumeNonNull; +import android.app.Activity; import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -@@ -32,7 +33,9 @@ import org.chromium.base.Callback; - import org.chromium.base.CallbackUtils; +@@ -32,7 +33,9 @@ import org.chromium.base.CallbackUtils; + import org.chromium.base.DeviceInfo; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; 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; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +@@ -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; @@ -561,7 +577,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; -@@ -88,6 +93,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -92,6 +97,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { private static final String TAG = "SettingsActivity"; @@ -589,7 +605,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin + ApplicationLifetime.terminate(true); + } + }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) -+ .setSingleLine(false) ++ .setDefaultLines(false) + .setAction(mActivity.getString(R.string.relaunch), + /*actionData*/null) + .setDuration(/*durationMs*/70000); @@ -602,7 +618,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"; -@@ -154,7 +193,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -158,7 +197,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -615,22 +631,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -19,12 +19,13 @@ import org.chromium.build.annotations.Nullable; - import org.chromium.chrome.R; - import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; - import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -+import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; - import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.settings.SettingsUtils; +@@ -23,8 +23,7 @@ import org.chromium.components.browser_ui.settings.SettingsUtils; /** Settings fragment containing preferences aimed at Chrome and web developers. */ @NullMarked --public class DeveloperSettings extends PreferenceFragmentCompat implements EmbeddableSettingsPage { +-public class DeveloperSettings extends ChromeBaseSettingsFragment +- implements EmbeddableSettingsPage { +public class DeveloperSettings extends ChromeBaseSettingsFragment implements EmbeddableSettingsPage { private static final String UI_PREF_BETA_STABLE_HINT = "beta_stable_hint"; // Non-translated strings: -@@ -55,7 +56,7 @@ public class DeveloperSettings extends PreferenceFragmentCompat implements Embed +@@ -55,7 +54,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment } @Override @@ -642,7 +653,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 -@@ -381,6 +381,10 @@ using flags_ui::kOsLinux; +@@ -384,6 +384,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -653,9 +664,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4903,6 +4907,10 @@ const FeatureEntry::FeatureVariation - constexpr char kWebiumFlag[] = "webium"; - #endif // !BUILDFLAG(IS_ANDROID) +@@ -4895,6 +4899,10 @@ const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { + #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ + // BUILDFLAG(IS_CHROMEOS) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -664,7 +675,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. -@@ -4929,6 +4937,9 @@ constexpr char kWebiumFlag[] = "webium"; +@@ -4921,6 +4929,9 @@ const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -686,7 +697,7 @@ diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_feature diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features.h --- a/chrome/browser/browser_features.h +++ b/chrome/browser/browser_features.h -@@ -121,6 +121,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -125,6 +125,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -736,7 +747,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1489,5 +1489,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, +@@ -1558,5 +1558,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, "WebOtpCrossDeviceSimpleString", base::FEATURE_DISABLED_BY_DEFAULT); @@ -746,7 +757,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 -@@ -337,6 +337,7 @@ constexpr base::FeatureParam kTouchToSearchCalloutSnippetAsSubtitle( +@@ -346,6 +346,7 @@ constexpr base::FeatureParam kTouchToSearchCalloutSnippetAsSubtitle( "snippet_as_subtitle", /*default_value=*/false); @@ -768,18 +779,18 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -1063,7 +1067,7 @@ public abstract class ChromeFeatureList { - public static final CachedFlag sWebApkMinShellApkVersion = +@@ -1111,7 +1115,7 @@ public abstract class ChromeFeatureList { newCachedFlag(WEB_APK_MIN_SHELL_APK_VERSION, true); + // keep-sorted end - public static final List sFlagsCachedFullBrowser = + public static final List sFlagsCachedFullBrowserChromium = List.of( + // keep-sorted start sAccountForSuppressedKeyboardInsets, - sAllowTabClosingUponMinimization, -@@ -1205,6 +1209,13 @@ public abstract class ChromeFeatureList { - sUseLibunwindstackNativeUnwinderAndroid, - sWebApkMinShellApkVersion); +@@ -1268,6 +1272,13 @@ public abstract class ChromeFeatureList { + // keep-sorted end + ); + private static List concatenateLists(List... collections) { + return Arrays.stream(collections).flatMap(x -> x.stream()).collect(Collectors.toList()); @@ -849,30 +860,20 @@ new file mode 100644 + }} + +}} -diff --git a/chrome/browser/settings/BUILD.gn b/chrome/browser/settings/BUILD.gn ---- a/chrome/browser/settings/BUILD.gn -+++ b/chrome/browser/settings/BUILD.gn -@@ -35,6 +35,7 @@ android_library("java") { - "//base:base_java", - "//chrome/browser/feedback/android:factory_java", - "//chrome/browser/feedback/android:java", -+ "//chrome/browser/flags:java", - "//chrome/browser/preferences:java", - "//chrome/browser/profiles/android:java", - "//chrome/browser/ui/android/favicon:java", diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java -@@ -8,12 +8,19 @@ import androidx.preference.PreferenceFragmentCompat; - +@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView; import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; +import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; - import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; + import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -28,6 +29,12 @@ import org.chromium.components.browser_ui.settings.SettingsStylingController; + + import java.util.Objects; +import android.os.Bundle; +import androidx.preference.Preference; @@ -883,9 +884,9 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse /** * Base class for settings in Chrome. * -@@ -28,6 +35,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa - private Profile mProfile; - private SettingsCustomTabLauncher mCustomTabLauncher; +@@ -89,6 +96,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa + }); + } + private Supplier mRequireRestartDelegateSupplier; + @@ -967,9 +968,9 @@ 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 -@@ -619,4 +619,5 @@ bool IsBookmarkTabGroupConversionEnabled() { - return base::FeatureList::IsEnabled(kBookmarkTabGroupConversion); +@@ -748,4 +748,5 @@ bool IsNewTabAddsToActiveGroupEnabled() { } + #endif // !BUILDFLAG(IS_ANDROID) +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" } // namespace features @@ -1008,9 +1009,9 @@ 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 -@@ -1977,5 +1977,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, - BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, - "SilentPolicyAndDefaultAppUpdating", +@@ -1612,5 +1612,5 @@ BASE_FEATURE(DisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); + // happen silently without prompting an updating dialog. + BASE_FEATURE(SilentPolicyAndDefaultAppUpdating, base::FEATURE_DISABLED_BY_DEFAULT); - +#include "cromite_flags/chrome_common_chrome_features_cc.inc" @@ -1160,7 +1161,7 @@ diff --git a/components/components_strings.grd b/components/components_strings.g diff --git a/components/content_settings/core/common/features.cc b/components/content_settings/core/common/features.cc --- a/components/content_settings/core/common/features.cc +++ b/components/content_settings/core/common/features.cc -@@ -181,5 +181,6 @@ BASE_FEATURE(kForceAllowStorageAccess, +@@ -176,5 +176,6 @@ BASE_FEATURE(kForceAllowStorageAccess, "ForceAllowStorageAccess", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1196,7 +1197,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 -@@ -219,4 +219,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, +@@ -225,4 +225,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -1205,7 +1206,7 @@ diff --git a/components/password_manager/core/browser/features/password_features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -139,6 +139,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, +@@ -137,6 +137,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, "OsAdditionalSecurityPermissionKillSwitch", base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -1638,7 +1639,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 -@@ -743,4 +743,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { +@@ -761,4 +761,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); } @@ -1647,7 +1648,7 @@ diff --git a/content/common/features.cc b/content/common/features.cc diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc --- a/content/public/common/content_features.cc +++ b/content/public/common/content_features.cc -@@ -1676,4 +1676,5 @@ bool IsPushSubscriptionChangeEventEnabled() { +@@ -1403,4 +1403,5 @@ bool IsPushSubscriptionChangeEventEnabled() { features::kPushSubscriptionChangeEventOnResubscribe); } @@ -1656,7 +1657,7 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c diff --git a/content/public/common/content_features.h b/content/public/common/content_features.h --- a/content/public/common/content_features.h +++ b/content/public/common/content_features.h -@@ -400,6 +400,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -404,6 +404,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); @@ -2002,7 +2003,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 -@@ -2008,5 +2008,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1727,5 +1727,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2012,7 +2013,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 -@@ -601,5 +601,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -603,5 +603,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2022,18 +2023,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 -@@ -909,4 +909,5 @@ BASE_FEATURE_PARAM(bool, - "url_request_redirect_job", - false); +@@ -804,4 +804,5 @@ BASE_FEATURE_PARAM(std::string, + /*name=*/"wildcard_quic_hints", + /*default_value=*/""); +#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 -@@ -896,6 +896,7 @@ NET_EXPORT BASE_DECLARE_FEATURE_PARAM(bool, kNetTaskSchedulerURLRequestJob); - NET_EXPORT BASE_DECLARE_FEATURE_PARAM(bool, - kNetTaskSchedulerURLRequestRedirectJob); +@@ -912,6 +912,7 @@ NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, kQuicHintHostPortPairs); + NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, + kWildcardQuicHintHostPortPairs); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2042,7 +2043,7 @@ diff --git a/net/base/features.h b/net/base/features.h diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc --- a/services/network/public/cpp/features.cc +++ b/services/network/public/cpp/features.cc -@@ -666,4 +666,5 @@ BASE_FEATURE_PARAM(bool, +@@ -674,4 +674,5 @@ BASE_FEATURE_PARAM(bool, "url_loader", false); @@ -2051,7 +2052,7 @@ diff --git a/services/network/public/cpp/features.cc b/services/network/public/c diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -366,6 +366,7 @@ BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerResourceScheduler); +@@ -367,6 +367,7 @@ BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerResourceScheduler); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerURLLoader); @@ -2062,7 +2063,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 -@@ -2927,4 +2927,5 @@ bool IsXrDevice() { +@@ -2566,4 +2566,5 @@ bool IsXrDevice() { // // DO NOT ADD NEW FEATURES HERE. @@ -2071,7 +2072,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 -@@ -1912,6 +1912,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); +@@ -1903,6 +1903,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); // // DO NOT ADD NEW FEATURES HERE. @@ -2082,18 +2083,18 @@ 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 -@@ -483,4 +483,5 @@ bool IsHandleIMESpanChangesOnUpdateCompositionEnabled() { - features::kHandleIMESpanChangesOnUpdateComposition); - } +@@ -492,4 +492,5 @@ BASE_FEATURE(kUseSystemDefaultAccentColors, + "UseSystemDefaultAccentColors", + base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/ui_base_features_cc.inc" } // namespace features 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 -@@ -242,6 +242,7 @@ BASE_DECLARE_FEATURE(kHandleIMESpanChangesOnUpdateComposition); +@@ -248,6 +248,7 @@ bool IsHandleIMESpanChangesOnUpdateCompositionEnabled(); COMPONENT_EXPORT(UI_BASE_FEATURES) - bool IsHandleIMESpanChangesOnUpdateCompositionEnabled(); + BASE_DECLARE_FEATURE(kUseSystemDefaultAccentColors); +#include "cromite_flags/ui_base_features_h.inc" } // namespace features diff --git a/build/patches/Add-cromite-test-support.patch b/build/patches/Add-cromite-test-support.patch index 28804ab7..2aef794b 100644 --- a/build/patches/Add-cromite-test-support.patch +++ b/build/patches/Add-cromite-test-support.patch @@ -73,15 +73,15 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -139,6 +139,7 @@ import org.chromium.ui.base.PhotoPickerListener; - import org.chromium.ui.base.SelectFileDialog; +@@ -144,6 +144,7 @@ import org.chromium.ui.base.SelectFileDialog; import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.url.GURL; +import org.chromium.chrome.browser.flags.cromite.sActAsWebView; import java.io.File; import java.nio.charset.StandardCharsets; -@@ -698,7 +699,10 @@ public class ProcessInitializationHandler { +@@ -710,7 +711,10 @@ public class ProcessInitializationHandler { tasks.add( () -> { @@ -96,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -37,7 +37,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb +@@ -35,7 +35,7 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb private final ObservableSupplier mPageTitle = new ObservableSupplierImpl<>(MSG_DEVELOPER_OPTIONS_TITLE); @@ -434,7 +434,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -657,6 +657,7 @@ mojom("mojo_bindings") { +@@ -662,6 +662,7 @@ mojom("mojo_bindings") { sources = [ "chrome_render_frame.mojom", "google_accounts_private_api_extension.mojom", @@ -457,7 +457,7 @@ new file mode 100644 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -74,6 +74,8 @@ static_library("renderer") { +@@ -80,6 +80,8 @@ static_library("renderer") { "chrome_render_thread_observer.cc", "chrome_render_thread_observer.h", "custom_menu_commands.h", @@ -469,7 +469,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -54,6 +54,7 @@ +@@ -56,6 +56,7 @@ #include "chrome/renderer/chrome_render_frame_observer.h" #include "chrome/renderer/chrome_render_thread_observer.h" #include "chrome/renderer/controlled_frame/controlled_frame_extensions_renderer_api_provider.h" @@ -477,7 +477,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #include "chrome/renderer/google_accounts_private_api_extension.h" #include "chrome/renderer/loadtimes_extension_bindings.h" #include "chrome/renderer/media/flash_embed_rewrite.h" -@@ -624,6 +625,7 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -645,6 +646,7 @@ void ChromeContentRendererClient::RenderFrameCreated( TrustedVaultEncryptionKeysExtension::Create(render_frame); GoogleAccountsPrivateApiExtension::Create(render_frame); @@ -851,7 +851,7 @@ diff --git a/content/browser/log_console_message.h b/content/browser/log_console 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 -@@ -315,6 +315,8 @@ +@@ -319,6 +319,8 @@ #include "url/origin.h" #include "url/url_constants.h" @@ -860,7 +860,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b #if BUILDFLAG(IS_ANDROID) #include "content/browser/accessibility/browser_accessibility_manager_android.h" #include "content/browser/android/content_url_loader_factory.h" -@@ -4755,7 +4757,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4763,7 +4765,8 @@ void RenderFrameHostImpl::DidAddMessageToConsole( if (delegate_->DidAddMessageToConsole(this, log_level, message, line_no, updated_source_id, untrusted_stack_trace)) { @@ -870,7 +870,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/b } // Pass through log severity only on builtin components pages to limit console -@@ -4772,8 +4775,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( +@@ -4780,8 +4783,14 @@ void RenderFrameHostImpl::DidAddMessageToConsole( const bool is_off_the_record = GetSiteInstance()->GetBrowserContext()->IsOffTheRecord(); diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index 5073f0e6..a898ec2b 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.patch @@ -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 { +@@ -489,6 +499,17 @@ public class LaunchIntentDispatcher { if (Intent.ACTION_VIEW.equals(newIntent.getAction()) && !IntentHandler.wasIntentSenderChrome(newIntent)) { @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -233,16 +233,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -236,16 +236,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid // Extra whose value is an array of ints that is supplied to // SyntheticTrialRegistry::RegisterExternalExperiments(). @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust /** * Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab -@@ -682,7 +682,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -685,7 +685,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION, ScreenOrientation.DEFAULT)); @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust mBreakPointDp = getActivityBreakPointFromIntent(intent); mInitialActivityHeight = getInitialActivityHeightFromIntent(intent); -@@ -695,8 +695,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -698,8 +698,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT); mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED; @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @BackgroundInteractBehavior int backgroundInteractBehavior = IntentUtils.safeGetIntExtra( -@@ -1267,7 +1267,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1270,7 +1270,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -166,7 +166,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 -@@ -780,7 +780,7 @@ public class CustomTabsConnection { +@@ -776,7 +776,7 @@ public class CustomTabsConnection { ThreadUtils.assertOnUiThread(); if (extras == null) return; int[] experimentIds = @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust if (experimentIds == null) return; // When ids are set through cct, they should not override existing ids. boolean override = false; -@@ -996,6 +996,7 @@ public class CustomTabsConnection { +@@ -992,6 +992,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -220,6 +226,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -221,6 +227,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -217,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco if (!isIncognitoRequested(intent)) return false; var session = SessionHolder.getSessionHolderFromIntent(intent); if (isIntentFromThirdPartyAllowed() -@@ -329,6 +339,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -330,6 +340,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -231,7 +231,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -10,6 +10,7 @@ import android.content.Context; +@@ -11,6 +11,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.drawable.Drawable; @@ -255,7 +255,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import androidx.preference.PreferenceCategory; import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.base.shared_preferences.SharedPreferencesManager; -@@ -152,6 +162,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -153,6 +163,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment startTag, endTag, new ChromeClickableSpan(context, onClickCallback)); } @@ -327,7 +327,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 -@@ -1093,7 +1093,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -1153,7 +1153,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. @@ -339,7 +339,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 -@@ -943,6 +943,8 @@ public abstract class ChromeFeatureList { +@@ -991,6 +991,8 @@ public abstract class ChromeFeatureList { MOST_VISITED_TILES_CUSTOMIZATION, /* defaultValue= */ false, /* defaultValueInTests= */ true); @@ -348,7 +348,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -1165,6 +1167,7 @@ public abstract class ChromeFeatureList { +@@ -1226,6 +1228,7 @@ public abstract class ChromeFeatureList { sMiniOriginBar, sMitigateLegacySearchEnginePromoOverlap, sMostVisitedTilesCustomization, @@ -422,7 +422,7 @@ diff --git a/components/language/core/common/language_experiments.cc b/component +++ b/components/language/core/common/language_experiments.cc @@ -26,4 +26,5 @@ BASE_FEATURE(kDisableGeoLanguageModel, "DisableGeoLanguageModel", - base::FEATURE_DISABLED_BY_DEFAULT); + base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate); } // namespace language diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 417e77ad..4e1fc75c 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -119,6 +119,7 @@ found in the LICENSE file. +@@ -121,6 +121,7 @@ found in the LICENSE file. @@ -28,16 +28,16 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -345,6 +345,8 @@ import java.util.Map; - import java.util.Set; +@@ -352,6 +352,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; + import java.util.function.Supplier; +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. -@@ -3692,6 +3694,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3820,6 +3822,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -49,7 +49,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 -@@ -59,6 +59,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; +@@ -61,6 +61,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; @@ -57,7 +57,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; -@@ -2445,6 +2446,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2481,6 +2482,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife 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 -@@ -384,6 +384,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -390,6 +390,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab 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 -@@ -4347,6 +4347,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4311,6 +4311,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 73e47e1d..5fa03a3d 100644 --- a/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -66,7 +66,7 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ #include "base/functional/callback.h" #include "base/i18n/break_iterator.h" #include "base/i18n/case_conversion.h" -@@ -632,6 +633,9 @@ void SearchProvider::Run(bool query_is_private) { +@@ -637,6 +638,9 @@ void SearchProvider::Run(bool query_is_private) { } void SearchProvider::DoHistoryQuery(bool minimal_changes) { @@ -79,16 +79,16 @@ diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc --- a/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc -@@ -15,6 +15,8 @@ - #include +@@ -11,6 +11,8 @@ #include "base/check_op.h" + #include "base/compiler_specific.h" +#include "base/containers/contains.h" +#include "base/command_line.h" #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/i18n/char_iterator.h" -@@ -648,6 +650,8 @@ GURL FixupURLInternal(const std::string& text, +@@ -644,6 +646,8 @@ GURL FixupURLInternal(const std::string& text, FixupHost(trimmed, parts.host, parts.scheme.is_valid(), desired_tld, &url); if (chrome_url && !parts.host.is_valid()) { diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index 1bf86135..1c3be714 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 -@@ -1157,6 +1157,7 @@ component("net") { +@@ -1167,6 +1167,7 @@ component("net") { ":net_deps", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/url_request/url_request_context.h" -@@ -1497,6 +1498,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1496,6 +1497,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 aa90eb26..10ff8e43 100644 --- a/build/patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/patches/Add-flag-to-disable-external-intent-requests.patch @@ -49,7 +49,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/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java -@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; -@@ -128,6 +129,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -152,6 +153,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -68,7 +68,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/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java -@@ -26,6 +26,7 @@ import org.chromium.base.supplier.Supplier; +@@ -25,6 +25,7 @@ import org.chromium.base.PackageManagerUtils; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.ChromeTabbedActivity2; @@ -76,12 +76,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/Ext import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.document.ChromeLauncherActivity; -@@ -117,7 +118,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat - +@@ -119,7 +120,8 @@ public class ExternalNavigationDelegateImpl implements ExternalNavigationDelegat @Override - public boolean shouldDisableExternalIntentRequestsForUrl(GURL url) { + public boolean shouldDisableExternalIntentRequestsForUrl( + ExternalNavigationParams params, Intent intent) { - return false; -+ if ("tel".equals(url.getScheme())) return false; ++ if ("tel".equals(params.getUrl().getScheme())) return false; + return !sAllowExternalIntentRequests.getInstance().isEnabled(); } @@ -193,7 +193,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -1558,6 +1558,12 @@ public class ExternalNavigationHandler { +@@ -1556,6 +1556,12 @@ public class ExternalNavigationHandler { || ignoreBackForwardNav(params); } @@ -206,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1626,6 +1632,21 @@ public class ExternalNavigationHandler { +@@ -1624,6 +1630,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index 21ee820a..4148cafc 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 -@@ -1011,6 +1011,10 @@ +@@ -1045,6 +1045,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 b8de58fb..27c8d431 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,16 +14,16 @@ 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 -@@ -700,7 +700,7 @@ config("compiler") { +@@ -694,7 +694,7 @@ config("compiler") { # TODO(crbug.com/376278218): This causes segfault on Linux ARM builds. # It also causes segfault on Linux s390x: # https://github.com/llvm/llvm-project/issues/149511 - if (is_linux && use_lld && !llvm_android_mainline && current_cpu != "arm" && + if (is_linux && !skip_clangd_unsupported_options && use_lld && !llvm_android_mainline && current_cpu != "arm" && - current_cpu != "s390x" && - default_toolchain != "//build/toolchain/cros:target") { + current_cpu != "s390x") { cflags += [ "-Wa,--crel,--allow-experimental-crel" ] -@@ -1813,7 +1813,7 @@ config("clang_revision") { + } +@@ -1806,7 +1806,7 @@ config("clang_revision") { # e.g. by setting in the the project's .gn file. config("clang_warning_suppression") { # Some build configs use older versions of clang that don't support WSMs @@ -32,7 +32,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn from_build_root = rebase_path(clang_warning_suppression_file, root_build_dir) inputs = [ clang_warning_suppression_file ] -@@ -2146,7 +2146,6 @@ config("default_warnings") { +@@ -2140,7 +2140,6 @@ config("default_warnings") { # TODO(crbug.com/376641662): Fix and re-enable. "-Wno-nontrivial-memcall", ] @@ -40,7 +40,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", -@@ -2211,6 +2210,15 @@ config("default_warnings") { +@@ -2205,6 +2204,15 @@ config("default_warnings") { ] } diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index a3e22b0d..9d45a22f 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -233,7 +233,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/chip/chip_controller.cc b/chrome/browser/ui/views/permissions/chip/chip_controller.cc --- a/chrome/browser/ui/views/permissions/chip/chip_controller.cc +++ b/chrome/browser/ui/views/permissions/chip/chip_controller.cc -@@ -227,7 +227,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { +@@ -228,7 +228,7 @@ void ChipController::OnWidgetDestroyed(views::Widget* widget) { active_chip_permission_request_manager_.value()->Accept(); break; case permissions::PermissionAction::GRANTED_ONCE: @@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v 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 -@@ -630,6 +630,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -634,6 +634,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -281,7 +281,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(); -@@ -1316,6 +1321,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1240,6 +1245,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment .getDefaultColor()); } } @@ -295,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -218,7 +218,7 @@ void GetOrigins(JNIEnv* env, +@@ -223,7 +223,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -365,7 +365,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc bool CanTrackLastVisit(ContentSettingsType type) { DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type; -@@ -261,10 +297,6 @@ const std::vector& GetTypesWithTemporaryGrants() { +@@ -273,10 +309,6 @@ const std::vector& GetTypesWithTemporaryGrants() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -376,7 +376,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, ContentSettingsType::AR, -@@ -280,10 +312,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { +@@ -292,10 +324,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -425,34 +425,33 @@ 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 -@@ -378,9 +378,9 @@ public class PageInfoController - String name, - String nameMidSentence, - int type, -- @ContentSettingValues int currentSettingValue) { -+ @ContentSettingValues int currentSettingValue, boolean is_user_session) { - mPermissionParamsListBuilder.addPermissionEntry( -- name, nameMidSentence, type, currentSettingValue); -+ name, nameMidSentence, type, currentSettingValue, is_user_session); +@@ -374,8 +374,8 @@ public class PageInfoController + */ + @CalledByNative + private void addPermissionSection( +- String name, String nameMidSentence, int type, boolean allowed) { +- mPermissionParamsListBuilder.addPermissionEntry(name, nameMidSentence, type, allowed); ++ String name, String nameMidSentence, int type, boolean allowed, boolean is_user_session) { ++ mPermissionParamsListBuilder.addPermissionEntry(name, nameMidSentence, type, allowed, is_user_session); } /** Update the permissions view based on the contents of mDisplayedPermissions. */ diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PermissionParamsListBuilder.java -@@ -48,8 +48,9 @@ public class PermissionParamsListBuilder { +@@ -46,8 +46,9 @@ public class PermissionParamsListBuilder { + mEntries = new ArrayList<>(); } - public void addPermissionEntry( -- String name, String nameMidSentence, int type, @ContentSettingValues int value) { -- mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, value)); -+ String name, String nameMidSentence, int type, @ContentSettingValues int value, +- public void addPermissionEntry(String name, String nameMidSentence, int type, boolean allowed) { +- mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, allowed)); ++ public void addPermissionEntry(String name, String nameMidSentence, int type, boolean allowed, + boolean is_user_session) { -+ mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, value, is_user_session)); ++ mEntries.add(new PageInfoPermissionEntry(name, nameMidSentence, type, allowed, is_user_session)); } public void clearPermissionEntries() { -@@ -85,6 +86,10 @@ public class PermissionParamsListBuilder { +@@ -84,6 +85,10 @@ public class PermissionParamsListBuilder { } else { warningTextResource = R.string.page_info_android_permission_blocked; } @@ -461,21 +460,20 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ + R.string.page_info_android_permission_session_permission; + } } - } else { - assert permission.setting == ContentSettingValues.ASK -@@ -121,13 +126,15 @@ public class PermissionParamsListBuilder { + } + +@@ -112,12 +117,14 @@ public class PermissionParamsListBuilder { public final String nameMidSentence; public final int type; - public final @ContentSettingValues int setting; + public final boolean allowed; + public final boolean is_user_session; - PageInfoPermissionEntry( -- String name, String nameMidSentence, int type, @ContentSettingValues int setting) { -+ String name, String nameMidSentence, int type, @ContentSettingValues int setting, boolean is_user_session) { +- PageInfoPermissionEntry(String name, String nameMidSentence, int type, boolean allowed) { ++ PageInfoPermissionEntry(String name, String nameMidSentence, int type, boolean allowed, boolean is_user_session) { this.name = name; this.nameMidSentence = nameMidSentence; this.type = type; - this.setting = setting; + this.allowed = allowed; + this.is_user_session = is_user_session; } @@ -483,35 +481,35 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -186,6 +186,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -199,6 +199,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( - std::map + std::map user_specified_settings_to_display; + std::map + user_specified_settings_is_user_session; for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -194,6 +196,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( - if (setting_to_display) { +@@ -211,6 +213,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( + user_specified_settings_to_display[permission.type] = - *setting_to_display; + info->delegate().IsAnyPermissionAllowed(*setting_to_display); + user_specified_settings_is_user_session[permission.type] = + permission.is_user_session; } } } -@@ -210,7 +214,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -227,7 +231,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), -- static_cast(user_specified_settings_to_display[permission])); -+ static_cast(user_specified_settings_to_display[permission]), +- user_specified_settings_to_display[permission]); ++ user_specified_settings_to_display[permission], + user_specified_settings_is_user_session[permission]); } } -@@ -223,7 +228,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -240,7 +245,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -524,15 +522,15 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1256,6 +1256,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1293,6 +1293,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); + permission_info.is_user_session = + (info.metadata.session_model() == content_settings::mojom::SessionModel::USER_SESSION); - auto* page_specific_content_settings = GetPageSpecificContentSettings(); - if (page_specific_content_settings && setting == CONTENT_SETTING_ALLOW) { + auto* setting_info = + content_settings::PermissionSettingsRegistry::GetInstance()->Get( diff --git a/components/page_info/page_info.h b/components/page_info/page_info.h --- a/components/page_info/page_info.h +++ b/components/page_info/page_info.h @@ -962,7 +960,7 @@ diff --git a/components/permissions/contexts/geolocation_permission_context_andr diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/components/permissions/embedded_permission_prompt_flow_model.cc --- a/components/permissions/embedded_permission_prompt_flow_model.cc +++ b/components/permissions/embedded_permission_prompt_flow_model.cc -@@ -295,7 +295,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( +@@ -294,7 +294,7 @@ void EmbeddedPermissionPromptFlowModel::SetDelegateAction( delegate_->Accept(); break; case DelegateAction::kAllowThisTime: @@ -974,7 +972,7 @@ diff --git a/components/permissions/embedded_permission_prompt_flow_model.cc b/c diff --git a/components/permissions/permission_context_base.cc b/components/permissions/permission_context_base.cc --- a/components/permissions/permission_context_base.cc +++ b/components/permissions/permission_context_base.cc -@@ -260,6 +260,17 @@ PermissionContextBase::CreatePermissionRequest( +@@ -267,6 +267,17 @@ PermissionContextBase::CreatePermissionRequest( std::move(request_finished_callback), UsesAutomaticEmbargo()); } @@ -992,7 +990,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } -@@ -551,7 +562,8 @@ void PermissionContextBase::DecidePermission( +@@ -571,7 +582,8 @@ void PermissionContextBase::DecidePermission( void PermissionContextBase::PermissionDecided( PermissionDecision decision, bool is_final_decision, @@ -1002,7 +1000,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm UserMadePermissionDecision(request_data.id, request_data.requesting_origin, request_data.embedding_origin, decision); -@@ -564,11 +576,12 @@ void PermissionContextBase::PermissionDecided( +@@ -584,11 +596,12 @@ void PermissionContextBase::PermissionDecided( // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1019,7 +1017,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -653,6 +666,30 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -673,6 +686,30 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, PermissionDecision decision, bool is_final_decision) { @@ -1050,18 +1048,18 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Note that rfh may be null, see crbug.com/426909787. -@@ -668,8 +705,8 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -688,8 +725,8 @@ void PermissionContextBase::NotifyPermissionSet( if (persist) { // Clone new value, because we need it again for the callback. -- UpdateSetting(request_data, std::move(new_value), +- UpdateSetting(request_data, new_value, - decision == PermissionDecision::kAllowThisTime); -+ UpdateSettingImpl(request_data, std::move(new_value), ++ UpdateSettingImpl(request_data, new_value, + decision == PermissionDecision::kAllowThisTime, use_lifetime_option, lifetime_option); } if (is_final_decision) { -@@ -706,6 +743,17 @@ void PermissionContextBase::UpdateSetting( +@@ -727,6 +764,17 @@ void PermissionContextBase::UpdateSetting( const PermissionRequestData& request_data, PermissionSetting setting, bool is_one_time) { @@ -1079,15 +1077,15 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -715,6 +763,8 @@ void PermissionContextBase::UpdateSetting( +@@ -736,6 +784,8 @@ void PermissionContextBase::UpdateSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); + if (use_lifetime_option) + constraints = content_settings::GetConstraintSessionExpiration(lifetime_option); - // The Permissions module in Safety check will revoke permissions after - // a finite amount of time if the permission can be revoked. + // The unused permissions module in Safety check will revoke unused site + // permissions after a finite amount of time if the permission can be revoked. diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h @@ -1276,7 +1274,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 -@@ -198,7 +198,7 @@ void PermissionRequestManager::AddRequest( +@@ -201,7 +201,7 @@ void PermissionRequestManager::AddRequest( if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDenyPermissionPrompts)) { @@ -1285,7 +1283,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p return; } -@@ -267,7 +267,7 @@ void PermissionRequestManager::AddRequest( +@@ -270,7 +270,7 @@ void PermissionRequestManager::AddRequest( if (should_auto_approve_request) { if (should_auto_approve_request == PermissionAction::GRANTED) { @@ -1294,7 +1292,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } return; } -@@ -626,7 +626,8 @@ void PermissionRequestManager::Accept() { +@@ -597,7 +597,8 @@ void PermissionRequestManager::Accept() { (*requests_iter)->request_type(), PermissionAction::GRANTED); PermissionGrantedIncludingDuplicates(requests_iter->get(), @@ -1304,7 +1302,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p #if !BUILDFLAG(IS_ANDROID) std::optional content_settings_type = -@@ -644,7 +645,7 @@ void PermissionRequestManager::Accept() { +@@ -615,7 +616,7 @@ void PermissionRequestManager::Accept() { CurrentRequestsDecided(PermissionAction::GRANTED); } @@ -1313,7 +1311,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) { return; } -@@ -658,7 +659,8 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -629,7 +630,8 @@ void PermissionRequestManager::AcceptThisTime() { (*requests_iter)->request_type(), PermissionAction::GRANTED_ONCE); PermissionGrantedIncludingDuplicates(requests_iter->get(), @@ -1323,7 +1321,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::GRANTED_ONCE); -@@ -666,6 +668,15 @@ void PermissionRequestManager::AcceptThisTime() { +@@ -637,6 +639,15 @@ void PermissionRequestManager::AcceptThisTime() { } void PermissionRequestManager::Deny() { @@ -1339,7 +1337,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p if (ignore_callbacks_from_prompt_) { return; } -@@ -688,7 +699,7 @@ void PermissionRequestManager::Deny() { +@@ -659,7 +670,7 @@ void PermissionRequestManager::Deny() { StorePermissionActionForUMA((*requests_iter)->requesting_origin(), (*requests_iter)->request_type(), PermissionAction::DENIED); @@ -1348,7 +1346,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1300,32 +1311,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1283,32 +1294,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1391,7 +1389,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1596,7 +1607,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1578,7 +1589,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: @@ -1403,7 +1401,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p diff --git a/components/permissions/permission_request_manager.h b/components/permissions/permission_request_manager.h --- a/components/permissions/permission_request_manager.h +++ b/components/permissions/permission_request_manager.h -@@ -166,8 +166,10 @@ class PermissionRequestManager +@@ -168,8 +168,10 @@ class PermissionRequestManager GURL GetRequestingOrigin() const override; GURL GetEmbeddingOrigin() const override; void Accept() override; @@ -1415,7 +1413,7 @@ diff --git a/components/permissions/permission_request_manager.h b/components/pe void Dismiss() override; void Ignore() override; void FinalizeCurrentRequests() override; -@@ -413,9 +415,12 @@ class PermissionRequestManager +@@ -419,9 +421,12 @@ class PermissionRequestManager // Calls PermissionGranted on a request and all its duplicates. void PermissionGrantedIncludingDuplicates(PermissionRequest* request, diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index cb4ac3e5..24ae1208 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -16,6 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../dialogs/DownloadLocationCustomView.java | 4 +- .../strings/android_chrome_strings.grd | 3 ++ .../bookmark_ui_operations_helper.cc | 2 + + .../bookmark_bar_page_handler.cc | 2 + components/bookmark_bar_strings.grdp | 6 +++ .../bookmarks/browser/bookmark_codec.cc | 20 +++++++-- components/bookmarks/browser/bookmark_codec.h | 7 ++- @@ -30,12 +31,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/bookmarks/browser/bookmark_uuids.h | 1 + components/bookmarks/browser/model_loader.cc | 9 +++- .../bookmark_specifics_conversions.cc | 1 + - 26 files changed, 255 insertions(+), 14 deletions(-) + 27 files changed, 257 insertions(+), 14 deletions(-) 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 -@@ -180,6 +180,7 @@ found in the LICENSE file. +@@ -187,6 +187,7 @@ found in the LICENSE file. @@ -46,7 +47,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -103,6 +103,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -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; @@ -54,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -287,6 +288,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac +@@ -292,6 +293,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory; @@ -64,25 +65,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; -@@ -298,6 +302,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; +@@ -303,6 +307,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl; +import org.chromium.components.bookmarks.BookmarkId; +import org.chromium.components.bookmarks.BookmarkItem; 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; -@@ -3724,6 +3730,8 @@ public class ChromeTabbedActivity extends ChromeActivity { - getTabModelSelectorSupplier().get(), - closeAllTabsRunnable); + import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate; + import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate; +@@ -3848,6 +3854,8 @@ public class ChromeTabbedActivity extends ChromeActivity { + CloseAllTabsDialog.show( + this, getModalDialogManagerSupplier(), tabModelSelector, closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); + } else if (id == R.id.bookmark_all_tabs_menu_id) { + bookmarkAllTabs(); } else if (id == R.id.close_all_incognito_tabs_menu_id) { boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); -@@ -3848,6 +3856,41 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3970,6 +3978,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -127,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct 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 -@@ -270,6 +270,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -271,6 +271,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // Bookmarks modelList.add(buildBookmarksItem()); @@ -142,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // Recent Tabs if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); -@@ -434,6 +442,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -448,6 +456,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } modelList.add(buildCloseAllTabsItem()); if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); @@ -459,7 +460,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 -@@ -4482,6 +4482,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4431,6 +4431,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -481,6 +482,18 @@ diff --git a/chrome/browser/ui/bookmarks/bookmark_ui_operations_helper.cc b/chro case bookmarks::BookmarkNode::URL: NOTREACHED(); case bookmarks::BookmarkNode::FOLDER: +diff --git a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc +--- a/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc ++++ b/chrome/browser/ui/webui_browser/bookmark_bar_page_handler.cc +@@ -37,6 +37,8 @@ bookmark_bar::mojom::BookmarkType ConvertType( + return bookmark_bar::mojom::BookmarkType::OTHER_NODE; + case bookmarks::BookmarkNode::MOBILE: + return bookmark_bar::mojom::BookmarkType::MOBILE; ++ case bookmarks::BookmarkNode::TABS_COLLECTION: ++ NOTREACHED(); + } + NOTREACHED(); + } diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_strings.grdp --- a/components/bookmark_bar_strings.grdp +++ b/components/bookmark_bar_strings.grdp diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 01f732f2..d9033c35 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.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/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 -@@ -129,6 +129,7 @@ found in the LICENSE file. +@@ -131,6 +131,7 @@ found in the LICENSE file. @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -3764,6 +3764,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3884,6 +3884,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -39,7 +39,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 -@@ -2602,6 +2602,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2638,6 +2638,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -957,6 +957,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -974,6 +974,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return false; } @@ -101,7 +101,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/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 -@@ -334,6 +334,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -338,6 +338,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); } diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 1b60bde0..d1945aa5 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -480,7 +480,12 @@ class TabGridViewBinder { +@@ -497,7 +497,12 @@ class TabGridViewBinder { if (result != null) { TabUtils.setDrawableAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else { @@ -29,7 +29,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -518,6 +523,7 @@ class TabGridViewBinder { +@@ -535,6 +540,7 @@ class TabGridViewBinder { */ private static void setFavicon( ImageView faviconView, PropertyModel model, @Nullable TabFavicon favicon) { @@ -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 -@@ -127,6 +127,9 @@ public class TabProperties { +@@ -129,6 +129,9 @@ public class TabProperties { public static final WritableBooleanPropertyKey FAVICON_FETCHED = new WritableBooleanPropertyKey(); @@ -50,7 +50,7 @@ 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<>(); -@@ -220,6 +223,7 @@ public class TabProperties { +@@ -223,6 +226,7 @@ public class TabProperties { CARD_TYPE, CONTENT_DESCRIPTION_TEXT_RESOLVER, ACTION_BUTTON_DESCRIPTION_TEXT_RESOLVER, @@ -58,7 +58,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser QUICK_DELETE_ANIMATION_STATUS, TAB_GROUP_COLOR_VIEW_PROVIDER, TAB_GROUP_CARD_COLOR, -@@ -259,6 +263,7 @@ public class TabProperties { +@@ -263,6 +267,7 @@ public class TabProperties { TAB_ACTION_BUTTON_DATA, FAVICON_FETCHED, FAVICON_FETCHER, @@ -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 -@@ -147,6 +147,7 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -150,6 +150,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; -@@ -641,7 +642,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -653,7 +654,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -112,8 +112,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting +import org.chromium.base.supplier.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.ObservableSupplierImpl; - import org.chromium.build.annotations.Nullable; -@@ -98,12 +99,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; + import org.chromium.build.annotations.NullMarked; +@@ -98,13 +99,27 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -126,6 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import java.util.List; /** Fragment to keep track of the all the privacy related preferences. */ + @NullMarked public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener { + implements Preference.OnPreferenceChangeListener, INeedSnackbarManager { @@ -141,7 +142,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"; -@@ -215,6 +230,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -216,6 +231,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -199,7 +200,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 -@@ -6194,6 +6194,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6146,6 +6146,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 77221faa..8976f1cf 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 -@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; +@@ -62,6 +62,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; - import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeManager; - import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; -@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity + import org.chromium.components.browser_ui.styles.SemanticColorUtils; + import org.chromium.components.browser_ui.util.AutomotiveUtils; +@@ -142,6 +143,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -119,15 +119,15 @@ 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 -@@ -69,6 +69,7 @@ import org.chromium.content_public.browser.WebContents; - import org.chromium.content_public.browser.WebContentsObserver; - import org.chromium.net.NetId; +@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.toolbar.ControlContainer; + import org.chromium.components.embedder_support.util.UrlConstants; + import org.chromium.content_public.browser.WebContents; import org.chromium.ui.LayoutInflaterUtils; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayUtil; import org.chromium.url.GURL; -@@ -491,7 +492,9 @@ public class WarmupManager { +@@ -472,7 +473,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 -@@ -791,7 +791,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -803,7 +803,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 -@@ -127,6 +127,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -130,6 +130,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.accessibility.AccessibilityState; @@ -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.util.ColorUtils; -@@ -4955,8 +4956,13 @@ public class StripLayoutHelper +@@ -5147,8 +5148,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(); @@ -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; -@@ -495,7 +496,10 @@ public class StripLayoutHelperManager +@@ -498,7 +499,10 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled( /* isTablet= */ true, DisplayUtil.isContextInDefaultDisplay(mContext)); @@ -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 -@@ -111,6 +111,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { +@@ -120,6 +120,14 @@ public class TabStripSceneLayer extends SceneOverlayLayer { if (mNativePtr == 0) return; final boolean visible = yOffset > -layoutHelper.getHeight(); @@ -252,15 +252,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java -@@ -16,6 +16,7 @@ import org.chromium.base.library_loader.LibraryProcessType; - import org.chromium.base.task.ChainedTasks; - import org.chromium.base.task.TaskTraits; +@@ -18,6 +18,7 @@ import org.chromium.base.task.TaskTraits; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; -@@ -106,6 +107,7 @@ public class ChromeBrowserInitializer { +@@ -109,6 +110,7 @@ public class ChromeBrowserInitializer { public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) { ThreadUtils.checkUiThread(); if (parts.isActivityFinishingOrDestroyed()) return; @@ -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 -@@ -747,7 +747,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -762,7 +762,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 -@@ -108,6 +108,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -107,6 +107,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -319,7 +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 -@@ -317,6 +317,7 @@ public final class ChromePreferenceKeys { +@@ -321,6 +321,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"; @@ -371,8 +371,8 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c --- a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java +++ b/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/chrome/browser/ui/desktop_windowing/AppHeaderCoordinator.java @@ -42,6 +42,7 @@ import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateMa - import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.ui.display.DisplayUtil; + import org.chromium.ui.edge_to_edge.EdgeToEdgeStateProvider; import org.chromium.ui.insets.CaptionBarInsetsRectProvider; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.insets.InsetObserver; @@ -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 -@@ -833,7 +833,7 @@ public class LocationBarCoordinator +@@ -862,7 +862,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,7 +401,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1531,6 +1531,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1483,6 +1483,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -422,24 +422,25 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/control_container android:id="@+id/control_container" android:layout_width="match_parent" android:layout_height="wrap_content" -- android:minHeight="@dimen/control_container_height" > -+ android:minHeight="@dimen/control_container_height_cromite" > +- android:minHeight="@dimen/control_container_height"> ++ android:minHeight="@dimen/control_container_height_cromite"> - + app:layout_anchorGravity="bottom" +- /> + android:layout_marginTop="@dimen/control_container_height_cromite" /> 2dp 64dp - + 72dp 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 -@@ -27,7 +27,7 @@ public interface ControlContainer { +@@ -26,7 +26,7 @@ public interface ControlContainer { * * @param toolbarLayoutId The ID of the toolbar layout to use. */ @@ -515,7 +516,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -163,8 +164,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -165,8 +166,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override @Initializer @@ -545,7 +546,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 -@@ -66,6 +66,7 @@ import org.chromium.chrome.browser.util.BrowserUiUtils.ModuleTypeOnStartAndNtp; +@@ -64,6 +64,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; @@ -553,7 +554,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; -@@ -594,7 +595,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -581,7 +582,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { 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 5526a633..46458afb 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 @@ -4,11 +4,11 @@ Subject: Add option to not persist tabs across sessions License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../android/java/res/xml/privacy_preferences.xml | 5 +++++ - .../chrome/browser/ChromeTabbedActivity.java | 5 ++++- - .../privacy/settings/PrivacySettings.java | 16 +++++++++++++++- - .../android/strings/android_chrome_strings.grd | 6 ++++++ - 4 files changed, 30 insertions(+), 2 deletions(-) + .../android/java/res/xml/privacy_preferences.xml | 5 +++++ + .../chrome/browser/ChromeTabbedActivity.java | 5 ++++- + .../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++- + .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ + 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml @@ -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; -@@ -2086,8 +2087,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2151,8 +2152,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -51,7 +51,7 @@ 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 -@@ -8,6 +8,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS +@@ -9,6 +9,7 @@ import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS import android.content.Context; import android.content.Intent; @@ -59,17 +59,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.SpannableString; -@@ -20,7 +21,9 @@ import android.view.View; - import androidx.annotation.VisibleForTesting; +@@ -22,6 +23,7 @@ import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; -+import org.chromium.base.BuildInfo; 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 +@@ -114,6 +116,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private final SharedPreferencesManager mSharedPreferencesManager = ChromeSharedPreferences.getInstance(); @@ -78,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private ManagedPreferenceDelegate mManagedPreferenceDelegate; @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; -@@ -381,7 +386,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -382,7 +386,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); @@ -91,7 +89,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)) { -@@ -441,6 +450,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -442,6 +450,11 @@ public class PrivacySettings extends ChromeBaseSettingsFragment getContext(), getProfile())); } @@ -106,7 +104,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 -@@ -2901,6 +2901,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2850,6 +2850,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d All tabs 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 142e4f0d..8dbd181d 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 -@@ -120,6 +120,9 @@ import java.util.Objects; - import java.util.Optional; +@@ -120,6 +120,9 @@ import java.util.Optional; import java.util.Set; + import java.util.function.Supplier; +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. -@@ -1035,9 +1038,15 @@ public class TabGridDialogMediator +@@ -1028,9 +1031,15 @@ public class TabGridDialogMediator return; } @@ -48,13 +48,13 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser assumeNonNull(mCurrentTabGroupModelFilterSupplier.get()), - UrlConstants.NTP_URL, + url, - currentTab.getId(), + tabsInGroup.get(tabsInGroup.size() - 1).getId(), TabLaunchType.FROM_TAB_GROUP_UI); RecordUserAction.record("MobileNewTabOpened." + mComponentName); diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; +@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingServiceFactory; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesConfig; import org.chromium.chrome.browser.data_sharing.ui.shared_image_tiles.SharedImageTilesCoordinator; import org.chromium.chrome.browser.layouts.LayoutStateProvider; @@ -97,9 +97,9 @@ diff --git a/chrome/android/java/res/xml/homepage_preferences.xml b/chrome/andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/TabGroupContextMenuCoordinator.java -@@ -75,6 +75,9 @@ import org.chromium.ui.text.EmptyTextWatcher; - import org.chromium.ui.widget.AnchoredPopupWindow.HorizontalOrientation; - import org.chromium.ui.widget.RectProvider; +@@ -84,6 +84,9 @@ import org.chromium.ui.widget.RectProvider; + + import java.util.function.Supplier; +import org.chromium.chrome.browser.homepage.HomepageManager; +import org.chromium.url.GURL; @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over /** * A coordinator for the context menu on the tab strip by long-pressing on the group titles. It is * responsible for creating a list of menu items, setting up the menu and displaying the menu. -@@ -215,9 +218,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina +@@ -228,9 +231,15 @@ public class TabGroupContextMenuCoordinator extends TabGroupOverflowMenuCoordina /* didCloseCallback= */ null); RecordUserAction.record("MobileToolbarTabGroupMenu.DeleteGroup"); } else if (menuId == R.id.open_new_tab_in_group) { @@ -127,7 +127,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/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -258,6 +258,22 @@ public class HomepageManager +@@ -257,6 +257,22 @@ public class HomepageManager notifyHomepageUpdated(); } @@ -170,8 +170,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/settin private HomepageManager mHomepageManager; private RadioButtonGroupHomepagePreference mRadioButtons; private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); -@@ -78,6 +81,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { - }); +@@ -102,6 +105,15 @@ public class HomepageSettings extends ChromeBaseSettingsFragment { + mRadioButtons.setOnHomepagePreferenceChangeListener(this::onRadioButtonGroupChanged); mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup()); + ChromeSwitchPreference mNTPIsHomepageSwitch = @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; +@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; @@ -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; -@@ -565,6 +566,13 @@ public class ChromeTabCreator extends TabCreator +@@ -569,6 +570,13 @@ public class ChromeTabCreator extends TabCreator */ public @Nullable Tab launchUrl( String url, @TabLaunchType int type, @Nullable 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 -@@ -330,6 +330,7 @@ public final class ChromePreferenceKeys { +@@ -334,6 +334,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 -@@ -1357,6 +1357,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1324,6 +1324,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -260,7 +260,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -111,6 +111,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -115,6 +115,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, pref_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 -@@ -1327,6 +1327,10 @@ inline constexpr char kPinSplitTabButton[] = "browser.pin_split_tab_button"; +@@ -1345,6 +1345,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = // 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 edd96ac0..3498b0b9 100644 --- a/build/patches/Add-search-engine.patch +++ b/build/patches/Add-search-engine.patch @@ -141,7 +141,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 -@@ -155,10 +155,7 @@ void RecordChoiceScreenDefaultSearchProviderType( +@@ -172,10 +172,7 @@ void RecordChoiceScreenDefaultSearchProviderType( } void RecordChoiceScreenSelectedIndex(int selected_engine_index) { @@ -212,17 +212,16 @@ diff --git a/components/search_engines/template_url_prepopulate_data.cc b/compon std::unique_ptr GetPrepopulatedEngine( PrefService& prefs, std::vector -@@ -159,11 +172,15 @@ std::vector> GetLocalPrepopulatedEngines( +@@ -159,10 +172,14 @@ std::vector> GetLocalPrepopulatedEngines( return std::vector>(); } -- return base::ToVector( +- return base::ToVector(regional_capabilities::GetPrepopulatedEngines( + std::vector> t_urls = -+ base::ToVector( - regional_capabilities::GetPrepopulatedEngines( - country_id, prefs, - regional_capabilities::SearchEngineListType::kTopFive), - &PrepopulatedEngineToTemplateURLData); ++ base::ToVector(regional_capabilities::GetPrepopulatedEngines( + country_id, prefs, + regional_capabilities::SearchEngineListType::kTopN), + &PrepopulatedEngineToTemplateURLData); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(googleen)); + t_urls.push_back(TemplateURLDataFromPrepopulatedEngine(duckduckgo_light)); + return t_urls; 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 eaf6982b..32726289 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 -@@ -262,6 +262,7 @@ chrome_java_sources = [ +@@ -264,6 +264,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", @@ -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; -@@ -2091,7 +2092,11 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2157,7 +2158,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 -@@ -2054,6 +2054,16 @@ +@@ -2036,6 +2036,16 @@ Delete browsing data @@ -354,7 +354,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -107,6 +107,7 @@ +@@ -108,6 +108,7 @@ #include "components/enterprise/data_controls/core/browser/features.h" #include "components/enterprise/obfuscation/core/utils.h" #include "components/error_page/common/error_page_switches.h" @@ -467,7 +467,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. ~content::BrowsingDataRemover::DATA_TYPE_AVOID_CLOSING_CONNECTIONS & ~constants::FILTERABLE_DATA_TYPES) == 0) || filter_builder->MatchesAllOriginsAndDomains()); -@@ -457,6 +458,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -453,6 +454,9 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( CreateTaskCompletionClosure(TracingDataType::kHistory), &history_task_tracker_); } @@ -477,7 +477,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. if (ClipboardRecentContent::GetInstance()) ClipboardRecentContent::GetInstance()->SuppressClipboardContent(); -@@ -565,6 +569,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -561,6 +565,11 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( // and SSL host state are scoped to hosts and represent them as std::string. // Rename the method to indicate its more general usage. if (profile_->GetSSLHostStateDelegate()) { @@ -489,7 +489,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. profile_->GetSSLHostStateDelegate()->Clear( filter_builder->MatchesAllOriginsAndDomains() ? base::RepeatingCallback() -@@ -593,9 +602,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -589,9 +598,13 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( } device_event_log::Clear(delete_begin_, delete_end_); @@ -503,7 +503,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1320,6 +1333,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1306,6 +1319,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -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 -@@ -550,6 +550,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -554,6 +554,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -574,7 +574,7 @@ diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/b diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1441,6 +1441,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1434,6 +1434,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -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_ || -@@ -2102,7 +2115,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2095,7 +2108,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 -@@ -1452,6 +1452,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1419,6 +1419,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 -@@ -2021,6 +2021,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2028,6 +2028,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -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 -@@ -212,7 +212,7 @@ class StateClearer : public BrowsingDataRemover::Observer { +@@ -262,7 +262,7 @@ class StateClearer : public BrowsingDataRemover::Observer { remove_mask &= ~BrowsingDataRemover::DATA_TYPE_PRIVACY_SANDBOX; remover->RemoveWithFilterAndReply( base::Time::Min(), base::Time::Max(), 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 f819090d..24d4048d 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 @@ -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 -@@ -105,6 +105,7 @@ found in the LICENSE file. +@@ -107,6 +107,7 @@ found in the LICENSE file. @@ -98,18 +98,18 @@ 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 -@@ -128,8 +128,9 @@ class ChromeContextMenuItem { - int PRINT_PAGE = 38; +@@ -132,8 +132,9 @@ class ChromeContextMenuItem { + int PRINT_PAGE = 40; // Developer Group - int INSPECT_ELEMENT = 39; -+ int FOLLOW_LINK = 40; + int INSPECT_ELEMENT = 41; ++ int FOLLOW_LINK = 42; // ALWAYS UPDATE! -- int NUM_ENTRIES = 40; -+ int NUM_ENTRIES = 41; +- int NUM_ENTRIES = 42; ++ int NUM_ENTRIES = 43; } /** Mapping from {@link Item} to the ID found in the ids.xml. */ -@@ -174,6 +175,7 @@ class ChromeContextMenuItem { +@@ -180,6 +181,7 @@ class ChromeContextMenuItem { R.id.contextmenu_share_page, // Item.SHARE_PAGE R.id.contextmenu_print_page, // Item.PRINT_PAGE R.id.contextmenu_inspect_element, // Item.INSPECT_ELEMENT @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr }; /** Mapping from {@link Item} to the ID of the string that describes the action of the item. */ -@@ -218,6 +220,7 @@ class ChromeContextMenuItem { +@@ -226,6 +228,7 @@ class ChromeContextMenuItem { R.string.contextmenu_share_page, // Item.SHARE_PAGE R.string.contextmenu_print_page, // Item.PRINT_PAGE R.string.contextmenu_inspect_element, // Item.INSPECT_ELEMENT @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -442,6 +442,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -447,6 +447,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } if (mParams.isAnchor()) { ModelList linkGroup = new ModelList(); @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr if (FirstRunStatus.getFirstRunFlowComplete() && !isEmptyUrl(mParams.getUrl()) && UrlUtilities.isAcceptedScheme(mParams.getUrl())) { -@@ -1026,6 +1029,8 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -1039,6 +1042,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 -@@ -369,6 +369,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -370,6 +370,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -168,7 +168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -419,6 +419,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -429,6 +429,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kTabGroupParityBottomSheetAndroid, &kTabModelInitFixes, &kTabStorageSqlitePrototype, @@ -179,7 +179,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -494,6 +494,8 @@ public abstract class ChromeFeatureList { +@@ -503,6 +503,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -188,7 +188,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = "NewTabPageCustomizationToolbarButton"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; -@@ -988,6 +990,8 @@ public abstract class ChromeFeatureList { +@@ -1035,6 +1037,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); -@@ -1228,6 +1232,7 @@ public abstract class ChromeFeatureList { +@@ -1289,6 +1293,7 @@ public abstract class ChromeFeatureList { sTopControlsRefactor, sTouchToSearchCallout, sTraceBinderIpc, @@ -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 -@@ -1596,6 +1596,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1548,6 +1548,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 -@@ -3237,6 +3243,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3189,6 +3195,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -344,7 +344,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third_party/blink/renderer/core/html/html_anchor_element.cc --- a/third_party/blink/renderer/core/html/html_anchor_element.cc +++ b/third_party/blink/renderer/core/html/html_anchor_element.cc -@@ -66,6 +66,7 @@ +@@ -67,6 +67,7 @@ #include "third_party/blink/renderer/core/loader/render_blocking_resource_manager.h" #include "third_party/blink/renderer/core/navigation_api/navigation_api.h" #include "third_party/blink/renderer/core/page/chrome_client.h" @@ -352,7 +352,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/scroll/scroll_into_view_util.h" #include "third_party/blink/renderer/core/speculation_rules/document_speculation_rules.h" -@@ -501,6 +502,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -467,6 +468,17 @@ void HTMLAnchorElementBase::NavigateToHyperlink( bool is_trusted, base::TimeTicks platform_time_stamp, KURL completed_url) { @@ -370,7 +370,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third LocalDOMWindow* window = GetDocument().domWindow(); if (!window) { return; -@@ -591,6 +603,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( +@@ -557,6 +569,15 @@ void HTMLAnchorElementBase::NavigateToHyperlink( frame_request.SetImpression(impression); } @@ -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; -@@ -634,7 +655,7 @@ Element* HTMLAnchorElementBase::InterestForElement() const { +@@ -600,7 +621,7 @@ Element* HTMLAnchorElementBase::InterestForElement() const { html_names::kInterestforAttr); } @@ -395,25 +395,25 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.cc b/third event.SetDefaultHandled(); LocalDOMWindow* window = GetDocument().domWindow(); -@@ -730,13 +751,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -658,13 +679,12 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { return; } -- base::OnceClosure navigate_closure = WTF::BindOnce( +- base::OnceClosure navigate_closure = blink::BindOnce( - &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this), - std::move(request), navigation_policy, event.isTrusted(), - event.PlatformTimeStamp(), std::move(completed_url)); - if (navigation_policy == kNavigationPolicyDownload || navigation_policy == kNavigationPolicyLinkPreview) { -+ base::OnceClosure navigate_closure = WTF::BindOnce( ++ base::OnceClosure navigate_closure = blink::BindOnce( + &HTMLAnchorElementBase::NavigateToHyperlink, WrapWeakPersistent(this), + std::move(request), navigation_policy, event.isTrusted(), + event.PlatformTimeStamp(), std::move(completed_url)); // We distinguish single/double click with some modifiers. // See the comment of `EventHandler.delayed_navigation_task_handle_`. auto task_handle = PostDelayedCancellableTask( -@@ -746,7 +766,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { +@@ -674,7 +694,9 @@ void HTMLAnchorElementBase::HandleClick(MouseEvent& event) { frame->GetEventHandler().SetDelayedNavigationTaskHandle( std::move(task_handle)); } else { @@ -459,7 +459,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/frame/attribution_src_loader.h" #include "third_party/blink/renderer/core/frame/deprecation/deprecation.h" #include "third_party/blink/renderer/core/frame/local_dom_window.h" -@@ -64,6 +65,7 @@ +@@ -65,6 +66,7 @@ #include "third_party/blink/renderer/core/media_type_names.h" #include "third_party/blink/renderer/core/page/chrome_client.h" #include "third_party/blink/renderer/core/page/page.h" @@ -467,7 +467,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ #include "third_party/blink/renderer/core/paint/timing/paint_timing.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/resize_observer/resize_observer_entry.h" -@@ -815,6 +817,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( +@@ -786,6 +788,21 @@ void HTMLImageElement::DidFinishLayout() { } } @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h --- a/third_party/blink/renderer/core/html/html_image_element.h +++ b/third_party/blink/renderer/core/html/html_image_element.h -@@ -215,6 +215,8 @@ class CORE_EXPORT HTMLImageElement +@@ -216,6 +216,8 @@ class CORE_EXPORT HTMLImageElement void DidAddUserAgentShadowRoot(ShadowRoot&) override; void AdjustStyle(ComputedStyleBuilder&) override; @@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_p diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/third_party/blink/renderer/core/page/context_menu_controller.cc --- a/third_party/blink/renderer/core/page/context_menu_controller.cc +++ b/third_party/blink/renderer/core/page/context_menu_controller.cc -@@ -200,14 +200,16 @@ void ContextMenuController::DocumentDetached(Document* document) { +@@ -200,15 +200,17 @@ void ContextMenuController::DocumentDetached(Document* document) { } } @@ -514,7 +514,8 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t + if (!base::FeatureList::IsEnabled(features::kShowAlwaysContextMenuOnLinks)) { + DCHECK(mouse_event->type() == event_type_names::kContextmenu); + } - LocalFrame* frame = mouse_event->target()->ToNode()->GetDocument().GetFrame(); + LocalFrame* frame = + mouse_event->RawTarget()->ToNode()->GetDocument().GetFrame(); PhysicalOffset location = PhysicalOffset::FromPointFRound(mouse_event->AbsoluteLocation()); @@ -524,7 +525,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t mouse_event->SetDefaultHandled(); } -@@ -432,7 +434,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( +@@ -433,7 +435,8 @@ bool ContextMenuController::ShouldShowContextMenuFromTouch( bool ContextMenuController::ShowContextMenu(LocalFrame* frame, const PhysicalOffset& point, WebMenuSourceType source_type, @@ -534,7 +535,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Displaying the context menu in this function is a big hack as we don't // have context, i.e. whether this is being invoked via a script or in // response to user input (Mouse event WM_RBUTTONDOWN, -@@ -455,6 +458,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -456,6 +459,16 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, if (!result.InnerNodeOrImageMapImage()) return false; @@ -551,7 +552,7 @@ diff --git a/third_party/blink/renderer/core/page/context_menu_controller.cc b/t // Clear any previously set cached results if we are resetting the hit test // result. image_selection_cached_result_ = nullptr; -@@ -825,7 +838,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, +@@ -837,7 +850,7 @@ bool ContextMenuController::ShowContextMenu(LocalFrame* frame, SetAutofillData(result.InnerNode(), data); diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index ccfccada..b95565e2 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 -@@ -166,6 +166,7 @@ +@@ -169,6 +169,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" @@ -88,7 +88,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components diff --git a/components/feature_engagement/public/feature_configurations.cc b/components/feature_engagement/public/feature_configurations.cc --- a/components/feature_engagement/public/feature_configurations.cc +++ b/components/feature_engagement/public/feature_configurations.cc -@@ -11,6 +11,7 @@ +@@ -6,6 +6,7 @@ #include "base/strings/string_util.h" #include "build/build_config.h" @@ -96,7 +96,7 @@ diff --git a/components/feature_engagement/public/feature_configurations.cc b/co #include "components/feature_engagement/public/configuration.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/feature_constants.h" -@@ -118,6 +119,12 @@ std::optional GetClientSideFeatureConfig( +@@ -113,6 +114,12 @@ std::optional GetClientSideFeatureConfig( } #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch index 4270e024..4756ba12 100644 --- a/build/patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/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; @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.SettingsFragment; -@@ -469,8 +470,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -485,8 +486,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { diff --git a/build/patches/Add-support-for-writing-URIs.patch b/build/patches/Add-support-for-writing-URIs.patch index 821d598b..49836eb4 100644 --- a/build/patches/Add-support-for-writing-URIs.patch +++ b/build/patches/Add-support-for-writing-URIs.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/android/content_uri_utils.cc b/base/android/content_uri_utils.cc --- a/base/android/content_uri_utils.cc +++ b/base/android/content_uri_utils.cc -@@ -136,6 +136,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, +@@ -137,6 +137,16 @@ void JNI_ContentUriUtils_AddFileInfoToVector(JNIEnv* env, Time::FromMillisecondsSinceUnixEpoch(last_modified)); } diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index 86a1d176..ebcfe814 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -52,7 +52,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -65,8 +65,8 @@ new file mode 100644 +public class BromiteWebGLContentSetting extends BromiteCustomContentSetting { + public BromiteWebGLContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.WEBGL, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "webgl", + /*profilePrefKey*/ "webgl"); @@ -85,11 +85,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_webgl_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_webgl_disabled; + default: + return 0; @@ -117,8 +117,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/webgl.grdp b/components/browser_ui/strings/bromite_content_settings/webgl.grdp @@ -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('.'); -@@ -693,6 +681,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -694,6 +682,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 -@@ -1951,6 +1951,8 @@ class MODULES_EXPORT WebGLRenderingContextBase +@@ -1959,6 +1959,8 @@ class MODULES_EXPORT WebGLRenderingContextBase DOMArrayBufferView* pixels, int64_t offset); diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index b6e5800f..d981ed2d 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -49,7 +49,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -62,8 +62,8 @@ new file mode 100644 +public class BromiteWebRTCContentSetting extends BromiteCustomContentSetting { + public BromiteWebRTCContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.WEBRTC, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "webrtc", + /*profilePrefKey*/ "webrtc"); @@ -82,11 +82,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_webrtc_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_webrtc_disabled; + default: + // this will cause a runtime exception @@ -115,8 +115,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/webrtc.grdp b/components/browser_ui/strings/bromite_content_settings/webrtc.grdp @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -1062,6 +1063,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1023,6 +1024,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // |request_multiple_routes|. Whether local IP addresses could be // collected depends on if mic/camera permission is granted for this // origin. @@ -220,7 +220,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" -@@ -288,6 +291,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -287,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -248,7 +248,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" -@@ -1035,6 +1038,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1034,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index fb54dbe0..e8189610 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -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 -@@ -1496,6 +1496,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1516,6 +1516,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( -@@ -1509,6 +1510,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1529,6 +1530,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 -@@ -16153,12 +16153,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16185,12 +16185,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -308,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 -@@ -494,14 +494,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -501,14 +501,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -351,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 -@@ -1240,6 +1240,7 @@ interface NetworkContext { +@@ -1264,6 +1264,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -359,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, -@@ -1247,6 +1248,7 @@ interface NetworkContext { +@@ -1271,6 +1272,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -367,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, -@@ -1257,6 +1259,7 @@ interface NetworkContext { +@@ -1281,6 +1283,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`. @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1344,6 +1345,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1356,6 +1357,7 @@ void ContentSecurityPolicy::ReportViolation( ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) { return; } @@ -394,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); -@@ -1351,6 +1353,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1363,6 +1365,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -413,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" -@@ -2836,9 +2837,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2860,9 +2861,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/core/frame/reporting_context.h b/third_p diff --git a/third_party/blink/renderer/core/frame/reporting_observer.cc b/third_party/blink/renderer/core/frame/reporting_observer.cc --- a/third_party/blink/renderer/core/frame/reporting_observer.cc +++ b/third_party/blink/renderer/core/frame/reporting_observer.cc -@@ -62,8 +62,7 @@ void ReportingObserver::QueueReport(Report* report) { +@@ -61,8 +61,7 @@ void ReportingObserver::QueueReport(Report* report) { } bool ReportingObserver::ObservedType(const String& type) { diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 84dd6e1a..ea83f0b0 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -24,7 +24,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 -@@ -819,7 +819,6 @@ if (_is_default_toolchain) { +@@ -820,7 +820,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", @@ -65,7 +65,7 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -319,7 +319,7 @@ void PrepareFactory( +@@ -324,7 +324,7 @@ void PrepareFactory( policy::BrowserPolicyConnector* policy_connector) { factory->SetManagedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector); @@ -77,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 -@@ -471,7 +471,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { +@@ -476,7 +476,7 @@ bool ProfileAttributesEntry::IsSigninRequired() const { } std::string ProfileAttributesEntry::GetSupervisedUserId() const { @@ -89,7 +89,7 @@ diff --git a/chrome/browser/profiles/profile_attributes_entry.cc b/chrome/browse diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -684,10 +684,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -683,10 +683,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1623,6 +1619,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1192,10 +1192,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1190,10 +1190,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile } void ProfileManager::RegisterTestingProfile(std::unique_ptr profile, -@@ -1962,9 +1958,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1955,9 +1951,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -160,7 +160,7 @@ diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/w diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrome/browser/ui/webui/management/management_ui_handler.cc --- a/chrome/browser/ui/webui/management/management_ui_handler.cc +++ b/chrome/browser/ui/webui/management/management_ui_handler.cc -@@ -617,10 +617,6 @@ bool ManagementUIHandler::managed() const { +@@ -623,10 +623,6 @@ bool ManagementUIHandler::managed() const { void ManagementUIHandler::RegisterPrefChange( PrefChangeRegistrar& pref_registrar) { @@ -174,7 +174,7 @@ diff --git a/chrome/browser/ui/webui/management/management_ui_handler.cc b/chrom diff --git a/components/supervised_user/core/browser/supervised_user_pref_store.cc b/components/supervised_user/core/browser/supervised_user_pref_store.cc --- a/components/supervised_user/core/browser/supervised_user_pref_store.cc +++ b/components/supervised_user/core/browser/supervised_user_pref_store.cc -@@ -175,6 +175,7 @@ void SupervisedUserPrefStore::OnNewContentFiltersStateAvailable( +@@ -172,6 +172,7 @@ void SupervisedUserPrefStore::OnNewContentFiltersStateAvailable( void SupervisedUserPrefStore::OnNewSettingsAvailable( const base::Value::Dict& settings) { @@ -185,7 +185,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_pref_store. diff --git a/components/supervised_user/core/browser/supervised_user_preferences.cc b/components/supervised_user/core/browser/supervised_user_preferences.cc --- a/components/supervised_user/core/browser/supervised_user_preferences.cc +++ b/components/supervised_user/core/browser/supervised_user_preferences.cc -@@ -164,6 +164,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -160,6 +160,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { } void EnableParentalControls(PrefService& pref_service) { @@ -196,7 +196,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_preferences pref_service.SetString(prefs::kSupervisedUserId, supervised_user::kChildAccountSUID); #if BUILDFLAG(IS_CHROMEOS) -@@ -197,7 +201,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { +@@ -187,7 +191,7 @@ bool IsSafeSitesEnabled(const PrefService& pref_service) { } bool IsSubjectToParentalControls(const PrefService& pref_service) { @@ -208,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 -@@ -249,6 +249,7 @@ SupervisedUserService::SupervisedUserService( +@@ -248,6 +248,7 @@ SupervisedUserService::SupervisedUserService( } void SupervisedUserService::SetSettingsServiceActive(bool active) { @@ -227,7 +227,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_WIN) const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -170,4 +169,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { +@@ -164,4 +163,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { #endif diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 0b428b3e..96462a46 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -24,9 +24,9 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( std::optional enabled_track_id) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3683,7 +3689,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { - : HasAudio(); +@@ -3679,7 +3685,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { + const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured(); // Audio only stream is allowed to play when in background. - if (!HasVideo() && preserve_audio) + //pipeline_metadata_.has_video is true for MediaPlayerRenderer, @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.h b/third_party/blink/renderer/platform/media/web_media_player_impl.h --- a/third_party/blink/renderer/platform/media/web_media_player_impl.h +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.h -@@ -211,6 +211,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl +@@ -212,6 +212,9 @@ class PLATFORM_EXPORT WebMediaPlayerImpl bool HasVideo() const override; bool HasAudio() const override; diff --git a/build/patches/Always-open-browser-controls-in-new-tab.patch b/build/patches/Always-open-browser-controls-in-new-tab.patch index 5ce766ce..bba6ccd1 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -10,15 +10,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -24,6 +24,7 @@ import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.supplier.Supplier; +@@ -23,6 +23,7 @@ import org.chromium.base.PackageManagerUtils; + import org.chromium.base.metrics.RecordUserAction; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpenerImpl; -@@ -43,6 +44,7 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -42,6 +43,7 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.price_tracking.PriceDropNotificationManagerFactory; import org.chromium.chrome.browser.printing.TabPrinter; import org.chromium.chrome.browser.profiles.Profile; @@ -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; -@@ -303,6 +305,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -304,6 +306,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Nullable 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()); -@@ -323,6 +326,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -324,6 +327,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { * @param url The URL to open. */ public void onOpenInNewTabInGroup(GURL url, @Nullable 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 c4b3e395..336a8f39 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 @@ -7,19 +7,19 @@ Ignore any partner-provided home page. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../org/chromium/chrome/browser/homepage/HomepageManager.java | 4 ---- - .../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 1 + + .../chrome/browser/new_tab_url/DseNewTabUrlManager.java | 2 +- .../partnerbookmarks/PartnerBookmarksProviderIterator.java | 1 + .../partnercustomizations/PartnerBrowserCustomizations.java | 2 +- .../org/chromium/components/search_engines/TemplateUrl.java | 1 + .../search_engines/android/template_url_service_android.cc | 1 + .../always-use-new-tab-page-for-default-home-page.inc | 1 + - 7 files changed, 6 insertions(+), 5 deletions(-) + 7 files changed, 6 insertions(+), 6 deletions(-) create mode 100755 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/always-use-new-tab-page-for-default-home-page.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/homepage/HomepageManager.java -@@ -160,10 +160,6 @@ public class HomepageManager +@@ -159,10 +159,6 @@ public class HomepageManager * tab page if the homepage button is force enabled via flag. */ public GURL getDefaultHomepageGurl() { @@ -33,14 +33,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/homepage/Homepa diff --git a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/new_tab_url/DseNewTabUrlManager.java -@@ -60,6 +60,7 @@ public class DseNewTabUrlManager { +@@ -59,7 +59,7 @@ public class DseNewTabUrlManager { /** Returns whether the feature NewTabSearchEngineUrlAndroid is enabled. */ public static boolean isNewTabSearchEngineUrlAndroidEnabled() { -+ if ((true)) return false; - return ChromeSharedPreferences.getInstance() - .readBoolean(ChromePreferenceKeys.IS_EEA_CHOICE_COUNTRY, false) - || (OmniboxFeatures.sOmniboxMobileParityUpdate.isEnabled() +- return true; ++ return false; + } + + /** diff --git a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java --- a/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java +++ b/chrome/browser/partnerbookmarks/android/java/src/org/chromium/chrome/browser/partnerbookmarks/PartnerBookmarksProviderIterator.java diff --git a/build/patches/Android-Pixel-Perfect-Mode.patch b/build/patches/Android-Pixel-Perfect-Mode.patch index 7bba0c3e..7033c494 100644 --- a/build/patches/Android-Pixel-Perfect-Mode.patch +++ b/build/patches/Android-Pixel-Perfect-Mode.patch @@ -36,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/ChromeBaseSettingsFragment.java | 4 ++ .../Pixel-perfect-mode.grdp | 9 ++++ .../common/interventions_features.cc | 1 + - components/input/BUILD.gn | 1 + + components/input/BUILD.gn | 2 + components/input/android_input_helper.cc | 2 +- components/input/child_frame_input_helper.cc | 2 +- components/input/input_router_impl.cc | 2 +- @@ -109,7 +109,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/display/mojom/screen_info_mojom_traits.h | 4 ++ ui/display/screen_info.h | 1 + ui/events/blink/blink_event_util.cc | 2 +- - 99 files changed, 533 insertions(+), 140 deletions(-) + 99 files changed, 534 insertions(+), 140 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sPixelPerfect.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Pixel-perfect-mode.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Pixel-perfect-mode.inc @@ -131,7 +131,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw diff --git a/cc/input/input_handler.cc b/cc/input/input_handler.cc --- a/cc/input/input_handler.cc +++ b/cc/input/input_handler.cc -@@ -670,7 +670,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( +@@ -679,7 +679,7 @@ InputHandlerPointerResult InputHandler::MouseMoveAt( return result; } @@ -176,20 +176,20 @@ diff --git a/cc/layers/viewport.cc b/cc/layers/viewport.cc diff --git a/cc/mojo_embedder/viz_layer_context.cc b/cc/mojo_embedder/viz_layer_context.cc --- a/cc/mojo_embedder/viz_layer_context.cc +++ b/cc/mojo_embedder/viz_layer_context.cc -@@ -1242,7 +1242,7 @@ void VizLayerContext::SetVisible(bool visible) { +@@ -1249,7 +1249,7 @@ void VizLayerContext::SetVisible(bool visible) { service_->SetVisible(visible); } --void VizLayerContext::UpdateDisplayTreeFrom( -+void VizLayerContext::UpdateDisplayTreeFrom( // POI +-base::TimeTicks VizLayerContext::UpdateDisplayTreeFrom( ++base::TimeTicks VizLayerContext::UpdateDisplayTreeFrom( // POI LayerTreeImpl& tree, viz::ClientResourceProvider& resource_provider, viz::RasterContextProvider& context_provider, diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc --- a/cc/trees/commit_state.cc +++ b/cc/trees/commit_state.cc -@@ -25,6 +25,7 @@ CommitState::CommitState(const CommitState& prev) - external_page_scale_factor(prev.external_page_scale_factor), +@@ -26,6 +26,7 @@ CommitState::CommitState(const CommitState& prev) + load_progress(prev.load_progress), max_page_scale_factor(prev.max_page_scale_factor), min_page_scale_factor(prev.min_page_scale_factor), + browser_control_scale_factor(prev.browser_control_scale_factor), @@ -199,8 +199,8 @@ diff --git a/cc/trees/commit_state.cc b/cc/trees/commit_state.cc diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h --- a/cc/trees/commit_state.h +++ b/cc/trees/commit_state.h -@@ -93,6 +93,7 @@ struct CC_EXPORT CommitState { - float external_page_scale_factor = 1.f; +@@ -94,6 +94,7 @@ struct CC_EXPORT CommitState { + float load_progress = 0.f; float max_page_scale_factor = 1.f; float min_page_scale_factor = 1.f; + float browser_control_scale_factor = 1.f; @@ -210,7 +210,7 @@ diff --git a/cc/trees/commit_state.h b/cc/trees/commit_state.h diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc --- a/cc/trees/layer_tree_host.cc +++ b/cc/trees/layer_tree_host.cc -@@ -1347,7 +1347,7 @@ void LayerTreeHost::SetEventListenerProperties( +@@ -1348,7 +1348,7 @@ void LayerTreeHost::SetEventListenerProperties( SetNeedsCommit(); } @@ -219,7 +219,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc const gfx::Rect& device_viewport_rect, float device_scale_factor, const viz::LocalSurfaceId& local_surface_id_from_parent) { -@@ -1458,9 +1458,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { +@@ -1468,9 +1468,11 @@ void LayerTreeHost::SetOverscrollBehavior(const OverscrollBehavior& behavior) { void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -231,7 +231,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc pending_commit_state()->max_page_scale_factor == max_page_scale_factor) return; DCHECK_GE(page_scale_factor, min_page_scale_factor); -@@ -1476,6 +1478,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, +@@ -1486,6 +1488,7 @@ void LayerTreeHost::SetPageScaleFactorAndLimits(float page_scale_factor, pending_commit_state()->page_scale_factor = page_scale_factor; pending_commit_state()->min_page_scale_factor = min_page_scale_factor; @@ -242,7 +242,7 @@ diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h --- a/cc/trees/layer_tree_host.h +++ b/cc/trees/layer_tree_host.h -@@ -565,6 +565,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -566,6 +566,7 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { void SetPageScaleFactorAndLimits(float page_scale_factor, float min_page_scale_factor, @@ -250,7 +250,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h float max_page_scale_factor); float page_scale_factor() const { return pending_commit_state()->page_scale_factor; -@@ -572,6 +573,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { +@@ -573,6 +574,9 @@ class CC_EXPORT LayerTreeHost : public MutatorHostClient { float min_page_scale_factor() const { return pending_commit_state()->min_page_scale_factor; } @@ -263,7 +263,7 @@ diff --git a/cc/trees/layer_tree_host.h b/cc/trees/layer_tree_host.h diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -2472,7 +2472,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { +@@ -2497,7 +2497,7 @@ viz::RegionCaptureBounds LayerTreeHostImpl::CollectRegionCaptureBounds() { return bounds; } @@ -272,7 +272,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc viz::CompositorFrameMetadata metadata; if (settings().trees_in_viz_in_viz_process) { // In TreesInViz mode, this function is called in client process already, -@@ -2639,7 +2639,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { +@@ -2664,7 +2664,7 @@ viz::CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() { return metadata; } @@ -284,7 +284,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc --- a/cc/trees/layer_tree_impl.cc +++ b/cc/trees/layer_tree_impl.cc -@@ -161,6 +161,7 @@ LayerTreeImpl::LayerTreeImpl( +@@ -160,6 +160,7 @@ LayerTreeImpl::LayerTreeImpl( background_color_(SkColors::kTransparent), page_scale_factor_(page_scale_factor), min_page_scale_factor_(0), @@ -292,7 +292,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_(0), external_page_scale_factor_(1.f), device_scale_factor_(1.f), -@@ -451,7 +452,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( +@@ -449,7 +450,7 @@ void LayerTreeImpl::InvalidateRasterInducingScrolls( } } @@ -301,7 +301,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (!InnerViewportScrollNode()) return; -@@ -526,8 +527,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { +@@ -524,8 +525,13 @@ void LayerTreeImpl::UpdateViewportContainerSizes() { // Adjust the outer viewport container as well, since adjusting only the // inner may cause its bounds to exceed those of the outer, causing scroll // clamping. @@ -317,7 +317,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc property_trees->SetOuterViewportContainerBoundsDelta(scaled_bounds_delta); // outer_viewport_container_bounds_delta and -@@ -823,6 +829,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { +@@ -821,6 +827,7 @@ void LayerTreeImpl::PullLayerTreePropertiesFrom(CommitState& commit_state) { PushPageScaleFromMainThread(commit_state.page_scale_factor, commit_state.min_page_scale_factor, @@ -325,7 +325,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc commit_state.max_page_scale_factor); SetBrowserControlsParams(commit_state.browser_controls_params); -@@ -934,6 +941,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { +@@ -930,6 +937,7 @@ void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { // Active tree already shares the page_scale_factor object with pending // tree so only the limits need to be provided. target_tree->PushPageScaleFactorAndLimits(nullptr, min_page_scale_factor(), @@ -333,7 +333,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor()); target_tree->SetExternalPageScaleFactor(external_page_scale_factor_); -@@ -1315,19 +1323,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { +@@ -1311,19 +1319,21 @@ void LayerTreeImpl::SetPageScaleOnActiveTree(float active_page_scale) { void LayerTreeImpl::PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -357,7 +357,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (changed_page_scale) { DidUpdatePageScale(); -@@ -1336,12 +1346,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( +@@ -1332,12 +1342,13 @@ void LayerTreeImpl::SetPageScaleFactorAndLimitsForDisplayTree( void LayerTreeImpl::PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -372,7 +372,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc if (page_scale_factor) { DCHECK(!IsActiveTree() || !host_impl_->pending_tree()); -@@ -1446,12 +1457,15 @@ void LayerTreeImpl::PushBrowserControls( +@@ -1454,12 +1465,15 @@ void LayerTreeImpl::PushBrowserControls( } bool LayerTreeImpl::SetPageScaleFactorLimits(float min_page_scale_factor, @@ -388,7 +388,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc max_page_scale_factor_ = max_page_scale_factor; return true; -@@ -2357,7 +2371,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { +@@ -2365,7 +2379,7 @@ ScrollbarSet LayerTreeImpl::ScrollbarsFor(ElementId scroll_element_id) const { return scrollbars; } @@ -397,7 +397,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc const gfx::PointF& screen_space_point, const gfx::Transform& local_space_to_screen_space_transform, const gfx::Rect& local_space_rect, -@@ -2943,7 +2957,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( +@@ -2951,7 +2965,7 @@ static gfx::SelectionBound ComputeViewportSelectionBound( return viewport_bound; } @@ -409,7 +409,7 @@ diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h --- a/cc/trees/layer_tree_impl.h +++ b/cc/trees/layer_tree_impl.h -@@ -380,6 +380,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -378,6 +378,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleOnActiveTree(float active_page_scale); void PushPageScaleFromMainThread(float page_scale_factor, float min_page_scale_factor, @@ -417,7 +417,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); const LayerSelection& selection() const { return selection_; } float current_page_scale_factor() const { -@@ -387,7 +388,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -385,7 +386,7 @@ class CC_EXPORT LayerTreeImpl { } float min_page_scale_factor() const { return min_page_scale_factor_; } float max_page_scale_factor() const { return max_page_scale_factor_; } @@ -426,7 +426,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float page_scale_delta() const { return page_scale_factor()->Delta(); } SyncedScale* page_scale_factor(); -@@ -849,6 +850,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -838,6 +839,7 @@ class CC_EXPORT LayerTreeImpl { void SetPageScaleFactorAndLimitsForDisplayTree(float page_scale_factor, float min_page_scale_factor, @@ -434,7 +434,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); LayerTreeHostImpl* host_impl() { return host_impl_; } -@@ -873,8 +875,10 @@ class CC_EXPORT LayerTreeImpl { +@@ -862,8 +864,10 @@ class CC_EXPORT LayerTreeImpl { float ClampPageScaleFactorToLimits(float page_scale_factor) const; void PushPageScaleFactorAndLimits(const float* page_scale_factor, float min_page_scale_factor, @@ -445,7 +445,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h float max_page_scale_factor); void DidUpdatePageScale(); void PushBrowserControls(const float* top_controls_shown_ratio, -@@ -913,6 +917,7 @@ class CC_EXPORT LayerTreeImpl { +@@ -902,6 +906,7 @@ class CC_EXPORT LayerTreeImpl { scoped_refptr page_scale_factor_; float min_page_scale_factor_; @@ -456,7 +456,7 @@ diff --git a/cc/trees/layer_tree_impl.h b/cc/trees/layer_tree_impl.h diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc --- a/cc/trees/property_tree.cc +++ b/cc/trees/property_tree.cc -@@ -1587,7 +1587,7 @@ void ScrollTree::clear() { +@@ -1597,7 +1597,7 @@ void ScrollTree::clear() { #endif } @@ -465,7 +465,7 @@ diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc const ScrollNode* scroll_node = Node(scroll_node_id); gfx::SizeF scroll_bounds = this->scroll_bounds(scroll_node_id); -@@ -2079,7 +2079,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, +@@ -2116,7 +2116,7 @@ gfx::Vector2dF ScrollTree::ScrollBy(const ScrollNode& scroll_node, return old_offset + scroll - new_offset; } @@ -489,7 +489,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr 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 -@@ -321,7 +321,7 @@ public class WarmupManager { +@@ -302,7 +302,7 @@ public class WarmupManager { int height = bounds.bottom - bounds.top; webContents = tab.getWebContents(); assumeNonNull(webContents); @@ -501,7 +501,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.j 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 -@@ -36,6 +36,9 @@ import androidx.annotation.NonNull; +@@ -39,6 +39,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; @@ -510,8 +510,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv + import org.chromium.base.ActivityState; import org.chromium.base.ApplicationStatus; - import org.chromium.base.BuildInfo; -@@ -516,7 +519,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity + import org.chromium.base.Callback; +@@ -528,7 +531,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Ensure that mConfig is initialized before tablet mode changes. mConfig = getResources().getConfiguration(); @@ -541,7 +541,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/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -929,7 +929,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -953,7 +953,7 @@ public class CompositorViewHolder extends FrameLayout int viewportInsets = controlsInsets + keyboardInset; if (isAttachedToWindow(view)) { @@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp // Dispatch the geometrychange JavaScript event to the page. // TODO(bokan): This doesn't belong in updateWebContentsSize. Ideally the content/ layer -@@ -949,7 +949,7 @@ public class CompositorViewHolder extends FrameLayout +@@ -973,7 +973,7 @@ public class CompositorViewHolder extends FrameLayout MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); @@ -562,7 +562,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java -@@ -617,7 +617,7 @@ public class OverlayPanelContent { +@@ -618,7 +618,7 @@ public class OverlayPanelContent { OverlayPanelContentJni.get() .onPhysicalBackingSizeChanged( mNativeOverlayPanelContentPtr, webContents, mContentViewWidth, viewHeight); @@ -574,7 +574,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bott diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -1869,7 +1869,7 @@ class TabImpl implements Tab { +@@ -1870,7 +1870,7 @@ class TabImpl implements Tab { // so that next onShow() call won't send a resize message with zero size // to the renderer process. This prevents the size fluttering that may confuse // Blink and break rendered result (see http://crbug.com/340987). @@ -583,7 +583,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav if (bounds != null) { assert mNativeTabAndroid != 0; -@@ -2243,7 +2243,7 @@ class TabImpl implements Tab { +@@ -2244,7 +2244,7 @@ class TabImpl implements Tab { Supplier compositorViewHolderSupplier = assumeNonNull(getActivity()).getCompositorViewHolderSupplier(); View compositorView = compositorViewHolderSupplier.get(); @@ -595,7 +595,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tracing/settings/DeveloperSettings.java -@@ -25,12 +25,14 @@ import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; +@@ -23,12 +23,14 @@ import org.chromium.chrome.browser.settings.ChromeBaseSettingsFragment; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.chrome.browser.util.PlatformUtil; @@ -610,7 +610,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting // Non-translated strings: private static final String MSG_DEVELOPER_OPTIONS_TITLE = "Developer options"; -@@ -82,6 +84,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb +@@ -80,6 +82,14 @@ public class DeveloperSettings extends ChromeBaseSettingsFragment implements Emb // handle the click so the default action isn't triggered. return true; }); @@ -701,7 +701,7 @@ new file mode 100644 diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java -@@ -46,6 +46,10 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa +@@ -107,6 +107,10 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa mRequireRestartDelegateSupplier = delegate; } @@ -740,10 +740,11 @@ diff --git a/components/fingerprinting_protection_filter/interventions/common/in diff --git a/components/input/BUILD.gn b/components/input/BUILD.gn --- a/components/input/BUILD.gn +++ b/components/input/BUILD.gn -@@ -101,6 +101,7 @@ component("input") { +@@ -101,6 +101,8 @@ component("input") { "//ui/events:gesture_detection", "//ui/events/blink", "//ui/events/gestures/blink", ++ "//content/public/common:buildflags", + "//tools/v8_context_snapshot:buildflags", ] if (use_aura) { @@ -775,7 +776,7 @@ diff --git a/components/input/child_frame_input_helper.cc b/components/input/chi diff --git a/components/input/input_router_impl.cc b/components/input/input_router_impl.cc --- a/components/input/input_router_impl.cc +++ b/components/input/input_router_impl.cc -@@ -652,7 +652,7 @@ bool InputRouterImpl::IsAutoscrollInProgress() { +@@ -655,7 +655,7 @@ bool InputRouterImpl::IsAutoscrollInProgress() { return client_->IsAutoscrollInProgress(); } @@ -795,7 +796,7 @@ diff --git a/components/input/render_widget_host_input_event_router.cc b/compone #include "components/input/cursor_manager.h" #include "components/input/features.h" #include "components/input/touch_emulator.h" -@@ -580,6 +581,8 @@ RenderWidgetTargetResult RenderWidgetHostInputEventRouter::FindViewAtLocation( +@@ -581,6 +582,8 @@ RenderWidgetTargetResult RenderWidgetHostInputEventRouter::FindViewAtLocation( return {root_view, /*should_query_view=*/false, *transformed_point}; } float device_scale_factor = root_view->GetDeviceScaleFactor(); @@ -804,7 +805,7 @@ diff --git a/components/input/render_widget_host_input_event_router.cc b/compone DCHECK_GT(device_scale_factor, 0.0f); gfx::PointF point_in_pixels = gfx::ConvertPointToPixels(point, device_scale_factor); -@@ -1647,7 +1650,7 @@ bool IsPinchCurrentlyAllowedInTarget(RenderWidgetHostViewInput* target) { +@@ -1649,7 +1652,7 @@ bool IsPinchCurrentlyAllowedInTarget(RenderWidgetHostViewInput* target) { } // namespace @@ -905,7 +906,7 @@ diff --git a/components/viz/service/input/render_input_router_support_child_fram diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/viz/service/layers/layer_context_impl.cc --- a/components/viz/service/layers/layer_context_impl.cc +++ b/components/viz/service/layers/layer_context_impl.cc -@@ -1781,7 +1781,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( +@@ -1802,7 +1802,7 @@ base::expected LayerContextImpl::DoUpdateDisplayTree( return base::unexpected("Invalid page scale factors"); } layers.SetPageScaleFactorAndLimitsForDisplayTree( @@ -917,7 +918,7 @@ diff --git a/components/viz/service/layers/layer_context_impl.cc b/components/vi diff --git a/content/browser/android/selection/selection_popup_controller.cc b/content/browser/android/selection/selection_popup_controller.cc --- a/content/browser/android/selection/selection_popup_controller.cc +++ b/content/browser/android/selection/selection_popup_controller.cc -@@ -179,7 +179,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( +@@ -192,7 +192,7 @@ void SelectionPopupController::MoveRangeSelectionExtent( web_contents_impl->MoveRangeSelectionExtent(gfx::ToRoundedPoint(extent)); } @@ -926,12 +927,12 @@ diff --git a/content/browser/android/selection/selection_popup_controller.cc b/c const gfx::PointF& base, const gfx::PointF& extent) { auto* web_contents_impl = static_cast(web_contents()); -@@ -300,7 +300,8 @@ bool SelectionPopupController::ShowSelectionMenu( - is_password_type, jselected_text, params.selection_start_offset, +@@ -325,7 +325,8 @@ bool SelectionPopupController::ShowSelectionMenu( can_select_all, can_edit_richly, should_suggest, static_cast(params.source_type), -- render_frame_host->GetJavaRenderFrameHost()); -+ render_frame_host->GetJavaRenderFrameHost(), + render_frame_host->GetJavaRenderFrameHost(), +- menu_model_bridge_->GetJavaObject()); ++ menu_model_bridge_->GetJavaObject(), + base::FeatureList::IsEnabled(features::kPixelPerfect)); return true; } @@ -1006,7 +1007,7 @@ diff --git a/content/browser/renderer_host/input/touch_selection_controller_clie 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 -@@ -9260,7 +9260,7 @@ void RenderFrameHostImpl::ShowPopupMenu( +@@ -9268,7 +9268,7 @@ void RenderFrameHostImpl::ShowPopupMenu( #endif } @@ -1067,7 +1068,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ // If we do not have a valid viz::LocalSurfaceId then we are a child frame // waiting on the id to be propagated from our parent. We cannot create a hash -@@ -3987,7 +4009,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( +@@ -3990,7 +4012,7 @@ void RenderWidgetHostImpl::IntrinsicSizingInfoChanged( // porting drag-and-drop calls to Mojo, so that RenderWidgetHostImpl bypasses // RenderWidget to talk the the WebFrameWidget and needs to perform the scale // operation itself. @@ -1079,15 +1080,15 @@ diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -83,6 +83,7 @@ +@@ -85,6 +85,7 @@ #include "content/public/browser/render_widget_host_iterator.h" #include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" +#include "content/public/common/content_features.h" #include "third_party/blink/public/mojom/input/input_handler.mojom.h" + #include "third_party/perfetto/include/perfetto/tracing/track.h" #include "third_party/skia/include/core/SkBitmap.h" - #include "third_party/skia/include/core/SkCanvas.h" -@@ -949,7 +950,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -952,7 +953,7 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( ? SK_ColorTRANSPARENT : metadata.root_background_color.toSkColor()); @@ -1096,7 +1097,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ overscroll_controller_->OnFrameMetadataUpdated( metadata.page_scale_factor, metadata.device_scale_factor, metadata.scrollable_viewport_size, metadata.root_layer_size, -@@ -1248,6 +1249,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { +@@ -1254,6 +1255,12 @@ gfx::Size RenderWidgetHostViewAndroid::GetRequestedRendererSizeDevicePx() { default_bounds_dip_.height() * scale_factor); } @@ -1109,7 +1110,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const float scale_factor = GetDeviceScaleFactor() / view_.GetDipScale(); return gfx::ScaleToCeiledSize(view_.GetSizeDevicePx(), scale_factor); } -@@ -1273,6 +1280,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { +@@ -1279,6 +1286,10 @@ void RenderWidgetHostViewAndroid::SetInsets(const gfx::Insets& insets) { NOTREACHED(); } @@ -1120,7 +1121,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ gfx::Size RenderWidgetHostViewAndroid::GetCompositorViewportPixelSize() { if (!view_.parent()) { if (default_bounds_dip_.IsEmpty()) { -@@ -1408,7 +1419,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { +@@ -1414,7 +1425,7 @@ viz::SurfaceId RenderWidgetHostViewAndroid::GetCurrentSurfaceId() const { : viz::SurfaceId(); } @@ -1129,7 +1130,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ const gfx::PointF& point, RenderWidgetHostViewInput* target_view, gfx::PointF* transformed_point) { -@@ -1822,7 +1833,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { +@@ -1829,7 +1840,7 @@ bool RenderWidgetHostViewAndroid::HasFallbackSurface() const { return delegated_frame_host_->HasFallbackSurface(); } @@ -1141,7 +1142,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ diff --git a/content/browser/renderer_host/render_widget_host_view_android.h b/content/browser/renderer_host/render_widget_host_view_android.h --- a/content/browser/renderer_host/render_widget_host_view_android.h +++ b/content/browser/renderer_host/render_widget_host_view_android.h -@@ -161,6 +161,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid +@@ -170,6 +170,7 @@ class CONTENT_EXPORT RenderWidgetHostViewAndroid gfx::Size GetRequestedRendererSizeDevicePx() override; gfx::Size GetVisibleViewportSize() override; gfx::Size GetVisibleViewportSizeDevicePx() override; @@ -1212,7 +1213,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.h 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 -@@ -826,8 +826,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { +@@ -827,8 +827,11 @@ WebContentsAndroid::GetFullscreenVideoSize(JNIEnv* env) { return Java_WebContentsImpl_createSize(env, size.width(), size.height()); } @@ -1241,7 +1242,7 @@ diff --git a/content/browser/web_contents/web_contents_android.h b/content/brows diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -527,7 +527,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -530,7 +530,11 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( !command_line.HasSwitch(switches::kFingerprintingCanvasImageDataNoise)); // CAUTION: Only add custom enabling logic here if it cannot // be covered by the other functions. @@ -1257,17 +1258,17 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java -@@ -519,7 +519,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper - boolean canRichlyEdit, +@@ -526,7 +526,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper boolean shouldSuggest, int sourceType, -- RenderFrameHost renderFrameHost) { -+ RenderFrameHost renderFrameHost, + RenderFrameHost renderFrameHost, +- MenuModelBridge menuModelBridge) { ++ MenuModelBridge menuModelBridge, + boolean pixelPerfectEnabled) { + mMenuModelBridge = menuModelBridge; RecordHistogram.recordEnumeratedHistogram( - "Android.ShowSelectionMenuSourceType", - sourceType, -@@ -530,6 +531,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper + "Android.ShowSelectionMenuSourceType", sourceType, MenuSourceType.MAX_VALUE); +@@ -536,6 +537,8 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper mXDip = xDip; mYDip = yDip; mSelectionRect.set(left, top, right, offsetBottom); @@ -1291,7 +1292,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon } @Override -@@ -1436,7 +1436,7 @@ public class WebContentsImpl +@@ -1449,7 +1449,7 @@ public class WebContentsImpl Rect getFullscreenVideoSize(long nativeWebContentsAndroid); @@ -1459,7 +1460,7 @@ diff --git a/third_party/blink/public/mojom/widget/visual_properties.mojom b/thi diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/web/web_view.h --- a/third_party/blink/public/web/web_view.h +++ b/third_party/blink/public/web/web_view.h -@@ -243,6 +243,7 @@ class BLINK_EXPORT WebView { +@@ -248,6 +248,7 @@ class BLINK_EXPORT WebView { // Minimum and Maximum as computed as a combination of default, page defined, // UA, etc. constraints. virtual float MinimumPageScaleFactor() const = 0; @@ -1470,14 +1471,14 @@ diff --git a/third_party/blink/public/web/web_view.h b/third_party/blink/public/ diff --git a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc --- a/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc +++ b/third_party/blink/renderer/core/canvas_interventions/canvas_interventions_helper.cc -@@ -49,6 +49,7 @@ namespace { - bool ShouldApplyNoise(CanvasRenderingContext* rendering_context, - scoped_refptr& snapshot, +@@ -48,6 +48,7 @@ namespace { + // 2) the CanvasInterventions RuntimeEnabledFeature is enabled + bool ShouldApplyNoise(HighEntropyCanvasOpType canvas_operations, ExecutionContext* execution_context) { + if (RuntimeEnabledFeatures::PixelPerfectEnabled()) return false; CanvasNoiseReason noise_reason = CanvasNoiseReason::kAllConditionsMet; - if (!rendering_context) { - noise_reason |= CanvasNoiseReason::kNoRenderContext; + if (canvas_operations == HighEntropyCanvasOpType::kNone) { + noise_reason |= CanvasNoiseReason::kNoTrigger; diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc --- a/third_party/blink/renderer/core/css/media_values.cc +++ b/third_party/blink/renderer/core/css/media_values.cc @@ -1502,7 +1503,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1258,8 +1258,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( +@@ -1262,8 +1262,19 @@ void WebViewImpl::UpdateICBAndResizeViewport( if (GetBrowserControls().PermittedState() == cc::BrowserControlsState::kBoth && !GetBrowserControls().ShrinkViewport()) { @@ -1524,7 +1525,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } GetPageScaleConstraintsSet().DidChangeInitialContainingBlockSize(icb_size); -@@ -1339,7 +1350,8 @@ void WebViewImpl::DidUpdateBrowserControls() { +@@ -1343,7 +1354,8 @@ void WebViewImpl::DidUpdateBrowserControls() { ResizeViewportAnchor::ResizeScope resize_scope(*resize_viewport_anchor_); visual_viewport.SetBrowserControlsAdjustment( @@ -1534,7 +1535,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -1403,7 +1415,7 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1417,7 +1429,7 @@ void WebViewImpl::ResizeWithBrowserControls( float bottom_controls_height, bool browser_controls_shrink_layout) { ResizeWithBrowserControls( @@ -1543,7 +1544,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p {top_controls_height, GetBrowserControls().TopMinHeight(), bottom_controls_height, GetBrowserControls().BottomMinHeight(), GetBrowserControls().AnimateHeightChanges(), -@@ -1413,6 +1425,8 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1427,6 +1439,8 @@ void WebViewImpl::ResizeWithBrowserControls( void WebViewImpl::ResizeWithBrowserControls( const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1552,7 +1553,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p cc::BrowserControlsParams browser_controls_params) { if (should_auto_resize_) { // When auto-resizing only the viewport size comes from the browser, while -@@ -1421,6 +1435,11 @@ void WebViewImpl::ResizeWithBrowserControls( +@@ -1435,6 +1449,11 @@ void WebViewImpl::ResizeWithBrowserControls( return; } @@ -1564,7 +1565,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (size_ == main_frame_widget_size && GetPage()->GetVisualViewport().Size() == visible_viewport_size && GetBrowserControls().Params() == browser_controls_params) -@@ -2092,7 +2111,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { +@@ -2107,7 +2126,7 @@ void WebViewImpl::DidAttachLocalMainFrame() { web_preferences_.prefers_reduced_motion); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1573,7 +1574,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p // Prevent main frame updates while the main frame is loading until enough // progress is made and BeginMainFrames are explicitly asked for. scoped_defer_main_frame_update_ = -@@ -2900,7 +2919,7 @@ void WebViewImpl::RefreshPageScaleFactor() { +@@ -2915,7 +2934,7 @@ void WebViewImpl::RefreshPageScaleFactor() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1582,7 +1583,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -2977,7 +2996,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( +@@ -2992,7 +3011,7 @@ void WebViewImpl::UpdatePageDefinedViewportConstraints( TextAutosizer::UpdatePageInfoInAllFrames(GetPage()->MainFrame()); } @@ -1591,7 +1592,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p if (should_auto_resize_ || !MainFrameImpl()) return; -@@ -3211,6 +3230,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { +@@ -3226,6 +3245,10 @@ float WebViewImpl::MinimumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().minimum_scale; } @@ -1602,7 +1603,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p float WebViewImpl::MaximumPageScaleFactor() const { return GetPageScaleConstraintsSet().FinalConstraints().maximum_scale; } -@@ -3260,7 +3283,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { +@@ -3275,7 +3298,7 @@ void WebViewImpl::SendResizeEventForMainFrame() { auto& viewport = GetPage()->GetVisualViewport(); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1611,7 +1612,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p } } -@@ -3800,7 +3823,7 @@ void WebViewImpl::PageScaleFactorChanged() { +@@ -3823,7 +3846,7 @@ void WebViewImpl::PageScaleFactorChanged() { DCHECK(viewport.IsActiveViewport()); MainFrameImpl()->FrameWidgetImpl()->SetPageScaleStateAndLimits( viewport.Scale(), viewport.IsPinchGestureActive(), @@ -1623,7 +1624,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_party/blink/renderer/core/exported/web_view_impl.h --- a/third_party/blink/renderer/core/exported/web_view_impl.h +++ b/third_party/blink/renderer/core/exported/web_view_impl.h -@@ -170,6 +170,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -171,6 +171,7 @@ class CORE_EXPORT WebViewImpl final : public WebView, void AdvanceFocus(bool reverse) override; float PageScaleFactor() const override; float MinimumPageScaleFactor() const override; @@ -1631,7 +1632,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa float MaximumPageScaleFactor() const override; void SetDefaultPageScaleLimits(float min_scale, float max_scale) override; void SetInitialPageScaleOverride(float) override; -@@ -284,6 +285,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -285,6 +286,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // includes all browser controls params such as the min heights. void ResizeWithBrowserControls(const gfx::Size& main_frame_widget_size, const gfx::Size& visible_viewport_size, @@ -1640,7 +1641,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa cc::BrowserControlsParams); // Requests a page-scale animation based on the specified point/rect. -@@ -824,6 +827,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, +@@ -832,6 +835,8 @@ class CORE_EXPORT WebViewImpl final : public WebView, // The upper bound on the size when auto-resizing. gfx::Size max_auto_size_; @@ -1652,7 +1653,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc -@@ -1720,8 +1720,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { +@@ -1732,8 +1732,11 @@ void LocalFrameView::PerformPostLayoutTasks(bool visual_viewport_size_changed) { } float LocalFrameView::InputEventsScaleFactor() const { @@ -1793,7 +1794,7 @@ diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_par diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1886,6 +1886,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1885,6 +1885,9 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // All non-top-level Widgets (child local-root frames, GuestViews, // etc.) propagate and consume the page scale factor as "external", meaning // that it comes from the top level widget's page scale. @@ -1803,7 +1804,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (!ForTopMostMainFrame()) { // The main frame controls the page scale factor, from blink. For other // frame widgets, the page scale from pinch zoom and compositing scale is -@@ -1893,7 +1896,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1892,7 +1895,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // blink doesn't need to know this page scale factor outside the main frame, // the compositor does in order to produce its output at the correct scale. float combined_scale_factor = visual_properties.page_scale_factor * @@ -1812,7 +1813,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th widget_base_->LayerTreeHost()->SetExternalPageScaleFactor( combined_scale_factor, visual_properties.is_pinch_gesture_active); -@@ -1906,7 +1909,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( +@@ -1905,7 +1908,7 @@ void WebFrameWidgetImpl::UpdateVisualProperties( // Ensure the external scale factor in top-level widgets is reset as it may // be leftover from when a widget was nested and was promoted to top level. widget_base_->LayerTreeHost()->SetExternalPageScaleFactor( @@ -1821,7 +1822,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th /*is_pinch_gesture_active=*/false); } -@@ -1950,6 +1953,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1949,6 +1952,18 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( new_compositor_viewport_pixel_rect, device_scale_factor_for_testing_ / non_testing_device_scale_factor_); } @@ -1840,7 +1841,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ForMainFrame()) { if (size_ != new_size) { -@@ -1967,6 +1982,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1966,6 +1981,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( size_.value(), widget_base_->DIPsToCeiledBlinkSpace( widget_base_->VisibleViewportSize()), @@ -1849,7 +1850,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); return; } -@@ -2000,6 +2017,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1999,6 +2016,8 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( View()->ResizeWithBrowserControls( size_.value(), widget_base_->VisibleViewportSize(), @@ -1858,7 +1859,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th visual_properties.browser_controls_params); } -@@ -2378,6 +2397,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, +@@ -2381,6 +2400,8 @@ void WebFrameWidgetImpl::SetZoomInternal(double zoom_level, View()->ZoomFactorForViewportLayout() * static_cast(View()->ZoomLevelToZoomFactor(zoom_level)) * static_cast(css_zoom_factor); @@ -1867,7 +1868,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (zoom_changed) { // Set the layout shift exclusion window for the zoom level change. if (LocalFrameView* view = document->View()) { -@@ -3430,6 +3451,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { +@@ -3428,6 +3449,7 @@ void WebFrameWidgetImpl::SetRootLayer(scoped_refptr layer) { // be needed in setting the raster scale. SetPageScaleStateAndLimits(1.f, false /* is_pinch_gesture_active */, View()->MinimumPageScaleFactor(), @@ -1875,7 +1876,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th View()->MaximumPageScaleFactor()); } -@@ -4799,9 +4821,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( +@@ -4805,9 +4827,10 @@ void WebFrameWidgetImpl::SetPageScaleStateAndLimits( float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1887,7 +1888,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th // Only propagate page scale from the main frame. if (ForMainFrame()) { -@@ -4925,7 +4948,10 @@ void WebFrameWidgetImpl::OrientationChanged() { +@@ -4931,7 +4954,10 @@ void WebFrameWidgetImpl::OrientationChanged() { void WebFrameWidgetImpl::DidUpdateSurfaceAndScreen( const display::ScreenInfos& previous_original_screen_infos) { display::ScreenInfo screen_info = widget_base_->GetScreenInfo(); @@ -1899,7 +1900,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th if (ShouldAutoDetermineCompositingToLCDTextSetting()) { // This causes compositing state to be modified which dirties the -@@ -5121,7 +5147,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { +@@ -5127,7 +5153,7 @@ void WebFrameWidgetImpl::SetDeviceScaleFactorForTesting(float factor) { if (!device_scale_factor_for_testing_) { non_testing_device_scale_factor_ = @@ -1911,7 +1912,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/th diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.h -@@ -655,6 +655,7 @@ class CORE_EXPORT WebFrameWidgetImpl +@@ -657,6 +657,7 @@ class CORE_EXPORT WebFrameWidgetImpl void SetPageScaleStateAndLimits(float page_scale_factor, bool is_pinch_gesture_active, float minimum, @@ -1922,7 +1923,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.h b/thi diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc --- a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc +++ b/third_party/blink/renderer/core/frame/web_local_frame_impl.cc -@@ -2547,7 +2547,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { +@@ -2559,7 +2559,7 @@ void WebLocalFrameImpl::PaintDevToolsOverlays(GraphicsContext& context) { dev_tools_agent_->PaintOverlays(context); } @@ -1931,7 +1932,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi TRACE_EVENT0("blink", "WebLocalFrameImpl::createFrameView"); DCHECK(GetFrame()); // If frame() doesn't exist, we probably didn't init -@@ -3022,7 +3022,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( +@@ -3034,7 +3034,7 @@ void WebLocalFrameImpl::ShowContextMenuFromExternal( std::move(context_menu_client), params); } @@ -1943,7 +1944,7 @@ diff --git a/third_party/blink/renderer/core/frame/web_local_frame_impl.cc b/thi diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc --- a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc +++ b/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc -@@ -1569,6 +1569,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, +@@ -1567,6 +1567,7 @@ bool HTMLCanvasElement::PushFrame(scoped_refptr&& image, } bool HTMLCanvasElement::ShouldAccelerate() const { @@ -1954,7 +1955,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/html_canvas_element.cc diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_party/blink/renderer/core/input/event_handler.cc --- a/third_party/blink/renderer/core/input/event_handler.cc +++ b/third_party/blink/renderer/core/input/event_handler.cc -@@ -2082,7 +2082,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( +@@ -2084,7 +2084,7 @@ GestureEventWithHitTestResults EventHandler::HitTestResultForGestureEvent( hit_test_result); } @@ -1966,7 +1967,7 @@ diff --git a/third_party/blink/renderer/core/input/event_handler.cc b/third_part 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 -@@ -1081,7 +1081,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( +@@ -1085,7 +1085,8 @@ InspectorEmulationAgent::setSmallViewportHeightDifferenceOverride( // Ensure the override is applied immediately without having to wait for // `WebFrameWidgetImpl::UpdateVisualProperties()` to be called. GetWebViewImpl()->ResizeWithBrowserControls( @@ -1979,7 +1980,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -1309,6 +1309,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { +@@ -1323,6 +1323,10 @@ void Page::CalculateEmulatedScreenSetting(LocalFrame* frame, bool force) { if (SchemeRegistry::IsWebUIScheme(protocol) || disable_screen_emulated_) { isEnabled = false; } @@ -2028,7 +2029,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_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 -@@ -5857,6 +5857,10 @@ +@@ -5877,6 +5877,10 @@ // If enabled, the `getDisplayMedia()` family of APIs will ask for NV12 // frames, which should trigger a zero-copy path in the tab capture code. name: "ZeroCopyTabCapture", @@ -2051,7 +2052,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox #include "third_party/blink/renderer/platform/widget/input/compositor_thread_event_queue.h" #include "third_party/blink/renderer/platform/widget/input/cursor_control_handler.h" #include "third_party/blink/renderer/platform/widget/input/elastic_overscroll_controller.h" -@@ -56,6 +57,20 @@ namespace { +@@ -57,6 +58,20 @@ namespace { using ::perfetto::protos::pbzero::ChromeLatencyInfo2; using ::perfetto::protos::pbzero::TrackEvent; @@ -2072,7 +2073,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox cc::ScrollStateData CreateScrollStateDataForGesture( const WebGestureEvent& event) { cc::ScrollStateData scroll_state_data; -@@ -64,8 +79,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( +@@ -65,8 +80,8 @@ cc::ScrollStateData CreateScrollStateDataForGesture( } switch (event.GetType()) { case WebInputEvent::Type::kGestureScrollBegin: @@ -2083,7 +2084,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint; scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint; scroll_state_data.is_beginning = true; -@@ -831,7 +846,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -841,7 +856,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureBegin( @@ -2092,7 +2093,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox GestureScrollInputType(gesture_event.SourceDevice())); gesture_pinch_in_progress_ = true; return DID_HANDLE; -@@ -843,7 +858,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -853,7 +868,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( const WebGestureEvent& gesture_event = static_cast(event); input_handler_->PinchGestureEnd( @@ -2101,7 +2102,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -853,7 +868,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -863,7 +878,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); input_handler_->PinchGestureUpdate( gesture_event.data.pinch_update.scale, @@ -2110,7 +2111,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_HANDLE; } -@@ -876,7 +891,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -886,7 +901,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( // TODO(arakeri): Pass in the modifier instead of a bool once the // refactor (crbug.com/1022097) is done. For details, see // crbug.com/1016955. @@ -2119,7 +2120,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox } return DID_NOT_HANDLE; -@@ -887,7 +902,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -897,7 +912,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( static_cast(event); CHECK(input_handler_); if (mouse_event.button == WebMouseEvent::Button::kLeft) @@ -2128,7 +2129,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return DID_NOT_HANDLE; } case WebInputEvent::Type::kMouseMove: { -@@ -902,7 +917,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( +@@ -912,7 +927,7 @@ InputHandlerProxy::RouteToTypeSpecificHandler( (mouse_event.button == WebPointerProperties::Button::kNoButton && !(mouse_event.GetModifiers() & WebInputEvent::Modifiers::kRelativeMotionEvent)); @@ -2137,7 +2138,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox should_cancel_scrollbar_drag); return DID_NOT_HANDLE; } -@@ -941,12 +956,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -951,12 +966,14 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // to check pointer lock state gfx::PointF point = static_cast(event).PositionInWidget(); @@ -2152,7 +2153,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox return WebInputEventAttribution( WebInputEventAttribution::kTargetedFrame, input_handler_->FindFrameElementIdAtPoint(point)); -@@ -961,6 +978,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( +@@ -971,6 +988,7 @@ WebInputEventAttribution InputHandlerProxy::PerformEventAttribution( // how the renderer host performs touch event dispatch. // https://cs.chromium.org/chromium/src/content/browser/renderer_host/render_widget_host_input_event_router.cc?l=808&rcl=10fe9d0a725d4ed7b69266a5936c525f0a5b26d3 gfx::PointF point = touch_event.touches[0].PositionInWidget(); @@ -2160,7 +2161,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox const cc::ElementId targeted_element = input_handler_->FindFrameElementIdAtPoint(point); -@@ -1057,7 +1075,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( +@@ -1072,7 +1090,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( } } @@ -2169,7 +2170,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (input_handler_->HasBlockingWheelEventHandlerAt( gfx::Point(position_in_widget.x(), position_in_widget.y()))) { result = DID_NOT_HANDLE; -@@ -1226,7 +1244,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( +@@ -1241,7 +1259,7 @@ InputHandlerProxy::HandleGestureScrollUpdate( scroll_data->set_unused_delta_y(scroll_result.unused_scroll_delta.y()); }); @@ -2178,7 +2179,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (elastic_overscroll_controller_) HandleScrollElasticityOverscroll(gesture_event, scroll_result); -@@ -1304,8 +1322,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( +@@ -1319,8 +1337,8 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HitTestTouchEvent( cc::TouchAction touch_action = cc::TouchAction::kAuto; cc::InputHandler::TouchStartOrMoveEventListenerType event_listener_type = input_handler_->EventListenerTypeForTouchStartOrMoveAt( @@ -2189,7 +2190,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox &touch_action); if (allowed_touch_action && touch_action != cc::TouchAction::kAuto) { TRACE_EVENT_INSTANT1("input", "Adding TouchAction", -@@ -1411,7 +1429,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( +@@ -1426,7 +1444,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchStart( touch_event.touches_length == 1) { DCHECK(touch_event.touches[0].state == WebTouchPoint::State::kStatePressed); cc::InputHandlerPointerResult pointer_result = HandlePointerDown( @@ -2198,7 +2199,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) { client_->SetAllowedTouchAction(allowed_touch_action); return DID_HANDLE; -@@ -1474,7 +1492,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( +@@ -1489,7 +1507,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchMove( touch_event.touch_start_or_first_touch_move); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerMove( @@ -2207,7 +2208,7 @@ diff --git a/third_party/blink/renderer/platform/widget/input/input_handler_prox false /* should_cancel_scrollbar_drag */); if (pointer_result.type == cc::PointerResultType::kScrollbarScroll) { return DID_HANDLE; -@@ -1517,7 +1535,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( +@@ -1532,7 +1550,7 @@ InputHandlerProxy::EventDisposition InputHandlerProxy::HandleTouchEnd( touch_event.touches_length); if (touch_event.touches_length == 1) { cc::InputHandlerPointerResult pointer_result = HandlePointerUp( @@ -2321,7 +2322,7 @@ diff --git a/third_party/blink/renderer/platform/widget/widget_base.h b/third_pa diff --git a/ui/android/delegated_frame_host_android.cc b/ui/android/delegated_frame_host_android.cc --- a/ui/android/delegated_frame_host_android.cc +++ b/ui/android/delegated_frame_host_android.cc -@@ -180,7 +180,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { +@@ -188,7 +188,7 @@ const viz::FrameSinkId& DelegatedFrameHostAndroid::GetFrameSinkId() const { return frame_sink_id_; } @@ -2442,7 +2443,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/display/PhysicalDisplayAndroid. diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc --- a/ui/android/view_android.cc +++ b/ui/android/view_android.cc -@@ -117,6 +117,10 @@ float ViewAndroid::GetDipScale() { +@@ -118,6 +118,10 @@ float ViewAndroid::GetDipScale() { return ui::GetScaleFactorForNativeView(this); } @@ -2453,7 +2454,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc ScopedJavaLocalRef ViewAndroid::GetEventForwarder() { if (!event_forwarder_) { DCHECK(!RootPathHasEventForwarder(parent_)) -@@ -152,7 +156,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { +@@ -153,7 +157,7 @@ void ViewAndroid::AddChild(ViewAndroid* child) { // spurious events with empty size from being sent down. if (child->match_parent() && !bounds_device_px_.IsEmpty() && child->GetSizeDevicePx() != bounds_device_px_.size()) { @@ -2462,7 +2463,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc child->DispatchOnSizeChanged(); } -@@ -497,7 +501,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, +@@ -498,7 +502,7 @@ void ViewAndroid::OnVerticalScrollDirectionChanged(bool direction_up, env, delegate, direction_up, current_scroll_ratio); } @@ -2471,7 +2472,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc // Match-parent view must not receive size events. DCHECK(!match_parent()); -@@ -507,13 +511,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { +@@ -508,13 +512,15 @@ void ViewAndroid::OnSizeChanged(int width, int height) { return; } @@ -2489,7 +2490,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc if (bounds_device_px_.size() == size_device_px) { return; } -@@ -521,12 +527,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { +@@ -522,12 +528,15 @@ void ViewAndroid::OnSizeChangedInternal(const gfx::Size& size_device_px) { bounds_device_px_.set_size(size_device_px); float scale = GetDipScale(); @@ -2508,7 +2509,7 @@ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc } } -@@ -577,6 +586,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { +@@ -578,6 +587,10 @@ gfx::Size ViewAndroid::GetSizeDevicePx() const { return bounds_device_px_.size(); } @@ -2544,7 +2545,7 @@ diff --git a/ui/android/view_android.h b/ui/android/view_android.h // |deadline_override| if not nullopt will be used as the cc::DeadlinePolicy // timeout for this resize. void OnPhysicalBackingSizeChanged( -@@ -311,7 +314,7 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -320,7 +323,7 @@ class UI_ANDROID_EXPORT ViewAndroid { // each leaf of subtree. static bool SubtreeHasEventForwarder(ViewAndroid* view); @@ -2553,7 +2554,7 @@ diff --git a/ui/android/view_android.h b/ui/android/view_android.h void DispatchOnSizeChanged(); // Returns the Java delegate for this view. This is used to delegate work -@@ -334,6 +337,8 @@ class UI_ANDROID_EXPORT ViewAndroid { +@@ -343,6 +346,8 @@ class UI_ANDROID_EXPORT ViewAndroid { // Same as above, but before dividing by the device scale factor. gfx::Rect bounds_device_px_; diff --git a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch index b3df882d..05af7d23 100644 --- a/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch +++ b/build/patches/Android-Toolbar-Scroll-Ablation-setting.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserStateBrowserControlsVisibilityDelegate.java -@@ -40,6 +40,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro +@@ -41,6 +41,7 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro private final Supplier mPersistentFullscreenMode; private long mCurrentShowingStartTime; @@ -26,7 +26,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom /** * Constructs a BrowserControlsVisibilityDelegate designed to deal with overrides driven by -@@ -65,7 +66,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro +@@ -66,7 +67,8 @@ public class BrowserStateBrowserControlsVisibilityDelegate extends BrowserContro long currentShowingTime = SystemClock.uptimeMillis() - mCurrentShowingStartTime; if (currentShowingTime >= MINIMUM_SHOW_DURATION_MS) return; diff --git a/build/patches/Android-fonts-fingerprinting-mitigation.patch b/build/patches/Android-fonts-fingerprinting-mitigation.patch index 8c0991d0..10c3c43d 100644 --- a/build/patches/Android-fonts-fingerprinting-mitigation.patch +++ b/build/patches/Android-fonts-fingerprinting-mitigation.patch @@ -38,11 +38,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../skia/src/ports/SkFontConfigInterface.cpp | 4 + .../ports/SkFontConfigInterface_direct.cpp | 5 + .../src/ports/SkFontConfigInterface_direct.h | 1 + - .../skia/src/ports/SkFontMgr_android.cpp | 279 ++- + .../skia/src/ports/SkFontMgr_android.cpp | 277 ++- .../skia/src/ports/SkFontMgr_android_data.cpp | 1640 +++++++++++++++++ .../src/ports/SkFontMgr_android_parser.cpp | 49 +- .../skia/src/ports/SkFontMgr_android_parser.h | 5 +- - 36 files changed, 2415 insertions(+), 76 deletions(-) + 36 files changed, 2414 insertions(+), 75 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Android-fonts-fingerprinting-mitigation.grdp create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.cc create mode 100644 components/component_updater/installer_policies/fonts_pack_component_installer.h @@ -54,7 +54,7 @@ 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 -@@ -1007,6 +1007,9 @@ public final class ProductionSupportedFlagList { +@@ -1009,6 +1009,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."), @@ -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 -@@ -7951,6 +7951,13 @@ static_library("browser") { +@@ -8005,6 +8005,13 @@ static_library("browser") { } } @@ -161,7 +161,7 @@ new file mode 100644 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -258,6 +258,10 @@ static_library("renderer") { +@@ -264,6 +264,10 @@ static_library("renderer") { deps += [ "//components/strings" ] } @@ -615,7 +615,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 -@@ -2600,6 +2600,17 @@ source_set("browser") { +@@ -2614,6 +2614,17 @@ source_set("browser") { ] } @@ -633,7 +633,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" ] -@@ -2645,6 +2656,13 @@ source_set("browser") { +@@ -2659,6 +2670,13 @@ source_set("browser") { ] } @@ -696,7 +696,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 -@@ -346,6 +346,10 @@ target(link_target_type, "renderer") { +@@ -347,6 +347,10 @@ target(link_target_type, "renderer") { deps += [ "//services/screen_ai/public/mojom" ] } @@ -734,7 +734,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer using blink::Platform; using blink::WebAudioDevice; using blink::WebAudioLatencyHint; -@@ -180,6 +197,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { +@@ -174,6 +191,37 @@ gpu::ContextType ToGpuContextType(blink::Platform::ContextType type) { NOTREACHED(); } @@ -772,7 +772,7 @@ diff --git a/content/renderer/renderer_blink_platform_impl.cc b/content/renderer } // namespace //------------------------------------------------------------------------------ -@@ -193,18 +241,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( +@@ -187,18 +235,21 @@ RendererBlinkPlatformImpl::RendererBlinkPlatformImpl( is_locked_to_site_(false), main_thread_scheduler_(main_thread_scheduler), next_frame_sink_id_(uint32_t{std::numeric_limits::max()} + 1) { @@ -838,7 +838,7 @@ new file mode 100644 diff --git a/skia/BUILD.gn b/skia/BUILD.gn --- a/skia/BUILD.gn +++ b/skia/BUILD.gn -@@ -463,6 +463,18 @@ component("skia") { +@@ -467,6 +467,18 @@ component("skia") { sources += skia_ports_fci_sources } @@ -1257,7 +1257,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia : fScanner(std::move(scanner)) { + custom_ = std::move(custom_in); + auto* custom = custom_.get(); - SkTDArray families; + std::vector> families; if (custom && SkFontMgr_Android_CustomFonts::kPreferSystem != custom->fSystemFontUse) { SkString base(custom->fBasePath); SkFontMgr_Android_Parser::GetCustomFontFamilies( @@ -1278,22 +1278,24 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia } this->buildNameToFamilyMap(families, custom ? custom->fIsolated : false); this->findDefaultStyleSet(); -@@ -309,33 +449,53 @@ protected: - return sset->matchStyle(style); +@@ -306,12 +446,12 @@ protected: } + enum class NameType { Self, Fallback }; - static sk_sp find_family_style_character( + sk_sp find_family_style_character( const SkString& familyName, - const TArray& fallbackNameToFamilyMap, + const TArray& nameToFamilyMap, + NameType nameType, const SkFontStyle& style, bool elegant, - const SkString& langTag, SkUnichar character) + const SkString& langTag, SkUnichar character) const { - for (int i = 0; i < fallbackNameToFamilyMap.size(); ++i) { - SkFontStyleSet_Android* family = fallbackNameToFamilyMap[i].styleSet; - if (familyName != family->fFallbackFor) { - continue; + for (auto&& nameToFamily : nameToFamilyMap) { + SkFontStyleSet_Android* family = nameToFamily.styleSet; +@@ -322,22 +462,42 @@ protected: + continue; + } } - sk_sp face(family->matchAStyle(style)); + if (custom_) { @@ -1334,38 +1336,29 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia + { + continue; + } -+ -+ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) { -+ continue; -+ } - if (face->unicharToGlyph(character) != 0) { - return face; ++ if (SkToBool(face->fVariantStyle & kElegant_FontVariant) != elegant) { ++ continue; ++ } ++ + if (face->unicharToGlyph(character) != 0) { + return face; + } } } return nullptr; -@@ -358,7 +518,7 @@ protected: - for (int bcp47Index = bcp47Count; bcp47Index --> 0;) { - SkLanguage lang(bcp47[bcp47Index]); - while (!lang.getTag().isEmpty()) { -- sk_sp matchingTypeface = -+ sk_sp matchingTypeface = - find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap, - style, SkToBool(elegant), - lang.getTag(), character); -@@ -369,7 +529,7 @@ protected: - lang = lang.getParent(); - } - } -- sk_sp matchingTypeface = -+ sk_sp matchingTypeface = - find_family_style_character(currentFamilyName, fFallbackNameToFamilyMap, - style, SkToBool(elegant), - SkString(), character); -@@ -420,6 +580,7 @@ protected: +@@ -352,7 +512,7 @@ protected: + // The variant 'default' means 'compact and elegant'. + // As a result, it is not possible to know the variant context from the font alone. + // TODO: add 'is_elegant' and 'is_compact' bits to 'style' request. +- sk_sp matchingTypeface; ++ sk_sp matchingTypeface; + SkString familyNameString(familyName); + for (const SkString& currentFamilyName : { familyNameString, SkString() }) { + // The first time match anything elegant, second time anything not elegant. +@@ -432,6 +592,7 @@ protected: private: std::unique_ptr fScanner; @@ -1373,7 +1366,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia TArray> fStyleSets; sk_sp fDefaultStyleSet; -@@ -441,7 +602,7 @@ private: +@@ -453,7 +614,7 @@ private: } sk_sp newSet = @@ -1382,7 +1375,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia if (0 == newSet->count()) { return; } -@@ -486,7 +647,11 @@ static char const * const gSystemFontUseStrings[] = { +@@ -499,7 +660,11 @@ static char const * const gSystemFontUseStrings[] = { } // namespace @@ -1395,7 +1388,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android.cpp b/third_party/skia if (custom) { SkASSERT(0 <= custom->fSystemFontUse); SkASSERT(custom->fSystemFontUse < std::size(gSystemFontUseStrings)); -@@ -496,5 +661,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust +@@ -509,5 +674,5 @@ sk_sp SkFontMgr_New_Android(const SkFontMgr_Android_CustomFonts* cust custom->fFontsXml, custom->fFallbackFontsXml); } @@ -3050,10 +3043,10 @@ new file mode 100644 diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp --- a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp +++ b/third_party/skia/src/ports/SkFontMgr_android_parser.cpp -@@ -652,14 +652,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = { - * families array. Returns the version of the file, negative if the file does not exist. +@@ -654,14 +654,27 @@ static const XML_Memory_Handling_Suite sk_XML_alloc = { */ - static int parse_config_file(const char* filename, SkTDArray& families, + static int parse_config_file(const char* filename, + std::vector>& families, - const SkString& basePath, bool isFallback) + const SkString& basePath, bool isFallback, + const SkFontMgr_Android_CustomFonts* custom = nullptr) @@ -3084,7 +3077,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par return -1; } -@@ -691,8 +704,8 @@ static int parse_config_file(const char* filename, SkTDArray& famil +@@ -693,8 +706,8 @@ static int parse_config_file(const char* filename, SkDebugf(SK_FONTMGR_ANDROID_PARSER_PREFIX "could not buffer enough to continue\n"); return -1; } @@ -3095,57 +3088,59 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par XML_Status status = XML_ParseBuffer(parser, len, done); if (XML_STATUS_ERROR == status) { XML_Error error = XML_GetErrorCode(parser); -@@ -765,8 +778,10 @@ static void append_fallback_font_families_for_locale(SkTDArray& fal - } +@@ -768,8 +781,10 @@ static void append_fallback_font_families_for_locale( - static void append_system_fallback_font_families(SkTDArray& fallbackFonts, -- const SkString& basePath) -+ const SkString& basePath, + static void append_system_fallback_font_families( + std::vector>& fallbackFonts, +- const SkString& basePath) ++ const SkString& basePath, + const SkFontMgr_Android_CustomFonts* custom) { + if (custom) return; parse_config_file(FALLBACK_FONTS_FILE, fallbackFonts, basePath, true); append_fallback_font_families_for_locale(fallbackFonts, LOCALE_FALLBACK_FONTS_SYSTEM_DIR, -@@ -774,8 +789,10 @@ static void append_system_fallback_font_families(SkTDArray& fallbac - } +@@ -778,8 +793,10 @@ static void append_system_fallback_font_families( - static void mixin_vendor_fallback_font_families(SkTDArray& fallbackFonts, -- const SkString& basePath) -+ const SkString& basePath, + static void mixin_vendor_fallback_font_families( + std::vector>& fallbackFonts, +- const SkString& basePath) ++ const SkString& basePath, + const SkFontMgr_Android_CustomFonts* custom) { + if (custom) return; - SkTDArray vendorFonts; + std::vector> vendorFonts; parse_config_file(VENDOR_FONTS_FILE, vendorFonts, basePath, true); append_fallback_font_families_for_locale(vendorFonts, -@@ -806,7 +823,8 @@ static void mixin_vendor_fallback_font_families(SkTDArray& fallback - } +@@ -811,7 +828,8 @@ static void mixin_vendor_fallback_font_families( } --void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray& fontFamilies) { -+void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray& fontFamilies, -+ const SkFontMgr_Android_CustomFonts* custom) { + void SkFontMgr_Android_Parser::GetSystemFontFamilies( +- std::vector>& fontFamilies) ++ std::vector>& fontFamilies, ++ const SkFontMgr_Android_CustomFonts* custom) + { // Version 21 of the system font configuration does not need any fallback configuration files. SkString basePath(getenv("ANDROID_ROOT")); - basePath.append(SK_FONT_FILE_PREFIX, sizeof(SK_FONT_FILE_PREFIX) - 1); -@@ -817,22 +835,23 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies(SkTDArray& fon +@@ -823,8 +841,8 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( // Append all the fallback fonts to system fonts - SkTDArray fallbackFonts; + std::vector> fallbackFonts; - append_system_fallback_font_families(fallbackFonts, basePath); - mixin_vendor_fallback_font_families(fallbackFonts, basePath); + append_system_fallback_font_families(fallbackFonts, basePath, custom); + mixin_vendor_fallback_font_families(fallbackFonts, basePath, custom); - fontFamilies.append(fallbackFonts.size(), fallbackFonts.begin()); - } - - void SkFontMgr_Android_Parser::GetCustomFontFamilies(SkTDArray& fontFamilies, - const SkString& basePath, -+ const SkFontMgr_Android_CustomFonts* custom, - const char* fontsXml, - const char* fallbackFontsXml, - const char* langFallbackFontsDir) + fontFamilies.insert(fontFamilies.end(), + std::make_move_iterator(fallbackFonts.begin()), + std::make_move_iterator(fallbackFonts.end())); +@@ -833,15 +851,16 @@ void SkFontMgr_Android_Parser::GetSystemFontFamilies( + void SkFontMgr_Android_Parser::GetCustomFontFamilies( + std::vector>& fontFamilies, + const SkString& basePath, ++ const SkFontMgr_Android_CustomFonts* custom, + const char* fontsXml, + const char* fallbackFontsXml, + const char* langFallbackFontsDir) { if (fontsXml) { - parse_config_file(fontsXml, fontFamilies, basePath, false); @@ -3160,7 +3155,7 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.cpp b/third_par diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party/skia/src/ports/SkFontMgr_android_parser.h --- a/third_party/skia/src/ports/SkFontMgr_android_parser.h +++ b/third_party/skia/src/ports/SkFontMgr_android_parser.h -@@ -15,6 +15,7 @@ +@@ -17,6 +17,7 @@ #include "include/private/base/SkTArray.h" #include "include/private/base/SkTDArray.h" #include "src/core/SkTHash.h" @@ -3168,16 +3163,16 @@ diff --git a/third_party/skia/src/ports/SkFontMgr_android_parser.h b/third_party #include #include -@@ -105,11 +106,13 @@ struct FontFamily { +@@ -109,11 +110,13 @@ struct FontFamily { namespace SkFontMgr_Android_Parser { /** Parses system font configuration files and appends result to fontFamilies. */ --void GetSystemFontFamilies(SkTDArray& fontFamilies); -+void GetSystemFontFamilies(SkTDArray& fontFamilies, +-void GetSystemFontFamilies(std::vector>& fontFamilies); ++void GetSystemFontFamilies(std::vector>& fontFamilies, + const SkFontMgr_Android_CustomFonts* custom); /** Parses font configuration files and appends result to fontFamilies. */ - void GetCustomFontFamilies(SkTDArray& fontFamilies, + void GetCustomFontFamilies(std::vector>& fontFamilies, const SkString& basePath, + const SkFontMgr_Android_CustomFonts* custom, const char* fontsXml, diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index 5e850a4d..35b1e806 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -87,7 +87,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/net/connectivit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineDetector.java -@@ -23,17 +23,39 @@ import org.chromium.build.annotations.Nullable; +@@ -22,10 +22,31 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector; import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState; @@ -118,9 +118,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.content_public.browser.WebContents; +import org.chromium.net.NetworkChangeNotifier; + + import java.util.function.Supplier; + /** - * Class that detects if the network is offline. Waits for the network to stablize before notifying - * the observer. +@@ -34,7 +55,8 @@ import java.util.function.Supplier; */ @NullMarked class OfflineDetector @@ -130,7 +131,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in // If the connection is online, then we report that immediately via |mIsOfflineCallback|. // |STATUS_INDICATOR_WAIT_ON_OFFLINE_DURATION_MS| and // |mStatusIndicatorWaitOnSwitchOnlineToOfflineDurationMs| control the duration before -@@ -119,6 +141,11 @@ class OfflineDetector +@@ -120,6 +142,11 @@ class OfflineDetector private static final String TAG = "OfflineDetector"; @@ -142,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in /** * Constructs the offline indicator. * @param isOfflineCallback The {@link Callback} is invoked when the connectivity status is -@@ -130,7 +157,13 @@ class OfflineDetector +@@ -131,7 +158,13 @@ class OfflineDetector OfflineDetector( Callback isOfflineCallback, Callback isForegroundCallback, @@ -157,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in mIsOfflineCallback = isOfflineCallback; mIsForegroundCallback = isForegroundCallback; mContext = context; -@@ -234,6 +267,75 @@ class OfflineDetector +@@ -235,6 +268,75 @@ class OfflineDetector updateState(); } @@ -198,7 +199,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in + Snackbar snackbar = Snackbar.make( + mContext.getString(R.string.ask_to_restart_on_connection_change_restart), + /* snackbarController */ this, Snackbar.TYPE_PERSISTENT, Snackbar.UMA_UNKNOWN) -+ .setSingleLine(false) ++ .setDefaultLines(false) + .setAction(mContext.getString(R.string.relaunch), /*actionData*/0) + .setDismissAction(mContext.getString(R.string.ask_to_restart_on_connection_change_close_notification), /*actionData*/1); + SnackbarManager snackbarManager = mSnackbarManagerSupplier.get(); @@ -233,7 +234,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in private void logToAdbConsoleNow(String prefix) { Log.i( TAG, -@@ -320,6 +422,7 @@ class OfflineDetector +@@ -321,6 +423,7 @@ class OfflineDetector ** Calls |mUpdateOfflineStatusIndicatorDelayedRunnable| to update the connection state. */ private void updateState() { @@ -244,9 +245,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorControllerV2.java -@@ -31,6 +31,11 @@ import org.chromium.content_public.common.ContentSwitches; - import java.lang.annotation.Retention; +@@ -31,6 +31,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; + import java.util.function.Supplier; +import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.chrome.browser.layouts.LayoutManager; @@ -283,7 +284,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 -@@ -1417,7 +1417,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1439,7 +1439,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -298,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelSelectorBase.java -@@ -198,6 +198,13 @@ public abstract class TabModelSelectorBase +@@ -199,6 +199,13 @@ public abstract class TabModelSelectorBase return null; } @@ -364,7 +365,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java --- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java +++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelUtils.java -@@ -16,12 +16,16 @@ import org.chromium.build.annotations.Nullable; +@@ -15,6 +15,7 @@ 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; @@ -372,16 +373,17 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse import org.chromium.ui.base.WindowAndroid; import java.util.ArrayList; - import java.util.Collection; +@@ -22,6 +23,9 @@ import java.util.Collection; import java.util.List; import java.util.function.Predicate; + import java.util.function.Supplier; +import java.util.Collections; +import java.util.stream.IntStream; +import java.util.stream.Collectors; /** * A set of convenience methods used for interacting with {@link TabList}s and {@link TabModel}s. -@@ -55,6 +59,20 @@ public class TabModelUtils { +@@ -54,6 +58,20 @@ public class TabModelUtils { return TabModel.INVALID_TAB_INDEX; } @@ -405,7 +407,7 @@ diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browse 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 -@@ -133,6 +133,8 @@ public interface TabWindowManager { +@@ -135,6 +135,8 @@ public interface TabWindowManager { /** Returns the total number of incognito tabs across all tab model selectors. */ int getIncognitoTabCount(); @@ -417,7 +419,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows 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 -@@ -546,6 +546,16 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -551,6 +551,16 @@ public class TabWindowManagerImpl implements TabWindowManager { return tabGroupModelFilter.getTabsInGroup(tabGroupId); } @@ -503,8 +505,8 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro + private Object mDismissActionData; private int mBackgroundColor; private int mTextApperanceResId; - private boolean mSingleLine = true; -@@ -241,6 +243,20 @@ public class Snackbar { + private boolean mDefaultLines = true; +@@ -242,6 +244,20 @@ public class Snackbar { return this; } @@ -544,7 +546,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 -@@ -55,6 +55,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -56,6 +56,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -552,7 +554,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; -@@ -101,11 +102,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -102,11 +103,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -566,7 +568,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro } /** -@@ -124,6 +126,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -125,6 +127,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, @@ -574,7 +576,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -154,6 +157,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -155,6 +158,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); @@ -583,7 +585,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()) { -@@ -428,6 +433,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -429,6 +434,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -599,7 +601,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 -@@ -903,6 +903,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -904,6 +904,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -636,7 +638,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 -@@ -4080,8 +4080,10 @@ void WebContentsImpl::Stop() { +@@ -4076,8 +4076,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -663,7 +665,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1447,6 +1453,8 @@ public class WebContentsImpl +@@ -1460,6 +1466,8 @@ public class WebContentsImpl void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -732,7 +734,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 -@@ -4614,6 +4614,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4630,6 +4630,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -743,7 +745,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 -@@ -3273,6 +3273,7 @@ void LocalFrame::DidFreeze() { +@@ -3312,6 +3312,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -751,7 +753,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3287,6 +3288,7 @@ void LocalFrame::DidResume() { +@@ -3326,6 +3327,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 14c90d4c..caa7d309 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -15,9 +15,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../modules/webaudio/base_audio_context.cc | 12 ++++++++++++ .../renderer/modules/webaudio/base_audio_context.h | 2 ++ .../modules/webaudio/offline_audio_context.cc | 1 + - .../renderer/modules/webaudio/realtime_analyser.cc | 9 ++++++++- + .../renderer/modules/webaudio/realtime_analyser.cc | 13 ++++++++++--- .../platform/runtime_enabled_features.json5 | 5 ++--- - 11 files changed, 57 insertions(+), 5 deletions(-) + 11 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/AudioBuffer-AnalyserNode-fp-mitigations.inc create mode 100644 cromite_flags/third_party/blink/common/features_h/AudioBuffer-AnalyserNode-fp-mitigations.inc @@ -88,7 +88,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_buffer.h b/third_ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/third_party/blink/renderer/modules/webaudio/audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_context.cc -@@ -16,6 +16,7 @@ +@@ -17,6 +17,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/mediastream/media_devices.h" #include "third_party/blink/public/platform/browser_interface_broker_proxy.h" @@ -96,7 +96,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/audio_context.cc b/thir #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/web_audio_latency_hint.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" -@@ -678,7 +679,9 @@ double AudioContext::baseLatency() const { +@@ -850,7 +851,9 @@ double AudioContext::baseLatency() const { DCHECK_CALLED_ON_VALID_SEQUENCE(main_thread_sequence_checker_); DCHECK(destination()); @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b #include "third_party/blink/public/mojom/devtools/console_message.mojom-blink.h" #include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h" #include "third_party/blink/public/platform/platform.h" -@@ -710,6 +711,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { +@@ -774,6 +775,17 @@ LocalDOMWindow* BaseAudioContext::GetWindow() const { return To(GetExecutionContext()); } @@ -170,25 +170,22 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ #include "third_party/blink/renderer/platform/audio/audio_bus.h" #include "third_party/blink/renderer/platform/audio/audio_utilities.h" #include "third_party/blink/renderer/platform/audio/vector_math.h" -@@ -156,6 +157,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( - input_buffer[(i + write_index - fft_size + kInputBufferSize) % - kInputBufferSize]); - -+ value = BaseAudioContext::ShuffleAudioData(value, i); - UNSAFE_TODO(destination[i]) = value; +@@ -117,7 +118,8 @@ void RealtimeAnalyser::GetFloatFrequencyData(DOMFloat32Array* destination_array, + for (unsigned i = 0; i < len; ++i) { + const float linear_value = UNSAFE_TODO(source[i]); + const double db_mag = audio_utilities::LinearToDecibels(linear_value); +- UNSAFE_TODO(destination[i]) = static_cast(db_mag); ++ auto v = static_cast(db_mag); ++ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i); } } -@@ -183,6 +185,8 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { - input_buffer[(i + write_index - fft_size + kInputBufferSize) % - kInputBufferSize]); + } +@@ -155,9 +157,11 @@ void RealtimeAnalyser::GetByteFrequencyData(DOMUint8Array* destination_array, -+ value = BaseAudioContext::ShuffleAudioData(value, i); -+ - // Scale from nominal -1 -> +1 to unsigned byte. - double scaled_value = 128 * (value + 1); - -@@ -306,6 +310,8 @@ void RealtimeAnalyser::ConvertToByteData(DOMUint8Array* destination_array) { - double scaled_value = + // The range m_minDecibels to m_maxDecibels will be scaled to byte values + // from 0 to UCHAR_MAX. +- const double scaled_value = ++ double scaled_value = UCHAR_MAX * (db_mag - min_decibels) * range_scale_factor; + scaled_value = BaseAudioContext::ShuffleAudioData(scaled_value, i); @@ -196,20 +193,32 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ // Clip to valid range. UNSAFE_TODO(destination[i]) = static_cast(ClampTo(scaled_value, 0, UCHAR_MAX)); -@@ -324,7 +330,8 @@ void RealtimeAnalyser::ConvertFloatToDb(DOMFloat32Array* destination_array) { - for (unsigned i = 0; i < len; ++i) { - float linear_value = UNSAFE_TODO(source[i]); - double db_mag = audio_utilities::LinearToDecibels(linear_value); -- UNSAFE_TODO(destination[i]) = static_cast(db_mag); -+ auto v = static_cast(db_mag); -+ UNSAFE_TODO(destination[i]) = BaseAudioContext::ShuffleAudioData(v, i); +@@ -188,6 +192,7 @@ void RealtimeAnalyser::GetFloatTimeDomainData( + input_buffer[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]); + ++ value = BaseAudioContext::ShuffleAudioData(value, i); + UNSAFE_TODO(destination[i]) = value; } } - } +@@ -211,10 +216,12 @@ void RealtimeAnalyser::GetByteTimeDomainData(DOMUint8Array* destination_array) { + + for (unsigned i = 0; i < len; ++i) { + // Buffer access is protected due to modulo operation. +- const float value = UNSAFE_TODO( ++ float value = UNSAFE_TODO( + input_buffer[(i + write_index - fft_size + kInputBufferSize) % + kInputBufferSize]); + ++ value = BaseAudioContext::ShuffleAudioData(value, i); ++ + // Scale from nominal -1 -> +1 to unsigned byte. + const double scaled_value = 128 * (value + 1); + 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 -@@ -575,9 +575,8 @@ +@@ -594,9 +594,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 66f322af..5aa24439 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -395,6 +395,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -397,6 +397,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverList& ContextLifecycleObserverSet(); diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch index c92265b9..d2db790c 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 -@@ -5133,7 +5133,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( +@@ -5141,7 +5141,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin( } void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) { @@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return referrer_; } -@@ -2898,6 +2903,13 @@ void DocumentLoader::CommitNavigation() { +@@ -2901,6 +2906,13 @@ void DocumentLoader::CommitNavigation() { response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly)); } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index ee02db19..e9eb6ceb 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -93,7 +93,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/url_fixer.cc --- a/components/url_formatter/url_fixer.cc +++ b/components/url_formatter/url_fixer.cc -@@ -602,6 +602,10 @@ GURL FixupURLInternal(const std::string& text, +@@ -598,6 +598,10 @@ GURL FixupURLInternal(const std::string& text, } } @@ -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 -@@ -1127,6 +1127,8 @@ component("net") { +@@ -1137,6 +1137,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 0c902b95..49c53e20 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -71,7 +71,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 -@@ -1945,6 +1945,9 @@ if (!is_robolectric && enable_java_templates) { +@@ -1954,6 +1954,9 @@ if (!is_robolectric && enable_java_templates) { sources = [ "//build/android/java/templates/BuildConfig.template" ] defines = [] @@ -84,7 +84,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 -@@ -833,6 +833,8 @@ chrome_java_sources = [ +@@ -839,6 +839,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", @@ -121,7 +121,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ + /** Settings fragment that displays information about Chrome. */ @NullMarked - public class AboutChromeSettings extends PreferenceFragmentCompat + public class AboutChromeSettings extends ChromeBaseSettingsFragment - implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener { + implements EmbeddableSettingsPage, Preference.OnPreferenceClickListener, + Preference.OnPreferenceChangeListener { @@ -132,7 +132,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"; -@@ -72,6 +78,13 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -72,6 +78,13 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment assumeNonNull(p); int currentYear = Calendar.getInstance().get(Calendar.YEAR); p.setSummary(getString(R.string.legal_information_summary, currentYear)); @@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/about_settings/ } @Override -@@ -142,6 +155,19 @@ public class AboutChromeSettings extends PreferenceFragmentCompat +@@ -142,6 +155,19 @@ public class AboutChromeSettings extends ChromeBaseSettingsFragment return true; } @@ -246,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen import android.view.Choreographer; +import androidx.annotation.StringRes; - import org.chromium.base.BuildInfo; + import org.chromium.base.ApkInfo; import org.chromium.base.Callback; @@ -23,6 +24,7 @@ import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -312,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateMen // The badge is hidden if the update menu item has been clicked until there is an // even newer version of Chrome available. showBadge |= -@@ -255,6 +270,72 @@ public class UpdateMenuItemHelper { +@@ -254,6 +269,72 @@ public class UpdateMenuItemHelper { mMenuUiState.itemState.icon = R.drawable.ic_error_24dp_filled; mMenuUiState.itemState.enabled = false; break; @@ -678,7 +678,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 -@@ -2685,6 +2685,12 @@ static_library("browser") { +@@ -2674,6 +2674,12 @@ static_library("browser") { } if (is_android) { @@ -1091,7 +1091,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -363,6 +363,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -372,6 +372,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kProtectedTabsAndroid, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1102,10 +1102,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -453,6 +453,7 @@ public abstract class ChromeFeatureList { - public static final String HUB_BACK_BUTTON = "HubBackButton"; +@@ -462,6 +462,7 @@ public abstract class ChromeFeatureList { public static final String HUB_SLIDE_ANIMATION = "HubSlideAnimation"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String INSTANCE_SWITCHER_V2 = "InstanceSwitcherV2"; public static final String IP_PROTECTION_UX = "IpProtectionUx"; @@ -1282,10 +1282,10 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o +import org.chromium.base.ActivityState; +import org.chromium.base.ApplicationStatus; +import org.chromium.base.ApplicationStatus.ActivityStateListener; - import org.chromium.base.BuildInfo; + import org.chromium.base.ApkInfo; import org.chromium.base.Callback; - import org.chromium.base.ObserverList; -@@ -30,6 +33,7 @@ import org.chromium.base.task.TaskTraits; + import org.chromium.base.DeviceInfo; +@@ -31,6 +34,7 @@ import org.chromium.base.task.TaskTraits; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.RequiresNonNull; @@ -1293,7 +1293,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o import org.chromium.chrome.browser.omaha.metrics.UpdateSuccessMetrics; import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -39,6 +43,11 @@ import java.io.File; +@@ -40,6 +44,11 @@ import java.io.File; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1305,7 +1305,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o /** * Provides the current update state for Chrome. This update state is asynchronously determined and * can change as Chrome runs. -@@ -46,24 +55,26 @@ import java.lang.annotation.RetentionPolicy; +@@ -47,24 +56,26 @@ import java.lang.annotation.RetentionPolicy; * For manually testing this functionality, see {@link UpdateConfigs}. */ @NullMarked @@ -1340,7 +1340,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o } /** A set of properties that represent the current update state for Chrome. */ -@@ -97,6 +108,12 @@ public class UpdateStatusProvider { +@@ -98,6 +109,12 @@ public class UpdateStatusProvider { */ private boolean mIsSimulated; @@ -1353,7 +1353,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o public UpdateStatus() {} UpdateStatus(UpdateStatus other) { -@@ -105,11 +122,13 @@ public class UpdateStatusProvider { +@@ -106,11 +123,13 @@ public class UpdateStatusProvider { latestVersion = other.latestVersion; latestUnsupportedVersion = other.latestUnsupportedVersion; mIsSimulated = other.mIsSimulated; @@ -1367,7 +1367,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o private final UpdateQuery mOmahaQuery; private final UpdateSuccessMetrics mMetrics; private @Nullable UpdateStatus mStatus; -@@ -117,11 +136,6 @@ public class UpdateStatusProvider { +@@ -118,11 +137,6 @@ public class UpdateStatusProvider { /** Whether or not we've recorded the initial update status yet. */ private boolean mRecordedInitialStatus; @@ -1379,7 +1379,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o /** * Adds {@code observer} to notify about update state changes. It is safe to call this multiple * times with the same {@code observer}. This method will always notify {@code observer} of the -@@ -177,6 +191,30 @@ public class UpdateStatusProvider { +@@ -178,6 +192,30 @@ public class UpdateStatusProvider { pingObservers(); } @@ -1410,7 +1410,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o /** * Starts the intent update process, if possible * @param context An {@link Context} that will be used to fire off the update intent. -@@ -184,12 +222,11 @@ public class UpdateStatusProvider { +@@ -185,12 +223,11 @@ public class UpdateStatusProvider { * @return Whether or not the update intent was sent and had a valid handler. */ public boolean startIntentUpdate(Context context, boolean newTask) { @@ -1424,7 +1424,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(mStatus.updateUrl)); if (newTask) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); -@@ -200,9 +237,15 @@ public class UpdateStatusProvider { +@@ -201,9 +238,15 @@ public class UpdateStatusProvider { return true; } @@ -1442,7 +1442,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o } @RequiresNonNull("mStatus") -@@ -211,35 +254,52 @@ public class UpdateStatusProvider { +@@ -212,35 +255,52 @@ public class UpdateStatusProvider { } private void resolveStatus() { @@ -1504,7 +1504,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o mCallback = resultReceiver; } -@@ -251,7 +311,7 @@ public class UpdateStatusProvider { +@@ -252,7 +312,7 @@ public class UpdateStatusProvider { protected UpdateStatus doInBackground() { UpdateStatus testStatus = getTestStatus(); if (testStatus != null) return testStatus; @@ -1513,7 +1513,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o } @Override -@@ -269,6 +329,8 @@ public class UpdateStatusProvider { +@@ -270,6 +330,8 @@ public class UpdateStatusProvider { status.mIsSimulated = true; status.updateState = forcedUpdateState; @@ -1522,7 +1522,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o // Push custom configurations for certain update states. switch (forcedUpdateState) { case UpdateState.UPDATE_AVAILABLE: -@@ -286,31 +348,33 @@ public class UpdateStatusProvider { +@@ -287,31 +349,33 @@ public class UpdateStatusProvider { return status; } @@ -1537,7 +1537,7 @@ diff --git a/chrome/browser/omaha/android/java/src/org/chromium/chrome/browser/o - boolean allowedToUpdate = - checkForSufficientStorage() - // Disable the version update check for automotive. See b/297925838. -- && !BuildInfo.getInstance().isAutomotive +- && !DeviceInfo.isAutomotive() - && PackageUtils.isPackageInstalled( - GooglePlayServicesUtil.GOOGLE_PLAY_STORE_PACKAGE); - status.updateState = @@ -1680,7 +1680,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 -@@ -2324,6 +2324,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2273,6 +2273,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 @@ -1693,7 +1693,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -4288,7 +4294,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4249,7 +4255,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1705,7 +1705,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -4299,6 +4308,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4260,6 +4269,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported @@ -1727,7 +1727,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 -@@ -802,6 +802,7 @@ LensOverlayQueryController::CreateEndpointFetcher( +@@ -709,6 +709,7 @@ LensOverlayQueryController::CreateEndpointFetcher( /*post_data=*/std::move(request_string), /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, chrome::GetChannel(), @@ -1966,7 +1966,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoint_fetcher/endpoint_fetcher.h --- a/components/endpoint_fetcher/endpoint_fetcher.h +++ b/components/endpoint_fetcher/endpoint_fetcher.h -@@ -21,6 +21,8 @@ +@@ -23,6 +23,8 @@ namespace base { class TimeDelta; } // namespace base @@ -1975,7 +1975,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin namespace network { class SimpleURLLoader; -@@ -59,6 +61,7 @@ enum class HttpMethod { +@@ -60,6 +62,7 @@ enum class HttpMethod { kGet = 0, kPost = 1, kDelete = 2, @@ -1983,7 +1983,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin }; enum AuthType { -@@ -72,6 +75,8 @@ enum AuthType { +@@ -73,6 +76,8 @@ enum AuthType { struct EndpointResponse { std::string response; @@ -1992,7 +1992,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin int http_status_code{-1}; std::optional error_type; }; -@@ -359,6 +364,7 @@ class EndpointFetcher { +@@ -360,6 +365,7 @@ class EndpointFetcher { const std::vector& headers, const std::vector& cors_exempt_headers, version_info::Channel channel, @@ -2000,7 +2000,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin const RequestParams request_params); // Less preferred convenience constructor for requests requiring no -@@ -375,6 +381,14 @@ class EndpointFetcher { +@@ -376,6 +382,14 @@ class EndpointFetcher { const GURL& url, const net::NetworkTrafficAnnotationTag& annotation_tag); @@ -2015,7 +2015,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Used internally. Can be used if caller constructs their own // url_loader_factory and identity_manager. EndpointFetcher( -@@ -424,11 +438,17 @@ class EndpointFetcher { +@@ -425,11 +439,17 @@ class EndpointFetcher { void OnSanitizationResult(std::unique_ptr response, EndpointFetcherCallback endpoint_fetcher_callback, data_decoder::JsonSanitizer::Result result); @@ -2033,7 +2033,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // Members set in constructor const scoped_refptr url_loader_factory_; -@@ -436,6 +456,8 @@ class EndpointFetcher { +@@ -437,6 +457,8 @@ class EndpointFetcher { // this case, callers should invoke `PerformRequest` directly). const raw_ptr identity_manager_; @@ -2042,7 +2042,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin // The complete definition of the specific network request to be performed. // Contains authentication details and response handling preferences. const RequestParams request_params_; -@@ -445,6 +467,9 @@ class EndpointFetcher { +@@ -446,6 +468,9 @@ class EndpointFetcher { access_token_fetcher_; std::unique_ptr simple_url_loader_; @@ -2055,7 +2055,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc --- a/components/manta/base_provider.cc +++ b/components/manta/base_provider.cc -@@ -163,6 +163,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( +@@ -164,6 +164,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode( /*cors_exempt_headers=*/std::vector(), // ChromeOS always uses the stable channel API key version_info::Channel::STABLE, @@ -2066,7 +2066,7 @@ diff --git a/components/manta/base_provider.cc b/components/manta/base_provider. diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc --- a/components/omnibox/composebox/composebox_query_controller.cc +++ b/components/omnibox/composebox/composebox_query_controller.cc -@@ -314,7 +314,7 @@ ComposeboxQueryController::CreateEndpointFetcher( +@@ -434,7 +434,7 @@ ComposeboxQueryController::CreateEndpointFetcher( /*post_data=*/std::move(request_string), /*headers=*/request_headers, /*cors_exempt_headers=*/cors_exempt_headers, diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index a1830556..4197934f 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -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 -@@ -325,6 +325,7 @@ if (_is_default_toolchain) { +@@ -324,6 +324,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", @@ -77,7 +77,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -419,6 +419,7 @@ chrome_java_resources = [ +@@ -424,6 +424,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -608,6 +609,7 @@ chrome_java_resources = [ +@@ -613,6 +614,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 -@@ -903,6 +903,8 @@ chrome_java_sources = [ +@@ -909,6 +909,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 -@@ -273,6 +273,24 @@ found in the LICENSE file. - 20sp +@@ -311,6 +311,24 @@ found in the LICENSE file. + + @@ -936,7 +937,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -680,7 +680,11 @@ static_library("ui") { +@@ -671,7 +671,11 @@ static_library("ui") { deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ] } } @@ -949,7 +950,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn # TODO(crbug.com/413572035): Move into build files of the actual # modules depending on this. eg: autofill, user_education. if (is_chrome_branded) { -@@ -969,6 +973,25 @@ static_library("ui") { +@@ -985,6 +989,25 @@ static_library("ui") { "//extensions/browser:extension_action_enums", ] } @@ -1032,7 +1033,7 @@ diff --git a/chrome/browser/ui/search_engines/edit_search_engine_controller.h b/ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chrome/browser/ui/search_engines/keyword_editor_controller.cc --- a/chrome/browser/ui/search_engines/keyword_editor_controller.cc +++ b/chrome/browser/ui/search_engines/keyword_editor_controller.cc -@@ -30,13 +30,14 @@ KeywordEditorController::~KeywordEditorController() = default; +@@ -29,13 +29,14 @@ KeywordEditorController::~KeywordEditorController() = default; int KeywordEditorController::AddTemplateURL(const std::u16string& title, const std::u16string& keyword, @@ -1049,7 +1050,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chr return new_index; } -@@ -44,7 +45,8 @@ int KeywordEditorController::AddTemplateURL(const std::u16string& title, +@@ -43,7 +44,8 @@ int KeywordEditorController::AddTemplateURL(const std::u16string& title, void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url, const std::u16string& title, const std::u16string& keyword, @@ -1059,7 +1060,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.cc b/chr DCHECK(!url.empty()); const std::optional index = table_model_->IndexOfTemplateURL(template_url); -@@ -56,11 +58,12 @@ void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url, +@@ -55,11 +57,12 @@ void KeywordEditorController::ModifyTemplateURL(TemplateURL* template_url, // Don't do anything if the entry didn't change. if ((template_url->short_name() == title) && @@ -1099,7 +1100,7 @@ diff --git a/chrome/browser/ui/search_engines/keyword_editor_controller.h b/chro diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chrome/browser/ui/search_engines/template_url_table_model.cc --- a/chrome/browser/ui/search_engines/template_url_table_model.cc +++ b/chrome/browser/ui/search_engines/template_url_table_model.cc -@@ -212,7 +212,8 @@ void TemplateURLTableModel::Remove(size_t index) { +@@ -211,7 +211,8 @@ void TemplateURLTableModel::Remove(size_t index) { void TemplateURLTableModel::Add(size_t index, const std::u16string& short_name, const std::u16string& keyword, @@ -1109,7 +1110,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURLData data; -@@ -220,13 +221,15 @@ void TemplateURLTableModel::Add(size_t index, +@@ -219,13 +220,15 @@ void TemplateURLTableModel::Add(size_t index, data.SetKeyword(keyword); data.SetURL(url); data.is_active = TemplateURLData::ActiveStatus::kTrue; @@ -1126,7 +1127,7 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.cc b/chro DCHECK(index <= RowCount()); DCHECK(!url.empty()); TemplateURL* template_url = GetTemplateURL(index); -@@ -235,7 +238,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, +@@ -234,7 +237,7 @@ void TemplateURLTableModel::ModifyTemplateURL(size_t index, DCHECK(template_url_service_->GetDefaultSearchProvider() != template_url || template_url->SupportsReplacement( template_url_service_->search_terms_data())); @@ -1171,7 +1172,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -439,4 +444,7 @@ void RegisterChromeWebUIConfigs() { +@@ -441,4 +446,7 @@ void RegisterChromeWebUIConfigs() { #if BUILDFLAG(ENTERPRISE_WATERMARK) map.AddWebUIConfig(std::make_unique()); #endif @@ -1388,7 +1389,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2571,6 +2571,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2560,6 +2560,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1397,7 +1398,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT}, {"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE}, {"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE}, -@@ -3906,7 +3908,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3849,7 +3851,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSiteSettingsStrings(html_source, profile); AddSiteDataPageStrings(html_source, profile); AddStorageAccessStrings(html_source); @@ -1890,7 +1891,7 @@ new file mode 100644 diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -190,6 +190,17 @@ template("chrome_extra_paks") { +@@ -189,6 +189,17 @@ template("chrome_extra_paks") { deps += [ "//chrome/browser/resources:component_extension_resources" ] } @@ -1957,7 +1958,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -2079,6 +2079,10 @@ void TemplateURL::SetURL(const std::string& url) { +@@ -2125,6 +2125,10 @@ void TemplateURL::SetURL(const std::string& url) { url_ref().InvalidateCachedValues(); } @@ -1971,7 +1972,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h --- a/components/search_engines/template_url.h +++ b/components/search_engines/template_url.h -@@ -989,6 +989,7 @@ class TemplateURL { +@@ -1007,6 +1007,7 @@ class TemplateURL { bool CreatedByRegulatoryProgram() const; void SetURL(const std::string& url); @@ -2020,7 +2021,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -255,7 +255,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -259,7 +259,8 @@ class TemplateURLService final : public WebDataServiceConsumer, TemplateURL* AddWithOverrides(std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -2030,7 +2031,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // Removes the keyword from the model. This deletes the supplied TemplateURL. // This fails if the supplied template_url is the default search provider. -@@ -341,7 +342,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -345,7 +346,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -2136,7 +2137,7 @@ diff --git a/third_party/polymer/v3_0/BUILD.gn b/third_party/polymer/v3_0/BUILD. diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc --- a/ui/base/template_expressions.cc +++ b/ui/base/template_expressions.cc -@@ -20,6 +20,7 @@ +@@ -16,6 +16,7 @@ #include "base/notreached.h" #include "base/strings/escape.h" #include "base/values.h" @@ -2144,7 +2145,7 @@ diff --git a/ui/base/template_expressions.cc b/ui/base/template_expressions.cc #if DCHECK_IS_ON() #include "third_party/re2/src/re2/re2.h" // nogncheck -@@ -171,11 +172,25 @@ bool ReplaceTemplateExpressionsInternal( +@@ -168,11 +169,25 @@ bool ReplaceTemplateExpressionsInternal( std::string key(source.substr(current_pos, key_end - current_pos)); CHECK(!key.empty()); @@ -2354,20 +2355,36 @@ diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css b/ui/webui/r overflow-y: hidden; padding: 0; position: absolute; +diff --git a/ui/webui/resources/cr_elements/cr_shared_style_lit.css b/ui/webui/resources/cr_elements/cr_shared_style_lit.css +--- a/ui/webui/resources/cr_elements/cr_shared_style_lit.css ++++ b/ui/webui/resources/cr_elements/cr_shared_style_lit.css +@@ -61,7 +61,7 @@ iron-list.cr-separators > *:not([first]) { + height: inherit; + margin: 0 auto; + max-width: var(--cr-centered-card-max-width); +- min-width: 550px; ++ min-width: var(--cr-centered-card-min-width); + position: relative; + width: calc(100% * var(--cr-centered-card-width-percentage)); + } diff --git a/ui/webui/resources/cr_elements/cr_shared_vars.css b/ui/webui/resources/cr_elements/cr_shared_vars.css --- a/ui/webui/resources/cr_elements/cr_shared_vars.css +++ b/ui/webui/resources/cr_elements/cr_shared_vars.css -@@ -228,6 +228,10 @@ html { +@@ -226,6 +226,14 @@ html { + --cr-form-field-label-font-size: .625rem; + --cr-form-field-label-height: 1em; --cr-form-field-label-line-height: 1; - } - -+html[chrome-android] { -+ --cr-section-indent-width: 0px; ++ ++ --cr-centered-card-min-width: 550px; +} + ++html[chrome-android] { ++ --cr-section-indent-width: 0px; ++ --cr-centered-card-width-percentage: 1; ++ --cr-centered-card-min-width: 0px; + } + html { - /* Colors: These variables should never be overridden and should only be used - as fallback values for shared cr_elements or in UIs that do not have diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn --- a/ui/webui/resources/css/BUILD.gn +++ b/ui/webui/resources/css/BUILD.gn diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index f4418fbf..647b20d2 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -570,6 +570,7 @@ chrome_java_resources = [ +@@ -575,6 +575,7 @@ chrome_java_resources = [ "java/res/layout/shopping_accessory_view_layout.xml", "java/res/layout/status_indicator_container.xml", "java/res/layout/suggestions_tile_view_condensed.xml", @@ -45,14 +45,14 @@ 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 -@@ -988,6 +988,7 @@ chrome_java_sources = [ +@@ -996,6 +996,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java", "java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java", "java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java", + "java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java", "java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java", - "java/src/org/chromium/chrome/browser/site_settings/CookieControlsServiceBridge.java", "java/src/org/chromium/chrome/browser/site_settings/ManageSpaceActivity.java", + "java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java", 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 @@ -201,7 +201,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java -@@ -190,6 +190,9 @@ public class IntentHandler { +@@ -197,6 +197,9 @@ public class IntentHandler { private static final String EXTRA_TAB_LAUNCH_TYPE = "org.chromium.chrome.browser.tab_launch_type"; @@ -211,8 +211,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** A hash code for the URL to verify intent data hasn't been modified. */ public static final String EXTRA_DATA_HASH_CODE = "org.chromium.chrome.browser.data_hash"; -@@ -1510,6 +1513,17 @@ public class IntentHandler { - return TabGroupMetadata.maybeCreateFromBundle(bundle); +@@ -1558,6 +1561,17 @@ public class IntentHandler { + return IntentUtils.safeGetIntExtra(intent, EXTRA_DEST_TAB_ID, Tab.INVALID_TAB_ID); } + public static void setForceIncognitoMode(Intent intent) { @@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j /** * Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent * will be trusted and therefore able to launch Incognito tabs. -@@ -1677,7 +1691,7 @@ public class IntentHandler { +@@ -1759,7 +1773,7 @@ public class IntentHandler { String headers = getExtraHeadersFromIntent(intent); headers = maybeAddAdditionalContentHeaders(intent, url, headers); @@ -272,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis // Only the ChromeLauncherActivity can handle search intents. Drop the intent and abort the // launch. -@@ -508,8 +520,8 @@ public class LaunchIntentDispatcher { +@@ -507,8 +519,8 @@ public class LaunchIntentDispatcher { /*incognito*/true); newIntent.setData(mIntent.getData()); newIntent.setPackage(applicationContext.getPackageName()); @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStore; +@@ -105,6 +105,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStore; import org.chromium.chrome.browser.ui.cars.DrivingRestrictionsManager; import org.chromium.chrome.browser.ui.hats.SurveyClientFactory; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager; @@ -293,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; import org.chromium.chrome.browser.webapps.ChromeWebApkHost; -@@ -704,6 +705,7 @@ public class ProcessInitializationHandler { +@@ -716,6 +717,7 @@ public class ProcessInitializationHandler { tasks.add(WebApkUninstallTracker::runDeferredTasks); @@ -468,7 +468,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -391,6 +391,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -400,6 +400,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kRelatedSearchesAllLanguage, &kRelatedSearchesSwitch, &kReloadTabUiResourcesIfChanged, @@ -479,7 +479,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -561,6 +561,7 @@ public abstract class ChromeFeatureList { +@@ -569,6 +569,7 @@ public abstract class ChromeFeatureList { "ReadAloudIPHMenuButtonHighlightCCT"; public static final String READALOUD_PLAYBACK = "ReadAloudPlayback"; public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek"; @@ -490,7 +490,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -6098,6 +6098,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6050,6 +6050,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d Make sure a phone app is enabled on this device diff --git a/build/patches/Enable-snackbar-swipe.patch b/build/patches/Enable-snackbar-swipe.patch index a6d58f51..c5e31df6 100644 --- a/build/patches/Enable-snackbar-swipe.patch +++ b/build/patches/Enable-snackbar-swipe.patch @@ -24,16 +24,16 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro import android.view.Gravity; import android.view.LayoutInflater; import android.view.SurfaceView; -@@ -35,6 +37,9 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerFactory; +@@ -34,6 +36,9 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; + import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerFactory; import org.chromium.chrome.ui.messages.R; - import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgePadAdjuster; import org.chromium.components.browser_ui.styles.SemanticColorUtils; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.ScrollDirection; +import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; import org.chromium.components.browser_ui.widget.text.TemplatePreservingTextView; import org.chromium.ui.base.WindowAndroid; - import org.chromium.ui.insets.InsetObserver; + import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster; @@ -47,7 +52,7 @@ import org.chromium.ui.interpolators.Interpolators; // TODO (jianli): Change this class and its methods back to package protected after the offline // indicator experiment is done. @@ -41,9 +41,9 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro -public class SnackbarView implements InsetObserver.WindowInsetObserver { +public class SnackbarView implements InsetObserver.WindowInsetObserver, View.OnTouchListener, SwipeHandler { private static final int MAX_LINES = 5; + private static final int DEFAULT_LINES = 2; - private final @Nullable WindowAndroid mWindowAndroid; -@@ -88,6 +93,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -89,6 +94,16 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { } }; @@ -60,7 +60,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro /** * Creates an instance of the {@link SnackbarView}. * -@@ -149,7 +164,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -150,7 +165,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { // Make sure clicks are not consumed by content beneath the container view. mContainerView.setClickable(true); @@ -74,7 +74,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mSnackbarView = mContainerView.findViewById(R.id.snackbar); mAnimationDuration = mContainerView.getResources().getInteger(android.R.integer.config_mediumAnimTime); -@@ -502,4 +522,58 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -503,4 +523,58 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public @Nullable EdgeToEdgePadAdjuster getEdgeToEdgePadAdjusterForTesting() { return mEdgeToEdgePadAdjuster; } diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index ba695dba..2bd673ef 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -62,7 +62,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ --- a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts +++ b/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts @@ -34,6 +34,10 @@ const UIStrings = { - *@description Title of a setting under the Debugger category in Settings + * @description Title of a setting under the Debugger category in Settings */ disableAsyncStackTraces: 'Disable async stack traces', + /** @@ -70,7 +70,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ + */ + disableDebuggerStatement: 'Disable debugger statement', /** - *@description Title of a setting under the Debugger category that can be invoked through the Command Menu + * @description Title of a setting under the Debugger category that can be invoked through the Command Menu */ @@ -418,6 +422,25 @@ Common.Settings.registerSettingExtension({ ], @@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js --- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js +++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js -@@ -1468,6 +1468,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume +@@ -1477,6 +1477,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content."); inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking."); inspectorBackend.registerCommand("Debugger.setBlackboxExecutionContexts", [{"name": "uniqueIds", "type": "array", "optional": false, "description": "Array of execution context unique ids for the debugger to ignore.", "typeRef": "string"}], [], "Replace previous blackbox execution contexts with passed ones. Forces backend to skip stepping/pausing in scripts in these execution contexts. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful."); @@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts -@@ -5090,6 +5090,10 @@ export namespace ProtocolMapping { +@@ -5122,6 +5122,10 @@ export namespace ProtocolMapping { paramsType: [Protocol.Debugger.SetBlackboxExecutionContextsRequest]; returnType: void; }; @@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts -@@ -4519,6 +4519,8 @@ declare namespace ProtocolProxyApi { +@@ -4588,6 +4588,8 @@ declare namespace ProtocolProxyApi { */ invoke_setBlackboxExecutionContexts(params: Protocol.Debugger.SetBlackboxExecutionContextsRequest): Promise; @@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts --- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts +++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts -@@ -19521,6 +19521,10 @@ export namespace Debugger { +@@ -19774,6 +19774,10 @@ export namespace Debugger { uniqueIds: string[]; } @@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json --- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json +++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json -@@ -29751,8 +29751,17 @@ +@@ -30054,8 +30054,17 @@ "$ref": "WasmDisassemblyChunk" } ] @@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools "name": "nextWasmDisassemblyChunk", "description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.", "experimental": true, -@@ -32933,4 +32942,4 @@ +@@ -33236,4 +33245,4 @@ ] } ] diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 405dd0f7..0ac16236 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -262,7 +262,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -154,6 +154,11 @@ for the previous order (main_preferences_legacy). --> +@@ -145,6 +145,11 @@ found in the LICENSE file. android:key="useragent_settings" android:order="20" android:title="@string/prefs_useragent_settings"/> @@ -285,8 +285,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo import java.io.File; -@@ -451,6 +452,11 @@ public class DownloadUtils { - String referrer, +@@ -452,6 +453,11 @@ public class DownloadUtils { + @Nullable String referrer, @DownloadOpenSource int source, Context context) { + if (UserScriptsUtils.getInstance().openFile(filePath, mimeType, downloadGuid, @@ -300,7 +300,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java -@@ -148,6 +148,8 @@ import java.util.Date; +@@ -153,6 +153,8 @@ import java.util.Date; import java.util.List; import java.util.Locale; @@ -309,7 +309,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni /** * Handles the initialization dependences of the browser process. This is meant to handle the * initialization that is not tied to any particular Activity, and the logic that should only be -@@ -643,6 +645,8 @@ public class ProcessInitializationHandler { +@@ -655,6 +657,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -338,7 +338,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3682,6 +3682,13 @@ static_library("browser") { +@@ -3690,6 +3690,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -355,7 +355,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -187,6 +187,7 @@ +@@ -191,6 +191,7 @@ #include "components/ui_devtools/switches.h" #include "components/variations/variations_switches.h" #include "components/version_info/channel.h" @@ -374,7 +374,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h" #include "chrome/browser/gcm/gcm_product_util.h" -@@ -2007,6 +2008,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2084,6 +2085,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -400,7 +400,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -590,6 +590,11 @@ +@@ -591,6 +591,11 @@ #include "chrome/browser/net/nss_service_factory.h" #endif @@ -412,7 +412,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { main_parts->AddParts(std::make_unique()); } -@@ -1430,6 +1435,10 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1428,6 +1433,10 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); @@ -426,7 +426,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -123,6 +123,10 @@ +@@ -121,6 +121,10 @@ #include "extensions/common/manifest.h" #endif @@ -437,7 +437,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1480,6 +1484,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1473,6 +1477,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, // initializing the supervised flag if necessary). ChildAccountServiceFactory::GetForProfile(profile)->Init(); ListFamilyMembersServiceFactory::GetForProfile(profile)->Init(); @@ -525,7 +525,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" -@@ -430,7 +433,9 @@ void RegisterChromeWebUIConfigs() { +@@ -432,7 +435,9 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig( std::make_unique()); #endif @@ -539,7 +539,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -152,6 +152,7 @@ template("chrome_extra_paks") { +@@ -151,6 +151,7 @@ template("chrome_extra_paks") { "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak", "$root_gen_dir/third_party/blink/public/strings/permission_element_generated_strings.pak", "$root_gen_dir/ui/resources/ui_lottie_resources.pak", @@ -547,7 +547,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/ui/webui/resources/webui_resources.pak", ] -@@ -175,6 +176,7 @@ template("chrome_extra_paks") { +@@ -174,6 +175,7 @@ template("chrome_extra_paks") { "//third_party/blink/public/strings:permission_element_generated_strings", "//ui/resources:ui_lottie_resources_grd", "//ui/webui/resources", @@ -565,11 +565,11 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer + bool allow_userscript = false; }; - // Event triggering release of blocked requests. + // The renderer configuration parameters are set during the process lock update diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -231,6 +231,12 @@ static_library("renderer") { +@@ -237,6 +237,12 @@ static_library("renderer") { "//v8", ] @@ -585,7 +585,7 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc --- a/chrome/renderer/chrome_content_renderer_client.cc +++ b/chrome/renderer/chrome_content_renderer_client.cc -@@ -252,6 +252,11 @@ +@@ -256,6 +256,11 @@ #include "chrome/renderer/media/chrome_key_systems.h" #endif @@ -597,7 +597,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; -@@ -417,6 +422,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -421,6 +426,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) @@ -612,7 +612,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -597,6 +610,15 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -618,6 +631,15 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, std::make_unique()); #endif @@ -628,7 +628,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PAINT_PREVIEW) new paint_preview::PaintPreviewRecorderImpl(render_frame); #endif -@@ -1359,6 +1381,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1422,6 +1444,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -646,7 +646,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1368,6 +1401,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1431,6 +1464,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -664,7 +664,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1377,6 +1421,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1440,6 +1484,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -685,7 +685,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc --- a/chrome/renderer/chrome_render_thread_observer.cc +++ b/chrome/renderer/chrome_render_thread_observer.cc -@@ -54,6 +54,10 @@ +@@ -55,6 +55,10 @@ #include "third_party/blink/public/web/web_security_policy.h" #include "third_party/blink/public/web/web_view.h" @@ -696,7 +696,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ #if BUILDFLAG(IS_CHROMEOS) #include "chrome/renderer/ash_merge_session_loader_throttle.h" #endif -@@ -220,6 +224,9 @@ void ChromeRenderThreadObserver::SetConfiguration( +@@ -239,6 +243,9 @@ void ChromeRenderThreadObserver::SetConfiguration( chrome::mojom::DynamicParamsPtr params) { base::AutoLock lock(dynamic_params_lock_); dynamic_params_ = std::move(params); @@ -705,7 +705,7 @@ diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/ +#endif } - void ChromeRenderThreadObserver::ConfigureIdentifiabilityStudy( + #if !BUILDFLAG(IS_ANDROID) diff --git a/components/components_strings.grd b/components/components_strings.grd --- a/components/components_strings.grd +++ b/components/components_strings.grd @@ -11505,7 +11505,7 @@ diff --git a/ipc/ipc_message_start.h b/ipc/ipc_message_start.h diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec --- a/tools/gritsettings/resource_ids.spec +++ b/tools/gritsettings/resource_ids.spec -@@ -1186,6 +1186,12 @@ +@@ -1206,6 +1206,12 @@ "META": {"sizes": {"includes": [30],}}, "includes": [7480], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 6e76e626..578391ee 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -48,9 +48,10 @@ suit Cromite logic. .../browser/adblock_content_browser_client.h | 241 +- .../browser/adblock_internals_page_handler.cc | 9 +- .../browser/adblock_url_loader_factory.cc | 71 +- - .../browser/adblock_webcontents_observer.cc | 62 +- + .../adblock_web_ui_controller_factory.cc | 1 + + .../browser/adblock_webcontents_observer.cc | 63 +- .../browser/adblock_webcontents_observer.h | 5 +- - .../content/browser/element_hider_impl.cc | 13 +- + .../content/browser/element_hider_impl.cc | 17 +- .../content/browser/eyeo_document_info.cc | 15 + .../content/browser/eyeo_document_info.h | 9 + .../adblock_request_throttle_factory.cc | 2 +- @@ -60,25 +61,28 @@ suit Cromite logic. .../factories/subscription_service_factory.cc | 22 +- .../factories/subscription_service_factory.h | 1 + .../browser/frame_hierarchy_builder.cc | 1 + - .../content/browser/page_view_stats.cc | 71 +- + .../content/browser/page_view_stats.cc | 83 +- .../browser/resource_classification_runner.h | 7 + .../resource_classification_runner_impl.cc | 71 +- .../resource_classification_runner_impl.h | 8 + components/adblock/core/BUILD.gn | 39 - components/adblock/core/common/BUILD.gn | 8 - - .../adblock/core/common/adblock_constants.cc | 2 - + .../adblock/core/common/adblock_constants.cc | 17 +- .../adblock/core/common/adblock_constants.h | 1 - - .../adblock/core/common/adblock_prefs.cc | 57 +- - .../adblock/core/common/adblock_prefs.h | 7 +- - components/adblock/core/common/app_info.cc | 12 - + .../adblock/core/common/adblock_prefs.cc | 66 +- + .../adblock/core/common/adblock_prefs.h | 9 +- + components/adblock/core/common/app_info.cc | 17 +- + components/adblock/core/common/app_info.h | 1 - .../configuration/filtering_configuration.h | 5 + - .../persistent_filtering_configuration.cc | 28 +- + .../persistent_filtering_configuration.cc | 37 +- .../persistent_filtering_configuration.h | 6 + .../core/converter/flatbuffer_converter.cc | 2 +- - .../adblock/core/converter/parser/metadata.cc | 1 + + .../converter/parser/filter_classifier.cc | 5 +- + .../adblock/core/converter/parser/metadata.cc | 14 +- .../core/converter/parser/test/test_rules.txt | 21 + - .../core/converter/parser/url_filter.cc | 15 +- - .../converter/parser/url_filter_options.cc | 21 +- + .../core/converter/parser/url_filter.cc | 20 +- + .../converter/parser/url_filter_options.cc | 34 +- + .../serializer/filter_keyword_extractor.cc | 13 +- .../serializer/flatbuffer_serializer.cc | 102 +- components/adblock/core/features.cc | 6 +- .../core/net/adblock_resource_request_impl.cc | 26 +- @@ -99,7 +103,7 @@ suit Cromite logic. .../adblock/core/subscription/subscription.cc | 20 + .../adblock/core/subscription/subscription.h | 3 + .../subscription_collection_impl.cc | 1 + - .../core/subscription/subscription_config.cc | 41 +- + .../core/subscription/subscription_config.cc | 92 +- .../core/subscription/subscription_config.h | 6 +- .../subscription_downloader_impl.cc | 19 +- .../subscription_persistent_metadata.h | 1 + @@ -127,7 +131,7 @@ suit Cromite logic. .../renderer/core/exported/web_document.cc | 13 +- .../blink/renderer/core/html/html_element.cc | 8 +- .../definitions/adblock_private.d.ts | 14 + - 122 files changed, 9249 insertions(+), 618 deletions(-) + 126 files changed, 9337 insertions(+), 689 deletions(-) rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts @@ -153,10 +157,10 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j -Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. ---> - - -@@ -100,11 +91,6 @@ for the previous order (main_preferences_legacy). --> + +@@ -90,11 +81,6 @@ Use of this source code is governed by the GPLv3 that can be found in the compon android:key="autofill_options" android:order="16" android:title="@string/autofill_options_title" /> @@ -168,7 +172,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j +@@ -126,6 +112,11 @@ Use of this source code is governed by the GPLv3 that can be found in the compon android:key="adblock" android:order="13" android:title="@string/prefs_adblock"/> @@ -874,7 +878,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser 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 -@@ -6423,7 +6423,9 @@ ChromeContentBrowserClient:: +@@ -6572,7 +6572,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -885,7 +889,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) if (!frame) { return false; -@@ -6446,9 +6448,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6595,9 +6597,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -900,7 +904,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h --- a/chrome/browser/chrome_content_browser_client.h +++ b/chrome/browser/chrome_content_browser_client.h -@@ -715,11 +715,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -723,11 +723,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( content::FrameTreeNodeId frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -1167,7 +1171,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -182,6 +183,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -183,6 +184,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -1190,7 +1194,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -255,7 +255,6 @@ +@@ -254,7 +254,6 @@ #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" #include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h" @@ -1198,7 +1202,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "components/adblock/content/browser/factories/content_security_policy_injector_factory.h" #include "components/adblock/content/browser/factories/element_hider_factory.h" #include "components/adblock/content/browser/factories/resource_classification_runner_factory.h" -@@ -947,7 +946,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -945,7 +944,6 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -1209,7 +1213,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -66,6 +66,7 @@ build_webui("build") { +@@ -68,6 +68,7 @@ build_webui("build") { "ai_page/ai_tab_organization_subpage.ts", "ai_page/history_search_page.ts", "ai_page/offer_writing_help_page.ts", @@ -1217,7 +1221,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page_index.ts", "appearance_page/appearance_page.ts", -@@ -392,6 +393,7 @@ build_webui("build") { +@@ -399,6 +400,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1778,7 +1782,7 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts --- a/chrome/browser/resources/settings/route.ts +++ b/chrome/browser/resources/settings/route.ts -@@ -246,6 +246,11 @@ function createRoutes(): SettingsRoutes { +@@ -265,6 +265,11 @@ function createRoutes(): SettingsRoutes { r.FONTS.hasMigratedToPlugin = true; } @@ -1858,7 +1862,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -352,7 +352,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -354,7 +354,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { auto* original_profile = profile->GetOriginalProfile(); adblock::EnsureBackgroundServicesStarted(original_profile); adblock::RegisterAdblockWebContentObserver< @@ -1885,7 +1889,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -426,13 +419,6 @@ +@@ -418,13 +411,6 @@ // "desktop_android" is not supported. "platforms": ["chromeos", "linux", "mac", "win"] }, @@ -3081,16 +3085,28 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ } else { // We blocked a subresource request. Collapse whitespace around the // blocked element. +diff --git a/components/adblock/content/browser/adblock_web_ui_controller_factory.cc b/components/adblock/content/browser/adblock_web_ui_controller_factory.cc +--- a/components/adblock/content/browser/adblock_web_ui_controller_factory.cc ++++ b/components/adblock/content/browser/adblock_web_ui_controller_factory.cc +@@ -20,6 +20,7 @@ + #include "components/adblock/content/browser/adblock_internals_ui.h" + #include "components/adblock/core/common/web_ui_constants.h" + #include "content/public/common/url_utils.h" ++#include "url/gurl.h" + + namespace adblock { + diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc b/components/adblock/content/browser/adblock_webcontents_observer.cc --- a/components/adblock/content/browser/adblock_webcontents_observer.cc +++ b/components/adblock/content/browser/adblock_webcontents_observer.cc -@@ -22,10 +22,15 @@ +@@ -22,10 +22,16 @@ #include "components/adblock/content/browser/request_initiator.h" #include "components/adblock/core/common/sitekey.h" #include "components/adblock/core/subscription/subscription_service.h" +#include "components/content_settings/core/browser/host_content_settings_map.h" +#include "components/content_settings/core/common/content_settings.h" #include "content/public/browser/navigation_handle.h" ++#include "content/public/browser/navigation_controller.h" #include "net/base/url_util.h" #include "third_party/blink/public/common/frame/frame_owner_element_type.h" @@ -3100,7 +3116,7 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc namespace { const char* WindowOpenDispositionToString(WindowOpenDisposition value) { switch (value) { -@@ -84,6 +89,16 @@ bool ShouldSkipElementHiding(const GURL& url) { +@@ -84,6 +90,16 @@ bool ShouldSkipElementHiding(const GURL& url) { !url.IsAboutBlank(); } @@ -3117,7 +3133,7 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc } // namespace namespace adblock { -@@ -94,14 +109,16 @@ AdblockWebContentObserver::AdblockWebContentObserver( +@@ -94,14 +110,16 @@ AdblockWebContentObserver::AdblockWebContentObserver( ElementHider* element_hider, SitekeyStorage* sitekey_storage, std::unique_ptr frame_hierarchy_builder, @@ -3136,7 +3152,7 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc AdblockWebContentObserver::~AdblockWebContentObserver() = default; -@@ -141,7 +158,8 @@ void AdblockWebContentObserver::DidFinishNavigation( +@@ -141,7 +159,8 @@ void AdblockWebContentObserver::DidFinishNavigation( VLOG(1) << "[eyeo] Finished navigation: URL=" << url << ", has_commited=" << navigation_handle->HasCommitted() << ", is_error=" << navigation_handle->IsErrorPage() @@ -3146,7 +3162,7 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.cc content::RenderFrameHost* frame = nullptr; if (navigation_handle->HasCommitted()) { frame = navigation_handle->GetRenderFrameHost(); -@@ -153,6 +171,44 @@ void AdblockWebContentObserver::DidFinishNavigation( +@@ -153,6 +172,44 @@ void AdblockWebContentObserver::DidFinishNavigation( VLOG(1) << "[eyeo] Unsupported scheme, skipping injection."; return; } @@ -3223,6 +3239,24 @@ diff --git a/components/adblock/content/browser/adblock_webcontents_observer.h b diff --git a/components/adblock/content/browser/element_hider_impl.cc b/components/adblock/content/browser/element_hider_impl.cc --- a/components/adblock/content/browser/element_hider_impl.cc +++ b/components/adblock/content/browser/element_hider_impl.cc +@@ -133,7 +133,7 @@ void GenerateElemHidingEmuJavaScript(const GURL& url, + } + + std::string GenerateXpath3Dep() { +- static std::string xpath3_dep = ++ std::string xpath3_dep = + "(" + + ui::ResourceBundle::GetSharedInstance().LoadDataResourceString( + IDR_ADBLOCK_SNIPPETS_XPATH3_DEP_JS) + +@@ -155,7 +155,7 @@ void GenerateSnippetScript(const GURL& url, + serializer.Serialize(std::move(input)); + // snippets_lib should be the library as-is, without any escaping or JSON + // parsing. +- static std::string snippets_lib = ++ std::string snippets_lib = + ui::ResourceBundle::GetSharedInstance().LoadDataResourceString( + IDR_ADBLOCK_SNIPPETS_JS); + @@ -242,7 +242,7 @@ void InsertUserCSSAndApplyElemHidingEmuJS( if (!frame_host) { // Render frame host was destroyed before element hiding could be applied. @@ -3500,7 +3534,7 @@ diff --git a/components/adblock/content/browser/frame_hierarchy_builder.cc b/com diff --git a/components/adblock/content/browser/page_view_stats.cc b/components/adblock/content/browser/page_view_stats.cc --- a/components/adblock/content/browser/page_view_stats.cc +++ b/components/adblock/content/browser/page_view_stats.cc -@@ -57,21 +57,6 @@ const char kBlockedStatsCountKey[] = "blocked_pageviews"; +@@ -57,47 +57,26 @@ const char kBlockedStatsCountKey[] = "blocked_pageviews"; // than AA page views. const char kTotalPagesStatsCountKey[] = "pageviews"; @@ -3517,12 +3551,29 @@ diff --git a/components/adblock/content/browser/page_view_stats.cc b/components/ - case PageViewStats::Metric::TotalPages: - return kTotalPagesStatsCountKey; - } --} -- - base::WeakPtr g_last_used_instance; ++base::WeakPtr& GetLastUsedInstance() { ++ static base::NoDestructor> instance; ++ return *instance; + } +-base::WeakPtr g_last_used_instance; +- void RegisterNavigationWithLastUsedPageViewStats( -@@ -89,15 +74,6 @@ void RegisterAcceptableAdsBlockthroughtHitWithLastUsedPageViewStats( + content::RenderFrameHost* render_frame_host) { +- if (g_last_used_instance) { +- g_last_used_instance->RegisterMainFrameNavigation(render_frame_host); ++ if (GetLastUsedInstance()) { ++ GetLastUsedInstance()->RegisterMainFrameNavigation(render_frame_host); + } + } + + void RegisterAcceptableAdsBlockthroughtHitWithLastUsedPageViewStats( + content::RenderFrameHost* render_frame_host) { +- if (g_last_used_instance) { +- g_last_used_instance->RegisterAcceptableAdsBlockthroughtHit( ++ if (GetLastUsedInstance()) { ++ GetLastUsedInstance()->RegisterAcceptableAdsBlockthroughtHit( + render_frame_host); } } @@ -3538,7 +3589,15 @@ diff --git a/components/adblock/content/browser/page_view_stats.cc b/components/ } // namespace PageViewStats::PageViewStats( -@@ -215,22 +191,6 @@ void PageViewStats::RecordParkedMetrics(content::Page& page) { +@@ -107,7 +86,6 @@ PageViewStats::PageViewStats( + DCHECK(classification_runner_); + DCHECK(prefs_); + classification_runner_->AddObserver(this); +- g_last_used_instance = weak_factory_.GetWeakPtr(); + } + + PageViewStats::~PageViewStats() { +@@ -215,22 +193,6 @@ void PageViewStats::RecordParkedMetrics(content::Page& page) { } // If this is the entry matching Page we are looking for... if (main_frame_id == it->first) { @@ -3561,7 +3620,7 @@ diff --git a/components/adblock/content/browser/page_view_stats.cc b/components/ it = parked_metrics_before_main_navigation_.erase(it); } else { ++it; -@@ -239,42 +199,13 @@ void PageViewStats::RecordParkedMetrics(content::Page& page) { +@@ -239,42 +201,13 @@ void PageViewStats::RecordParkedMetrics(content::Page& page) { } void PageViewStats::RecordPageView(content::Page& page, Metric metric) { @@ -3878,7 +3937,14 @@ diff --git a/components/adblock/core/common/BUILD.gn b/components/adblock/core/c diff --git a/components/adblock/core/common/adblock_constants.cc b/components/adblock/core/common/adblock_constants.cc --- a/components/adblock/core/common/adblock_constants.cc +++ b/components/adblock/core/common/adblock_constants.cc -@@ -23,8 +23,6 @@ +@@ -17,14 +17,13 @@ + + #include "components/adblock/core/common/adblock_constants.h" + ++#include "base/no_destructor.h" + #include "base/base64.h" + #include "components/adblock/core/schema/filter_list_schema_generated.h" + #include "components/adblock/core/schema/schema_hash.h" namespace adblock { @@ -3887,6 +3953,34 @@ diff --git a/components/adblock/core/common/adblock_constants.cc b/components/ad const char kAllowlistEverythingFilter[] = "@@*$document"; const char kAdblockFilteringConfigurationName[] = "adblock"; +@@ -108,20 +107,20 @@ const char kBlankPng32x32[] = + "3BAQEAAACCIP+vbkhAAQAAAO8GECAAAZf3V9cAAAAASUVORK5CYII="; + + const std::string& CurrentSchemaVersion() { +- static std::string kCurrentSchemaVersion = +- base::Base64Encode(kSha256_filter_list_schema_generated_h); +- return kCurrentSchemaVersion; ++ static const base::NoDestructor kCurrentSchemaVersion( ++ base::Base64Encode(kSha256_filter_list_schema_generated_h)); ++ return *kCurrentSchemaVersion; + } + + const GURL& TestPagesSubscriptionUrl() { +- static GURL kTestPagesUrl( ++ static const base::NoDestructor kTestPagesUrl( + "https://abptestpages.org/en/abp-testcase-subscription.txt"); +- return kTestPagesUrl; ++ return *kTestPagesUrl; + } + + const GURL& CustomFiltersUrl() { +- static GURL kCustomFiltersUrl("adblock:custom"); +- return kCustomFiltersUrl; ++ static const base::NoDestructor kCustomFiltersUrl("adblock:custom"); ++ return *kCustomFiltersUrl; + } + + std::string_view RewriteUrl(flat::AbpResource type) { diff --git a/components/adblock/core/common/adblock_constants.h b/components/adblock/core/common/adblock_constants.h --- a/components/adblock/core/common/adblock_constants.h +++ b/components/adblock/core/common/adblock_constants.h @@ -3901,7 +3995,14 @@ diff --git a/components/adblock/core/common/adblock_constants.h b/components/adb diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adblock/core/common/adblock_prefs.cc --- a/components/adblock/core/common/adblock_prefs.cc +++ b/components/adblock/core/common/adblock_prefs.cc -@@ -23,7 +23,9 @@ +@@ -17,13 +17,16 @@ + + #include "components/adblock/core/common/adblock_prefs.h" + ++#include "base/no_destructor.h" + #include "base/logging.h" + #include "components/prefs/pref_registry_simple.h" + namespace adblock::common::prefs { // Legacy: Whether to block ads @@ -3912,7 +4013,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc // Legacy: Whether to allow acceptable ads or block them all. // Used now just to map CLI switch. Otherwise use kAdblockSubscriptionsLegacy. -@@ -65,35 +67,6 @@ const char kLastUsedSchemaVersion[] = "adblock.last_used_schema_version"; +@@ -65,35 +68,6 @@ const char kLastUsedSchemaVersion[] = "adblock.last_used_schema_version"; // and for setting query parameters in subscription download requests. const char kSubscriptionMetadata[] = "adblock.subscription_metadata"; @@ -3948,7 +4049,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc // FilteringConfiguration data const char kConfigurationsPrefsPath[] = "filtering.configurations"; -@@ -106,21 +79,12 @@ const char kAutoInstalledSubscriptionsNextUpdateTime[] = +@@ -106,21 +80,12 @@ const char kAutoInstalledSubscriptionsNextUpdateTime[] = "adblock.auto_installed_subscriptions.last_update_time"; // Dict containing stats about acceptable ads page views @@ -3973,7 +4074,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc registry->RegisterListPref(kAdblockAllowedDomainsLegacy, {}); registry->RegisterListPref(kAdblockCustomFiltersLegacy, {}); registry->RegisterListPref(kAdblockSubscriptionsLegacy, {}); -@@ -130,11 +94,10 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -130,17 +95,16 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterStringPref(kLastUsedSchemaVersion, ""); registry->RegisterDictionaryPref(kSubscriptionMetadata); registry->RegisterDictionaryPref(kConfigurationsPrefsPath); @@ -3986,7 +4087,15 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc VLOG(3) << "[eyeo] Registered prefs"; } -@@ -152,12 +115,6 @@ std::vector GetPrefs() { + +-std::vector GetPrefs() { +- static std::vector prefs = { ++const std::vector& GetPrefs() { ++ static const base::NoDestructor> prefs({ + kEnableAdblockLegacy, + kEnableAcceptableAdsLegacy, + kAdblockMoreOptionsEnabled, +@@ -152,16 +116,10 @@ std::vector GetPrefs() { kSubscriptionSignatures, kLastUsedSchemaVersion, kSubscriptionMetadata, @@ -3998,7 +4107,13 @@ diff --git a/components/adblock/core/common/adblock_prefs.cc b/components/adbloc - kTelemetryPageViewStats, kConfigurationsPrefsPath, kEnableAutoInstalledSubscriptions, - kAutoInstalledSubscriptionsNextUpdateTime}; +- kAutoInstalledSubscriptionsNextUpdateTime}; +- return prefs; ++ kAutoInstalledSubscriptionsNextUpdateTime}); ++ return *prefs; + } + + } // namespace adblock::common::prefs diff --git a/components/adblock/core/common/adblock_prefs.h b/components/adblock/core/common/adblock_prefs.h --- a/components/adblock/core/common/adblock_prefs.h +++ b/components/adblock/core/common/adblock_prefs.h @@ -4010,7 +4125,7 @@ diff --git a/components/adblock/core/common/adblock_prefs.h b/components/adblock extern const char kEnableAcceptableAdsLegacy[]; extern const char kAdblockAllowedDomainsLegacy[]; extern const char kAdblockCustomFiltersLegacy[]; -@@ -36,12 +37,6 @@ extern const char kInstallFirstStartSubscriptions[]; +@@ -36,19 +37,13 @@ extern const char kInstallFirstStartSubscriptions[]; extern const char kSubscriptionSignatures[]; extern const char kLastUsedSchemaVersion[]; extern const char kSubscriptionMetadata[]; @@ -4023,10 +4138,33 @@ diff --git a/components/adblock/core/common/adblock_prefs.h b/components/adblock extern const char kConfigurationsPrefsPath[]; extern const char kEnableAutoInstalledSubscriptions[]; extern const char kAutoInstalledSubscriptionsNextUpdateTime[]; + + void RegisterProfilePrefs(PrefRegistrySimple* registry); + +-std::vector GetPrefs(); ++const std::vector& GetPrefs(); + + } // namespace adblock::common::prefs + diff --git a/components/adblock/core/common/app_info.cc b/components/adblock/core/common/app_info.cc --- a/components/adblock/core/common/app_info.cc +++ b/components/adblock/core/common/app_info.cc -@@ -29,18 +29,6 @@ const AppInfo& AppInfo::Get() { +@@ -17,6 +17,7 @@ + + #include "components/adblock/core/common/app_info.h" + ++#include "base/no_destructor.h" + #include "base/strings/string_util.h" + #include "components/version_info/version_info.h" + +@@ -24,23 +25,11 @@ namespace adblock { + + // static + const AppInfo& AppInfo::Get() { +- static AppInfo instance; +- return instance; ++ static const base::NoDestructor instance; ++ return *instance; } AppInfo::AppInfo() { @@ -4045,6 +4183,17 @@ diff --git a/components/adblock/core/common/app_info.cc b/components/adblock/cor } } // namespace adblock +diff --git a/components/adblock/core/common/app_info.h b/components/adblock/core/common/app_info.h +--- a/components/adblock/core/common/app_info.h ++++ b/components/adblock/core/common/app_info.h +@@ -34,7 +34,6 @@ class AppInfo { + std::string client_os; + std::string version; + +- private: + AppInfo(); + }; + diff --git a/components/adblock/core/configuration/filtering_configuration.h b/components/adblock/core/configuration/filtering_configuration.h --- a/components/adblock/core/configuration/filtering_configuration.h +++ b/components/adblock/core/configuration/filtering_configuration.h @@ -4070,7 +4219,12 @@ diff --git a/components/adblock/core/configuration/filtering_configuration.h b/c diff --git a/components/adblock/core/configuration/persistent_filtering_configuration.cc b/components/adblock/core/configuration/persistent_filtering_configuration.cc --- a/components/adblock/core/configuration/persistent_filtering_configuration.cc +++ b/components/adblock/core/configuration/persistent_filtering_configuration.cc -@@ -25,6 +25,7 @@ +@@ -21,10 +21,12 @@ + #include + #include + ++#include "base/no_destructor.h" + #include "base/strings/string_util.h" #include "components/adblock/core/common/adblock_prefs.h" #include "components/prefs/pref_service.h" #include "components/prefs/scoped_user_pref_update.h" @@ -4078,7 +4232,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur #include "base/logging.h" -@@ -34,6 +35,7 @@ namespace { +@@ -34,6 +36,7 @@ namespace { constexpr auto kEnabledKey = std::string_view("enabled"); constexpr auto kDomainsKey = std::string_view("domains"); constexpr auto kCustomFiltersKey = std::string_view("filters"); @@ -4086,7 +4240,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur constexpr auto kFilterListsKey = std::string_view("subscriptions"); base::Value::Dict ReadFromPrefs(PrefService* pref_service, -@@ -42,7 +44,9 @@ base::Value::Dict ReadFromPrefs(PrefService* pref_service, +@@ -42,7 +45,9 @@ base::Value::Dict ReadFromPrefs(PrefService* pref_service, pref_service->GetValue(common::prefs::kConfigurationsPrefsPath).GetDict(); const auto* this_config = all_configurations.FindDict(configuration_name); if (this_config) { @@ -4097,7 +4251,19 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur } return base::Value::Dict(); } -@@ -63,6 +67,7 @@ void SetDefaultValuesIfNeeded(base::Value::Dict& configuration) { +@@ -51,9 +56,9 @@ void StoreToPrefs(const base::Value::Dict& configuration, + PrefService* pref_service, + std::string_view configuration_name) { + // ScopedDictPrefUpdate requires an std::string for some reason: +- static std::string kConfigurationsPrefsPathString( ++ static const base::NoDestructor kConfigurationsPrefsPathString( + common::prefs::kConfigurationsPrefsPath); +- ScopedDictPrefUpdate update(pref_service, kConfigurationsPrefsPathString); ++ ScopedDictPrefUpdate update(pref_service, *kConfigurationsPrefsPathString); + update.Get().Set(configuration_name, configuration.Clone()); + } + +@@ -63,6 +68,7 @@ void SetDefaultValuesIfNeeded(base::Value::Dict& configuration) { } configuration.EnsureList(kDomainsKey); configuration.EnsureList(kCustomFiltersKey); @@ -4105,7 +4271,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur configuration.EnsureList(kFilterListsKey); } -@@ -133,6 +138,7 @@ const std::string& PersistentFilteringConfiguration::GetName() const { +@@ -133,6 +139,7 @@ const std::string& PersistentFilteringConfiguration::GetName() const { } void PersistentFilteringConfiguration::SetEnabled(bool enabled) { @@ -4113,7 +4279,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur if (IsEnabled() == enabled) { return; } -@@ -141,6 +147,14 @@ void PersistentFilteringConfiguration::SetEnabled(bool enabled) { +@@ -141,6 +148,14 @@ void PersistentFilteringConfiguration::SetEnabled(bool enabled) { NotifyEnabledStateChanged(); } @@ -4128,7 +4294,7 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur bool PersistentFilteringConfiguration::IsEnabled() const { const auto pref_value = dictionary_.FindBool(kEnabledKey); DCHECK(pref_value); -@@ -209,6 +223,18 @@ void PersistentFilteringConfiguration::RemoveCustomFilter( +@@ -209,6 +224,18 @@ void PersistentFilteringConfiguration::RemoveCustomFilter( } } @@ -4147,6 +4313,18 @@ diff --git a/components/adblock/core/configuration/persistent_filtering_configur std::vector PersistentFilteringConfiguration::GetCustomFilters() const { return GetFromList(dictionary_, kCustomFiltersKey); +@@ -261,9 +288,9 @@ PersistentFilteringConfiguration::GetPersistedConfigurations( + void PersistentFilteringConfiguration::RemovePersistedData( + PrefService* pref_service, + const std::string& name) { +- static std::string kConfigurationsPrefsPathString( ++ static const base::NoDestructor kConfigurationsPrefsPathString( + common::prefs::kConfigurationsPrefsPath); +- ScopedDictPrefUpdate update(pref_service, kConfigurationsPrefsPathString); ++ ScopedDictPrefUpdate update(pref_service, *kConfigurationsPrefsPathString); + update.Get().Remove(name); + } + diff --git a/components/adblock/core/configuration/persistent_filtering_configuration.h b/components/adblock/core/configuration/persistent_filtering_configuration.h --- a/components/adblock/core/configuration/persistent_filtering_configuration.h +++ b/components/adblock/core/configuration/persistent_filtering_configuration.h @@ -4182,17 +4360,89 @@ diff --git a/components/adblock/core/converter/flatbuffer_converter.cc b/compone } break; } +diff --git a/components/adblock/core/converter/parser/filter_classifier.cc b/components/adblock/core/converter/parser/filter_classifier.cc +--- a/components/adblock/core/converter/parser/filter_classifier.cc ++++ b/components/adblock/core/converter/parser/filter_classifier.cc +@@ -17,6 +17,7 @@ + + #include "components/adblock/core/converter/parser/filter_classifier.h" + ++#include "base/no_destructor.h" + #include "third_party/re2/src/re2/re2.h" + + namespace adblock { +@@ -26,8 +27,8 @@ FilterType FilterClassifier::Classify(std::string_view filter) { + if (!filter.empty() && filter.back() == '}' && + (base::StartsWith(filter, kElemHideFilterSeparator) || + base::StartsWith(filter, kElemHideEmulationFilterSeparator))) { +- static re2::RE2 remove_re("\\{\\s*remove\\s*:\\s*true\\s*;\\s*\\}$"); +- if (re2::RE2::PartialMatch(filter, remove_re)) { ++ static const base::NoDestructor remove_re("\\{\\s*remove\\s*:\\s*true\\s*;\\s*\\}$"); ++ if (re2::RE2::PartialMatch(filter, *remove_re)) { + return FilterType::Remove; + } else { + return FilterType::InlineCss; diff --git a/components/adblock/core/converter/parser/metadata.cc b/components/adblock/core/converter/parser/metadata.cc --- a/components/adblock/core/converter/parser/metadata.cc +++ b/components/adblock/core/converter/parser/metadata.cc -@@ -108,6 +108,7 @@ Metadata::~Metadata() = default; +@@ -19,6 +19,7 @@ + + #include + ++#include "base/no_destructor.h" + #include "base/logging.h" + #include "base/strings/string_number_conversions.h" + #include "base/strings/string_util.h" +@@ -30,7 +31,7 @@ namespace adblock { + // comment line any upcoming comments will be skipped. + // static + absl::optional Metadata::FromStream(std::istream& filter_stream) { +- static re2::RE2 comment_re("^!\\s*(.*?)\\s*:\\s*(.*)"); ++ static base::NoDestructor comment_re("^!\\s*(.*?)\\s*:\\s*(.*)"); + + std::string homepage; + std::string title; +@@ -51,7 +52,7 @@ absl::optional Metadata::FromStream(std::istream& filter_stream) { + auto position_in_stream = filter_stream.tellg(); + while (std::getline(filter_stream, line)) { + base::TrimWhitespaceASCII(line, base::TRIM_ALL, &line); +- if (!re2::RE2::FullMatch(line, comment_re, &key, &value)) { ++ if (!re2::RE2::FullMatch(line, *comment_re, &key, &value)) { + break; + } + +@@ -108,14 +109,15 @@ Metadata::~Metadata() = default; // static bool Metadata::IsValidAdblockHeader(const std::string& adblock_header) { +- static re2::RE2 adblock_header_re("^\\[Adblock.*\\]"); + if ((true)) return true; - static re2::RE2 adblock_header_re("^\\[Adblock.*\\]"); ++ static base::NoDestructor adblock_header_re("^\\[Adblock.*\\]"); std::string adblock_header_trimmed; + base::TrimWhitespaceASCII(adblock_header, base::TRIM_ALL, + &adblock_header_trimmed); + if (!re2::RE2::FullMatch(re2::StringPiece(adblock_header_trimmed.data(), + adblock_header_trimmed.size()), +- adblock_header_re)) { ++ *adblock_header_re)) { + return false; + } + return true; +@@ -126,11 +128,11 @@ bool Metadata::IsValidAdblockHeader(const std::string& adblock_header) { + // static + base::TimeDelta Metadata::ParseExpirationTime( + const std::string& expiration_value) { +- static re2::RE2 expiration_time_re("\\s*([0-9]+)\\s*(h)?.*"); ++ static base::NoDestructor expiration_time_re("\\s*([0-9]+)\\s*(h)?.*"); + std::string expiration_unit; + uint64_t expiration_time; + +- if (!re2::RE2::FullMatch(expiration_value, expiration_time_re, ++ if (!re2::RE2::FullMatch(expiration_value, *expiration_time_re, + &expiration_time, &expiration_unit)) { + VLOG(1) << "[eyeo] Invalid expiration time format: " << expiration_value + << ". Will use default value of " diff --git a/components/adblock/core/converter/parser/test/test_rules.txt b/components/adblock/core/converter/parser/test/test_rules.txt new file mode 100644 --- /dev/null @@ -4222,7 +4472,15 @@ new file mode 100644 diff --git a/components/adblock/core/converter/parser/url_filter.cc b/components/adblock/core/converter/parser/url_filter.cc --- a/components/adblock/core/converter/parser/url_filter.cc +++ b/components/adblock/core/converter/parser/url_filter.cc -@@ -50,6 +50,10 @@ std::string SanitizePipeCharacters(std::string pattern) { +@@ -19,6 +19,7 @@ + + #include + ++#include "base/no_destructor.h" + #include "base/command_line.h" + #include "base/logging.h" + #include "base/strings/string_util.h" +@@ -50,6 +51,10 @@ std::string SanitizePipeCharacters(std::string pattern) { // Skip up to one trailing | characters, this is the right anchor. bool pattern_has_right_anchor = base::EndsWith(piece, "|"); if (pattern_has_right_anchor) { @@ -4233,7 +4491,18 @@ diff --git a/components/adblock/core/converter/parser/url_filter.cc b/components piece.remove_suffix(1); } if (piece.find('|') == std::string_view::npos) { -@@ -133,25 +137,18 @@ absl::optional UrlFilter::FromString(std::string filter_str) { +@@ -81,8 +86,8 @@ bool IsInvalidHostAnchoredFilter(const std::string& pattern) { + // "http://domain.com". + // However, "||domain.com/url=http://example.com" is valid. + // Discard filters that start with "||http://" or similar. +- static re2::RE2 starts_with_protocol(R"(^\|\|\w*:\/\/)"); +- return re2::RE2::PartialMatch(pattern, starts_with_protocol); ++ static const base::NoDestructor starts_with_protocol(R"(^\|\|\w*:\/\/)"); ++ return re2::RE2::PartialMatch(pattern, *starts_with_protocol); + } + + } // namespace +@@ -133,25 +138,18 @@ absl::optional UrlFilter::FromString(std::string filter_str) { if (options->Csp().has_value() && options->Csp().value().empty() && !is_allowing) { @@ -4264,7 +4533,15 @@ diff --git a/components/adblock/core/converter/parser/url_filter.cc b/components diff --git a/components/adblock/core/converter/parser/url_filter_options.cc b/components/adblock/core/converter/parser/url_filter_options.cc --- a/components/adblock/core/converter/parser/url_filter_options.cc +++ b/components/adblock/core/converter/parser/url_filter_options.cc -@@ -92,20 +92,14 @@ absl::optional UrlFilterOptions::FromString( +@@ -17,6 +17,7 @@ + + #include "components/adblock/core/converter/parser/url_filter_options.h" + ++#include "base/no_destructor.h" + #include "base/logging.h" + #include "base/strings/string_split.h" + #include "base/strings/string_util.h" +@@ -92,20 +93,14 @@ absl::optional UrlFilterOptions::FromString( return {}; } } else if (key == "sitekey") { @@ -4291,7 +4568,7 @@ diff --git a/components/adblock/core/converter/parser/url_filter_options.cc b/co } else { ContentType content_type = ContentTypeFromString(key); if (content_type != ContentType::Unknown) { -@@ -188,6 +182,7 @@ absl::optional UrlFilterOptions::ParseRewrite( +@@ -188,6 +183,7 @@ absl::optional UrlFilterOptions::ParseRewrite( // static SiteKeys UrlFilterOptions::ParseSitekeys(const std::string& sitekey_value) { SiteKeys sitekeys; @@ -4299,22 +4576,72 @@ diff --git a/components/adblock/core/converter/parser/url_filter_options.cc b/co for (auto& sitekey : base::SplitString( base::ToUpperASCII(sitekey_value), kDomainOrSitekeySeparator, base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY)) { -@@ -199,6 +194,7 @@ SiteKeys UrlFilterOptions::ParseSitekeys(const std::string& sitekey_value) { +@@ -199,23 +195,25 @@ SiteKeys UrlFilterOptions::ParseSitekeys(const std::string& sitekey_value) { // static bool UrlFilterOptions::IsValidCsp(const std::string& csp_value) { +- static re2::RE2 invalid_csp( + if ((true)) return false; - static re2::RE2 invalid_csp( ++ static const base::NoDestructor invalid_csp( "(;|^) " "?(base-uri|referrer|report-to|report-uri|upgrade-insecure-requests)\\b"); -@@ -209,6 +205,7 @@ bool UrlFilterOptions::IsValidCsp(const std::string& csp_value) { + + return !(re2::RE2::PartialMatch( +- re2::StringPiece(csp_value.data(), csp_value.size()), invalid_csp)); ++ re2::StringPiece(csp_value.data(), csp_value.size()), *invalid_csp)); + } // static void UrlFilterOptions::ParseHeaders(std::string& headers_value) { + if ((true)) return; // replace \x2c with actual , - static re2::RE2 r1("([^\\\\])\\\\x2c"); - re2::RE2::GlobalReplace(&headers_value, r1, "\\1,"); +- static re2::RE2 r1("([^\\\\])\\\\x2c"); +- re2::RE2::GlobalReplace(&headers_value, r1, "\\1,"); ++ static const base::NoDestructor r1("([^\\\\])\\\\x2c"); ++ re2::RE2::GlobalReplace(&headers_value, *r1, "\\1,"); + + // remove extra escape for \\x2c which left +- static re2::RE2 r2("\\\\x2c"); +- re2::RE2::GlobalReplace(&headers_value, r2, "x2c"); ++ static const base::NoDestructor r2("\\\\x2c"); ++ re2::RE2::GlobalReplace(&headers_value, *r2, "x2c"); + } + + // static +diff --git a/components/adblock/core/converter/serializer/filter_keyword_extractor.cc b/components/adblock/core/converter/serializer/filter_keyword_extractor.cc +--- a/components/adblock/core/converter/serializer/filter_keyword_extractor.cc ++++ b/components/adblock/core/converter/serializer/filter_keyword_extractor.cc +@@ -20,6 +20,7 @@ + #include + #include + ++#include "base/no_destructor.h" + #include "base/strings/string_util.h" + #include "components/adblock/core/common/keyword_extractor_utils.h" + #include "third_party/re2/src/re2/re2.h" +@@ -38,16 +39,16 @@ absl::optional FilterKeywordExtractor::GetNextKeyword() { + // keyword because when we have a valid to block url like this one + // domain.cc/in_discovery5 returns with "discovery5" as + // one of the extracted keywords instead of "discovery" +- static const re2::RE2 filter_keyword_extractor( ++ static const base::NoDestructor filter_keyword_extractor( + "([^a-zA-Z0-9%*][a-zA-Z0-9%]{2,})"); +- static const re2::RE2 has_a_following_keyword("(^[^a-zA-Z0-9%*])"); +- static const re2::RE2 following_keyword_consume("(^[a-zA-Z0-9%*]*)"); +- if (!RE2::FindAndConsume(&input_, filter_keyword_extractor, ++ static const base::NoDestructor has_a_following_keyword("(^[^a-zA-Z0-9%*])"); ++ static const base::NoDestructor following_keyword_consume("(^[a-zA-Z0-9%*]*)"); ++ if (!RE2::FindAndConsume(&input_, *filter_keyword_extractor, + ¤t_keyword)) { + return absl::nullopt; + } +- if (!RE2::PartialMatch(input_, has_a_following_keyword)) { +- RE2::Consume(&input_, following_keyword_consume); ++ if (!RE2::PartialMatch(input_, *has_a_following_keyword)) { ++ RE2::Consume(&input_, *following_keyword_consume); + current_keyword.clear(); + continue; + } diff --git a/components/adblock/core/converter/serializer/flatbuffer_serializer.cc b/components/adblock/core/converter/serializer/flatbuffer_serializer.cc --- a/components/adblock/core/converter/serializer/flatbuffer_serializer.cc +++ b/components/adblock/core/converter/serializer/flatbuffer_serializer.cc @@ -11848,15 +12175,16 @@ diff --git a/components/adblock/core/subscription/subscription_collection_impl.c diff --git a/components/adblock/core/subscription/subscription_config.cc b/components/adblock/core/subscription/subscription_config.cc --- a/components/adblock/core/subscription/subscription_config.cc +++ b/components/adblock/core/subscription/subscription_config.cc -@@ -19,6 +19,7 @@ +@@ -19,6 +19,8 @@ #include ++#include "base/no_destructor.h" +#include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" #include "components/adblock/core/common/adblock_constants.h" -@@ -29,7 +30,7 @@ namespace { +@@ -29,7 +31,7 @@ namespace { int g_port_for_testing = 0; std::string GetHost() { @@ -11865,7 +12193,53 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo if (!g_port_for_testing) { return url.spec(); } -@@ -108,7 +109,19 @@ const std::vector& config::GetKnownSubscriptions() { +@@ -43,29 +45,29 @@ std::string GetHost() { + namespace adblock { + + const GURL& AdblockBaseFilterListUrl() { +- static GURL kAdblockBaseFilterListUrl(GetHost()); +- return kAdblockBaseFilterListUrl; ++ static const base::NoDestructor kAdblockBaseFilterListUrl(GetHost()); ++ return *kAdblockBaseFilterListUrl; + } + + const GURL& AcceptableAdsUrl() { +- static GURL kAcceptableAds(GetHost() + "exceptionrules.txt"); +- return kAcceptableAds; ++ static const base::NoDestructor kAcceptableAds(GetHost() + "exceptionrules.txt"); ++ return *kAcceptableAds; + } + + const GURL& AntiCVUrl() { +- static GURL kAntiCV(GetHost() + "abp-filters-anti-cv.txt"); +- return kAntiCV; ++ static const base::NoDestructor kAntiCV(GetHost() + "abp-filters-anti-cv.txt"); ++ return *kAntiCV; + } + + const GURL& DefaultSubscriptionUrl() { +- static GURL kEasylistUrl(GetHost() + "easylist.txt"); +- return kEasylistUrl; ++ static const base::NoDestructor kEasylistUrl(GetHost() + "easylist.txt"); ++ return *kEasylistUrl; + } + + const GURL& RecommendedSubscriptionListUrl() { +- static GURL kRecommendedSubscriptionListUrl(GetHost() + ++ static const base::NoDestructor kRecommendedSubscriptionListUrl(GetHost() + + "recommendations.json"); +- return kRecommendedSubscriptionListUrl; ++ return *kRecommendedSubscriptionListUrl; + } + + KnownSubscriptionInfo::KnownSubscriptionInfo() = default; +@@ -103,12 +105,24 @@ const std::vector& config::GetKnownSubscriptions() { + // The list isn't updated very often. If it starts to become a burden to + // align the C++ representation, better to update it manually because it also + // contains visibility and first run behavior options. +- static std::vector recommendations = { ++ static const base::NoDestructor> recommendations({ + {DefaultSubscriptionUrl(), "EasyList", {"en"}, SubscriptionUiVisibility::Visible, @@ -11886,7 +12260,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo SubscriptionPrivilegedFilterStatus::Forbidden}, {GURL(GetHost() + "abpindo.txt"), "ABPindo", -@@ -262,17 +275,23 @@ const std::vector& config::GetKnownSubscriptions() { +@@ -262,17 +276,23 @@ const std::vector& config::GetKnownSubscriptions() { SubscriptionFirstRunBehavior::SubscribeIfLocaleMatch, SubscriptionPrivilegedFilterStatus::Forbidden}, {AcceptableAdsUrl(), @@ -11914,7 +12288,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo {GURL(GetHost() + "i_dont_care_about_cookies.txt"), "I don't care about cookies", {}, -@@ -303,13 +322,13 @@ const std::vector& config::GetKnownSubscriptions() { +@@ -303,13 +323,13 @@ const std::vector& config::GetKnownSubscriptions() { {}, SubscriptionUiVisibility::Invisible, SubscriptionFirstRunBehavior::Ignore, @@ -11930,7 +12304,19 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo // You can customize subscriptions available on first run and in settings // here. Items are displayed in settings in order declared here. See -@@ -346,7 +365,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { +@@ -329,9 +349,9 @@ const std::vector& config::GetKnownSubscriptions() { + */ + // clang-format on + +- }; ++ }); + +- return recommendations; ++ return *recommendations; + } + + bool config::AllowPrivilegedFilters(const GURL& url) { +@@ -346,7 +366,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { for (const auto& cur : GetKnownSubscriptions()) { if (cur.url == url) { return cur.privileged_status == @@ -11939,7 +12325,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo } } -@@ -356,9 +375,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { +@@ -356,9 +376,7 @@ bool config::AllowPrivilegedFilters(const GURL& url) { const std::vector& config::GetPreloadedSubscriptionConfiguration() { static const std::vector preloaded_subscriptions = @@ -11950,6 +12336,49 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo return preloaded_subscriptions; } +@@ -368,10 +386,11 @@ void SetFilterListServerPortForTesting(int port_for_testing) { + + const std::vector& config::MaybeSplitCombinedAdblockList( + const GURL& filter_list) { +- static std::vector EMPTY_VALUE; +- static std::string_view VALUE_EASYLIST_EN = "easylist.txt"; +- static std::map> +- filter_lists_map = { ++ static const base::NoDestructor> EMPTY_VALUE; ++ static constexpr std::string_view VALUE_EASYLIST_EN = "easylist.txt"; ++ static const base::NoDestructor< ++ std::map>> ++ filter_lists_map({ + {"abpindo+easylist.txt", {"abpindo.txt", VALUE_EASYLIST_EN}}, + {"abpvn+easylist", {"abpvn.txt", VALUE_EASYLIST_EN}}, + {"bulgarian_list+easylist.", +@@ -410,17 +429,20 @@ const std::vector& config::MaybeSplitCombinedAdblockList( + {"rolist+easylist.txt", {"rolist.txt", VALUE_EASYLIST_EN}}, + {"ruadlist+easylist.txt", {"ruadlist.txt", VALUE_EASYLIST_EN}}, + {"turkish+easylist.txt", {"turkish.txt", VALUE_EASYLIST_EN}}, +- }; ++ }); + if (filter_list.host() != AdblockBaseFilterListUrl().host()) { +- // This method works only for ad block maintained lists. +- return EMPTY_VALUE; ++ return *EMPTY_VALUE; + } ++ + auto path = + base::TrimString(filter_list.path_piece(), "/", base::TRIM_LEADING); +- if (filter_lists_map.find(path) == filter_lists_map.end()) { +- return EMPTY_VALUE; ++ ++ auto it = filter_lists_map->find(path); ++ if (it == filter_lists_map->end()) { ++ return *EMPTY_VALUE; + } +- return filter_lists_map[path]; ++ ++ return it->second; + } + + } // namespace adblock diff --git a/components/adblock/core/subscription/subscription_config.h b/components/adblock/core/subscription/subscription_config.h --- a/components/adblock/core/subscription/subscription_config.h +++ b/components/adblock/core/subscription/subscription_config.h @@ -12452,7 +12881,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc --- a/content/public/browser/content_browser_client.cc +++ b/content/public/browser/content_browser_client.cc -@@ -1122,7 +1122,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1139,7 +1139,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -12461,7 +12890,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1131,9 +1131,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1148,9 +1148,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -12476,7 +12905,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h --- a/content/public/browser/content_browser_client.h +++ b/content/public/browser/content_browser_client.h -@@ -2099,7 +2099,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2129,7 +2129,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -12485,7 +12914,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br // Returns the WebSocket creation options. virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame); -@@ -2121,9 +2121,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -2151,9 +2151,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -12531,8 +12960,8 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -655,6 +655,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( - } +@@ -644,6 +644,14 @@ void StyleEngine::PrepareUpdateActiveStyleSheetsInShadow( + collection->PrepareUpdateActiveStyleSheets(medium); } +bool StyleEngine::ActiveUserStyleSheetsContainsKey(const StyleSheetKey& injection_key) { @@ -12549,7 +12978,7 @@ diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/style_engine.h b/third_party/blink/renderer/core/css/style_engine.h --- a/third_party/blink/renderer/core/css/style_engine.h +++ b/third_party/blink/renderer/core/css/style_engine.h -@@ -278,6 +278,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, +@@ -277,6 +277,7 @@ class CORE_EXPORT StyleEngine final : public GarbageCollected, const ComputedStyle* embedder_style) const; void ViewportStyleSettingChanged(); @@ -12605,7 +13034,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc -@@ -2618,13 +2618,7 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2672,13 +2672,7 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index c96d6107..d8eaadab 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -44,7 +44,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -290,6 +290,7 @@ static_library("safe_browsing") { +@@ -299,6 +299,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom", @@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -896,11 +896,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; +@@ -860,11 +860,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; ScopedMLConfigForTesting::ScopedMLConfigForTesting() : original_config_(std::make_unique(GetMLConfig())) { @@ -97,18 +97,18 @@ diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omni diff --git a/components/plus_addresses/BUILD.gn b/components/plus_addresses/BUILD.gn --- a/components/plus_addresses/BUILD.gn +++ b/components/plus_addresses/BUILD.gn -@@ -128,6 +128,7 @@ source_set("plus_addresses") { +@@ -59,6 +59,7 @@ source_set("plus_addresses") { "//services/data_decoder/public/cpp", "//services/network/public/cpp", "//ui/base", + "//third_party/re2", ] public_deps = [ - # While not strictly public by h file inclusion, this is a temporary move + "//base", diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc --- a/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc +++ b/components/safe_browsing/content/renderer/phishing_classifier/phishing_image_embedder.cc -@@ -49,17 +49,9 @@ void PhishingImageEmbedder::BeginImageEmbedding(DoneCallback done_callback) { +@@ -50,17 +50,9 @@ void PhishingImageEmbedder::BeginImageEmbedding(DoneCallback done_callback) { void PhishingImageEmbedder::OnPlaybackDone(std::unique_ptr bitmap) { #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) @@ -132,7 +132,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc --- a/content/browser/browser_interface_binders.cc +++ b/content/browser/browser_interface_binders.cc -@@ -383,6 +383,7 @@ void BindDateTimeChooserForFrame( +@@ -356,6 +356,7 @@ void BindDateTimeChooserForFrame( void BindTextSuggestionHostForFrame( RenderFrameHost* host, mojo::PendingReceiver receiver) { @@ -143,7 +143,7 @@ diff --git a/content/browser/browser_interface_binders.cc b/content/browser/brow diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1814,6 +1814,7 @@ component("net") { +@@ -1829,6 +1829,7 @@ component("net") { ] deps += [ "//sql" ] } diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index b1d69014..b6ad11a8 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -120,7 +120,7 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -244,6 +244,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, +@@ -247,6 +247,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int, BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCombineNewWindowIPCs); @@ -134,7 +134,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -799,6 +799,7 @@ component("platform") { +@@ -811,6 +811,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", @@ -145,7 +145,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/fonts/font_cache.h b/third_party/blink/renderer/platform/fonts/font_cache.h --- a/third_party/blink/renderer/platform/fonts/font_cache.h +++ b/third_party/blink/renderer/platform/fonts/font_cache.h -@@ -318,7 +318,7 @@ class PLATFORM_EXPORT FontCache final { +@@ -317,7 +317,7 @@ class PLATFORM_EXPORT FontCache final { sk_sp CreateTypeface(const FontDescription&, const FontFaceCreationParams&, @@ -495,7 +495,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b #if BUILDFLAG(IS_ANDROID) // If this is a locale-specific family, try looking up locale-specific -@@ -240,15 +273,15 @@ sk_sp FontCache::CreateTypeface( +@@ -240,11 +273,11 @@ sk_sp FontCache::CreateTypeface( if (const char* locale_family = GetLocaleSpecificFamilyName(family)) { if (sk_sp typeface = CreateLocaleSpecificTypeface(font_description, locale_family)) @@ -503,18 +503,14 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b + return ReturnIfAllowed(typeface, name, check_fonts); } #endif // BUILDFLAG(IS_ANDROID) - - // TODO(https://crbug.com/1425390: Assign FontCache::font_manager_ in the - // ctor. - auto font_manager = font_manager_ ? font_manager_ : skia::DefaultFontMgr(); -- return sk_sp(font_manager->matchFamilyStyle( +- return sk_sp(font_manager_->matchFamilyStyle( - name.empty() ? nullptr : name.c_str(), font_description.SkiaFontStyle())); -+ return ReturnIfAllowed(sk_sp(font_manager->matchFamilyStyle( ++ return ReturnIfAllowed(sk_sp(font_manager_->matchFamilyStyle( + name.empty() ? nullptr : name.c_str(), font_description.SkiaFontStyle())), name, check_fonts); } #if !BUILDFLAG(IS_WIN) -@@ -258,6 +291,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -254,6 +287,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( float font_size, AlternateFontName alternate_name) { std::string name; @@ -522,7 +518,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b sk_sp typeface; #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) -@@ -278,7 +312,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( +@@ -274,7 +308,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData( noto_color_emoji_from_gmscore)) { typeface = CreateTypefaceFromUniqueName(creation_params); } else { diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch index 123d42e1..b0628c2a 100644 --- a/build/patches/Force-use-vpython3-for-some-scripts.patch +++ b/build/patches/Force-use-vpython3-for-some-scripts.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni -@@ -547,12 +547,15 @@ template("write_build_config") { +@@ -567,12 +567,15 @@ template("write_build_config") { } else { action_with_pydeps(target_name) { forward_variables_from(invoker, [ "testonly" ]) diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index fc4aff3a..9eb96e14 100644 --- a/build/patches/Guard-for-user-agent-reduction.patch +++ b/build/patches/Guard-for-user-agent-reduction.patch @@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1467,7 +1467,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1510,7 +1510,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterIntegerPref( prefs::kUserAgentReduction, static_cast( @@ -46,7 +46,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd 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 -@@ -3912,9 +3912,9 @@ +@@ -3948,9 +3948,9 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. @@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, // If enabled, the platform version in User-Agent Data will be removed. // This feature is limited to Linux only. -@@ -3926,15 +3926,15 @@ +@@ -3962,15 +3962,15 @@ // This User-Agent Reduction feature has been enabled starting from M101, // but we still keep this flag for future phase tests. { @@ -79,5 +79,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 + status: {"Android": "", "default": "stable"}, // in bromite }, { - name: "RegionCapture", + public: true, -- diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 41bb3b72..d396b5c0 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../api/settings_private/prefs_util.cc | 4 ++ .../history/history_service_factory.cc | 2 + chrome/browser/profiles/profile_impl.cc | 1 + - .../settings/privacy_page/privacy_page.html | 11 +++- + .../settings/privacy_page/privacy_page.html | 9 +++ .../settings/privacy_page/privacy_page.ts | 18 ++++++ .../strings/android_chrome_strings.grd | 12 ++++ .../settings_localized_strings_provider.cc | 5 ++ @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/history/core/common/pref_names.h | 1 + components/history_embeddings/sql_database.cc | 2 +- .../omnibox/browser/shortcuts_backend.cc | 4 +- - 24 files changed, 262 insertions(+), 15 deletions(-) + 24 files changed, 261 insertions(+), 14 deletions(-) create mode 100644 components/cromite_components_strings_grd/History-number-of-days-privacy-setting.grdp diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml @@ -56,7 +56,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -62,6 +62,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +@@ -63,6 +63,7 @@ import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.SettingsFragment; import org.chromium.components.browser_ui.settings.SettingsNavigation; import org.chromium.components.browser_ui.settings.SettingsUtils; @@ -72,9 +72,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting +import java.util.List; + /** Fragment to keep track of the all the privacy related preferences. */ + @NullMarked public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener { -@@ -165,6 +169,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -166,6 +170,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { mPageTitle.set(getString(R.string.prefs_privacy_security)); -@@ -316,6 +322,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -317,6 +323,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); syncAndServicesLink.setSummary(buildFooterString()); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); if (showTrackingProtectionUi()) { if (thirdPartyCookies != null) thirdPartyCookies.setVisible(false); -@@ -654,6 +694,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -649,6 +689,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment || ((System.currentTimeMillis() - updateTimeMs) < TimeUnit.DAYS.toMillis(90)); } @@ -165,8 +165,8 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "components/embedder_support/pref_names.h" #include "components/language/core/browser/pref_names.h" #include "components/live_caption/pref_names.h" -@@ -227,6 +228,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { - (*s_allowlist)[::prefs::kPinSplitTabButton] = +@@ -230,6 +231,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { + (*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] = settings_api::PrefType::kBoolean; + (*s_allowlist)[::prefs::kExpireDaysThreshold] = @@ -190,7 +190,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc --- a/chrome/browser/profiles/profile_impl.cc +++ b/chrome/browser/profiles/profile_impl.cc -@@ -381,6 +381,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -380,6 +380,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -201,7 +201,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -105,6 +105,15 @@ +@@ -92,6 +92,15 @@ sub-label="$i18n{permissionsPageDescription}" on-click="onPermissionsPageClick_" role-description="$i18n{subpageArrowRoleDescription}"> @@ -217,17 +217,10 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/
[[dbdDeletionConfirmationToastLabel_]]
-@@ -1328,4 +1337,4 @@ - - - -- -\ No newline at end of file -+ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -84,6 +84,23 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -83,6 +83,23 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { static get properties() { return { @@ -251,7 +244,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch isGuest_: { type: Boolean, value() { -@@ -341,6 +358,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -286,6 +303,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { }; } @@ -262,7 +255,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1279,6 +1279,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1246,6 +1246,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -284,7 +277,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2055,6 +2055,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2062,6 +2062,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, IDS_SETTINGS_SAFEBROWSING_ENHANCED_THINGS_TO_CONSIDER_BULLET_THREE}, {"safeBrowsingStandard", IDS_SETTINGS_SAFEBROWSING_STANDARD}, {"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC}, @@ -483,7 +476,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his // The maximum number of days for which domain visit metrics are computed // each time HistoryBackend::GetDomainDiversity() is called. constexpr int kDomainDiversityMaxBacktrackedDays = 7; -@@ -1319,6 +1323,19 @@ void HistoryBackend::InitImpl( +@@ -1333,6 +1337,19 @@ void HistoryBackend::InitImpl( expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold)); } @@ -573,7 +566,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his void HistoryService::ScheduleDBTaskForUI( base::OnceCallback callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); -@@ -1465,6 +1495,9 @@ void HistoryService::Cleanup() { +@@ -1467,6 +1497,9 @@ void HistoryService::Cleanup() { return; } @@ -604,7 +597,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist // Triggers the backend to load if it hasn't already, and then returns whether // it's finished loading. // Note: Virtual needed for mocking. -@@ -1187,6 +1191,10 @@ class HistoryService : public KeyedService, +@@ -1184,6 +1188,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; @@ -643,7 +636,7 @@ diff --git a/components/history/core/common/pref_names.h b/components/history/co diff --git a/components/history_embeddings/sql_database.cc b/components/history_embeddings/sql_database.cc --- a/components/history_embeddings/sql_database.cc +++ b/components/history_embeddings/sql_database.cc -@@ -182,7 +182,7 @@ sql::InitStatus SqlDatabase::InitInternal(const base::FilePath& storage_dir, +@@ -183,7 +183,7 @@ sql::InitStatus SqlDatabase::InitInternal(const base::FilePath& storage_dir, // Chrome is running, but it's possible to miss events or start Chrome after // some down time, so this prevents long term accidental retention edge cases. DeleteExpiredData(/*expiration_time=*/base::Time::Now() - diff --git a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch index 6defba87..1599f42e 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch @@ -30,7 +30,7 @@ diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omni diff --git a/components/omnibox/browser/omnibox_field_trial.cc b/components/omnibox/browser/omnibox_field_trial.cc --- a/components/omnibox/browser/omnibox_field_trial.cc +++ b/components/omnibox/browser/omnibox_field_trial.cc -@@ -172,7 +172,11 @@ void OmniboxFieldTrial::GetActiveSuggestFieldTrialHashes( +@@ -173,7 +173,11 @@ void OmniboxFieldTrial::GetActiveSuggestFieldTrialHashes( size_t OmniboxFieldTrial::GetProviderMaxMatches( AutocompleteProvider::Type provider) { diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index 28ba939e..16fd9301 100644 --- a/build/patches/Internal-firewall.patch +++ b/build/patches/Internal-firewall.patch @@ -59,7 +59,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2584,6 +2584,7 @@ static_library("browser") { +@@ -2567,6 +2567,7 @@ static_library("browser") { "//third_party/ungoogled:switches", "//services/device/public/mojom", "//services/device/public/mojom:usb", @@ -70,7 +70,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -234,6 +234,7 @@ +@@ -237,6 +237,7 @@ #include "sandbox/policy/features.h" #include "sandbox/policy/switches.h" #include "services/device/public/cpp/device_features.h" @@ -81,7 +81,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc --- a/chrome/browser/download/android/download_controller.cc +++ b/chrome/browser/download/android/download_controller.cc -@@ -241,6 +241,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) { +@@ -242,6 +242,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) { update->Append(base::TimeToValue(base::Time::Now())); } @@ -118,7 +118,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro } // namespace static void JNI_DownloadController_OnAcquirePermissionResult( -@@ -296,7 +326,7 @@ static void JNI_DownloadController_DownloadUrl( +@@ -297,7 +327,7 @@ static void JNI_DownloadController_DownloadUrl( std::unique_ptr dl_params = content::DownloadRequestUtils::CreateDownloadForWebContentsMainFrame( web_contents, GURL(url), @@ -130,7 +130,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc --- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc +++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc -@@ -269,13 +269,43 @@ content::WebContents::Getter GetWebContentsGetter( +@@ -270,13 +270,43 @@ content::WebContents::Getter GetWebContentsGetter( web_contents->GetPrimaryMainFrame()->GetRoutingID()); } @@ -289,7 +289,7 @@ new file mode 100644 diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1161,6 +1161,7 @@ component("net") { +@@ -1171,6 +1171,7 @@ component("net") { "//components/network_time/time_tracker", "//components/network_session_configurator/common", "//net/http:transport_security_state_generated_files", @@ -1665,7 +1665,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont #include "services/network/brokered_client_socket_factory.h" #include "services/network/connection_change_observer.h" #include "services/network/cookie_manager.h" -@@ -1818,6 +1819,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1838,6 +1839,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { void NetworkContext::CreateUDPSocket( mojo::PendingReceiver receiver, mojo::PendingRemote listener) { @@ -1675,7 +1675,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener)); } -@@ -1830,6 +1834,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1850,6 +1854,17 @@ void NetworkContext::CreateRestrictedUDPSocket( mojo::PendingRemote listener, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. @@ -1693,7 +1693,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateRestrictedUDPSocket( addr, mode, traffic_annotation, std::move(params), std::move(receiver), std::move(listener), SimpleHostResolver::Create(this), -@@ -1842,6 +1857,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1862,6 +1877,17 @@ void NetworkContext::CreateTCPServerSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPServerSocketCallback callback) { @@ -1711,7 +1711,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPServerSocket( local_addr, std::move(options), static_cast(traffic_annotation), -@@ -1856,6 +1882,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1876,6 +1902,21 @@ void NetworkContext::CreateTCPConnectedSocket( mojo::PendingReceiver receiver, mojo::PendingRemote observer, CreateTCPConnectedSocketCallback callback) { @@ -1733,7 +1733,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPConnectedSocket( local_addr, remote_addr_list, std::move(tcp_connected_socket_options), static_cast(traffic_annotation), -@@ -1867,6 +1908,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1887,6 +1928,20 @@ void NetworkContext::CreateTCPBoundSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPBoundSocketCallback callback) { @@ -1754,7 +1754,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPBoundSocket( local_addr, static_cast(traffic_annotation), -@@ -1933,6 +1988,24 @@ void NetworkContext::CreateWebSocket( +@@ -1953,6 +2008,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index 22e6ad7d..e87e7702 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -164,7 +164,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -177,8 +177,8 @@ new file mode 100644 +public class BromiteJavascriptJITContentSetting extends BromiteCustomContentSetting { + public BromiteJavascriptJITContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.JAVASCRIPT_JIT, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "javascript_jit", + /*profilePrefKey*/ "javascript_jit"); @@ -197,11 +197,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_javascript_jit_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_javascript_jit_disabled; + default: + return 0; @@ -229,8 +229,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/javascript_jit.grdp b/components/browser_ui/strings/bromite_content_settings/javascript_jit.grdp @@ -291,7 +291,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -4199,12 +4199,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { +@@ -4179,12 +4179,17 @@ UrlInfo NavigationRequest::GetUrlInfo() { // Compute the WebExposedIsolationInfo that will be bundled into UrlInfo. auto web_exposed_isolation_info = ComputeWebExposedIsolationInfo(); @@ -300,7 +300,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows + ->GetMainFrame()->GetLastCommittedOrigin(); + UrlInfoInit url_info_init(GetURL()); - url_info_init.WithOriginIsolationRequest(isolation_request) + url_info_init.WithOACHeaderRequest(oac_header_request) .WithCOOPSiteIsolation(ShouldRequestSiteIsolationForCOOP()) .WithWebExposedIsolationInfo(web_exposed_isolation_info) .WithCrossOriginIsolationKey(cross_origin_isolation_key) @@ -313,7 +313,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3387,6 +3387,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3430,6 +3430,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine( if (IsJitDisabled()) { command_line->AppendSwitchASCII(blink::switches::kJavaScriptFlags, "--jitless"); @@ -326,7 +326,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc --- a/content/browser/site_info.cc +++ b/content/browser/site_info.cc -@@ -329,6 +329,13 @@ SiteInfo SiteInfo::CreateInternal(const IsolationContext& isolation_context, +@@ -323,6 +323,13 @@ SiteInfo SiteInfo::CreateInternal(const IsolationContext& isolation_context, is_jitless = is_jitless || GetContentClient()->browser()->IsJitDisabledForSite( browser_context, lock_url_or_default); @@ -351,7 +351,7 @@ diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc is_sandboxed(init.is_sandboxed_), unique_sandbox_id(init.unique_sandbox_id_), storage_partition_config(init.storage_partition_config_), -@@ -139,6 +140,11 @@ UrlInfoInit& UrlInfoInit::WithOrigin(const url::Origin& origin) { +@@ -146,6 +147,11 @@ UrlInfoInit& UrlInfoInit::WithOrigin(const url::Origin& origin) { return *this; } @@ -366,7 +366,7 @@ diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc diff --git a/content/browser/url_info.h b/content/browser/url_info.h --- a/content/browser/url_info.h +++ b/content/browser/url_info.h -@@ -168,6 +168,7 @@ struct CONTENT_EXPORT UrlInfo { +@@ -126,6 +126,7 @@ struct CONTENT_EXPORT UrlInfo { // and origin checks that require a UrlInfo. Investigate whether there's a // cleaner way to organize these checks. See https://crbug.com/1320402. std::optional origin; @@ -374,7 +374,7 @@ diff --git a/content/browser/url_info.h b/content/browser/url_info.h // If url is being loaded in a frame that is in a origin-restricted sandboxed, // then this flag will be true. -@@ -229,6 +230,7 @@ class CONTENT_EXPORT UrlInfoInit { +@@ -187,6 +188,7 @@ class CONTENT_EXPORT UrlInfoInit { UrlInfoInit& WithCOOPSiteIsolation(bool requests_coop_isolation); UrlInfoInit& WithCrossSitePrefetchContamination(bool contaminated); UrlInfoInit& WithOrigin(const url::Origin& origin); @@ -382,7 +382,7 @@ diff --git a/content/browser/url_info.h b/content/browser/url_info.h UrlInfoInit& WithSandbox(bool is_sandboxed); UrlInfoInit& WithUniqueSandboxId(int unique_sandbox_id); UrlInfoInit& WithStoragePartitionConfig( -@@ -253,6 +255,7 @@ class CONTENT_EXPORT UrlInfoInit { +@@ -210,6 +212,7 @@ class CONTENT_EXPORT UrlInfoInit { bool requests_coop_isolation_ = false; bool is_prefetch_with_cross_site_contamination_ = false; std::optional origin_; diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index 39020416..d1cf2f49 100644 --- a/build/patches/Keep-ComputePressure-disabled.patch +++ b/build/patches/Keep-ComputePressure-disabled.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1047,11 +1047,9 @@ +@@ -1081,11 +1081,9 @@ status: "experimental", }, { diff --git a/build/patches/Keep-Manta-Service-Disabled.patch b/build/patches/Keep-Manta-Service-Disabled.patch index 05798cde..1be5cb6f 100644 --- a/build/patches/Keep-Manta-Service-Disabled.patch +++ b/build/patches/Keep-Manta-Service-Disabled.patch @@ -10,7 +10,7 @@ Subject: Keep Manta Service Disabled diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -1020,7 +1020,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1019,7 +1019,6 @@ void ChromeBrowserMainExtraPartsProfiles:: #if !BUILDFLAG(IS_ANDROID) ManagedConfigurationAPIFactory::GetInstance(); #endif diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 0ad30206..32d0ca57 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -193,7 +193,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -2994,7 +2994,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -2991,7 +2991,7 @@ void ResourceFetcher::PrepareForLeakDetection() { void ResourceFetcher::StopFetchingInternal(StopFetchingTarget target) { // TODO(toyoshim): May want to suspend scheduler while canceling loaders so // that the cancellations below do not awake unnecessary scheduling. @@ -205,7 +205,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2179,8 +2179,8 @@ +@@ -2204,8 +2204,8 @@ { // The Blink runtime-enabled feature name for the API's IDL. // https://chromestatus.com/feature/4654499737632768 diff --git a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch index d8c3f069..8e12d4b7 100644 --- a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch +++ b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch @@ -15,10 +15,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc --- a/android_webview/common/aw_features.cc +++ b/android_webview/common/aw_features.cc -@@ -74,6 +74,7 @@ BASE_FEATURE(kWebViewLazyFetchHandWritingIcon, - BASE_FEATURE(kWebViewMediaIntegrityApiBlinkExtension, - "WebViewMediaIntegrityApiBlinkExtension", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -56,6 +56,7 @@ const base::FeatureParam kWebViewIpProtectionExclusionCriteria{ + + // Fetch Hand Writing icon lazily. + BASE_FEATURE(WebViewLazyFetchHandWritingIcon, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kWebViewMediaIntegrityApiBlinkExtension); // When enabled, passive mixed content (Audio/Video/Image subresources loaded diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index f1634c13..62b4bdd6 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -12,10 +12,10 @@ 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/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java -@@ -1001,7 +1001,7 @@ public class MultiWindowUtils implements ActivityStateListener { +@@ -1063,7 +1063,7 @@ public class MultiWindowUtils implements ActivityStateListener { + int totalCount = 0; for (TabModel model : models) { - for (int i = 0; i < model.getCount(); i++) { - Tab tab = model.getTabAtChecked(i); + for (Tab tab : model) { - if (!TabPersistentStore.shouldSkipTab(tab)) { + if ((true)) { totalCount++; @@ -24,11 +24,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/Mul 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 -@@ -2108,27 +2108,12 @@ public class TabPersistentStore { +@@ -2109,27 +2109,12 @@ public class TabPersistentStore { continue; } -- if (i == activeIndex) { +- if (index == activeIndex) { - // If any non-active NTPs have been skipped, the serialized tab model index - // needs to be adjusted. - modelInfo.index = modelInfo.ids.size(); diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch index 9492aa8b..8b347a63 100644 --- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch +++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch @@ -16,7 +16,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/incognito/IncognitoSnapshotController.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoSnapshotController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoSnapshotController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoSnapshotController.java -@@ -48,7 +48,7 @@ public abstract class IncognitoSnapshotController { +@@ -49,7 +49,7 @@ public abstract class IncognitoSnapshotController { boolean expectedSecureState = mIsShowingIncognitoSupplier.get(); if (ChromeFeatureList.sIncognitoScreenshot.isEnabled()) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/Incog diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5860,10 +5860,10 @@ +@@ -5935,10 +5935,10 @@ "expiry_milestone": -1 }, { @@ -41,5 +41,5 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js + "expiry_milestone": -1 // - }, { - "name": "increment-local-surface-id-for-mainframe-same-doc-navigation", + "name": "incognito-theme-overlay-testing", -- diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index fed69bfe..664cb56b 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -23,10 +23,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java --- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java +++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java -@@ -1002,6 +1002,11 @@ public final class ProductionSupportedFlagList { - CcFeatures.EXPORT_FRAME_TIMING_AFTER_FRAME_DONE, - "When enabled, moves the layer tree client's metric export call for from beginning" - + " of the subsequent frame to the end of the subsequent frame."), +@@ -1004,6 +1004,11 @@ public final class ProductionSupportedFlagList { + + " retried without a restart.\n" + + " Note: WebViewUseStartupTasksLogicP2 and kWebViewStartupTasksYieldToNative" + + " also enable the same behaviour as this flag."), + Flag.baseFeature( + "SystemKeyboardProtection", + "Hides user preference on the system keyboard by setting the standard " @@ -233,7 +233,7 @@ diff --git a/third_party/blink/renderer/core/events/keyboard_event.h b/third_par diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -159,6 +159,14 @@ BASE_FEATURE(kSystemKeyboardLock, +@@ -164,6 +164,14 @@ BASE_FEATURE(kSystemKeyboardLock, "SystemKeyboardLock", base::FEATURE_ENABLED_BY_DEFAULT); @@ -251,7 +251,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 -@@ -24,6 +24,8 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) +@@ -29,6 +29,8 @@ COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kSettingsShowsPerKeyboardSettings); #endif // BUILDFLAG(IS_CHROMEOS) COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kSystemKeyboardLock); diff --git a/build/patches/Lock-Profile-Cookie-Database.patch b/build/patches/Lock-Profile-Cookie-Database.patch index 6b2db280..201e1acc 100644 --- a/build/patches/Lock-Profile-Cookie-Database.patch +++ b/build/patches/Lock-Profile-Cookie-Database.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -1389,6 +1389,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( +@@ -1392,6 +1392,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal( network_context_params->file_paths->cookie_database_name = base::FilePath(chrome::kCookieFilename); @@ -56,7 +56,7 @@ new file mode 100644 diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -3188,7 +3188,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { +@@ -3201,7 +3201,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const { #if BUILDFLAG(IS_WIN) const bool enable_exclusive_access = @@ -68,7 +68,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont 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 -@@ -360,6 +360,14 @@ struct NetworkContextParams { +@@ -362,6 +362,14 @@ struct NetworkContextParams { // If true, cookies will be stored encrypted. bool enable_encrypted_cookies = true; diff --git a/build/patches/Log-dangling-attributes-in-some-html-elements.patch b/build/patches/Log-dangling-attributes-in-some-html-elements.patch index ce501937..ef370fd9 100644 --- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch +++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch @@ -42,7 +42,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc --- a/third_party/blink/renderer/core/dom/document.cc +++ b/third_party/blink/renderer/core/dom/document.cc -@@ -5052,6 +5052,14 @@ void Document::ProcessBaseElement() { +@@ -5068,6 +5068,14 @@ void Document::ProcessBaseElement() { KURL base_element_url; if (href) { String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href); @@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (!stripped_href.empty()) base_element_url = KURL(FallbackBaseURL(), stripped_href); } -@@ -5069,6 +5077,14 @@ void Document::ProcessBaseElement() { +@@ -5085,6 +5093,14 @@ void Document::ProcessBaseElement() { !GetExecutionContext()->GetSecurityOrigin()->CanRequest( base_element_url)) { UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref); @@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink } } -@@ -5099,6 +5115,8 @@ void Document::ProcessBaseElement() { +@@ -5115,6 +5131,8 @@ void Document::ProcessBaseElement() { if (target->Contains('<')) UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget); base_target_ = *target; @@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -3632,8 +3632,26 @@ void Element::StripScriptingAttributes( +@@ -3673,8 +3673,26 @@ void Element::StripScriptingAttributes( attribute_vector.Shrink(destination); } @@ -115,7 +115,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h -@@ -764,7 +764,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { +@@ -772,7 +772,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { virtual bool HasLegalLinkAttribute(const QualifiedName&) const; // Only called by the parser immediately after element construction. @@ -331,7 +331,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2018,8 +2018,8 @@ +@@ -2049,8 +2049,8 @@ // Escapes "<" and ">" in attribute values. This was launched // in M139, and this flag can be removed in M141. // See: crbug.com/1175016 @@ -342,7 +342,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, { name: "EventTimingInteractionCount", -@@ -3013,6 +3013,12 @@ +@@ -3034,6 +3034,12 @@ name: "MacDisableCtrlHomeEnd", status: "stable", }, diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 7e4e3baf..273d04c0 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../crash_upload_list_android.h | 1 + chrome/browser/net/chrome_network_delegate.cc | 7 + chrome/browser/ui/BUILD.gn | 1 + - chrome/browser/ui/webui/crashes/crashes_ui.cc | 175 ++++++++++++++++-- + chrome/browser/ui/webui/crashes/crashes_ui.cc | 176 ++++++++++++++++-- .../crash/core/browser/crashes_ui_util.h | 4 + .../crash/core/browser/resources/crashes.css | 67 ++++++- .../crash/core/browser/resources/crashes.html | 17 ++ @@ -18,16 +18,16 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/crash_strings.grdp | 22 ++- .../minidump_uploader/CrashFileManager.java | 7 +- .../MinidumpUploadCallable.java | 24 +-- - .../minidump_uploader/MinidumpUploader.java | 31 +--- + .../minidump_uploader/MinidumpUploader.java | 31 +-- .../upload_list/text_log_upload_list.cc | 1 + components/upload_list/upload_list.cc | 14 ++ components/upload_list/upload_list.h | 9 + - 17 files changed, 377 insertions(+), 138 deletions(-) + 17 files changed, 378 insertions(+), 138 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpUploadServiceImpl.java -@@ -50,6 +50,11 @@ import java.lang.annotation.Retention; +@@ -51,6 +51,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.concurrent.atomic.AtomicBoolean; @@ -38,8 +38,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpU + /** Service that is responsible for uploading crash minidumps to the Google crash server. */ @NullMarked - public class MinidumpUploadServiceImpl extends MinidumpUploadService.Impl { -@@ -94,6 +99,23 @@ public class MinidumpUploadServiceImpl extends MinidumpUploadService.Impl { + public class MinidumpUploadServiceImpl extends SplitCompatIntentService.Impl { +@@ -95,6 +100,23 @@ public class MinidumpUploadServiceImpl extends SplitCompatIntentService.Impl { assumeNonNull(getService()).setIntentRedelivery(true); } @@ -153,7 +153,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -639,6 +639,7 @@ static_library("ui") { +@@ -630,6 +630,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -164,7 +164,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/webui/crashes/crashes_ui.cc --- a/chrome/browser/ui/webui/crashes/crashes_ui.cc +++ b/chrome/browser/ui/webui/crashes/crashes_ui.cc -@@ -39,6 +39,19 @@ +@@ -39,6 +39,20 @@ #include "ui/base/resource/resource_scale_factor.h" #include "ui/webui/webui_util.h" @@ -177,6 +177,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w +#include "base/task/thread_pool.h" +#if BUILDFLAG(IS_ANDROID) +#include "base/android/path_utils.h" ++#include "content/public/browser/navigation_controller.h" +#endif +#include "net/base/filename_util.h" +#include "third_party/zlib/google/zip.h" @@ -184,7 +185,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w #if BUILDFLAG(IS_CHROMEOS) #include "chromeos/ash/components/dbus/debug_daemon/debug_daemon_client.h" #endif -@@ -68,6 +81,10 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { +@@ -68,6 +82,10 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { IDR_CRASHES_CRASHES_HTML); } @@ -195,7 +196,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w //////////////////////////////////////////////////////////////////////////////// // // CrashesDOMHandler -@@ -77,7 +94,7 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { +@@ -77,7 +95,7 @@ void CreateAndAddCrashesUIHTMLSource(Profile* profile) { // The handler for Javascript messages for the chrome://crashes/ page. class CrashesDOMHandler : public WebUIMessageHandler { public: @@ -204,7 +205,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w CrashesDOMHandler(const CrashesDOMHandler&) = delete; CrashesDOMHandler& operator=(const CrashesDOMHandler&) = delete; -@@ -94,6 +111,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -94,6 +112,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously fetches the list of crashes. Called from JS. void HandleRequestCrashes(const base::Value::List& args); @@ -213,7 +214,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w #if BUILDFLAG(IS_CHROMEOS) // Asynchronously triggers crash uploading. Called from JS. void HandleRequestUploads(const base::Value::List& args); -@@ -105,13 +124,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -105,13 +125,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously requests a user triggered upload. Called from JS. void HandleRequestSingleCrashUpload(const base::Value::List& args); @@ -245,7 +246,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } CrashesDOMHandler::~CrashesDOMHandler() { -@@ -137,6 +173,16 @@ void CrashesDOMHandler::RegisterMessages() { +@@ -137,6 +174,16 @@ void CrashesDOMHandler::RegisterMessages() { crash_reporter::kCrashesUIRequestSingleCrashUpload, base::BindRepeating(&CrashesDOMHandler::HandleRequestSingleCrashUpload, base::Unretained(this))); @@ -262,7 +263,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } void CrashesDOMHandler::OnJavascriptDisallowed() { -@@ -145,6 +191,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { +@@ -145,6 +192,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { void CrashesDOMHandler::HandleRequestCrashes(const base::Value::List& args) { AllowJavascript(); @@ -273,7 +274,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w if (first_load_) { first_load_ = false; if (list_available_) { -@@ -178,8 +228,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { +@@ -178,8 +229,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { } void CrashesDOMHandler::UpdateUI() { @@ -283,7 +284,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w bool system_crash_reporter = false; #if BUILDFLAG(IS_CHROMEOS) -@@ -228,14 +277,117 @@ void CrashesDOMHandler::UpdateUI() { +@@ -228,14 +278,117 @@ void CrashesDOMHandler::UpdateUI() { void CrashesDOMHandler::HandleRequestSingleCrashUpload( const base::Value::List& args) { @@ -407,7 +408,7 @@ diff --git a/chrome/browser/ui/webui/crashes/crashes_ui.cc b/chrome/browser/ui/w } } // namespace -@@ -247,7 +399,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( +@@ -247,7 +400,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( /////////////////////////////////////////////////////////////////////////////// CrashesUI::CrashesUI(content::WebUI* web_ui) : WebUIController(web_ui) { diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch index 1fab63c0..da04ebe3 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -85,6 +85,7 @@ +@@ -86,6 +86,7 @@ #include "components/autofill/core/common/autofill_payments_features.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/autofill_util.h" @@ -54,7 +54,7 @@ diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/c 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 -@@ -1419,7 +1419,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1462,7 +1462,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -102,7 +102,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -117,10 +117,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -121,10 +121,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true); registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true); registry->RegisterBooleanPref( @@ -115,7 +115,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup); registry->RegisterDictionaryPref(prefs::kAppWindowPlacement); -@@ -194,7 +194,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -198,7 +198,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { #endif registry->RegisterBooleanPref( @@ -127,7 +127,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browser/BUILD.gn --- a/components/bookmarks/browser/BUILD.gn +++ b/components/bookmarks/browser/BUILD.gn -@@ -23,6 +23,7 @@ static_library("browser") { +@@ -24,6 +24,7 @@ static_library("browser") { "bookmark_undo_provider.h", "bookmark_utils.h", "bookmark_uuids.h", @@ -135,7 +135,7 @@ diff --git a/components/bookmarks/browser/BUILD.gn b/components/bookmarks/browse "history_bookmark_model.h", "model_loader.h", "scoped_group_bookmark_actions.h", -@@ -45,6 +46,7 @@ static_library("browser") { +@@ -47,6 +48,7 @@ static_library("browser") { "bookmark_storage.cc", "bookmark_utils.cc", "bookmark_uuids.cc", diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index c9c21a50..4498eb90 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -22,19 +22,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiProperties.java | 5 + .../tab_management/TabGroupUiToolbarView.java | 17 ++ .../tab_management/TabGroupUiViewBinder.java | 3 + - .../tab_management/TabListCoordinator.java | 156 +++++++++++++++++- + .../tab_management/TabListCoordinator.java | 148 +++++++++++++++++- .../TabListEmptyCoordinator.java | 17 +- - .../tab_management/TabSwitcherPaneBase.java | 9 + + .../tab_management/TabSwitcherPaneBase.java | 9 ++ .../browser/feed/FeedSurfaceCoordinator.java | 4 + .../android/java/res/xml/main_preferences.xml | 3 +- - .../ChromeAccessibilitySettingsDelegate.java | 70 ++++++++ + .../chrome/browser/ChromeTabbedActivity.java | 3 +- + .../ChromeAccessibilitySettingsDelegate.java | 70 +++++++++ .../HeadlessBrowserControlsStateProvider.java | 5 + .../compositor/CompositorViewHolder.java | 7 + .../layouts/LayoutManagerChrome.java | 12 +- - .../layouts/LayoutManagerChromeTablet.java | 4 +- + .../layouts/LayoutManagerChromeTablet.java | 7 +- .../layouts/ToolbarSwipeLayout.java | 14 +- .../overlays/strip/ScrollDelegate.java | 2 +- - .../strip/StripLayoutHelperManager.java | 38 ++++- + .../strip/StripLayoutHelperManager.java | 37 ++++- .../scene_layer/StaticTabSceneLayer.java | 7 +- .../scene_layer/TabListSceneLayer.java | 8 + .../scene_layer/TabStripSceneLayer.java | 20 ++- @@ -47,10 +48,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ntp/RecentTabsPage.java | 31 +++- .../browser/searchwidget/SearchActivity.java | 11 ++ .../settings/FragmentDependencyProvider.java | 5 + - .../StatusIndicatorCoordinator.java | 9 + + .../StatusIndicatorCoordinator.java | 9 ++ .../StatusIndicatorSceneLayer.java | 6 +- .../browser/toolbar/ToolbarManager.java | 37 ++++- - .../chrome/browser/ui/BottomContainer.java | 18 ++ + .../chrome/browser/ui/BottomContainer.java | 18 +++ .../ui/system/StatusBarColorController.java | 8 + .../android/compositor/layer/toolbar_layer.cc | 10 +- .../scene_layer/tab_strip_scene_layer.cc | 16 +- @@ -76,30 +77,30 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...mniboxSuggestionsDropdownEmbedderImpl.java | 31 ++++ .../suggestions/AutocompleteCoordinator.java | 14 ++ .../suggestions/AutocompleteMediator.java | 6 +- - .../DropdownItemViewInfoListManager.java | 1 + - .../OmniboxSuggestionsDropdown.java | 11 +- + .../OmniboxSuggestionsDropdown.java | 8 + .../OmniboxSuggestionsDropdownEmbedder.java | 6 + .../base/BaseSuggestionViewBinder.java | 7 + .../strings/android_chrome_strings.grd | 6 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 + .../toolbar/LocationBarFocusScrimHandler.java | 5 + + .../toolbar/ToolbarLongPressMenuHandler.java | 8 - .../bottom/BottomControlsContentDelegate.java | 12 +- .../bottom/BottomControlsCoordinator.java | 11 +- .../bottom/BottomControlsMediator.java | 32 +++- .../bottom/BottomControlsProperties.java | 6 +- .../bottom/BottomControlsViewBinder.java | 2 + .../bottom/ScrollingBottomViewSceneLayer.java | 19 ++- - .../toolbar/top/ToolbarControlContainer.java | 9 + + .../toolbar/top/ToolbarControlContainer.java | 9 ++ .../top/TopToolbarOverlayCoordinator.java | 10 ++ .../top/TopToolbarOverlayProperties.java | 8 +- .../toolbar/top/TopToolbarSceneLayer.java | 10 +- .../res/xml/accessibility_preferences.xml | 8 + - .../accessibility/AccessibilitySettings.java | 27 +++ - .../AccessibilitySettingsDelegate.java | 9 + + .../accessibility/AccessibilitySettings.java | 27 ++++ + .../AccessibilitySettingsDelegate.java | 9 ++ components/viz/common/features.cc | 2 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 86 files changed, 1061 insertions(+), 78 deletions(-) + 87 files changed, 1053 insertions(+), 87 deletions(-) create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc @@ -118,9 +119,9 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc + "DisableToolbarSwipeUp", + base::FEATURE_DISABLED_BY_DEFAULT); + - BASE_FEATURE(kMainRepaintScrollPrefersNewContent, - "MainRepaintScrollPrefersNewContent", - base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kDeferImplInvalidation, + "DeferImplInvalidation", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/cc/base/features.h b/cc/base/features.h --- a/cc/base/features.h +++ b/cc/base/features.h @@ -131,8 +132,8 @@ diff --git a/cc/base/features.h b/cc/base/features.h +CC_BASE_EXPORT BASE_DECLARE_FEATURE(kMoveTopToolbarToBottom); +CC_BASE_EXPORT BASE_DECLARE_FEATURE(kDisableToolbarSwipeUp); - // Sets raster tree priority to NEW_CONTENT_TAKES_PRIORITY when performing a - // unified scroll with main-thread repaint reasons. + // When enabled, the scheduler will allow deferring impl invalidation frames + // for N frames (default 1) to reduce contention with main frames, allowing diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_controls_offset_manager.cc --- a/cc/input/browser_controls_offset_manager.cc +++ b/cc/input/browser_controls_offset_manager.cc @@ -159,7 +160,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc -@@ -5098,6 +5098,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -5137,6 +5137,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -172,14 +173,14 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiCoordinator.java -@@ -58,6 +58,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; +@@ -57,6 +57,7 @@ import org.chromium.components.sensitive_content.SensitiveContentFeatures; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import java.util.List; - + import java.util.function.Supplier; @@ -196,7 +197,8 @@ public class TabGroupUiCoordinator implements TabGroupUiMediator.ResetHandler, T @Initializer public void initializeWithNative( @@ -203,9 +204,9 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGroupUiMediator.java -@@ -76,6 +76,12 @@ import org.chromium.url.GURL; - import java.util.List; +@@ -76,6 +76,12 @@ import java.util.List; import java.util.Objects; + import java.util.function.Supplier; +import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +import org.chromium.chrome.browser.tab.CurrentTabObserver; @@ -415,7 +416,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import android.graphics.Rect; import android.util.Size; import android.view.InputDevice; -@@ -75,6 +81,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; +@@ -74,6 +80,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.recyclerview.widget.ItemTouchHelper2; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; @@ -549,7 +550,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Construct a coordinator for UI that shows a list of tabs. * -@@ -415,6 +541,12 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -416,6 +542,12 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO checkAwaitingLayout(); } }; @@ -562,19 +563,11 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -434,6 +566,25 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -435,6 +567,17 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO } }; mRecyclerView.setLayoutManager(layoutManager); + } else if (mMode == TabListMode.LIST) { -+ if (dialogHandler == null && selectionDelegateProvider == null && -+ ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ FrameLayout.LayoutParams recyclerViewParams = -+ (FrameLayout.LayoutParams) mRecyclerView.getLayoutParams(); -+ int toolbarHeightPx = mBrowserControlsStateProvider.getTopControlsHeight(); -+ recyclerViewParams.topMargin = toolbarHeightPx; -+ mRecyclerView.setLayoutParams(recyclerViewParams); -+ } + LinearLayoutManager layout = + new LinearLayoutManager(activity, LinearLayoutManager.VERTICAL, false) { + @Override @@ -588,7 +581,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -456,7 +607,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -455,7 +598,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO assumeNonNull(mTabListEmptyCoordinator); mTabListEmptyCoordinator = new TabListEmptyCoordinator( @@ -597,7 +590,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mTabListHighlighter = new TabListHighlighter(mModelList); mTabListMergeAnimationManager = new TabListMergeAnimationManager(mRecyclerView); -@@ -790,6 +941,9 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -792,6 +935,9 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO void prepareTabSwitcherPaneView() { registerLayoutChangeListener(); mRecyclerView.setupCustomItemAnimator(); @@ -667,7 +660,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/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java -@@ -46,6 +46,7 @@ import org.chromium.build.BuildConfig; +@@ -45,6 +45,7 @@ import org.chromium.build.BuildConfig; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -683,7 +676,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * @param context The activity context. -@@ -471,6 +473,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -473,6 +475,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc Log.d(TAG, "Geometry not ready using fallback animation."); useFallbackAnimation = true; } @@ -708,7 +701,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -@@ -661,6 +662,9 @@ public class FeedSurfaceCoordinator +@@ -681,6 +682,9 @@ public class FeedSurfaceCoordinator ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMarginStart(margin); layoutParams.setMarginEnd(margin); @@ -721,7 +714,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -48,7 +48,8 @@ for the previous order (main_preferences_legacy). --> +@@ -44,7 +44,8 @@ found in the LICENSE file. android:fragment="org.chromium.chrome.browser.toolbar.settings.AddressBarSettingsFragment" android:key="address_bar" android:order="7" @@ -731,6 +724,19 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j getBrowserControlsManager()); + mLayoutStateProviderSupplier.set(mLayoutManager); + } + } diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java @@ -814,7 +820,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s + ApplicationLifetime.terminate(true); + } + }, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_UNKNOWN) -+ .setSingleLine(false) ++ .setDefaultLines(false) + .setAction(activity.getString(R.string.relaunch), + /*actionData*/null) + .setDuration(/*durationMs*/70000); @@ -843,7 +849,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/tabmodel/He diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -268,6 +268,10 @@ public class CompositorViewHolder extends FrameLayout +@@ -270,6 +270,10 @@ public class CompositorViewHolder extends FrameLayout @Override public void setCurrentTouchEventOffsets(float top) { EventForwarder forwarder = getEventForwarder(); @@ -854,7 +860,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp if (forwarder != null) forwarder.setCurrentTouchOffsetY(top); } -@@ -917,6 +921,9 @@ public class CompositorViewHolder extends FrameLayout +@@ -941,6 +945,9 @@ public class CompositorViewHolder extends FrameLayout ? assumeNonNull(mApplicationBottomInsetSupplier.get()) .webContentsHeightInset : 0; @@ -867,15 +873,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java -@@ -44,6 +44,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sc - import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler; +@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sw import org.chromium.ui.resources.dynamics.DynamicResourceLoader; + import org.chromium.ui.util.AccessibilityUtil; import org.chromium.ui.util.XrUtils; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import java.util.List; - -@@ -161,7 +162,9 @@ public class LayoutManagerChrome extends LayoutManagerImpl + import java.util.function.Supplier; +@@ -161,7 +162,9 @@ public class LayoutManagerChrome extends LayoutManagerImpl implements Accessibil @Override public SwipeHandler createToolbarSwipeHandler(boolean supportsSwipeToShowTabSwitcher) { @@ -886,7 +892,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -389,9 +392,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -390,9 +393,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl implements Accessibil private static final float SWIPE_RANGE_DEG = 25; private final boolean mSupportsSwipeToShowTabSwitcher; @@ -899,7 +905,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -498,7 +503,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -499,7 +504,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl implements Accessibil return direction == showTabSwitcherScrollDirection || direction == ScrollDirection.LEFT @@ -912,21 +918,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java -@@ -42,6 +42,7 @@ import org.chromium.ui.base.WindowAndroid; +@@ -41,6 +41,7 @@ import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.dragdrop.DragAndDropDelegate; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.ui.xr.scenecore.XrSceneCoreSessionManager; +import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; - /** LayoutManagerChromeTablet is the specialization of LayoutManagerChrome for the tablet. */ - @NullMarked -@@ -152,7 +153,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { + import java.util.function.Supplier; + +@@ -114,7 +115,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { + BottomSheetController bottomSheetController, + Supplier shareDelegateSupplier, + @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager, +- TopControlsStacker topControlsStacker) { ++ TopControlsStacker topControlsStacker, ++ Supplier browserControlsManagerSupplier) { + super( + host, + contentContainer, +@@ -153,7 +155,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { bottomSheetController, shareDelegateSupplier, xrSpaceModeObservableSupplier, - topControlsStacker); + topControlsStacker, -+ /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager()); ++ browserControlsManagerSupplier); addSceneOverlay(mTabStripLayoutHelperManager); addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver()); mDesktopWindowStateManager = desktopWindowStateManager; @@ -971,7 +987,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/ScrollDelegate.java -@@ -355,7 +355,7 @@ public class ScrollDelegate { +@@ -361,7 +361,7 @@ public class ScrollDelegate { boolean useUnadjustedScrollOffset = isRtl != isLeft; float scrollOffset = mScrollOffset; @@ -983,15 +999,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 -@@ -30,6 +30,7 @@ import androidx.appcompat.content.res.AppCompatResources; - - import org.chromium.base.Callback; - 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.supplier.Supplier; -@@ -116,6 +117,8 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -116,6 +116,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -1000,7 +1008,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.ArrayList; import java.util.List; -@@ -272,12 +275,16 @@ public class StripLayoutHelperManager +@@ -274,12 +276,16 @@ public class StripLayoutHelperManager // Drag-Drop private @Nullable TabStripDragHandler mTabStripDragHandler; @@ -1017,7 +1025,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null && mModelSelectorButton.onDown(x, y, buttons)) { return; } -@@ -302,6 +309,7 @@ public class StripLayoutHelperManager +@@ -304,6 +310,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1025,7 +1033,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton != null) { mModelSelectorButton.drag(x, y); } -@@ -313,6 +321,7 @@ public class StripLayoutHelperManager +@@ -315,6 +322,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1033,7 +1041,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, buttons)) { mModelSelectorButton.handleClick(time, buttons, modifiers); -@@ -326,6 +335,7 @@ public class StripLayoutHelperManager +@@ -328,6 +336,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1041,7 +1049,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY); } -@@ -334,6 +344,7 @@ public class StripLayoutHelperManager +@@ -336,6 +345,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1049,7 +1057,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(x, y); } -@@ -475,7 +486,8 @@ public class StripLayoutHelperManager +@@ -477,7 +487,8 @@ public class StripLayoutHelperManager BottomSheetController bottomSheetController, Supplier shareDelegateSupplier, @Nullable ObservableSupplier xrSpaceModeObservableSupplier, @@ -1059,7 +1067,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mContext = context; Resources res = context.getResources(); mManagerHost = managerHost; -@@ -586,6 +598,8 @@ public class StripLayoutHelperManager +@@ -591,6 +602,8 @@ public class StripLayoutHelperManager multiInstanceManager, shareDelegateSupplier, TabGroupListBottomSheetCoordinator::new); @@ -1068,7 +1076,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -854,6 +868,10 @@ public class StripLayoutHelperManager +@@ -860,6 +873,10 @@ public class StripLayoutHelperManager yOffset = 0; } @@ -1079,10 +1087,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -867,7 +885,9 @@ public class StripLayoutHelperManager +@@ -873,7 +890,9 @@ public class StripLayoutHelperManager mStripTransitionScrimOpacity, - mLeftPadding, - mRightPadding, + getActiveStripLayoutHelper().getLeftPaddingToDraw(), + getActiveStripLayoutHelper().getRightPaddingToDraw(), - mTopPadding); + mTopPadding, + viewport.height(), @@ -1090,7 +1098,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -933,11 +953,21 @@ public class StripLayoutHelperManager +@@ -939,11 +958,21 @@ public class StripLayoutHelperManager mRightPadding, mTopPadding); @@ -1166,9 +1174,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen 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 -@@ -26,6 +26,9 @@ import org.chromium.chrome.browser.layouts.scene_layer.SceneLayer; - import org.chromium.chrome.browser.layouts.scene_layer.SceneOverlayLayer; +@@ -34,6 +34,9 @@ import org.chromium.chrome.browser.tab.TabUtils; import org.chromium.chrome.browser.tasks.tab_management.TabUiThemeUtil; + import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.resources.ResourceManager; +import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.base.ContextUtils; @@ -1176,7 +1184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen /** * The Java component of what is basically a CC Layer that manages drawing the Tab Strip (which is -@@ -106,10 +109,23 @@ public class TabStripSceneLayer extends SceneOverlayLayer { +@@ -115,10 +118,23 @@ public class TabStripSceneLayer extends SceneOverlayLayer { float scrimOpacity, float leftPaddingDp, float rightPaddingDp, @@ -1205,7 +1213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java --- a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/findinpage/FindToolbarTablet.java -@@ -16,6 +16,8 @@ import android.widget.FrameLayout; +@@ -15,6 +15,8 @@ import android.view.View; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; @@ -1214,15 +1222,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find import org.chromium.chrome.R; import org.chromium.components.browser_ui.widget.animation.CancelAwareAnimatorListener; import org.chromium.ui.interpolators.Interpolators; -@@ -173,9 +175,11 @@ public class FindToolbarTablet extends FindToolbar { +@@ -172,9 +174,11 @@ public class FindToolbarTablet extends FindToolbar { if (show && getVisibility() != View.VISIBLE && mCurrentAnimation != mAnimationEnter) { View anchorView = getRootView().findViewById(R.id.toolbar); -- FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); +- var lp = (MarginLayoutParams) getLayoutParams(); - lp.topMargin = anchorView.getBottom() - mYInsetPx; - setLayoutParams(lp); + if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); ++ var lp = (MarginLayoutParams) getLayoutParams(); + lp.topMargin = anchorView.getBottom() - mYInsetPx; + setLayoutParams(lp); + } @@ -1232,7 +1240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java -@@ -54,6 +54,8 @@ import org.chromium.ui.OffsetTagConstraints; +@@ -55,6 +55,8 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.util.TokenHolder; @@ -1241,7 +1249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow /** A class that manages browser control visibility and positioning. */ @NullMarked public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer { -@@ -580,6 +582,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -589,6 +591,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon } } @@ -1256,7 +1264,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow @Override public int getTopControlsMinHeight() { return mTopControlsMinHeight; -@@ -681,6 +691,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -690,6 +700,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon @Override public float getTopVisibleContentOffset() { @@ -1307,7 +1315,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/messages/Messag diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java --- a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/ChromeTabModalPresenter.java -@@ -352,7 +352,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter +@@ -354,7 +354,7 @@ public class ChromeTabModalPresenter extends TabModalPresenter Resources resources, BrowserControlsStateProvider provider) { int scrimVerticalMargin = resources.getDimensionPixelSize(R.dimen.tab_modal_scrim_vertical_margin); @@ -1327,7 +1335,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import androidx.annotation.NonNull; import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; -@@ -839,11 +840,16 @@ public class NewTabPage +@@ -840,11 +841,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1346,7 +1354,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -859,9 +865,7 @@ public class NewTabPage +@@ -860,9 +866,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1370,7 +1378,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import android.view.View; import android.view.ViewGroup; import android.view.ViewStub; -@@ -216,7 +219,12 @@ public class NewTabPageLayout extends LinearLayout +@@ -219,7 +222,12 @@ public class NewTabPageLayout extends LinearLayout mFakeSearchBoxLayout = findViewById(R.id.search_box); mFakeSearchBoxEditText = findViewById(R.id.search_box_text); initializeSiteSectionView(); @@ -1387,10 +1395,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java -@@ -34,6 +34,7 @@ import org.chromium.components.browser_ui.styles.SemanticColorUtils; - import org.chromium.components.embedder_support.util.UrlConstants; +@@ -34,6 +34,7 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; + import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster; +import org.chromium.chrome.browser.flags.ChromeFeatureList; /** @@ -1463,7 +1471,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -85,6 +85,11 @@ import org.chromium.url.GURL; +@@ -86,6 +86,11 @@ import org.chromium.url.GURL; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1506,9 +1514,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/status_indicator/StatusIndicatorCoordinator.java -@@ -28,6 +28,10 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; - import org.chromium.ui.resources.ResourceManager; - import org.chromium.ui.resources.dynamics.ViewResourceAdapter; +@@ -31,6 +31,10 @@ import org.chromium.ui.resources.dynamics.ViewResourceAdapter; + + import java.util.function.Supplier; +import android.view.Gravity; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -1517,7 +1525,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato /** * The coordinator for a status indicator that is positioned below the status bar and is persistent. * Typically used to relay status, e.g. indicate user is offline. -@@ -200,6 +204,11 @@ public class StatusIndicatorCoordinator implements TopControlLayer { +@@ -205,6 +209,11 @@ public class StatusIndicatorCoordinator implements TopControlLayer { private void initialize() { final ViewStub stub = mActivity.findViewById(R.id.status_indicator_stub); final ViewResourceFrameLayout root = (ViewResourceFrameLayout) stub.inflate(); @@ -1555,9 +1563,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -218,6 +218,9 @@ import org.chromium.url.GURL; - +@@ -219,6 +219,9 @@ import org.chromium.url.GURL; import java.util.List; + import java.util.function.Supplier; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import android.view.Gravity; @@ -1565,8 +1573,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar /** * Contains logic for managing the toolbar visual component. This class manages the interactions * with the rest of the application to ensure the toolbar is always visually up to date. -@@ -863,6 +866,17 @@ public class ToolbarManager - }, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); +@@ -870,6 +873,17 @@ public class ToolbarManager + mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito()); mControlContainer = controlContainer; mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { @@ -1583,7 +1591,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBookmarkModelSupplier = bookmarkModelSupplier; mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver); -@@ -1505,6 +1519,7 @@ public class ToolbarManager +@@ -1531,6 +1545,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1591,7 +1599,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1518,6 +1533,7 @@ public class ToolbarManager +@@ -1544,6 +1559,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1599,7 +1607,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -2122,9 +2138,21 @@ public class ToolbarManager +@@ -2149,9 +2165,21 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider(); } @@ -1622,7 +1630,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar assert mTabGroupUiOneshotSupplier == null; assert mUndoBarThrottle != null; ThemeColorProvider bottomUiThemeColorProvider = -@@ -2139,7 +2167,7 @@ public class ToolbarManager +@@ -2166,7 +2194,7 @@ public class ToolbarManager mActivityTabProvider, mTabModelSelector, mActivity, @@ -1631,7 +1639,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBrowserControlsSizer, mScrimManager, mOmniboxFocusStateSupplier, -@@ -2166,7 +2194,7 @@ public class ToolbarManager +@@ -2193,7 +2221,7 @@ public class ToolbarManager mControlsVisibilityDelegate, mFullscreenManager, mEdgeToEdgeControllerSupplier, @@ -1640,7 +1648,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar bottomControlsContentDelegateSupplier, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -2174,7 +2202,8 @@ public class ToolbarManager +@@ -2201,7 +2229,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1700,16 +1708,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu +import android.os.Build; import androidx.annotation.ColorInt; - import androidx.annotation.Nullable; -@@ -20,6 +21,7 @@ import org.chromium.base.supplier.ObservableSupplier; - import org.chromium.base.supplier.OneshotSupplier; + import androidx.annotation.VisibleForTesting; +@@ -21,6 +22,7 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.layouts.LayoutManager; import org.chromium.chrome.browser.layouts.LayoutStateProvider; import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; -@@ -503,6 +505,12 @@ public class StatusBarColorController +@@ -528,6 +530,12 @@ public class StatusBarColorController UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons); UiUtils.setStatusBarColor(window, color); } @@ -1733,7 +1741,7 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b #include "cc/resources/scoped_ui_resource.h" #include "cc/slim/layer.h" #include "cc/slim/nine_patch_layer.h" -@@ -116,8 +117,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, +@@ -117,8 +118,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, debug_layer_->RemoveFromParent(); // Position the toolbar at the bottom of the space available for top controls. @@ -1747,20 +1755,20 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b + gfx::PointF(x_offset, content_offset - layer_->bounds().height())); + } - layer_->SetOffsetTag(offset_tag); - } + if (features::IsAndroidAnimatedProgressBarInVizEnabled()) { + toolbar_layers_->SetOffsetTag(offset_tag); diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc --- a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc +++ b/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer.cc -@@ -17,6 +17,7 @@ - #include "ui/android/resources/resource_manager_impl.h" +@@ -18,6 +18,7 @@ + #include "ui/base/l10n/l10n_util_android.h" #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/transform.h" +#include "cc/base/features.h" // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/TabStripSceneLayer_jni.h" -@@ -124,8 +125,10 @@ void TabStripSceneLayer::SetContentTree( +@@ -151,8 +152,10 @@ void TabStripSceneLayer::SetContentTree( content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1773,7 +1781,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -181,7 +184,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -208,7 +211,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, jfloat right_padding, jfloat top_padding) { gfx::RectF content(0, y_offset, width, height); @@ -1787,15 +1795,15 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer background_layer_->SetBounds(gfx::Size(width, height)); background_layer_->SetBackgroundColor(SkColor4f::FromColor(background_color)); -@@ -190,7 +198,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -217,7 +225,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, tab_strip_layer_->SetPosition(gfx::PointF(0, top_padding)); // Content tree should not be affected by tab strip scene layer visibility. -- if (content_tree_) -+ if (content_tree_ && !base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) +- if (content_tree_) { ++ if (content_tree_ && !base::FeatureList::IsEnabled(::features::kMoveTopToolbarToBottom)) { content_tree_->layer()->SetPosition(gfx::PointF(0, -y_offset)); + } - // Update left and right padding layers as required. diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BottomControlsStacker.java @@ -1833,7 +1841,7 @@ diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrom diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsStateProvider.java -@@ -124,6 +124,12 @@ public interface BrowserControlsStateProvider { +@@ -127,6 +127,12 @@ public interface BrowserControlsStateProvider { */ int getTopControlsHairlineHeight(); @@ -1880,10 +1888,10 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse #include "chrome/browser/android/webapk/webapk_features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/contextmenu/context_menu_features.h" -@@ -354,6 +355,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -362,6 +363,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kMvcUpdateViewWhenModelChanged, &kNativePageTransitionHardwareCapture, &kNavBarColorAnimation, - &kNewTabPageAndroidTriggerForPrerender2, + &features::kMoveTopToolbarToBottom, + &features::kDisableToolbarSwipeUp, &kNotificationPermissionVariant, @@ -1892,8 +1900,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 -@@ -490,6 +490,10 @@ public abstract class ChromeFeatureList { - "NewTabPageAndroidTriggerForPrerender2"; +@@ -499,6 +499,10 @@ public abstract class ChromeFeatureList { + public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation"; public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT = "NewTabPageCustomizationForMvt"; + public static final String DISABLE_TOOLBAR_SWIPE_UP = @@ -1903,10 +1911,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON = "NewTabPageCustomizationToolbarButton"; public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2"; -@@ -980,6 +984,10 @@ public abstract class ChromeFeatureList { - newCachedFlag(NOTIFICATION_TRAMPOLINE, false); +@@ -1027,6 +1031,10 @@ public abstract class ChromeFeatureList { public static final CachedFlag sOptimizationGuidePushNotifications = newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true); + public static final CachedFlag sPCctMinimumHeight = newCachedFlag(PCCT_MINIMUM_HEIGHT, true); + public static final CachedFlag sDisableToolbarSwipeUp = + newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); + public static final CachedFlag sMoveTopToolbarToBottom = @@ -1914,10 +1922,10 @@ 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); -@@ -1190,6 +1198,8 @@ public abstract class ChromeFeatureList { - sNewTabPageCustomizationV2, +@@ -1251,6 +1259,8 @@ public abstract class ChromeFeatureList { sNotificationTrampoline, sOptimizationGuidePushNotifications, + sPCctMinimumHeight, + sMoveTopToolbarToBottom, + sDisableToolbarSwipeUp, sPaintPreviewDemo, @@ -1935,7 +1943,7 @@ diff --git a/chrome/browser/hub/internal/BUILD.gn b/chrome/browser/hub/internal/ "android/java/src/org/chromium/chrome/browser/hub/EmptyHubBottomToolbarDelegate.java", "android/java/src/org/chromium/chrome/browser/hub/FadeHubLayoutAnimationFactory.java", @@ -102,6 +103,10 @@ android_library("java") { - "//ui/android:ui_no_recycler_view_java", + "//ui/edge_to_edge:java", "//url:url_java", ] + deps += [ @@ -1964,7 +1972,7 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.tab.Tab; -@@ -164,6 +166,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { +@@ -167,6 +169,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler { mHubPaneHostCoordinator = new HubPaneHostCoordinator( hubPaneHostView, paneManager.getFocusedPaneSupplier(), hubColorMixer); @@ -2122,7 +2130,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2315,7 +2315,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2395,7 +2395,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2250,9 +2258,9 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch import org.chromium.base.Callback; import org.chromium.base.metrics.RecordUserAction; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; @@ -273,7 +274,16 @@ class AppMenuHandlerImpl assert !(isByPermanentButton && startDragging); @@ -2273,7 +2281,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java --- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java +++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java -@@ -710,6 +710,7 @@ public class EdgeToEdgeControllerImpl +@@ -694,6 +694,7 @@ public class EdgeToEdgeControllerImpl * the system insets due to the keyboard or the bottom controls being visible. */ private boolean shouldPadAdjusters() { @@ -2284,7 +2292,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromi diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java --- a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java +++ b/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeUtils.java -@@ -134,6 +134,7 @@ public class EdgeToEdgeUtils { +@@ -130,6 +130,7 @@ public class EdgeToEdgeUtils { * being attached to the window. */ public static boolean isEdgeToEdgeBottomChinEnabled(Activity activity) { @@ -2292,7 +2300,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome // Make sure we test SDK version before checking the Feature so Field Trials only collect // from qualifying devices. if (!EdgeToEdgeFieldTrialImpl.getBottomChinOverrides().isEnabledForManufacturerVersion()) { -@@ -399,6 +400,7 @@ public class EdgeToEdgeUtils { +@@ -389,6 +390,7 @@ public class EdgeToEdgeUtils { */ @Deprecated static boolean hasTappableNavigationBar(Window window) { @@ -2339,11 +2347,11 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -214,6 +214,7 @@ public class LocationBarCoordinator - uiOverrides.isForcedPhoneStyleOmnibox(), - baseChromeLayout, - deferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight, -+ deferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom, +@@ -223,6 +223,7 @@ public class LocationBarCoordinator + ? ControlsPosition.TOP + : mBrowserControlsStateProvider.getControlsPosition(), + mDeferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight, ++ mDeferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom, bottomWindowPaddingSupplier); mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); @@ -2357,39 +2365,40 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow +import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; - import org.chromium.base.BuildInfo; -@@ -25,6 +26,7 @@ import org.chromium.build.annotations.NullMarked; - import org.chromium.build.annotations.Nullable; + import org.chromium.base.Callback; +@@ -25,6 +26,7 @@ import org.chromium.build.annotations.Nullable; + import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; import org.chromium.ui.base.WindowAndroid; -@@ -47,6 +49,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl - private final View mAlignmentView; +@@ -50,6 +52,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl private final boolean mForcePhoneStyleOmnibox; + private final Supplier<@ControlsPosition Integer> mControlsPositionSupplier; private final Supplier mKeyboardHeightSupplier; + private final Supplier mSystemBarInsetsBottomSupplier; private final Supplier mBottomWindowPaddingSupplier; private final Context mContext; // Reusable int array to pass to positioning methods that operate on a two element int array. -@@ -85,12 +88,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl - boolean forcePhoneStyleOmnibox, +@@ -89,6 +92,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl @Nullable View baseChromeLayout, + Supplier<@ControlsPosition Integer> controlsPositionSupplier, Supplier keyboardHeightSupplier, + Supplier systemBarInsetsBottomSupplier, Supplier bottomWindowPaddingSupplier) { mWindowAndroid = windowAndroid; mAnchorView = anchorView; - mAlignmentView = alignmentView; +@@ -96,6 +100,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox; + mControlsPositionSupplier = controlsPositionSupplier; mKeyboardHeightSupplier = keyboardHeightSupplier; + mSystemBarInsetsBottomSupplier = systemBarInsetsBottomSupplier; mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier; mContext = mAnchorView.getContext(); mContext.registerComponentCallbacks(this); -@@ -111,6 +116,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -116,6 +121,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.removeObserver(obs); } @@ -2401,7 +2410,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public OmniboxAlignment getCurrentAlignment() { return assertNonNull(mOmniboxAlignmentSupplier.get()); -@@ -134,6 +144,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -139,6 +149,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl @Override public void onDetachedFromWindow() { @@ -2412,19 +2421,19 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mAnchorView.removeOnLayoutChangeListener(this); mAlignmentView.removeOnLayoutChangeListener(this); mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); -@@ -220,6 +234,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -235,6 +249,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl + } else { + ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray); + top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop(); ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ top -= mPositionArray[1]; ++ } + } - ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray); - int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop(); -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ top -= mPositionArray[1]; -+ } - int left; - int width; - int paddingLeft; -@@ -293,6 +310,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl - : contentView.getMeasuredHeight() - keyboardHeight; - int height = Math.min(windowSpace, contentSpace) - top; + if (isTablet()) { +@@ -311,6 +328,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl + height = Math.min(windowSpace, contentSpace) - top; + } + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + ViewCompat.setPaddingRelative( @@ -2435,7 +2444,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to // the previous alignment value. OmniboxAlignment omniboxAlignment = -@@ -301,6 +324,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -319,6 +342,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.set(omniboxAlignment); } @@ -2461,7 +2470,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.annotation.ColorInt; import androidx.annotation.VisibleForTesting; import androidx.core.view.ViewCompat; -@@ -51,6 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -50,6 +51,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2469,7 +2478,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -70,6 +72,7 @@ public class AutocompleteCoordinator +@@ -71,6 +73,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; private final ObserverList mScrollListenerList = new ObserverList<>(); @@ -2477,7 +2486,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** An observer watching for changes to the visual state of the omnibox suggestions. */ public interface OmniboxSuggestionsVisualStateObserver { -@@ -105,6 +108,7 @@ public class AutocompleteCoordinator +@@ -106,6 +109,7 @@ public class AutocompleteCoordinator Context context = parent.getContext(); ModelList listItems = new ModelList(); @@ -2485,9 +2494,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow PropertyModel listModel = new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS) .with(SuggestionListProperties.EMBEDDER, dropdownEmbedder) -@@ -228,6 +232,16 @@ public class AutocompleteCoordinator +@@ -230,6 +234,16 @@ public class AutocompleteCoordinator + container.findViewById(R.id.omnibox_suggestions_dropdown); - dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // make margins works @@ -2500,12 +2509,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + mDropdownEmbedder.getAnchorView().getMeasuredHeight(); + } mRecycledViewPool.ifPresent(p -> dropdown.setRecycledViewPool(p)); - mHolder = new SuggestionListViewHolder(container, dropdown); + mHolder = new SuggestionListViewHolder(suggestionsContainer, dropdown); for (int i = 0; i < mCallbacks.size(); i++) { diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -72,6 +72,8 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -74,6 +74,8 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; @@ -2513,8 +2522,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + import java.util.List; import java.util.Optional; - -@@ -1189,7 +1191,9 @@ class AutocompleteMediator + import java.util.function.Supplier; +@@ -1219,7 +1221,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2525,23 +2534,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java ---- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java -+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListManager.java -@@ -8,6 +8,7 @@ import android.content.Context; - import android.view.View; - - import org.chromium.build.annotations.NullMarked; -+import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.ui.theme.BrandedColorScheme; - import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.ui.modelutil.MVCListAdapter.ListItem; diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java -@@ -49,6 +49,9 @@ import org.chromium.ui.util.MotionEventUtils; - - import java.util.Optional; +@@ -36,6 +36,9 @@ import org.chromium.components.omnibox.OmniboxFeatures; + import org.chromium.ui.base.KeyNavigationUtil; + import org.chromium.ui.util.MotionEventUtils; +import android.graphics.Rect; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -2549,28 +2547,25 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ @NullMarked public class OmniboxSuggestionsDropdown extends RecyclerView { -@@ -270,7 +273,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - addItemDecoration(new SuggestionHorizontalDivider(context)); - - mLayoutScrollListener = new SuggestionLayoutScrollListener(context); -- setLayoutManager(mLayoutScrollListener); - mSelectionController = - new RecyclerViewSelectionController( - mLayoutScrollListener, SelectionController.Mode.SATURATING_WITH_SENTINEL); -@@ -281,6 +283,13 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -285,6 +288,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom); int paddingTop = resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ // reverse the layout so that the items are at the bottom (in reverse order) -+ // and anchored to the bottom edge -+ mLayoutScrollListener.setReverseLayout(true); + paddingTop = 0; + } -+ setLayoutManager(mLayoutScrollListener); this.setPaddingRelative(0, paddingTop, 0, mBaseBottomPadding); if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) { +@@ -502,6 +508,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { + } + + /* package */ void setToolbarPosition(@ControlsPosition int toolbarPosition) { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ toolbarPosition = ControlsPosition.BOTTOM; + mToolbarOnTop = toolbarPosition != ControlsPosition.BOTTOM; + mLayoutScrollListener.setToolbarPosition(mToolbarOnTop); + diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdownEmbedder.java @@ -2626,7 +2621,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1563,6 +1563,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1515,6 +1515,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2642,7 +2637,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn --- a/chrome/browser/ui/android/toolbar/BUILD.gn +++ b/chrome/browser/ui/android/toolbar/BUILD.gn -@@ -211,6 +211,7 @@ android_library("java") { +@@ -213,6 +213,7 @@ android_library("java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2672,6 +2667,24 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLightScrimColor = context.getColor(R.color.omnibox_focused_fading_background_color_light); mScrimModel = new PropertyModel.Builder(ScrimProperties.ALL_KEYS) +diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java +--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java ++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java +@@ -216,14 +216,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver + @VisibleForTesting + ModelList buildMenuItems(boolean onTop) { + ModelList itemList = new ModelList(); +- itemList.add( +- new ListItemBuilder() +- .withTitleRes( +- onTop +- ? R.string.toolbar_move_to_the_bottom +- : R.string.toolbar_move_to_the_top) +- .withMenuId(MenuItemType.MOVE_ADDRESS_BAR_TO) +- .build()); + itemList.add( + new ListItemBuilder() + .withTitleRes(R.string.toolbar_copy_link) diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsContentDelegate.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsContentDelegate.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsContentDelegate.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsContentDelegate.java @@ -2707,7 +2720,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java -@@ -34,6 +34,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; +@@ -33,6 +33,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.resources.dynamics.ViewResourceAdapter; import org.chromium.ui.widget.Toast; @@ -2749,15 +2762,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java -@@ -28,6 +28,7 @@ import org.chromium.components.browser_ui.edge_to_edge.EdgeToEdgeSupplier.Change - import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -27,6 +27,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.edge_to_edge.EdgeToEdgeSupplier.ChangeObserver; import org.chromium.ui.modelutil.PropertyModel; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - /** - * This class is responsible for reacting to events from the outside world, interacting with other -@@ -154,6 +155,12 @@ class BottomControlsMediator + import java.util.function.Supplier; + +@@ -155,6 +156,12 @@ class BottomControlsMediator void setBottomControlsVisible(boolean visible) { boolean visibilityChanged = mIsBottomControlsVisible != visible; @@ -2770,7 +2783,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -183,6 +190,19 @@ class BottomControlsMediator +@@ -184,6 +191,19 @@ class BottomControlsMediator mTabObscuringHandler.removeObserver(this); } @@ -2790,7 +2803,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow @Override public void onBottomControlsHeightChanged( int bottomControlsHeight, int bottomControlsMinHeight) { -@@ -272,11 +292,13 @@ class BottomControlsMediator +@@ -273,11 +293,13 @@ class BottomControlsMediator && !mIsInSwipeLayout && getBrowserControls().getBottomControlOffset() == 0; if (visible) { @@ -2903,9 +2916,9 @@ 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 -@@ -76,6 +76,10 @@ import java.lang.annotation.Retention; - import java.lang.annotation.RetentionPolicy; +@@ -77,6 +77,10 @@ import java.lang.annotation.RetentionPolicy; import java.util.function.BooleanSupplier; + import java.util.function.Supplier; +import android.view.Gravity; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -2914,7 +2927,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Layout for the browser controls (omnibox, menu, tab strip, etc..). */ @NullMarked public class ToolbarControlContainer extends OptimizedFrameLayout -@@ -183,6 +187,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -185,6 +189,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout if (view != null) ((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height; } @@ -2929,7 +2942,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java -@@ -24,11 +24,14 @@ import org.chromium.chrome.browser.tab.Tab; +@@ -23,12 +23,15 @@ import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import org.chromium.chrome.browser.toolbar.R; import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar; @@ -2938,6 +2951,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.ui.resources.ResourceManager; import java.util.List; + import java.util.function.Supplier; +import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; + @@ -2957,7 +2971,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow .build(); mSceneLayer = new TopToolbarSceneLayer(resourceManagerSupplier); mChangeProcessor = -@@ -130,6 +139,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { +@@ -138,6 +147,7 @@ public class TopToolbarOverlayCoordinator implements SceneOverlay { @Override public SceneOverlayLayer getUpdatedSceneOverlayTree( RectF viewport, RectF visibleViewport, ResourceManager resourceManager, float yOffset) { @@ -2991,15 +3005,15 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarSceneLayer.java -@@ -17,6 +17,7 @@ import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar.Drawing +@@ -16,6 +16,7 @@ import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar.Drawing import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.resources.ResourceManager; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - /** A SceneLayer to render the top toolbar. This is the "view" piece of the top toolbar overlay. */ - @JNINamespace("android") -@@ -44,6 +45,13 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { + import java.util.function.Supplier; + +@@ -45,6 +46,13 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { /** Push all information about the texture to native at once. */ private void pushProperties(PropertyModel model) { if (mResourceManagerSupplier.get() == null) return; @@ -3013,7 +3027,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow TopToolbarSceneLayerJni.get() .updateToolbarLayer( mNativePtr, -@@ -53,7 +61,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { +@@ -54,7 +62,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { model.get(TopToolbarOverlayProperties.URL_BAR_RESOURCE_ID), model.get(TopToolbarOverlayProperties.URL_BAR_COLOR), model.get(TopToolbarOverlayProperties.X_OFFSET), @@ -3126,7 +3140,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc -@@ -40,6 +40,7 @@ namespace features { +@@ -48,6 +48,7 @@ BASE_FEATURE(kAndroidAnimatedProgressBarInViz, BASE_FEATURE(kAndroidBrowserControlsInViz, "AndroidBrowserControlsInViz", base::FEATURE_ENABLED_BY_DEFAULT); @@ -3134,7 +3148,7 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features. // If this flag is enabled, AndroidBrowserControlsInViz and // BottomControlsRefactor with the "Dispatch yOffset" variation must also be -@@ -47,6 +48,7 @@ BASE_FEATURE(kAndroidBrowserControlsInViz, +@@ -55,6 +56,7 @@ BASE_FEATURE(kAndroidBrowserControlsInViz, BASE_FEATURE(kAndroidBcivBottomControls, "AndroidBcivBottomControls", base::FEATURE_ENABLED_BY_DEFAULT); @@ -3145,15 +3159,15 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features. diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc --- a/content/browser/renderer_host/render_widget_host_view_android.cc +++ b/content/browser/renderer_host/render_widget_host_view_android.cc -@@ -32,6 +32,7 @@ - #include "base/task/single_thread_task_runner.h" +@@ -33,6 +33,7 @@ #include "base/task/thread_pool.h" #include "base/threading/scoped_blocking_call.h" + #include "base/trace_event/trace_event.h" +#include "cc/base/features.h" #include "cc/base/math_util.h" #include "cc/slim/layer.h" #include "components/input/cursor_manager.h" -@@ -916,6 +917,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -919,6 +920,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( // factor. Thus, |top_content_offset| in CSS pixels is also in DIPs. float top_content_offset = metadata.top_controls_height * metadata.top_controls_shown_ratio; diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch index 5784d9d3..952963d4 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -76,6 +76,13 @@ import org.chromium.ui.text.SpanApplier; +@@ -77,6 +77,13 @@ import org.chromium.ui.text.SpanApplier; import java.util.concurrent.TimeUnit; import java.util.function.Consumer; @@ -49,9 +49,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting +import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; + /** Fragment to keep track of the all the privacy related preferences. */ + @NullMarked public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener { -@@ -96,6 +103,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -98,6 +105,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_TRACKING_PROTECTIONS = "incognito_tracking_protections"; @VisibleForTesting static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @VisibleForTesting static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; @VisibleForTesting static final String PREF_TRACKING_PROTECTION = "tracking_protection"; private static final String PREF_ADVANCED_PROTECTION_INFO = "advanced_protection_info"; -@@ -216,6 +233,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -218,6 +235,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment (ChromeSwitchPreference) findPreference(PREF_PASSWORD_LEAK_DETECTION); passwordLeakTogglePref.setOnPreferenceChangeListener(this); @@ -85,7 +85,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -364,6 +391,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -365,6 +392,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_PASSWORD_LEAK_DETECTION.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.PASSWORD_LEAK_DETECTION_ENABLED, (boolean) newValue); @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -376,6 +406,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -377,6 +407,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index decc766a..9158a4ed 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -55,7 +55,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2564,6 +2564,7 @@ static_library("browser") { +@@ -2547,6 +2547,7 @@ static_library("browser") { "//services/device/public/cpp/bluetooth", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -66,7 +66,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -261,6 +261,8 @@ +@@ -264,6 +264,8 @@ #include "ui/ui_features.h" #include "url/url_features.h" @@ -89,7 +89,7 @@ diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -217,6 +217,7 @@ +@@ -219,6 +219,7 @@ #include "url/gurl.h" #include "url/origin.h" @@ -97,7 +97,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #if BUILDFLAG(IS_ANDROID) #include "base/android/child_process_binding_types.h" #include "content/browser/font_unique_name_lookup/font_unique_name_lookup_service.h" -@@ -3458,6 +3459,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3501,6 +3502,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBestEffortTasks, switches::kDisableBreakpad, switches::kDisableFileSystem, @@ -127,9 +127,9 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. +#include "third_party/ungoogled/ungoogled_switches.h" + #if BUILDFLAG(IS_ANDROID) - #include "base/android/build_info.h" + #include "base/android/android_info.h" #endif -@@ -514,6 +516,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -517,6 +519,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -180,7 +180,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/task/single_thread_task_runner.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" -@@ -1085,6 +1086,16 @@ Document::Document(const DocumentInit& initializer, +@@ -1084,6 +1085,16 @@ Document::Document(const DocumentInit& initializer, TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this), TRACE_EVENT_FLAG_FLOW_OUT); DCHECK(agent_); @@ -197,7 +197,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution) && features::kDelayAsyncScriptExecutionDelayByDefaultParam.Get()) { script_runner_delayer_->Activate(); -@@ -2778,6 +2789,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2794,6 +2805,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -226,16 +226,16 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ V8VisibilityState visibilityState() const; String visibilityStateAsString() const; bool IsPageVisible() const; -@@ -2770,6 +2774,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2783,6 +2787,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; + double noise_factor_x_; + double noise_factor_y_; + - Member script_runner_; - Member script_runner_delayer_; - + // The script runner is used to run scripts of the following scheduling types: + // - ScriptSchedulingType::kAsync + // - ScriptSchedulingType::kInOrder diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc --- a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc +++ b/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc @@ -388,7 +388,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c // Including "base/time/time.h" triggers a bug in IWYU. // https://github.com/include-what-you-use/include-what-you-use/issues/1122 // IWYU pragma: no_include "base/numerics/clamped_math.h" -@@ -554,6 +558,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( +@@ -552,6 +556,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -1248,13 +1256,27 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -1245,13 +1253,27 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { TextDirection direction = ToTextDirection(state.GetDirection(), host, computed_style); @@ -431,7 +431,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1741,7 +1741,9 @@ component("platform") { +@@ -1756,7 +1756,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -442,7 +442,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re allow_circular_includes_from = [ "//third_party/blink/renderer/platform/blob", -@@ -1823,6 +1825,7 @@ component("platform") { +@@ -1839,6 +1841,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -673,7 +673,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h --- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h +++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h -@@ -38,6 +38,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { +@@ -39,6 +39,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image { StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {} @@ -685,7 +685,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3320,6 +3320,12 @@ +@@ -3341,6 +3341,12 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Never-treat-Proguard-warnings-as-errors.patch b/build/patches/Never-treat-Proguard-warnings-as-errors.patch index 66f3a549..fca1c482 100644 --- a/build/patches/Never-treat-Proguard-warnings-as-errors.patch +++ b/build/patches/Never-treat-Proguard-warnings-as-errors.patch @@ -9,7 +9,7 @@ Subject: Never treat Proguard warnings as errors diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni --- a/build/config/android/internal_rules.gni +++ b/build/config/android/internal_rules.gni -@@ -1221,9 +1221,9 @@ if (enable_java_templates) { +@@ -1242,9 +1242,9 @@ if (enable_java_templates) { _source_file_template, "--proguard-configs=@FileArg($_rebased_build_config:proguard_all_configs)", ] diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index 4fdb541a..18630962 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java --- a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java +++ b/chrome/browser/search_engines/android/java/src/org/chromium/chrome/browser/search_engines/settings/SearchEngineAdapter.java -@@ -292,7 +292,9 @@ public class SearchEngineAdapter extends BaseAdapter +@@ -326,7 +326,9 @@ public class SearchEngineAdapter extends BaseAdapter continue; } if (recentEngineNum < MAX_RECENT_ENGINE_NUM @@ -176,7 +176,7 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c #include "base/metrics/histogram_macros.h" #include "base/no_destructor.h" #include "base/strings/string_number_conversions.h" -@@ -262,6 +263,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() { +@@ -263,6 +264,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() { GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL(); if (!osdd_url.is_empty()) { @@ -309,7 +309,7 @@ diff --git a/components/search_engines/template_url_parser.cc b/components/searc diff --git a/components/search_engines/template_url_service.h b/components/search_engines/template_url_service.h --- a/components/search_engines/template_url_service.h +++ b/components/search_engines/template_url_service.h -@@ -379,7 +379,10 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -383,7 +383,10 @@ class TemplateURLService final : public WebDataServiceConsumer, void UpdateProviderFavicons(const GURL& potential_search_url, const GURL& favicon_url); @@ -321,7 +321,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // regardless of |url| if the default search provider is managed by policy or // controlled by an extension. bool CanMakeDefault(const TemplateURL* url) const; -@@ -774,9 +777,6 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -778,9 +781,6 @@ class TemplateURLService final : public WebDataServiceConsumer, // SetKeywordSearchTermsForURL is invoked. void UpdateKeywordSearchTermsForURL(const URLVisitedDetails& details); diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch index 1e023a94..168ee176 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -61,15 +61,15 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -73,6 +73,7 @@ - #include "components/embedder_support/switches.h" +@@ -75,6 +75,7 @@ + #include "components/input/features.h" #include "components/input/utils.h" #include "components/metrics/histogram_controller.h" +#include "components/language/core/browser/language_prefs.h" #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3369,8 +3370,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3412,8 +3413,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( PropagateBrowserCommandLineToRenderer(browser_command_line, command_line); // Pass on the browser locale. diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch index e73c1bf5..0715b47d 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc --- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc -@@ -2661,7 +2661,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2658,7 +2658,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( url, document->Fetcher()->GetCacheIdentifier( @@ -64,7 +64,7 @@ diff --git a/third_party/blink/renderer/core/inspector/inspector_page_agent.cc b diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_party/blink/renderer/core/loader/image_loader.cc --- a/third_party/blink/renderer/core/loader/image_loader.cc +++ b/third_party/blink/renderer/core/loader/image_loader.cc -@@ -736,7 +736,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -735,7 +735,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( url, element_->GetDocument().Fetcher()->GetCacheIdentifier( @@ -77,7 +77,7 @@ diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_part diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc -@@ -282,7 +282,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, +@@ -292,7 +292,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map, } bool MemoryCache::Contains(const Resource* resource) const { @@ -86,7 +86,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ return false; const auto resource_maps_it = -@@ -298,13 +298,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -308,13 +308,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } @@ -127,7 +127,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -985,7 +985,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -982,7 +982,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( } const String cache_identifier = GetCacheIdentifier( @@ -137,7 +137,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c // Most off-main-thread resource fetches use Resource::kRaw and don't reach // this point, but off-main-thread module fetches might. if (IsMainThread()) { -@@ -1389,7 +1390,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1386,7 +1387,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, params.Url(), GetCacheIdentifier( params.Url(), @@ -147,7 +147,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, is_static_data); -@@ -1702,7 +1704,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1699,7 +1701,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const ResourceFactory& factory) { const String cache_identifier = GetCacheIdentifier(params.GetResourceRequest().Url(), @@ -157,7 +157,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c DCHECK(!IsMainThread() || params.IsStaleRevalidation() || !MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(), cache_identifier)); -@@ -2828,11 +2831,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { +@@ -2825,11 +2828,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() { } String ResourceFetcher::GetCacheIdentifier(const KURL& url, @@ -210,7 +210,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } // Requests that can be satisfied via `archive_` (i.e. MHTML) or -@@ -2847,7 +2886,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, +@@ -2844,7 +2883,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url, return bundle->GetCacheIdentifier(); } diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index cb8cf3ba..080af082 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc --- a/chrome/browser/ssl/https_upgrades_interceptor.cc +++ b/chrome/browser/ssl/https_upgrades_interceptor.cc -@@ -413,6 +413,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( +@@ -414,6 +414,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( CHECK(tentative_resource_request.trusted_params); network_context->IsHSTSActiveForHost( @@ -653,7 +653,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc --- a/net/quic/quic_chromium_client_session.cc +++ b/net/quic/quic_chromium_client_session.cc -@@ -1543,7 +1543,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1544,7 +1544,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -665,7 +665,7 @@ diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_c diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -1231,7 +1231,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1218,7 +1218,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { context_->transport_security_state()->CheckPublicKeyPins( host_and_port_.host(), server_cert_verify_result_.is_issued_by_known_root, @@ -675,7 +675,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket switch (pin_validity) { case TransportSecurityState::PKPStatus::VIOLATED: server_cert_verify_result_.cert_status |= -@@ -1251,7 +1252,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1238,7 +1239,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { IsCertStatusError(server_cert_verify_result_.cert_status) && result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED && context_->transport_security_state()->ShouldSSLErrorsBeFatal( @@ -687,7 +687,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -736,7 +736,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -731,7 +731,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -697,7 +697,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc // Pooling is prohibited if the server cert is not valid for the new domain, // and for connections on which client certs were sent. It is also prohibited // when channel ID was sent if the hosts are from different eTLDs+1. -@@ -754,7 +755,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -749,7 +750,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, if (transport_security_state->CheckPublicKeyPins( new_hostname, ssl_info.is_issued_by_known_root, @@ -706,7 +706,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc TransportSecurityState::PKPStatus::VIOLATED) { return false; } -@@ -990,7 +991,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { +@@ -987,7 +988,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { return true; // This is not a secure session, so all domains are okay. return CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -716,7 +716,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3104,7 +3106,8 @@ void SpdySession::OnAltSvc( +@@ -3101,7 +3103,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -795,7 +795,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -2049,6 +2049,7 @@ void NetworkContext::CreateHostResolver( +@@ -2069,6 +2069,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertInternal( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -803,7 +803,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, -@@ -2060,6 +2061,7 @@ void NetworkContext::VerifyCertInternal( +@@ -2080,6 +2081,7 @@ void NetworkContext::VerifyCertInternal( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->host_port = host_port; @@ -811,7 +811,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont net::CertVerifier* cert_verifier = g_cert_verifier_for_testing ? g_cert_verifier_for_testing : url_request_context_->cert_verifier(); -@@ -2090,20 +2092,22 @@ void NetworkContext::VerifyCertInternal( +@@ -2110,20 +2112,22 @@ void NetworkContext::VerifyCertInternal( void NetworkContext::VerifyCert( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -836,7 +836,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont CTVerificationMode::kSignedExchange, std::move(callback)); } -@@ -2144,17 +2148,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -2164,17 +2168,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -859,7 +859,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont bool is_top_level_nav, IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = -@@ -2166,10 +2172,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -2186,10 +2192,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, } std::move(callback).Run( @@ -872,7 +872,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -2207,10 +2213,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2227,10 +2233,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, net::TransportSecurityState::STSState dynamic_sts_state; net::TransportSecurityState::PKPState dynamic_pkp_state; bool found_sts_dynamic = transport_security_state->GetDynamicSTSState( @@ -885,7 +885,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont if (found_sts_dynamic) { result.Set("dynamic_upgrade_mode", static_cast(dynamic_sts_state.upgrade_mode)); -@@ -2248,6 +2254,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2268,6 +2274,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -893,7 +893,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& host, DeleteDynamicDataForHostCallback callback) { net::TransportSecurityState* transport_security_state = -@@ -2258,7 +2265,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2278,7 +2285,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -902,7 +902,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2313,7 +2320,7 @@ void NetworkContext::PreconnectSockets( +@@ -2333,7 +2340,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -911,7 +911,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // |PreconnectSockets| may receive arguments from the renderer, which is not // guaranteed to validate them. -@@ -3158,7 +3165,9 @@ void NetworkContext::OnConnectionError() { +@@ -3171,7 +3178,9 @@ void NetworkContext::OnConnectionError() { } } @@ -922,7 +922,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont // TODO(lilyhoughton) This needs to be gotten rid of once explicit // construction with a URLRequestContext is no longer supported. -@@ -3184,6 +3193,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { +@@ -3197,6 +3206,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) { // top-level navigation so we need to disallow HSTS upgrades for every // preconnect. if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL( @@ -930,7 +930,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont original_url.host(), /*is_top_level_nav=*/false)) { RecordHSTSPreconnectUpgradeReason( HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin); -@@ -3237,7 +3247,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { +@@ -3250,7 +3260,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) { url_request_context_->transport_security_state()->CheckPublicKeyPins( pending_cert_verify->host_port.host(), pending_cert_verify->result->is_issued_by_known_root, @@ -943,7 +943,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -418,12 +418,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -425,12 +425,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingReceiver receiver) override; void VerifyCert(const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -958,7 +958,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, VerifyCertCallback callback) override; -@@ -432,16 +434,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -439,16 +441,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const std::string& hostname, const scoped_refptr& tls_certificate, Verify2QwacCertBindingCallback callback) override; @@ -980,7 +980,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -798,7 +802,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -809,7 +813,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -990,7 +990,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -810,6 +815,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -821,6 +826,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void VerifyCertInternal( const scoped_refptr& certificate, const net::HostPortPair& host_port, @@ -998,7 +998,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& ocsp_result, const std::string& sct_list, CTVerificationMode ct_verification_mode, -@@ -990,6 +996,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -1006,6 +1012,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertCallback callback; scoped_refptr certificate; net::HostPortPair host_port; @@ -1009,7 +1009,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1560,6 +1560,7 @@ interface NetworkContext { +@@ -1589,6 +1589,7 @@ interface NetworkContext { // Checks the given certificate against the CertVerifier and CTVerifier. VerifyCert(X509Certificate certificate, HostPortPair host_port, @@ -1017,7 +1017,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw string ocsp_response, string sct_list) => (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed); -@@ -1568,6 +1569,7 @@ interface NetworkContext { +@@ -1597,6 +1598,7 @@ interface NetworkContext { // This implementation is specific for use by Signed Exchange. VerifyCertForSignedExchange(X509Certificate certificate, HostPortPair host_port, @@ -1025,7 +1025,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw string ocsp_response, string sct_list) => (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed); -@@ -1582,18 +1584,18 @@ interface NetworkContext { +@@ -1611,18 +1613,18 @@ interface NetworkContext { // Adds explicitly-specified data as if it was processed from an // HSTS header. Used by tests and implementation of chrome://net-internals. @@ -1047,7 +1047,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw // Sets allowed and blocked origins respectively for the URLLoaderFactory // consumers to access beyond the same-origin policy. The list is managed per -@@ -1612,7 +1614,7 @@ interface NetworkContext { +@@ -1641,7 +1643,7 @@ interface NetworkContext { // Deletes any dynamic data stored for |host| from the transport // security state. Returns true iff an entry was deleted. // See net::TransportSecurityState::DeleteDynamicDataForHost for more detail. diff --git a/build/patches/Partition-MediaDeviceId-by-default.patch b/build/patches/Partition-MediaDeviceId-by-default.patch index 2bf1782b..1ac24178 100644 --- a/build/patches/Partition-MediaDeviceId-by-default.patch +++ b/build/patches/Partition-MediaDeviceId-by-default.patch @@ -53,7 +53,7 @@ diff --git a/content/browser/media/media_devices_util.cc b/content/browser/media diff --git a/content/browser/renderer_host/media/media_devices_manager.cc b/content/browser/renderer_host/media/media_devices_manager.cc --- a/content/browser/renderer_host/media/media_devices_manager.cc +++ b/content/browser/renderer_host/media/media_devices_manager.cc -@@ -1112,6 +1112,11 @@ void MediaDevicesManager::OnDevicesEnumerated( +@@ -1110,6 +1110,11 @@ void MediaDevicesManager::OnDevicesEnumerated( } } } diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch index 6909607b..ebcd1748 100644 --- a/build/patches/Partition-blobs-by-top-frame-URL.patch +++ b/build/patches/Partition-blobs-by-top-frame-URL.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.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 -@@ -12939,6 +12939,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( +@@ -12961,6 +12961,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL( } bool RenderFrameHostImpl::IsFullCookieAccessAllowed() { diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch index 3f0ea255..2a1df1ff 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -51,7 +51,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -3692,7 +3692,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3825,7 +3825,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -77,7 +77,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -1127,16 +1127,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -1130,16 +1130,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( // UI to interact with SameSite cookies on accounts.google.com, which is used // for displaying a list of available accounts on the NTP // (chrome://new-tab-page), etc. @@ -114,7 +114,7 @@ diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc --- a/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc +++ b/chrome/browser/storage_access_api/storage_access_grant_permission_context.cc -@@ -220,6 +220,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed( +@@ -221,6 +221,7 @@ FederatedIdentityPermissionContext* IsAutograntViaFedCmAllowed( const url::Origin& embedding_origin, const net::SchemefulSite& embedding_site, const net::SchemefulSite& requesting_site) { @@ -122,7 +122,7 @@ diff --git a/chrome/browser/storage_access_api/storage_access_grant_permission_c CHECK(browser_context); if (!rfh->IsFeatureEnabled( network::mojom::PermissionsPolicyFeature::kIdentityCredentialsGet)) { -@@ -466,6 +467,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( +@@ -482,6 +483,18 @@ void StorageAccessGrantPermissionContext::CheckForAutoGrantOrAutoDenial( std::unique_ptr request_data, permissions::BrowserPermissionCallback callback, net::FirstPartySetMetadata metadata) { @@ -162,17 +162,17 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen - Third-party cookies are allowed + Third-party cookies are partitioned - - Third-party cookies are blocked in Incognito mode -@@ -658,7 +658,7 @@ - Allow third-party cookies + + Third-party cookies are blocked +@@ -667,7 +667,7 @@ + A site you visit can embed content from other sites, for example, images, ads, and text. Cookies set by these other sites are called third-party cookies. - -- Sites will work normally + +- Allow third-party cookies + Partitions all cookies by top frame url - - Block third-party cookies in Incognito mode + + Block third-party cookies diff --git a/components/content_settings/core/browser/cookie_settings.cc b/components/content_settings/core/browser/cookie_settings.cc --- a/components/content_settings/core/browser/cookie_settings.cc +++ b/components/content_settings/core/browser/cookie_settings.cc @@ -184,7 +184,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -402,8 +403,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { +@@ -398,8 +399,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const { } bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { @@ -506,7 +506,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -903,6 +903,7 @@ void CorsURLLoader::StartRequest() { +@@ -909,6 +909,7 @@ void CorsURLLoader::StartRequest() { } if (request_.credentials_mode == mojom::CredentialsMode::kInclude && @@ -533,7 +533,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc --- a/services/network/url_loader.cc +++ b/services/network/url_loader.cc -@@ -2544,6 +2544,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { +@@ -2550,6 +2550,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const { auto determine_storage_access_load_outcome = [&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome { @@ -554,7 +554,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_init.idl b/t diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc --- a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc +++ b/third_party/blink/renderer/modules/cookie_store/cookie_store.cc -@@ -386,6 +386,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, +@@ -393,6 +393,7 @@ ScriptPromise CookieStore::set(ScriptState* script_state, CookieInit* set_options = CookieInit::Create(); set_options->setName(name); set_options->setValue(value); @@ -562,7 +562,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return set(script_state, set_options, exception_state); } -@@ -409,6 +410,7 @@ ScriptPromise CookieStore::Delete( +@@ -416,6 +417,7 @@ ScriptPromise CookieStore::Delete( set_options->setName(name); set_options->setValue(name.empty() ? "deleted" : ""); set_options->setExpires(0); @@ -570,7 +570,7 @@ diff --git a/third_party/blink/renderer/modules/cookie_store/cookie_store.cc b/t return DoWrite(script_state, set_options, exception_state); } -@@ -424,6 +426,7 @@ ScriptPromise CookieStore::Delete( +@@ -431,6 +433,7 @@ ScriptPromise CookieStore::Delete( set_options->setPath(options->path()); set_options->setSameSite(V8CookieSameSite::Enum::kStrict); set_options->setPartitioned(options->partitioned()); diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index d0b0b8f2..60d2585d 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -25,8 +25,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1348,6 +1348,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) { - url); +@@ -1391,6 +1391,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) { + return false; } +bool ShouldAllowInsecurePrivateNetworkRequests( @@ -57,12 +57,12 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch } // namespace // static -@@ -7582,12 +7607,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride +@@ -7763,12 +7788,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( content::BrowserContext* browser_context, const url::Origin& origin) { -#if BUILDFLAG(IS_ANDROID) -- if (base::android::BuildInfo::GetInstance()->is_automotive()) { +- if (base::android::device_info::is_automotive()) { + if (HostContentSettingsMap* service = + HostContentSettingsMapFactory::GetForProfile(browser_context)) { + if (ShouldAllowInsecurePrivateNetworkRequests(service, origin)) { @@ -107,7 +107,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -120,8 +120,8 @@ new file mode 100644 +public class BromiteInsecurePrivateNetworkContentSetting extends BromiteCustomContentSetting { + public BromiteInsecurePrivateNetworkContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.INSECURE_PRIVATE_NETWORK, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "insecure_private_network", + /*profilePrefKey*/ "insecure_private_network"); @@ -140,11 +140,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_insecure_private_network_allowed; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_insecure_private_network_blocked; + default: + return 0; @@ -172,8 +172,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp b/components/browser_ui/strings/bromite_content_settings/insecure_private_network.grdp @@ -247,7 +247,7 @@ new file mode 100644 diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/cors_url_loader.cc --- a/services/network/cors/cors_url_loader.cc +++ b/services/network/cors/cors_url_loader.cc -@@ -1067,7 +1067,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1073,7 +1073,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -259,12 +259,12 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co 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 -@@ -236,7 +236,7 @@ BASE_FEATURE_PARAM(bool, +@@ -251,7 +251,7 @@ BASE_FEATURE_PARAM(bool, kLocalNetworkAccessChecksWarn, &kLocalNetworkAccessChecks, /*name=*/"LocalNetworkAccessChecksWarn", -- /*default_value=*/true); -+ /*default_value=*/false); +- /*default_value=*/false); ++ /*default_value=*/false); // keep false // Enables Local Network Access checks for WebRTC. // Blocks local network requests without user permission to prevent exploitation diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch index b2c7d7d8..f9ad0be1 100644 --- a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch +++ b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch @@ -13,7 +13,7 @@ the Windows platform diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc --- a/content/browser/webauth/authenticator_common_impl.cc +++ b/content/browser/webauth/authenticator_common_impl.cc -@@ -1845,6 +1845,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -1882,6 +1882,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities( base::FeatureList::IsEnabled(device::kWebAuthnPasskeyUpgrade))); IsHybridTransportSupported( @@ -21,7 +21,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow base::BindOnce(&MakeCapability, client_capabilities::kHybridTransport) .Then(barrier_callback)); -@@ -1865,11 +1866,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( +@@ -1902,11 +1903,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities( } void AuthenticatorCommonImpl::IsHybridTransportSupported( @@ -47,7 +47,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow device::BluetoothAdapterFactory::Get()->GetAdapter( base::BindOnce([](scoped_refptr adapter) { -@@ -1915,6 +1930,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( +@@ -1952,6 +1967,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck( IsUserVerifyingPlatformAuthenticatorAvailableCallback callback, bool is_get_client_capabilities_call, std::optional is_uvpaa_override) { diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index 95728a47..a7d975e3 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -22,15 +22,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/CloseAllTabsDialog.java -@@ -12,6 +12,7 @@ import org.chromium.base.metrics.RecordHistogram; +@@ -11,6 +11,7 @@ import androidx.annotation.VisibleForTesting; + import org.chromium.base.metrics.RecordHistogram; import org.chromium.base.metrics.RecordUserAction; - import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.NullMarked; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.R; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.ui.modaldialog.DialogDismissalCause; -@@ -37,6 +38,11 @@ public class CloseAllTabsDialog { +@@ -38,6 +39,11 @@ public class CloseAllTabsDialog { Supplier modalDialogManagerSupplier, TabModelSelector tabModelSelector, Runnable onCloseAll) { @@ -39,13 +39,13 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + return; + } + - assert modalDialogManagerSupplier.hasValue(); + assert modalDialogManagerSupplier.get() != null; final ModalDialogManager manager = modalDialogManagerSupplier.get(); final boolean isIncognito = tabModelSelector.getCurrentModel().isIncognito(); 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 -@@ -248,6 +248,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -252,6 +252,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kAsyncNotificationManagerForDownload, &kAutomotiveBackButtonBarStreamline, &kAuxiliarySearchDonation, @@ -56,7 +56,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -353,6 +353,7 @@ public abstract class ChromeFeatureList { +@@ -360,6 +360,7 @@ public abstract class ChromeFeatureList { "ClearBrowsingDataAndroidSurvey"; public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY = "ClearInstanceInfoWhenClosedIntentionally"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index db0bd3bd..cff299ce 100644 --- a/build/patches/Re-introduce-override_build_timestamp.patch +++ b/build/patches/Re-introduce-override_build_timestamp.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/base/BUILD.gn b/base/BUILD.gn --- a/base/BUILD.gn +++ b/base/BUILD.gn -@@ -4349,8 +4349,12 @@ if (current_toolchain == default_toolchain) { +@@ -4374,8 +4374,12 @@ if (current_toolchain == default_toolchain) { outputs = [ _build_date_header_internal ] args = [ rebase_path(_build_date_header_internal, root_build_dir), diff --git a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch index b9340ad7..8c862fa0 100644 --- a/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch +++ b/build/patches/Reduce-HTTP-headers-in-DoH-requests-to-bare-minimum.patch @@ -12,18 +12,19 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/base/load_flags_list.h b/net/base/load_flags_list.h --- a/net/base/load_flags_list.h +++ b/net/base/load_flags_list.h -@@ -115,3 +115,7 @@ LOAD_FLAG(DISABLE_SHARED_DICTIONARY_AFTER_CROSS_ORIGIN_REDIRECT, 1 << 18) - // This flag is used to bypass HSTS upgrades. This flag must be set for AIA, +@@ -116,4 +116,8 @@ LOAD_FLAG(DISABLE_SHARED_DICTIONARY_AFTER_CROSS_ORIGIN_REDIRECT, 1 << 17) // CRL, and OCSP requests in order to prevent circular dependencies. - LOAD_FLAG(SHOULD_BYPASS_HSTS, 1 << 19) -+ + LOAD_FLAG(SHOULD_BYPASS_HSTS, 1 << 18) + +// Used to comply with IETF (draft) DNS-over-HTTPS: +// "Implementors SHOULD NOT set non-essential HTTP headers in DoH client requests." -+LOAD_FLAG(MINIMAL_HEADERS, 1 << 20) ++LOAD_FLAG(MINIMAL_HEADERS, 1 << 19) ++ + // See note at top of file about why adding LoadFlags is often a bad idea. diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc --- a/net/dns/dns_transaction.cc +++ b/net/dns/dns_transaction.cc -@@ -485,7 +485,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { +@@ -488,7 +488,7 @@ class DnsHTTPAttempt : public DnsAttempt, public URLRequest::Delegate { // avoid deadlock and enable the use of preconfigured IP addresses. request_->SetSecureDnsPolicy(SecureDnsPolicy::kBootstrap); request_->SetLoadFlags(request_->load_flags() | LOAD_DISABLE_CACHE | diff --git a/build/patches/Remove-ChromiumNetworkAdapter.patch b/build/patches/Remove-ChromiumNetworkAdapter.patch index 3263d2d1..5b0fe362 100644 --- a/build/patches/Remove-ChromiumNetworkAdapter.patch +++ b/build/patches/Remove-ChromiumNetworkAdapter.patch @@ -86,7 +86,7 @@ diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/web diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java -@@ -1003,45 +1003,6 @@ public class OMADownloadHandler extends BroadcastReceiver { +@@ -1019,45 +1019,6 @@ public class OMADownloadHandler extends BroadcastReceiver { protected Boolean doInBackground() { HttpURLConnection urlConnection = null; boolean success = false; diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch index 25eb39ac..45f8d6d7 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -634,6 +634,8 @@ chrome_java_resources = [ +@@ -638,6 +638,8 @@ chrome_java_resources = [ "java/res/xml/personalize_google_services_preferences.xml", "java/res/xml/incognito_preferences.xml", "java/res/xml/privacy_preferences.xml", @@ -56,7 +56,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -923,6 +923,8 @@ chrome_java_sources = [ +@@ -931,6 +931,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarLimiter.java", @@ -170,7 +170,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; +@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.preferences.ChromePreferenceKeys; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsFragment; @@ -178,7 +178,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting import org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings; import org.chromium.chrome.browser.privacy_guide.PrivacyGuideInteractions; import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxBridge; -@@ -113,6 +114,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -114,6 +115,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_PASSWORD_LEAK_DETECTION = "password_leak_detection"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -395,7 +395,7 @@ new file mode 100644 diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -231,6 +231,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -234,6 +234,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -678,6 +678,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( +@@ -674,6 +674,9 @@ SystemNetworkContextManager::SystemNetworkContextManager( base::BindRepeating(&SystemNetworkContextManager::UpdateReferrersEnabled, base::Unretained(this))); @@ -420,7 +420,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows pref_change_registrar_.Add( prefs::kExplicitlyAllowedNetworkPorts, base::BindRepeating( -@@ -760,6 +763,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -756,6 +759,7 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { // the system NetworkContext, and the per-profile pref values are used for // the profile NetworkContexts. registry->RegisterBooleanPref(prefs::kEnableReferrers, true); @@ -431,9 +431,9 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/renderer_preferences_util.cc --- a/chrome/browser/renderer_preferences_util.cc +++ b/chrome/browser/renderer_preferences_util.cc -@@ -112,6 +112,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, - prefs->accept_languages = GetLanguageListForProfile( - profile, pref_service->GetString(language::prefs::kAcceptLanguages)); +@@ -146,6 +146,7 @@ void UpdateFromSystemSettings(blink::RendererPreferences* prefs, + #endif + #endif prefs->enable_referrers = pref_service->GetBoolean(prefs::kEnableReferrers); + prefs->referrers_policy = pref_service->GetInteger(prefs::kReferrersPolicy); prefs->enable_do_not_track = @@ -442,7 +442,7 @@ diff --git a/chrome/browser/renderer_preferences_util.cc b/chrome/browser/render diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -114,6 +114,16 @@ +@@ -101,6 +101,16 @@ menu-options="[[historyExpireDaysThresholdOptions_]]"> @@ -462,7 +462,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/chrome/browser/resources/settings/privacy_page/privacy_page.ts --- a/chrome/browser/resources/settings/privacy_page/privacy_page.ts +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.ts -@@ -101,6 +101,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -100,6 +100,17 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { }, }, @@ -480,15 +480,15 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch isGuest_: { type: Boolean, value() { -@@ -380,6 +391,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -323,6 +334,7 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { + declare private enableWebPrintingContentSetting_: boolean; declare private isPrivacySandboxRestricted_: boolean; declare private isPrivacySandboxRestrictedNoticeEnabled_: boolean; - declare private enableAutomaticFullscreenContentSetting_: boolean; + declare private referersPolicyOptions_: object[]; private privateStateTokensEnabled_: boolean; declare private autoPictureInPictureEnabled_: boolean; declare private capturedSurfaceControlEnabled_: boolean; -@@ -459,6 +471,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { +@@ -397,6 +409,12 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { Router.getInstance().navigateTo(routes.COOKIES); } @@ -504,7 +504,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1092,6 +1092,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -550,7 +550,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.cc b/chrome/browser/ui/prefs/p diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/prefs/prefs_tab_helper.cc --- a/chrome/browser/ui/prefs/prefs_tab_helper.cc +++ b/chrome/browser/ui/prefs/prefs_tab_helper.cc -@@ -381,6 +381,8 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -377,6 +377,8 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kEnableReferrers, !base::FeatureList::IsEnabled(features::kNoReferrers)); @@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -2060,6 +2060,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -2067,6 +2067,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -576,7 +576,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1555,6 +1555,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; +@@ -1569,6 +1569,9 @@ inline constexpr char kEnableReferrers[] = "enable_referrers"; inline constexpr char kEnableEncryptedMedia[] = "webkit.webprefs.encrypted_media_enabled"; @@ -639,7 +639,7 @@ diff --git a/components/download/content/internal/context_menu_download.cc b/com diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc -@@ -398,6 +398,15 @@ void AddAdditionalRequestHeaders( +@@ -397,6 +397,15 @@ void AddAdditionalRequestHeaders( blink::mojom::Referrer(GURL(), network::mojom::ReferrerPolicy::kNever); } diff --git a/build/patches/Remove-SMS-integration.patch b/build/patches/Remove-SMS-integration.patch index 1b2f6be8..06636813 100644 --- a/build/patches/Remove-SMS-integration.patch +++ b/build/patches/Remove-SMS-integration.patch @@ -6,10 +6,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../browser/language/AppLocaleUtils.java | 46 ------- .../content/browser/sms/SmsProviderGms.java | 29 +---- - .../browser/sms/SmsUserConsentReceiver.java | 48 +------ - .../browser/sms/SmsVerificationReceiver.java | 121 +----------------- + .../browser/sms/SmsUserConsentReceiver.java | 49 +------ + .../browser/sms/SmsVerificationReceiver.java | 122 +----------------- .../content/browser/sms/Wrappers.java | 30 +---- - 5 files changed, 8 insertions(+), 266 deletions(-) + 5 files changed, 8 insertions(+), 268 deletions(-) diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/AppLocaleUtils.java @@ -134,7 +134,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java --- a/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java +++ b/content/public/android/java/src/org/chromium/content/browser/sms/SmsUserConsentReceiver.java -@@ -10,13 +10,6 @@ import android.content.Context; +@@ -12,13 +12,6 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -148,7 +148,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; -@@ -36,30 +29,12 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -39,30 +32,12 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { mDestroyed = false; mProvider = provider; mContext = context; @@ -179,7 +179,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } @Override -@@ -70,7 +45,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -73,7 +48,7 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { return; } @@ -188,7 +188,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm return; } -@@ -104,29 +79,14 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { +@@ -102,30 +77,14 @@ public class SmsUserConsentReceiver extends BroadcastReceiver { if (DEBUG) Log.d(TAG, "Timeout"); mProvider.onTimeout(); break; @@ -196,8 +196,9 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm + } */ } - void onConsentResult(int resultCode, Intent data) { + void onConsentResult(int resultCode, @Nullable Intent data) { - if (resultCode == Activity.RESULT_OK) { +- assumeNonNull(data); - String message = data.getStringExtra(SmsRetriever.EXTRA_SMS_MESSAGE); - mProvider.onReceive(message, GmsBackend.USER_CONSENT); - } else if (resultCode == Activity.RESULT_CANCELED) { @@ -241,7 +242,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm import org.chromium.base.ContextUtils; import org.chromium.base.IntentUtils; import org.chromium.base.Log; -@@ -78,61 +68,13 @@ public class SmsVerificationReceiver extends BroadcastReceiver { +@@ -79,61 +69,13 @@ public class SmsVerificationReceiver extends BroadcastReceiver { // lightweight (e.g. it responds quickly without much computation). If this broadcast // receiver becomes more heavyweight, we should make this registration expire after the SMS // message is received. @@ -303,7 +304,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm } public void onPermissionDone(int resultCode, boolean isLocalRequest) { -@@ -152,71 +94,10 @@ public class SmsVerificationReceiver extends BroadcastReceiver { +@@ -153,72 +95,10 @@ public class SmsVerificationReceiver extends BroadcastReceiver { * task. */ public void onRetrieverTaskFailure(boolean isLocalRequest, Exception e) { @@ -339,7 +340,8 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/sms/Sm - resolutionIntent, - new WindowAndroid.IntentCallback() { - @Override -- public void onIntentCompleted(int resultCode, Intent data) { +- public void onIntentCompleted( +- int resultCode, @Nullable Intent data) { - // Backend availability will be recorded inside - // |onPermissionDone|. - onPermissionDone(resultCode, isLocalRequest); diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index ed2c0148..645b3b68 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -91,14 +91,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../components/omnibox/OmniboxFeatures.java | 8 - components/signin/public/android/BUILD.gn | 3 - components/webauthn/android/BUILD.gn | 18 +- - .../webauthn/AuthenticatorImpl.java | 89 +- + .../webauthn/AuthenticatorImpl.java | 97 +-- .../webauthn/ConditionalUiState.java | 15 + .../webauthn/GmsCoreGetCredentialsHelper.java | 78 +- .../components/webauthn/GmsCoreUtils.java | 31 +- .../webauthn/IdentityCredentialsHelper.java | 78 +- .../webauthn/WebauthnModeProvider.java | 15 - - .../webauthn/cred_man/CredManHelper.java | 15 +- - .../cred_man/CredManMetricsHelper.java | 2 +- + .../webauthn/cred_man/CredManHelper.java | 24 +- + .../cred_man/CredManMetricsHelper.java | 17 +- .../push_messaging/push_messaging_manager.cc | 2 +- content/public/android/BUILD.gn | 4 - content/test/BUILD.gn | 4 - @@ -112,7 +112,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/androidx/customizations.gni | 14 +- third_party/cardboard/BUILD.gn | 4 - - 88 files changed, 128 insertions(+), 2595 deletions(-) + 88 files changed, 137 insertions(+), 2618 deletions(-) create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected @@ -154,7 +154,7 @@ diff --git a/build/config/android/config.gni b/build/config/android/config.gni diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -311,14 +311,6 @@ if (_is_default_toolchain) { +@@ -310,14 +310,6 @@ if (_is_default_toolchain) { ":java_overlay_resources", ":system_ai_service_proto_java", ":usage_stats_proto_java", @@ -194,7 +194,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -1968,7 +1969,6 @@ if (_is_default_toolchain) { +@@ -1972,7 +1973,6 @@ if (_is_default_toolchain) { ] deps = [ ":chrome_java", @@ -202,7 +202,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//build/android:build_java", -@@ -2080,7 +2080,6 @@ if (_is_default_toolchain) { +@@ -2083,7 +2083,6 @@ if (_is_default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -210,7 +210,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/app/TrichromeZygotePreload.java", "java/src/org/chromium/chrome/browser/ChromeBackgroundService.java", "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java", -@@ -2098,8 +2097,6 @@ if (_is_default_toolchain) { +@@ -2101,8 +2100,6 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -219,7 +219,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java", "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java", -@@ -2126,15 +2123,10 @@ if (_is_default_toolchain) { +@@ -2129,15 +2126,10 @@ if (_is_default_toolchain) { "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", "java/src/org/chromium/chrome/browser/provider/PageContentProvider.java", @@ -235,7 +235,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/autofill/android:third_party_provider_java", "//chrome/browser/download/android:file_provider_java", -@@ -2149,7 +2141,6 @@ if (_is_default_toolchain) { +@@ -2152,7 +2144,6 @@ if (_is_default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -243,7 +243,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/jni_zero:jni_zero_java", -@@ -2169,7 +2160,6 @@ if (_is_default_toolchain) { +@@ -2172,7 +2163,6 @@ if (_is_default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/40148088): Consider moving these to the chrome module to # reduce base dex size. @@ -262,7 +262,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", "java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java", "java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java", -@@ -950,10 +949,6 @@ chrome_java_sources = [ +@@ -958,10 +957,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", "java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java", "java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java", @@ -313,7 +313,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -340,7 +340,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1027,15 +992,6 @@ by a child template that "extends" this file. +@@ -1036,15 +1001,6 @@ by a child template that "extends" this file. android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE"/> @@ -356,7 +356,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1344,12 +1300,6 @@ by a child template that "extends" this file. +@@ -1353,12 +1309,6 @@ by a child template that "extends" this file. {% endif %} @@ -448,7 +448,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task diff --git a/chrome/android/javatests/BUILD.gn b/chrome/android/javatests/BUILD.gn --- a/chrome/android/javatests/BUILD.gn +++ b/chrome/android/javatests/BUILD.gn -@@ -50,13 +50,6 @@ android_library("chrome_test_java_helper") { +@@ -49,13 +49,6 @@ android_library("chrome_test_java_helper") { ] public_deps = [ @@ -588,10 +588,10 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p ":utils_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "account_storage_notice:java", "//base:base_java", "//build/android:build_java", -@@ -251,7 +249,6 @@ android_library("utils_java") { + "//chrome/browser/device_reauth/android:java", +@@ -249,7 +247,6 @@ android_library("utils_java") { deps = [ ":java_resources", @@ -599,15 +599,15 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "//base:base_java", "//base:resetters_java", "//base:tasks_java", -@@ -332,8 +329,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -326,8 +323,6 @@ robolectric_binary("password_manager_junit_tests") { ":test_support_java", ":unified_password_manager_proto_java", ":utils_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", - "account_storage_notice:junit", "add_username_dialog:junit", "bottom_sheet:junit", + "grouped_affiliations:junit", diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/GmsUpdateLauncher.java @@ -676,9 +676,9 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom return AndroidBackendErrorType.UNCATEGORIZED; } -@@ -39,41 +32,14 @@ class PasswordManagerAndroidBackendUtil { - return ((PasswordCheckupClientHelper.PasswordCheckBackendException) exception) - .errorCode; +@@ -38,41 +31,14 @@ class PasswordManagerAndroidBackendUtil { + if (exception instanceof PasswordCheckupClientHelper.PasswordManagerUnavailableException) { + return CredentialManagerError.PASSWORD_MANAGER_NOT_AVAILABLE; } - if (exception instanceof ApiException) { - return CredentialManagerError.API_EXCEPTION; @@ -723,7 +723,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java -@@ -16,8 +16,6 @@ import androidx.annotation.IntDef; +@@ -18,8 +18,6 @@ import androidx.annotation.IntDef; import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentActivity; @@ -732,7 +732,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom import org.jni_zero.JniType; import org.jni_zero.NativeMethods; -@@ -608,13 +606,6 @@ public class PasswordManagerHelper { +@@ -531,13 +529,6 @@ public class PasswordManagerHelper { // If the exception is not a Chrome-defined one, it means that the call failed at the // API call level. It could have either failed with a known ApiException or because of a // different error (e.g. a different exception thrown by the implementation of the API). @@ -837,7 +837,7 @@ diff --git a/chrome/browser/password_manager/android/one_time_passwords/java/src diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/chrome/browser/push_messaging/push_messaging_service_factory.cc --- a/chrome/browser/push_messaging/push_messaging_service_factory.cc +++ b/chrome/browser/push_messaging/push_messaging_service_factory.cc -@@ -21,13 +21,7 @@ +@@ -24,13 +24,7 @@ // static PushMessagingServiceImpl* PushMessagingServiceFactory::GetForProfile( content::BrowserContext* context) { @@ -855,7 +855,7 @@ diff --git a/chrome/browser/push_messaging/push_messaging_service_factory.cc b/c diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc --- a/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc +++ b/chrome/browser/safe_browsing/notification_telemetry/notification_telemetry_service.cc -@@ -117,6 +117,7 @@ NotificationTelemetryService::NotificationTelemetryService( +@@ -127,6 +127,7 @@ NotificationTelemetryService::NotificationTelemetryService( // Notification Telemetry Service is a keyed service and will outlive // any invocations of the callback being registered with the push messaging // service (also a keyed service). @@ -866,7 +866,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te 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 -@@ -141,8 +141,6 @@ static_library("ui") { +@@ -128,8 +128,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -875,7 +875,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/history_clusters/history_clusters_internals_ui_config.cc", "webui/history_clusters/history_clusters_internals_ui_config.h", "webui/interstitials/interstitial_ui.cc", -@@ -472,7 +470,6 @@ static_library("ui") { +@@ -463,7 +461,6 @@ static_library("ui") { "//components/fingerprinting_protection_filter/browser", "//components/fingerprinting_protection_filter/interventions/browser", "//components/fingerprinting_protection_filter/interventions/common:features", @@ -886,7 +886,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -155,8 +155,6 @@ android_library("java") { +@@ -169,8 +169,6 @@ android_library("java") { deps = [ ":java_resources", @@ -895,7 +895,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -486,8 +484,6 @@ robolectric_library("junit") { +@@ -512,8 +510,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -907,10 +907,10 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -247,11 +247,9 @@ public class FullscreenSigninMediator - * also means that native has been initialized. - */ - void onInitialLoadCompleted(boolean hasPolicies) { +@@ -265,11 +265,9 @@ public class FullscreenSigninMediator + AccountUtils.getAccountsIfFulfilledOrEmpty(mAccountManagerFacade.getAccounts()), + this::onChildAccountStatusReady); + - boolean isMetricsReportingDisabledByPolicy = false; + boolean isMetricsReportingDisabledByPolicy = true; Log.i(TAG, "#onInitialLoadCompleted() hasPolicies:" + hasPolicies); @@ -923,7 +923,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows 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 -@@ -238,7 +238,6 @@ void RegisterChromeWebUIConfigs() { +@@ -239,7 +239,6 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); @@ -1273,7 +1273,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -365,8 +365,6 @@ android_library("chrome_java_integration_test_support") { +@@ -370,8 +370,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -1285,7 +1285,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -2592,14 +2592,6 @@ public class ExternalNavigationHandler { +@@ -2590,14 +2590,6 @@ public class ExternalNavigationHandler { * @return Whether the given intent is going to open an Instant App. */ private static boolean isIntentToInstantApp(Intent intent) { @@ -3209,16 +3209,16 @@ diff --git a/components/omnibox/common/BUILD.gn b/components/omnibox/common/BUIL diff --git a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java --- a/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java +++ b/components/omnibox/common/android/java/src/org/chromium/components/omnibox/OmniboxFeatures.java -@@ -10,8 +10,6 @@ import android.text.format.DateUtils; +@@ -9,8 +9,6 @@ import android.text.format.DateUtils; + import androidx.annotation.IntDef; - import androidx.annotation.VisibleForTesting; -import com.google.android.gms.location.Priority; - import org.chromium.base.BaseSwitches; import org.chromium.base.CommandLine; import org.chromium.base.ContextUtils; -@@ -188,12 +186,6 @@ public class OmniboxFeatures { +@@ -173,12 +171,6 @@ public class OmniboxFeatures { "geolocation_request_min_update_interval_millis", (int) (9 * DateUtils.MINUTE_IN_MILLIS)); @@ -3243,7 +3243,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//base:service_loader_java", "//build/android:build_java", -@@ -197,7 +195,6 @@ robolectric_library("junit") { +@@ -199,7 +197,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3262,8 +3262,8 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ - "java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java", "java/src/org/chromium/components/webauthn/InternalAuthenticator.java", "java/src/org/chromium/components/webauthn/WebauthnBrowserBridge.java", - "java/src/org/chromium/components/webauthn/WebauthnModeProvider.java", -@@ -39,10 +37,6 @@ android_library("java") { + "java/src/org/chromium/components/webauthn/WebauthnFeatureMap.java", +@@ -40,10 +38,6 @@ android_library("java") { "java/src/org/chromium/components/webauthn/AuthenticatorImpl.java", "java/src/org/chromium/components/webauthn/Barrier.java", "java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java", @@ -3274,7 +3274,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "java/src/org/chromium/components/webauthn/FidoIntentSender.java", "java/src/org/chromium/components/webauthn/GetCredentialResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", -@@ -70,11 +64,11 @@ android_library("java") { +@@ -73,11 +67,11 @@ android_library("java") { "java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java", ] @@ -3290,7 +3290,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base:service_loader_java", "//base/version_info/android:version_constants_java", -@@ -145,8 +139,6 @@ android_library("test_support_java") { +@@ -148,8 +142,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3299,7 +3299,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "internal_authenticator_android.cc", "internal_authenticator_android.h", "webauthn_browser_bridge.cc", -@@ -218,8 +210,6 @@ robolectric_library("junit") { +@@ -223,8 +215,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3368,10 +3368,11 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } private @Nullable Bundle maybeCreateBrowserOptions() { -@@ -242,16 +211,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -241,17 +210,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; } +- assumeNonNull(options.publicKey); - - mPendingFido2CredentialRequest = getFido2CredentialRequest(); - mPendingFido2CredentialRequest.handleGetCredentialRequest( @@ -3385,7 +3386,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -283,10 +242,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -283,10 +241,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon decoratedCallback.call(false); return; } @@ -3396,7 +3397,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -320,27 +275,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -323,34 +277,7 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon return; } @@ -3419,13 +3420,20 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - createWebAuthnClientCapability( - AuthenticatorConstants.CAPABILITY_CONDITIONAL_CREATE, - isUvpaa && conditionalCreateEnabled)); +- capabilities.add( +- createWebAuthnClientCapability( +- AuthenticatorConstants.CAPABILITY_IMMEDIATE_GET, +- DeviceFeatureMap.isEnabled( +- DeviceFeatureList +- .WEBAUTHN_IMMEDIATE_GET) +- && isUvpaa)); - callback.call(capabilities.toArray(new WebAuthnClientCapability[0])); - }); + callback.call(capabilities.toArray(new WebAuthnClientCapability[0])); } // Helper function to create WebAuthnClientCapability instances -@@ -371,14 +306,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -381,14 +308,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.onResponse(new ArrayList()); return; } @@ -3440,7 +3448,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -389,13 +316,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -399,13 +318,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.call(false); return; } @@ -3454,17 +3462,17 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -408,9 +328,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -417,9 +329,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon if (!mIsOperationPending || mGetCredentialCallback == null) { return; } - - assumeNonNull(mPendingFido2CredentialRequest); -- mPendingFido2CredentialRequest.cancelConditionalGetAssertion(); +- mPendingFido2CredentialRequest.cancelGetAssertion(); } /** Callbacks for receiving responses from the internal handlers. */ -@@ -459,7 +376,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -468,7 +377,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } else if (mGetCredentialCallback != null) { mGetCredentialCallback.call(getCredentialResponseForAssertion(status, null)); } @@ -3472,7 +3480,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -499,14 +415,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -508,14 +416,11 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsOperationPending = false; mMakeCredentialCallback = null; mGetCredentialCallback = null; @@ -3519,7 +3527,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut import org.chromium.base.ResettersForTesting; import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; -@@ -72,6 +70,9 @@ public class GmsCoreGetCredentialsHelper { +@@ -70,6 +68,9 @@ public class GmsCoreGetCredentialsHelper { public interface GetCredentialsCallback { void onCredentialsReceived(List credentials); } @@ -3529,15 +3537,15 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut public static GmsCoreGetCredentialsHelper getInstance() { if (sInstance == null) { -@@ -102,78 +103,7 @@ public class GmsCoreGetCredentialsHelper { +@@ -100,78 +101,7 @@ public class GmsCoreGetCredentialsHelper { GetCredentialsCallback successCallback, OnFailureListener failureCallback) { log(TAG, "getCredentials with reason: " + reason); - final long startTimeMs = SystemClock.elapsedRealtime(); - if (reason == Reason.GET_ASSERTION_NON_GOOGLE - && GmsCoreUtils.isPasskeyCacheSupported() -- && DeviceFeatureMap.isEnabled( -- DeviceFeatureList.WEBAUTHN_ANDROID_PASSKEY_CACHE_MIGRATION)) { +- && WebauthnFeatureMap.getInstance() +- .isEnabled(WebauthnFeatures.WEBAUTHN_ANDROID_PASSKEY_CACHE_MIGRATION)) { - Fido2ApiCallHelper.getInstance() - .invokePasskeyCacheGetCredentials( - authenticationContextProvider, @@ -3808,17 +3816,33 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManHelper.java -@@ -40,8 +40,7 @@ import org.chromium.build.annotations.NullMarked; +@@ -40,8 +40,6 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.components.webauthn.AuthenticationContextProvider; import org.chromium.components.webauthn.Barrier; --import org.chromium.components.webauthn.Fido2CredentialRequest.ConditionalUiState; +-import org.chromium.components.webauthn.Fido2CredentialRequest.CancellableUiState; -import org.chromium.components.webauthn.Fido2CredentialRequestJni; -+import org.chromium.components.webauthn.ConditionalUiState; import org.chromium.components.webauthn.GetAssertionOutcome; import org.chromium.components.webauthn.GetCredentialResponseCallback; import org.chromium.components.webauthn.MakeCredentialOutcome; -@@ -113,8 +112,7 @@ public class CredManHelper { +@@ -83,6 +81,16 @@ public class CredManHelper { + private CredManMetricsHelper mMetricsHelper; + private @Nullable Runnable mNoCredentialsFallback; + ++ public enum CancellableUiState { ++ NONE, ++ WAITING_FOR_RP_ID_VALIDATION, ++ WAITING_FOR_CREDENTIAL_LIST, ++ WAITING_FOR_SELECTION, ++ REQUEST_SENT_TO_PLATFORM, ++ CANCEL_PENDING, ++ CANCEL_PENDING_RP_ID_VALIDATION_COMPLETE, ++ } ++ + // A callback that provides an AuthenticatorStatus error in the first argument, and optionally a + // metrics recording outcome in the second. + public interface ErrorCallback { +@@ -113,8 +121,7 @@ public class CredManHelper { ErrorCallback errorCallback) { log(TAG, "startMakeRequest"); mClientDataJson = clientDataJson; @@ -3828,7 +3852,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut OutcomeReceiver receiver = new OutcomeReceiver<>() { -@@ -448,8 +446,7 @@ public class CredManHelper { +@@ -450,8 +457,7 @@ public class CredManHelper { CRED_MAN_PREFIX + "BUNDLE_KEY_AUTHENTICATION_RESPONSE_JSON"); assertNonNull(json); @@ -3838,7 +3862,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut if (responseSerialized == null) { logError( TAG, -@@ -620,8 +617,7 @@ public class CredManHelper { +@@ -619,8 +625,7 @@ public class CredManHelper { boolean requestPasswords, boolean preferImmediatelyAvailable, boolean ignoreGpm) { @@ -3848,7 +3872,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut boolean hasAllowCredentials = options.allowCredentials != null && options.allowCredentials.length != 0; -@@ -659,8 +655,7 @@ public class CredManHelper { +@@ -658,8 +663,7 @@ public class CredManHelper { Bundle data) { String json = data.getString(BUNDLE_KEY_REGISTRATION_RESPONSE_JSON); assertNonNull(json); @@ -3861,15 +3885,36 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/cred_man/CredManMetricsHelper.java -@@ -8,7 +8,7 @@ import androidx.annotation.IntDef; +@@ -8,7 +8,6 @@ import androidx.annotation.IntDef; import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; --import org.chromium.components.webauthn.Fido2CredentialRequest.ConditionalUiState; -+import org.chromium.components.webauthn.ConditionalUiState; +-import org.chromium.components.webauthn.Fido2CredentialRequest.CancellableUiState; /** * This class is responsible for emitting histograms regarding CredMan usage in +@@ -104,20 +103,6 @@ public class CredManMetricsHelper { + } + + public void reportGetCredentialMetrics( +- @CredManGetRequestEnum int value, CancellableUiState cancellableUiState) { +- assert !(cancellableUiState == CancellableUiState.NONE) +- || !(value == CredManGetRequestEnum.SUCCESS_PASSWORD) +- : "Passwords cannot be received from modal requests!"; +- if (cancellableUiState == CancellableUiState.NONE) { +- RecordHistogram.recordEnumeratedHistogram( +- "WebAuthentication.Android.CredManModalRequests", +- value, +- CredManGetRequestEnum.NUM_ENTRIES); +- return; +- } +- RecordHistogram.recordEnumeratedHistogram( +- "WebAuthentication.Android.CredManConditionalRequest", +- value, +- CredManGetRequestEnum.NUM_ENTRIES); ++ @CredManGetRequestEnum int value, Object cancellableUiState) { + } + } diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/browser/push_messaging/push_messaging_manager.cc --- a/content/browser/push_messaging/push_messaging_manager.cc +++ b/content/browser/push_messaging/push_messaging_manager.cc @@ -3899,7 +3944,7 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn -@@ -3692,10 +3692,6 @@ if (is_android) { +@@ -3727,10 +3727,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3953,7 +3998,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -156,10 +156,6 @@ if (is_android) { +@@ -159,10 +159,6 @@ if (is_android) { deps = [ ":geolocation_jni_headers", @@ -3967,7 +4012,7 @@ diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/ 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 -@@ -127,8 +127,6 @@ if (is_android) { +@@ -129,8 +129,6 @@ if (is_android) { ] deps = [ @@ -4006,7 +4051,7 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD. diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_deps/autorolled/BUILD.gn --- a/third_party/android_deps/autorolled/BUILD.gn +++ b/third_party/android_deps/autorolled/BUILD.gn -@@ -122,313 +122,6 @@ template("define_autorolled_targets") { +@@ -129,313 +129,6 @@ template("define_autorolled_targets") { ] } @@ -4320,7 +4365,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(material_design_target)) { android_aar_prebuilt("com_google_android_material_material_java") { -@@ -477,24 +170,6 @@ template("define_autorolled_targets") { +@@ -484,24 +177,6 @@ template("define_autorolled_targets") { } } @@ -4343,9 +4388,9 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ - } - # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. - java_prebuilt("com_google_auto_service_auto_service_annotations_java") { - jar_path = "autorolled/cipd/libs/com_google_auto_service_auto_service_annotations/auto-service-annotations-1.1.1.jar" -@@ -524,38 +199,6 @@ template("define_autorolled_targets") { + android_aar_prebuilt("com_google_ar_impress_java") { + aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress-0.0.5.aar" +@@ -547,38 +222,6 @@ template("define_autorolled_targets") { deps = [ "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java" ] } @@ -4384,7 +4429,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. if (!defined(android_proto_runtime)) { java_prebuilt("com_google_protobuf_protobuf_javalite_java") { -@@ -795,190 +438,6 @@ template("define_autorolled_targets") { +@@ -868,190 +511,6 @@ template("define_autorolled_targets") { ] } @@ -4575,7 +4620,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt("com_google_auto_value_auto_value_annotations_java") { jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar" -@@ -995,242 +454,6 @@ template("define_autorolled_targets") { +@@ -1068,242 +527,6 @@ template("define_autorolled_targets") { testonly = true } @@ -4818,7 +4863,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_ # This is generated, do not edit. Update BuildConfigGenerator.groovy instead. java_prebuilt( "com_google_testparameterinjector_test_parameter_injector_java") { -@@ -1439,28 +662,6 @@ template("define_autorolled_targets") { +@@ -1512,28 +735,6 @@ template("define_autorolled_targets") { deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ] } diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch index 3707924f..5f08e3eb 100644 --- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch +++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch @@ -11,8 +11,8 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/TabBookmarker.java @@ -23,6 +23,12 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; - import java.util.Objects; + import java.util.function.Supplier; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.profiles.ProfileManager; diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index e49cf1db..7163a895 100644 --- a/build/patches/Remove-detection-of-captive-portals.patch +++ b/build/patches/Remove-detection-of-captive-portals.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc --- a/chrome/browser/net/profile_network_context_service.cc +++ b/chrome/browser/net/profile_network_context_service.cc -@@ -621,7 +621,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -622,7 +622,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( void ProfileNetworkContextService::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled, diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch index e668631b..65d3c9d7 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -1118,9 +1118,6 @@ public class KeyboardShortcuts { +@@ -1128,9 +1128,6 @@ public class KeyboardShortcuts { currentTab.goForward(); } return true; @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2460,15 +2460,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2496,15 +2496,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity final Tab currentTab = getActivityTab(); @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java -@@ -164,6 +164,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment +@@ -170,6 +170,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -1134,7 +1134,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { +@@ -1156,7 +1156,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { // Disable creating new tabs, bookmark, print, help, focus_url, etc. if (id == R.id.focus_url_bar || id == R.id.all_bookmarks_menu_id @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -596,6 +596,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -592,6 +592,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -447,6 +447,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -462,6 +462,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity help.setIcon( TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getTheme())); @@ -124,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/GoogleServicesSettings.java -@@ -165,6 +165,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment +@@ -170,6 +170,7 @@ public class GoogleServicesSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -135,7 +135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java -@@ -312,6 +312,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment +@@ -317,6 +317,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment MenuItem help = menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help); help.setIcon(R.drawable.ic_help_and_feedback); @@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/M 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 -@@ -373,7 +373,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -379,7 +379,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } // Help @@ -213,7 +213,7 @@ diff --git a/chrome/browser/safe_browsing/android/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/chrome_pages.cc b/chrome/browser/ui/chrome_pages.cc --- a/chrome/browser/ui/chrome_pages.cc +++ b/chrome/browser/ui/chrome_pages.cc -@@ -138,6 +138,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { +@@ -139,6 +139,15 @@ void LaunchReleaseNotesImpl(Profile* profile, apps::LaunchSource source) { // shown in the last active browser. If there is no such browser, a new browser // is created. void ShowHelpImpl(Browser* browser, Profile* profile, HelpSource source) { diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch index c0e9ac32..a843f187 100644 --- a/build/patches/Remove-segmentation-platform.patch +++ b/build/patches/Remove-segmentation-platform.patch @@ -47,9 +47,9 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc --- a/components/segmentation_platform/public/features.cc +++ b/components/segmentation_platform/public/features.cc -@@ -283,4 +283,7 @@ BASE_FEATURE(kDefaultBrowserPromoPropensityModel, - "DefaultBrowserPromoPropensityModel", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -300,4 +300,7 @@ constexpr base::FeatureParam kMaxDefaultBrowserMagicStackIosImpressions{ + "max_default_browser_magic_stack_ios_impressions", + /*default_value=*/6}; +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeature); +SET_CROMITE_FEATURE_DISABLED(kSegmentationPlatformFeedSegmentFeature); diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch index b8e78514..008a9f45 100644 --- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch +++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch @@ -10,11 +10,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/blob/blob_memory_controller.cc | 20 ++++++++++--------- .../browser/quota/quota_device_info_helper.cc | 17 ++++++++++++++-- .../approximated_device_memory.cc | 7 ++++++- - .../frame/navigator_concurrent_hardware.cc | 16 ++++++--------- + .../frame/navigator_concurrent_hardware.cc | 20 ++++++------------- .../measure_memory_controller.cc | 5 +++++ .../blink/renderer/core/timing/memory_info.cc | 14 ++++++++++--- .../core/timing/window_performance.cc | 2 +- - 10 files changed, 66 insertions(+), 26 deletions(-) + 10 files changed, 66 insertions(+), 30 deletions(-) create mode 100644 cromite_flags/third_party/blink/common/features_cc/Remove-support-for-device-memory-and-cpu-recovery.inc create mode 100644 cromite_flags/third_party/blink/common/features_h/Remove-support-for-device-memory-and-cpu-recovery.inc @@ -59,28 +59,28 @@ new file mode 100644 diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/blob/blob_memory_controller.cc --- a/storage/browser/blob/blob_memory_controller.cc +++ b/storage/browser/blob/blob_memory_controller.cc -@@ -54,6 +54,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; +@@ -55,6 +55,15 @@ using MemoryAllocation = BlobMemoryController::MemoryAllocation; using QuotaAllocationTask = BlobMemoryController::QuotaAllocationTask; using DiskSpaceFuncPtr = BlobMemoryController::DiskSpaceFuncPtr; +// static +#if BUILDFLAG(IS_ANDROID) -+float approximated_device_memory_gb_ = 4.0; ++constexpr base::ByteCount approximated_device_memory_gb_ = base::GiB(4.0); +constexpr int64_t approximated_device_disk_size = 8ull * 1024 * 1024 * 1024; +#else -+float approximated_device_memory_gb_ = 8.0; ++constexpr base::ByteCount approximated_device_memory_gb_ = base::GiB(8.0); +constexpr int64_t approximated_device_disk_size = 200ull * 1024 * 1024 * 1024; +#endif + File::Error CreateBlobDirectory(const FilePath& blob_storage_dir) { File::Error error = File::FILE_OK; base::CreateDirectoryAndGetError(blob_storage_dir, &error); -@@ -83,23 +92,16 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( - int64_t disk_size = 0ull; - uint64_t memory_size = optional_memory_size_for_testing - ? optional_memory_size_for_testing.value() -- : base::SysInfo::AmountOfPhysicalMemory(); -+ : approximated_device_memory_gb_; +@@ -85,22 +94,15 @@ BlobStorageLimits CalculateBlobStorageLimitsImpl( + uint64_t memory_size = + optional_memory_size_for_testing + ? optional_memory_size_for_testing.value() +- : base::SysInfo::AmountOfPhysicalMemory().InBytesUnsigned(); ++ : approximated_device_memory_gb_.InBytesUnsigned(); if (disk_enabled && CreateBlobDirectory(storage_dir) == base::File::FILE_OK) - disk_size = base::SysInfo::AmountOfTotalDiskSpace(storage_dir); + disk_size = approximated_device_disk_size; @@ -91,8 +91,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl if (memory_size > 0) { -#if !BUILDFLAG(IS_CHROMEOS) && !BUILDFLAG(IS_ANDROID) && \ - defined(ARCH_CPU_64_BITS) - constexpr size_t kTwoGigabytes = 2ull * 1024 * 1024 * 1024; - limits.max_blob_in_memory_space = kTwoGigabytes; + limits.max_blob_in_memory_space = base::GiB(2).InBytesUnsigned(); -#elif BUILDFLAG(IS_ANDROID) - limits.max_blob_in_memory_space = static_cast(memory_size / 100); -#else @@ -112,10 +111,10 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser + +// static +#if BUILDFLAG(IS_ANDROID) -+float approximated_device_memory_gb_ = 4.0; ++constexpr base::ByteCount approximated_device_memory_gb_ = base::GiB(4.0); +constexpr int64_t approximated_device_disk_size = 8ull * 1024 * 1024 * 1024; +#else -+float approximated_device_memory_gb_ = 8.0; ++constexpr base::ByteCount approximated_device_memory_gb_ = base::GiB(8.0); +constexpr int64_t approximated_device_disk_size = 200ull * 1024 * 1024 * 1024; +#endif + @@ -132,8 +131,8 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser } uint64_t QuotaDeviceInfoHelper::AmountOfPhysicalMemory() const { -- return base::SysInfo::AmountOfPhysicalMemory(); -+ return approximated_device_memory_gb_; +- return base::SysInfo::AmountOfPhysicalMemory().InBytesUnsigned(); ++ return approximated_device_memory_gb_.InBytesUnsigned(); } } // namespace storage @@ -163,7 +162,7 @@ diff --git a/third_party/blink/common/device_memory/approximated_device_memory.c diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc --- a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc +++ b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc -@@ -3,22 +3,18 @@ +@@ -3,26 +3,18 @@ // found in the LICENSE file. #include "third_party/blink/renderer/core/frame/navigator_concurrent_hardware.h" @@ -174,10 +173,14 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware namespace blink { +-namespace { +- -// TODO(435582603): Hard-coding this to a common value is a reasonable start, -// but it likely makes sense to vary the hard-coded number by platform and -// form-factor in order to maintain plausibility over time. -constexpr unsigned kReducedHardwareConcurrencyValue = 8u; +- +-} // namespace - unsigned NavigatorConcurrentHardware::hardwareConcurrency() const { - if (RuntimeEnabledFeatures::ReduceHardwareConcurrencyEnabled()) { @@ -185,7 +188,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware - } - return static_cast(base::SysInfo::NumberOfProcessors()); +#if BUILDFLAG(IS_ANDROID) -+ return static_cast(2); ++ return static_cast(4); +#else + return static_cast(8); +#endif @@ -195,7 +198,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware diff --git a/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc b/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc --- a/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc +++ b/third_party/blink/renderer/core/timing/measure_memory/measure_memory_controller.cc -@@ -8,6 +8,7 @@ +@@ -10,6 +10,7 @@ #include "base/rand_util.h" #include "components/performance_manager/public/mojom/coordination_unit.mojom-blink.h" #include "services/metrics/public/cpp/ukm_builders.h" @@ -203,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/timing/measure_memory/measure_memor #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise.h" #include "third_party/blink/renderer/bindings/core/v8/to_v8_traits.h" -@@ -85,6 +86,10 @@ enum class ApiStatus { +@@ -86,6 +87,10 @@ enum class ApiStatus { }; ApiStatus CheckMeasureMemoryAvailability() { diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch index a4a6b39b..95192f5e 100644 --- a/build/patches/Remove-voice-recognition-integration.patch +++ b/build/patches/Remove-voice-recognition-integration.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../chrome/browser/ui/RootUiCoordinator.java | 18 ----- chrome/browser/ui/android/omnibox/BUILD.gn | 1 - .../chrome/browser/omnibox/LocationBar.java | 6 -- - .../omnibox/LocationBarCoordinator.java | 12 ---- + .../omnibox/LocationBarCoordinator.java | 14 +--- .../browser/omnibox/LocationBarLayout.java | 6 -- .../browser/omnibox/LocationBarMediator.java | 65 ++----------------- .../chrome/browser/omnibox/OmniboxStub.java | 8 --- @@ -24,12 +24,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../suggestions/AutocompleteMediator.java | 8 --- .../omnibox/voice/VoiceRecognitionUtil.java | 1 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 - - 20 files changed, 9 insertions(+), 257 deletions(-) + 20 files changed, 10 insertions(+), 258 deletions(-) diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java -@@ -504,7 +504,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { +@@ -512,7 +512,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator { mIntentDataProvider.get(), AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp), mOpenInBrowserRunnable, @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java -@@ -77,7 +77,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; +@@ -76,7 +76,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordinator; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.readaloud.ReadAloudController; -@@ -136,7 +135,6 @@ public class NewTabPage +@@ -137,7 +136,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. ModuleDelegateHost { private static final String TAG = "NewTabPage"; -@@ -171,7 +169,6 @@ public class NewTabPage +@@ -172,7 +170,6 @@ public class NewTabPage protected boolean mIsDefaultSearchEngineGoogle; protected @Nullable OmniboxStub mOmniboxStub; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. // The timestamp at which the constructor was called. protected final long mConstructedTimeNs; -@@ -384,8 +381,7 @@ public class NewTabPage +@@ -385,8 +382,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -75,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -393,24 +389,6 @@ public class NewTabPage +@@ -394,24 +390,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -100,7 +100,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -1000,12 +978,6 @@ public class NewTabPage +@@ -1018,12 +996,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } /** -@@ -1024,11 +996,6 @@ public class NewTabPage +@@ -1042,11 +1014,6 @@ public class NewTabPage } } @@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. /** Adds an observer to be notified on most visited tile clicks. */ public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) { mMostVisitedTileClickObservers.addObserver(observer); -@@ -1116,9 +1083,6 @@ public class NewTabPage +@@ -1134,9 +1101,6 @@ public class NewTabPage mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger); } mFeedSurfaceProvider.destroy(); @@ -182,10 +182,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se } - @Override -- public int getVoiceRecogintionSource() { +- public int getVoiceRecognitionSource() { - return mInteractionFromWidget - ? VoiceRecognitionHandler.VoiceInteractionSource.SEARCH_WIDGET -- : super.getVoiceRecogintionSource(); +- : super.getVoiceRecognitionSource(); - } - @Override @@ -194,19 +194,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se 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 -@@ -974,7 +974,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -989,7 +989,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mTabBookmarkerSupplier, mBookmarkModelSupplier, mActivityTabProvider, - () -> addVoiceSearchAdaptiveButton(trackerSupplier), + () -> {}, groupSuggestionsButtonControllerSupplier, - mTabModelSelectorSupplier); - } + mTabModelSelectorSupplier, + mModalDialogManagerSupplier); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -109,7 +109,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; +@@ -108,7 +108,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub; import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl; import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; @@ -214,7 +214,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.page_info.ChromePageInfo; import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; -@@ -3110,10 +3109,6 @@ public class ToolbarManager +@@ -3161,10 +3160,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -228,8 +228,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveToolbarUiCoordinator.java -@@ -27,8 +27,6 @@ import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonControll - import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -25,8 +25,6 @@ import org.chromium.chrome.browser.commerce.coupons.DiscountsButtonController; + import org.chromium.chrome.browser.dom_distiller.ReaderModeToolbarButtonController; import org.chromium.chrome.browser.identity_disc.IdentityDiscController; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; @@ -237,7 +237,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool import org.chromium.chrome.browser.price_history.PriceHistoryBottomSheetContentCoordinator; import org.chromium.chrome.browser.price_insights.PriceInsightsButtonController; import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; -@@ -41,7 +39,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon +@@ -39,7 +37,6 @@ import org.chromium.chrome.browser.segmentation_platform.ContextualPageActionCon import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -253,19 +253,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool private BottomSheetController mBottomSheetController; private ObservableSupplier mProfileSupplier; private Supplier mScrimSupplier; -@@ -229,45 +225,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -224,45 +220,6 @@ public class AdaptiveToolbarUiCoordinator { mButtonDataProviders = List.of(identityDiscController, adaptiveToolbarButtonController); } - /** - * Add voice search action button. - * -- * @param Supplies {@link VoiceRecognitionHandler} object. -- * @param Supplies {@link Tracker} object. +- * @param voiceRecognitionHandler Supplies {@link VoiceRecognitionHandler} object. +- * @param trackerSupplier Supplies {@link Tracker} object. - */ - public void addVoiceSearchAdaptiveButton( - Supplier voiceRecognitionHandler, -- Supplier trackerSupplier) { +- Supplier<@Nullable Tracker> trackerSupplier) { - var voiceSearchDelegate = - new VoiceToolbarButtonController.VoiceSearchDelegate() { - @Override @@ -299,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool /** * Returns the list of {@link ButtonDataProvider}. The order in which the providers determines * which one will be shown first. -@@ -281,11 +238,6 @@ public class AdaptiveToolbarUiCoordinator { +@@ -276,11 +233,6 @@ public class AdaptiveToolbarUiCoordinator { return mContextualPageActionController; } @@ -314,7 +314,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -105,7 +105,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi +@@ -104,7 +104,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; @@ -322,7 +322,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; -@@ -302,7 +301,6 @@ public class RootUiCoordinator +@@ -301,7 +300,6 @@ public class RootUiCoordinator private LayoutManagerImpl mLayoutManager; protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); @@ -330,7 +330,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi private MediaCaptureOverlayController mCaptureController; private @Nullable ScrollCaptureManager mScrollCaptureManager; protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher; -@@ -660,9 +658,6 @@ public class RootUiCoordinator +@@ -655,9 +653,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -340,7 +340,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mTopControlsStacker.removeControl(mToolbarContainer); mToolbarManager.destroy(); mToolbarManager = null; -@@ -1586,23 +1581,10 @@ public class RootUiCoordinator +@@ -1584,23 +1579,10 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -367,7 +367,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -145,7 +145,6 @@ android_library("java") { +@@ -159,7 +159,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -409,7 +409,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -491,12 +490,6 @@ public class LocationBarCoordinator +@@ -519,12 +518,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -422,7 +422,16 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public @Nullable OmniboxStub getOmniboxStub() { return mLocationBarMediator; -@@ -825,11 +818,6 @@ public class LocationBarCoordinator +@@ -688,7 +681,7 @@ public class LocationBarCoordinator + public void startAutocompletePrefetch() { + if (!mNativeInitialized) return; + mAutocompleteCoordinator.prefetchZeroSuggestResults( +- mLocationBarMediator.getLocationBarDataProvider().getTab()); ++ /* tab */ null); + } + + /** +@@ -854,11 +847,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -437,7 +446,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/LocationBarLayout.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java -@@ -32,7 +32,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -30,7 +30,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusView; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; @@ -445,12 +454,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.components.browser_ui.widget.CompositeTouchDelegate; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.ui.base.DeviceFormFactor; -@@ -561,11 +560,6 @@ public class LocationBarLayout extends FrameLayout { +@@ -449,11 +448,6 @@ public class LocationBarLayout extends ConstraintLayout { mSearchEngineUtils = searchEngineUtils; } - /** Returns the source of Voice Recognition interactions. */ -- public int getVoiceRecogintionSource() { +- public int getVoiceRecognitionSource() { - return VoiceRecognitionHandler.VoiceInteractionSource.OMNIBOX; - } - @@ -460,7 +469,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 -@@ -63,7 +63,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -64,7 +64,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; @@ -468,7 +477,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -106,8 +105,6 @@ import java.util.function.BooleanSupplier; +@@ -112,8 +111,6 @@ import java.util.function.Supplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -477,7 +486,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -165,7 +162,6 @@ class LocationBarMediator +@@ -172,7 +169,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -485,7 +494,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; -@@ -239,8 +235,6 @@ class LocationBarMediator +@@ -250,8 +246,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -494,7 +503,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mTemplateUrlServiceSupplier = templateUrlServiceSupplier; -@@ -289,9 +283,6 @@ class LocationBarMediator +@@ -303,9 +297,6 @@ class LocationBarMediator mStatusCoordinator = null; mAutocompleteCoordinator = null; mUrlCoordinator = null; @@ -504,7 +513,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -420,11 +411,6 @@ class LocationBarMediator +@@ -440,11 +431,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -516,18 +525,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -733,10 +719,6 @@ class LocationBarMediator +@@ -752,10 +738,6 @@ class LocationBarMediator // Hide keyboard before launch voice search to avoid keyboard action announcement in // TalkBack to be picked up by voice search. mUrlCoordinator.setKeyboardVisibility(false, false); - - RecordUserAction.record("MobileOmniboxVoiceSearch"); - mVoiceRecognitionHandler.startVoiceRecognition( -- mLocationBarLayout.getVoiceRecogintionSource()); +- mLocationBarLayout.getVoiceRecognitionSource()); } /** package */ -@@ -1245,10 +1227,7 @@ class LocationBarMediator +@@ -1326,10 +1308,7 @@ class LocationBarMediator @VisibleForTesting boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -539,7 +548,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1266,6 +1245,7 @@ class LocationBarMediator +@@ -1347,6 +1326,7 @@ class LocationBarMediator @VisibleForTesting boolean shouldShowLensButton() { @@ -547,7 +556,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (shouldShowDeleteButton()) return false; // When this method is called on UI inflation, return false as the native is not ready. -@@ -1550,11 +1530,6 @@ class LocationBarMediator +@@ -1632,11 +1612,6 @@ class LocationBarMediator } } @@ -559,7 +568,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1570,31 +1545,13 @@ class LocationBarMediator +@@ -1652,31 +1627,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -593,7 +602,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow public void setSearchQuery(String query) { if (TextUtils.isEmpty(query)) return; -@@ -1617,20 +1574,6 @@ class LocationBarMediator +@@ -1699,20 +1656,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -650,7 +659,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.omnibox.AutocompleteInput; -@@ -339,25 +338,6 @@ public class AutocompleteController { +@@ -331,25 +330,6 @@ public class AutocompleteController { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } @@ -676,7 +685,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** * Updates searchbox stats parameters on the selected match that we will navigate to and * returns the updated URL. -@@ -505,11 +485,6 @@ public class AutocompleteController { +@@ -497,11 +477,6 @@ public class AutocompleteController { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); @@ -691,7 +700,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java -@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On +@@ -32,7 +32,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder; import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -699,7 +708,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -298,13 +297,6 @@ public class AutocompleteCoordinator +@@ -300,13 +299,6 @@ public class AutocompleteCoordinator mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } @@ -716,7 +725,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java -@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto +@@ -43,7 +43,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxAnswerAction; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; @@ -724,7 +733,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.tab.Tab; -@@ -486,13 +485,6 @@ class AutocompleteMediator +@@ -500,13 +499,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch index 32e17071..e17c7d50 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -20,11 +20,11 @@ diff --git a/content/browser/renderer_host/browsing_context_state.cc b/content/b #include "services/network/public/mojom/web_sandbox_flags.mojom.h" namespace features { --BASE_FEATURE(kNewBrowsingContextStateOnBrowsingContextGroupSwap, -+BASE_FEATURE_DISABLED(kNewBrowsingContextStateOnBrowsingContextGroupSwap, - "NewBrowsingContextStateOnBrowsingContextGroupSwap", +-BASE_FEATURE(NewBrowsingContextStateOnBrowsingContextGroupSwap, ++BASE_FEATURE_DISABLED(NewBrowsingContextStateOnBrowsingContextGroupSwap, base::FEATURE_DISABLED_BY_DEFAULT); + BrowsingContextStateImplementationType GetBrowsingContextMode() { diff --git a/cromite_flags/content/public/common/content_features_cc/Remove-window-name-on-cross-origin-navigation.inc b/cromite_flags/content/public/common/content_features_cc/Remove-window-name-on-cross-origin-navigation.inc new file mode 100644 --- /dev/null @@ -34,7 +34,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2969,7 +2969,8 @@ void DocumentLoader::CommitNavigation() { +@@ -2979,7 +2979,8 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -44,7 +44,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2980,6 +2981,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2990,6 +2991,7 @@ void DocumentLoader::CommitNavigation() { // TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just // record the fact that the name would be nulled and if the name is accessed // after we will fire a UseCounter. diff --git a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch index cca03e4e..58666d05 100644 --- a/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -6,12 +6,12 @@ restore https://chromium-review.googlesource.com/c/chromium/src/+/5554182 License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../chrome/browser/bookmarks/BookmarkToolbar.java | 12 ++++++++++++ - .../bookmarks/BookmarkToolbarCoordinator.java | 1 + - .../browser/bookmarks/BookmarkToolbarMediator.java | 1 + - .../browser/bookmarks/BookmarkToolbarProperties.java | 9 +++++++++ - .../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ - 5 files changed, 27 insertions(+) + .../chrome/browser/bookmarks/BookmarkToolbar.java | 11 +++++++++++ + .../browser/bookmarks/BookmarkToolbarCoordinator.java | 1 + + .../browser/bookmarks/BookmarkToolbarMediator.java | 1 + + .../browser/bookmarks/BookmarkToolbarProperties.java | 9 +++++++++ + .../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ + 5 files changed, 26 insertions(+) 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 @@ -24,30 +24,27 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.components.bookmarks.BookmarkId; import org.chromium.components.browser_ui.util.ToolbarUtils; import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar; -@@ -35,8 +36,10 @@ import java.util.function.Function; - @NullMarked - public class BookmarkToolbar extends SelectableListToolbar - implements OnMenuItemClickListener, OnClickListener { -+ private BookmarkModel mBookmarkModel; +@@ -38,6 +39,8 @@ public class BookmarkToolbar extends SelectableListToolbar + @SuppressWarnings("HidingField") private @Nullable SelectionDelegate mSelectionDelegate; ++ private BookmarkModel mBookmarkModel; + private @Nullable BookmarkItem mCurrentFolder; private boolean mEditButtonVisible; private boolean mNewFolderButtonVisible; private boolean mNewFolderButtonEnabled; -@@ -65,6 +68,11 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -66,6 +69,10 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(this); } + void setBookmarkModel(BookmarkModel bookmarkModel) { + mBookmarkModel = bookmarkModel; + } -+ + void setSelectionDelegate(SelectionDelegate selectionDelegate) { mSelectionDelegate = selectionDelegate; getMenu().setGroupEnabled(R.id.selection_mode_menu_group, true); -@@ -168,6 +176,10 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -169,6 +176,10 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(id).setChecked(true); } diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index bfb6bbd8..b5f45d7f 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -11,11 +11,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../last_tab_standing_tracker_factory.cc | 36 +++++++++++ .../last_tab_standing_tracker_factory.h | 40 +++++++++++++ .../last_tab_standing_tracker_observer.h | 24 ++++++++ - .../last_tab_standing_tracker_tab_helper.cc | 45 ++++++++++++++ + .../last_tab_standing_tracker_tab_helper.cc | 46 +++++++++++++++ .../last_tab_standing_tracker_tab_helper.h | 37 ++++++++++++ ...hrome_browser_main_extra_parts_profiles.cc | 2 + chrome/browser/ui/tab_helpers.cc | 2 + - 11 files changed, 297 insertions(+) + 11 files changed, 298 insertions(+) create mode 100644 chrome/browser/permissions/last_tab_standing_tracker.cc create mode 100644 chrome/browser/permissions/last_tab_standing_tracker.h create mode 100644 chrome/browser/permissions/last_tab_standing_tracker_factory.cc @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1721,6 +1721,16 @@ static_library("browser") { +@@ -1688,6 +1688,16 @@ static_library("browser") { ] } @@ -291,7 +291,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker_tab_helper.cc new file mode 100644 --- /dev/null +++ b/chrome/browser/permissions/last_tab_standing_tracker_tab_helper.cc -@@ -0,0 +1,45 @@ +@@ -0,0 +1,46 @@ +// Copyright 2020 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -301,6 +301,7 @@ new file mode 100644 +#include "chrome/browser/permissions/last_tab_standing_tracker.h" +#include "chrome/browser/permissions/last_tab_standing_tracker_factory.h" +#include "content/public/browser/navigation_handle.h" ++#include "content/public/browser/page.h" + +LastTabStandingTrackerTabHelper::~LastTabStandingTrackerTabHelper() = default; + @@ -390,7 +391,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -1112,6 +1113,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1105,6 +1106,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -407,9 +408,9 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/password_manager/chrome_password_manager_client.h" +#include "chrome/browser/permissions/last_tab_standing_tracker_tab_helper.h" #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" + #include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" - #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -429,6 +430,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -435,6 +436,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents); HttpsOnlyModeTabHelper::CreateForWebContents(web_contents); webapps::InstallableManager::CreateForWebContents(web_contents); diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch index bf0409b1..24b301c7 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -11,11 +11,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/flags/android/chrome_feature_list.cc | 1 + .../chrome/browser/flags/ChromeFeatureList.java | 1 + - .../DropdownItemViewInfoListBuilder.java | 11 +++++++++-- + .../DropdownItemViewInfoListBuilder.java | 9 ++++++++- .../restore-Search-Ready-Omnibox-flag.inc | 13 +++++++++++++ .../restore-Search-Ready-Omnibox-flag.inc | 3 +++ .../restore-Search-Ready-Omnibox-flag.inc | 1 + - 6 files changed, 28 insertions(+), 2 deletions(-) + 6 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/restore-Search-Ready-Omnibox-flag.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/restore-Search-Ready-Omnibox-flag.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/restore-Search-Ready-Omnibox-flag.inc @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -382,6 +382,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -391,6 +391,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReadAloudIPHMenuButtonHighlightCCT, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,7 +34,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 -@@ -474,6 +474,7 @@ public abstract class ChromeFeatureList { +@@ -485,6 +485,7 @@ public abstract class ChromeFeatureList { public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP = "MitigateLegacySearchEnginePromoOverlap"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -50,36 +50,32 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.annotation.VisibleForTesting; +import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.base.supplier.Supplier; import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; -@@ -51,6 +52,7 @@ class DropdownItemViewInfoListBuilder { - private @Nullable Supplier mShareDelegateSupplier; + import org.chromium.build.annotations.Nullable; +@@ -53,6 +54,7 @@ class DropdownItemViewInfoListBuilder { private Optional mImageSupplier; private final BookmarkState mBookmarkState; + private final Supplier<@ControlsPosition Integer> mToolbarPositionSupplier; + private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor; DropdownItemViewInfoListBuilder( - Supplier<@Nullable Tab> tabSupplier, BookmarkState bookmarkState) { -@@ -79,13 +81,15 @@ class DropdownItemViewInfoListBuilder { + Supplier<@Nullable Tab> tabSupplier, +@@ -107,10 +109,12 @@ class DropdownItemViewInfoListBuilder { - mGroupSeparatorProcessor = new GroupSeparatorProcessor(context); - mHeaderProcessor = new HeaderProcessor(context); -- registerSuggestionProcessor( -+ mEditUrlSuggestionProcessor = - new EditUrlSuggestionProcessor( - context, - host, - mImageSupplier, - mActivityTabSupplier, -- mShareDelegateSupplier)); -+ mShareDelegateSupplier); + mGroupSeparatorProcessor = new GroupSeparatorProcessor(uiContext.context); + mHeaderProcessor = new HeaderProcessor(uiContext.context); +- registerSuggestionProcessor(new EditUrlSuggestionProcessor(uiContext)); ++ mEditUrlSuggestionProcessor = new EditUrlSuggestionProcessor(uiContext); + registerSuggestionProcessor(new AnswerSuggestionProcessor(uiContext)); + registerSuggestionProcessor(new ClipboardSuggestionProcessor(uiContext)); + registerSuggestionProcessor(new EntitySuggestionProcessor(uiContext)); + registerSuggestionProcessor(mEditUrlSuggestionProcessor); + - registerSuggestionProcessor( - new AnswerSuggestionProcessor(context, host, textProvider, mImageSupplier)); - registerSuggestionProcessor( -@@ -175,6 +179,9 @@ class DropdownItemViewInfoListBuilder { + registerSuggestionProcessor(new TailSuggestionProcessor(uiContext)); + registerSuggestionProcessor(new MostVisitedTilesProcessor(uiContext)); + if (OmniboxFeatures.sAndroidHubSearchTabGroups.isEnabled()) { +@@ -190,6 +194,9 @@ class DropdownItemViewInfoListBuilder { mHeaderProcessor.onNativeInitialized(); mImageSupplier.ifPresent(s -> s.onNativeInitialized()); diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch index b3f4eeca..5fed3693 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -21,11 +21,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/res/values/attrs.xml | 4 + chrome/android/java/res/values/dimens.xml | 2 + .../chrome/browser/ChromeTabbedActivity.java | 3 +- - .../browser/TabbedModeTabDelegateFactory.java | 10 +- + .../browser/TabbedModeTabDelegateFactory.java | 12 +- .../feedback/ChromeFeedbackCollector.java | 1 + .../feedback/SimplifiedNtpFeedbackSource.java | 38 +++ .../identity_disc/IdentityDiscController.java | 5 +- - .../native_page/NativePageFactory.java | 19 +- + .../native_page/NativePageFactory.java | 20 +- .../NativePageNavigationDelegateImpl.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 8 +- .../chrome/browser/ntp/NewTabPageLayout.java | 29 +- @@ -42,12 +42,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/flags/ChromeFeatureList.java | 3 +- .../client_util/HomeModulesRankingHelper.java | 1 + .../strings/android_chrome_strings.grd | 6 + - .../history/core/browser/top_sites_impl.h | 2 +- + .../core/browser/top_sites_constants.h | 2 +- components/ntp_tiles/custom_links_store.cc | 2 - .../Restore-Simplified-NTP-launch.inc | 12 + - .../Restore-Simplified-NTP-launch.inc | 5 + + .../Restore-Simplified-NTP-launch.inc | 10 + .../Restore-Simplified-NTP-launch.inc | 1 + - 41 files changed, 631 insertions(+), 60 deletions(-) + 41 files changed, 639 insertions(+), 60 deletions(-) create mode 100644 chrome/android/java/res/drawable-hdpi/ic_most_visited_placeholder.png create mode 100644 chrome/android/java/res/drawable-mdpi/ic_most_visited_placeholder.png create mode 100644 chrome/android/java/res/drawable-xhdpi/ic_most_visited_placeholder.png @@ -65,7 +65,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 -@@ -50,6 +50,11 @@ chrome_java_resources = [ +@@ -53,6 +53,11 @@ chrome_java_resources = [ "java/res/drawable-hdpi/ic_exit_to_app_white_24dp.png", "java/res/drawable-hdpi/ic_file_download_white_24dp.png", "java/res/drawable-hdpi/ic_link_grey600_36dp.png", @@ -77,7 +77,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/drawable-hdpi/ic_phone_googblue_36dp.png", "java/res/drawable-hdpi/ic_photo_camera.png", "java/res/drawable-hdpi/ic_place_googblue_36dp.png", -@@ -524,6 +529,7 @@ chrome_java_resources = [ +@@ -528,6 +533,7 @@ chrome_java_resources = [ "java/res/layout/manage_sync_settings_bottom_bar.xml", "java/res/layout/material_tooltip.xml", "java/res/layout/multiline_spinner_item.xml", @@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/mv_tiles_layout.xml", "java/res/layout/navigation_bubble.xml", "java/res/layout/navigation_sheet.xml", -@@ -533,8 +539,10 @@ chrome_java_resources = [ +@@ -537,8 +543,10 @@ chrome_java_resources = [ "java/res/layout/new_custom_tab_toolbar.xml", "java/res/layout/new_tab_page_incognito.xml", "java/res/layout/new_tab_page_layout.xml", @@ -99,7 +99,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 -@@ -606,6 +606,7 @@ chrome_java_sources = [ +@@ -613,6 +613,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java", "java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java", "java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java", @@ -107,7 +107,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java", "java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java", -@@ -1013,6 +1014,7 @@ chrome_java_sources = [ +@@ -1020,6 +1021,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java", "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java", @@ -412,7 +412,7 @@ diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android diff --git a/chrome/android/java/res/layout/new_tab_page_layout.xml b/chrome/android/java/res/layout/new_tab_page_layout.xml --- a/chrome/android/java/res/layout/new_tab_page_layout.xml +++ b/chrome/android/java/res/layout/new_tab_page_layout.xml -@@ -47,6 +47,13 @@ found in the LICENSE file. +@@ -57,6 +57,13 @@ found in the LICENSE file. android:layout_marginTop="16dp" android:visibility="gone"/> @@ -573,7 +573,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -3307,7 +3307,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3410,7 +3410,8 @@ public class ChromeTabbedActivity extends ChromeActivity { mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, getStartupMetricsTracker(), @@ -586,25 +586,34 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -15,6 +15,7 @@ import org.chromium.base.supplier.OneshotSupplier; - import org.chromium.base.supplier.Supplier; +@@ -13,6 +13,7 @@ import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; +import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator; -@@ -89,6 +90,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -55,6 +56,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager; + import java.util.List; + import java.util.function.Supplier; + ++import androidx.annotation.NonNull; ++ + /** + * {@link TabDelegateFactory} class to be used in all {@link Tab} instances owned by a {@link + * ChromeTabbedActivity}. +@@ -89,6 +92,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; - @Nullable private final ExclusiveAccessManager mExclusiveAccessManager; + private final @Nullable ExclusiveAccessManager mExclusiveAccessManager; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; + - private NativePageFactory mNativePageFactory; + private @Nullable NativePageFactory mNativePageFactory; public TabbedModeTabDelegateFactory( -@@ -119,7 +122,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - @NonNull ObservableSupplier edgeToEdgeControllerSupplier, +@@ -119,7 +124,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { + ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, StartupMetricsTracker startupMetricsTracker, - @Nullable ExclusiveAccessManager exclusiveAccessManager) { @@ -613,7 +622,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe mActivity = activity; mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate; mShareDelegateSupplier = shareDelegateSupplier; -@@ -148,6 +152,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -148,6 +154,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; mExclusiveAccessManager = exclusiveAccessManager; @@ -621,7 +630,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe } @Override -@@ -218,7 +223,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { +@@ -218,7 +225,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, @@ -688,7 +697,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/IdentityDiscController.java -@@ -146,7 +146,10 @@ public class IdentityDiscController +@@ -151,7 +151,10 @@ public class IdentityDiscController mButtonData.setButtonSpec( buttonSpecWithDrawableAndDescription(mButtonData.getButtonSpec(), email)); @@ -703,7 +712,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/identity_disc/I diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; +@@ -12,6 +12,7 @@ import android.graphics.Rect; + import android.view.View; + + import androidx.annotation.VisibleForTesting; ++import androidx.annotation.NonNull; + + import org.chromium.base.jank_tracker.JankTracker; + import org.chromium.base.supplier.DestroyableObservableSupplier; +@@ -24,6 +25,7 @@ import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; @@ -711,25 +728,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; -@@ -83,6 +84,7 @@ public class NativePageFactory { +@@ -87,6 +89,7 @@ public class NativePageFactory { private final ObservableSupplier mEdgeToEdgeControllerSupplier; private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; + private final ObservableSupplier mBookmarkManagerOpenerSupplier; - private NewTabPageCreationTracker mNewTabPageCreationTracker; + private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker; - private NativePageBuilder mNativePageBuilder; -@@ -106,7 +108,8 @@ public class NativePageFactory { - @NonNull OneshotSupplier moduleRegistrySupplier, - @NonNull ObservableSupplier edgeToEdgeControllerSupplier, - @NonNull ObservableSupplier topInsetCoordinatorSupplier, -- @NonNull StartupMetricsTracker startupMetricsTracker) { -+ @NonNull StartupMetricsTracker startupMetricsTracker, + private @Nullable NativePageBuilder mNativePageBuilder; +@@ -110,7 +113,8 @@ public class NativePageFactory { + OneshotSupplier moduleRegistrySupplier, + ObservableSupplier edgeToEdgeControllerSupplier, + ObservableSupplier topInsetCoordinatorSupplier, +- StartupMetricsTracker startupMetricsTracker) { ++ StartupMetricsTracker startupMetricsTracker, + @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) { mActivity = activity; mBottomSheetController = sheetController; mBrowserControlsManager = browserControlsManager; -@@ -125,6 +128,7 @@ public class NativePageFactory { +@@ -129,6 +133,7 @@ public class NativePageFactory { mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier; mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; @@ -737,7 +754,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat } private NativePageBuilder getBuilder() { -@@ -149,7 +153,8 @@ public class NativePageFactory { +@@ -153,7 +158,8 @@ public class NativePageFactory { mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, @@ -747,7 +764,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat } return mNativePageBuilder; } -@@ -183,9 +188,10 @@ public class NativePageFactory { +@@ -187,9 +193,10 @@ public class NativePageFactory { private final ObservableSupplier mEdgeToEdgeControllerSupplier; private final ObservableSupplier mTopInsetCoordinatorSupplier; private final StartupMetricsTracker mStartupMetricsTracker; @@ -759,7 +776,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier newTabPageCreationTracker, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -203,7 +209,8 @@ public class NativePageFactory { +@@ -207,7 +214,8 @@ public class NativePageFactory { OneshotSupplier moduleRegistrySupplier, ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, @@ -769,7 +786,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat mActivity = activity; mNewTabPageCreationTracker = newTabPageCreationTracker; mBottomSheetController = sheetController; -@@ -223,6 +230,7 @@ public class NativePageFactory { +@@ -227,6 +235,7 @@ public class NativePageFactory { mEdgeToEdgeControllerSupplier = edgeToEdgeControllerSupplier; mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier; mStartupMetricsTracker = startupMetricsTracker; @@ -777,7 +794,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat } protected NativePage buildNewTabPage(Tab tab, String url) { -@@ -261,7 +269,8 @@ public class NativePageFactory { +@@ -265,7 +274,8 @@ public class NativePageFactory { mModuleRegistrySupplier, mEdgeToEdgeControllerSupplier, mTopInsetCoordinatorSupplier, @@ -790,9 +807,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java -@@ -25,7 +25,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition; - +@@ -28,7 +28,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition; /** {@link NativePageNavigationDelegate} implementation. */ + @NullMarked public class NativePageNavigationDelegateImpl implements NativePageNavigationDelegate { - private final Profile mProfile; + protected final Profile mProfile; @@ -810,9 +827,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. +import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener; + import java.util.List; + import java.util.function.Supplier; - /** Provides functionality when the user interacts with the NTP. */ -@@ -503,7 +506,8 @@ public class NewTabPage +@@ -504,7 +507,8 @@ public class NewTabPage OneshotSupplier moduleRegistrySupplier, ObservableSupplier edgeToEdgeControllerSupplier, ObservableSupplier topInsetCoordinatorSupplier, @@ -822,7 +839,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. mConstructedTimeNs = System.nanoTime(); TraceEvent.begin(TAG); -@@ -528,7 +532,7 @@ public class NewTabPage +@@ -529,7 +533,7 @@ public class NewTabPage SuggestionsNavigationDelegate navigationDelegate = new SuggestionsNavigationDelegate( @@ -859,7 +876,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider; import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate; import org.chromium.chrome.browser.util.BrowserUiUtils; -@@ -103,6 +105,8 @@ public class NewTabPageLayout extends LinearLayout +@@ -105,6 +107,8 @@ public class NewTabPageLayout extends LinearLayout private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -868,7 +885,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL /** * Whether the tiles shown in the layout have finished loading. * With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress. -@@ -115,7 +119,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -117,7 +121,7 @@ public class NewTabPageLayout extends LinearLayout */ private boolean mHasShownView; @@ -877,7 +894,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL private boolean mSearchProviderIsGoogle; private boolean mShowingNonStandardGoogleLogo; private boolean mIsOmniboxMobileParityUpdateV2Enabled; -@@ -302,6 +306,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -311,6 +315,7 @@ public class NewTabPageLayout extends LinearLayout initializeMostVisitedTilesCoordinator( mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); initializeDseIconView(shouldShowDseIcon()); @@ -885,7 +902,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -671,7 +676,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -700,7 +705,7 @@ public class NewTabPageLayout extends LinearLayout if (mInitialTileNum == null) { mInitialTileNum = @@ -894,7 +911,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL } int currentOrientation = getResources().getConfiguration().orientation; -@@ -739,7 +744,7 @@ public class NewTabPageLayout extends LinearLayout +@@ -768,7 +773,7 @@ public class NewTabPageLayout extends LinearLayout && mInitialized) { return; } @@ -903,7 +920,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL mSearchProviderIsGoogle = isGoogle; if (!mSearchProviderIsGoogle) { -@@ -1181,6 +1186,22 @@ public class NewTabPageLayout extends LinearLayout +@@ -1219,6 +1224,22 @@ public class NewTabPageLayout extends LinearLayout return mMostVisitedTilesCoordinator; } @@ -1350,7 +1367,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileDragDelegateImpl.java -@@ -74,7 +74,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate +@@ -77,7 +77,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate private static final float DOMINATE_TRESHOLD_RATIO = 0.4f; // Parent container for dragged tiles. @@ -1359,7 +1376,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til private final @Px float mTileWidthPx; -@@ -100,7 +100,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate +@@ -103,7 +103,7 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate // (e.g., for Swap Flow, to allow fast repeated keyboard-triggered swaps) the action. private @Nullable Runnable mPendingChangeFinalizer; @@ -1368,7 +1385,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til mMvTilesLayout = mvTilesLayout; Resources res = mMvTilesLayout.getResources(); mTileWidthPx = res.getDimensionPixelSize(R.dimen.tile_view_width); -@@ -225,18 +225,10 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate +@@ -228,18 +228,10 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate @Override public void showDivider(boolean isAnimated) { @@ -1387,7 +1404,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til } @Override -@@ -282,12 +274,12 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate +@@ -285,12 +277,12 @@ class TileDragDelegateImpl implements TileDragDelegate, TileDragSession.Delegate @Override public SiteSuggestion getTileViewData(TileView view) { @@ -1405,7 +1422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/TileRenderer.java -@@ -174,7 +174,7 @@ public class TileRenderer { +@@ -176,7 +176,7 @@ public class TileRenderer { */ public void renderTileSection( List sectionTiles, @@ -1414,7 +1431,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til TileGroup.TileSetupDelegate setupDelegate) { try (TraceEvent e = TraceEvent.scoped("TileRenderer.renderTileSection")) { // Map the old tile views by url so they can be reused later. -@@ -263,7 +263,7 @@ public class TileRenderer { +@@ -265,7 +265,7 @@ public class TileRenderer { */ @VisibleForTesting SuggestionsTileView buildTileView( @@ -1423,7 +1440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til SuggestionsTileView tileView = (SuggestionsTileView) LayoutInflater.from(parent.getContext()) -@@ -330,7 +330,7 @@ public class TileRenderer { +@@ -332,7 +332,7 @@ public class TileRenderer { return tileView; } @@ -1432,7 +1449,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til return (SuggestionsTileVerticalDivider) LayoutInflater.from(parent.getContext()) .inflate(R.layout.suggestions_tile_vertical_divider, parent, false); -@@ -351,7 +351,7 @@ public class TileRenderer { +@@ -353,7 +353,7 @@ public class TileRenderer { } TileView buildAddCustomLinksButton( @@ -1468,18 +1485,18 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -339,6 +339,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { - &kIncognitoScreenshot, +@@ -347,6 +347,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kIncognitoThemeOverlayTesting, &kInstanceSwitcherV2, &kKeyboardEscBackNavigation, + &kSimplifiedNTP, &kLensOnQuickActionSearchWidget, + &kLoadNativeEarly, &kMagicStackAndroid, - &kMayLaunchUrlUsesSeparateStoragePartition, 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 -@@ -475,6 +475,7 @@ public abstract class ChromeFeatureList { +@@ -486,6 +486,7 @@ public abstract class ChromeFeatureList { public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP = "MitigateLegacySearchEnginePromoOverlap"; public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization"; @@ -1487,10 +1504,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect"; public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP = -@@ -932,7 +933,7 @@ public abstract class ChromeFeatureList { - /* defaultValueInTests= */ true); - public static final CachedFlag sLockBackPressHandlerAtStart = +@@ -980,7 +981,7 @@ public abstract class ChromeFeatureList { newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true); + public static final CachedFlag sLockTopControlsOnLargeTablets = + newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS, false); - public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true); + public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false); public static final CachedFlag sMaliciousApkDownloadCheck = @@ -1510,7 +1527,7 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/ 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 -@@ -3941,6 +3941,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3902,6 +3902,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d Recent tabs @@ -1523,18 +1540,18 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Item removed -diff --git a/components/history/core/browser/top_sites_impl.h b/components/history/core/browser/top_sites_impl.h ---- a/components/history/core/browser/top_sites_impl.h -+++ b/components/history/core/browser/top_sites_impl.h -@@ -40,7 +40,7 @@ class TopSitesImplTest; - struct SitesAndQueriesRequest; +diff --git a/components/history/core/browser/top_sites_constants.h b/components/history/core/browser/top_sites_constants.h +--- a/components/history/core/browser/top_sites_constants.h ++++ b/components/history/core/browser/top_sites_constants.h +@@ -9,7 +9,7 @@ + namespace history { // How many top sites to store in the cache. -static constexpr size_t kTopSitesNumber = 10; +static constexpr size_t kTopSitesNumber = 4 * 4 + 2; + } // namespace history - // This class allows requests for most visited urls on any thread. All other - // methods must be invoked on the UI thread. All mutations to internal state + #endif // COMPONENTS_HISTORY_CORE_BROWSER_TOP_SITES_CONSTANTS_H_ diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/custom_links_store.cc --- a/components/ntp_tiles/custom_links_store.cc +++ b/components/ntp_tiles/custom_links_store.cc @@ -1568,12 +1585,17 @@ diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/R new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc -@@ -0,0 +1,5 @@ +@@ -0,0 +1,10 @@ +CROMITE_FEATURE(kSimplifiedNTP, + "SimplifiedNTP", + base::FEATURE_ENABLED_BY_DEFAULT); + +SET_CROMITE_FEATURE_DISABLED(kMagicStackAndroid); ++ ++SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomization); ++SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationV2); ++SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationToolbarButton); ++SET_CROMITE_FEATURE_DISABLED(kNewTabPageCustomizationForMvt); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch index 953eb660..2414ccb4 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -26,7 +26,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeToolbarButtonController.java -@@ -73,11 +73,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { +@@ -70,11 +70,11 @@ public class ReaderModeToolbarButtonController extends BaseButtonDataProvider { modalDialogManager, AppCompatResources.getDrawable(context, R.drawable.ic_mobile_friendly_24dp), context.getString(R.string.reader_mode_cpa_button_text), @@ -39,11 +39,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/R + /* tooltipTextResId= */ R.string.reader_mode_action_chip_label_simplify_page); mContext = context; - mProfileSupplier = profileSupplier; + mActivityTabProvider = activityTabProvider; diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java --- a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/segmentation_platform/ContextualPageActionController.java -@@ -281,6 +281,10 @@ public class ContextualPageActionController { +@@ -286,6 +286,10 @@ public class ContextualPageActionController { && mTabSupplier.get().getId() == tab.getId(); if (!isSameTab) return; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/segmentation_pl diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -283,14 +283,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -289,14 +289,7 @@ public class MainSettings extends ChromeBaseSettingsFragment getContext(), getProfile(), /* androidPermissionDelegate= */ null, @@ -87,7 +87,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c 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 -@@ -5005,6 +5005,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4954,6 +4954,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d View @@ -119,7 +119,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/res/layout/radio_button_grou diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarButtonController.java -@@ -341,7 +341,7 @@ public class AdaptiveToolbarButtonController +@@ -342,7 +342,7 @@ public class AdaptiveToolbarButtonController } private boolean isScreenWideEnoughForButton() { @@ -131,7 +131,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarFeatures.java -@@ -77,9 +77,9 @@ public class AdaptiveToolbarFeatures { +@@ -74,9 +74,9 @@ public class AdaptiveToolbarFeatures { case AdaptiveToolbarButtonVariant.SHARE: case AdaptiveToolbarButtonVariant.VOICE: case AdaptiveToolbarButtonVariant.AUTO: diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index beebe535..a4f93a3c 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ...e_password_preferences_action_bar_menu.xml | 36 + chrome/android/java/res/values/dimens.xml | 6 + .../android/java/res/xml/main_preferences.xml | 3 +- - .../settings/PasswordSettings.java | 724 ++++++++++++++++++ + .../settings/PasswordSettings.java | 697 ++++++++++++++++++ .../settings/FragmentDependencyProvider.java | 5 + .../chrome/browser/settings/MainSettings.java | 12 - .../settings/SettingsNavigationImpl.java | 4 + @@ -40,10 +40,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../CredentialEditFragmentView.java | 226 ++++++ .../CredentialEntryFragmentViewBase.java | 135 ++++ .../browser/password_manager/android/BUILD.gn | 23 + + .../PasswordManagerHelper.java | 19 +- + .../PasswordManagerUtilBridge.java | 3 +- .../settings/CallbackDelayer.java | 18 + - .../settings/DialogManager.java | 168 ++++ + .../settings/DialogManager.java | 168 +++++ .../settings/ExportErrorDialogFragment.java | 110 +++ - .../password_manager/settings/ExportFlow.java | 583 ++++++++++++++ + .../password_manager/settings/ExportFlow.java | 583 +++++++++++++++ .../settings/ExportFlowInterface.java | 90 +++ .../settings/NonCancelableProgressBar.java | 55 ++ .../PasswordAccessReauthenticationHelper.java | 143 ++++ @@ -55,15 +57,16 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../settings/PasswordsPreference.java | 1 + .../settings/ProgressBarDialogFragment.java | 70 ++ .../settings/ReauthenticationManager.java | 198 +++++ - .../settings/SavedPasswordEntry.java | 41 + + .../settings/SavedPasswordEntry.java | 41 ++ .../settings/SingleThreadBarrierClosure.java | 49 ++ .../settings/TimedCallbackDelayer.java | 33 + .../login_db_deprecation_runner_factory.cc | 2 +- .../android/password_manager_android_util.cc | 1 + .../android/password_ui_view_android.cc | 449 +++++++++++ .../android/password_ui_view_android.h | 196 +++++ + .../android/pwm_disabled/BUILD.gn | 2 - ...ssword_manager_settings_service_factory.cc | 4 +- - .../strings/android_chrome_strings.grd | 123 ++- + .../strings/android_chrome_strings.grd | 123 +++- .../Import-Password-Android.grdp | 9 + .../autofill/core/common/autofill_features.cc | 1 + .../settings/SettingsNavigation.java | 3 + @@ -72,7 +75,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../core/browser/import/password_importer.cc | 11 + components/sync/service/sync_prefs.cc | 2 +- .../Restore-chrome-password-store.inc | 1 + - 64 files changed, 5529 insertions(+), 23 deletions(-) + 67 files changed, 5511 insertions(+), 38 deletions(-) create mode 100644 chrome/android/java/res/layout/password_no_result.xml create mode 100644 chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -118,7 +121,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -796,6 +796,10 @@ if (_is_default_toolchain) { +@@ -797,6 +797,10 @@ if (_is_default_toolchain) { "//url/mojom:url_mojom_origin_java", ] @@ -129,7 +132,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn deps += feed_deps srcjar_deps = [ -@@ -938,6 +942,10 @@ if (_is_default_toolchain) { +@@ -939,6 +943,10 @@ if (_is_default_toolchain) { "//components/visited_url_ranking/internal:internal_java", ] @@ -143,7 +146,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -625,3 +625,8 @@ chrome_java_resources = [ +@@ -629,3 +629,8 @@ chrome_java_resources = [ "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", ] @@ -155,7 +158,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 -@@ -860,6 +860,7 @@ chrome_java_sources = [ +@@ -866,6 +866,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerDialogViewBinder.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java", @@ -279,7 +282,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -69,7 +69,8 @@ for the previous order (main_preferences_legacy). --> +@@ -60,7 +60,8 @@ found in the LICENSE file. android:key="autofill_section" android:order="11" android:title="@string/prefs_section_autofill"/> @@ -293,7 +296,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage new file mode 100644 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -0,0 +1,724 @@ +@@ -0,0 +1,697 @@ +// Copyright 2014 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -322,7 +325,6 @@ new file mode 100644 +import androidx.preference.PreferenceCategory; +import androidx.preference.PreferenceGroup; + -+import org.chromium.base.BuildInfo; +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; +import org.chromium.build.annotations.Nullable; @@ -423,7 +425,6 @@ new file mode 100644 + private Preference mLinkPref; + private Menu mMenu; + -+ private @ManagePasswordsReferrer int mManagePasswordsReferrer; + private final ObservableSupplierImpl mPageTitle = new ObservableSupplierImpl<>(); + + /** For controlling the UX flow of exporting passwords. */ @@ -472,8 +473,6 @@ new file mode 100644 + + setHasOptionsMenu(true); // Password Export might be optional but Search is always present. + -+ mManagePasswordsReferrer = getReferrerFromInstanceStateOrLaunchBundle(savedInstanceState); -+ + mIntentRequestTracker = IntentRequestTracker.createFromDelegate( + new ActivityIntentRequestTrackerDelegate(getActivity()) { + @Override @@ -499,19 +498,6 @@ new file mode 100644 + return mPageTitle; + } + -+ private @ManagePasswordsReferrer int getReferrerFromInstanceStateOrLaunchBundle( -+ Bundle savedInstanceState) { -+ if (savedInstanceState != null -+ && savedInstanceState.containsKey( -+ PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER)) { -+ return savedInstanceState.getInt(PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER); -+ } -+ Bundle extras = getArguments(); -+ if (!extras.containsKey(PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER)) -+ return ManagePasswordsReferrer.CHROME_SETTINGS; -+ return extras.getInt(PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER); -+ } -+ + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); @@ -617,19 +603,13 @@ new file mode 100644 + } + + createSavePasswordsSwitch(); -+ if (shouldShowAutoSigninOption()) { -+ createAutoSignInCheckbox(); -+ } ++ createAutoSignInCheckbox(); + + PasswordManagerHandlerProvider.getForProfile(getProfile()) + .getPasswordManagerHandler() + .updatePasswordLists(); + } + -+ private boolean shouldShowAutoSigninOption() { -+ return !BuildInfo.getInstance().isAutomotive; -+ } -+ + /** + * Removes the UI displaying the list of saved passwords or exceptions. + * @param preferenceCategoryKey The key string identifying the PreferenceCategory to be removed. @@ -799,7 +779,6 @@ new file mode 100644 + if (mSearchQuery != null) { + outState.putString(SAVED_STATE_SEARCH_QUERY, mSearchQuery); + } -+ outState.putInt(PasswordManagerHelper.MANAGE_PASSWORDS_REFERRER, mManagePasswordsReferrer); + } + + @Override @@ -916,9 +895,6 @@ new file mode 100644 + if (syncService == null || !syncService.isEngineInitialized()) { + return; + } -+ if (!PasswordManagerHelper.isSyncingPasswordsWithNoCustomPassphrase(syncService)) { -+ return; -+ } + if (mSearchQuery != null && !mNoPasswords) { + return; // Don't add the Manage Account link if there is a search going on. + } @@ -1021,7 +997,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/FragmentDependencyProvider.java -@@ -25,6 +25,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings; +@@ -26,6 +26,8 @@ import org.chromium.chrome.browser.language.settings.LanguageSettings; import org.chromium.chrome.browser.lifetime.ApplicationLifetime; import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.page_info.SiteSettingsHelper; @@ -1043,7 +1019,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java -@@ -471,18 +471,6 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -480,18 +480,6 @@ public class MainSettings extends ChromeBaseSettingsFragment preference -> SettingsNavigationHelper.showAutofillProfileSettings( getActivity())); @@ -1065,23 +1041,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsNavigationImpl.java -@@ -20,6 +20,7 @@ import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment; - import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; +@@ -19,6 +19,7 @@ import org.chromium.chrome.browser.autofill.settings.FinancialAccountsManagement + import org.chromium.chrome.browser.autofill.settings.NonCardPaymentMethodsManagementFragment; + import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment; import org.chromium.chrome.browser.safety_hub.SafetyHubFragment; +import org.chromium.chrome.browser.password_manager.settings.PasswordSettings; import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; -@@ -54,6 +55,7 @@ public class SettingsNavigationImpl implements SettingsNavigation { - case SettingsFragment.PAYMENT_METHODS: +@@ -50,6 +51,7 @@ public class SettingsNavigationImpl implements SettingsNavigation { + case SettingsFragment.SAFETY_CHECK: case SettingsFragment.SITE: case SettingsFragment.ACCESSIBILITY: + case SettingsFragment.PASSWORDS: case SettingsFragment.GOOGLE_SERVICES: case SettingsFragment.MANAGE_SYNC: case SettingsFragment.FINANCIAL_ACCOUNTS: -@@ -117,6 +119,8 @@ public class SettingsNavigationImpl implements SettingsNavigation { +@@ -109,6 +111,8 @@ public class SettingsNavigationImpl implements SettingsNavigation { return SiteSettings.class; case SettingsFragment.ACCESSIBILITY: return AccessibilitySettings.class; @@ -1093,7 +1069,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3384,6 +3384,13 @@ static_library("browser") { +@@ -3371,6 +3371,13 @@ static_library("browser") { "touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h", ] @@ -1110,7 +1086,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java --- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java +++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillClientProviderUtils.java -@@ -131,6 +131,7 @@ public class AutofillClientProviderUtils { +@@ -122,6 +122,7 @@ public class AutofillClientProviderUtils { @CalledByNative public static void setAutofillOptionsDeepLinkPref(boolean featureOn) { @@ -2929,7 +2905,7 @@ new file mode 100644 diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn --- a/chrome/browser/password_manager/android/BUILD.gn +++ b/chrome/browser/password_manager/android/BUILD.gn -@@ -192,6 +192,27 @@ android_library("java") { +@@ -190,6 +190,27 @@ android_library("java") { "java/src/org/chromium/chrome/browser/password_manager/settings/PasswordsPreference.java", ] @@ -2957,7 +2933,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p resources_package = "org.chromium.chrome.browser.password_manager" } -@@ -213,6 +234,8 @@ generate_jni("jni_headers") { +@@ -211,6 +232,8 @@ generate_jni("jni_headers") { "java/src/org/chromium/chrome/browser/password_manager/PasswordStoreCredential.java", "java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java", ] @@ -2966,6 +2942,70 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p } android_library("utils_java") { +diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java ++++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerHelper.java +@@ -38,8 +38,9 @@ import org.chromium.chrome.browser.preferences.Pref; + import org.chromium.chrome.browser.profiles.Profile; + import org.chromium.chrome.browser.profiles.ProfileKeyedMap; + import org.chromium.chrome.browser.pwm_disabled.PasswordCsvDownloadFlowControllerFactory; +-import org.chromium.chrome.browser.pwm_disabled.PasswordManagerUnavailableDialogCoordinator; + import org.chromium.chrome.browser.sync.SyncServiceFactory; ++import org.chromium.chrome.browser.settings.SettingsNavigationFactory; ++import org.chromium.components.browser_ui.settings.SettingsNavigation; + import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; + import org.chromium.components.prefs.PrefService; + import org.chromium.components.sync.SyncService; +@@ -187,6 +188,7 @@ public class PasswordManagerHelper { + Context context, + Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, + SettingsCustomTabLauncher settingsCustomTabLauncher) { ++ if ((true)) return false; + // Automotive doesn't support the export flow. + if (!DeviceInfo.isAutomotive() + && LoginDbDeprecationUtilBridge.hasPasswordsInCsv(mProfile)) { +@@ -194,16 +196,6 @@ public class PasswordManagerHelper { + return true; + } + +- if (!PasswordManagerUtilBridge.isPasswordManagerAvailable(UserPrefs.get(mProfile))) { +- new PasswordManagerUnavailableDialogCoordinator() +- .showDialog( +- context, +- assertNonNull(modalDialogManagerSupplier.get()), +- PasswordManagerUtilBridge.isGooglePlayServicesUpdatable() +- ? GmsUpdateLauncher::launch +- : null); +- return true; +- } + return false; + } + +@@ -432,6 +424,11 @@ public class PasswordManagerHelper { + Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier, + Context context, + @Nullable String account) { ++ SettingsNavigation settingsNavigation = ++ SettingsNavigationFactory.createSettingsNavigation(); ++ settingsNavigation.startSettings( ++ context, SettingsNavigation.SettingsFragment.PASSWORDS); ++ if ((true)) return; + assert syncService != null; + assert PasswordManagerUtilBridge.isPasswordManagerAvailable(prefService); + CredentialManagerLauncher credentialManagerLauncher = +diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java +--- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java ++++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerUtilBridge.java +@@ -41,8 +41,7 @@ public class PasswordManagerUtilBridge { + */ + @CalledByNative + public static boolean isGooglePlayServicesUpdatable() { +- return PackageUtils.isPackageInstalled("com.google.android.gms") +- && PackageUtils.getPackageInfo("com.android.vending", 0) != null; ++ return false; + } + + @NativeMethods diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/CallbackDelayer.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/settings/CallbackDelayer.java new file mode 100644 --- /dev/null @@ -5232,9 +5272,9 @@ diff --git a/chrome/browser/password_manager/android/password_manager_android_ut bool HasMinGmsVersionForFullUpmSupport() { + if ((true)) return false; - std::string gms_version_str = - base::android::BuildInfo::GetInstance()->gms_version_code(); + std::string gms_version_str = base::android::device_info::gms_version_code(); int gms_version = 0; + // gms_version_code() must be converted to int for comparison, because it can diff --git a/chrome/browser/password_manager/android/password_ui_view_android.cc b/chrome/browser/password_manager/android/password_ui_view_android.cc new file mode 100644 --- /dev/null @@ -5890,6 +5930,18 @@ new file mode 100644 +}; + +#endif // CHROME_BROWSER_PASSWORD_MANAGER_ANDROID_PASSWORD_UI_VIEW_ANDROID_H_ +diff --git a/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn b/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn +--- a/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn ++++ b/chrome/browser/password_manager/android/pwm_disabled/BUILD.gn +@@ -19,8 +19,6 @@ android_library("java") { + "java/src/org/chromium/chrome/browser/pwm_disabled/PasswordCsvDownloadDialogViewBinder.java", + "java/src/org/chromium/chrome/browser/pwm_disabled/PasswordCsvDownloadFlowController.java", + "java/src/org/chromium/chrome/browser/pwm_disabled/PasswordCsvDownloadFlowControllerFactory.java", +- "java/src/org/chromium/chrome/browser/pwm_disabled/PasswordManagerUnavailableDialogCoordinator.java", +- "java/src/org/chromium/chrome/browser/pwm_disabled/PasswordManagerUnavailableDialogMediator.java", + "java/src/org/chromium/chrome/browser/pwm_disabled/PwmDeprecationDialogsMetricsRecorder.java", + "java/src/org/chromium/chrome/browser/pwm_disabled/SingleThreadBarrierClosure.java", + "java/src/org/chromium/chrome/browser/pwm_disabled/TimedCallbackDelayer.java", diff --git a/chrome/browser/password_manager/password_manager_settings_service_factory.cc b/chrome/browser/password_manager/password_manager_settings_service_factory.cc --- a/chrome/browser/password_manager/password_manager_settings_service_factory.cc +++ b/chrome/browser/password_manager/password_manager_settings_service_factory.cc @@ -5916,7 +5968,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Password saving is turned on by your administrator -@@ -797,6 +797,127 @@ For more settings that use data to improve your Chrome experience, go to @@ -6061,7 +6113,7 @@ new file mode 100644 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 -@@ -928,6 +928,7 @@ BASE_FEATURE(kAutofillAndroidDesktopSuppressAccessoryOnEmpty, +@@ -922,6 +922,7 @@ BASE_FEATURE(kAutofillAndroidDesktopSuppressAccessoryOnEmpty, BASE_FEATURE(kAutofillDeepLinkAutofillOptions, "AutofillDeepLinkAutofillOptions", base::FEATURE_ENABLED_BY_DEFAULT); @@ -6136,7 +6188,7 @@ diff --git a/components/password_manager/core/browser/import/password_importer.c diff --git a/components/sync/service/sync_prefs.cc b/components/sync/service/sync_prefs.cc --- a/components/sync/service/sync_prefs.cc +++ b/components/sync/service/sync_prefs.cc -@@ -713,7 +713,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { +@@ -715,7 +715,7 @@ bool SyncPrefs::IsTypeSupportedInTransportMode(UserSelectableType type) { kSeparateLocalAndAccountSearchEngines); #endif case UserSelectableType::kPasswords: diff --git a/build/patches/Restore-classic-new-tab-page.patch b/build/patches/Restore-classic-new-tab-page.patch index 597fe35e..97fc2545 100644 --- a/build/patches/Restore-classic-new-tab-page.patch +++ b/build/patches/Restore-classic-new-tab-page.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc --- a/chrome/browser/search/search.cc +++ b/chrome/browser/search/search.cc -@@ -95,17 +95,6 @@ enum NewTabURLState { +@@ -96,17 +96,6 @@ enum NewTabURLState { NEW_TAB_URL_MAX }; @@ -28,7 +28,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc bool IsMatchingServiceWorker(const GURL& my_url, const GURL& document_url) { // The origin should match. if (!MatchesOrigin(my_url, document_url)) { -@@ -142,20 +131,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) { +@@ -143,20 +132,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) { IsMatchingServiceWorker(url, new_tab_url)); } @@ -49,7 +49,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc // Used to look up the URL to use for the New Tab page. Also tracks how we // arrived at that URL so it can be logged with UMA. struct NewTabURLDetails { -@@ -178,33 +153,8 @@ struct NewTabURLDetails { +@@ -179,33 +154,8 @@ struct NewTabURLDetails { const GURL local_url(default_is_google ? chrome::kChromeUINewTabPageURL : chrome::kChromeUINewTabPageThirdPartyURL); diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index c80a200b..cf1b31b5 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in import androidx.annotation.VisibleForTesting; -@@ -19,8 +20,12 @@ import org.chromium.base.supplier.Supplier; +@@ -18,8 +19,12 @@ import org.chromium.base.Log; import org.chromium.base.version_info.VersionInfo; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; @@ -40,9 +40,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in +import org.chromium.chrome.browser.net.connectivitydetector.ConnectivityDetector.ConnectionState; +import org.chromium.components.variations.VariationsAssociatedData; - /** - * Class that detects if the network is offline. Waits for the network to stablize before notifying -@@ -130,8 +135,9 @@ class OfflineDetector + import java.util.function.Supplier; + +@@ -131,8 +136,9 @@ class OfflineDetector mIsForegroundCallback = isForegroundCallback; mContext = context; mHandler = new Handler(); @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in mUpdateOfflineStatusIndicatorDelayedRunnable = () -> { -@@ -388,4 +394,34 @@ class OfflineDetector +@@ -389,4 +395,34 @@ class OfflineDetector timeNeededAfterConnectionChangeFromOnlineToOffline), timeNeededAfterConnectionChangeFromAirplaneToOffline)); } @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1348,7 +1348,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1370,7 +1370,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) { // TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra // things for tablets. @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab return; } -@@ -1382,6 +1383,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1404,6 +1405,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight); }); @@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -357,6 +357,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -365,6 +365,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, &kNotificationTrampoline, @@ -128,7 +128,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -498,6 +498,7 @@ public abstract class ChromeFeatureList { +@@ -507,6 +507,7 @@ public abstract class ChromeFeatureList { "NotificationPermissionBottomSheet"; public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline"; diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch index 52f173ec..7ed4e65e 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2349,6 +2349,10 @@ +@@ -2425,6 +2425,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 150 }, diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index ccd269d1..a6e473d6 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h" #include "third_party/blink/public/common/tokens/tokens.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" -@@ -390,6 +391,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -392,6 +393,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -105,7 +105,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc --- a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc +++ b/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc -@@ -258,6 +258,7 @@ void WebSharedWorkerImpl::StartWorkerContext( +@@ -275,6 +275,7 @@ void WebSharedWorkerImpl::StartWorkerContext( MakeGarbageCollected(), std::make_unique( std::move(content_settings)), @@ -248,13 +248,13 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third back_forward_cache_controller_host, mojo::PendingReceiver @@ -470,6 +473,7 @@ void DedicatedWorker::ContinueStart( - std::move(worker_main_script_load_params), - std::move(referrer_policy), - std::move(response_content_security_policies), -+ response_address_space, - std::move(back_forward_cache_controller_host), - std::move(coep_reporting_observer), - std::move(dip_reporting_observer)), + std::move(worker_main_script_load_params), + std::move(referrer_policy), + std::move(response_content_security_policies), ++ response_address_space, + std::move(back_forward_cache_controller_host), + std::move(coep_reporting_observer), + std::move(dip_reporting_observer)), @@ -479,6 +483,7 @@ void DedicatedWorker::ContinueStart( ContinueStartInternal( script_url, std::move(worker_main_script_load_params), @@ -361,7 +361,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_sco // The following is the Content-Security-Policy part of "Initialize worker // global scope's policy container" // https://html.spec.whatwg.org/#initialize-worker-policy-container -@@ -490,6 +496,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( +@@ -489,6 +495,7 @@ void DedicatedWorkerGlobalScope::DidFetchClassicScript( // Pass dummy origin trial tokens here as it is already set to outside's // origin trial tokens in DedicatedWorkerGlobalScope's constructor. Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -533,7 +533,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. Vector csp_headers = response_url.ProtocolIsAbout() || response_url.ProtocolIsData() || response_url.ProtocolIs("blob") -@@ -248,6 +254,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( +@@ -247,6 +253,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( // Step 12.3-12.6 are implemented in Initialize(). Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -577,7 +577,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc --- a/third_party/blink/renderer/core/workers/threaded_worklet_test.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_test.cc -@@ -221,6 +221,7 @@ class ThreadedWorkletMessagingProxyForTest +@@ -219,6 +219,7 @@ class ThreadedWorkletMessagingProxyForTest GetExecutionContext()->IsSecureContext(), GetExecutionContext()->GetHttpsState(), worker_clients, nullptr /* content_settings_client */, @@ -746,7 +746,7 @@ diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_imp diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.cc -@@ -473,6 +473,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -472,6 +472,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -754,7 +754,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl classic_script_loader->GetContentSecurityPolicy() ? mojo::Clone(classic_script_loader->GetContentSecurityPolicy() ->GetParsedPolicies()) -@@ -486,6 +487,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -485,6 +486,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -762,7 +762,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 4.5. "Set workerGlobalScope's url to serviceWorker's script url." -@@ -499,6 +501,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -498,6 +500,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -772,7 +772,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl // This is quoted from the "Content Security Policy" algorithm in the service // workers spec: // "Whenever a user agent invokes Run Service Worker algorithm with a service -@@ -509,6 +514,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -508,6 +513,9 @@ void ServiceWorkerGlobalScope::Initialize( // - If serviceWorker's script resource was delivered with a // Content-Security-Policy-Report-Only HTTP header containing the value // policy, the user agent must monitor policy for serviceWorker." @@ -782,7 +782,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -551,26 +559,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -550,26 +558,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &referrer_policy); } @@ -821,7 +821,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h --- a/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h +++ b/third_party/blink/renderer/modules/service_worker/service_worker_global_scope.h -@@ -127,6 +127,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -128,6 +128,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -829,7 +829,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl Vector response_csp, const Vector* response_origin_trial_tokens) override; // Fetches and runs the top-level classic worker script. -@@ -408,6 +409,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final +@@ -409,6 +410,7 @@ class MODULES_EXPORT ServiceWorkerGlobalScope final void RunClassicScript( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch index 7b208846..ba1d1c46 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p #include "third_party/blink/renderer/bindings/core/v8/binding_security.h" #include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h" #include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h" -@@ -512,7 +513,10 @@ bool LocalDOMWindow::CanExecuteScripts( +@@ -506,7 +507,10 @@ bool LocalDOMWindow::CanExecuteScripts( } return false; } @@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4126,19 +4126,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4174,19 +4174,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -943,12 +943,6 @@ class CORE_EXPORT LocalFrame final +@@ -939,12 +939,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch index 5fe3bbf3..7a945886 100644 --- a/build/patches/Set-caret-blink-interval-to-default.patch +++ b/build/patches/Set-caret-blink-interval-to-default.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -3572,9 +3572,7 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3596,9 +3596,7 @@ void WebViewImpl::UpdateRendererPreferences( UpdateFontRenderingFromRendererPrefs(); blink::SetCaretBlinkInterval( diff --git a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch index d76e6893..f38db464 100644 --- a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch +++ b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -180,6 +180,9 @@ BASE_FEATURE(kInitImageDecodeLastUseTime, +@@ -168,6 +168,9 @@ BASE_FEATURE(kInitImageDecodeLastUseTime, BASE_FEATURE(kThrottleMainFrameTo60Hz, "ThrottleMainFrameTo60Hz", base::FEATURE_DISABLED_BY_DEFAULT); @@ -28,7 +28,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc void SetIsEligibleForThrottleMainFrameTo60Hz(bool is_eligible) { s_is_eligible_for_throttle_main_frame_to_60hz.store( -@@ -209,6 +212,7 @@ BASE_FEATURE(kRenderThrottleFrameRate, +@@ -197,6 +200,7 @@ BASE_FEATURE(kRenderThrottleFrameRate, base::FEATURE_ENABLED_BY_DEFAULT); const base::FeatureParam kRenderThrottledFrameIntervalHz{ &kRenderThrottleFrameRate, "render-throttled-frame-interval-hz", 30}; @@ -39,7 +39,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc --- a/cc/scheduler/scheduler_state_machine.cc +++ b/cc/scheduler/scheduler_state_machine.cc -@@ -1535,6 +1535,7 @@ void SchedulerStateMachine::FrameIntervalUpdated( +@@ -1537,6 +1537,7 @@ void SchedulerStateMachine::FrameIntervalUpdated( // // Apply some slack, so that if for some reason the interval is a bit larger // than 8.33333333333333ms, then we catch it still. @@ -47,7 +47,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st constexpr float kSlackFactor = .9; bool fast_vsync_interval = frame_interval < base::Hertz(120) * (1 / kSlackFactor); -@@ -1555,6 +1556,27 @@ void SchedulerStateMachine::FrameIntervalUpdated( +@@ -1557,6 +1558,27 @@ void SchedulerStateMachine::FrameIntervalUpdated( } else { main_frame_throttled_interval_ = base::TimeDelta(); } @@ -75,7 +75,7 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st } bool SchedulerStateMachine::IsDrawThrottled() const { -@@ -1841,7 +1863,11 @@ void SchedulerStateMachine::SetShouldThrottleFrameRate(bool flag) { +@@ -1852,7 +1874,11 @@ void SchedulerStateMachine::SetShouldThrottleFrameRate(bool flag) { } base::TimeDelta SchedulerStateMachine::MainFrameThrottledInterval() const { @@ -90,15 +90,15 @@ diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_st 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 -@@ -49,6 +49,7 @@ - #include "build/branding_buildflags.h" - #include "build/build_config.h" - #include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM +@@ -56,6 +56,7 @@ + #if !BUILDFLAG(IS_ANDROID) + #include "chrome/browser/actor/actor_keyed_service.h" + #endif // !BUILDFLAG(IS_ANDROID) +#include "cc/base/features.h" #include "chrome/browser/after_startup_task_utils.h" #include "chrome/browser/ai/ai_manager.h" #include "chrome/browser/app_mode/app_mode_utils.h" -@@ -295,6 +296,7 @@ +@@ -305,6 +306,7 @@ #include "components/variations/variations_associated_data.h" #include "components/variations/variations_switches.h" #include "components/version_info/version_info.h" @@ -106,7 +106,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "components/webapps/common/web_app_id.h" #include "components/webui/chrome_urls/pref_names.h" #include "content/public/browser/attribution_data_model.h" -@@ -2775,6 +2777,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2907,6 +2909,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value()); #endif @@ -125,12 +125,12 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch 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 -@@ -2639,6 +2639,7 @@ BASE_FEATURE(kUnloadBlocklisted, - BASE_FEATURE(kUrgentMainFrameForInput, - "UrgentMainFrameForInput", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -2335,6 +2335,7 @@ BASE_FEATURE(UnloadBlocklisted, base::FEATURE_DISABLED_BY_DEFAULT); + // When BeginMainFrame() is throttled, whether input-related BeginMainFrame()s + // are marked urgent, and thus unthtrottled. + BASE_FEATURE(UrgentMainFrameForInput, base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kUrgentMainFrameForInput); - // Flag guard for changes in how navigation code handles the URL to commit. - // https://crbug.com/422803238 + // If enabled, URLPattern will use standard defined dummy URL canonicalization + // to canonicalize URL properties. See https://crbug.com/409350827 -- diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index e6d0b0f2..ed361595 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -2936,6 +2936,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3041,6 +3041,8 @@ public class ChromeTabbedActivity extends ChromeActivity { mInactivityTracker = new ChromeInactivityTracker( ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF); @@ -116,9 +116,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToChromeUtil.java -@@ -18,9 +18,11 @@ import androidx.annotation.Nullable; - import org.chromium.base.IntentUtils; - import org.chromium.base.metrics.RecordHistogram; +@@ -20,9 +20,11 @@ import org.chromium.base.metrics.RecordHistogram; + import org.chromium.build.annotations.NullMarked; + import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.BrowserRestartActivity; import org.chromium.chrome.browser.ChromeInactivityTracker; @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC import org.chromium.chrome.browser.magic_stack.HomeModulesMetricsUtils; import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.tab.Tab; -@@ -124,6 +126,18 @@ public final class ReturnToChromeUtil { +@@ -127,6 +129,18 @@ public final class ReturnToChromeUtil { return false; } @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC // Checks whether to show the NTP homepage due to feature flag // HOME_SURFACE_RETURN_TIME_SECONDS. long lastVisibleTimeMs = inactivityTracker.getLastVisibleTimeMs(); -@@ -234,7 +248,7 @@ public final class ReturnToChromeUtil { +@@ -239,7 +253,7 @@ public final class ReturnToChromeUtil { TabModel currentTabModel, TabCreator tabCreator, HomeSurfaceTracker homeSurfaceTracker) { @@ -159,7 +159,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC 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 -@@ -954,7 +954,7 @@ +@@ -963,7 +963,7 @@ Open a specific page or set of pages @@ -171,7 +171,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -404,6 +404,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -414,6 +414,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kSearchInCCTIfEnabledByEmbedder, &kSearchInCCTAlternateTapHandlingIfEnabledByEmbedder, &kSearchResumptionModuleAndroid, @@ -220,7 +220,7 @@ new file mode 100644 diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc --- a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc +++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc -@@ -375,6 +375,7 @@ base::Value::Dict BackgroundTabLoadingPolicy::DescribeSystemNodeData( +@@ -385,6 +385,7 @@ base::Value::Dict BackgroundTabLoadingPolicy::DescribeSystemNodeData( bool BackgroundTabLoadingPolicy::ShouldLoad( const PageNodeToLoadData& page_node_data) { @@ -228,18 +228,18 @@ diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_ if (tab_loads_started_ < kMinTabsToLoad) return true; -@@ -565,6 +566,7 @@ void BackgroundTabLoadingPolicy::MaybeLoadSomeTabs() { +@@ -598,6 +599,7 @@ void BackgroundTabLoadingPolicy::MaybeLoadSomeTabs() { // Continue to load tabs while possible. This is in a loop with a // recalculation of GetMaxNewTabLoads() as reentrancy can cause conditions // to change as each tab load is initiated. + if ((false)) - while (GetMaxNewTabLoads() > 0) + while (GetMaxNewTabLoads() > 0) { LoadNextTab(); - + } 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 -@@ -865,6 +865,8 @@ public final class ChromePreferenceKeys { +@@ -899,6 +899,8 @@ public final class ChromePreferenceKeys { public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF = "ChromeTabbedActivity.BackgroundTimeMs"; @@ -285,7 +285,7 @@ diff --git a/chrome/browser/resources/settings/on_startup_page/on_startup_page.t diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/sessions/session_restore.cc --- a/chrome/browser/sessions/session_restore.cc +++ b/chrome/browser/sessions/session_restore.cc -@@ -917,7 +917,13 @@ class SessionRestoreImpl : public BrowserListObserver { +@@ -918,7 +918,13 @@ class SessionRestoreImpl : public BrowserListObserver { // be selected as ShowBrowser() will load the selected tab. bool is_selected_tab = (initial_tab_count == 0) && (i == selected_tab_index); @@ -300,7 +300,7 @@ diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/session // Convert the last active time because WebContents needs a TimeTicks. const base::TimeDelta delta = tab.last_active_time - epoch_time; const base::TimeTicks last_active_time_ticks = epoch_time_ticks + delta; -@@ -1219,6 +1225,7 @@ class SessionRestoreImpl : public BrowserListObserver { +@@ -1220,6 +1226,7 @@ class SessionRestoreImpl : public BrowserListObserver { } if (last_normal_browser && !normal_startup_tabs.empty()) { AppendURLsToBrowser(last_normal_browser, normal_startup_tabs); @@ -320,7 +320,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab base::RepeatingCallback* g_construction_callback = nullptr; // Determines if the given browser (can be null) is closing. -@@ -383,7 +383,7 @@ void TabLoader::OnMemoryPressure( +@@ -384,7 +384,7 @@ void TabLoader::OnMemoryPressure( bool TabLoader::ShouldStopLoadingTabs() const { DCHECK(reentry_depth_ > 0); // This can only be called internally. @@ -329,7 +329,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab scheduled_to_load_count_ >= g_max_loaded_tab_count_for_testing) { return true; } -@@ -424,7 +424,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { +@@ -426,7 +426,7 @@ size_t TabLoader::GetMaxNewTabLoads() const { tabs_to_load = std::min(tabs_to_load, tabs_to_load_.size()); // Finally, enforce testing tab load limits. @@ -338,7 +338,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab size_t tabs_remaining_for_testing = g_max_loaded_tab_count_for_testing - scheduled_to_load_count_; tabs_to_load = std::min(tabs_to_load, tabs_remaining_for_testing); -@@ -782,6 +782,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) { +@@ -784,6 +784,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) { } size_t TabLoader::MaxSimultaneousLoads() const { diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch index eacf52dd..8f0d4cc4 100644 --- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch +++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch @@ -6,16 +6,16 @@ Avoid displaying info about intrusive ads License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../site_settings/SingleWebsiteSettings.java | 52 ++++++++++++------- + .../site_settings/SingleWebsiteSettings.java | 51 ++++++++++++------- .../browser_ui/site_settings/Website.java | 14 ++++- .../bromite_content_settings/javascript.inc | 4 ++ - 3 files changed, 50 insertions(+), 20 deletions(-) + 3 files changed, 50 insertions(+), 19 deletions(-) create mode 100644 components/content_settings/core/browser/bromite_content_settings/javascript.inc 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 -@@ -628,6 +628,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -626,6 +626,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment setUpSoundPreference(preference); } else if (type == ContentSettingsType.JAVASCRIPT) { setUpJavascriptPreference(preference); @@ -23,16 +23,15 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + setUpCookiesPreference(preference); } else if (type == ContentSettingsType.GEOLOCATION) { setUpLocationPreference(preference); - } else if (type == ContentSettingsType.NOTIFICATIONS) { -@@ -1212,18 +1214,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + } else if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) { +@@ -1110,17 +1112,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setUpAdsInformationalBanner() { // Add the informational banner which shows at the top of the UI if ad blocking is // activated on this site. - boolean adBlockingActivated = - SiteSettingsCategory.adsCategoryEnabled() - && WebsitePreferenceBridge.getAdBlockingActivated( -- getSiteSettingsDelegate().getBrowserContextHandle(), -- mSite.getAddress().getOrigin()) +- getBrowserContextHandle(), mSite.getAddress().getOrigin()) - && findPreference(assumeNonNull(getPreferenceKey(ContentSettingsType.ADS))) - != null; - @@ -43,8 +42,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } @RequiresNonNull({"mSite"}) -@@ -1449,12 +1441,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - @ContentSettingValues +@@ -1440,12 +1433,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + @ContentSetting @Nullable Integer currentValue = mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT); - // If Javascript is blocked by default, then always show a Javascript permission. @@ -52,35 +51,35 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - if ((currentValue == null) - && !WebsitePreferenceBridge.isCategoryEnabled( - browserContextHandle, ContentSettingsType.JAVASCRIPT)) { -- currentValue = ContentSettingValues.BLOCK; +- currentValue = ContentSetting.BLOCK; + // Always show the Javascript permission + if (currentValue == null) { + currentValue = + WebsitePreferenceBridge.isCategoryEnabled( + browserContextHandle, ContentSettingsType.JAVASCRIPT) -+ ? ContentSettingValues.ALLOW -+ : ContentSettingValues.BLOCK; ++ ? ContentSetting.ALLOW ++ : ContentSetting.BLOCK; } // Not possible to embargo JAVASCRIPT. setupContentSettingsPreference( -@@ -1464,6 +1457,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1455,6 +1449,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment isOneTime(ContentSettingsType.JAVASCRIPT)); } + private void setUpCookiesPreference(Preference preference) { + BrowserContextHandle browserContextHandle = + getSiteSettingsDelegate().getBrowserContextHandle(); -+ @ContentSettingValues ++ @ContentSetting + @Nullable + Integer currentValue = + mSite.getContentSetting(browserContextHandle, ContentSettingsType.COOKIES); + // Always show the cookies permission -+ if (currentValue == null || currentValue == ContentSettingValues.DEFAULT) { ++ if (currentValue == null || currentValue == ContentSetting.DEFAULT) { + currentValue = + WebsitePreferenceBridge.isCategoryEnabled( + browserContextHandle, ContentSettingsType.COOKIES) -+ ? ContentSettingValues.ALLOW -+ : ContentSettingValues.BLOCK; ++ ? ContentSetting.ALLOW ++ : ContentSetting.BLOCK; + } + // Not possible to embargo COOKIES. + setupContentSettingsPreference( @@ -92,8 +91,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c + /** * Updates the ads list preference based on whether the site is a candidate for blocking. This - * has some custom behavior. -@@ -1483,9 +1499,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + * has some custom behavior. 1. If the site is a candidate and has activation, the permission +@@ -1472,9 +1489,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } // If the ad blocker is activated, then this site will have ads blocked unless there is an // explicit permission disallowing the blocking. @@ -101,17 +100,17 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c - WebsitePreferenceBridge.getAdBlockingActivated( - browserContextHandle, mSite.getAddress().getOrigin()); + boolean activated = true; - @ContentSettingValues + @ContentSetting @Nullable Integer permission = mSite.getContentSetting(browserContextHandle, ContentSettingsType.ADS); diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/Website.java -@@ -299,7 +299,19 @@ public final class Website implements WebsiteEntry { +@@ -316,7 +316,19 @@ public final class Website implements WebsiteEntry { new ContentSettingException( ContentSettingsType.ADS, getAddress().getOrigin(), -- ContentSettingValues.BLOCK, +- ContentSetting.BLOCK, + value, + ProviderType.NONE, + /* isEmbargoed= */ false); diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch index f15ef0d4..7418f412 100644 --- a/build/patches/Site-setting-for-images.patch +++ b/build/patches/Site-setting-for-images.patch @@ -148,7 +148,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -161,8 +161,8 @@ new file mode 100644 +public class BromiteImagesContentSetting extends BromiteCustomContentSetting { + public BromiteImagesContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.IMAGES, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "images", + /*profilePrefKey*/ "images"); @@ -181,11 +181,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_images_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_images_disabled; + default: + return 0; @@ -213,8 +213,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/images.grdp b/components/browser_ui/strings/bromite_content_settings/images.grdp @@ -324,7 +324,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -4113,19 +4113,6 @@ bool LocalFrame::IsSameOrigin() { +@@ -4161,19 +4161,6 @@ bool LocalFrame::IsSameOrigin() { return security_origin->IsSameOriginWith(top_security_origin); } @@ -347,7 +347,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -942,12 +942,6 @@ class CORE_EXPORT LocalFrame final +@@ -938,12 +938,6 @@ class CORE_EXPORT LocalFrame final return *v8_local_compile_hints_producer_; } @@ -427,7 +427,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/thir diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -1068,9 +1068,8 @@ void Page::SettingsChanged(ChangeType change_type) { +@@ -1082,9 +1082,8 @@ void Page::SettingsChanged(ChangeType change_type) { for (Frame* frame = MainFrame(); frame; frame = frame->Tree().TraverseNext()) { if (auto* local_frame = DynamicTo(frame)) { @@ -454,7 +454,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc -@@ -782,6 +782,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) +@@ -788,6 +788,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init) blob_registry_remote_(init.context_lifecycle_notifier), context_lifecycle_notifier_(init.context_lifecycle_notifier), auto_load_images_(true), @@ -462,7 +462,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c allow_stale_resources_(false), image_fetched_(false) { InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter); -@@ -1913,7 +1914,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( +@@ -1910,7 +1911,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( return false; } @@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2158,8 +2159,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2155,8 +2156,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch index 76a2ed07..5ddc729d 100644 --- a/build/patches/Switch-to-fstack-protector-strong.patch +++ b/build/patches/Switch-to-fstack-protector-strong.patch @@ -19,7 +19,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 -@@ -440,7 +440,7 @@ config("compiler") { +@@ -435,7 +435,7 @@ config("compiler") { } else if (is_posix || is_fuchsia) { if (current_os != "aix") { # Not available on aix. diff --git a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch index 8cf440b9..177be4f6 100644 --- a/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch +++ b/build/patches/TEMP-Add-a-log-to-track-strange-behavior.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc -@@ -3074,6 +3074,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -3071,6 +3071,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, if (it == active_streams_.end()) { // NOTE: it may just be that the stream was cancelled. LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; diff --git a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch index e66c6b51..fec3749b 100644 --- a/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch +++ b/build/patches/Temp-PerformanceNavigationTiming-privacy-fix.patch @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_navigation_timin diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing.cc b/third_party/blink/renderer/core/timing/performance_resource_timing.cc --- a/third_party/blink/renderer/core/timing/performance_resource_timing.cc +++ b/third_party/blink/renderer/core/timing/performance_resource_timing.cc -@@ -137,7 +137,7 @@ AtomicString PerformanceResourceTiming::GetDeliveryType() const { +@@ -161,7 +161,7 @@ AtomicString PerformanceResourceTiming::GetDeliveryType() const { } return info_->cache_state == mojom::blink::CacheState::kNone ? g_empty_atom @@ -39,7 +39,7 @@ diff --git a/third_party/blink/renderer/core/timing/performance_resource_timing. } AtomicString PerformanceResourceTiming::deliveryType() const { -@@ -178,6 +178,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( +@@ -202,6 +202,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( returnedProtocol = g_empty_atom; } diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch index 12dfb814..02608351 100644 --- a/build/patches/Temp-disable-UseContextSnapshot.patch +++ b/build/patches/Temp-disable-UseContextSnapshot.patch @@ -12,10 +12,10 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -1305,6 +1305,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, - BASE_FEATURE(kUseContextSnapshot, - "UseContextSnapshot", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -1091,6 +1091,7 @@ BASE_FEATURE(UnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT); + #if BUILDFLAG(IS_ANDROID) && BUILDFLAG(INCLUDE_BOTH_V8_SNAPSHOTS) + // If enabled, blink's context snapshot is used rather than the v8 snapshot. + BASE_FEATURE(UseContextSnapshot, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kUseContextSnapshot); #endif diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch index 2c5949e3..3618237d 100644 --- a/build/patches/Temp-disable-experimental-web-platform-features.patch +++ b/build/patches/Temp-disable-experimental-web-platform-features.patch @@ -9,7 +9,7 @@ Subject: Temp disable experimental-web-platform-features diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -5159,10 +5159,10 @@ const FeatureEntry kFeatureEntries[] = { +@@ -5176,10 +5176,10 @@ const FeatureEntry kFeatureEntries[] = { {"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName, flag_descriptions::kGpuRasterizationDescription, kOsAll, MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)}, diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index b64dc6a5..592748db 100644 --- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch +++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch @@ -10,7 +10,7 @@ Subject: Temp guard FileSystemAccessPersistentPermissions diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc --- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc +++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc -@@ -486,7 +486,7 @@ bool ShouldBlockAccessToPath( +@@ -488,7 +488,7 @@ bool ShouldBlockAccessToPath( auto should_block_with_rule = [&](const base::FilePath& block_path, BlockType block_type) -> bool { if (path == block_path || path.IsParent(block_path)) { @@ -19,7 +19,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss << " because it is a parent of " << block_path; return true; } -@@ -535,7 +535,7 @@ bool ShouldBlockAccessToPath( +@@ -537,7 +537,7 @@ bool ShouldBlockAccessToPath( } // The nearest ancestor blocks access to its children, so block access. @@ -31,7 +31,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss diff --git a/chrome/browser/file_system_access/file_system_access_features.cc b/chrome/browser/file_system_access/file_system_access_features.cc --- a/chrome/browser/file_system_access/file_system_access_features.cc +++ b/chrome/browser/file_system_access/file_system_access_features.cc -@@ -24,4 +24,5 @@ BASE_FEATURE(kFileSystemAccessSymbolicLinkCheck, +@@ -31,4 +31,5 @@ BASE_FEATURE(kFileSystemAccessSymbolicLinkCheck, base::FEATURE_ENABLED_BY_DEFAULT ); diff --git a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch b/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch deleted file mode 100644 index d7bc8050..00000000 --- a/build/patches/Temporarily-disable-Tab-Group-Sync-Android.patch +++ /dev/null @@ -1,32 +0,0 @@ -From: uazo -Date: Mon, 3 Mar 2025 14:33:03 +0000 -Subject: Temporarily disable Tab Group Sync Android - ---- - .../src/org/chromium/chrome/browser/ChromeTabbedActivity.java | 2 -- - components/saved_tab_groups/public/features.cc | 2 ++ - 2 files changed, 2 insertions(+), 2 deletions(-) - -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 -@@ -1062,8 +1062,6 @@ public class ChromeTabbedActivity extends ChromeActivity { - builder.registerPane( - PaneId.INCOGNITO_TAB_SWITCHER, - LazyOneshotSupplier.fromSupplier(() -> createTabSwitcherPane(true))); -- builder.registerPane( -- PaneId.TAB_GROUPS, LazyOneshotSupplier.fromSupplier(this::createTabGroupsPane)); - if (ChromeFeatureList.sCrossDeviceTabPaneAndroid.isEnabled()) { - builder.registerPane( - PaneId.CROSS_DEVICE, -diff --git a/components/saved_tab_groups/public/features.cc b/components/saved_tab_groups/public/features.cc ---- a/components/saved_tab_groups/public/features.cc -+++ b/components/saved_tab_groups/public/features.cc -@@ -125,4 +125,6 @@ base::TimeDelta GetOriginatingSavedGroupCleanUpTimeInterval() { - return base::Seconds(time_in_seconds); - } - -+//SET_CROMITE_FEATURE_DISABLED(kTabGroupSyncAndroid); -+SET_CROMITE_FEATURE_ENABLED(kTabGroupSyncDisableNetworkLayer); - } // namespace tab_groups --- diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 5efa5c4e..29b5be2f 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -34,9 +34,9 @@ Require: Content-settings-infrastructure.patch .../renderer/content_settings_agent_impl.h | 11 + .../blink/renderer/core/timezone/build.gni | 2 + .../timezone/external_timezone_controller.cc | 37 ++++ - .../timezone/external_timezone_controller.h | 33 +++ + .../timezone/external_timezone_controller.h | 34 +++ .../core/timezone/timezone_controller.h | 6 +- - 26 files changed, 755 insertions(+), 2 deletions(-) + 26 files changed, 756 insertions(+), 2 deletions(-) create mode 100755 components/browser_ui/site_settings/android/java/res/layout/time_zone_select_dialog.xml create mode 100755 components/browser_ui/site_settings/android/java/res/layout/timezoneoverride_site_settings_preference.xml create mode 100755 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/TimezoneOverrideSiteSettingsPreference.java @@ -50,7 +50,7 @@ Require: Content-settings-infrastructure.patch diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -108,6 +108,7 @@ android_library("java") { +@@ -105,6 +105,7 @@ android_library("java") { "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreference.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java", "java/src/org/chromium/components/browser_ui/site_settings/WebsiteRowPreference.java", @@ -58,7 +58,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b ] resources_package = "org.chromium.components.browser_ui.site_settings" -@@ -291,6 +292,8 @@ android_resources("java_resources") { +@@ -289,6 +290,8 @@ android_resources("java_resources") { "java/res/xml/site_settings_preferences.xml", "java/res/xml/storage_access_settings.xml", "java/res/xml/website_preferences.xml", @@ -226,7 +226,7 @@ new file mode 100755 +import androidx.appcompat.app.AlertDialog; + +import org.chromium.content_public.browser.BrowserContextHandle; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; +import org.chromium.components.browser_ui.widget.RadioButtonWithDescription; +import org.chromium.components.browser_ui.widget.RadioButtonWithEditText; @@ -243,7 +243,7 @@ new file mode 100755 + extends Preference implements BromiteCustomTriStateSiteSettingsPreferenceImpl, + RadioGroup.OnCheckedChangeListener, + RadioButtonWithEditText.OnTextChangeListener { -+ private @ContentSettingValues int mSetting = ContentSettingValues.DEFAULT; ++ private @ContentSetting int mSetting = ContentSetting.DEFAULT; + private RadioButtonWithDescription mAllowed; + private RadioButtonWithEditText mAsk; + private RadioButtonWithDescription mBlocked; @@ -261,24 +261,24 @@ new file mode 100755 + setSelectable(false); + } + -+ public void initialize(@ContentSettingValues int setting, BrowserContextHandle browserContextHandle) { ++ public void initialize(@ContentSetting int setting, BrowserContextHandle browserContextHandle) { + mSetting = setting; + mBrowserContextHandle = browserContextHandle; + } + + @Override -+ public @ContentSettingValues int getCheckedSetting() { ++ public @ContentSetting int getCheckedSetting() { + return mSetting; + } + + @Override + public void onCheckedChanged(RadioGroup group, int checkedId) { + if (mAllowed.isChecked()) { -+ mSetting = ContentSettingValues.ALLOW; ++ mSetting = ContentSetting.ALLOW; + } else if (mAsk.isChecked()) { -+ mSetting = ContentSettingValues.ASK; ++ mSetting = ContentSetting.ASK; + } else if (mBlocked.isChecked()) { -+ mSetting = ContentSettingValues.BLOCK; ++ mSetting = ContentSetting.BLOCK; + } + + callChangeListener(mSetting); @@ -309,12 +309,12 @@ new file mode 100755 + if (radioButton != null) radioButton.setChecked(true); + } + -+ private RadioButtonWithDescription findRadioButton(@ContentSettingValues int setting) { -+ if (setting == ContentSettingValues.ALLOW) { ++ private RadioButtonWithDescription findRadioButton(@ContentSetting int setting) { ++ if (setting == ContentSetting.ALLOW) { + return mAllowed; -+ } else if (setting == ContentSettingValues.ASK) { ++ } else if (setting == ContentSetting.ASK) { + return mAsk; -+ } else if (setting == ContentSettingValues.BLOCK) { ++ } else if (setting == ContentSetting.BLOCK) { + return mBlocked; + } else { + return null; @@ -386,7 +386,7 @@ new file mode 100755 diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java -@@ -506,6 +506,14 @@ public class WebsitePreferenceBridge { +@@ -509,6 +509,14 @@ public class WebsitePreferenceBridge { return WebsitePreferenceBridgeJni.get().toHostOnlyPattern(pattern); } @@ -401,7 +401,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @NativeMethods public interface Natives { boolean isNotificationEmbargoedForOrigin( -@@ -668,5 +676,7 @@ public class WebsitePreferenceBridge { +@@ -671,5 +679,7 @@ public class WebsitePreferenceBridge { String toDomainWildcardPattern(String pattern); String toHostOnlyPattern(String pattern); @@ -441,7 +441,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; +import org.chromium.components.browser_ui.site_settings.TimezoneOverrideSiteSettingsPreference; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -457,8 +457,8 @@ new file mode 100644 + + public BromiteTimezoneOverrideContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.TIMEZONE_OVERRIDE, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "timezone_override", + /*profilePrefKey*/ "timezone_override_permission_list"); @@ -477,13 +477,13 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_timezone_override_allowed; -+ case ContentSettingValues.ASK: ++ case ContentSetting.ASK: + return R.string.website_settings_category_timezone_override_custom; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_timezone_override_random; + default: + return 0; @@ -520,13 +520,13 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.ALLOW; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.ALLOW; + } + + @Override -+ public boolean isOnBlockList(@ContentSettingValues Integer contentSetting) { -+ return ContentSettingValues.ALLOW != contentSetting; ++ public boolean isOnBlockList(@ContentSetting Integer contentSetting) { ++ return ContentSetting.ALLOW != contentSetting; + } + + @Override @@ -556,7 +556,7 @@ new file mode 100644 + timeOverrideStatePreference.setOrder(order); + + timeOverrideStatePreference.setOnPreferenceChangeListener(setting); -+ @ContentSettingValues ++ @ContentSetting + int value = WebsitePreferenceBridge.getDefaultContentSetting( + browserContext, ContentSettingsType.TIMEZONE_OVERRIDE); + timeOverrideStatePreference.initialize(value, browserContext); @@ -565,7 +565,7 @@ new file mode 100644 diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -1226,3 +1226,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1260,3 +1260,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( ContentSettingsPattern::FromString(pattern_string)); return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -735,7 +735,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc --- a/components/content_settings/core/browser/host_content_settings_map.cc +++ b/components/content_settings/core/browser/host_content_settings_map.cc -@@ -744,6 +744,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { +@@ -755,6 +755,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) { } } @@ -753,7 +753,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/content_settings/core/browser/host_content_settings_map.h b/components/content_settings/core/browser/host_content_settings_map.h --- a/components/content_settings/core/browser/host_content_settings_map.h +++ b/components/content_settings/core/browser/host_content_settings_map.h -@@ -409,6 +409,9 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -416,6 +416,9 @@ class HostContentSettingsMap : public content_settings::Observer, // Returns the current time of the `clock_`. base::Time Now() const { return clock_->Now(); } @@ -773,7 +773,7 @@ new file mode 100644 diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h --- a/components/content_settings/core/common/content_settings.h +++ b/components/content_settings/core/common/content_settings.h -@@ -134,6 +134,7 @@ struct RendererContentSettingRules { +@@ -132,6 +132,7 @@ struct RendererContentSettingRules { bool operator==(const RendererContentSettingRules& other) const; ContentSettingsForOneType mixed_content_rules; @@ -1016,11 +1016,12 @@ diff --git a/third_party/blink/renderer/core/timezone/external_timezone_controll new file mode 100644 --- /dev/null +++ b/third_party/blink/renderer/core/timezone/external_timezone_controller.h -@@ -0,0 +1,33 @@ +@@ -0,0 +1,34 @@ +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_TIMEZONE_EXTERNAL_TIMEZONE_CONTROLLER_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_TIMEZONE_EXTERNAL_TIMEZONE_CONTROLLER_H_ + +#include ++#include + +#include "third_party/blink/renderer/core/core_export.h" + diff --git a/build/patches/Use-BoringSSL-for-RandBytes.patch b/build/patches/Use-BoringSSL-for-RandBytes.patch index 7cbb2f5a..2262c697 100644 --- a/build/patches/Use-BoringSSL-for-RandBytes.patch +++ b/build/patches/Use-BoringSSL-for-RandBytes.patch @@ -12,36 +12,36 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/base/rand_util_fuchsia.cc b/base/rand_util_fuchsia.cc --- a/base/rand_util_fuchsia.cc +++ b/base/rand_util_fuchsia.cc -@@ -24,7 +24,7 @@ std::atomic g_use_boringssl; +@@ -22,7 +22,7 @@ namespace { + // rand_util_win.cc. + std::atomic g_use_boringssl; - BASE_FEATURE(kUseBoringSSLForRandBytes, - "UseBoringSSLForRandBytes", -- FEATURE_DISABLED_BY_DEFAULT); -+ FEATURE_ENABLED_BY_DEFAULT); +-BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_ENABLED_BY_DEFAULT); } // namespace diff --git a/base/rand_util_posix.cc b/base/rand_util_posix.cc --- a/base/rand_util_posix.cc +++ b/base/rand_util_posix.cc -@@ -104,7 +104,7 @@ std::atomic g_use_boringssl; +@@ -102,7 +102,7 @@ namespace { + // rand_util_win.cc. + std::atomic g_use_boringssl; - BASE_FEATURE(kUseBoringSSLForRandBytes, - "UseBoringSSLForRandBytes", -- FEATURE_DISABLED_BY_DEFAULT); -+ FEATURE_ENABLED_BY_DEFAULT); +-BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_ENABLED_BY_DEFAULT); } // namespace diff --git a/base/rand_util_win.cc b/base/rand_util_win.cc --- a/base/rand_util_win.cc +++ b/base/rand_util_win.cc -@@ -35,7 +35,7 @@ std::atomic g_use_boringssl; +@@ -33,7 +33,7 @@ namespace { + // rand_util_posix.cc. + std::atomic g_use_boringssl; - BASE_FEATURE(kUseBoringSSLForRandBytes, - "UseBoringSSLForRandBytes", -- FEATURE_DISABLED_BY_DEFAULT); -+ FEATURE_ENABLED_BY_DEFAULT); +-BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_DISABLED_BY_DEFAULT); ++BASE_FEATURE(UseBoringSSLForRandBytes, FEATURE_ENABLED_BY_DEFAULT); } // namespace diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch index 59b4aa85..e21ffd1a 100644 --- a/build/patches/Use-browser-navigation-handler.patch +++ b/build/patches/Use-browser-navigation-handler.patch @@ -32,7 +32,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java -@@ -104,6 +104,7 @@ import org.chromium.ui.util.MotionEventUtils; +@@ -105,6 +105,7 @@ import org.chromium.ui.util.MotionEventUtils; import org.chromium.url.GURL; import java.util.ArrayList; @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Gest diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/HistoryNavigationCoordinator.java -@@ -17,6 +17,7 @@ import org.chromium.build.annotations.MonotonicNonNull; +@@ -16,6 +16,7 @@ import org.chromium.build.annotations.MonotonicNonNull; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.NullUnmarked; import org.chromium.build.annotations.Nullable; @@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Hist import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.fullscreen.FullscreenOptions; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; -@@ -204,6 +205,9 @@ public class HistoryNavigationCoordinator +@@ -205,6 +206,9 @@ public class HistoryNavigationCoordinator * @return {@code} true if the feature is enabled. */ private boolean isFeatureEnabled() { @@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -84,6 +84,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; +@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.flags.ChromeSwitches; @@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.gesturenav.BackActionDelegate; -@@ -805,7 +806,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -820,7 +821,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public void onInflationComplete() { mCoordinator = mActivity.findViewById(R.id.coordinator); diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 431f0d86..3ecffb90 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -18,12 +18,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../tab_management/TabGridDialogView.java | 13 + .../TabGridDialogViewBinder.java | 8 + .../TabListContainerViewBinder.java | 29 +- - .../tab_management/TabListCoordinator.java | 33 +- + .../tab_management/TabListCoordinator.java | 37 +- .../TabListEditorCoordinator.java | 2 +- .../tab_management/TabListItemAnimator.java | 2 +- .../tasks/tab_management/TabListMediator.java | 22 +- .../tasks/tab_management/TabListView.java | 123 ++++++ - .../tab_management/TabListViewBinder.java | 354 ++++++++++++++++++ + .../tab_management/TabListViewBinder.java | 353 ++++++++++++++++++ .../tab_management/TabSwitcherPaneBase.java | 4 +- .../TabSwitcherPaneCoordinatorFactory.java | 5 +- .../tab_management/TabUiFeatureUtilities.java | 7 + @@ -39,7 +39,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/toolbar/top/ToolbarPhone.java | 6 +- .../layout/title_and_description_layout.xml | 31 +- .../tab-switcher-list-mode.inc | 3 + - 32 files changed, 1151 insertions(+), 35 deletions(-) + 32 files changed, 1152 insertions(+), 37 deletions(-) create mode 100644 chrome/android/features/tab_ui/java/res/drawable/selected_tab_background.xml create mode 100644 chrome/android/features/tab_ui/java/res/drawable/selected_tab_background_incognito.xml create mode 100644 chrome/android/features/tab_ui/java/res/layout/tab_list_card_item.xml @@ -52,8 +52,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/tab_ui/BUILD.gn --- a/chrome/android/features/tab_ui/BUILD.gn +++ b/chrome/android/features/tab_ui/BUILD.gn -@@ -48,6 +48,8 @@ android_resources("java_resources") { - "java/res/drawable/phone_tab_switcher_empty_state_illustration_top_window.xml", +@@ -51,6 +51,8 @@ android_resources("java_resources") { + "java/res/drawable/pinned_tab_strip_item_background.xml", "java/res/drawable/price_card_background.xml", "java/res/drawable/price_card_scrim.xml", + "java/res/drawable/selected_tab_background.xml", @@ -61,7 +61,7 @@ diff --git a/chrome/android/features/tab_ui/BUILD.gn b/chrome/android/features/t "java/res/drawable/tab_grid_card_background.xml", "java/res/drawable/tab_grid_card_highlight.xml", "java/res/drawable/tab_grid_dialog_background.xml", -@@ -104,6 +106,8 @@ android_resources("java_resources") { +@@ -110,6 +112,8 @@ android_resources("java_resources") { "java/res/layout/tab_group_visual_data_dialog.xml", "java/res/layout/tab_group_visual_data_text_input_layout.xml", "java/res/layout/tab_hover_card_holder.xml", @@ -205,7 +205,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/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 -@@ -54,6 +54,7 @@ import org.chromium.chrome.browser.tab.TabLaunchType; +@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.tab.TabLaunchType; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.chrome.browser.tab_group_sync.TabGroupSyncServiceFactory; import org.chromium.chrome.browser.tab_ui.RecyclerViewPosition; @@ -213,7 +213,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.tabmodel.TabClosingSource; import org.chromium.chrome.browser.tabmodel.TabClosureParamsUtils; import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter; -@@ -910,6 +911,13 @@ public class TabGridDialogMediator +@@ -907,6 +908,13 @@ public class TabGridDialogMediator TabGridDialogProperties.DIALOG_UNGROUP_BAR_HOVERED_TEXT_COLOR, ungroupBarHoveredTextColor); mModel.set(TabGridDialogProperties.IS_INCOGNITO, isIncognito); @@ -226,7 +226,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + } } - private int getIdForTab(@Nullable Tab tab) { + private void updateDialogScrollPosition() { diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogProperties.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogProperties.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogProperties.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogProperties.java @@ -250,7 +250,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/TabGridDialogView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogView.java -@@ -1134,6 +1134,19 @@ public class TabGridDialogView extends FrameLayout { +@@ -1133,6 +1133,19 @@ public class TabGridDialogView extends FrameLayout { mHairline.setVisibility(visible ? VISIBLE : GONE); } @@ -298,7 +298,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/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java -@@ -152,14 +152,27 @@ class TabListContainerViewBinder { +@@ -153,14 +153,27 @@ class TabListContainerViewBinder { } if (width <= 0 || height <= 0) return 0; @@ -353,7 +353,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser int NUM_ENTRIES = 4; } -@@ -365,6 +365,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -366,6 +366,8 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO assumeNonNull(model); if (mMode == TabListMode.GRID) { TabGridViewBinder.onViewRecycled(model, viewHolder.itemView); @@ -362,7 +362,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else if (mMode == TabListMode.STRIP) { TabStripViewBinder.onViewRecycled(model, viewHolder.itemView); } -@@ -473,6 +475,21 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -474,6 +476,21 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO .inflate(R.layout.tab_strip_item, parentView, false); }, TabStripViewBinder::bind); @@ -384,7 +384,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } else { throw new IllegalArgumentException( "Attempting to create a tab list UI with invalid mode"); -@@ -524,7 +541,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -525,7 +542,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO parentView.addView(mRecyclerView); } @@ -393,7 +393,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser boolean hasFixedSize = mMode != TabListMode.STRIP || !TabUiUtils.isDataSharingFunctionalityEnabled(); mRecyclerView.setAdapter(mAdapter); -@@ -556,9 +573,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -557,9 +574,13 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO Rect frame = new Rect(); mActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -409,7 +409,25 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser @Override public void onLayoutCompleted(RecyclerView.State state) { super.onLayoutCompleted(state); -@@ -739,7 +760,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO +@@ -644,7 +665,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO + public void addTabListItemSizeChangedObserver(TabListItemSizeChangedObserver observer) { + mTabListItemSizeChangedObserverList.addObserver(observer); + Size size = mMediator.getDefaultGridCardSize(); +- assert size != null; ++ if (size == null) return; + observer.onSizeChanged(mMediator.getCurrentSpanCount(), size); + } + +@@ -679,7 +700,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO + + Size getThumbnailSize() { + Size size = mMediator.getDefaultGridCardSize(); +- assert size != null; ++ if (size == null) return new Size(0, 0); + return TabUtils.deriveThumbnailSize(size, mActivity); + } + +@@ -733,7 +754,7 @@ public class TabListCoordinator implements PriceWelcomeMessageProvider, DestroyO } private void configureRecyclerViewTouchHelpers() { @@ -445,7 +463,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/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java -@@ -2487,8 +2487,26 @@ class TabListMediator implements TabListNotificationHandler { +@@ -2520,8 +2520,26 @@ class TabListMediator implements TabListNotificationHandler { private void updateFaviconForTab( PropertyModel model, Tab tab, @Nullable Bitmap icon, @Nullable GURL iconUrl) { if (mActionsOnAllRelatedTabs && isTabInTabGroup(tab)) { @@ -606,7 +624,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser new file mode 100644 --- /dev/null +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListViewBinder.java -@@ -0,0 +1,354 @@ +@@ -0,0 +1,353 @@ +// Copyright 2019 The Chromium Authors +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -639,9 +657,8 @@ new file mode 100644 + +import org.chromium.chrome.browser.tab_ui.TabListFaviconProvider; +import org.chromium.chrome.browser.tab_ui.TabCardThemeUtil; -+import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionButtonData; -+import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionButtonData.TabActionButtonType; -+import org.chromium.chrome.browser.tasks.tab_management.TabListMediator.TabActionListener; ++import org.chromium.chrome.browser.tasks.tab_management.TabActionListener; ++import org.chromium.chrome.browser.tasks.tab_management.TabActionButtonData.TabActionButtonType; +import org.chromium.chrome.browser.tasks.tab_management.TabProperties.TabActionState; +import org.chromium.chrome.tab_ui.R; +import org.chromium.components.browser_ui.styles.SemanticColorUtils; @@ -964,7 +981,7 @@ new file mode 100644 diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java -@@ -314,7 +314,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -316,7 +316,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc || isFullSpaceModeOnAndroidXr; @Nullable Tab tab = getCurrentTab(); @@ -973,7 +990,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser return FadeHubLayoutAnimationFactory.createFadeInAnimatorProvider( hubContainerView, HUB_LAYOUT_FADE_DURATION_MS, mOnToolbarAlphaChange); } else if (isFullSpaceModeOnAndroidXr && getTabListMode() == TabListMode.GRID) { -@@ -343,7 +343,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc +@@ -345,7 +345,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc HubContainerView hubContainerView) { assert !DeviceFormFactor.isNonMultiDisplayContextOnTablet(hubContainerView.getContext()); Tab tab = getCurrentTab(); @@ -985,7 +1002,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/TabSwitcherPaneCoordinatorFactory.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneCoordinatorFactory.java -@@ -145,7 +145,10 @@ public class TabSwitcherPaneCoordinatorFactory { +@@ -146,7 +146,10 @@ public class TabSwitcherPaneCoordinatorFactory { mModalDialogManager = modalDialogManager; mBottomSheetController = bottomSheetController; mDataSharingTabManager = dataSharingTabManager; @@ -1052,7 +1069,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 -@@ -183,6 +183,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; +@@ -186,6 +186,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; import org.chromium.chrome.browser.tabmodel.TabModelUtils; import org.chromium.chrome.browser.task_manager.TaskManager; import org.chromium.chrome.browser.task_manager.TaskManagerFactory; @@ -1060,7 +1077,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.theme.ThemeModuleUtils; import org.chromium.chrome.browser.tinker_tank.TinkerTankDelegate; import org.chromium.chrome.browser.toolbar.ControlContainer; -@@ -642,8 +643,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -654,8 +655,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -1584,7 +1601,7 @@ diff --git a/chrome/browser/ui/android/favicon/java/src/org/chromium/chrome/brow @NullMarked public class FaviconHelper { @@ -48,6 +51,17 @@ public class FaviconHelper { - public void onFaviconAvailable(Bitmap image, @JniType("GURL") GURL iconUrl); + void onFaviconAvailable(Bitmap image, @JniType("GURL") GURL iconUrl); } + /** Similar to {@link FaviconImageCallback} but with a list of urls used in the image. */ @@ -1669,7 +1686,7 @@ new file mode 100644 diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java -@@ -54,6 +54,7 @@ import org.chromium.build.annotations.NullUnmarked; +@@ -52,6 +52,7 @@ import org.chromium.build.annotations.NullUnmarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.omnibox.LocationBar; @@ -1677,7 +1694,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; import org.chromium.chrome.browser.omnibox.SearchEngineUtils; -@@ -1797,7 +1798,7 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1789,7 +1790,7 @@ public class ToolbarPhone extends ToolbarLayout // On entering the tab switcher, set the focusability of the url bar to be false. This will // occur at the start of the enter event, and will later be reset to true upon finishing the // exit event. @@ -1686,7 +1703,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mLocationBar.setUrlBarFocusable(false); } -@@ -2007,7 +2008,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -1999,7 +2000,8 @@ public class ToolbarPhone extends ToolbarLayout updateBackground(hasFocus); updateLocationBarForNtp(mVisualState, urlHasFocus()); diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index f901c16a..f27bf351 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -56,7 +56,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -230,7 +230,7 @@ base::WeakPtr GetAsyncCheckTracker( +@@ -228,7 +228,7 @@ base::WeakPtr GetAsyncCheckTracker( } // anonymous namespace std::string GetProduct() { @@ -92,7 +92,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -635,6 +635,8 @@ chrome_java_resources = [ +@@ -639,6 +639,8 @@ chrome_java_resources = [ "java/res/xml/search_widget_info.xml", "java/res/xml/tracing_preferences.xml", "java/res/xml/unified_account_settings_preferences.xml", @@ -104,7 +104,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 -@@ -893,6 +893,7 @@ chrome_java_sources = [ +@@ -899,6 +899,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -226,7 +226,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml -@@ -149,6 +149,11 @@ for the previous order (main_preferences_legacy). --> +@@ -140,6 +140,11 @@ found in the LICENSE file. android:key="content_settings" android:order="26" android:title="@string/prefs_site_settings"/> @@ -271,7 +271,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2621,6 +2621,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2657,6 +2657,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -282,7 +282,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/init/ChromeBrowserInitializer.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrowserInitializer.java -@@ -21,6 +21,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager; +@@ -23,6 +23,7 @@ import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; import org.chromium.content_public.browser.BrowserStartupController; @@ -290,7 +290,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow import java.util.ArrayList; import java.util.List; -@@ -241,11 +242,13 @@ public class ChromeBrowserInitializer { +@@ -244,11 +245,13 @@ public class ChromeBrowserInitializer { @Override public void onSuccess() { @@ -559,7 +559,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesktopUtils.java -@@ -133,6 +133,7 @@ public class RequestDesktopUtils { +@@ -132,6 +132,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { @@ -570,17 +570,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -82,6 +82,9 @@ import org.chromium.components.autofill.AutofillProvider; +@@ -81,6 +81,9 @@ import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillProviderUMA; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.components.browser_ui.site_settings.WebsitePreferenceBridge; import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory; import org.chromium.components.embedder_support.util.UrlConstants; -@@ -120,6 +123,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -123,6 +126,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -590,7 +590,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav /** * Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This * class is not intended to be extended. -@@ -2194,9 +2200,6 @@ class TabImpl implements Tab { +@@ -2195,9 +2201,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { @@ -600,19 +600,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2590,6 +2593,11 @@ class TabImpl implements Tab { +@@ -2592,6 +2595,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } -+ if (tabUserAgent == TabUserAgent.MOBILE) ++ if (mUserAgent == TabUserAgent.MOBILE) + return UserAgentOverrideOption.FALSE; -+ else if (tabUserAgent == TabUserAgent.DESKTOP) ++ else if (mUserAgent == TabUserAgent.DESKTOP) + return UserAgentOverrideOption.TRUE; + - // Do not override UA if there is a tab level setting. - if (tabUserAgent != TabUserAgent.DEFAULT) { - recordHistogramUseDesktopUserAgent(currentRequestDesktopSite); -@@ -2635,7 +2643,7 @@ class TabImpl implements Tab { + CommandLine commandLine = CommandLine.getInstance(); + // For --request-desktop-sites, always override the user agent. + boolean alwaysRequestDesktopSite = +@@ -2633,7 +2641,7 @@ class TabImpl implements Tab { } boolean usingDesktopUserAgent = getWebContents().getNavigationController().getUseDesktopUserAgent(); @@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } /** Sets the TabLaunchType for tabs launched with an unset launch type. */ -@@ -2772,6 +2780,54 @@ class TabImpl implements Tab { +@@ -2774,6 +2782,54 @@ class TabImpl implements Tab { /* allowDialog= */ false); } @@ -642,14 +642,14 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav + if (forcedByUser) { + @TabUserAgent + int tabUserAgent = TabUserAgent.DEFAULT; -+ @ContentSettingValues ++ @ContentSetting + int contentSetting = WebsitePreferenceBridge.getContentSetting( + mProfile, ContentSettingsType.REQUEST_DESKTOP_SITE, url, url); + if (!usingDesktopUserAgent -+ && contentSetting != ContentSettingValues.BLOCK) { ++ && contentSetting != ContentSetting.BLOCK) { + tabUserAgent = TabUserAgent.MOBILE; + } else if (usingDesktopUserAgent -+ && contentSetting != ContentSettingValues.ALLOW) { ++ && contentSetting != ContentSetting.ALLOW) { + tabUserAgent = TabUserAgent.DESKTOP; + } + @@ -679,7 +679,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.java -@@ -128,11 +128,8 @@ public class TabUtils { +@@ -130,11 +130,8 @@ public class TabUtils { * @param switchToDesktop Whether switching the user agent to desktop. * @param caller The caller of this method. */ @@ -922,15 +922,15 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc --- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc +++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc -@@ -8,6 +8,7 @@ - #include "base/command_line.h" +@@ -9,6 +9,7 @@ #include "chrome/browser/content_settings/host_content_settings_map_factory.h" + #include "chrome/browser/flags/android/chrome_feature_list.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/ui/android/tab_model/tab_model.h" #include "chrome/common/chrome_switches.h" #include "components/content_settings/core/common/content_settings_utils.h" #include "components/content_settings/core/common/pref_names.h" -@@ -34,6 +35,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: +@@ -36,6 +37,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: host_content_settings_map_ = HostContentSettingsMapFactory::GetForProfile(profile); pref_service_ = profile->GetPrefs(); @@ -938,7 +938,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o } RequestDesktopSiteWebContentsObserverAndroid:: -@@ -48,6 +50,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( +@@ -50,6 +52,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( return; } @@ -976,7 +976,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -1152,8 +1152,6 @@ public final class ChromePreferenceKeys { +@@ -1192,8 +1192,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1018,7 +1018,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav 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 -@@ -163,6 +163,8 @@ public interface TabWindowManager { +@@ -165,6 +165,8 @@ public interface TabWindowManager { @Nullable List getGroupedTabsByWindow( @WindowId int windowId, Token tabGroupId, boolean isIncognito); @@ -1030,7 +1030,7 @@ diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/brows 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 -@@ -494,6 +494,24 @@ public class TabWindowManagerImpl implements TabWindowManager { +@@ -499,6 +499,24 @@ public class TabWindowManagerImpl implements TabWindowManager { return null; } @@ -1094,7 +1094,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1901,6 +1901,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1915,6 +1915,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1138,7 +1138,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -1151,8 +1151,8 @@ new file mode 100644 +public class BromiteRequestDesktopSiteContentSetting extends BromiteCustomContentSetting { + public BromiteRequestDesktopSiteContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.REQUEST_DESKTOP_SITE, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "request_desktop_site", + /*profilePrefKey*/ "request_desktop_site_permission_list"); @@ -1164,11 +1164,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_request_desktop_site_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_request_desktop_site_disabled; + default: + return 0; @@ -1186,8 +1186,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.ALLOW; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.ALLOW; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/request_desktop_site.grdp b/components/browser_ui/strings/bromite_content_settings/request_desktop_site.grdp @@ -1269,7 +1269,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3615,6 +3615,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3657,6 +3657,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( #if BUILDFLAG(IS_CHROMEOS) switches::kSchedulerBoostUrgent, #endif @@ -1288,7 +1288,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser #include "base/check_op.h" #include "base/command_line.h" #include "base/containers/contains.h" -@@ -2440,8 +2441,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2439,8 +2440,6 @@ void WebContentsImpl::SetUserAgentOverride( OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride", "ua_override", ua_override.ua_string_override, "override_in_new_tabs", override_in_new_tabs); @@ -1297,7 +1297,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3750,6 +3749,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( +@@ -3746,6 +3745,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences( #else prefs.viewport_meta_enabled = false; #endif @@ -1330,7 +1330,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc --- a/content/renderer/render_thread_impl.cc +++ b/content/renderer/render_thread_impl.cc -@@ -885,7 +885,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -859,7 +859,6 @@ void RenderThreadImpl::InitializeRenderer( uint64_t trace_id) { TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer", perfetto::TerminatingFlow::Global(trace_id)); diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 92716127..c4befe4b 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -73,7 +73,7 @@ new file mode 100644 +import org.chromium.components.browser_ui.site_settings.BromiteCustomContentSetting; +import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; +import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; -+import org.chromium.components.content_settings.ContentSettingValues; ++import org.chromium.components.content_settings.ContentSetting; +import org.chromium.components.content_settings.ContentSettingsType; +import org.chromium.content_public.browser.BrowserContextHandle; + @@ -86,8 +86,8 @@ new file mode 100644 +public class BromiteViewportContentSetting extends BromiteCustomContentSetting { + public BromiteViewportContentSetting() { + super(/*contentSettingsType*/ ContentSettingsType.VIEWPORT, -+ /*defaultEnabledValue*/ ContentSettingValues.ALLOW, -+ /*defaultDisabledValue*/ ContentSettingValues.BLOCK, ++ /*defaultEnabledValue*/ ContentSetting.ALLOW, ++ /*defaultDisabledValue*/ ContentSetting.BLOCK, + /*allowException*/ true, + /*preferenceKey*/ "viewport", + /*profilePrefKey*/ "viewport"); @@ -106,11 +106,11 @@ new file mode 100644 + } + + @Override -+ public int getCategorySummary(@Nullable @ContentSettingValues int value) { ++ public int getCategorySummary(@Nullable @ContentSetting int value) { + switch (value) { -+ case ContentSettingValues.ALLOW: ++ case ContentSetting.ALLOW: + return R.string.website_settings_category_viewport_enabled; -+ case ContentSettingValues.BLOCK: ++ case ContentSetting.BLOCK: + return R.string.website_settings_category_viewport_disabled; + default: + // this will cause a runtime exception @@ -139,8 +139,8 @@ new file mode 100644 + } + + @Override -+ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSettingValues int value) { -+ return value != ContentSettingValues.BLOCK; ++ public @Nullable Boolean considerException(SiteSettingsCategory category, @ContentSetting int value) { ++ return value != ContentSetting.BLOCK; + } +} diff --git a/components/browser_ui/strings/bromite_content_settings/viewport.grdp b/components/browser_ui/strings/bromite_content_settings/viewport.grdp @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -2346,7 +2346,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -2365,7 +2365,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { ComputedStyleBuilder builder = CreateComputedStyleBuilder(); builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual : EOrder::kLogical); @@ -399,7 +399,7 @@ diff --git a/third_party/blink/renderer/core/events/pointer_event.h b/third_part diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc --- a/third_party/blink/renderer/core/exported/web_view_impl.cc +++ b/third_party/blink/renderer/core/exported/web_view_impl.cc -@@ -1113,7 +1113,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1117,7 +1117,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { page_popup_ = WebPagePopupImpl::Create( std::move(popup_widget_host), std::move(widget_host), std::move(widget_receiver), this, agent_group_scheduler, @@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc --- a/third_party/blink/renderer/core/frame/local_dom_window.cc +++ b/third_party/blink/renderer/core/frame/local_dom_window.cc -@@ -1613,7 +1613,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1592,7 +1592,12 @@ int LocalDOMWindow::outerHeight() const { if (frame->IsInFencedFrameTree()) { return innerHeight(); } @@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1638,7 +1643,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1617,7 +1622,12 @@ int LocalDOMWindow::outerWidth() const { if (frame->IsInFencedFrameTree()) { return innerWidth(); } @@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p Page* page = frame->GetPage(); if (!page) return 0; -@@ -1842,7 +1852,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1821,7 +1831,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state, -@@ -2483,6 +2494,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2462,6 +2473,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, if (!completed_url.IsEmpty() || result.new_window) result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p // TODO(japhet): window-open-noopener.html?_top and several tests in // html/browsers/windows/browsing-context-names/ appear to require that // the special case target names (_top, _parent, _self) ignore opener -@@ -2534,6 +2562,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2513,6 +2541,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( DCHECK(result.new_window); result.frame->Navigate(frame_request, WebFrameLoadType::kStandard); @@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -1661,6 +1661,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1679,6 +1679,10 @@ void LocalFrame::RestoreScrollOffsets() { saved_scroll_offsets_ = nullptr; } @@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ void LocalFrame::SetLayoutZoomFactor(float factor) { SetZoomFactors(factor, text_zoom_factor_, css_zoom_factor_); } -@@ -1849,12 +1853,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1867,12 +1871,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { return mojo_handler_->GetDevicePosture(); } @@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ return ratio; } -@@ -3409,6 +3417,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3457,6 +3465,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -662,7 +662,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1959,6 +1959,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1958,6 +1958,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) { DeviceEmulator()->UpdateVisualProperties(visual_properties); @@ -735,7 +735,7 @@ diff --git a/third_party/blink/renderer/core/input/touch.cc b/third_party/blink/ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/renderer/core/page/page.cc --- a/third_party/blink/renderer/core/page/page.cc +++ b/third_party/blink/renderer/core/page/page.cc -@@ -108,6 +108,12 @@ +@@ -110,6 +110,12 @@ #include "ui/color/color_provider_utils.h" #include "ui/gfx/geometry/insets_conversions.h" @@ -748,7 +748,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1293,7 +1299,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1307,7 +1313,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -846,9 +846,9 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/renderer/core/page/page.h --- a/third_party/blink/renderer/core/page/page.h +++ b/third_party/blink/renderer/core/page/page.h -@@ -554,6 +554,10 @@ class CORE_EXPORT Page final : public GarbageCollected, - const PartitionedPopinOpenerProperties& GetPartitionedPopinOpenerProperties() - const; +@@ -565,6 +565,10 @@ class CORE_EXPORT Page final : public GarbageCollected, + void SetCanvasNoiseToken(std::optional canvas_noise_token); + const std::optional CanvasNoiseToken(); + void CalculateEmulatedScreenSetting(LocalFrame* frame, bool force = false); + bool IsScreenEmulated() { return is_screen_emulated_; } @@ -857,7 +857,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren private: friend class ScopedPagePauser; class CloseTaskHandler; -@@ -724,6 +728,11 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -735,6 +739,11 @@ class CORE_EXPORT Page final : public GarbageCollected, // browser side FrameTree has the FrameTree::Type of kFencedFrame. bool is_fenced_frame_tree_ = false; @@ -872,7 +872,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -2003,6 +2003,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -2021,6 +2021,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Disable-updater.patch b/build/patches/WIN-Disable-updater.patch index 74cdce89..7e321284 100644 --- a/build/patches/WIN-Disable-updater.patch +++ b/build/patches/WIN-Disable-updater.patch @@ -22,7 +22,7 @@ diff --git a/chrome/browser/active_use_util.h b/chrome/browser/active_use_util.h diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn --- a/chrome/browser/updater/BUILD.gn +++ b/chrome/browser/updater/BUILD.gn -@@ -30,22 +30,6 @@ if (is_win || is_mac) { +@@ -31,22 +31,6 @@ if (is_win || is_mac) { "//components/version_info", ] @@ -48,7 +48,7 @@ diff --git a/chrome/browser/updater/BUILD.gn b/chrome/browser/updater/BUILD.gn diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/updater/browser_updater_client.cc --- a/chrome/browser/updater/browser_updater_client.cc +++ b/chrome/browser/updater/browser_updater_client.cc -@@ -63,19 +63,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { +@@ -64,19 +64,6 @@ BrowserUpdaterClient::~BrowserUpdaterClient() { void BrowserUpdaterClient::Register(base::OnceClosure complete) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -68,7 +68,7 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::RegistrationCompleted(base::OnceClosure complete, -@@ -107,24 +94,6 @@ void BrowserUpdaterClient::CheckForUpdate( +@@ -108,24 +95,6 @@ void BrowserUpdaterClient::CheckForUpdate( base::RepeatingCallback version_updater_callback) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -93,7 +93,7 @@ diff --git a/chrome/browser/updater/browser_updater_client.cc b/chrome/browser/u } void BrowserUpdaterClient::UpdateCompleted( -@@ -173,20 +142,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( +@@ -174,20 +143,7 @@ void BrowserUpdaterClient::IsBrowserRegisteredCompleted( base::OnceCallback callback, const std::vector& apps) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); diff --git a/build/patches/WIN-Fix-log-to-file.patch b/build/patches/WIN-Fix-log-to-file.patch index de5d18fe..a371bd61 100644 --- a/build/patches/WIN-Fix-log-to-file.patch +++ b/build/patches/WIN-Fix-log-to-file.patch @@ -90,7 +90,7 @@ diff --git a/chrome/common/logging_chrome.h b/chrome/common/logging_chrome.h diff --git a/content/app/content_main.cc b/content/app/content_main.cc --- a/content/app/content_main.cc +++ b/content/app/content_main.cc -@@ -339,9 +339,12 @@ NO_STACK_PROTECTOR int RunContentProcess( +@@ -331,9 +331,12 @@ NO_STACK_PROTECTOR int RunContentProcess( } else if (command_line->HasSwitch(switches::kEnableLogging)) { // Route stdio to parent console (if any) or create one, do not create a // console in children if handles are being passed. diff --git a/build/patches/WIN-disable-annotate-downloads.patch b/build/patches/WIN-disable-annotate-downloads.patch index 13aee935..c703bcb3 100644 --- a/build/patches/WIN-disable-annotate-downloads.patch +++ b/build/patches/WIN-disable-annotate-downloads.patch @@ -9,7 +9,7 @@ Subject: WIN disable annotate downloads diff --git a/components/download/internal/common/download_file_impl.cc b/components/download/internal/common/download_file_impl.cc --- a/components/download/internal/common/download_file_impl.cc +++ b/components/download/internal/common/download_file_impl.cc -@@ -432,8 +432,8 @@ void DownloadFileImpl::RenameAndAnnotate( +@@ -420,8 +420,8 @@ void DownloadFileImpl::RenameAndAnnotate( std::unique_ptr parameters(new RenameParameters( ANNOTATE_WITH_SOURCE_INFORMATION, full_path, std::move(callback))); parameters->client_guid = client_guid; diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 20137ef7..0207c486 100644 --- a/build/patches/WIN-enable-pdf-plugin.patch +++ b/build/patches/WIN-enable-pdf-plugin.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc -@@ -2365,7 +2365,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() +@@ -2383,7 +2383,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index c381426a..5c1523c7 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1082,6 +1085,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1090,6 +1093,12 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { } #endif @@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -7282,6 +7282,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7286,6 +7286,10 @@ Keep your key file in a safe place. You will need it to create new versions of y You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer. @@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3620,6 +3620,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3662,6 +3662,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kSchedulerBoostUrgent, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index 7b7f39da..87eb5132 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -31,7 +31,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 -@@ -502,6 +502,7 @@ chrome_java_resources = [ +@@ -507,6 +507,7 @@ chrome_java_resources = [ "java/res/layout/find_in_page.xml", "java/res/layout/find_toolbar.xml", "java/res/layout/fre_tos_privacy_disclaimer.xml", @@ -42,7 +42,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 -@@ -629,6 +629,8 @@ chrome_java_sources = [ +@@ -636,6 +636,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", @@ -240,7 +240,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res 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 -@@ -298,6 +298,30 @@ found in the LICENSE file. +@@ -336,6 +336,30 @@ found in the LICENSE file. 1 @@ -293,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/Defaul diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java -@@ -41,8 +41,7 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; +@@ -42,8 +42,7 @@ import org.chromium.chrome.browser.feature_engagement.TrackerFactory; import org.chromium.chrome.browser.metrics.UmaUtils; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; @@ -303,7 +303,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.signin.DialogWhenLargeContentLayout; import org.chromium.chrome.browser.ui.signin.SigninUtils; -@@ -231,7 +230,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -232,7 +231,7 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa /** Creates first page and sets up adapter. Should result UI being shown on the screen. */ private void createFirstPage() { BooleanSupplier showWelcomePage = () -> !FirstRunStatus.shouldSkipWelcomePage(); @@ -312,7 +312,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR mFreProgressStates.add(MobileFreProgress.WELCOME_SHOWN); mPagerAdapter = new FirstRunPagerAdapter(FirstRunActivity.this, mPages); mPager.setAdapter(mPagerAdapter); -@@ -256,7 +255,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -257,7 +256,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa // // TODO(b/245912657): explicitly sign in supervised users in {@link // FullscreenSigninMediator#handleContinueWithNative} rather than relying on SigninChecker. @@ -320,7 +320,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR assumeNonNull(mFreProperties); mFirstRunFlowSequencer.updateFirstRunProperties(mFreProperties); -@@ -272,18 +270,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -273,18 +271,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa mFreProgressStates.add(MobileFreProgress.DEFAULT_SEARCH_ENGINE_SHOWN); } @@ -339,7 +339,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -663,11 +649,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -666,11 +652,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -1181,7 +1181,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/ChildAcc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/FullscreenSigninAndHistorySyncActivityBase.java -@@ -24,8 +24,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -25,8 +25,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.ui.system.StatusBarColorController; import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.components.policy.PolicyService; @@ -1189,8 +1189,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/Fullscre -import org.chromium.components.signin.AccountManagerFacadeProvider; /** Base class for First run experience and fullscreen signin and history sync promos. */ - public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncInitializationActivity -@@ -90,9 +88,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn + @NullMarked +@@ -92,9 +90,7 @@ public abstract class FullscreenSigninAndHistorySyncActivityBase extends AsyncIn @Override @CallSuper public void triggerLayoutInflation() { diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 7da0a22b..0df6db0d 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../metrics/chrome_feature_list_creator.cc | 12 ++ .../search_engine_preconnector.cc | 1 + .../policy/chrome_browser_policy_connector.cc | 3 - - ...nfiguration_policy_handler_list_factory.cc | 10 +- + ...nfiguration_policy_handler_list_factory.cc | 11 +- .../account_consistency_mode_manager.cc | 7 +- ...ccount_consistency_mode_manager_factory.cc | 2 +- .../throttled_gaia_auth_fetcher.cc | 5 + @@ -39,12 +39,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html extensions/common/extension_features.cc | 1 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 35 files changed, 326 insertions(+), 161 deletions(-) + 35 files changed, 326 insertions(+), 162 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 -@@ -157,80 +157,18 @@ bool EnablePerMonitorV2() { +@@ -158,80 +158,18 @@ bool EnablePerMonitorV2() { } bool* GetDomainEnrollmentStateStorage() { @@ -228,7 +228,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 -@@ -2455,9 +2455,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2459,9 +2459,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -241,17 +241,18 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc } } // namespace -@@ -3280,6 +3280,10 @@ std::unique_ptr BuildHandlerList( - extensions::pref_names::kExtensionUnpublishedAvailability, - /*min=*/0, /*max=*/1, /*clamp=*/false)); - handlers->AddHandler(std::make_unique()); +@@ -3290,7 +3290,10 @@ std::unique_ptr BuildHandlerList( + key::kExtensionInstallCloudPolicyChecksEnabled, + extensions::pref_names::kExtensionInstallCloudPolicyChecksEnabled, + base::Value::Type::BOOLEAN)); +- + handlers->AddHandler(std::make_unique( + key::kExtensionManifestV2Availability, + extensions::pref_names::kManifestV2Availability, /*min=*/0, /*max=*/3, + /*clamp=*/false)); - #endif // BUILDFLAG(ENABLE_EXTENSIONS) + #if BUILDFLAG(ENABLE_PRINT_PREVIEW) diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc --- a/chrome/browser/signin/account_consistency_mode_manager.cc +++ b/chrome/browser/signin/account_consistency_mode_manager.cc @@ -337,7 +338,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc --- a/chrome/browser/signin/chrome_signin_client.cc +++ b/chrome/browser/signin/chrome_signin_client.cc -@@ -264,7 +264,9 @@ void ChromeSigninClient::DoFinalInit() { +@@ -265,7 +265,9 @@ void ChromeSigninClient::DoFinalInit() { bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) { scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); @@ -348,7 +349,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign } PrefService* ChromeSigninClient::GetPrefs() { -@@ -387,6 +389,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { +@@ -386,6 +388,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() { } void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) { @@ -370,7 +371,7 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig "Signin.DiceTokenBindingOutcome"; // Used for UMA. Do not reorder, append new values at the end. -@@ -409,8 +409,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader( +@@ -387,8 +387,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader( // - If there is a policy restriction on removing the primary account. bool invalidate_only_primary_account = identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync) || @@ -378,9 +379,9 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig !signin::IsImplicitBrowserSigninOrExplicitDisabled( identity_manager_, signin_client_->GetPrefs()) || +#endif - !signin_client_->IsClearPrimaryAccountAllowed( - /*has_sync_account=*/false); + !signin_client_->IsClearPrimaryAccountAllowed(); + CoreAccountId primary_account = diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.cc b/chrome/browser/ui/webui/policy/policy_ui_handler.cc --- a/chrome/browser/ui/webui/policy/policy_ui_handler.cc +++ b/chrome/browser/ui/webui/policy/policy_ui_handler.cc @@ -600,7 +601,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace BASE_FEATURE(kCommerceAllowLocalImages, -@@ -346,16 +296,15 @@ const base::FeatureParam kRevertIconOnFailure{ +@@ -344,16 +294,15 @@ const base::FeatureParam kRevertIconOnFailure{ &kShoppingList, kRevertIconOnFailureParam, false}; bool IsPartnerMerchant(const GURL& url) { @@ -620,7 +621,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -407,6 +356,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, +@@ -405,6 +354,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature, bool IsRegionLockedFeatureEnabled(const base::Feature& feature, const std::string& country_code, const std::string& locale) { @@ -628,7 +629,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* feature_list = base::FeatureList::GetInstance(); // If the feature has a server-side config, this check will ensure that -@@ -439,6 +389,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -437,6 +387,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -636,7 +637,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm auto* pattern_from_component = commerce_heuristics::CommerceHeuristicsData::GetInstance() .GetNoDiscountMerchantPattern(); -@@ -450,4 +401,6 @@ bool IsNoDiscountMerchant(const GURL& url) { +@@ -448,4 +399,6 @@ bool IsNoDiscountMerchant(const GURL& url) { return RE2::PartialMatch(url.host_piece(), *pattern_from_component); } #endif @@ -659,7 +660,7 @@ diff --git a/components/policy/core/browser/browser_policy_connector.cc b/compon diff --git a/components/policy/core/common/command_line_policy_provider.cc b/components/policy/core/common/command_line_policy_provider.cc --- a/components/policy/core/common/command_line_policy_provider.cc +++ b/components/policy/core/common/command_line_policy_provider.cc -@@ -23,6 +23,9 @@ std::unique_ptr +@@ -21,6 +21,9 @@ std::unique_ptr CommandLinePolicyProvider::CreateIfAllowed( const base::CommandLine& command_line, version_info::Channel channel) { @@ -978,7 +979,7 @@ diff --git a/components/policy/resources/webui/policy_row.ts b/components/policy diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp -@@ -657,8 +657,8 @@ Additional details: +@@ -672,8 +672,8 @@ Additional details: Default @@ -1036,14 +1037,14 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -112,6 +112,7 @@ BASE_FEATURE(kExtensionProtocolHandlers, - BASE_FEATURE(kExtensionsManifestV3Only, - "ExtensionsManifestV3Only", +@@ -42,6 +42,7 @@ BASE_FEATURE(ApiEnterpriseReportingPrivateOnDataMaskingRulesTriggered, + + BASE_FEATURE(AllowWithholdingExtensionPermissionsOnInstall, base::FEATURE_DISABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kExtensionsManifestV3Only); - BASE_FEATURE(kExtensionsMenuAccessControl, - "ExtensionsMenuAccessControl", + BASE_FEATURE(kCheckingNoExtensionIdInExtensionIpcs, + "EMF_NO_EXTENSION_ID_FOR_EXTENSION_SOURCE", diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_fetcher.cc --- a/google_apis/gaia/gaia_auth_fetcher.cc +++ b/google_apis/gaia/gaia_auth_fetcher.cc @@ -1058,7 +1059,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 -@@ -800,6 +800,7 @@ int SSLClientSocketImpl::Init() { +@@ -788,6 +788,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -1066,7 +1067,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. -@@ -1215,6 +1216,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1202,6 +1203,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { cert_verifier_request_.reset(); 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 e08d5df5..b83992f4 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,16 +23,16 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py """ import sys -@@ -235,7 +237,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): - sys.exit(1) +@@ -252,7 +254,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): --def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): -+def UpdatePackage(package_name, host_os, no_clear, dir=LLVM_BUILD_DIR): + def UpdatePackage(package_name, +- host_os, ++ host_os, no_clear, + preserve_gcs_signature, + dir=LLVM_BUILD_DIR): stamp_file = None - package_file = None - -@@ -267,6 +269,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -286,6 +288,8 @@ def UpdatePackage(package_name, 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 -@@ -284,7 +288,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -303,7 +307,7 @@ def UpdatePackage(package_name, # Updating the main clang package nukes the output dir. Any other packages # need to be updated *after* the clang package. @@ -50,22 +50,22 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py RmTree(dir) DownloadAndUnpackPackage(package_file, dir, host_os) -@@ -332,6 +336,8 @@ def main(): +@@ -351,6 +355,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('--no-clear', + help='Do not remove old file before extracting.') - args = parser.parse_args() - - # TODO(crbug.com/432036065): Remove in next Clang roll. -@@ -372,7 +378,7 @@ def main(): + parser.add_argument('--preserve-gcs-signature', + action='store_true', + help='By default, this script removes gcs hash files ' +@@ -398,7 +404,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 -- return UpdatePackage(args.package, args.host_os, output_dir) -+ return UpdatePackage(args.package, args.host_os, args.no_clear, output_dir) +- return UpdatePackage(args.package, args.host_os, args.preserve_gcs_signature, ++ return UpdatePackage(args.package, args.host_os, args.no_clear, args.preserve_gcs_signature, + output_dir) - if __name__ == '__main__': -- diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index c5c48a2f..f5e9ee3f 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java b/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java --- a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptionsLauncher.java -@@ -41,6 +41,7 @@ public final class AutofillOptionsLauncher extends Activity { +@@ -43,6 +43,7 @@ public final class AutofillOptionsLauncher extends Activity { } private static boolean isDeepLinkFeatureEnabled() { @@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptions 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 -@@ -1150,10 +1150,6 @@ password_manager::OtpManager* ChromePasswordManagerClient::GetOtpManager() { +@@ -1111,10 +1111,6 @@ password_manager::OtpManager* ChromePasswordManagerClient::GetOtpManager() { autofill::AutofillCrowdsourcingManager* ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() { @@ -55,7 +55,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 -@@ -395,15 +395,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -394,15 +394,6 @@ ChromeAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -80,12 +80,12 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browse scoped_refptr GetURLLoaderFactory() final; - AutofillCrowdsourcingManager& GetCrowdsourcingManager() final; VotesUploader& GetVotesUploader() final; - AutofillOptimizationGuide* GetAutofillOptimizationGuide() const final; - FieldClassificationModelHandler* GetAutofillFieldClassificationModelHandler() + AutofillOptimizationGuideDecider* GetAutofillOptimizationGuideDecider() + const final; diff --git a/components/android_autofill/browser/android_autofill_client.cc b/components/android_autofill/browser/android_autofill_client.cc --- a/components/android_autofill/browser/android_autofill_client.cc +++ b/components/android_autofill/browser/android_autofill_client.cc -@@ -79,17 +79,6 @@ AndroidAutofillClient::GetURLLoaderFactory() { +@@ -80,17 +80,6 @@ AndroidAutofillClient::GetURLLoaderFactory() { ->GetURLLoaderFactoryForBrowserProcess(); } @@ -232,7 +232,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h --- a/components/autofill/core/browser/foundations/autofill_client.h +++ b/components/autofill/core/browser/foundations/autofill_client.h -@@ -280,10 +280,6 @@ class AutofillClient { +@@ -287,10 +287,6 @@ class AutofillClient { // Returns the VotesUploader. virtual VotesUploader& GetVotesUploader() = 0; @@ -246,7 +246,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -311,17 +311,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { +@@ -343,17 +343,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) { if (base::FeatureList::IsEnabled(features::test::kShowDomNodeIDs)) { driver().ExposeDomNodeIDs(); } @@ -267,7 +267,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 -@@ -1089,6 +1089,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -1082,6 +1082,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -301,7 +301,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -85,7 +85,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -91,7 +91,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 584e8357..9a8f1960 100644 --- a/build/patches/bromite-build-utils.patch +++ b/build/patches/bromite-build-utils.patch @@ -50,7 +50,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu self._lines = lines self._path = path self._enum_definitions = [] -@@ -253,6 +254,7 @@ class HeaderParser: +@@ -257,6 +258,7 @@ class HeaderParser: self._generator_directives = DirectiveSet() self._multi_line_generator_directive = None self._current_enum_entry = '' @@ -58,7 +58,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu def _ShouldIgnoreLine(self): return self._in_preprocessor_block and not all(self._in_buildflag_android) -@@ -295,6 +297,24 @@ class HeaderParser: +@@ -303,6 +305,24 @@ class HeaderParser: raise Exception('Multi-line comments in enums are not supported in ' + self._path) @@ -83,7 +83,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu enum_comment = HeaderParser.single_line_comment_re.match(line) if enum_comment: comment = enum_comment.groups()[0] -@@ -395,9 +415,9 @@ class HeaderParser: +@@ -404,9 +424,9 @@ class HeaderParser: self._ParseSingleLineEnum(single_line_enum.group('enum_entries')) @@ -95,7 +95,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu if not enum_definitions: raise Exception('No enums found in %s\n' 'Did you forget prefixing enums with ' -@@ -410,9 +430,9 @@ def DoGenerate(source_paths): +@@ -419,9 +439,9 @@ def DoGenerate(source_paths): yield output_path, output @@ -107,7 +107,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu def GenerateOutput(source_path, enum_definition): -@@ -498,11 +518,16 @@ def DoMain(argv): +@@ -507,11 +527,16 @@ def DoMain(argv): nargs='+', help='Path to at least one input file.') @@ -424,7 +424,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 -@@ -870,3 +870,5 @@ if (is_component_build) { +@@ -835,3 +835,5 @@ if (is_component_build) { set_defaults("component") { configs = default_component_configs } diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index de75b81b..a8d02ad3 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 -@@ -430,13 +430,6 @@ public class WebViewChromiumAwInit { +@@ -443,13 +443,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 -@@ -561,10 +561,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -582,10 +582,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { // This must happen after pref value has been read and SafeMode setup has completed. setupStartupTaskExperiments(androidXConfig); @@ -37,7 +37,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC - mAwInit.startVariationsInit(); - } - - mShouldDisableThreadChecking = shouldDisableThreadChecking(ctx); - FlagOverrideHelper helper = + new FlagOverrideHelper(ProductionSupportedFlagList.sFlagList); + helper.applyFlagOverrides( -- diff --git a/build/patches/disable-appending-variations-header.patch b/build/patches/disable-appending-variations-header.patch index 606684e6..0395130c 100644 --- a/build/patches/disable-appending-variations-header.patch +++ b/build/patches/disable-appending-variations-header.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/variations/net/variations_http_headers.cc b/components/variations/net/variations_http_headers.cc --- a/components/variations/net/variations_http_headers.cc +++ b/components/variations/net/variations_http_headers.cc -@@ -116,10 +116,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) { +@@ -120,10 +120,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) { // Also, logs the result of validating |url| in histograms, one of which ends in // |suffix|. bool ShouldAppendVariationsHeader(const GURL& url, const std::string& suffix) { 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 dda78a4f..7875b39a 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; +@@ -149,12 +149,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-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index e33e6f89..978c5b79 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 -@@ -2568,7 +2568,7 @@ template("run_mksnapshot") { +@@ -2589,7 +2589,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 260c6541..a61e766b 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 -@@ -456,6 +456,10 @@ config("compiler") { +@@ -451,6 +451,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 afece6fc..5b231a2a 100644 --- a/build/patches/eyeo-133.0.6943.49-android_api.patch +++ b/build/patches/eyeo-133.0.6943.49-android_api.patch @@ -97,15 +97,15 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/config/android/config.gni") import("//build/config/cronet/config.gni") -@@ -554,6 +557,7 @@ if (_is_default_toolchain) { +@@ -553,6 +556,7 @@ if (_is_default_toolchain) { "//chrome/browser/xsurface:java", "//chrome/browser/xsurface_provider:dependency_provider_impl_java", "//chrome/browser/xsurface_provider:java", + "//components/adblock/android:adblock_controller_java", + "//components/android_autofill/browser:features_java", "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", - "//components/autofill/android:autofill_java", -@@ -1394,6 +1398,7 @@ if (_is_default_toolchain) { +@@ -1395,6 +1399,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", @@ -113,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", -@@ -1464,6 +1469,7 @@ if (_is_default_toolchain) { +@@ -1465,6 +1470,7 @@ if (_is_default_toolchain) { "//chrome/test/data/translate/", "//chrome/test/data/webauthn/", "//chrome/test/media_router/resources/", @@ -121,7 +121,7 @@ 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/", -@@ -3256,6 +3262,12 @@ if (_is_default_toolchain) { +@@ -3261,6 +3267,12 @@ if (_is_default_toolchain) { sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ] } @@ -134,7 +134,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn # 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" ] -@@ -3347,6 +3359,7 @@ if (_is_default_toolchain) { +@@ -3352,6 +3364,7 @@ if (_is_default_toolchain) { "//chrome/browser/ui/plus_addresses/android:jni_headers", "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", @@ -155,7 +155,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java import("//content/public/common/features.gni") -@@ -55,6 +58,7 @@ chrome_java_sources = [ +@@ -56,6 +59,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/accessibility/AccessibilityTabHelper.java", "java/src/org/chromium/chrome/browser/accessibility/PageZoomIphController.java", "java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java", @@ -207,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 -@@ -3412,6 +3412,10 @@ static_library("browser") { +@@ -3399,6 +3399,10 @@ static_library("browser") { ] deps += [ "//chrome/browser/password_entry_edit/android" ] @@ -267,7 +267,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 -@@ -996,6 +996,12 @@ static_library("ui") { +@@ -1012,6 +1012,12 @@ static_library("ui") { deps += [ "//components/themes:ntp_background_proto", ] 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 9e29170d..0a6fc660 100644 --- a/build/patches/eyeo-133.0.6943.49-android_settings.patch +++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch @@ -8,7 +8,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API --- chrome/android/BUILD.gn | 8 + .../android/java/res/xml/main_preferences.xml | 8 + - .../java/res/xml/main_preferences_legacy.xml | 8 + chrome/browser/adblock/android/BUILD.gn | 85 ++++++ chrome/browser/adblock/android/README.md | 13 + .../adblock/android/adblock_strings.grd | 244 ++++++++++++++++++ @@ -122,7 +121,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API .../translations/adblock_strings_zh-HK.xtb | 4 + .../translations/adblock_strings_zh-TW.xtb | 13 + .../translations/adblock_strings_zu.xtb | 4 + - 116 files changed, 2357 insertions(+) + 115 files changed, 2349 insertions(+) create mode 100644 chrome/browser/adblock/android/README.md create mode 100644 chrome/browser/adblock/android/adblock_strings.grd create mode 100644 chrome/browser/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png @@ -239,7 +238,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -290,6 +290,10 @@ if (_is_default_toolchain) { +@@ -289,6 +289,10 @@ if (_is_default_toolchain) { deps += [ "//chrome/browser:screen_capture_java_resources" ] } @@ -250,7 +249,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (enable_extensions_core) { deps += [ "//chrome/browser/ui/android/extensions:java_resources" ] } -@@ -808,6 +812,10 @@ if (_is_default_toolchain) { +@@ -809,6 +813,10 @@ if (_is_default_toolchain) { "//chrome/browser/password_entry_edit:public_java", ] @@ -273,8 +272,8 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j +Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. --> - + @@ -282,31 +281,6 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j + android:fragment="org.chromium.chrome.browser.adblock.settings.AdblockSettingsFragment" + android:key="adblock" + android:order="17" -+ android:title="@string/adblock_settings_title" /> - - - - - android:key="ui_theme" - android:order="18" - android:title="@string/theme_settings" /> -+ -@@ -1526,7 +1530,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1583,7 +1587,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( ? head->bypass_redirect_checks : bypass_redirect_checks_; @@ -50266,7 +50266,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" -@@ -3607,6 +3611,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -3615,6 +3619,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -50293,7 +50293,7 @@ diff --git a/content/browser/renderer_host/render_frame_host_impl.h b/content/br #ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ #define CONTENT_BROWSER_RENDERER_HOST_RENDER_FRAME_HOST_IMPL_H_ -@@ -498,6 +502,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -504,6 +508,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -50318,7 +50318,7 @@ diff --git a/content/public/browser/render_frame_host.h b/content/public/browser #ifndef CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ #define CONTENT_PUBLIC_BROWSER_RENDER_FRAME_HOST_H_ -@@ -556,6 +560,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { +@@ -559,6 +563,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener { virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -50412,7 +50412,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn import("//build/config/cast.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -167,6 +170,10 @@ inspector_protocol_generate("protocol_sources") { +@@ -171,6 +174,10 @@ inspector_protocol_generate("protocol_sources") { static_library("content_shell_lib") { testonly = true sources = [ @@ -50423,7 +50423,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "browser/protocol/browser_handler.cc", "browser/protocol/browser_handler.h", "browser/protocol/domain_handler.h", -@@ -236,6 +243,7 @@ static_library("content_shell_lib") { +@@ -240,6 +247,7 @@ static_library("content_shell_lib") { "browser/shell_platform_delegate_android.cc", "browser/shell_web_contents_view_delegate_android.cc", ] @@ -50431,7 +50431,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn } if (is_mac) { -@@ -317,6 +325,8 @@ static_library("content_shell_lib") { +@@ -321,6 +329,8 @@ static_library("content_shell_lib") { "//base", "//base:base_static", "//cc/base", @@ -50440,7 +50440,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/cdm/renderer", "//components/custom_handlers", "//components/custom_handlers:test_support", -@@ -337,6 +347,7 @@ static_library("content_shell_lib") { +@@ -341,6 +351,7 @@ static_library("content_shell_lib") { "//components/prefs", "//components/services/storage/test_api", "//components/url_formatter", @@ -50448,7 +50448,7 @@ diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn "//components/variations", "//components/variations/service", "//components/web_cache/renderer", -@@ -428,6 +439,7 @@ static_library("content_shell_lib") { +@@ -432,6 +443,7 @@ static_library("content_shell_lib") { "//mojo/public/java/system:test_support", "//ui/android", ] @@ -50701,7 +50701,7 @@ new file mode 100644 diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc --- a/content/shell/browser/shell.cc +++ b/content/shell/browser/shell.cc -@@ -25,6 +25,8 @@ +@@ -21,6 +21,8 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "build/build_config.h" @@ -50710,7 +50710,7 @@ diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc #include "components/custom_handlers/protocol_handler.h" #include "components/custom_handlers/protocol_handler_registry.h" #include "components/custom_handlers/simple_protocol_handler_registry_factory.h" -@@ -44,6 +46,7 @@ +@@ -41,6 +43,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/common/content_switches.h" #include "content/shell/app/resource.h" @@ -50718,7 +50718,7 @@ diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc #include "content/shell/browser/shell_content_browser_client.h" #include "content/shell/browser/shell_devtools_frontend.h" #include "content/shell/browser/shell_javascript_dialog_manager.h" -@@ -89,6 +92,12 @@ Shell::Shell(std::unique_ptr web_contents, +@@ -87,6 +90,12 @@ Shell::Shell(std::unique_ptr web_contents, windows_.push_back(this); @@ -50894,7 +50894,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -1010,6 +1014,10 @@ interface LocalFrame { +@@ -1016,6 +1020,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -51035,7 +51035,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc b #include "third_party/blink/renderer/core/frame/local_frame_mojo_handler.h" @@ -350,6 +354,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) - WrapWeakPersistent(this))); + WrapWeakPersistent(this))); } +void LocalFrameMojoHandler::InsertAbpElemhideStylesheet( @@ -51065,7 +51065,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ @@ -113,6 +117,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, - const WTF::String& message, + const String& message, bool discard_duplicates) final; + void InsertAbpElemhideStylesheet(const WTF::String& stylesheet) final; void SwapInImmediately() final; @@ -51074,7 +51074,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc --- a/third_party/blink/renderer/core/html/html_element.cc +++ b/third_party/blink/renderer/core/html/html_element.cc -@@ -2618,7 +2618,13 @@ void HTMLElement::setSpellcheck(bool enable) { +@@ -2672,7 +2672,13 @@ void HTMLElement::setSpellcheck(bool enable) { } void HTMLElement::click() { @@ -51753,7 +51753,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 -@@ -1192,6 +1196,14 @@ +@@ -1212,6 +1216,14 @@ "components/user_scripts/browser/resources/browser_resources.grd": { "includes": [7620], }, @@ -51791,7 +51791,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3221,6 +3225,8 @@ Called by update_extension_permission.py.--> +@@ -3223,6 +3227,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 30a5cfdd..a4c95ad9 100644 --- a/build/patches/eyeo-133.0.6943.49-chrome_integration.patch +++ b/build/patches/eyeo-133.0.6943.49-chrome_integration.patch @@ -113,7 +113,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1578,7 +1583,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1595,7 +1600,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -136,15 +136,15 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") @@ -204,6 +207,8 @@ static_library("browser") { - "accessibility/page_colors_factory.h", + "accessibility/page_colors_controller_factory.h", "accessibility/prefers_default_scrollbar_styles_prefs.cc", "accessibility/prefers_default_scrollbar_styles_prefs.h", + "adblock/adblock_chrome_content_browser_client.cc", + "adblock/adblock_chrome_content_browser_client.h", "after_startup_task_utils.cc", "after_startup_task_utils.h", - "app_mode/app_mode_utils.cc", -@@ -2139,6 +2144,7 @@ static_library("browser") { + "autocomplete/autocomplete_classifier_factory.cc", +@@ -2119,6 +2124,7 @@ static_library("browser") { "//chrome/common/notifications", "//chrome/installer/util:with_no_strings", "//chrome/services/speech/buildflags", @@ -152,7 +152,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/application_locale_storage", "//components/assist_ranker", "//components/autofill/content/browser", -@@ -8558,6 +8564,7 @@ static_library("browser_public_dependencies") { +@@ -8611,6 +8617,7 @@ static_library("browser_public_dependencies") { "//chrome/services/file_util/public/mojom", "//components/account_id", "//components/autofill/content/browser", @@ -3433,7 +3433,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows #include "chrome/browser/chrome_browser_main.h" -@@ -77,6 +81,7 @@ +@@ -78,6 +82,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/installer/util/google_update_settings.h" @@ -3441,7 +3441,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" -@@ -1555,6 +1560,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1548,6 +1553,8 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { // called inside PostProfileInit. content::WebUIControllerFactory::RegisterFactory( ChromeWebUIControllerFactory::GetInstance()); @@ -3491,7 +3491,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") -@@ -496,6 +499,7 @@ source_set("extensions") { +@@ -501,6 +504,7 @@ source_set("extensions") { "window_controller_list.h", "window_controller_list_observer.h", ] @@ -3499,7 +3499,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", -@@ -824,6 +828,7 @@ source_set("extensions") { +@@ -828,6 +832,7 @@ source_set("extensions") { ] } @@ -3521,7 +3521,7 @@ diff --git a/chrome/browser/net/errorpage_browsertest.cc b/chrome/browser/net/er #include #include #include -@@ -38,6 +42,7 @@ +@@ -39,6 +43,7 @@ #include "chrome/common/pref_names.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -3529,8 +3529,8 @@ diff --git a/chrome/browser/net/errorpage_browsertest.cc b/chrome/browser/net/er #include "components/browsing_data/content/browsing_data_helper.h" #include "components/embedder_support/switches.h" #include "components/error_page/content/browser/net_error_auto_reloader.h" -@@ -639,6 +644,9 @@ class ErrorPageAutoReloadTest : public InProcessBrowserTest { - public: +@@ -644,6 +649,9 @@ class ErrorPageAutoReloadTest : public InProcessBrowserTest { + void SetUpCommandLine(base::CommandLine* command_line) override { command_line->AppendSwitch(embedder_support::kEnableAutoReload); + // The URLLoaderInterceptor is not resilient to the browser making @@ -3538,7 +3538,7 @@ diff --git a/chrome/browser/net/errorpage_browsertest.cc b/chrome/browser/net/er + command_line->AppendSwitch(adblock::switches::kDisableAdblock); } - void TearDownOnMainThread() override { url_loader_interceptor_.reset(); } + void NavigateToURLAndWaitForTitle(const GURL& url, diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc --- a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load_metrics_observer_browsertest.cc @@ -3553,7 +3553,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load #include "components/page_load_metrics/browser/observers/ad_metrics/ads_page_load_metrics_observer.h" -@@ -24,6 +28,7 @@ +@@ -25,6 +29,7 @@ #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/ui_test_utils.h" @@ -3561,7 +3561,7 @@ diff --git a/chrome/browser/page_load_metrics/observers/ad_metrics/ads_page_load #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/features.h" -@@ -1521,7 +1526,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest +@@ -1469,7 +1474,7 @@ class AdsPageLoadMetricsObserverResourceBrowserTest {heavy_ad_intervention::features::kHeavyAdIntervention, {}}, {heavy_ad_intervention::features::kHeavyAdPrivacyMitigations, {{"host-threshold", "3"}}}}, @@ -3613,10 +3613,10 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse #include "components/component_updater/pref_names.h" #include "components/policy/core/browser/configuration_policy_pref_store.h" #include "components/pref_registry/pref_registry_syncable.h" -@@ -189,6 +194,12 @@ const auto kTrackedPrefs = std::to_array({ - // Allows it to trigger a write to the protected pref store. - {36, user_prefs::kScheduleToFlushToDisk, EnforcementLevel::ENFORCE_ON_LOAD, - PrefTrackingStrategy::ATOMIC, ValueType::IMPERSONAL}, +@@ -194,6 +199,12 @@ const auto kTrackedPrefs = std::to_array({ + EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC, + ValueType::IMPERSONAL}, + #endif + {100, adblock::common::prefs::kSubscriptionSignatures, + EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::SPLIT, + ValueType::IMPERSONAL}, @@ -3640,7 +3640,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" -@@ -250,6 +254,15 @@ +@@ -249,6 +253,15 @@ #include "chrome/browser/webid/federated_identity_permission_context_factory.h" #include "chrome/common/buildflags.h" #include "chrome/common/chrome_features.h" @@ -3656,7 +3656,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" -@@ -934,6 +947,15 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -932,6 +945,15 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -3675,7 +3675,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 -@@ -283,6 +283,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, +@@ -284,6 +284,17 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceBrowserTest, "PermissionsUpdaterShutdownFactory", "PluginInfoHostImpl", "TurnSyncOnHelperShutdownNotifier", @@ -3693,7 +3693,7 @@ diff --git a/chrome/browser/profiles/profile_keyed_service_browsertest.cc b/chro }; // clang-format on -@@ -863,6 +874,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, +@@ -869,6 +880,13 @@ IN_PROC_BROWSER_TEST_F(ProfileKeyedServiceGuestBrowserTest, "ZeroSuggestCacheServiceFactory", #endif // !BUILDFLAG(IS_CHROMEOS) @@ -3720,7 +3720,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. import("//chrome/browser/buildflags.gni") import("//chrome/common/features.gni") -@@ -297,6 +300,7 @@ group("dev_ui_resources") { +@@ -299,6 +302,7 @@ group("dev_ui_resources") { "predictors:resources", "privacy_sandbox/internals:resources", "usb_internals:resources", @@ -3728,7 +3728,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", -@@ -366,6 +370,7 @@ repack("dev_ui_paks") { +@@ -373,6 +377,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", @@ -3812,7 +3812,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") -@@ -408,6 +411,7 @@ static_library("ui") { +@@ -399,6 +402,7 @@ static_library("ui") { "//chrome/services/media_gallery_util/public/mojom", "//components/access_code_cast/common:metrics", "//components/account_id", @@ -3871,7 +3871,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/ui/tab_helpers.h" -@@ -102,6 +106,8 @@ +@@ -105,6 +109,8 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -3880,7 +3880,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/foundations/browser_autofill_manager.h" -@@ -342,6 +348,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -344,6 +350,12 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -3893,7 +3893,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc autofill::AutofillClientProvider& autofill_client_provider = autofill::AutofillClientProviderFactory::GetForProfile(profile); autofill_client_provider.CreateClientForWebContents(web_contents); -@@ -379,6 +391,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -385,6 +397,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { ip_protection::IpProtectionStatus::CreateForWebContents(web_contents); } #endif // BUILDFLAG(IS_ANDROID) @@ -3914,7 +3914,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") -@@ -126,6 +129,7 @@ template("chrome_extra_paks") { +@@ -125,6 +128,7 @@ template("chrome_extra_paks") { "$root_gen_dir/chrome/connectors_internals_resources.pak", "$root_gen_dir/chrome/saved_tab_groups_unsupported_resources.pak", "$root_gen_dir/chrome/segmentation_internals_resources.pak", @@ -3922,7 +3922,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", -@@ -164,6 +168,7 @@ template("chrome_extra_paks") { +@@ -163,6 +167,7 @@ template("chrome_extra_paks") { "//chrome/browser/resources/connectors_internals:resources", "//chrome/browser/resources/saved_tab_groups_unsupported:resources", "//chrome/common:resources", @@ -3956,7 +3956,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") -@@ -1851,6 +1854,7 @@ if (is_android) { +@@ -1879,6 +1882,7 @@ if (is_android) { "//chrome/test/data/webui:browser_tests", "//chrome/test/data/webui:interactive_ui_tests", "//chrome/test/data/webui:resources", @@ -3964,7 +3964,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", -@@ -2500,6 +2504,7 @@ if (!is_android) { +@@ -2536,6 +2540,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", @@ -3972,7 +3972,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", -@@ -3012,6 +3017,7 @@ if (!is_android) { +@@ -3054,6 +3059,7 @@ if (!is_android) { "//chrome/test/data/cart/", "//chrome/test/data/devtools/protocol/flash_embed_test.html", "//components/test/data/ad_tagging/", @@ -3980,9 +3980,9 @@ 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", -@@ -3103,6 +3109,9 @@ if (!is_android) { +@@ -3145,6 +3151,9 @@ if (!is_android) { "../browser/accessibility/live_translate_controller_browsertest.cc", - "../browser/accessibility/page_colors_browsertest.cc", + "../browser/accessibility/page_colors_controller_browsertest.cc", "../browser/accessibility/phrase_segmentation/dependency_parser_model_loader_browsertest.cc", + "../browser/adblock/test/adblock_frame_hierarchy_builder_browsertest.cc", + "../browser/adblock/test/adblock_multiple_tabs_browsertest.cc", @@ -3990,7 +3990,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn "../browser/ai/ai_data_keyed_service_browsertest.cc", "../browser/attribution_reporting/chrome_attribution_browsertest.cc", "../browser/autocomplete/autocomplete_browsertest.cc", -@@ -4687,6 +4696,7 @@ if (!is_android) { +@@ -4739,6 +4748,7 @@ if (!is_android) { ] } @@ -3998,7 +3998,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn if (is_chromeos) { deps += [ "//chrome/browser/ui/webui/ash/parent_access:test_support", -@@ -6249,6 +6259,7 @@ test("unit_tests") { +@@ -6308,6 +6318,7 @@ test("unit_tests") { sources = [ # All unittests in browser, common, renderer and service. "../browser/about_flags_unittest.cc", @@ -4006,9 +4006,9 @@ 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", -@@ -10780,6 +10791,7 @@ if (!is_android) { - "//chrome/browser/ui/exclusive_access", +@@ -10826,6 +10837,7 @@ if (!is_android) { "//chrome/browser/ui/views/frame:toolbar_button_provider", + "//chrome/browser/ui/views/interaction", "//chrome/browser/ui/views/side_panel", + "//components/adblock/core:test_support", "//components/supervised_user/core/browser", 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 83dcea83..1e1e6f4f 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 -@@ -828,6 +828,17 @@ source_set("extensions") { +@@ -832,6 +832,17 @@ source_set("extensions") { ] } @@ -2138,7 +2138,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/bookmarks/bookmarks_api.h" #include "chrome/browser/extensions/api/bookmarks/bookmarks_api_watcher.h" -@@ -29,11 +33,13 @@ +@@ -30,11 +34,13 @@ #include "build/build_config.h" #include "build/chromeos_buildflags.h" #include "chrome/browser/extensions/api/activity_log_private/activity_log_private_api.h" @@ -2151,8 +2151,8 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac +#include "chrome/browser/extensions/api/eyeo_filtering_private/eyeo_filtering_private_api.h" #include "chrome/browser/extensions/api/image_writer_private/operation_manager.h" #include "chrome/browser/extensions/api/language_settings_private/language_settings_private_delegate_factory.h" - #include "chrome/browser/extensions/api/messaging/incognito_connectability.h" // nogncheck -@@ -102,6 +108,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { + #include "chrome/browser/extensions/api/networking_private/networking_private_ui_delegate_factory_impl.h" +@@ -103,6 +109,8 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { #if BUILDFLAG(ENABLE_EXTENSIONS) extensions::ActivityLogAPI::GetFactoryInstance(); @@ -3601,9 +3601,9 @@ 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 -@@ -71,6 +75,16 @@ - "dependencies": ["permission:experimentalAiData"], - "channel": "stable" +@@ -68,6 +72,16 @@ + "contexts": ["privileged_extension"], + "dependencies": ["permission:experimentalAiData"] }, + "adblockPrivate": [{ + "dependencies": ["permission:adblockPrivate"], @@ -3618,7 +3618,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -543,6 +557,14 @@ +@@ -540,6 +554,14 @@ "channel": "stable", "contexts": [] }, @@ -3661,7 +3661,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com "autofillPrivate": { "channel": "trunk", "extension_types": ["extension", "platform_app"], -@@ -415,6 +426,13 @@ +@@ -407,6 +418,13 @@ // "desktop_android" is not supported. "platforms": ["chromeos", "linux", "mac", "win"] }, @@ -3873,10 +3873,10 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens import("//build/config/features.gni") import("//chrome/common/features.gni") -@@ -32,7 +35,8 @@ schema_sources_ = [ +@@ -34,7 +37,8 @@ schema_sources_ = [ "scripting.idl", "tabs.json", - "web_authentication_proxy.idl", + "web_authentication_proxy.webidl", - + "adblock_private.idl", + "eyeo_filtering_private.idl", @@ -4155,7 +4155,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 -@@ -4151,6 +4151,20 @@ if (!is_android) { +@@ -4206,6 +4206,20 @@ if (!is_android) { ] } diff --git a/build/patches/kill-Auth.patch b/build/patches/kill-Auth.patch index d1b03d49..1b461fbf 100644 --- a/build/patches/kill-Auth.patch +++ b/build/patches/kill-Auth.patch @@ -4,127 +4,23 @@ Subject: kill Auth License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../signin/SystemAccountManagerDelegate.java | 78 +------------------ - 1 file changed, 4 insertions(+), 74 deletions(-) + .../components/signin/AccountManagerFacadeProvider.java | 6 +----- + 1 file changed, 1 insertion(+), 5 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 -+++ b/components/signin/public/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java -@@ -24,9 +24,6 @@ import android.os.PatternMatcher; - import android.os.Process; - import android.os.SystemClock; +diff --git a/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java b/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java +--- a/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java ++++ b/components/signin/public/android/java/src/org/chromium/components/signin/AccountManagerFacadeProvider.java +@@ -24,11 +24,7 @@ public class AccountManagerFacadeProvider { + private static final AccountManagerFacade INSTANCE; --import com.google.android.gms.auth.GoogleAuthException; --import com.google.android.gms.auth.GoogleAuthUtil; -- - import org.chromium.base.ApiCompatibilityUtils; - import org.chromium.base.Callback; - import org.chromium.base.ContextUtils; -@@ -94,18 +91,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { - - @Override - public Account[] getAccountsSynchronous() throws AccountManagerDelegateException { -- if (!isGooglePlayServicesAvailable()) { -- throw new AccountManagerDelegateException("Can't use Google Play Services"); -- } -- if (hasGetAccountsPermission()) { -- long startTime = SystemClock.elapsedRealtime(); -- Account[] accounts = -- mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); -- RecordHistogram.recordTimesHistogram( -- "Signin.AndroidGetAccountsTime_AccountManager", -- SystemClock.elapsedRealtime() - startTime); -- return accounts; -- } - // 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[] {}; -@@ -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); -- try { -- return new AccessTokenData( -- GoogleAuthUtil.getTokenWithNotification( -- ContextUtils.getApplicationContext(), account, authTokenScope, null)); -- } catch (GoogleAuthException ex) { -- // This case includes a UserRecoverableNotifiedException, but most clients will have -- // their own retry mechanism anyway. -- throw new AuthException( -- "Error while getting token for scope '" + authTokenScope + "'", -- ex, -- new GoogleServiceAuthError( -- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); -- } catch (IOException 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 + "'", -+ new IOException()); + static { +- AccountManagerDelegate delegate = +- ServiceLoaderUtil.maybeCreate(AccountManagerDelegate.class); +- if (delegate == null) { +- delegate = new NullAccountManagerDelegate(); +- } ++ var delegate = new NullAccountManagerDelegate(); + INSTANCE = new AccountManagerFacadeImpl(delegate); + } } - - @Override - public void invalidateAccessToken(String authToken) throws AuthException { -- try { -- GoogleAuthUtil.clearToken(ContextUtils.getApplicationContext(), authToken); -- } catch (GoogleAuthException ex) { -- throw new AuthException( -- "Error while invalidating access token", -- ex, -- new GoogleServiceAuthError( -- GoogleServiceAuthErrorState.INVALID_GAIA_CREDENTIALS)); -- } catch (IOException ex) { -- throw new AuthException( -- "Error while invalidating access token", -- ex, -- new GoogleServiceAuthError(GoogleServiceAuthErrorState.CONNECTION_FAILED)); -- } - } - - @Override -@@ -168,24 +123,6 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { - @SuppressLint("MissingPermission") - @Override - public void createAddAccountIntent(Callback<@Nullable Intent> callback) { -- AccountManagerCallback accountManagerCallback = -- accountManagerFuture -> { -- try { -- Bundle bundle = accountManagerFuture.getResult(); -- callback.onResult(bundle.getParcelable(AccountManager.KEY_INTENT)); -- } catch (OperationCanceledException | IOException | AuthenticatorException e) { -- Log.e(TAG, "Error while creating an intent to add an account: ", e); -- callback.onResult(null); -- } -- }; -- mAccountManager.addAccount( -- GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE, -- null, -- null, -- null, -- null, -- accountManagerCallback, -- null); - } - - // No permission is needed on 23+ and Chrome always has MANAGE_ACCOUNTS permission on lower APIs -@@ -219,14 +156,7 @@ public class SystemAccountManagerDelegate implements AccountManagerDelegate { - - @Override - public @Nullable GaiaId getAccountGaiaId(String accountEmail) { -- try { -- return new GaiaId( -- GoogleAuthUtil.getAccountId( -- ContextUtils.getApplicationContext(), accountEmail)); -- } catch (IOException | GoogleAuthException ex) { -- Log.e(TAG, "SystemAccountManagerDelegate.getAccountGaiaId", ex); -- return null; -- } -+ return null; - } - - @Override -- diff --git a/build/patches/kill-Location-fall-back-to-system.patch b/build/patches/kill-Location-fall-back-to-system.patch index 36b31f74..a3c29e0d 100644 --- a/build/patches/kill-Location-fall-back-to-system.patch +++ b/build/patches/kill-Location-fall-back-to-system.patch @@ -4,15 +4,15 @@ Subject: kill Location, fall back to system License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - services/device/geolocation/BUILD.gn | 1 - - .../device/geolocation/LocationProviderFactory.java | 11 ++--------- - services/device/public/cpp/device_features.cc | 3 ++- - 3 files changed, 4 insertions(+), 11 deletions(-) + services/device/geolocation/BUILD.gn | 1 - + .../geolocation/LocationProviderFactory.java | 20 ++----------------- + services/device/public/cpp/device_features.cc | 3 ++- + 3 files changed, 4 insertions(+), 20 deletions(-) diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn -@@ -152,7 +152,6 @@ if (is_android) { +@@ -155,7 +155,6 @@ if (is_android) { "android/java/src/org/chromium/device/geolocation/LocationProviderAdapter.java", "android/java/src/org/chromium/device/geolocation/LocationProviderAndroid.java", "android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java", @@ -23,7 +23,7 @@ diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java --- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java +++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderFactory.java -@@ -29,19 +29,12 @@ public class LocationProviderFactory { +@@ -51,28 +51,12 @@ public class LocationProviderFactory { @CalledByNative public static void useGmsCoreLocationProvider() { @@ -38,8 +38,17 @@ diff --git a/services/device/geolocation/android/java/src/org/chromium/device/ge - && LocationProviderGmsCore.isGooglePlayServicesAvailable( - ContextUtils.getApplicationContext())) { - sProviderImpl = new LocationProviderGmsCore(ContextUtils.getApplicationContext()); +- RecordHistogram.recordEnumeratedHistogram( +- "Geolocation.AndroidLocationProvider.ProviderType", +- LocationProviderType.GMS_CORE, +- LocationProviderType.COUNT); +- - } else { - sProviderImpl = new LocationProviderAndroid(); +- RecordHistogram.recordEnumeratedHistogram( +- "Geolocation.AndroidLocationProvider.ProviderType", +- LocationProviderType.ANDROID, +- LocationProviderType.COUNT); - } + sProviderImpl = new LocationProviderAndroid(); return sProviderImpl; diff --git a/build/patches/kill-Vision.patch b/build/patches/kill-Vision.patch index fd9bfdb8..29d2e195 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 -@@ -319,8 +319,6 @@ if (_is_default_toolchain) { +@@ -318,8 +318,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", @@ -27,7 +27,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 -@@ -122,21 +122,13 @@ if (is_android) { +@@ -124,21 +124,13 @@ if (is_android) { android_library("shape_detection_java") { sources = [ diff --git a/build/patches/sharing-hub-always-use-visible-URL.patch b/build/patches/sharing-hub-always-use-visible-URL.patch index d2212fc1..86526ce5 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 -@@ -304,6 +304,7 @@ public class ShareDelegateImpl implements ShareDelegate { +@@ -314,6 +314,7 @@ public class ShareDelegateImpl implements ShareDelegate { @VisibleForTesting static boolean shouldFetchCanonicalUrl(final Tab currentTab) { diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 869d3840..3e65583c 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 -@@ -1304,8 +1304,6 @@ static_library("browser") { +@@ -1297,8 +1297,6 @@ static_library("browser") { "profiles/incognito_mode_policy_handler.h", "profiles/off_the_record_profile_impl.cc", "profiles/off_the_record_profile_impl.h", @@ -22,11 +22,11 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn - "profiles/profile_avatar_downloader.h", "profiles/profile_destroyer.cc", "profiles/profile_destroyer.h", - "profiles/profile_downloader.cc", + "profiles/profile_impl.cc", 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 -@@ -376,12 +376,6 @@ gfx::Image ProfileAttributesEntry::GetAvatarIcon( +@@ -381,12 +381,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 3c7cd7d6..ae14fa77 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -6,24 +6,24 @@ Remove translate offer License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../xml/languages_detailed_preferences.xml | 43 ----------------- + .../xml/languages_detailed_preferences.xml | 42 ----------------- .../java/res/xml/languages_preferences.xml | 5 -- .../language/settings/LanguageSettings.java | 47 +------------------ .../strings/android_chrome_strings.grd | 3 -- .../core/browser/translate_manager.cc | 5 +- .../core/browser/translate_script.cc | 17 ++----- - 6 files changed, 10 insertions(+), 110 deletions(-) + 6 files changed, 10 insertions(+), 109 deletions(-) diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml b/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml --- a/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml +++ b/chrome/browser/language/android/java/res/xml/languages_detailed_preferences.xml -@@ -31,47 +31,4 @@ found in the LICENSE file. +@@ -39,46 +39,4 @@ found in the LICENSE file. - @@ -37,8 +37,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_pre - - - @@ -68,7 +67,7 @@ diff --git a/chrome/browser/language/android/java/res/xml/languages_detailed_pre diff --git a/chrome/browser/language/android/java/res/xml/languages_preferences.xml b/chrome/browser/language/android/java/res/xml/languages_preferences.xml --- a/chrome/browser/language/android/java/res/xml/languages_preferences.xml +++ b/chrome/browser/language/android/java/res/xml/languages_preferences.xml -@@ -13,9 +13,4 @@ found in the LICENSE file. +@@ -18,9 +18,4 @@ found in the LICENSE file. android:layout="@layout/languages_preference" android:widgetLayout="@layout/accept_languages_list" /> @@ -173,7 +172,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 -@@ -1991,9 +1991,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1940,9 +1940,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. @@ -201,7 +200,7 @@ diff --git a/components/translate/core/browser/translate_manager.cc b/components diff --git a/components/translate/core/browser/translate_script.cc b/components/translate/core/browser/translate_script.cc --- a/components/translate/core/browser/translate_script.cc +++ b/components/translate/core/browser/translate_script.cc -@@ -126,20 +126,13 @@ void TranslateScript::OnScriptFetchComplete(bool success, +@@ -134,20 +134,13 @@ void TranslateScript::OnScriptFetchComplete(bool success, data_ = base::StringPrintf("var translateApiKey = '%s';\n", google_apis::GetAPIKey().c_str()); diff --git a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch index 1c0dd856..c5f898db 100644 --- a/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch +++ b/build/patches/ungoogled-chromium-Disable-webRTC-log-uploader.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -135,7 +135,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -139,7 +139,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterStringPref(prefs::kWebRTCUDPPortRange, std::string()); registry->RegisterBooleanPref(prefs::kWebRtcEventLogCollectionAllowed, false); registry->RegisterListPref(prefs::kWebRtcLocalIpsAllowedUrls); diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 1f513616..80407088 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -40,8 +40,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - .../omnibox/LocationBarCoordinator.java | 2 - - .../browser/omnibox/LocationBarMediator.java | 23 -- + .../browser/omnibox/LocationBarMediator.java | 24 -- .../ui/webui/new_tab_page/new_tab_page_ui.cc | 6 - + chrome/browser/upgrade_detector/BUILD.gn | 2 - .../upgrade_detector/upgrade_detector_impl.cc | 6 - chrome/common/BUILD.gn | 2 - .../google_accounts_private_api_util.cc | 3 + @@ -68,13 +69,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...gled-chromium-no-special-hosts-domains.inc | 1 + net/base/url_util.cc | 25 +- services/network/network_context.cc | 2 +- - 61 files changed, 55 insertions(+), 884 deletions(-) + 62 files changed, 55 insertions(+), 887 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/ungoogled-chromium-no-special-hosts-domains.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -103,7 +103,6 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; +@@ -102,7 +102,6 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils; import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordinator; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; @@ -82,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; -@@ -1227,10 +1226,8 @@ public class RootUiCoordinator +@@ -1225,10 +1224,8 @@ public class RootUiCoordinator Profile profile = tab.getProfile(); TemplateUrlService service = TemplateUrlServiceFactory.getForProfile(profile); String url = service.getUrlForSearchQuery(query); @@ -96,7 +97,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 -@@ -934,10 +934,6 @@ static_library("browser") { +@@ -932,10 +932,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", @@ -107,7 +108,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", -@@ -946,10 +942,6 @@ static_library("browser") { +@@ -944,10 +940,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", @@ -118,7 +119,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", -@@ -1567,8 +1559,6 @@ static_library("browser") { +@@ -1536,8 +1528,6 @@ static_library("browser") { "supervised_user/supervised_user_browser_utils.h", "supervised_user/supervised_user_content_filters_service_factory.cc", "supervised_user/supervised_user_content_filters_service_factory.h", @@ -127,7 +128,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", -@@ -1756,10 +1746,7 @@ static_library("browser") { +@@ -1723,10 +1713,7 @@ static_library("browser") { "//chrome/browser/content_settings:impl", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -138,7 +139,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", -@@ -1884,7 +1871,6 @@ static_library("browser") { +@@ -1856,7 +1843,6 @@ static_library("browser") { # New dependencies inside of //chrome/browser that generate header files # should be added to browser_generated_files. ":browser_public_dependencies", @@ -169,7 +170,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 -@@ -1264,7 +1264,6 @@ BrowserProcessImpl::component_updater() { +@@ -1261,7 +1261,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -180,7 +181,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 -@@ -460,11 +460,6 @@ void ProcessSingletonNotificationCallbackImpl( +@@ -455,11 +455,6 @@ void ProcessSingletonNotificationCallbackImpl( StartupBrowserCreator::ProcessCommandLineAlreadyRunning( command_line, current_directory, startup_profile_path_info); @@ -192,7 +193,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1723,11 +1718,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1732,11 +1727,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif @@ -207,7 +208,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 -@@ -2966,7 +2966,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -3099,7 +3099,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForceAppMode, #endif switches::kForceUIDirection, @@ -215,7 +216,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5708,7 +5707,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { +@@ -5857,7 +5856,8 @@ GetClientDataHeader(content::FrameTreeNodeId frame_tree_node_id) { } #endif @@ -225,7 +226,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 -@@ -5748,7 +5748,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5897,7 +5897,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -234,7 +235,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -5805,15 +5805,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5954,15 +5954,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -250,7 +251,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -5858,20 +5849,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -6007,20 +5998,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( Profile* profile = Profile::FromBrowserContext(browser_context); DCHECK(profile); @@ -362,7 +363,7 @@ diff --git a/chrome/browser/enterprise/connectors/device_trust/key_management/br 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 -@@ -521,7 +521,6 @@ source_set("extensions") { +@@ -527,7 +527,6 @@ source_set("extensions") { "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/extensions/api:api_registration", "//chrome/browser/favicon", @@ -406,7 +407,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log diff --git a/chrome/browser/first_run/first_run.cc b/chrome/browser/first_run/first_run.cc --- a/chrome/browser/first_run/first_run.cc +++ b/chrome/browser/first_run/first_run.cc -@@ -296,14 +296,6 @@ void SetupInitialPrefsFromInstallPrefs( +@@ -497,14 +497,6 @@ void SetupInitialPrefsFromInstallPrefs( // -- Platform-specific functions -- @@ -445,7 +446,7 @@ diff --git a/chrome/browser/google/BUILD.gn b/chrome/browser/google/BUILD.gn diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc --- a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc +++ b/chrome/browser/long_screenshots/long_screenshots_tab_service.cc -@@ -36,13 +36,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB. +@@ -37,13 +37,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB. // Host/regex pattern for Google AMP Cache URLs. // See https://developers.google.com/amp/cache/overview#amp-cache-url-format // for a definition of the format of AMP Cache URLs. @@ -459,7 +460,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c const char kGoogleNewsPathPattern[] = "/articles/(.*)"; } // namespace -@@ -231,26 +229,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { +@@ -242,26 +240,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { return false; } @@ -489,7 +490,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 -@@ -618,7 +618,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { +@@ -620,7 +620,7 @@ ChromeMetricsServiceClient::GetNetworkTimeTracker() { } bool ChromeMetricsServiceClient::GetBrand(std::string* brand_code) { @@ -620,7 +621,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 -@@ -931,7 +931,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -927,7 +927,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -631,7 +632,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc --- a/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc +++ b/chrome/browser/new_tab_page/one_google_bar/one_google_bar_loader_impl.cc -@@ -329,10 +329,11 @@ void OneGoogleBarLoaderImpl::SetAdditionalQueryParams( +@@ -324,10 +324,11 @@ void OneGoogleBarLoaderImpl::SetAdditionalQueryParams( } GURL OneGoogleBarLoaderImpl::GetApiUrl() const { @@ -675,7 +676,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( +@@ -170,14 +170,9 @@ void PageLoadMetricsEmbedder::RegisterObservers( tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); tracker->AddObserver(std::make_unique()); @@ -717,7 +718,7 @@ diff --git a/chrome/browser/profile_resetter/profile_resetter.cc b/chrome/browse diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn --- a/chrome/browser/safe_browsing/BUILD.gn +++ b/chrome/browser/safe_browsing/BUILD.gn -@@ -24,7 +24,6 @@ static_library("safe_browsing") { +@@ -27,7 +27,6 @@ static_library("safe_browsing") { "//build:branding_buildflags", "//chrome/app:generated_resources", "//chrome/browser:browser_process", @@ -775,7 +776,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 -@@ -303,7 +303,6 @@ static_library("ui") { +@@ -289,7 +289,6 @@ static_library("ui") { "//chrome/browser/feedback:feedback_impl", "//chrome/browser/file_system_access", "//chrome/browser/fingerprinting_protection", @@ -792,21 +793,21 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "java/src/org/chromium/chrome/browser/omnibox/UrlFocusChangeListener.java", - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeader.java", - "java/src/org/chromium/chrome/browser/omnibox/geo/GeolocationTracker.java", - "java/src/org/chromium/chrome/browser/omnibox/status/PageInfoIphController.java", - "java/src/org/chromium/chrome/browser/omnibox/status/StatusCoordinator.java", - "java/src/org/chromium/chrome/browser/omnibox/status/StatusIconView.java", + "java/src/org/chromium/chrome/browser/omnibox/navattach/AttachmentDetailsFetcher.java", + "java/src/org/chromium/chrome/browser/omnibox/navattach/ComposeBoxQueryControllerBridge.java", + "java/src/org/chromium/chrome/browser/omnibox/navattach/NavigationAttachmentItemProperties.java", diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- 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 -@@ -37,7 +37,6 @@ import org.chromium.chrome.browser.lifecycle.NativeInitObserver; +@@ -36,7 +36,6 @@ import org.chromium.chrome.browser.lifecycle.NativeInitObserver; 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.geo.GeolocationHeader; + import org.chromium.chrome.browser.omnibox.navattach.NavigationAttachmentsCoordinator; 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; -@@ -407,7 +406,6 @@ public class LocationBarCoordinator +@@ -435,7 +434,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -817,7 +818,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 -@@ -58,7 +58,6 @@ import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver; +@@ -59,7 +59,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; @@ -825,28 +826,30 @@ 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; -@@ -317,20 +316,6 @@ class LocationBarMediator +@@ -332,22 +331,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); - if (hasFocus - && mLocationBarDataProvider.hasTab() - && !mLocationBarDataProvider.isIncognito()) { -- if (mTemplateUrlServiceSupplier.hasValue()) { +- TemplateUrlService templateUrlService = mTemplateUrlServiceSupplier.get(); +- if (templateUrlService != null) { - GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); +- mProfileSupplier.get(), templateUrlService); - } else { - mTemplateUrlServiceSupplier.onAvailable( -- (templateUrlService) -> { +- (service) -> { - GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), templateUrlService); +- mProfileSupplier.get(), service); - }); - } +- hintZeroSuggestRefresh(); - } // Focus change caused by a closed tab may result in there not being an active tab. if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -345,8 +330,6 @@ class LocationBarMediator +@@ -362,8 +345,6 @@ class LocationBarMediator mCallbackController.makeCancelable( (templateUrlService) -> { templateUrlService.addObserver(this); @@ -855,7 +858,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow })); mLocationBarLayout.onFinishNativeInitialization(); -@@ -605,9 +588,6 @@ class LocationBarMediator +@@ -625,9 +606,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -865,16 +868,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); -@@ -1703,8 +1683,6 @@ class LocationBarMediator +@@ -1787,7 +1765,6 @@ class LocationBarMediator if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() - && mProfileSupplier.hasValue() - && mTemplateUrlServiceSupplier.hasValue()) { -- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( -- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); + && profile != null + && templateUrlService != null) { +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled(profile, templateUrlService); } } -@@ -1712,7 +1690,6 @@ class LocationBarMediator +@@ -1795,7 +1772,6 @@ class LocationBarMediator public void onPauseWithNative() { OmniboxFeatures.updateLastExitTimestamp(); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { @@ -885,7 +887,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 -@@ -570,12 +570,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -611,12 +611,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. @@ -898,6 +900,25 @@ diff --git a/chrome/browser/ui/webui/new_tab_page/new_tab_page_ui.cc b/chrome/br return source; } +diff --git a/chrome/browser/upgrade_detector/BUILD.gn b/chrome/browser/upgrade_detector/BUILD.gn +--- a/chrome/browser/upgrade_detector/BUILD.gn ++++ b/chrome/browser/upgrade_detector/BUILD.gn +@@ -98,7 +98,6 @@ source_set("impl") { + ] + deps += [ + "//chrome/browser:buildflags", +- "//chrome/browser/google", + "//content/public/browser", + ] + } else { +@@ -200,7 +199,6 @@ source_set("unit_tests") { + + deps += [ + "//base:i18n", +- "//chrome/browser/google", + "//components/enterprise:test_support", + "//components/network_time", + "//content/test:test_support", diff --git a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc --- a/chrome/browser/upgrade_detector/upgrade_detector_impl.cc +++ b/chrome/browser/upgrade_detector/upgrade_detector_impl.cc @@ -917,7 +938,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 -@@ -138,8 +138,6 @@ static_library("common_lib") { +@@ -139,8 +139,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -963,7 +984,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 -@@ -6830,7 +6830,6 @@ test("unit_tests") { +@@ -6882,7 +6882,6 @@ test("unit_tests") { "//chrome/browser/file_system_access:unit_tests", "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", @@ -1681,7 +1702,7 @@ diff --git a/components/search_engines/search_terms_data.cc b/components/search_ diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc --- a/components/search_engines/template_url.cc +++ b/components/search_engines/template_url.cc -@@ -607,11 +607,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -608,11 +608,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { @@ -1747,7 +1768,7 @@ diff --git a/components/search_provider_logos/logo_service_impl.cc b/components/ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_util.cc --- a/components/url_matcher/url_util.cc +++ b/components/url_matcher/url_util.cc -@@ -42,27 +42,15 @@ namespace { +@@ -37,27 +37,15 @@ namespace { // Host/regex pattern for Google AMP Cache URLs. // See https://developers.google.com/amp/cache/overview#amp-cache-url-format // for a definition of the format of AMP Cache URLs. @@ -1775,7 +1796,7 @@ diff --git a/components/url_matcher/url_util.cc b/components/url_matcher/url_uti void ProcessQueryToConditions( url_matcher::URLMatcherConditionFactory* condition_factory, const std::string& query, -@@ -120,87 +108,10 @@ class EmbeddedURLExtractor { +@@ -115,87 +103,10 @@ class EmbeddedURLExtractor { // Implements url_filter::GetEmbeddedURL(). GURL GetEmbeddedURL(const GURL& url) { @@ -1922,7 +1943,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 -@@ -3077,7 +3077,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -3090,7 +3090,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( } #endif // BUILDFLAG(IS_CT_SUPPORTED) diff --git a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch index abf348eb..17489eb2 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -129,7 +129,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -133,7 +133,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { false); #endif registry->RegisterStringPref(prefs::kWebRTCIPHandlingPolicy, @@ -45,7 +45,7 @@ diff --git a/third_party/blink/common/peerconnection/webrtc_ip_handling_policy.c diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -1085,7 +1085,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -1046,7 +1046,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; }