diff --git a/build/RELEASE b/build/RELEASE index e281939a..8d03a3c1 100644 --- a/build/RELEASE +++ b/build/RELEASE @@ -1 +1 @@ -126.0.6478.186 \ No newline at end of file +127.0.6533.57 \ No newline at end of file diff --git a/build/cromite_patches_list.txt b/build/cromite_patches_list.txt index cfda283c..3b10f6e8 100644 --- a/build/cromite_patches_list.txt +++ b/build/cromite_patches_list.txt @@ -49,6 +49,7 @@ Multiple-fingerprinting-mitigations.patch Add-flag-to-configure-maximum-connections-per-host.patch Do-not-ignore-download-location-prompt-setting.patch Add-support-for-writing-URIs.patch +Restore-BookmarkToolbar-setCurrentFolder.patch Add-bookmark-import-export-actions.patch Bookmarks-select-all-menu-entry.patch Add-an-always-incognito-mode.patch @@ -69,7 +70,6 @@ autofill-miscellaneous.patch Enable-native-Android-autofill.patch translate-disable-fetching-of-languages-from-server.patch Offer-builtin-autocomplete-for-chrome-flags.patch -Use-4-tile-rows-never-show-logo.patch Disable-various-metrics.patch Enable-StrictOriginIsolation-and-SitePerProcess.patch Use-64-bit-WebView-processes.patch diff --git a/build/patches/AImageReader-CFI-crash-mitigations.patch b/build/patches/AImageReader-CFI-crash-mitigations.patch index 4fa019dc..eb0792e3 100644 --- a/build/patches/AImageReader-CFI-crash-mitigations.patch +++ b/build/patches/AImageReader-CFI-crash-mitigations.patch @@ -90,7 +90,7 @@ diff --git a/base/android/android_image_reader_compat.h b/base/android/android_i diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -3218,9 +3218,9 @@ +@@ -3281,9 +3281,9 @@ "expiry_milestone": 135 }, { @@ -121,7 +121,7 @@ new file mode 100644 diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json -@@ -2694,6 +2694,22 @@ +@@ -2696,6 +2696,22 @@ "no_downscaled_overlay_promotion" ] }, @@ -168,8 +168,8 @@ diff --git a/gpu/config/gpu_finch_features.h b/gpu/config/gpu_finch_features.h #if BUILDFLAG(IS_ANDROID) +GPU_EXPORT BASE_DECLARE_FEATURE(kAImageReaderMediaPlayer); GPU_EXPORT BASE_DECLARE_FEATURE(kAndroidSurfaceControl); + GPU_EXPORT BASE_DECLARE_FEATURE(kEnableGpuMemoryBufferImplAHB); GPU_EXPORT BASE_DECLARE_FEATURE(kWebViewSurfaceControl); - GPU_EXPORT BASE_DECLARE_FEATURE(kWebViewSurfaceControlForTV); diff --git a/gpu/config/gpu_util.cc b/gpu/config/gpu_util.cc --- a/gpu/config/gpu_util.cc +++ b/gpu/config/gpu_util.cc @@ -217,7 +217,7 @@ diff --git a/gpu/ipc/service/gpu_init.cc b/gpu/ipc/service/gpu_init.cc #endif #if BUILDFLAG(ENABLE_VULKAN) -@@ -723,6 +724,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, +@@ -721,6 +722,13 @@ bool GpuInit::InitializeAndStartSandbox(base::CommandLine* command_line, } #endif // BUILDFLAG(IS_WIN) diff --git a/build/patches/Add-AllowUserCertificates-flag.patch b/build/patches/Add-AllowUserCertificates-flag.patch index ced7b8f6..ca35a310 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 -@@ -231,6 +231,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; +@@ -229,6 +229,7 @@ import org.chromium.content_public.browser.ScreenOrientationProvider; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,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; -@@ -1073,6 +1074,8 @@ public abstract class ChromeActivity +@@ -1070,6 +1071,8 @@ public abstract class ChromeActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); ChromeCachedFlags.getInstance().cacheNativeFlags(); @@ -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 -@@ -139,6 +139,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -144,6 +144,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, &feed::kFeedUserInteractionReliabilityReport, @@ -59,16 +59,16 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_TRANSLATE = "AdaptiveButtonInTopToolbarTranslate"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_ADD_TO_BOOKMARKS = -@@ -536,6 +537,8 @@ public abstract class ChromeFeatureList { - /* defaultValue= */ false, - /* defaultValueInTests= */ true); +@@ -555,6 +556,8 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sAppInfoTabResumptionModule = + newCachedFlag(APP_INFO_TAB_RESUMPTION_MODULE, false); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, false); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sArchiveTabService = newCachedFlag(ARCHIVE_TAB_SERVICE, false); public static final CachedFlag sAsyncNotificationManager = newCachedFlag(ASYNC_NOTIFICATION_MANAGER, false); -@@ -685,6 +688,7 @@ public abstract class ChromeFeatureList { +@@ -704,6 +707,7 @@ public abstract class ChromeFeatureList { public static final List sFlagsCachedFullBrowser = List.of( sAccountReauthenticationRecentTimeWindow, diff --git a/build/patches/Add-IsCleartextPermitted-flag.patch b/build/patches/Add-IsCleartextPermitted-flag.patch index a64d326e..f7453e5a 100644 --- a/build/patches/Add-IsCleartextPermitted-flag.patch +++ b/build/patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -306,6 +306,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -360,6 +360,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch b/build/patches/Add-PartialLowEndModeOnMidRangeDevices-flag.patch index 1f894811..bbdcc823 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 -@@ -91,6 +91,10 @@ BASE_FEATURE(kCollectAndroidFrameTimelineMetrics, +@@ -90,6 +90,10 @@ BASE_FEATURE(kCollectAndroidFrameTimelineMetrics, FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) diff --git a/build/patches/Add-a-flag-to-disable-GamePad-API.patch b/build/patches/Add-a-flag-to-disable-GamePad-API.patch index bd0c5b1e..ddc718ab 100644 --- a/build/patches/Add-a-flag-to-disable-GamePad-API.patch +++ b/build/patches/Add-a-flag-to-disable-GamePad-API.patch @@ -14,7 +14,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 -@@ -7452,9 +7452,9 @@ +@@ -7689,9 +7689,9 @@ "expiry_milestone": 130 }, { @@ -29,7 +29,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -3062,7 +3062,7 @@ const char kResetShortcutCustomizationsDescription[] = +@@ -3109,7 +3109,7 @@ const char kResetShortcutCustomizationsDescription[] = const char kRestrictGamepadAccessName[] = "Restrict gamepad access"; const char kRestrictGamepadAccessDescription[] = @@ -41,7 +41,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti 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 -@@ -65,4 +65,5 @@ bool IsGamepadMultitouchEnabled() { +@@ -64,4 +64,5 @@ 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 2acc89ca..354cb3b0 100644 --- a/build/patches/Add-a-proxy-configuration-page.patch +++ b/build/patches/Add-a-proxy-configuration-page.patch @@ -30,7 +30,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/resources/proxy_config.js | 278 +++++++++++++ chrome/browser/ui/BUILD.gn | 2 + .../webui/chrome_web_ui_controller_factory.cc | 3 + - chrome/browser/ui/webui/proxy_config_ui.cc | 393 ++++++++++++++++++ + chrome/browser/ui/webui/proxy_config_ui.cc | 392 ++++++++++++++++++ chrome/browser/ui/webui/proxy_config_ui.h | 31 ++ chrome/common/webui_url_constants.cc | 4 + chrome/common/webui_url_constants.h | 2 + @@ -40,7 +40,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../proxy_config/proxy_policy_handler.cc | 2 +- net/proxy_resolution/proxy_config.cc | 51 ++- net/proxy_resolution/proxy_config.h | 3 + - 25 files changed, 980 insertions(+), 17 deletions(-) + 25 files changed, 979 insertions(+), 17 deletions(-) create mode 100644 chrome/browser/resources/proxy_config.css create mode 100644 chrome/browser/resources/proxy_config.html create mode 100644 chrome/browser/resources/proxy_config.js @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -78,6 +78,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -74,6 +74,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; @@ -197,7 +197,7 @@ diff --git a/chrome/browser/net/proxy_service_factory.h b/chrome/browser/net/pro diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -193,6 +193,8 @@ +@@ -195,6 +195,8 @@ #include "rlz/buildflags/buildflags.h" #include "services/screen_ai/buildflags/buildflags.h" @@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/background_mode_manager.h" #endif -@@ -1606,6 +1608,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1697,6 +1699,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 -@@ -318,6 +318,8 @@ static_library("ui") { +@@ -327,6 +327,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -673,7 +673,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -50,6 +50,7 @@ +@@ -49,6 +49,7 @@ #include "chrome/browser/ui/webui/ntp_tiles_internals_ui.h" #include "chrome/browser/ui/webui/omnibox/omnibox_ui.h" #include "chrome/browser/ui/webui/policy/policy_ui.h" @@ -681,8 +681,8 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/predictors/predictors_ui.h" #include "chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_internals_ui.h" #include "chrome/browser/ui/webui/segmentation_internals/segmentation_internals_ui.h" -@@ -439,6 +440,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - } +@@ -450,6 +451,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + #endif // BUILDFLAG(IS_CHROMEOS_ASH) if (url.host_piece() == chrome::kChromeUINetExportHost) return &NewWebUI; + if (url.host_piece() == chrome::kChromeUIProxyConfigHost) @@ -694,7 +694,7 @@ diff --git a/chrome/browser/ui/webui/proxy_config_ui.cc b/chrome/browser/ui/webu new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/proxy_config_ui.cc -@@ -0,0 +1,393 @@ +@@ -0,0 +1,392 @@ +/* + This file is part of Bromite. + @@ -895,8 +895,7 @@ new file mode 100644 + state.SetByDottedPath("config.rules.fallback_proxies", base::Value(omitDirect(rules.fallback_proxies.ToPacString()))); + break; + default: -+ NOTREACHED(); -+ break; ++ NOTREACHED_NORETURN(); + } + state.SetByDottedPath("config.rules.type", base::Value(type)); + state.SetByDottedPath("config.rules.bypass_rules", base::Value(rules.bypass_rules.ToString())); @@ -1136,7 +1135,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons const char kChromeUIChromeURLsHost[] = "chrome-urls"; const char kChromeUIChromeURLsURL[] = "chrome://chrome-urls/"; const char kChromeUIComponentsHost[] = "components"; -@@ -466,6 +468,7 @@ bool IsSystemWebUIHost(std::string_view host) { +@@ -471,6 +473,7 @@ bool IsSystemWebUIHost(std::string_view host) { kChromeUILockScreenNetworkHost, kChromeUILockScreenStartReauthHost, kChromeUIMobileSetupHost, @@ -1144,7 +1143,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons kChromeUIMultiDeviceSetupHost, kChromeUINetworkHost, kChromeUINotificationTesterHost, -@@ -761,6 +764,7 @@ const char* const kChromeHostURLs[] = { +@@ -766,6 +769,7 @@ const char* const kChromeHostURLs[] = { #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) kChromeUIAppLauncherPageHost, diff --git a/build/patches/Add-an-always-incognito-mode.patch b/build/patches/Add-an-always-incognito-mode.patch index 87d5dc5e..b064cfd1 100644 --- a/build/patches/Add-an-always-incognito-mode.patch +++ b/build/patches/Add-an-always-incognito-mode.patch @@ -117,9 +117,9 @@ 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", -@@ -974,6 +975,7 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java", +@@ -967,6 +968,7 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingType.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingView.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", "java/src/org/chromium/chrome/browser/provider/BaseColumns.java", @@ -170,7 +170,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -77,6 +77,11 @@ found in the LICENSE file. +@@ -82,6 +82,11 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -275,7 +275,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct // Defer initialization of this helper so it triggers after TabModelFilter // observers. UndoRefocusHelper.initialize( -@@ -2445,8 +2454,9 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2033,6 +2034,9 @@ public abstract class ChromeActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -331,7 +331,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App /** * Base implementation of {@link AppMenuPropertiesDelegate} that handles hiding and showing menu * items based on activity state. -@@ -593,6 +599,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -594,6 +600,13 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } private void prepareCommonMenuItems(Menu menu, @MenuGroup int menuGroup, boolean isIncognito) { @@ -345,7 +345,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App // We have to iterate all menu items since same menu item ID may be associated with more // than one menu items. boolean isOverviewModeMenu = menuGroup == MenuGroup.OVERVIEW_MODE_MENU; -@@ -656,7 +669,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -657,7 +670,15 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate } if (item.getItemId() == R.id.recent_tabs_menu_id) { @@ -362,7 +362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App } if (item.getItemId() == R.id.menu_select_tabs) { item.setVisible(isMenuSelectTabsVisible); -@@ -865,8 +886,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -866,8 +887,9 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate && !isNativePage && !isFileScheme && !isContentScheme @@ -477,7 +477,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 -@@ -84,6 +84,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -88,6 +88,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; @@ -487,7 +487,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; -@@ -1337,7 +1340,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1390,7 +1393,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid @Override public boolean isIncognito() { @@ -495,7 +495,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust + return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); } - @Nullable + @Override diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java @@ -550,7 +550,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History // Create PrefChangeRegistrar to receive notifications on preference changes. mPrefChangeRegistrar = new PrefChangeRegistrar(); -@@ -349,7 +351,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver +@@ -347,7 +349,8 @@ public class HistoryContentManager implements SignInStateObserver, PrefObserver mHistoryAdapter.onDestroyed(); mLargeIconBridge.destroy(); mLargeIconBridge = null; @@ -563,7 +563,7 @@ 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 -@@ -54,6 +54,14 @@ import org.chromium.ui.base.Clipboard; +@@ -56,6 +56,14 @@ import org.chromium.ui.base.Clipboard; import java.util.List; @@ -578,7 +578,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History /** Combines and manages the different UI components of browsing history. */ public class HistoryManager implements OnMenuItemClickListener, -@@ -166,7 +174,7 @@ public class HistoryManager +@@ -168,7 +176,7 @@ public class HistoryManager mUmaRecorder.recordOpenHistory(); // If incognito placeholder is shown, we don't need to create History UI elements. @@ -587,7 +587,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History mSelectableListLayout = null; mRootView = getIncognitoHistoryPlaceholderView(); return; -@@ -407,9 +415,22 @@ public class HistoryManager +@@ -420,9 +428,22 @@ public class HistoryManager onBackPressStateChanged(); } @@ -611,7 +611,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; } -@@ -469,7 +490,7 @@ public class HistoryManager +@@ -482,7 +503,7 @@ public class HistoryManager * @return True if manager handles this event, false if it decides to ignore. */ private boolean onBackPressed() { @@ -664,7 +664,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -309,7 +310,8 @@ public class NativePageFactory { +@@ -310,7 +311,8 @@ public class NativePageFactory { String url, NativePage candidatePage, Tab tab, boolean isIncognito, PdfInfo pdfInfo) { NativePage page; @@ -677,7 +677,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java -@@ -38,6 +38,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; +@@ -39,6 +39,15 @@ import org.chromium.components.signin.metrics.SigninAccessPoint; import org.chromium.components.sync.SyncService; import org.chromium.url.GURL; @@ -693,7 +693,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM import java.util.HashMap; import java.util.List; import java.util.Map; -@@ -104,7 +113,8 @@ public class RecentTabsManager +@@ -105,7 +114,8 @@ public class RecentTabsManager Profile profile, Context context, Runnable showHistoryManager) { @@ -703,7 +703,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -270,6 +280,22 @@ public class RecentTabsManager +@@ -273,6 +283,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -895,7 +895,7 @@ new file mode 100644 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 -@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.sync.settings.AccountManagementFragment; +@@ -86,6 +86,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.device_lock.MissingDeviceLockLauncher; @@ -903,20 +903,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; -@@ -372,6 +373,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -374,6 +375,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((PrivacySandboxSettingsBaseFragment) fragment) .setSnackbarManager(getSnackbarManager()); } + if (fragment instanceof INeedSnackbarManager) { + ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); + } - if (fragment instanceof ClearBrowsingDataFragment) { - ((ClearBrowsingDataFragment) fragment).setSnackbarManager(mSnackbarManager); + if (fragment instanceof AccountManagementFragment) { + ((AccountManagementFragment) fragment).setSnackbarManager(mSnackbarManager); } 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 -@@ -24,6 +24,8 @@ import java.util.HashMap; +@@ -22,6 +22,8 @@ import java.util.HashMap; import java.util.List; import java.util.Set; @@ -925,7 +925,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore /** A tab model observer for managing bulk closures. */ public class HistoricalTabModelObserver implements TabModelObserver { private final TabGroupModelFilter mTabGroupModelFilter; -@@ -55,9 +57,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { +@@ -53,9 +55,10 @@ public class HistoricalTabModelObserver implements TabModelObserver { if (tabs.isEmpty() || !canRestore) return; if (tabs.size() == 1) { @@ -1022,8 +1022,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -149,6 +149,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetController; - import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFactory; +@@ -154,6 +154,8 @@ import org.chromium.components.webapps.bottomsheet.PwaBottomSheetControllerFacto + import org.chromium.ui.InsetObserver; import org.chromium.ui.base.ActivityWindowAndroid; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.base.ContextUtils; @@ -1031,7 +1031,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.dragdrop.DragDropGlobalState; import org.chromium.ui.modaldialog.ModalDialogManager; -@@ -1031,7 +1033,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1045,7 +1047,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1085,7 +1085,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -48,6 +48,8 @@ import org.chromium.chrome.features.start_surface.StartSurfaceUserData; +@@ -49,6 +49,8 @@ import org.chromium.chrome.features.start_surface.StartSurfaceUserData; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.content_public.browser.LoadUrlParams; @@ -1093,8 +1093,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer + import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; - import java.io.ByteArrayOutputStream; -@@ -678,6 +680,13 @@ public class TabPersistentStore { + import java.io.DataInputStream; +@@ -764,6 +766,13 @@ public class TabPersistentStore { } } } @@ -1119,7 +1119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.tab_activity_glue.TabReparentingController; import org.chromium.chrome.browser.app.tabmodel.TabWindowManagerSingleton; -@@ -653,7 +654,7 @@ public class ToolbarManager +@@ -650,7 +651,7 @@ public class ToolbarManager TraceEvent.end("isOfflinePage"); return ret; } @@ -1176,9 +1176,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappI diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/android/historical_tab_saver.cc --- a/chrome/browser/android/historical_tab_saver.cc +++ b/chrome/browser/android/historical_tab_saver.cc -@@ -30,6 +30,11 @@ - #include "components/sessions/core/tab_restore_service.h" - #include "content/public/browser/web_contents.h" +@@ -32,6 +32,11 @@ + // Must come after all headers that specialize FromJniType() / ToJniType(). + #include "chrome/android/chrome_jni_headers/HistoricalTabSaverImpl_jni.h" +#include "chrome/common/pref_names.h" +#include "components/prefs/pref_registry_simple.h" @@ -1188,7 +1188,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and using base::android::JavaParamRef; using base::android::JavaRef; using base::android::ScopedJavaLocalRef; -@@ -104,7 +109,8 @@ std::vector> StringsToUuids( +@@ -106,7 +111,8 @@ std::vector> StringsToUuids( void CreateHistoricalTab( TabAndroid* tab_android, @@ -1198,7 +1198,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!tab_android) { return; } -@@ -115,9 +121,14 @@ void CreateHistoricalTab( +@@ -117,9 +123,14 @@ void CreateHistoricalTab( return; } @@ -1215,7 +1215,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and if (!service) { return; } -@@ -183,7 +194,7 @@ void CreateHistoricalBulkClosure( +@@ -185,7 +196,7 @@ void CreateHistoricalBulkClosure( std::vector per_tab_root_id, std::vector> tabs, std::vector web_contents_state) { @@ -1224,7 +1224,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and DCHECK_EQ(root_ids.size(), group_titles.size()); DCHECK_EQ(root_ids.size(), group_colors.size()); DCHECK_EQ(root_ids.size(), optional_tab_group_ids.size()); -@@ -316,11 +327,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( +@@ -318,11 +329,12 @@ static void JNI_HistoricalTabSaverImpl_CreateHistoricalTab( JNIEnv* env, const JavaParamRef& jtab_android, const JavaParamRef& state, @@ -1421,7 +1421,7 @@ diff --git a/chrome/browser/history/history_tab_helper.h b/chrome/browser/histor diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrome/browser/offline_pages/android/offline_page_bridge.cc --- a/chrome/browser/offline_pages/android/offline_page_bridge.cc +++ b/chrome/browser/offline_pages/android/offline_page_bridge.cc -@@ -47,6 +47,9 @@ +@@ -45,6 +45,9 @@ #include "content/public/browser/web_contents.h" #include "net/base/filename_util.h" #include "url/android/gurl_android.h" @@ -1429,9 +1429,9 @@ diff --git a/chrome/browser/offline_pages/android/offline_page_bridge.cc b/chrom +#include "components/prefs/pref_service.h" +#include "chrome/common/pref_names.h" - using base::android::ConvertUTF8ToJavaString; - using base::android::JavaParamRef; -@@ -757,9 +760,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( + // Must come after all headers that specialize FromJniType() / ToJniType(). + #include "chrome/android/chrome_jni_headers/OfflinePageBridge_jni.h" +@@ -758,9 +761,15 @@ void OfflinePageBridge::GetPageByOfflineIdDone( } if (offline_page_model_->IsArchiveInInternalDir(offline_page->file_path)) { @@ -1716,7 +1716,7 @@ diff --git a/chrome/browser/offline_pages/request_coordinator_factory.h b/chrome diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -246,6 +246,7 @@ +@@ -248,6 +248,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1724,7 +1724,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" -@@ -2035,6 +2036,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2126,6 +2127,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1789,7 +1789,7 @@ diff --git a/chrome/browser/profiles/profile_selections.h b/chrome/browser/profi diff --git a/chrome/browser/ui/android/native_page/BUILD.gn b/chrome/browser/ui/android/native_page/BUILD.gn --- a/chrome/browser/ui/android/native_page/BUILD.gn +++ b/chrome/browser/ui/android/native_page/BUILD.gn -@@ -28,6 +28,8 @@ robolectric_library("junit") { +@@ -30,6 +30,8 @@ robolectric_library("junit") { deps = [ ":java", @@ -1809,8 +1809,8 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ + /** An interface for pages that will be using Android views instead of html/rendered Web content. */ public interface NativePage { - /** -@@ -130,7 +132,9 @@ public interface NativePage { + +@@ -157,7 +159,9 @@ public interface NativePage { * @return Whether the URL would navigate to a native page. */ static boolean isNativePageUrl(GURL url, boolean isIncognito, boolean isPdf) { @@ -1821,7 +1821,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -140,7 +144,7 @@ public interface NativePage { +@@ -167,7 +171,7 @@ public interface NativePage { * not have chrome or chrome-native scheme. */ static boolean isChromePageUrl(GURL url, boolean isIncognito) { @@ -1830,7 +1830,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -152,11 +156,12 @@ public interface NativePage { +@@ -179,11 +183,12 @@ public interface NativePage { */ // TODO(crbug.com/40549331) - Convert to using GURL. static @NativePageType int nativePageType( @@ -1845,7 +1845,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -167,9 +172,10 @@ public interface NativePage { +@@ -194,9 +199,10 @@ public interface NativePage { * @return Type of the native page defined in {@link NativePageType}. */ private static @NativePageType int nativePageType( @@ -1858,7 +1858,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } if (candidatePage != null && candidatePage.getUrl().equals(url.getSpec())) { -@@ -187,7 +193,7 @@ public interface NativePage { +@@ -214,7 +220,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1867,7 +1867,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) -@@ -207,7 +213,8 @@ public interface NativePage { +@@ -234,7 +240,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1880,7 +1880,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1270,6 +1270,37 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1296,6 +1296,37 @@ Your Google account may have other forms of browsing history like searches and a Deletes history from all synced devices @@ -1986,7 +1986,7 @@ new file mode 100644 diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -4035,6 +4035,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4077,6 +4077,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2080,7 +2080,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 -@@ -84,6 +84,7 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -83,6 +83,7 @@ class HostContentSettingsMap : public content_settings::Observer, // profile or a guest session. HostContentSettingsMap(PrefService* prefs, bool is_off_the_record, @@ -2088,7 +2088,7 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. bool store_last_modified, bool restore_session, bool should_record_metrics); -@@ -518,6 +519,8 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -507,6 +508,8 @@ class HostContentSettingsMap : public content_settings::Observer, // Whether this settings map is for an incognito or guest session. bool is_off_the_record_; @@ -2122,7 +2122,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/compone diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omnibox/browser/base_search_provider.cc --- a/components/omnibox/browser/base_search_provider.cc +++ b/components/omnibox/browser/base_search_provider.cc -@@ -351,7 +351,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( +@@ -376,7 +376,7 @@ bool BaseSearchProvider::CanSendSuggestRequestWithoutPageURL( } // Don't make a suggest request if in incognito mode. diff --git a/build/patches/Add-bookmark-import-export-actions.patch b/build/patches/Add-bookmark-import-export-actions.patch index 305a4341..4467b17c 100644 --- a/build/patches/Add-bookmark-import-export-actions.patch +++ b/build/patches/Add-bookmark-import-export-actions.patch @@ -6,7 +6,8 @@ Add bookmark import/export actions in bookmarks activity and page Reduce permissions needed for bookmarks import/export Completely remove contacts picker permission from the file dialog -Requires patch: Adds-support-for-writing-URIs.patch +Requires: Adds-support-for-writing-URIs.patch +Requires: Restore-BookmarkToolbar-setCurrentFolder.patch License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- @@ -19,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../bookmarks/BookmarkManagerCoordinator.java | 9 + .../bookmarks/BookmarkManagerMediator.java | 23 ++ .../browser/bookmarks/BookmarkPage.java | 8 +- - .../browser/bookmarks/BookmarkToolbar.java | 23 ++ + .../browser/bookmarks/BookmarkToolbar.java | 28 ++ .../bookmarks/BookmarkToolbarMediator.java | 4 + .../bookmarks/BookmarkToolbarProperties.java | 8 +- .../bookmarks/BookmarkToolbarViewBinder.java | 6 + @@ -52,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ui/shell_dialogs/select_file_dialog_linux.cc | 4 + ui/shell_dialogs/select_file_dialog_linux.h | 2 + ui/shell_dialogs/select_file_dialog_win.cc | 5 + - 42 files changed, 914 insertions(+), 30 deletions(-) + 42 files changed, 919 insertions(+), 30 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-bookmark-import-export-actions.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/add-bookmark-import-export-actions.inc @@ -196,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkBridge.java -@@ -34,6 +34,48 @@ import org.chromium.url.GURL; +@@ -33,6 +33,48 @@ import org.chromium.url.GURL; import java.util.ArrayList; import java.util.List; @@ -245,7 +246,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Provides the communication channel for Android to fetch and manipulate the bookmark model stored * in native. -@@ -488,6 +530,212 @@ class BookmarkBridge { +@@ -474,6 +516,212 @@ class BookmarkBridge { .getTotalBookmarkCount(mNativeBookmarkBridge, id.getId(), id.getType()); } @@ -458,7 +459,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Synchronously gets a list of bookmarks that match the specified search query. * -@@ -1046,6 +1294,39 @@ class BookmarkBridge { +@@ -1032,6 +1280,39 @@ class BookmarkBridge { BookmarkUtils.clearLastUsedPrefs(); } @@ -498,7 +499,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private static List> createPairsList(int[] left, int[] right) { List> pairList = new ArrayList<>(); for (int i = 0; i < left.length; i++) { -@@ -1114,6 +1395,10 @@ class BookmarkBridge { +@@ -1094,6 +1375,10 @@ class BookmarkBridge { void getChildIds( long nativeBookmarkBridge, long id, int type, List bookmarksList); @@ -532,7 +533,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkManagerCoordinator.java -@@ -48,6 +48,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; +@@ -49,6 +49,8 @@ import org.chromium.components.image_fetcher.ImageFetcher; import org.chromium.components.image_fetcher.ImageFetcherConfig; import org.chromium.components.image_fetcher.ImageFetcherFactory; import org.chromium.ui.KeyboardVisibilityDelegate; @@ -541,7 +542,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; -@@ -300,6 +302,13 @@ public class BookmarkManagerCoordinator +@@ -303,6 +305,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -644,7 +645,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -108,6 +108,17 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -101,6 +101,17 @@ public class BookmarkToolbar extends SelectableListToolbar setOnMenuItemClickListener(dragEnabled ? null : this); } @@ -662,16 +663,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm void setEditButtonVisible(boolean visible) { mEditButtonVisible = visible; getMenu().findItem(R.id.edit_menu_id).setVisible(visible); -@@ -148,6 +159,8 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -177,6 +188,13 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); ++ enableImportExportMenu(); ++ } ++ ++ void enableImportExportMenu() { + getMenu().findItem(R.id.import_menu_id).setVisible(true); + getMenu().findItem(R.id.export_menu_id).setVisible(true); ++ } } void setNavigateBackRunnable(Runnable navigateBackRunnable) { -@@ -167,6 +180,13 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -196,6 +214,13 @@ public class BookmarkToolbar extends SelectableListToolbar @Override public boolean onMenuItemClick(MenuItem menuItem) { hideOverflowMenu(); @@ -685,7 +691,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -182,6 +202,9 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -211,6 +236,9 @@ public class BookmarkToolbar extends SelectableListToolbar protected void showNormalView() { super.showNormalView(); @@ -698,7 +704,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java -@@ -128,6 +128,10 @@ class BookmarkToolbarMediator +@@ -132,6 +132,10 @@ class BookmarkToolbarMediator mBookmarkDelegate = bookmarkDelegate; mModel.set( BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE, this::onNavigateBack); @@ -712,7 +718,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java -@@ -69,6 +69,10 @@ class BookmarkToolbarProperties { +@@ -81,6 +81,10 @@ class BookmarkToolbarProperties { static final WritableObjectPropertyKey NAVIGATE_BACK_RUNNABLE = new WritableObjectPropertyKey<>(); @@ -722,13 +728,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm + new WritableObjectPropertyKey<>(); static final PropertyKey[] ALL_KEYS = { - BOOKMARK_MODEL, -@@ -91,6 +95,8 @@ class BookmarkToolbarProperties { - CHECKED_VIEW_MENU_ID, - MENU_ID_CLICKED_FUNCTION, - NAVIGATE_BACK_RUNNABLE, -- FAKE_SELECTION_STATE_CHANGE -+ FAKE_SELECTION_STATE_CHANGE, + BOOKMARK_OPENER, +@@ -108,6 +112,8 @@ class BookmarkToolbarProperties { + SELECTION_MODE_SHOW_OPEN_IN_INCOGNITO, + SELECTION_MODE_SHOW_MOVE, + SELECTION_MODE_SHOW_MARK_READ, +- SELECTION_MODE_SHOW_MARK_UNREAD ++ SELECTION_MODE_SHOW_MARK_UNREAD, + IMPORT_BOOKMARK_RUNNABLE, + EXPORT_BOOKMARK_RUNNABLE }; @@ -796,7 +802,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat Supplier uma, BottomSheetController sheetController, BrowserControlsManager browserControlsManager, -@@ -232,7 +233,7 @@ public class NativePageFactory { +@@ -233,7 +234,7 @@ public class NativePageFactory { mActivity.getComponentName(), mSnackbarManagerSupplier.get(), tab.getProfile(), @@ -808,7 +814,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -205,6 +205,8 @@ static_library("browser") { +@@ -203,6 +203,8 @@ static_library("browser") { "bluetooth/chrome_bluetooth_delegate_impl_client.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", @@ -817,7 +823,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", -@@ -1982,6 +1984,13 @@ static_library("browser") { +@@ -1935,6 +1937,13 @@ static_library("browser") { ] } @@ -831,7 +837,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3764,8 +3773,6 @@ static_library("browser") { +@@ -3746,8 +3755,6 @@ static_library("browser") { "badging/badge_manager_factory.h", "banners/app_banner_manager_desktop.cc", "banners/app_banner_manager_desktop.h", @@ -843,7 +849,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -61,6 +61,28 @@ +@@ -59,6 +59,28 @@ #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -869,10 +875,10 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse +#include "ui/shell_dialogs/selected_file_info.h" +#include "ui/shell_dialogs/select_file_dialog.h" + - // Must come after other includes, because FromJniType() uses Profile. + // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/BookmarkBridge_jni.h" -@@ -79,12 +101,96 @@ using bookmarks::android::JavaBookmarkIdGetType; +@@ -77,12 +99,96 @@ using bookmarks::android::JavaBookmarkIdGetType; using content::BrowserThread; using power_bookmarks::PowerBookmarkMeta; @@ -969,7 +975,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse class BookmarkTitleComparer { public: explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, -@@ -240,6 +346,10 @@ BookmarkBridge::~BookmarkBridge() { +@@ -223,6 +329,10 @@ BookmarkBridge::~BookmarkBridge() { partner_bookmarks_shim_observation_.Reset(); bookmark_model_observation_.Reset(); profile_observation_.Reset(); @@ -980,7 +986,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse } void BookmarkBridge::Destroy(JNIEnv* env) { -@@ -809,6 +919,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( +@@ -762,6 +872,183 @@ jint BookmarkBridge::GetTotalBookmarkCount( return count; } @@ -1167,15 +1173,15 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -21,6 +21,7 @@ +@@ -20,6 +20,7 @@ + #include "base/strings/utf_string_conversions.h" #include "base/supports_user_data.h" #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h" - #include "chrome/browser/page_image_service/image_service_factory.h" +#include "chrome/browser/bookmarks/bookmark_html_writer.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_observer.h" #include "chrome/browser/reading_list/android/reading_list_manager.h" -@@ -39,6 +40,9 @@ +@@ -37,6 +38,9 @@ #include "components/signin/public/identity_manager/identity_manager.h" #include "url/android/gurl_android.h" @@ -1185,7 +1191,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser class BookmarkBridgeTest; // The delegate to fetch bookmarks information for the Android native -@@ -52,7 +56,8 @@ class BookmarkBridge : public ProfileObserver, +@@ -50,7 +54,8 @@ class BookmarkBridge : public ProfileObserver, public ReadingListManager::Observer, public ReadingListModelObserver, public signin::IdentityManager::Observer, @@ -1195,7 +1201,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser public: // All of the injected pointers must be non-null and must outlive `this`. BookmarkBridge(Profile* profile, -@@ -95,6 +100,12 @@ class BookmarkBridge : public ProfileObserver, +@@ -81,6 +86,12 @@ class BookmarkBridge : public ProfileObserver, bool IsDoingExtensiveChanges(JNIEnv* env); @@ -1208,7 +1214,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser jboolean IsEditBookmarksEnabled(JNIEnv* env); void LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env); -@@ -107,6 +118,15 @@ class BookmarkBridge : public ProfileObserver, +@@ -93,6 +104,15 @@ class BookmarkBridge : public ProfileObserver, jlong id, jint type); @@ -1224,7 +1230,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser void GetAllFoldersWithDepths( JNIEnv* env, const base::android::JavaParamRef& j_folders_obj, -@@ -377,6 +397,9 @@ class BookmarkBridge : public ProfileObserver, +@@ -363,6 +383,9 @@ class BookmarkBridge : public ProfileObserver, void CreateOrDestroyAccountReadingListManagerIfNeeded(); const raw_ptr profile_; // weak @@ -1234,7 +1240,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaGlobalRef java_bookmark_model_; const raw_ptr bookmark_model_; // weak const raw_ptr -@@ -393,6 +416,7 @@ class BookmarkBridge : public ProfileObserver, +@@ -377,6 +400,7 @@ class BookmarkBridge : public ProfileObserver, std::unique_ptr grouped_bookmark_actions_; PrefChangeRegistrar pref_change_registrar_; @@ -1242,7 +1248,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. -@@ -424,6 +448,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -408,6 +432,10 @@ class BookmarkBridge : public ProfileObserver, bool suppress_observer_notifications_ = false; @@ -1359,21 +1365,21 @@ 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 -@@ -179,6 +179,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -188,6 +188,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCacheActivityTaskID, &kCastDeviceFilter, - &kClearOmniboxFocusAfterNavigation, + &kCCTAuthView, + &kBookmarksExportUseSaf, &kCCTBeforeUnload, &kCCTClientDataHeader, - &kCCTEmbedderSpecialBehaviorTrigger, + &kCCTExtendTrustedCdnPublisher, 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 -@@ -503,6 +503,7 @@ public abstract class ChromeFeatureList { - "UseLibunwindstackNativeUnwinderAndroid"; +@@ -517,6 +517,7 @@ public abstract class ChromeFeatureList { public static final String VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR = "VerticalAutomotiveBackButtonToolbar"; + public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; + public static final String BOOKMARKS_EXPORT_USESAF = "BookmarksExportUseSaf"; public static final String VOICE_SEARCH_AUDIO_CAPTURE_POLICY = "VoiceSearchAudioCapturePolicy"; public static final String WEB_APK_ALLOW_ICON_UPDATE = "WebApkAllowIconUpdate"; @@ -1431,9 +1437,9 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro + public static final String BOOKMARKS_LAST_EXPORT_URI = + "Chrome.Bookmarks.Last_Export_Uri"; - /** - * Whether Chrome is set as the default browser. -@@ -912,6 +914,7 @@ public final class ChromePreferenceKeys { + /** Whether Chrome is set as the default browser. Default value is false. */ + public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; +@@ -921,6 +923,7 @@ public final class ChromePreferenceKeys { AUTOFILL_ASSISTANT_PROACTIVE_HELP_ENABLED, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1444,7 +1450,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 -@@ -250,6 +250,24 @@ CHAR_LIMIT guidelines: +@@ -245,6 +245,24 @@ CHAR_LIMIT guidelines: Sites @@ -1472,7 +1478,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn --- a/chrome/common/BUILD.gn +++ b/chrome/common/BUILD.gn -@@ -398,6 +398,9 @@ static_library("common_lib") { +@@ -395,6 +395,9 @@ static_library("common_lib") { sources += [ "media/chrome_media_drm_bridge_client.cc", "media/chrome_media_drm_bridge_client.h", @@ -1746,7 +1752,7 @@ diff --git a/ui/android/java/strings/android_ui_strings.grd b/ui/android/java/st diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_file_dialog.h --- a/ui/shell_dialogs/select_file_dialog.h +++ b/ui/shell_dialogs/select_file_dialog.h -@@ -199,6 +199,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog +@@ -209,6 +209,8 @@ class SHELL_DIALOGS_EXPORT SelectFileDialog const GURL* caller = nullptr); bool HasMultipleFileTypeChoices(); @@ -1758,7 +1764,7 @@ diff --git a/ui/shell_dialogs/select_file_dialog.h b/ui/shell_dialogs/select_fil diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc -@@ -137,6 +137,12 @@ void SelectFileDialogImpl::SelectFileImpl( +@@ -139,6 +139,12 @@ void SelectFileDialogImpl::SelectFileImpl( owning_window->GetJavaObject()); } diff --git a/build/patches/Add-cromite-flags-support.patch b/build/patches/Add-cromite-flags-support.patch index 6a686efc..fb9a1b65 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/BUILD.gn | 4 +- base/android/feature_map.cc | 5 + .../base/cached_flags/CachedFlag.java | 8 +- - base/feature_list.cc | 78 +++++++++ + base/feature_list.cc | 76 +++++++++ base/feature_list.h | 72 ++++++++- build/android/gyp/java_cpp_features.py | 17 ++ chrome/android/java/res/values/values.xml | 3 + @@ -46,7 +46,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/components_strings.grd | 1 + .../content_settings/core/common/features.cc | 1 + .../placeholder.txt | 1 + - components/flags_ui/flags_state.cc | 56 ++++++- + components/flags_ui/flags_state.cc | 55 ++++++- components/flags_ui/resources/app.html | 42 ++++- components/flags_ui/resources/app.ts | 41 ++++- components/flags_ui/resources/experiment.html | 7 +- @@ -90,7 +90,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/public/cpp/features.h | 1 + third_party/blink/common/features.cc | 1 + third_party/blink/public/common/features.h | 1 + - 76 files changed, 741 insertions(+), 22 deletions(-) + 76 files changed, 738 insertions(+), 22 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/placeholder.txt @@ -122,7 +122,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 -@@ -220,6 +220,8 @@ buildflag_header("message_pump_buildflags") { +@@ -202,6 +202,8 @@ buildflag_header("message_pump_buildflags") { # 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") { @@ -131,7 +131,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1071,7 +1073,7 @@ component("base") { +@@ -1054,7 +1056,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -143,7 +143,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/base/android/feature_map.cc b/base/android/feature_map.cc --- a/base/android/feature_map.cc +++ b/base/android/feature_map.cc -@@ -43,6 +43,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( +@@ -45,6 +45,11 @@ const Feature* FeatureMap::FindFeatureExposedToJava( static jboolean JNI_FeatureMap_IsEnabled(JNIEnv* env, jlong jfeature_map, std::string& feature_name) { @@ -167,8 +167,8 @@ diff --git a/base/android/java/src/org/chromium/base/cached_flags/CachedFlag.jav // Create the key only once to avoid String concatenation every flag check. if (mPreferenceKey == null) { mPreferenceKey = CachedFlagsSharedPreferences.FLAGS_CACHED.createKey(mFeatureName); -@@ -174,6 +174,12 @@ public class CachedFlag extends Flag { - .removeKeysWithPrefix(CachedFlagsSharedPreferences.FLAGS_CACHED); +@@ -169,6 +169,12 @@ public class CachedFlag extends Flag { + } } + public void setValueReturnedOverride(@Nullable Boolean value) { @@ -215,7 +215,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc namespace { // Pointer to the FeatureList instance singleton that was set via -@@ -472,6 +497,48 @@ bool FeatureList::IsEnabled(const Feature& feature) { +@@ -472,6 +497,46 @@ bool FeatureList::IsEnabled(const Feature& feature) { return g_feature_list_instance->IsFeatureEnabled(feature); } @@ -236,8 +236,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return key; + } + } -+ NOTREACHED(); -+ return nullptr; ++ NOTREACHED_NORETURN(); +} + +// static @@ -257,14 +256,13 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc + return value == base::FEATURE_ENABLED_BY_DEFAULT; + } + } -+ NOTREACHED(); -+ return false; ++ NOTREACHED_NORETURN(); +} + // static bool FeatureList::IsValidFeatureOrFieldTrialName(std::string_view name) { return IsStringASCII(name) && name.find_first_of(",<*") == std::string::npos; -@@ -718,6 +785,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { +@@ -718,6 +783,17 @@ void FeatureList::VisitFeaturesAndParams(FeatureVisitor& visitor) { void FeatureList::FinalizeInitialization() { DCHECK(!initialized_); @@ -430,7 +428,7 @@ diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -70,6 +70,10 @@ found in the LICENSE file. +@@ -75,6 +75,10 @@ found in the LICENSE file. android:title="@string/tabgrid_use_icons_title" android:summary="@string/tabgrid_use_icons_summary" android:defaultValue="false" /> @@ -485,7 +483,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 -@@ -128,7 +128,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -127,7 +127,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_HISTORY_EXPIRE_DAYS_THRESHOLD = "history_expire_days_threshold"; @Override @@ -505,7 +503,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -@@ -84,6 +85,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; +@@ -85,6 +86,7 @@ import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher; import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; @@ -513,7 +511,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; -@@ -124,6 +126,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -126,6 +128,36 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable, DisplayStyleObserver { @@ -550,7 +548,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"; -@@ -377,6 +409,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -379,6 +411,10 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity ((AccessibilitySettings) fragment) .getDelegate()).setSnackbarManager(mSnackbarManager); } @@ -558,13 +556,13 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin + ((ChromeBaseSettingsFragment)fragment).setRequestRestartDelegate( + new RequestRestartDelegate(mSnackbarManager, this)); + } - if (fragment instanceof ClearBrowsingDataFragment) { - ((ClearBrowsingDataFragment) fragment).setSnackbarManager(mSnackbarManager); + if (fragment instanceof AccountManagementFragment) { + ((AccountManagementFragment) fragment).setSnackbarManager(mSnackbarManager); } 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 -@@ -372,6 +372,10 @@ using flags_ui::kOsLinux; +@@ -376,6 +376,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -575,9 +573,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -3815,6 +3819,10 @@ const FeatureEntry::FeatureVariation kComposeProactiveNudgeVariations[] = { - std::size(kComposeProactiveNudge_LargeUI_100), nullptr}}; - #endif // ENABLE_COMPOSE +@@ -4076,6 +4080,10 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = { + kAutofillUpstreamUpdatedUi_Education_Animated, + std::size(kAutofillUpstreamUpdatedUi_Education_Animated), nullptr}}; +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -586,7 +584,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. -@@ -3841,6 +3849,9 @@ const FeatureEntry::FeatureVariation kComposeProactiveNudgeVariations[] = { +@@ -4102,6 +4110,9 @@ const FeatureEntry::FeatureVariation kAutofillUpstreamUpdatedUiOptions[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -599,9 +597,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/browser_features.cc b/chrome/browser/browser_features.cc --- a/chrome/browser/browser_features.cc +++ b/chrome/browser/browser_features.cc -@@ -415,4 +415,5 @@ BASE_FEATURE(kWebUsbDeviceDetection, - "WebUsbDeviceDetection", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -401,4 +401,5 @@ BASE_FEATURE(kBrowserDynamicCodeDisabled, + base::FEATURE_DISABLED_BY_DEFAULT); + #endif // BUILDFLAG(IS_WIN) +#include "cromite_flags/chrome_browser_browser_features_cc.inc" } // namespace features @@ -647,7 +645,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 -@@ -1002,5 +1002,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate, +@@ -1036,5 +1036,6 @@ BASE_FEATURE(kWebApkAllowIconUpdate, "WebApkAllowIconUpdate", base::FEATURE_DISABLED_BY_DEFAULT); @@ -657,7 +655,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 -@@ -189,6 +189,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( +@@ -193,6 +193,7 @@ constexpr base::FeatureParam kAuxiliarySearchMaxTabsCountParam( "auxiliary_search_max_donation_tab", 100); @@ -679,7 +677,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f import java.util.List; import java.util.Map; -@@ -700,7 +704,7 @@ public abstract class ChromeFeatureList { +@@ -719,7 +723,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sVerticalAutomotiveBackButtonToolbar = newCachedFlag(VERTICAL_AUTOMOTIVE_BACK_BUTTON_TOOLBAR, true); @@ -688,7 +686,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f List.of( sAccountReauthenticationRecentTimeWindow, sAllowUserCertificates, -@@ -793,6 +797,13 @@ public abstract class ChromeFeatureList { +@@ -816,6 +820,13 @@ public abstract class ChromeFeatureList { sUseLibunwindstackNativeUnwinderAndroid, sVerticalAutomotiveBackButtonToolbar); @@ -855,7 +853,7 @@ 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 -@@ -537,4 +537,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, +@@ -517,4 +517,5 @@ BASE_FEATURE(kStopLoadingAnimationForHiddenWindow, "StopLoadingAnimationForHiddenWindow", base::FEATURE_ENABLED_BY_DEFAULT); @@ -864,7 +862,7 @@ diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.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 -@@ -1655,4 +1655,5 @@ BASE_FEATURE(kEventBasedLogUpload, +@@ -1674,4 +1674,5 @@ BASE_FEATURE(kEventBasedLogUpload, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_CHROMEOS_ASH) @@ -907,9 +905,9 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium +import androidx.annotation.Nullable; +import android.content.res.TypedArray; + - import androidx.annotation.ColorRes; + import androidx.annotation.ColorInt; + import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; - import androidx.appcompat.content.res.AppCompatResources; @@ -31,6 +34,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { /** Indicates if the preference uses a custom layout. */ private final boolean mHasCustomLayout; @@ -949,13 +947,13 @@ 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 -@@ -118,5 +118,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap, +@@ -113,5 +113,6 @@ BASE_FEATURE(kIndexedHostContentSettingsMap, "IndexedHostContentSettingsMap", base::FEATURE_ENABLED_BY_DEFAULT); @@ -971,7 +969,7 @@ new file mode 100644 diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_state.cc --- a/components/flags_ui/flags_state.cc +++ b/components/flags_ui/flags_state.cc -@@ -359,7 +359,22 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( +@@ -359,7 +359,21 @@ void FlagsState::GetSwitchesAndFeaturesFromFlags( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); @@ -989,15 +987,14 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat + continue; + } + } -+ NOTREACHED(); -+ continue; ++ NOTREACHED_NORETURN(); + } const SwitchEntry& entry = entry_it->second; if (!entry.switch_name.empty()) -@@ -668,6 +683,27 @@ void FlagsState::GetFlagFeatureEntries( - bool is_default_value = IsDefaultValue(entry, enabled_entries); - data.Set("is_default", is_default_value); +@@ -676,6 +690,27 @@ void FlagsState::GetFlagFeatureEntries( + data.Set("links", std::move(links)); + } + if (entry.type == FeatureEntry::FEATURE_VALUE + || entry.type == FeatureEntry::FEATURE_WITH_PARAMS_VALUE) { @@ -1023,7 +1020,7 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat switch (entry.type) { case FeatureEntry::SINGLE_VALUE: case FeatureEntry::SINGLE_DISABLE_VALUE: -@@ -796,6 +832,16 @@ void FlagsState::AddSwitchesToCommandLine( +@@ -804,6 +839,16 @@ void FlagsState::AddSwitchesToCommandLine( for (const std::string& entry_name : enabled_entries) { const auto& entry_it = name_to_switch_map.find(entry_name); if (entry_it == name_to_switch_map.end()) { @@ -1037,10 +1034,10 @@ diff --git a/components/flags_ui/flags_state.cc b/components/flags_ui/flags_stat + continue; + } + } - NOTREACHED(); + NOTREACHED_IN_MIGRATION(); continue; } -@@ -1048,6 +1094,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( +@@ -1056,6 +1101,14 @@ const FeatureEntry* FlagsState::FindFeatureEntryByName( bool FlagsState::IsSupportedFeature(const FlagsStorage* storage, const std::string& name, int platform_mask) const { @@ -1138,7 +1135,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource private announceStatusDelayMs: number = 100; private featuresResolver: PromiseResolver = new PromiseResolver(); private flagSearch: FlagSearch = new FlagSearch(this); -@@ -205,6 +206,10 @@ export class FlagsAppElement extends CustomElement { +@@ -209,6 +210,10 @@ export class FlagsAppElement extends CustomElement { // tabs: Tab[] = [ @@ -1149,7 +1146,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource { tabEl: this.getRequiredElement('#tab-available'), panelEl: this.getRequiredElement('#tab-content-available'), -@@ -218,6 +223,11 @@ export class FlagsAppElement extends CustomElement { +@@ -222,6 +227,11 @@ export class FlagsAppElement extends CustomElement { ]; connectedCallback() { @@ -1158,10 +1155,10 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource + this.getRequiredElement("#appcontainer").classList.add('cromite'); + document.title = "Cromite Flags List"; + } - // Get and display the data upon loading. - this.requestExperimentalFeaturesData(); - // There is no restart button on iOS. -@@ -278,20 +288,29 @@ export class FlagsAppElement extends CustomElement { + // + const pathname = new URL(window.location.href).pathname; + this.isFlagsDeprecatedUrl_ = +@@ -306,20 +316,29 @@ export class FlagsAppElement extends CustomElement { const defaultFeatures: Feature[] = []; const nonDefaultFeatures: Feature[] = []; @@ -1194,7 +1191,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource // this.showRestartToast(experimentalFeaturesData.needsRestart); -@@ -402,16 +421,23 @@ export class FlagsAppElement extends CustomElement { +@@ -438,16 +457,23 @@ export class FlagsAppElement extends CustomElement { } private renderExperiments( @@ -1219,7 +1216,7 @@ diff --git a/components/flags_ui/resources/app.ts b/components/flags_ui/resource if (select) { experiment.addEventListener('select-change', e => { e.preventDefault(); -@@ -435,9 +461,14 @@ export class FlagsAppElement extends CustomElement { +@@ -471,9 +497,14 @@ export class FlagsAppElement extends CustomElement { this.showRestartToast(true); }); } @@ -1305,7 +1302,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r const description = this.getRequiredElement('.description'); description.textContent = feature.description; -@@ -125,6 +136,7 @@ export class FlagsExperimentElement extends CustomElement { +@@ -134,6 +145,7 @@ export class FlagsExperimentElement extends CustomElement { const permalink = this.getRequiredElement('.permalink'); permalink.href = `#${feature.internal_name}`; permalink.textContent = `#${feature.internal_name}`; @@ -1313,7 +1310,7 @@ diff --git a/components/flags_ui/resources/experiment.ts b/components/flags_ui/r const smallScreenCheck = window.matchMedia('(max-width: 480px)'); // Toggling of experiment description overflow content on smaller screens. -@@ -153,6 +165,10 @@ export class FlagsExperimentElement extends CustomElement { +@@ -162,6 +174,10 @@ export class FlagsExperimentElement extends CustomElement { const optionEl = document.createElement('option'); optionEl.selected = option.selected; optionEl.textContent = option.description; @@ -1362,7 +1359,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -142,6 +142,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, +@@ -149,6 +149,7 @@ BASE_FEATURE(kCpssQuietChipTextUpdate, "CpssQuietChipTextUpdate", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1385,7 +1382,7 @@ diff --git a/components/version_ui/version_handler_helper.cc b/components/versio diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -543,4 +543,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, +@@ -579,4 +579,5 @@ BASE_FEATURE(kWindowOpenFileSelectFix, // Please keep features in alphabetical order. @@ -1394,7 +1391,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 -@@ -1286,4 +1286,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { +@@ -1295,4 +1295,5 @@ bool IsVideoCaptureServiceEnabledForBrowserProcess() { VideoCaptureServiceConfiguration::kEnabledForBrowserProcess; } @@ -1403,7 +1400,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 -@@ -280,6 +280,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); +@@ -286,6 +286,7 @@ CONTENT_EXPORT BASE_DECLARE_FEATURE(kWebRtcPipeWireCapturer); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); @@ -1701,7 +1698,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 -@@ -1934,5 +1934,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1904,5 +1904,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -1711,7 +1708,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 -@@ -582,5 +582,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); +@@ -576,5 +576,5 @@ MEDIA_EXPORT OOPVDMode GetOutOfProcessVideoDecodingMode(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -1721,8 +1718,8 @@ 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 -@@ -549,4 +549,5 @@ BASE_FEATURE(kStoreConnectionSubtype, - "StoreConnectionSubtype", +@@ -550,4 +550,5 @@ BASE_FEATURE(kSpdySessionForProxyAdditionalChecks, + "SpdySessionForProxyAdditionalChecks", base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/net_base_features_cc.inc" @@ -1730,9 +1727,9 @@ diff --git a/net/base/features.cc b/net/base/features.cc diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -530,6 +530,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDeviceBoundSessions); - // save the cost of the JNI call for future access. - NET_EXPORT BASE_DECLARE_FEATURE(kStoreConnectionSubtype); +@@ -522,6 +522,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kStorageAccessHeaders); + // not causing any problems. + NET_EXPORT BASE_DECLARE_FEATURE(kSpdySessionForProxyAdditionalChecks); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -1741,28 +1738,28 @@ 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 -@@ -483,4 +483,5 @@ BASE_FEATURE(kDocumentIsolationPolicy, - "DocumentIsolationPolicy", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -518,4 +518,5 @@ const base::FeatureParam kNetworkContextPrefetchMaxLoaders{ + &kNetworkContextPrefetch, + /*name=*/"max_loaders", /*default_value=*/10}; +#include "cromite_flags/services_network_public_cpp_features_cc.inc" } // namespace network::features diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h --- a/services/network/public/cpp/features.h +++ b/services/network/public/cpp/features.h -@@ -195,6 +195,7 @@ BASE_DECLARE_FEATURE(kAvoidResourceRequestCopies); - - COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kDocumentIsolationPolicy); +@@ -212,6 +212,7 @@ BASE_DECLARE_FEATURE(kNetworkContextPrefetch); + COMPONENT_EXPORT(NETWORK_CPP) + extern const base::FeatureParam kNetworkContextPrefetchMaxLoaders; +#include "cromite_flags/services_network_public_cpp_features_h.inc" - } // namespace features - } // namespace network + } // namespace network::features + #endif // SERVICES_NETWORK_PUBLIC_CPP_FEATURES_H_ 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 -@@ -2647,5 +2647,6 @@ BASE_FEATURE(kRenderSizeInScoreAdBrowserSignals, - "RenderSizeInScoreAdBrowserSignals", +@@ -2678,5 +2678,6 @@ BASE_FEATURE(kOptimizeLoadingDataUrls, + "OptimizeLoadingDataUrls", base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/third_party_blink_common_features_cc.inc" @@ -1771,9 +1768,9 @@ 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 -@@ -1712,6 +1712,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kNoThrottlingVisibleAgent); - // https://github.com/WICG/turtledove/blob/main/FLEDGE.md#23-scoring-bids - BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals); +@@ -1747,6 +1747,7 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kRenderSizeInScoreAdBrowserSignals); + // Optimize loading data: URLs. + BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kOptimizeLoadingDataUrls); +#include "cromite_flags/third_party_blink_common_features_h.inc" } // namespace features diff --git a/build/patches/Add-custom-tab-intents-privacy-option.patch b/build/patches/Add-custom-tab-intents-privacy-option.patch index eb1ea6e6..052e21d3 100644 --- a/build/patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/patches/Add-custom-tab-intents-privacy-option.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/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -54,6 +54,16 @@ found in the LICENSE file. +@@ -59,6 +59,16 @@ found in the LICENSE file. android:key="do_not_track" android:title="@string/do_not_track_title" android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> @@ -98,7 +98,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/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 -@@ -853,6 +853,7 @@ public class CustomTabsConnection { +@@ -867,6 +867,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/IncognitoCustomTabIntentDataProvider.java -@@ -39,6 +39,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito and ephemeral Custom Tabs specific * customization data. -@@ -125,6 +128,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -130,6 +133,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -132,9 +132,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -103,6 +103,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - +@@ -101,6 +101,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private IncognitoLockSettings mIncognitoLockSettings; + private SettingsLauncher mSettingsLauncher; + private ChromeSwitchPreference allowCustomTabIntentsPref; + private ChromeSwitchPreference openExternalLinksPref; @@ -142,7 +142,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -299,6 +302,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -319,6 +322,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment new SpanApplier.SpanInfo("", "", servicesLink)); } @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { String key = preference.getKey(); -@@ -315,6 +321,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -335,6 +341,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue); @@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -337,6 +351,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -357,6 +371,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment UserPrefs.get(getProfile()).getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED)); } @@ -203,7 +203,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso 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 -@@ -5301,6 +5301,20 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5454,6 +5454,20 @@ To change this setting, BEGIN_LINKdelete the Chrome d Resume diff --git a/build/patches/Add-exit-menu-item.patch b/build/patches/Add-exit-menu-item.patch index 204932cf..7b4f857a 100644 --- a/build/patches/Add-exit-menu-item.patch +++ b/build/patches/Add-exit-menu-item.patch @@ -58,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife 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 -@@ -267,6 +267,8 @@ import java.util.Set; +@@ -268,6 +268,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.DoubleConsumer; @@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct /** * This is the main activity for ChromeMobile when not running in document mode. All the tabs are * accessible via a chrome specific tab switching UI. -@@ -2952,6 +2954,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2597,6 +2598,11 @@ public abstract class ChromeActivity return true; } @@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv 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 -@@ -3922,6 +3922,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4063,6 +4063,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch index ad440cc8..dfceddc8 100644 --- a/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -92,7 +92,7 @@ new file mode 100644 diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket_pool_manager.cc --- a/net/socket/client_socket_pool_manager.cc +++ b/net/socket/client_socket_pool_manager.cc -@@ -22,6 +22,10 @@ +@@ -26,6 +26,10 @@ #include "net/socket/client_socket_handle.h" #include "net/socket/client_socket_pool.h" #include "net/socket/connect_job.h" @@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket #include "net/ssl/ssl_config.h" #include "url/gurl.h" #include "url/scheme_host_port.h" -@@ -168,6 +172,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -172,6 +176,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); diff --git a/build/patches/Add-flag-to-disable-IPv6-probes.patch b/build/patches/Add-flag-to-disable-IPv6-probes.patch index d404ca7d..fd65a850 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 -@@ -1045,6 +1045,7 @@ component("net") { +@@ -1047,6 +1047,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//net/http:transport_security_state_generated_files", diff --git a/build/patches/Add-flag-to-disable-vibration.patch b/build/patches/Add-flag-to-disable-vibration.patch index edd5a056..9d4b7e34 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 -@@ -663,6 +663,10 @@ +@@ -672,6 +672,10 @@ status: {"Android": "stable"}, base_feature: "none", }, diff --git a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch index 916274d6..a508e05e 100644 --- a/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch +++ b/build/patches/Add-kill-switch-for-unsupported-clangd-flags.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn -@@ -1901,7 +1901,6 @@ config("default_warnings") { +@@ -1920,7 +1920,6 @@ config("default_warnings") { # TODO(crbug.com/40284799): Fix and re-enable. "-Wno-thread-safety-reference-return", ] @@ -22,9 +22,9 @@ 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", -@@ -1913,6 +1912,15 @@ config("default_warnings") { - "-Wno-c++11-narrowing-const-reference", - ] +@@ -1937,6 +1936,15 @@ config("default_warnings") { + cflags_cc += [ "-Wno-missing-template-arg-list-after-template-kw" ] + } } + if (skip_clangd_unsupported_options) { + cflags -= [ @@ -41,7 +41,7 @@ diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -58,6 +58,9 @@ declare_args() { +@@ -54,6 +54,9 @@ declare_args() { # to lack of toolchain support. gtest_enable_absl_printers = !is_nacl diff --git a/build/patches/Add-lifetime-options-for-permissions.patch b/build/patches/Add-lifetime-options-for-permissions.patch index 8208eb58..df6a08fd 100644 --- a/build/patches/Add-lifetime-options-for-permissions.patch +++ b/build/patches/Add-lifetime-options-for-permissions.patch @@ -57,6 +57,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../one_time_permissions_tracker.h | 5 +- .../one_time_permissions_tracker_factory.cc | 2 +- .../permissions/embedded_permission_prompt.cc | 2 +- + ...exclusive_access_permission_prompt_view.cc | 2 +- .../permission_prompt_bubble_base_view.cc | 2 +- .../site_settings/PermissionInfo.java | 1 + .../site_settings/SingleWebsiteSettings.java | 9 ++ @@ -86,7 +87,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/permissions/permission_request.h | 16 +++- .../permissions/permission_request_manager.cc | 45 ++++++---- .../permissions/permission_request_manager.h | 11 ++- - 34 files changed, 488 insertions(+), 61 deletions(-) + 35 files changed, 489 insertions(+), 62 deletions(-) diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/browser/permissions/last_tab_standing_tracker.cc --- a/chrome/browser/permissions/last_tab_standing_tracker.cc @@ -228,19 +229,31 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker_factory.cc diff --git a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc --- a/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc +++ b/chrome/browser/ui/views/permissions/embedded_permission_prompt.cc -@@ -405,7 +405,7 @@ void EmbeddedPermissionPrompt::AllowThisTime() { - PrecalculateVariantsForMetrics(); - RecordPermissionActionUKM( - permissions::ElementAnchoredBubbleAction::kGrantedOnce); -- delegate_->AcceptThisTime(); -+ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); - CloseCurrentViewAndMaybeShowNext(/*first_prompt=*/false); - } - +@@ -658,7 +658,7 @@ void EmbeddedPermissionPrompt::SendDelegateAction(Action action) { + delegate_->Accept(); + break; + case Action::kAllowThisTime: +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); + break; + case Action::kDeny: + delegate_->Deny(); +diff --git a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +--- a/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc ++++ b/chrome/browser/ui/views/permissions/exclusive_access_permission_prompt_view.cc +@@ -99,7 +99,7 @@ void ExclusiveAccessPermissionPromptView::RunButtonCallback(int button_id) { + } + ButtonType button = GetButtonType(button_id); + if (button == ButtonType::kAllowThisTime) { +- delegate_->AcceptThisTime(); ++ delegate_->AcceptThisTime(content_settings::mojom::LifetimeMode::ONLY_THIS_TIME); + } else if (button == ButtonType::kAlwaysAllow) { + delegate_->Accept(); + } else if (button == ButtonType::kNeverAllow) { diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc --- a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc +++ b/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.cc -@@ -263,7 +263,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { +@@ -241,7 +241,7 @@ void PermissionPromptBubbleBaseView::RunButtonCallback(int button_id) { delegate_->Accept(); return; case PermissionDialogButton::kAcceptOnce: @@ -263,7 +276,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -557,6 +557,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -561,6 +561,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } } @@ -275,9 +288,9 @@ 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(); -@@ -1083,6 +1088,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment - if (contentType == mHighlightedPermission) { - switchPreference.setBackgroundColor(mHighlightColor); +@@ -1091,6 +1096,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + AppCompatResources.getColorStateList(getContext(), mHighlightColor) + .getDefaultColor()); } + if (isSessionPermission(contentType)) { + switchPreference.setSummary(switchPreference.getSummary() + " " + @@ -289,7 +302,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 -@@ -197,7 +197,7 @@ void GetOrigins(JNIEnv* env, +@@ -199,7 +199,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -455,7 +468,7 @@ diff --git a/components/page_info/android/java/src/org/chromium/components/page_ diff --git a/components/page_info/android/page_info_controller_android.cc b/components/page_info/android/page_info_controller_android.cc --- a/components/page_info/android/page_info_controller_android.cc +++ b/components/page_info/android/page_info_controller_android.cc -@@ -151,6 +151,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -153,6 +153,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( std::map user_specified_settings_to_display; @@ -464,7 +477,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp for (const auto& permission : permission_info_list) { if (base::Contains(permissions_to_display, permission.type)) { -@@ -159,6 +161,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -161,6 +163,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( if (setting_to_display) { user_specified_settings_to_display[permission.type] = *setting_to_display; @@ -473,7 +486,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } } -@@ -175,7 +179,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -177,7 +181,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( ConvertUTF16ToJavaString(env, setting_title), ConvertUTF16ToJavaString(env, setting_title_mid_sentence), static_cast(permission), @@ -483,7 +496,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp } } -@@ -188,7 +193,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( +@@ -190,7 +195,8 @@ void PageInfoControllerAndroid::SetPermissionInfo( env, controller_jobject_, ConvertUTF16ToJavaString(env, object_title), ConvertUTF16ToJavaString(env, object_title), static_cast(chosen_object->ui_info->content_settings_type), @@ -496,7 +509,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp diff --git a/components/page_info/page_info.cc b/components/page_info/page_info.cc --- a/components/page_info/page_info.cc +++ b/components/page_info/page_info.cc -@@ -1169,6 +1169,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1171,6 +1171,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -654,7 +667,7 @@ diff --git a/components/permissions/android/java/src/org/chromium/components/per diff --git a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc --- a/components/permissions/android/permission_prompt/permission_dialog_delegate.cc +++ b/components/permissions/android/permission_prompt/permission_dialog_delegate.cc -@@ -157,6 +157,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { +@@ -159,6 +159,11 @@ void PermissionDialogJavaDelegate::DismissDialog() { Java_PermissionDialogDelegate_dismissFromNative(env, j_delegate_); } @@ -666,7 +679,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ // static void PermissionDialogDelegate::Create( content::WebContents* web_contents, -@@ -185,6 +190,13 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting( +@@ -187,6 +192,13 @@ PermissionDialogDelegate* PermissionDialogDelegate::CreateForTesting( void PermissionDialogDelegate::Accept(JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -680,7 +693,7 @@ diff --git a/components/permissions/android/permission_prompt/permission_dialog_ permission_prompt_->Accept(); } -@@ -192,12 +204,22 @@ void PermissionDialogDelegate::AcceptThisTime( +@@ -194,12 +206,22 @@ void PermissionDialogDelegate::AcceptThisTime( JNIEnv* env, const JavaParamRef& obj) { CHECK(permission_prompt_); @@ -925,7 +938,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm content::PermissionResult PermissionContextBase::GetPermissionStatus( content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, -@@ -500,7 +511,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -501,7 +512,8 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -935,7 +948,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK(content_setting == CONTENT_SETTING_ALLOW || content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); -@@ -515,13 +527,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, +@@ -516,13 +528,14 @@ void PermissionContextBase::PermissionDecided(const PermissionRequestID& id, // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -954,7 +967,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -586,11 +599,27 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -590,11 +603,27 @@ void PermissionContextBase::NotifyPermissionSet( ContentSetting content_setting, bool is_one_time, bool is_final_decision) { @@ -983,7 +996,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -620,6 +649,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -634,6 +663,15 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time) { @@ -999,7 +1012,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(requesting_origin, requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(embedding_origin, embedding_origin.DeprecatedGetOriginAsURL()); DCHECK(content_setting == CONTENT_SETTING_ALLOW || -@@ -629,6 +667,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, +@@ -643,6 +681,8 @@ void PermissionContextBase::UpdateContentSetting(const GURL& requesting_origin, constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1011,7 +1024,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm diff --git a/components/permissions/permission_context_base.h b/components/permissions/permission_context_base.h --- a/components/permissions/permission_context_base.h +++ b/components/permissions/permission_context_base.h -@@ -159,6 +159,15 @@ class PermissionContextBase : public content_settings::Observer { +@@ -163,6 +163,15 @@ class PermissionContextBase : public content_settings::Observer { // Updates stored content setting if persist is set, updates tab indicators // and runs the callback to finish the request. @@ -1027,7 +1040,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void NotifyPermissionSet(const PermissionRequestID& id, const GURL& requesting_origin, const GURL& embedding_origin, -@@ -180,6 +189,11 @@ class PermissionContextBase : public content_settings::Observer { +@@ -184,6 +193,11 @@ class PermissionContextBase : public content_settings::Observer { // Store the decided permission as a content setting. // virtual since the permission might be stored with different restrictions // (for example for desktop notifications). @@ -1039,7 +1052,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi virtual void UpdateContentSetting(const GURL& requesting_origin, const GURL& embedding_origin, ContentSetting content_setting, -@@ -213,6 +227,12 @@ class PermissionContextBase : public content_settings::Observer { +@@ -217,6 +231,12 @@ class PermissionContextBase : public content_settings::Observer { // Implementors can override this method to avoid using automatic embargo. virtual bool UsesAutomaticEmbargo() const; @@ -1052,7 +1065,7 @@ diff --git a/components/permissions/permission_context_base.h b/components/permi base::ObserverList permission_observers_; // Set by subclasses to inform the base class that they will handle adding -@@ -235,7 +255,8 @@ class PermissionContextBase : public content_settings::Observer { +@@ -240,7 +260,8 @@ class PermissionContextBase : public content_settings::Observer { const GURL& embedding_origin, ContentSetting content_setting, bool is_one_time, @@ -1196,9 +1209,9 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p return; } @@ -246,7 +246,7 @@ void PermissionRequestManager::AddRequest( - if (auto_approval_origin) { - if (url::Origin::Create(request->requesting_origin()) == - auto_approval_origin.value()) { + + if (should_auto_approve_request) { + if (should_auto_approve_request == PermissionAction::GRANTED) { - request->PermissionGranted(/*is_one_time=*/false); + request->PermissionGranted(/*is_one_time=*/false, content_settings::mojom::LifetimeMode::ALWAYS); } @@ -1258,7 +1271,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p } NotifyRequestDecided(PermissionAction::DENIED); -@@ -1246,32 +1257,32 @@ PermissionRequestManager::VisitDuplicateRequests( +@@ -1243,32 +1254,32 @@ PermissionRequestManager::VisitDuplicateRequests( void PermissionRequestManager::PermissionGrantedIncludingDuplicates( PermissionRequest* request, @@ -1301,7 +1314,7 @@ diff --git a/components/permissions/permission_request_manager.cc b/components/p request); } -@@ -1532,7 +1543,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { +@@ -1529,7 +1540,7 @@ void PermissionRequestManager::DoAutoResponseForTesting() { } switch (auto_response_for_test_) { case ACCEPT_ONCE: diff --git a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch index 2c613a6e..afe20bf1 100644 --- a/build/patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -63,7 +63,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; -@@ -2977,6 +2978,8 @@ public class ChromeTabbedActivity extends ChromeActivity mObservers = new ObserverList<>(); @@ -130,7 +130,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm private long mNativeBookmarkBridge; private boolean mIsDestroyed; private boolean mIsDoingExtensiveChanges; -@@ -409,6 +417,16 @@ class BookmarkBridge { +@@ -395,6 +403,16 @@ class BookmarkBridge { return mMobileFolderId; } @@ -147,7 +147,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** Returns Id representing the special "other" folder from bookmark model. */ public BookmarkId getOtherFolderId() { ThreadUtils.assertOnUiThread(); -@@ -1097,6 +1115,50 @@ class BookmarkBridge { +@@ -1083,6 +1101,50 @@ class BookmarkBridge { .addToReadingList(mNativeBookmarkBridge, parentId, title, url); } @@ -198,7 +198,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Helper method to mark an item as read. * -@@ -1351,6 +1413,9 @@ class BookmarkBridge { +@@ -1331,6 +1393,9 @@ class BookmarkBridge { BookmarkId getMostRecentlyAddedUserBookmarkIdForUrl( long nativeBookmarkBridge, @JniType("GURL") GURL url); @@ -208,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm BookmarkItem getBookmarkById(long nativeBookmarkBridge, long id, int type); void getTopLevelFolderIds( -@@ -1372,6 +1437,8 @@ class BookmarkBridge { +@@ -1352,6 +1417,8 @@ class BookmarkBridge { BookmarkId getRootFolderId(long nativeBookmarkBridge); @@ -220,7 +220,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browser/bookmarks/android/bookmark_bridge.cc --- a/chrome/browser/bookmarks/android/bookmark_bridge.cc +++ b/chrome/browser/bookmarks/android/bookmark_bridge.cc -@@ -180,7 +180,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver { +@@ -178,7 +178,7 @@ class FileBookmarksExportObserver: public BookmarksExportObserver { JNIEnv* env = AttachCurrentThread(); Java_BookmarkBridge_bookmarksExported(env, obj_, window_->GetJavaObject(), @@ -229,8 +229,8 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse result == Result::kSuccess); delete this; } -@@ -396,6 +396,33 @@ void BookmarkBridge::GetImageUrlForBookmarkImpl( - std::move(callback).Run(GURL()); +@@ -349,6 +349,33 @@ jboolean BookmarkBridge::AreAccountBookmarkFoldersActive(JNIEnv* env) { + return bookmark_model_->account_mobile_node() != nullptr; } +base::android::ScopedJavaLocalRef @@ -263,7 +263,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse base::android::ScopedJavaLocalRef BookmarkBridge::GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url) { -@@ -508,6 +535,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( +@@ -461,6 +488,7 @@ void BookmarkBridge::GetAllFoldersWithDepths( // Vector to temporarily contain all child bookmarks at same level for sorting std::vector bookmarks = { bookmark_model_->mobile_node(), @@ -271,7 +271,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse bookmark_model_->bookmark_bar_node(), bookmark_model_->other_node(), }; -@@ -601,6 +629,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( +@@ -554,6 +582,9 @@ std::vector BookmarkBridge::GetTopLevelFolderIdsImpl( top_level_folders.push_back(other_node); } @@ -281,7 +281,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse const BookmarkNode* reading_list_node = local_or_syncable_reading_list_manager_->GetRoot(); if (IsPermanentFolderVisible(ignore_visibility, reading_list_node)) { -@@ -1313,6 +1344,17 @@ void BookmarkBridge::GetBookmarksOfType( +@@ -1266,6 +1297,17 @@ void BookmarkBridge::GetBookmarksOfType( AddBookmarkNodesToBookmarkIdList(env, j_list, results); } @@ -302,9 +302,9 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.cc b/chrome/browse diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser/bookmarks/android/bookmark_bridge.h --- a/chrome/browser/bookmarks/android/bookmark_bridge.h +++ b/chrome/browser/bookmarks/android/bookmark_bridge.h -@@ -93,6 +93,10 @@ class BookmarkBridge : public ProfileObserver, - bool is_account_bookmark, - page_image_service::ImageService::ResultCallback callback); +@@ -79,6 +79,10 @@ class BookmarkBridge : public ProfileObserver, + + jboolean AreAccountBookmarkFoldersActive(JNIEnv* env); + base::android::ScopedJavaLocalRef GetBookmarkIdForTabsCollection( + JNIEnv* env, @@ -313,7 +313,7 @@ diff --git a/chrome/browser/bookmarks/android/bookmark_bridge.h b/chrome/browser base::android::ScopedJavaLocalRef GetMostRecentlyAddedUserBookmarkIdForUrl(JNIEnv* env, const GURL& url); const bookmarks::BookmarkNode* GetMostRecentlyAddedUserBookmarkIdForUrlImpl( -@@ -237,6 +241,10 @@ class BookmarkBridge : public ProfileObserver, +@@ -223,6 +227,10 @@ class BookmarkBridge : public ProfileObserver, const base::android::JavaParamRef& j_list, jint type); @@ -391,7 +391,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 -@@ -4055,6 +4055,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4196,6 +4196,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -821,7 +821,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks diff --git a/components/sync_bookmarks/bookmark_specifics_conversions.cc b/components/sync_bookmarks/bookmark_specifics_conversions.cc --- a/components/sync_bookmarks/bookmark_specifics_conversions.cc +++ b/components/sync_bookmarks/bookmark_specifics_conversions.cc -@@ -445,6 +445,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( +@@ -444,6 +444,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( case bookmarks::BookmarkNode::BOOKMARK_BAR: case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::MOBILE: diff --git a/build/patches/Add-menu-item-to-view-source.patch b/build/patches/Add-menu-item-to-view-source.patch index 28d9494f..b0ff0eb6 100644 --- a/build/patches/Add-menu-item-to-view-source.patch +++ b/build/patches/Add-menu-item-to-view-source.patch @@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -3003,6 +3003,8 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -2748,6 +2748,11 @@ public abstract class ChromeActivity return doOpenWebApk(currentTab); } @@ -69,7 +69,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -575,6 +575,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -576,6 +576,7 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate isNativePage, isFileScheme, isContentScheme, isIncognito, url)); updateRequestDesktopSiteMenuItem(menu, currentTab, true /* can show */, isNativePage); @@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App updateAutoDarkMenuItem(menu, currentTab, isNativePage); -@@ -1294,6 +1295,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate +@@ -1304,6 +1305,23 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate findInPageMenuRow.setVisible(itemVisible); } @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -316,6 +316,10 @@ CHAR_LIMIT guidelines: +@@ -311,6 +311,10 @@ CHAR_LIMIT guidelines: USB diff --git a/build/patches/Add-option-to-disable-snapshots.patch b/build/patches/Add-option-to-disable-snapshots.patch index 8280f46a..60c1eb9f 100644 --- a/build/patches/Add-option-to-disable-snapshots.patch +++ b/build/patches/Add-option-to-disable-snapshots.patch @@ -8,15 +8,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../tasks/tab_management/TabProperties.java | 5 +++ .../java/res/xml/privacy_preferences.xml | 5 +++ .../chrome/browser/app/ChromeActivity.java | 3 +- - .../privacy/settings/PrivacySettings.java | 42 ++++++++++++++++++- + .../privacy/settings/PrivacySettings.java | 43 ++++++++++++++++++- .../browser/tab_ui/TabContentManager.java | 6 ++- .../strings/android_chrome_strings.grd | 8 ++++ - 7 files changed, 72 insertions(+), 7 deletions(-) + 7 files changed, 73 insertions(+), 7 deletions(-) diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridViewBinder.java -@@ -352,9 +352,12 @@ class TabGridViewBinder { +@@ -350,9 +350,12 @@ class TabGridViewBinder { // Adjust bitmap to thumbnail. TabUtils.setBitmapAndUpdateImageMatrix(thumbnail, result, thumbnailSize); } else if (isMostRecentRequest) { @@ -32,7 +32,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } }; if (sThumbnailFetcherForTesting != null) { -@@ -393,6 +396,7 @@ class TabGridViewBinder { +@@ -391,6 +394,7 @@ class TabGridViewBinder { ViewLookupCachingFrameLayout rootView, PropertyModel model, TabListFaviconProvider.TabFavicon favicon) { @@ -72,7 +72,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -65,6 +65,11 @@ found in the LICENSE file. +@@ -70,6 +70,11 @@ found in the LICENSE file. android:title="@string/open_external_links_incognito_title" android:summary="@string/open_external_links_incognito_summary" android:defaultValue="false" /> @@ -95,7 +95,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.ProfileProvider; import org.chromium.chrome.browser.readaloud.ReadAloudController; -@@ -728,7 +729,7 @@ public abstract class ChromeActivity +@@ -721,7 +722,7 @@ public abstract class ChromeActivity new TabContentManager( this, mBrowserControlsManagerSupplier.get(), @@ -107,7 +107,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/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 -@@ -68,12 +68,25 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -64,12 +64,26 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -121,8 +121,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment -- implements Preference.OnPreferenceChangeListener { -+ implements Preference.OnPreferenceChangeListener, INeedSnackbarManager { +- implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher { ++ implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher, INeedSnackbarManager { ++ + private SnackbarManager mSnackbarManager; + private Snackbar mSnackbar; + @@ -134,7 +135,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"; -@@ -156,6 +169,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -157,6 +171,21 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } } @@ -156,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference privacyGuidePreference = findPreference(PREF_PRIVACY_GUIDE); // Record the launch of PG from the S&P link-row entry point privacyGuidePreference.setOnPreferenceClickListener( -@@ -346,6 +374,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -366,6 +395,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents"; public static final String PREF_OPEN_EXTERNAL_LINKS_INCOGNITO = "open_external_links_incognito"; @@ -164,7 +165,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public boolean onPreferenceChange(Preference preference, Object newValue) { -@@ -371,6 +400,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -391,6 +421,13 @@ public class PrivacySettings extends ChromeBaseSettingsFragment SharedPreferences.Editor sharedPreferencesEditor = ContextUtils.getAppSharedPreferences().edit(); sharedPreferencesEditor.putBoolean(PREF_OPEN_EXTERNAL_LINKS_INCOGNITO, (boolean)newValue); sharedPreferencesEditor.apply(); @@ -178,7 +179,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -419,6 +455,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -447,6 +484,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -208,7 +209,7 @@ diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/ 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 -@@ -5511,6 +5511,14 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5664,6 +5664,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 70c81498..7fde5ed0 100644 --- a/build/patches/Add-option-to-force-tablet-UI.patch +++ b/build/patches/Add-option-to-force-tablet-UI.patch @@ -16,13 +16,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/app/ChromeActivity.java | 4 ++- .../overlays/strip/StripLayoutHelper.java | 10 +++++-- .../strip/StripLayoutHelperManager.java | 7 ++++- - .../browser/tasks/ReturnToChromeUtil.java | 4 ++- .../chrome/browser/ui/RootUiCoordinator.java | 5 +++- chrome/browser/preferences/BUILD.gn | 1 + .../preferences/ChromePreferenceKeys.java | 1 + .../preferences/ChromeSharedPreferences.java | 8 ++++++ .../LegacyChromePreferenceKeys.java | 1 + - .../SingleTabSwitcherOnNtpMediator.java | 3 +- + .../SingleTabSwitcherOnNtpMediator.java | 1 + .../omnibox/LocationBarCoordinator.java | 2 +- .../strings/android_chrome_strings.grd | 7 +++++ .../java/res/layout/control_container.xml | 12 ++++---- @@ -30,7 +29,6 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../java/res/values-sw600dp/dimens.xml | 5 ++-- .../toolbar/java/res/values/dimens.xml | 5 ++-- .../browser/toolbar/ControlContainer.java | 2 +- - .../browser/toolbar/ToolbarFeatures.java | 4 ++- .../top/TabStripTransitionCoordinator.java | 2 +- .../toolbar/top/ToolbarControlContainer.java | 28 ++++++++++++++++++- .../browser/toolbar/top/ToolbarLayout.java | 5 +++- @@ -38,12 +36,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../res/xml/accessibility_preferences.xml | 5 ++++ .../AccessibilitySettingsDelegate.java | 11 ++++++++ .../chromium/ui/base/DeviceFormFactor.java | 9 ++++++ - 34 files changed, 174 insertions(+), 35 deletions(-) + 32 files changed, 167 insertions(+), 32 deletions(-) diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -100,6 +100,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; +@@ -97,6 +97,7 @@ import org.chromium.components.browser_ui.widget.gesture.BackPressHandler; import org.chromium.components.embedder_support.util.UrlUtilities; import org.chromium.components.prefs.PrefService; import org.chromium.content_public.browser.LoadUrlParams; @@ -51,7 +49,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.text.EmptyTextWatcher; import org.chromium.ui.util.ColorUtils; -@@ -1130,7 +1131,9 @@ class StartSurfaceMediator +@@ -1124,7 +1125,9 @@ class StartSurfaceMediator int getTopToolbarPlaceholderHeight() { // If logo is visible in Start surface instead of in the toolbar, we don't need to show the // top margin of the fake search box. @@ -103,7 +101,7 @@ diff --git a/chrome/android/java/res/values-sw600dp/dimens.xml b/chrome/android/ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -123,9 +123,13 @@ found in the LICENSE file. +@@ -120,9 +120,13 @@ found in the LICENSE file. 16dp @@ -121,7 +119,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 -@@ -2277,7 +2277,9 @@ public class ChromeTabbedActivity extends ChromeActivity +@@ -862,7 +862,9 @@ public abstract class ChromeActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -244,15 +242,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -73,6 +73,7 @@ import org.chromium.chrome.browser.tasks.tab_management.TabUiThemeUtil; - import org.chromium.components.browser_ui.styles.ChromeColors; - import org.chromium.components.browser_ui.styles.SemanticColorUtils; +@@ -84,6 +84,7 @@ import org.chromium.components.feature_engagement.Tracker; + import org.chromium.components.prefs.PrefService; import org.chromium.components.tab_groups.TabGroupColorId; + import org.chromium.components.user_prefs.UserPrefs; +import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.interpolators.Interpolators; -@@ -4883,8 +4884,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro +@@ -5059,8 +5060,13 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro mTabMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the tab menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -271,7 +269,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 -@@ -78,6 +78,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController; +@@ -80,6 +80,7 @@ import org.chromium.chrome.browser.ui.system.StatusBarColorController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.widget.scrim.ScrimProperties; import org.chromium.content_public.browser.LoadUrlParams; @@ -279,7 +277,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; -@@ -402,11 +403,15 @@ public class StripLayoutHelperManager +@@ -405,11 +406,15 @@ public class StripLayoutHelperManager mIsLayoutOptimizationsEnabled = ToolbarFeatures.isTabStripWindowLayoutOptimizationEnabled(true); @@ -296,24 +294,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTopPadding = mHeight - mScrollableStripHeight; mDesktopWindowStateProvider = desktopWindowStateProvider; -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 -@@ -929,7 +929,9 @@ public final class ReturnToChromeUtil { - // TODO(b/331667743): Clean up the flag for scrollable mvt while cleaning up surface polish - // code. - boolean isSurfacePolishEnabled = ChromeFeatureList.sSurfacePolish.isEnabled(); -- if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context)) { -+ if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(context) || -+ ChromeSharedPreferences.getInstance().readBoolean( -+ ChromePreferenceKeys.FLAGS_FORCE_TABLET_UI_ENABLED, false)) { - // On phones, parameter SURFACE_POLISH_SCROLLABLE_MVT is checked when feature flag - // surface polish is enabled; otherwise, feature flag - // SHOW_SCROLLABLE_MVT_ON_NTP_PHONE_ANDROID is checked. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -97,6 +97,7 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; +@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; @@ -321,7 +305,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.price_tracking.CurrentTabPriceTrackingStateSupplier; import org.chromium.chrome.browser.price_tracking.PriceTrackingButtonController; import org.chromium.chrome.browser.profiles.Profile; -@@ -1610,7 +1611,9 @@ public class RootUiCoordinator +@@ -1611,7 +1612,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -346,7 +330,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 -@@ -268,6 +268,7 @@ public final class ChromePreferenceKeys { +@@ -265,6 +265,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"; @@ -401,19 +385,10 @@ diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/brow import org.chromium.ui.modelutil.PropertyModel; import org.chromium.url.GURL; -@@ -90,7 +91,7 @@ public class SingleTabSwitcherOnNtpMediator implements ConfigurationChangedObser - mSingleTabCardClickedCallback = singleTabCardClickedCallback; - mIsSurfacePolishEnabled = tabContentManager != null; - mUiConfig = uiConfig; -- mIsTablet = isTablet; -+ mIsTablet = isTablet && !DeviceFormFactor.isForceTabletUI(); - mModuleDelegate = moduleDelegate; - - mMarginNarrowWindowOnTablet = 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 -@@ -774,7 +774,7 @@ public class LocationBarCoordinator +@@ -778,7 +778,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -425,7 +400,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 -@@ -1632,6 +1632,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1664,6 +1664,13 @@ Your Google account may have other forms of browsing history like searches and a Hide your IP address @@ -547,31 +522,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * @return The {@link ViewResourceAdapter} that exposes this {@link View} as a CC resource. -diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java ---- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java -+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarFeatures.java -@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.toolbar; - import androidx.annotation.OptIn; - import androidx.core.os.BuildCompat; - -+import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.base.ResettersForTesting; - import org.chromium.base.cached_flags.BooleanCachedFieldTrialParameter; - import org.chromium.base.cached_flags.IntCachedFieldTrialParameter; -@@ -71,7 +72,8 @@ public final class ToolbarFeatures { - * is enabled. - */ - public static boolean isDynamicTopChromeEnabled() { -- return ChromeFeatureList.sDynamicTopChrome.isEnabled(); -+ return ChromeFeatureList.sDynamicTopChrome.isEnabled() -+ && !DeviceFormFactor.isForceTabletUI(); - } - - /** Returns if we are using optimized window layout for tab strip. */ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TabStripTransitionCoordinator.java -@@ -154,7 +154,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea +@@ -155,7 +155,7 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -637,7 +591,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; -@@ -595,7 +596,9 @@ public abstract class ToolbarLayout extends FrameLayout +@@ -596,7 +597,9 @@ public abstract class ToolbarLayout extends FrameLayout * not have a tab strip. */ protected int getTabStripHeightFromResource() { @@ -660,7 +614,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn disallowed_extension_deps_ = [ # Components should largely not depend on //extensions. Since // extensions # is not a component target and is linked with //chrome, depending on most -@@ -843,7 +843,7 @@ test("components_unittests") { +@@ -851,7 +851,7 @@ test("components_unittests") { # On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. @@ -669,7 +623,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn assert_no_deps = [ "//chrome/*" ] assert_no_deps += disallowed_extension_deps_ } -@@ -1129,7 +1129,7 @@ if (use_blink) { +@@ -1137,7 +1137,7 @@ if (use_blink) { # dependency. On other platforms, no components should depend on Chrome. # Since //chrome depends on //extensions, we also only assert_no_deps on # extensions targets for non-lacros builds. 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 ae0a0a7a..359d2a12 100644 --- a/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -82,6 +82,11 @@ found in the LICENSE file. +@@ -87,6 +87,11 @@ found in the LICENSE file. android:title="@string/incognito_settings_title" android:summary="@string/incognito_settings_summary" android:fragment="org.chromium.chrome.browser.privacy.settings.IncognitoSettings"/> @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -1636,8 +1637,10 @@ public class ChromeTabbedActivity extends ChromeActivityBEGIN_LINKdelete the Chrome d +@@ -5155,6 +5155,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d IMAGE diff --git a/build/patches/Add-option-to-use-home-page-as-NTP.patch b/build/patches/Add-option-to-use-home-page-as-NTP.patch index fff91826..07d682fb 100644 --- a/build/patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/patches/Add-option-to-use-home-page-as-NTP.patch @@ -23,15 +23,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/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 -@@ -28,6 +28,7 @@ import org.chromium.base.task.TaskTraits; - import org.chromium.chrome.browser.data_sharing.DataSharingNotificationManager; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.data_sharing.DataSharingNotificationManager; import org.chromium.chrome.browser.data_sharing.SharedImageTilesCoordinator; import org.chromium.chrome.browser.flags.ChromeFeatureList; + import org.chromium.chrome.browser.hub.HubFieldTrial; +import org.chromium.chrome.browser.homepage.HomepageManager; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabCreationState; import org.chromium.chrome.browser.tab.TabLaunchType; -@@ -60,6 +61,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; +@@ -62,6 +63,7 @@ import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.text.EmptyTextWatcher; @@ -39,7 +39,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.ArrayList; import java.util.List; -@@ -748,11 +750,16 @@ public class TabGridDialogMediator +@@ -802,11 +804,16 @@ public class TabGridDialogMediator assert relatedTabs.size() > 0; @@ -201,7 +201,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 -@@ -281,6 +281,7 @@ public final class ChromePreferenceKeys { +@@ -278,6 +278,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"; @@ -223,7 +223,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 -@@ -1385,6 +1385,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1411,6 +1411,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -248,7 +248,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 -@@ -1294,6 +1294,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; +@@ -1321,6 +1321,10 @@ inline constexpr char kShowHomeButton[] = "browser.show_home_button"; // toolbar. inline constexpr char kShowForwardButton[] = "browser.show_forward_button"; 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 11ebbe79..9b26147d 100644 --- a/build/patches/Add-setting-to-clear-data-on-exit.patch +++ b/build/patches/Add-setting-to-clear-data-on-exit.patch @@ -22,6 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../clear_browsing_data_dialog.ts | 2 + .../strings/android_chrome_strings.grd | 3 + .../settings_localized_strings_provider.cc | 1 + + .../content/browsing_data_helper.cc | 5 +- .../core/browsing_data_policies_utils.cc | 20 ++--- .../core/browsing_data_policies_utils.h | 11 +++ .../browsing_data/core/browsing_data_utils.cc | 31 ++++++++ @@ -30,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/browsing_data/core/pref_names.h | 10 +++ .../search_engines/template_url_service.cc | 1 + content/browser/storage_partition_impl.cc | 1 + - 26 files changed, 312 insertions(+), 17 deletions(-) + 27 files changed, 316 insertions(+), 18 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragmentAtStart.java diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni @@ -47,7 +48,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -172,6 +172,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -171,6 +171,7 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; import org.chromium.chrome.browser.quick_delete.QuickDeleteMetricsDelegate; @@ -55,7 +56,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.reengagement.ReengagementNotificationController; import org.chromium.chrome.browser.search_engines.SearchEngineChoiceNotification; -@@ -1636,7 +1637,11 @@ public class ChromeTabbedActivity extends ChromeActivity Delete browsing data @@ -231,7 +232,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp diff --git a/chrome/browser/android/browsing_data/browsing_data_bridge.cc b/chrome/browser/android/browsing_data/browsing_data_bridge.cc --- a/chrome/browser/android/browsing_data/browsing_data_bridge.cc +++ b/chrome/browser/android/browsing_data/browsing_data_bridge.cc -@@ -338,7 +338,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( +@@ -340,7 +340,7 @@ static void JNI_BrowsingDataBridge_SetLastClearBrowsingDataTab( const JavaParamRef& jprofile, jint tab_index) { DCHECK_GE(tab_index, 0); @@ -326,7 +327,7 @@ diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate. content::BackgroundTracingManager::GetInstance().DeleteTracesInDateRange( delete_begin_, delete_end_); -@@ -1246,6 +1257,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( +@@ -1257,6 +1268,8 @@ void ChromeBrowsingDataRemoverDelegate::RemoveEmbedderData( if (should_clear_zero_suggest_and_session_token && template_url_service) template_url_service->ClearSessionToken(); @@ -338,7 +339,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 -@@ -519,6 +519,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -526,6 +526,23 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[browsing_data::prefs::kLastClearBrowsingDataTab] = settings_api::PrefType::kNumber; @@ -384,7 +385,7 @@ diff --git a/chrome/browser/profiles/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/profiles/android/profile_manager_utils.cc b/chrome/browser/profiles/android/profile_manager_utils.cc --- a/chrome/browser/profiles/android/profile_manager_utils.cc +++ b/chrome/browser/profiles/android/profile_manager_utils.cc -@@ -62,3 +62,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles( +@@ -64,3 +64,8 @@ static void JNI_ProfileManagerUtils_RemoveSessionCookiesForAllProfiles( g_browser_process->profile_manager()->GetLoadedProfiles(), RemoveSessionCookiesForProfile); } @@ -396,7 +397,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 -@@ -1480,6 +1480,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, +@@ -1477,6 +1477,19 @@ void ProfileManager::DoFinalInit(ProfileInfo* profile_info, } } @@ -416,7 +417,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_ || -@@ -2140,7 +2153,7 @@ void ProfileManager::OnBrowserClosed(Browser* browser) { +@@ -2141,7 +2154,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()) { @@ -494,7 +495,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts --- a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts +++ b/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_browsing_data_dialog.ts -@@ -306,6 +306,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -297,6 +297,7 @@ export class SettingsClearBrowsingDataDialogElement extends value: () => [loadTimeData.getString('basicPageTitle'), loadTimeData.getString('advancedPageTitle'), @@ -502,7 +503,7 @@ diff --git a/chrome/browser/resources/settings/clear_browsing_data_dialog/clear_ ], }, -@@ -429,6 +430,7 @@ export class SettingsClearBrowsingDataDialogElement extends +@@ -423,6 +424,7 @@ export class SettingsClearBrowsingDataDialogElement extends } this.clearButtonDisabled_ = this.getSelectedDataTypes_(page as HTMLElement).length === 0; @@ -513,7 +514,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 -@@ -1480,6 +1480,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1506,6 +1506,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>. @@ -526,7 +527,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 -@@ -1777,6 +1777,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1775,6 +1775,7 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"clearedData", IDS_SETTINGS_CLEARED_DATA}, {"clearBrowsingData", IDS_SETTINGS_CLEAR_BROWSING_DATA}, {"clearBrowsingDataDescription", IDS_SETTINGS_CLEAR_DATA_DESCRIPTION}, @@ -534,6 +535,22 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide {"titleAndCount", IDS_SETTINGS_TITLE_AND_COUNT}, {"safeBrowsingEnableExtendedReportingDesc", IDS_SETTINGS_SAFEBROWSING_ENABLE_REPORTING_DESC}, +diff --git a/components/browsing_data/content/browsing_data_helper.cc b/components/browsing_data/content/browsing_data_helper.cc +--- a/components/browsing_data/content/browsing_data_helper.cc ++++ b/components/browsing_data/content/browsing_data_helper.cc +@@ -40,8 +40,11 @@ bool WebsiteSettingsFilterAdapter( + // this filter is used for is DURABLE_STORAGE, which also only uses + // origin-scoped patterns. Such patterns can be directly translated to a GURL. + GURL url(primary_pattern.ToString()); +- DCHECK(url.is_valid()) << "url: '" << url.possibly_invalid_spec() << "' " ++ if (!url.is_valid()) { ++ LOG(INFO) << "url: '" << url.possibly_invalid_spec() << "' " + << "pattern: '" << primary_pattern.ToString() << "'"; ++ return true; ++ } + return predicate.Run(url); + } + diff --git a/components/browsing_data/core/browsing_data_policies_utils.cc b/components/browsing_data/core/browsing_data_policies_utils.cc --- a/components/browsing_data/core/browsing_data_policies_utils.cc +++ b/components/browsing_data/core/browsing_data_policies_utils.cc @@ -693,7 +710,7 @@ diff --git a/components/browsing_data/core/pref_names.h b/components/browsing_da diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -818,6 +818,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( +@@ -819,6 +819,7 @@ void TemplateURLService::RemoveAutoGeneratedForUrlsBetween( if (turl->date_created() >= created_after && (created_before.is_null() || turl->date_created() < created_before) && turl->safe_for_autoreplace() && turl->prepopulate_id() == 0 && diff --git a/build/patches/Add-setting-to-invert-tap-and-long-tap.patch b/build/patches/Add-setting-to-invert-tap-and-long-tap.patch index bf2ef0af..3155fd15 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 @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -273,6 +273,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -297,6 +297,14 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { mTab.loadUrl(loadUrlParams); } @@ -194,10 +194,10 @@ diff --git a/chrome/browser/contextmenu/java/src/org/chromium/chrome/browser/con 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 -@@ -284,6 +284,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -293,6 +293,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { + &kTabGroupParityAndroid, &kTabIdMapAndroid, &kTabletTabSwitcherLongPressMenu, - &kTabletToolbarIncognitoStatus, + &blink::features::kShowAlwaysContextMenuOnLinks, &kTabletToolbarReordering, &kTabResumptionModuleAndroid, @@ -205,7 +205,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 -@@ -357,6 +357,8 @@ public abstract class ChromeFeatureList { +@@ -366,6 +366,8 @@ public abstract class ChromeFeatureList { "DisableToolbarSwipeUp"; public static final String MOVE_TOP_TOOLBAR_TO_BOTTOM = "MoveTopToolbarToBottom"; @@ -214,7 +214,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -629,6 +631,8 @@ public abstract class ChromeFeatureList { +@@ -650,6 +652,8 @@ public abstract class ChromeFeatureList { newCachedFlag(DISABLE_TOOLBAR_SWIPE_UP, false); public static final CachedFlag sMoveTopToolbarToBottom = newCachedFlag(MOVE_TOP_TOOLBAR_TO_BOTTOM, false); @@ -223,7 +223,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPrivacyGuidePreloadAndroid = newCachedFlag(PRIVACY_GUIDE_PRELOAD_ANDROID, false); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -785,6 +789,7 @@ public abstract class ChromeFeatureList { +@@ -808,6 +812,7 @@ public abstract class ChromeFeatureList { sTabWindowManagerIndexReassignmentActivityNotInAppTasks, sTabWindowManagerReportIndicesMismatch, sUseChimeAndroidSdk, @@ -234,7 +234,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 -@@ -1697,6 +1697,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1729,6 +1729,12 @@ Your Google account may have other forms of browsing history like searches and a Disable toolbar swipe up @@ -247,7 +247,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -2909,6 +2915,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3016,6 +3022,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Open in new Chrome tab @@ -421,7 +421,7 @@ diff --git a/third_party/blink/renderer/core/html/html_anchor_element.h b/third_ diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc --- a/third_party/blink/renderer/core/html/html_image_element.cc +++ b/third_party/blink/renderer/core/html/html_image_element.cc -@@ -37,6 +37,7 @@ +@@ -36,6 +36,7 @@ #include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h" #include "third_party/blink/renderer/core/dom/node_traversal.h" #include "third_party/blink/renderer/core/dom/shadow_root.h" @@ -429,7 +429,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" -@@ -65,6 +66,7 @@ +@@ -64,6 +65,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" @@ -437,7 +437,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( +@@ -800,6 +802,21 @@ void HTMLImageElement::DidFinishLifecycleUpdate( } } @@ -462,7 +462,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 -@@ -226,6 +226,8 @@ class CORE_EXPORT HTMLImageElement +@@ -222,6 +222,8 @@ class CORE_EXPORT HTMLImageElement void DidAddUserAgentShadowRoot(ShadowRoot&) override; void AdjustStyle(ComputedStyleBuilder&) override; diff --git a/build/patches/Add-site-engagement-flag.patch b/build/patches/Add-site-engagement-flag.patch index 7b72b790..a1b329e5 100644 --- a/build/patches/Add-site-engagement-flag.patch +++ b/build/patches/Add-site-engagement-flag.patch @@ -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" -@@ -112,6 +113,12 @@ std::optional GetClientSideFeatureConfig( +@@ -117,6 +118,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 fc8bc79e..387b1de8 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 -@@ -95,6 +95,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; +@@ -96,6 +96,7 @@ import org.chromium.components.browser_ui.settings.CustomDividerFragment; import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; import org.chromium.components.browser_ui.settings.PaddedItemDecorationWithDivider; import org.chromium.components.browser_ui.settings.SettingsLauncher; @@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.components.browser_ui.site_settings.BaseSiteSettingsFragment; import org.chromium.components.browser_ui.site_settings.SiteSettingsCategory; import org.chromium.components.browser_ui.util.TraceEventVectorDrawableCompat; -@@ -479,8 +480,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -481,8 +482,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finish(); 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 4b3ba99f..49feadee 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 -@@ -30,6 +30,16 @@ File OpenContentUriForRead(const FilePath& content_uri) { +@@ -32,6 +32,16 @@ File OpenContentUriForRead(const FilePath& content_uri) { return File(fd); } diff --git a/build/patches/Add-support-to-jxl.patch b/build/patches/Add-support-to-jxl.patch index 26288c8f..4ff925b1 100644 --- a/build/patches/Add-support-to-jxl.patch +++ b/build/patches/Add-support-to-jxl.patch @@ -84,7 +84,7 @@ Enabled by default diff --git a/DEPS b/DEPS --- a/DEPS +++ b/DEPS -@@ -491,6 +491,10 @@ vars = { +@@ -494,6 +494,10 @@ vars = { # Three lines of non-changing comments so that # the commit queue can handle CLs rolling feed # and whatever else without interference from each other. @@ -92,10 +92,10 @@ diff --git a/DEPS b/DEPS + # Three lines of non-changing comments so that + # the commit queue can handle CLs rolling feed + # and whatever else without interference from each other. - 'highway_revision': '8f20644eca693cfb74aa795b0006b6779c370e7a', + 'highway_revision': '8295336dd70f1201d42c22ab5b0861de38cf8fbf', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ffmpeg -@@ -1354,6 +1358,9 @@ deps = { +@@ -1604,6 +1608,9 @@ deps = { 'src/third_party/dawn': Var('dawn_git') + '/dawn.git' + '@' + Var('dawn_revision'), @@ -147,14 +147,14 @@ new file mode 100644 diff --git a/build/linux/unbundle/replace_gn_files.py b/build/linux/unbundle/replace_gn_files.py --- a/build/linux/unbundle/replace_gn_files.py +++ b/build/linux/unbundle/replace_gn_files.py -@@ -56,6 +56,7 @@ REPLACEMENTS = { - 'libdrm': 'third_party/libdrm/BUILD.gn', - 'libevent': 'third_party/libevent/BUILD.gn', - 'libjpeg': 'third_party/libjpeg.gni', -+ 'libjxl' : 'third_party/libjxl/BUILD.gn', - 'libpng': 'third_party/libpng/BUILD.gn', - 'libsecret' : 'third_party/libsecret/BUILD.gn', - 'libusb': 'third_party/libusb/BUILD.gn', +@@ -57,6 +57,7 @@ REPLACEMENTS = { + 'libdrm': 'third_party/libdrm/BUILD.gn', + 'libevent': 'third_party/libevent/BUILD.gn', + 'libjpeg': 'third_party/libjpeg.gni', ++ 'libjxl' : 'third_party/libjxl/BUILD.gn', + 'libpng': 'third_party/libpng/BUILD.gn', + 'libsecret': 'third_party/libsecret/BUILD.gn', + 'libusb': 'third_party/libusb/BUILD.gn', diff --git a/cc/base/devtools_instrumentation.cc b/cc/base/devtools_instrumentation.cc --- a/cc/base/devtools_instrumentation.cc +++ b/cc/base/devtools_instrumentation.cc @@ -329,7 +329,7 @@ diff --git a/media/media_options.gni b/media/media_options.gni diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc --- a/net/base/mime_util.cc +++ b/net/base/mime_util.cc -@@ -164,6 +164,7 @@ static const MimeInfo kPrimaryMappings[] = { +@@ -169,6 +169,7 @@ static const MimeInfo kPrimaryMappings[] = { {"image/avif", "avif"}, {"image/gif", "gif"}, {"image/jpeg", "jpeg,jpg"}, @@ -337,7 +337,7 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc {"image/png", "png"}, {"image/apng", "png,apng"}, {"image/svg+xml", "svg,svgz"}, -@@ -667,6 +668,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", +@@ -672,6 +673,7 @@ static const char* const kStandardImageTypes[] = {"image/avif", "image/gif", "image/ief", "image/jpeg", @@ -348,7 +348,7 @@ diff --git a/net/base/mime_util.cc b/net/base/mime_util.cc diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc --- a/net/base/mime_util_unittest.cc +++ b/net/base/mime_util_unittest.cc -@@ -39,6 +39,7 @@ TEST(MimeUtilTest, GetWellKnownMimeTypeFromExtension) { +@@ -44,6 +44,7 @@ TEST(MimeUtilTest, GetWellKnownMimeTypeFromExtension) { {FILE_PATH_LITERAL("webm"), "video/webm"}, {FILE_PATH_LITERAL("weba"), "audio/webm"}, {FILE_PATH_LITERAL("avif"), "image/avif"}, @@ -356,7 +356,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc {FILE_PATH_LITERAL("epub"), "application/epub+zip"}, {FILE_PATH_LITERAL("apk"), "application/vnd.android.package-archive"}, {FILE_PATH_LITERAL("cer"), "application/x-x509-ca-cert"}, -@@ -80,6 +81,7 @@ TEST(MimeUtilTest, ExtensionTest) { +@@ -85,6 +86,7 @@ TEST(MimeUtilTest, ExtensionTest) { {FILE_PATH_LITERAL("webm"), {"video/webm"}}, {FILE_PATH_LITERAL("weba"), {"audio/webm"}}, {FILE_PATH_LITERAL("avif"), {"image/avif"}}, @@ -364,7 +364,7 @@ diff --git a/net/base/mime_util_unittest.cc b/net/base/mime_util_unittest.cc #if BUILDFLAG(IS_CHROMEOS_ASH) // These are test cases for testing platform mime types on ChromeOS. {FILE_PATH_LITERAL("epub"), {"application/epub+zip"}}, -@@ -496,6 +498,7 @@ TEST(MimeUtilTest, TestGetExtensionsForMimeType) { +@@ -501,6 +503,7 @@ TEST(MimeUtilTest, TestGetExtensionsForMimeType) { {"MeSsAge/*", 1, "eml"}, {"message/", 0, nullptr, true}, {"image/avif", 1, "avif"}, @@ -467,7 +467,7 @@ diff --git a/third_party/blink/common/mime_util/mime_util_unittest.cc b/third_pa diff --git a/third_party/blink/public/devtools_protocol/browser_protocol.pdl b/third_party/blink/public/devtools_protocol/browser_protocol.pdl --- a/third_party/blink/public/devtools_protocol/browser_protocol.pdl +++ b/third_party/blink/public/devtools_protocol/browser_protocol.pdl -@@ -4412,6 +4412,7 @@ domain Emulation +@@ -4431,6 +4431,7 @@ domain Emulation experimental type DisabledImageType extends string enum avif @@ -608,7 +608,7 @@ diff --git a/third_party/blink/renderer/modules/webcodecs/image_decoder_fuzzer.c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -2340,6 +2340,10 @@ source_set("blink_platform_unittests_sources") { +@@ -2351,6 +2351,10 @@ source_set("blink_platform_unittests_sources") { sources += [ "text/locale_icu_test.cc" ] } @@ -619,7 +619,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re sources += [ "testing/run_all_tests.cc" ] configs += [ -@@ -2385,6 +2389,7 @@ source_set("blink_platform_unittests_sources") { +@@ -2396,6 +2400,7 @@ source_set("blink_platform_unittests_sources") { "//third_party/blink/renderer/platform/wtf", "//third_party/dawn/src/dawn/native", "//third_party/dawn/src/dawn/wire", @@ -677,7 +677,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image_metrics.h diff --git a/third_party/blink/renderer/platform/image-decoders/BUILD.gn b/third_party/blink/renderer/platform/image-decoders/BUILD.gn --- a/third_party/blink/renderer/platform/image-decoders/BUILD.gn +++ b/third_party/blink/renderer/platform/image-decoders/BUILD.gn -@@ -72,6 +72,15 @@ component("image_decoders") { +@@ -70,6 +70,15 @@ component("image_decoders") { "//third_party/libyuv", ] @@ -704,25 +704,18 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #include "base/numerics/byte_conversions.h" #include "base/numerics/safe_conversions.h" #include "base/trace_event/trace_event.h" -@@ -31,6 +32,7 @@ - #include "media/media_buildflags.h" - #include "skia/ext/cicp.h" - #include "third_party/blink/public/common/buildflags.h" -+#include "third_party/blink/public/common/features.h" - #include "third_party/blink/public/platform/platform.h" - #include "third_party/blink/renderer/platform/image-decoders/bmp/bmp_image_decoder.h" - #include "third_party/blink/renderer/platform/image-decoders/exif_reader.h" -@@ -48,6 +50,9 @@ - #include "third_party/blink/renderer/platform/image-decoders/avif/avif_image_decoder.h" +@@ -50,6 +51,10 @@ + #include "third_party/blink/renderer/platform/image-decoders/avif/crabbyavif_image_decoder.h" #endif +#if BUILDFLAG(ENABLE_JXL_DECODER) +#include "third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.h" +#endif ++ namespace blink { namespace { -@@ -75,6 +80,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { +@@ -77,6 +82,11 @@ cc::ImageType FileExtensionToImageType(String image_extension) { if (image_extension == "avif") { return cc::ImageType::kAVIF; } @@ -734,7 +727,7 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc #endif return cc::ImageType::kInvalid; } -@@ -192,6 +202,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { +@@ -198,6 +208,12 @@ String SniffMimeTypeInternal(scoped_refptr reader) { return "image/avif"; } #endif @@ -747,10 +740,10 @@ diff --git a/third_party/blink/renderer/platform/image-decoders/image_decoder.cc return String(); } -@@ -297,6 +313,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( - decoder = std::make_unique( - alpha_option, high_bit_depth_decoding_option, color_behavior, - max_decoded_bytes, animation_option); +@@ -309,6 +325,13 @@ std::unique_ptr ImageDecoder::CreateByMimeType( + alpha_option, high_bit_depth_decoding_option, color_behavior, + max_decoded_bytes, animation_option); + } +#endif +#if BUILDFLAG(ENABLE_JXL_DECODER) + } else if (base::FeatureList::IsEnabled(blink::features::kJXL) && @@ -2224,7 +2217,7 @@ diff --git a/third_party/blink/tools/commit_stats/git-dirs.txt b/third_party/bli diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations -@@ -4611,6 +4611,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai +@@ -4730,6 +4730,12 @@ crbug.com/1199522 http/tests/devtools/layers/layers-3d-view-hit-testing.js [ Fai # Started failing after rolling new version of check-layout-th.js css3/flexbox/perpendicular-writing-modes-inside-flex-item.html [ Failure ] @@ -2240,9 +2233,9 @@ diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/we diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites --- a/third_party/blink/web_tests/VirtualTestSuites +++ b/third_party/blink/web_tests/VirtualTestSuites -@@ -435,6 +435,15 @@ +@@ -444,6 +444,15 @@ "--disable-threaded-compositing", "--disable-threaded-animation"], - "expires": "Jul 1, 2023" + "expires": "Jun 1, 2025" }, + { + "prefix": "jxl-enabled", @@ -2254,7 +2247,7 @@ diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/w + "expires": "Jul 1, 2023" + }, { - "prefix": "compute-pressure", + "prefix": "highdpi-threaded", "platforms": ["Linux", "Mac", "Win"], diff --git a/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt b/third_party/blink/web_tests/http/tests/inspector-protocol/emulation/emulation-set-disabled-image-types-jxl-expected.txt new file mode 100644 @@ -2655,7 +2648,7 @@ new file mode 100644 diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml -@@ -21685,6 +21685,7 @@ from previous Chrome versions. +@@ -20873,6 +20873,7 @@ from previous Chrome versions. diff --git a/build/patches/Add-webGL-site-setting.patch b/build/patches/Add-webGL-site-setting.patch index e95ed159..db0931a5 100644 --- a/build/patches/Add-webGL-site-setting.patch +++ b/build/patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -115,6 +115,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -116,6 +116,8 @@ enum ReasonForCallingCanExecuteScripts { enum ReferrerPolicySource { kPolicySourceHttpHeader, kPolicySourceMetaTag }; @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc --- a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc +++ b/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc -@@ -313,6 +313,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -289,6 +289,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,7 +232,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba unsigned WebGLRenderingContextBase::CurrentMaxGLContexts() { base::AutoLock locker(WebGLContextLimitLock()); DCHECK(webgl_context_limits_initialized_); -@@ -582,25 +589,6 @@ static String ExtractWebGLContextCreationError( +@@ -558,25 +565,6 @@ static String ExtractWebGLContextCreationError( const Platform::GraphicsInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); @@ -258,7 +258,7 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -660,6 +648,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -636,6 +624,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, Platform::ContextType context_type, Platform::GraphicsInfo* graphics_info) { diff --git a/build/patches/Add-webRTC-site-settings.patch b/build/patches/Add-webRTC-site-settings.patch index 6a9589ef..96bbfdbf 100644 --- a/build/patches/Add-webRTC-site-settings.patch +++ b/build/patches/Add-webRTC-site-settings.patch @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d #include "third_party/blink/public/platform/web_url.h" #include "third_party/blink/public/web/modules/mediastream/media_stream_video_source.h" #include "third_party/blink/public/web/web_document.h" -@@ -839,6 +840,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -841,6 +842,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // origin. WebRTCIPHandlingPolicy policy = GetWebRTCIPHandlingPolicy(webrtc_ip_handling_policy); @@ -219,7 +219,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" -@@ -312,6 +314,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -286,6 +288,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -246,7 +246,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" -@@ -1070,6 +1072,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1044,6 +1046,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch index 955d5777..7ee18f85 100644 --- a/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.patch +++ b/build/patches/Allow-DocumentPiP-if-PopupsAndRedirects-are-active.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/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc --- a/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc +++ b/third_party/blink/renderer/modules/document_picture_in_picture/picture_in_picture_controller_impl.cc -@@ -368,6 +368,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( +@@ -383,6 +383,13 @@ void PictureInPictureControllerImpl::CreateDocumentPictureInPictureWindow( return; } diff --git a/build/patches/Allow-building-without-enable_reporting.patch b/build/patches/Allow-building-without-enable_reporting.patch index f41f8f13..a391283f 100644 --- a/build/patches/Allow-building-without-enable_reporting.patch +++ b/build/patches/Allow-building-without-enable_reporting.patch @@ -41,7 +41,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1414,6 +1414,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1462,6 +1462,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -49,7 +49,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostWithAction( -@@ -1427,6 +1428,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1475,6 +1476,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -124,7 +124,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -14342,12 +14342,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -14404,12 +14404,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -254,7 +254,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -212,6 +212,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( +@@ -196,6 +196,7 @@ extern const base::FeatureParam kTimeoutTcpConnectAttemptMax( base::Seconds(30)); #if BUILDFLAG(ENABLE_REPORTING) @@ -281,7 +281,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -464,10 +464,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -467,10 +467,10 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, const std::optional& user_agent, @@ -297,7 +297,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mojom/BUILD.gn --- a/services/network/public/mojom/BUILD.gn +++ b/services/network/public/mojom/BUILD.gn -@@ -1485,7 +1485,6 @@ mojom("mojom") { +@@ -1491,7 +1491,6 @@ mojom("mojom") { export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" export_header_blink = "third_party/blink/public/platform/web_common.h" if (enable_reporting) { @@ -335,7 +335,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/ranges/algorithm.h" -@@ -1240,6 +1241,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1239,6 +1240,7 @@ void ContentSecurityPolicy::ReportViolation( return; } @@ -343,7 +343,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); -@@ -1247,6 +1249,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1246,6 +1248,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -362,7 +362,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" -@@ -2702,9 +2703,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() { +@@ -2735,9 +2736,11 @@ void LocalFrame::MainFrameFirstMeaningfulPaint() { v8_local_compile_hints_producer_->GenerateData(kIsFinalData); } @@ -385,7 +385,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "services/metrics/public/cpp/ukm_source_id.h" -@@ -662,8 +663,9 @@ class CORE_EXPORT LocalFrame final +@@ -661,8 +662,9 @@ class CORE_EXPORT LocalFrame final void FinishedScrollSequence(); SmoothScrollSequencer* GetSmoothScrollSequencer() const; diff --git a/build/patches/Allow-building-without-supervised-users.patch b/build/patches/Allow-building-without-supervised-users.patch index 6478f788..185ce0de 100644 --- a/build/patches/Allow-building-without-supervised-users.patch +++ b/build/patches/Allow-building-without-supervised-users.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -754,7 +754,6 @@ if (current_toolchain == default_toolchain) { +@@ -757,7 +757,6 @@ if (current_toolchain == default_toolchain) { "//components/dom_distiller/core:distiller_type_java", "//components/ntp_tiles:ntp_tiles_enums_java", "//components/offline_pages/core:offline_page_model_enums_java", @@ -34,7 +34,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java -@@ -69,7 +69,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; +@@ -67,7 +67,6 @@ import org.chromium.components.browser_ui.widget.displaystyle.UiConfig; import org.chromium.components.feature_engagement.EventConstants; import org.chromium.components.feature_engagement.Tracker; import org.chromium.components.prefs.PrefService; @@ -42,7 +42,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ import org.chromium.components.user_prefs.UserPrefs; import org.chromium.third_party.android.swiperefresh.SwipeRefreshLayout; import org.chromium.ui.base.DeviceFormFactor; -@@ -793,9 +792,7 @@ public class FeedSurfaceCoordinator +@@ -788,9 +787,7 @@ public class FeedSurfaceCoordinator * Returns true if the supervised user feed should be displayed. */ public boolean shouldDisplaySupervisedFeed() { @@ -56,7 +56,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3286,8 +3286,6 @@ static_library("browser") { +@@ -3271,8 +3271,6 @@ static_library("browser") { "feed/android/refresh_task_scheduler_impl.cc", "feed/android/refresh_task_scheduler_impl.h", "feed/android/web_feed_bridge.cc", @@ -68,7 +68,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn 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 -@@ -320,7 +320,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); @@ -92,7 +92,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 -@@ -690,10 +690,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { +@@ -694,10 +694,6 @@ void ProfileImpl::DoFinalInit(CreateMode create_mode) { prefs->SetTime(prefs::kProfileCreationTime, path_creation_time_); pref_change_registrar_.Init(prefs); @@ -103,7 +103,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1628,6 +1624,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1624,6 +1620,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -114,7 +114,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 -@@ -1213,23 +1213,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1210,23 +1210,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -138,7 +138,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if !BUILDFLAG(IS_ANDROID) if (profile->IsNewProfile()) { profile->GetPrefs()->SetBoolean(prefs::kHasSeenWelcomePage, false); -@@ -2037,9 +2020,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -2038,9 +2021,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -235,7 +235,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/components/supervised_user/core/browser/supervised_user_utils.cc --- a/components/supervised_user/core/browser/supervised_user_utils.cc +++ b/components/supervised_user/core/browser/supervised_user_utils.cc -@@ -119,6 +119,7 @@ GURL NormalizeUrl(const GURL& url) { +@@ -132,6 +132,7 @@ GURL NormalizeUrl(const GURL& url) { } bool AreWebFilterPrefsDefault(const PrefService& pref_service) { @@ -246,7 +246,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_utils.cc b/ diff --git a/components/supervised_user/core/common/features.cc b/components/supervised_user/core/common/features.cc --- a/components/supervised_user/core/common/features.cc +++ b/components/supervised_user/core/common/features.cc -@@ -115,4 +115,10 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { +@@ -143,4 +143,10 @@ bool IsShadowKidsApiWithSafeSitesEnabled() { return base::FeatureList::IsEnabled(kShadowKidsApiWithSafeSites); } diff --git a/build/patches/Allow-playing-audio-in-background.patch b/build/patches/Allow-playing-audio-in-background.patch index 07e5154b..24157a0a 100644 --- a/build/patches/Allow-playing-audio-in-background.patch +++ b/build/patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1197,6 +1197,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1230,6 +1230,12 @@ bool WebMediaPlayerImpl::HasAudio() const { return pipeline_metadata_.has_audio; } @@ -24,7 +24,7 @@ diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc void WebMediaPlayerImpl::EnabledAudioTracksChanged( const WebVector& enabledTrackIds) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3541,7 +3547,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3576,7 +3582,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { : HasAudio(); // Audio only stream is allowed to play when in background. 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 aaa2f376..67ffbf28 100644 --- a/build/patches/Always-open-browser-controls-in-new-tab.patch +++ b/build/patches/Always-open-browser-controls-in-new-tab.patch @@ -17,15 +17,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -35,6 +36,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; +@@ -36,6 +37,7 @@ import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.offlinepages.RequestCoordinatorBridge; import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.chrome.browser.tab.TabBrowserControlsConstraintsHelper; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.tabmodel.document.ChromeAsyncTabLauncher; - import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; -@@ -219,6 +221,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { + import org.chromium.chrome.browser.tasks.tab_groups.TabGroupModelFilter; +@@ -234,6 +236,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { Referrer referrer, boolean navigateToTab, @Nullable AdditionalNavigationParams additionalNavigationParams) { @@ -33,7 +33,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()); -@@ -235,6 +238,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -250,6 +253,7 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { @Override public void onOpenInNewTabInGroup(GURL url, Referrer referrer) { diff --git a/build/patches/Always-use-new-tab-page-for-default-home-page.patch b/build/patches/Always-use-new-tab-page-for-default-home-page.patch index ffc38a93..df874db6 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 @@ -54,7 +54,7 @@ diff --git a/components/search_engines/android/java/src/org/chromium/components/ diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -403,10 +403,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -405,10 +405,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( const base::android::JavaParamRef& jimage_translate_target_language_param_key, jboolean set_as_default) { diff --git a/build/patches/Ask-for-restart-on-connection-change.patch b/build/patches/Ask-for-restart-on-connection-change.patch index d59c8736..11d936eb 100644 --- a/build/patches/Ask-for-restart-on-connection-change.patch +++ b/build/patches/Ask-for-restart-on-connection-change.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../tabmodel/TabModelSelectorBase.java | 7 ++ .../sAskForRestartOnConnectionChange.java | 32 +++++ .../browser/tabmodel/TabModelSelector.java | 2 + - .../browser/tabmodel/TabModelUtils.java | 20 ++++ + .../browser/tabmodel/TabModelUtils.java | 18 +++ .../browser/tabmodel/TabWindowManager.java | 2 + .../tabmodel/TabWindowManagerImpl.java | 10 ++ .../Ask-for-restart-on-connection-change.grdp | 9 ++ @@ -48,7 +48,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../blink/renderer/core/frame/local_frame.cc | 2 + .../main_thread/frame_scheduler_impl.cc | 2 + .../main_thread/page_scheduler_impl.cc | 9 +- - 28 files changed, 312 insertions(+), 10 deletions(-) + 28 files changed, 310 insertions(+), 10 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sAskForRestartOnConnectionChange.java create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Ask-for-restart-on-connection-change.grdp create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Ask-for-restart-on-connection-change.inc @@ -264,7 +264,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 -@@ -1192,7 +1192,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1196,7 +1196,10 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { mActivity, mStatusIndicatorCoordinator, isUrlBarFocusedSupplier, @@ -345,20 +345,22 @@ 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 -@@ -11,6 +11,12 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -13,10 +13,14 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabSelectionType; import org.chromium.content_public.browser.WebContents; +import org.chromium.content_public.browser.Visibility; -+ -+import java.util.List; + import org.chromium.ui.base.WindowAndroid; + + import java.util.ArrayList; + import java.util.List; +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. -@@ -73,6 +79,20 @@ public class TabModelUtils { +@@ -79,6 +83,20 @@ public class TabModelUtils { return TabModel.INVALID_TAB_INDEX; } @@ -447,7 +449,7 @@ diff --git a/chrome/browser/ui/messages/android/java/res/layout/snackbar.xml b/c diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/Snackbar.java -@@ -125,6 +125,8 @@ public class Snackbar { +@@ -127,6 +127,8 @@ public class Snackbar { private String mTemplateText; private String mActionText; private Object mActionData; @@ -456,7 +458,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro private String mAccessibilityActionAnnouncement; private int mBackgroundColor; private int mTextApperanceResId; -@@ -193,6 +195,20 @@ public class Snackbar { +@@ -195,6 +197,20 @@ public class Snackbar { return this; } @@ -480,7 +482,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java --- a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java +++ b/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/browser/ui/messages/snackbar/SnackbarManager.java -@@ -284,6 +284,12 @@ public class SnackbarManager +@@ -285,6 +285,12 @@ public class SnackbarManager new SnackbarView( mActivity, this, @@ -496,7 +498,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 -@@ -53,6 +53,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -52,6 +52,7 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { protected final ViewGroup mSnackbarView; protected final TemplatePreservingTextView mMessageView; private final TextView mActionButtonView; @@ -504,16 +506,17 @@ 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; -@@ -99,10 +100,11 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -98,11 +99,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { public SnackbarView( Activity activity, OnClickListener listener, + OnClickListener dismissListener, Snackbar snackbar, ViewGroup parentView, - @Nullable WindowAndroid windowAndroid) { -- this(activity, listener, snackbar, parentView, windowAndroid, null); -+ this(activity, listener, dismissListener, snackbar, parentView, windowAndroid, null); + @Nullable WindowAndroid windowAndroid, + boolean isTablet) { +- this(activity, listener, snackbar, parentView, windowAndroid, null, isTablet); ++ this(activity, listener, dismissListener, snackbar, parentView, windowAndroid, null, isTablet); } /** @@ -525,7 +528,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro Snackbar snackbar, ViewGroup parentView, @Nullable WindowAndroid windowAndroid, -@@ -141,6 +144,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -142,6 +145,8 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { (TemplatePreservingTextView) mContainerView.findViewById(R.id.snackbar_message); mActionButtonView = (TextView) mContainerView.findViewById(R.id.snackbar_button); mActionButtonView.setOnClickListener(listener); @@ -534,7 +537,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro mProfileImageView = (ImageView) mContainerView.findViewById(R.id.snackbar_profile_image); mEdgeToEdgeSupplier = edgeToEdgeSupplier; mEdgeToEdgePadAdjuster = -@@ -373,6 +378,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { +@@ -374,6 +379,12 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver { mActionButtonView.setVisibility(View.VISIBLE); mActionButtonView.setContentDescription(snackbar.getActionText()); setViewText(mActionButtonView, snackbar.getActionText(), animate); @@ -550,7 +553,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 -@@ -886,6 +886,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { +@@ -890,6 +890,22 @@ void WebContentsAndroid::SetFocus(JNIEnv* env, jboolean focused) { view->SetFocus(focused); } @@ -576,7 +579,7 @@ diff --git a/content/browser/web_contents/web_contents_android.cc b/content/brow diff --git a/content/browser/web_contents/web_contents_android.h b/content/browser/web_contents/web_contents_android.h --- a/content/browser/web_contents/web_contents_android.h +++ b/content/browser/web_contents/web_contents_android.h -@@ -193,6 +193,7 @@ class CONTENT_EXPORT WebContentsAndroid { +@@ -195,6 +195,7 @@ class CONTENT_EXPORT WebContentsAndroid { void OnScaleFactorChanged(JNIEnv* env); void SetFocus(JNIEnv* env, jboolean focused); @@ -587,7 +590,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 -@@ -3504,8 +3504,10 @@ void WebContentsImpl::Stop() { +@@ -3532,8 +3532,10 @@ void WebContentsImpl::Stop() { void WebContentsImpl::SetPageFrozen(bool frozen) { TRACE_EVENT1("content", "WebContentsImpl::SetPageFrozen", "frozen", frozen); @@ -601,7 +604,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser diff --git a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java --- a/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/webcontents/WebContentsImpl.java -@@ -1168,6 +1168,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1169,6 +1169,12 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi WebContentsImplJni.get().setFocus(mNativeWebContentsAndroid, hasFocus); } @@ -614,7 +617,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon @Override public void setDisplayCutoutSafeArea(Rect insets) { if (mNativeWebContentsAndroid == 0) return; -@@ -1419,6 +1425,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi +@@ -1444,6 +1450,8 @@ public class WebContentsImpl implements WebContents, RenderFrameHostDelegate, Wi void setFocus(long nativeWebContentsAndroid, boolean focused); @@ -626,7 +629,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/webcon diff --git a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java --- a/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java +++ b/content/public/android/java/src/org/chromium/content_public/browser/WebContents.java -@@ -294,6 +294,8 @@ public interface WebContents extends Parcelable { +@@ -293,6 +293,8 @@ public interface WebContents extends Parcelable { */ void setFocus(boolean hasFocus); @@ -638,7 +641,7 @@ diff --git a/content/public/android/java/src/org/chromium/content_public/browser diff --git a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java --- a/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java +++ b/content/public/test/android/javatests/src/org/chromium/content_public/browser/test/mock/MockWebContents.java -@@ -197,6 +197,9 @@ public class MockWebContents implements WebContents { +@@ -199,6 +199,9 @@ public class MockWebContents implements WebContents { @Override public void setFocus(boolean hasFocus) {} @@ -683,7 +686,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 -@@ -4315,6 +4315,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { +@@ -4331,6 +4331,7 @@ void Document::DispatchUnloadEvents(UnloadEventTimingInfo* unload_timing_info) { } void Document::DispatchFreezeEvent() { @@ -694,7 +697,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 -@@ -3139,6 +3139,7 @@ void LocalFrame::DidFreeze() { +@@ -3172,6 +3172,7 @@ void LocalFrame::DidFreeze() { LoaderFreezeMode freeze_mode = GetLoaderFreezeMode(); GetDocument()->Fetcher()->SetDefersLoading(freeze_mode); Loader().SetDefersLoading(freeze_mode); @@ -702,7 +705,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ } void LocalFrame::DidResume() { -@@ -3153,6 +3154,7 @@ void LocalFrame::DidResume() { +@@ -3186,6 +3187,7 @@ void LocalFrame::DidResume() { GetDocument()->Fetcher()->SetDefersLoading(LoaderFreezeMode::kNone); Loader().SetDefersLoading(LoaderFreezeMode::kNone); @@ -713,7 +716,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc -@@ -966,7 +966,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( +@@ -967,7 +967,9 @@ SchedulingLifecycleState FrameSchedulerImpl::CalculateLifecycleState( if (!parent_page_scheduler_) return SchedulingLifecycleState::kNotThrottled; if (parent_page_scheduler_->IsFrozen()) { @@ -726,7 +729,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_sch diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc --- a/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.cc -@@ -239,10 +239,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) { +@@ -238,10 +238,12 @@ void PageSchedulerImpl::SetPageFrozen(bool frozen) { // it is desirable to reject the page freeze to prevent the scheduler from // being put in a bad state. See https://crbug.com/873214 for context of how // this can happen on the browser side. @@ -739,7 +742,7 @@ diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/page_sche PolicyUpdater policy_updater; SetPageFrozenImpl(frozen, policy_updater); } -@@ -802,7 +804,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { +@@ -799,7 +801,12 @@ bool PageSchedulerImpl::IsBackgrounded() const { // expire immediately when a page is backgrounded, which is undesirable in // headless mode. To prevent that, a page is never considerer backgrounded // when virtual time is enabled. diff --git a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index a3729a6a..a4f12f25 100644 --- a/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -95,7 +95,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" -@@ -582,7 +583,9 @@ double AudioContext::baseLatency() const { +@@ -586,7 +587,9 @@ double AudioContext::baseLatency() const { DCHECK(IsMainThread()); DCHECK(destination()); @@ -138,7 +138,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.cc b diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/third_party/blink/renderer/modules/webaudio/base_audio_context.h --- a/third_party/blink/renderer/modules/webaudio/base_audio_context.h +++ b/third_party/blink/renderer/modules/webaudio/base_audio_context.h -@@ -337,6 +337,8 @@ class MODULES_EXPORT BaseAudioContext +@@ -341,6 +341,8 @@ class MODULES_EXPORT BaseAudioContext // if the execution context does not exist. bool CheckExecutionContextAndThrowIfNecessary(ExceptionState&); @@ -150,7 +150,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/base_audio_context.h b/ diff --git a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc --- a/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc +++ b/third_party/blink/renderer/modules/webaudio/offline_audio_context.cc -@@ -368,6 +368,7 @@ void OfflineAudioContext::FireCompletionEvent() { +@@ -369,6 +369,7 @@ void OfflineAudioContext::FireCompletionEvent() { if (!rendered_buffer) { return; } diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch index b3bd0b51..d99bb1c8 100644 --- a/build/patches/Block-gateway-attacks-via-websockets.patch +++ b/build/patches/Block-gateway-attacks-via-websockets.patch @@ -7,7 +7,7 @@ This approach is not comprehensive, see also: License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../execution_context/execution_context.cc | 16 ++++++++++ + .../execution_context/execution_context.cc | 15 +++++++++ .../execution_context/execution_context.h | 1 + .../renderer/core/loader/base_fetch_context.h | 1 + .../core/loader/frame_fetch_context.cc | 20 ++++++++++++ @@ -19,12 +19,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../websockets/websocket_channel_impl.cc | 5 +++ .../modules/websockets/websocket_common.cc | 30 ++++++++++++++++++ .../modules/websockets/websocket_common.h | 4 +++ - 12 files changed, 133 insertions(+), 2 deletions(-) + 12 files changed, 132 insertions(+), 2 deletions(-) diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -702,6 +702,22 @@ void ExecutionContext::WriteIntoTrace( +@@ -709,6 +709,21 @@ void ExecutionContext::WriteIntoTrace( proto->set_world_type(GetWorldType(*this)); } @@ -40,8 +40,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context + case network::mojom::IPAddressSpace::kLocal: + return "local"; + } -+ NOTREACHED(); -+ return "public"; ++ NOTREACHED_NORETURN(); +} + bool ExecutionContext::CrossOriginIsolatedCapabilityOrDisabledWebSecurity() @@ -50,7 +49,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -390,6 +390,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable, void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space); HeapObserverSet& ContextLifecycleObserverSet(); @@ -72,7 +71,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -622,6 +622,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { +@@ -624,6 +624,26 @@ bool FrameFetchContext::ShouldBlockRequestByInspector(const KURL& url) const { return should_block_request; } diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch index f8951646..d08f6743 100644 --- a/build/patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/patches/Block-qjz9zk-or-trk-requests.patch @@ -107,7 +107,7 @@ diff --git a/components/url_formatter/url_fixer.cc b/components/url_formatter/ur diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc -@@ -852,6 +852,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -864,6 +864,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() RegisterPseudoScheme(url::kJavaScriptScheme); RegisterPseudoScheme(kViewSourceScheme); RegisterPseudoScheme(kGoogleChromeScheme); @@ -118,7 +118,7 @@ diff --git a/content/browser/child_process_security_policy_impl.cc b/content/bro diff --git a/net/BUILD.gn b/net/BUILD.gn --- a/net/BUILD.gn +++ b/net/BUILD.gn -@@ -1012,6 +1012,8 @@ component("net") { +@@ -1014,6 +1014,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -203,7 +203,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc #include "base/synchronization/lock.h" #include "base/task/single_thread_task_runner.h" #include "base/types/pass_key.h" -@@ -47,6 +48,7 @@ +@@ -49,6 +50,7 @@ #include "net/url_request/url_request_redirect_job.h" #include "url/gurl.h" #include "url/origin.h" @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -602,6 +604,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -605,6 +607,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -247,8 +247,8 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur diff --git a/url/url_constants.h b/url/url_constants.h --- a/url/url_constants.h +++ b/url/url_constants.h -@@ -33,6 +33,7 @@ inline constexpr char kDataScheme[] = "data"; - inline constexpr char16_t kDataScheme16[] = u"data"; +@@ -36,6 +36,7 @@ inline constexpr char16_t kDataScheme16[] = u"data"; + inline constexpr char kDrivefsScheme[] = "drivefs"; inline constexpr char kFileScheme[] = "file"; inline constexpr char16_t kFileScheme16[] = u"file"; +inline constexpr char kTraceScheme[] = "trk"; diff --git a/build/patches/Bookmarks-select-all-menu-entry.patch b/build/patches/Bookmarks-select-all-menu-entry.patch index 25a20d19..b7cce407 100644 --- a/build/patches/Bookmarks-select-all-menu-entry.patch +++ b/build/patches/Bookmarks-select-all-menu-entry.patch @@ -2,12 +2,14 @@ From: csagan5 <32685696+csagan5@users.noreply.github.com> Date: Sat, 9 Apr 2022 23:01:55 +0200 Subject: Bookmarks select all menu entry +Requires: Restore-BookmarkToolbar-setCurrentFolder.patch + License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../res/menu/bookmark_toolbar_menu_improved.xml | 7 +++++++ - .../chrome/browser/bookmarks/BookmarkToolbar.java | 15 +++++++++++++++ - .../ui/android/strings/android_chrome_strings.grd | 3 +++ - 3 files changed, 25 insertions(+) + .../menu/bookmark_toolbar_menu_improved.xml | 7 +++++++ + .../browser/bookmarks/BookmarkToolbar.java | 18 ++++++++++++++++++ + .../android/strings/android_chrome_strings.grd | 3 +++ + 3 files changed, 28 insertions(+) diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml --- a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml @@ -29,7 +31,7 @@ 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/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java -@@ -28,6 +28,8 @@ import java.util.ArrayList; +@@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -38,15 +40,24 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm /** * Main toolbar of bookmark UI. It is responsible for displaying title and buttons associated with * the current context. -@@ -159,6 +161,7 @@ public class BookmarkToolbar extends SelectableListToolbar - +@@ -189,12 +191,16 @@ public class BookmarkToolbar extends SelectableListToolbar void setCurrentFolder(BookmarkId folder) { mCurrentFolder = mBookmarkModel.getBookmarkById(folder); -+ getMenu().findItem(R.id.select_all_menu_id).setVisible(true); + enableImportExportMenu(); ++ enableSelectAllMenu(); + } + + void enableImportExportMenu() { getMenu().findItem(R.id.import_menu_id).setVisible(true); getMenu().findItem(R.id.export_menu_id).setVisible(true); } -@@ -187,6 +190,17 @@ public class BookmarkToolbar extends SelectableListToolbar ++ ++ void enableSelectAllMenu() { ++ getMenu().findItem(R.id.select_all_menu_id).setVisible(true); + } + + void setNavigateBackRunnable(Runnable navigateBackRunnable) { +@@ -221,6 +227,17 @@ public class BookmarkToolbar extends SelectableListToolbar mExportBookmarkRunnable.run(); return true; } @@ -64,7 +75,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm return mMenuIdClickedFunction.apply(menuItem.getItemId()); } -@@ -204,6 +218,7 @@ public class BookmarkToolbar extends SelectableListToolbar +@@ -238,6 +255,7 @@ public class BookmarkToolbar extends SelectableListToolbar getMenu().findItem(R.id.import_menu_id).setVisible(mCurrentFolder != null); getMenu().findItem(R.id.export_menu_id).setVisible(mCurrentFolder != null); @@ -75,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm 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 -@@ -250,6 +250,9 @@ CHAR_LIMIT guidelines: +@@ -245,6 +245,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch index 28ba00c9..2fdffa73 100644 --- a/build/patches/Bromite-auto-updater.patch +++ b/build/patches/Bromite-auto-updater.patch @@ -33,12 +33,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/omaha/UpdateStatusProvider.java | 168 +++++++---- .../browser/omaha/VersionNumberGetter.java | 3 +- .../omaha/inline/InlineUpdateController.java | 57 ++++ + .../safety_hub/SafetyHubFetchService.java | 5 - .../strings/android_chrome_strings.grd | 23 +- .../endpoint_fetcher/endpoint_fetcher.cc | 101 ++++++- .../endpoint_fetcher/endpoint_fetcher.h | 23 +- .../Bromite-auto-updater.inc | 3 + .../Bromite-auto-updater.inc | 1 + - 30 files changed, 1225 insertions(+), 69 deletions(-) + 31 files changed, 1225 insertions(+), 74 deletions(-) create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/CromiteUpdateStatusProvider.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/omaha/inline/BromiteInlineUpdateController.java create mode 100644 chrome/browser/endpoint_fetcher/BUILD.gn @@ -55,8 +56,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/build/android/java/templates/BuildConfig.template b/build/android/java/templates/BuildConfig.template --- a/build/android/java/templates/BuildConfig.template +++ b/build/android/java/templates/BuildConfig.template -@@ -94,6 +94,8 @@ public class BuildConfig { - public static MAYBE_FINAL boolean IS_FOR_TEST MAYBE_FALSE; +@@ -100,6 +100,8 @@ public class BuildConfig { + public static MAYBE_FINAL boolean IS_CRONET_BUILD MAYBE_FALSE; #endif + public static MAYBE_FINAL String BUILD_TARGET_CPU = _BUILD_TARGET_CPU; @@ -80,7 +81,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -874,6 +874,8 @@ chrome_java_sources = [ +@@ -869,6 +869,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", @@ -671,7 +672,7 @@ new file mode 100644 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -2796,6 +2796,12 @@ static_library("browser") { +@@ -2779,6 +2779,12 @@ static_library("browser") { } if (is_android) { @@ -752,7 +753,7 @@ new file mode 100644 +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointFetcher_jni.h" +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointResponse_jni.h" +#include "chrome/browser/endpoint_fetcher/jni_headers/EndpointHeaderResponse_jni.h" -+#include "chrome/browser/profiles/profile_android.h" ++#include "chrome/browser/profiles/profile.h" +#include "chrome/browser/signin/identity_manager_factory.h" +#include "chrome/common/channel_info.h" +#include "components/signin/public/base/consent_level.h" @@ -812,7 +813,7 @@ new file mode 100644 + std::vector scopes; + base::android::AppendJavaStringArrayToStringVector(env, jscopes, &scopes); + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + base::android::ConvertJavaStringToUTF8(env, joauth_consumer_name), @@ -823,7 +824,7 @@ new file mode 100644 + net::NetworkTrafficAnnotationTag::FromJavaAnnotation( + jannotation_hash_code), + IdentityManagerFactory::GetForProfile( -+ ProfileAndroid::FromProfileAndroid(jprofile)), ++ Profile::FromJavaObject(jprofile)), + // TODO(crbug.com/1466445): ConsentLevel::kSync is deprecated and should + // be removed. See ConsentLevel::kSync documentation for details. + signin::ConsentLevel::kSync); @@ -844,7 +845,7 @@ new file mode 100644 + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), @@ -871,7 +872,7 @@ new file mode 100644 + jint jannotation_hash_code, + const base::android::JavaParamRef& jcallback) { + auto endpoint_fetcher = std::make_unique( -+ ProfileAndroid::FromProfileAndroid(jprofile) ++ Profile::FromJavaObject(jprofile) + ->GetDefaultStoragePartition() + ->GetURLLoaderFactoryForBrowserProcess(), + GURL(base::android::ConvertJavaStringToUTF8(env, jurl)), @@ -1084,7 +1085,7 @@ new file mode 100644 diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -240,6 +240,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -253,6 +253,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kPriceChangeModule, &kPwaRestoreUi, &kPwaRestoreUiAtStartup, @@ -1095,14 +1096,14 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -327,6 +327,7 @@ public abstract class ChromeFeatureList { +@@ -335,6 +335,7 @@ public abstract class ChromeFeatureList { public static final String INCOGNITO_REAUTHENTICATION_FOR_ANDROID = "IncognitoReauthenticationForAndroid"; public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot"; + public static final String INLINE_UPDATE_FLOW = "InlineUpdateFlow"; public static final String INTEREST_FEED_V2_HEARTS = "InterestFeedV2Hearts"; public static final String IP_PROTECTION_V1 = "IpProtectionV1"; - public static final String IP_PROTECTION_UX = "IpProtectionUx"; + public static final String KID_FRIENDLY_CONTENT_FEED = "KidFriendlyContentFeed"; diff --git a/chrome/browser/omaha/android/BUILD.gn b/chrome/browser/omaha/android/BUILD.gn --- a/chrome/browser/omaha/android/BUILD.gn +++ b/chrome/browser/omaha/android/BUILD.gn @@ -1645,10 +1646,32 @@ new file mode 100644 + */ + void completeUpdate(); +} +diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +--- a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java ++++ b/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/browser/safety_hub/SafetyHubFetchService.java +@@ -53,9 +53,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen + if (syncService != null) { + syncService.addSyncStateChangedListener(this); + } +- +- // Fetch latest update status. +- UpdateStatusProvider.getInstance().addObserver(mUpdateCallback); + } + + @Override +@@ -64,8 +61,6 @@ public class SafetyHubFetchService implements SyncService.SyncStateChangedListen + if (syncService != null) { + syncService.removeSyncStateChangedListener(this); + } +- +- UpdateStatusProvider.getInstance().removeObserver(mUpdateCallback); + } + + /** See {@link ChromeActivitySessionTracker#onForegroundSessionStart()}. */ 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 -@@ -2135,6 +2135,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2199,6 +2199,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 @@ -1661,7 +1684,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro -@@ -3909,7 +3915,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4050,7 +4056,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d @@ -1673,7 +1696,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro Newer version is available -@@ -3920,6 +3929,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4061,6 +4070,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d Android version is unsupported diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch index 68da6dd5..ea6e6538 100644 --- a/build/patches/Bromite-subresource-adblocker.patch +++ b/build/patches/Bromite-subresource-adblocker.patch @@ -68,7 +68,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 -@@ -339,6 +339,7 @@ if (current_toolchain == default_toolchain) { +@@ -338,6 +338,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/modules/cablev2_authenticator/public:java", "//chrome/android/modules/stack_unwinder/provider:java", "//chrome/android/webapk/libs/client:client_java", @@ -79,7 +79,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 -@@ -424,6 +424,7 @@ chrome_java_resources = [ +@@ -426,6 +426,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", @@ -98,7 +98,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 -@@ -965,6 +965,8 @@ chrome_java_sources = [ +@@ -954,6 +954,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -182,7 +182,7 @@ 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 -@@ -247,6 +247,24 @@ found in the LICENSE file. +@@ -253,6 +253,24 @@ found in the LICENSE file. @@ -428,7 +428,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelImpl.java -@@ -864,7 +864,7 @@ public class TabModelImpl extends TabModelJniBridge { +@@ -865,7 +865,7 @@ public class TabModelImpl extends TabModelJniBridge { protected boolean createTabWithWebContents( Tab parent, Profile profile, WebContents webContents) { return getTabCreator(profile.isOffTheRecord()) @@ -440,7 +440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabMod diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd -@@ -15480,6 +15480,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -15679,6 +15679,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -469,7 +469,7 @@ diff --git a/chrome/browser/after_startup_task_utils.cc b/chrome/browser/after_s using content::BrowserThread; namespace { -@@ -132,6 +134,8 @@ void SetBrowserStartupIsComplete() { +@@ -134,6 +136,8 @@ void SetBrowserStartupIsComplete() { } GetAfterStartupTasks().clear(); GetAfterStartupTasks().shrink_to_fit(); @@ -511,7 +511,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc --- a/chrome/browser/browser_process_impl.cc +++ b/chrome/browser/browser_process_impl.cc -@@ -1199,6 +1199,27 @@ BrowserProcessImpl::component_updater() { +@@ -1197,6 +1197,27 @@ BrowserProcessImpl::component_updater() { return component_updater_.get(); } @@ -702,8 +702,8 @@ diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser 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 -@@ -222,6 +222,20 @@ CHAR_LIMIT guidelines: - Control your data & account +@@ -217,6 +217,20 @@ CHAR_LIMIT guidelines: + Advanced + @@ -726,7 +726,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 -@@ -2731,6 +2731,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2754,6 +2754,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -1550,7 +1550,7 @@ new file mode 100644 diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc -@@ -15,6 +15,9 @@ +@@ -17,6 +17,9 @@ #include "base/strings/stringprintf.h" #include "base/trace_event/trace_event.h" #include "base/trace_event/traced_value.h" @@ -1560,7 +1560,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f #include "components/subresource_filter/content/browser/ad_tagging_utils.h" #include "components/subresource_filter/content/browser/content_subresource_filter_web_contents_helper.h" #include "components/subresource_filter/content/browser/profile_interaction_manager.h" -@@ -152,6 +155,7 @@ ContentSubresourceFilterThrottleManager:: +@@ -108,6 +111,7 @@ ContentSubresourceFilterThrottleManager:: profile_interaction_manager_( std::make_unique( profile_context)), @@ -1568,7 +1568,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -675,6 +679,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -641,6 +645,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } @@ -1601,7 +1601,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f diff --git a/components/subresource_filter/content/shared/browser/ruleset_service.cc b/components/subresource_filter/content/shared/browser/ruleset_service.cc --- a/components/subresource_filter/content/shared/browser/ruleset_service.cc +++ b/components/subresource_filter/content/shared/browser/ruleset_service.cc -@@ -50,9 +50,7 @@ namespace { +@@ -52,9 +52,7 @@ namespace { void RecordIndexAndWriteRulesetResult( std::string_view uma_tag, RulesetService::IndexAndWriteRulesetResult result) { @@ -1612,7 +1612,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic } // Implements operations on a `sentinel file`, which is used as a safeguard to -@@ -231,10 +229,13 @@ RulesetService::RulesetService( +@@ -235,10 +233,13 @@ RulesetService::RulesetService( RulesetService::~RulesetService() {} void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( @@ -1628,7 +1628,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Trying to store a ruleset with the same version for a second time would // not only be futile, but would fail on Windows due to "File System // Tunneling" as long as the previously stored copy of the rules is still -@@ -244,13 +245,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( +@@ -248,13 +249,16 @@ void RulesetService::IndexAndStoreAndPublishRulesetIfNeeded( if (most_recently_indexed_version.IsCurrentFormatVersion() && most_recently_indexed_version.content_version == unindexed_ruleset_info.content_version) { @@ -1645,7 +1645,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic return; } -@@ -270,6 +274,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -274,6 +278,23 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( const RulesetConfig& config, const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info) { @@ -1669,7 +1669,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic base::ScopedBlockingCall scoped_blocking_call(FROM_HERE, base::BlockingType::MAY_BLOCK); -@@ -277,6 +298,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -281,6 +302,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( unindexed_ruleset_info); if (!unindexed_ruleset_stream_generator.ruleset_stream()) { @@ -1677,7 +1677,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_OPENING_UNINDEXED_RULESET); -@@ -291,6 +313,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -295,6 +317,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( indexed_ruleset_base_dir, indexed_version); if (!base::CreateDirectory(indexed_ruleset_version_dir)) { @@ -1685,7 +1685,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_CREATING_VERSION_DIR); -@@ -299,13 +322,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -303,13 +326,11 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( SentinelFile sentinel_file(indexed_ruleset_version_dir); if (sentinel_file.IsPresent()) { @@ -1701,7 +1701,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_CREATING_SENTINEL_FILE); -@@ -320,6 +341,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -324,6 +345,7 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( RulesetIndexer indexer; if (!(*g_index_ruleset_func)(config, &unindexed_ruleset_stream_generator, &indexer)) { @@ -1709,7 +1709,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic RecordIndexAndWriteRulesetResult( config.uma_tag, IndexAndWriteRulesetResult::FAILED_PARSING_UNINDEXED_RULESET); -@@ -339,8 +361,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( +@@ -343,8 +365,12 @@ IndexedRulesetVersion RulesetService::IndexAndWriteRuleset( WriteRuleset(indexed_ruleset_version_dir, unindexed_ruleset_info.license_path, indexer.data()); RecordIndexAndWriteRulesetResult(config.uma_tag, result); @@ -1721,12 +1721,12 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic + + LOG(INFO) << "RulesetService: successful parsing."; - DCHECK(indexed_version.IsValid()); + CHECK(indexed_version.IsValid(), base::NotFatalUntil::M129); return indexed_version; -@@ -466,6 +492,7 @@ void RulesetService::IndexAndStoreRuleset( +@@ -472,6 +498,7 @@ void RulesetService::IndexAndStoreRuleset( void RulesetService::OnWrittenRuleset(WriteRulesetCallback result_callback, const IndexedRulesetVersion& version) { - DCHECK(!result_callback.is_null()); + CHECK(!result_callback.is_null(), base::NotFatalUntil::M129); + LOG(INFO) << "RulesetService: valid version: " << version.IsValid(); if (!version.IsValid()) return; @@ -1743,7 +1743,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic // Get the ruleset version associated with the current local_state_. IndexedRulesetVersion GetMostRecentlyIndexedVersion() const; -@@ -219,6 +219,12 @@ class RulesetService { +@@ -221,6 +221,12 @@ class RulesetService { const base::FilePath& indexed_ruleset_base_dir, const UnindexedRulesetInfo& unindexed_ruleset_info); @@ -1759,7 +1759,7 @@ diff --git a/components/subresource_filter/content/shared/browser/ruleset_servic diff --git a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc --- a/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc +++ b/components/subresource_filter/content/shared/browser/unindexed_ruleset_stream_generator.cc -@@ -12,6 +12,7 @@ +@@ -13,6 +13,7 @@ #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h" #include "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h" #include "ui/base/resource/resource_bundle.h" @@ -1767,7 +1767,7 @@ diff --git a/components/subresource_filter/content/shared/browser/unindexed_rule namespace subresource_filter { -@@ -46,6 +47,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile( +@@ -49,6 +50,8 @@ void UnindexedRulesetStreamGenerator::GenerateStreamFromFile( ruleset_size_ = unindexed_ruleset_file.GetLength(); @@ -1949,10 +1949,10 @@ diff --git a/components/subresource_filter/core/browser/verified_ruleset_dealer. #include "base/functional/callback_helpers.h" #include "base/location.h" +#include "base/logging.h" + #include "base/not_fatal_until.h" #include "base/notreached.h" #include "base/task/sequenced_task_runner.h" - #include "base/trace_event/trace_event.h" -@@ -38,6 +39,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( +@@ -39,6 +40,9 @@ RulesetFilePtr VerifiedRulesetDealer::OpenAndSetRulesetFile( TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("loading"), "VerifiedRulesetDealer::OpenAndSetRulesetFile", "file_valid", file->IsValid()); @@ -1971,9 +1971,9 @@ diff --git a/components/subresource_filter/core/common/indexed_ruleset.cc b/comp #include "base/hash/hash.h" +#include "base/logging.h" #include "base/metrics/histogram_macros.h" + #include "base/not_fatal_until.h" #include "base/trace_event/trace_event.h" - #include "components/subresource_filter/core/common/first_party_origin.h" -@@ -36,7 +37,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, +@@ -37,7 +38,9 @@ VerifyStatus GetVerifyStatus(base::span buffer, // least once. The verifier detects a subset of the errors detected by the // checksum, and is unneeded once expected_checksum is consistently nonzero. flatbuffers::Verifier verifier(buffer.data(), buffer.size()); diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch index 32051026..b94a44dd 100644 --- a/build/patches/Chrome-web-store-protection.patch +++ b/build/patches/Chrome-web-store-protection.patch @@ -190,7 +190,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api switch (status) { case kCanRequest: return api::webstore_private::ExtensionInstallStatus::kCanRequest; -@@ -1155,7 +1162,8 @@ ExtensionFunction::ResponseAction +@@ -1165,7 +1172,8 @@ ExtensionFunction::ResponseAction WebstorePrivateIsInIncognitoModeFunction::Run() { Profile* profile = Profile::FromBrowserContext(browser_context()); return RespondNow(ArgumentList(IsInIncognitoMode::Results::Create( @@ -200,7 +200,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api } WebstorePrivateIsPendingCustodianApprovalFunction:: -@@ -1250,11 +1258,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { +@@ -1260,11 +1268,14 @@ WebstorePrivateGetReferrerChainFunction::Run() { request.mutable_referrer_chain_options()->set_recent_navigations_to_collect( recent_navigations_to_collect); @@ -750,9 +750,9 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br #include "extensions/common/error_utils.h" #include "extensions/common/extension.h" +#include "extensions/common/extension_features.h" - #include "extensions/common/extension_icon_set.h" #include "extensions/common/extension_id.h" #include "extensions/common/extension_urls.h" + #include "extensions/common/icons/extension_icon_set.h" @@ -90,6 +94,27 @@ std::vector CreateWarningsList(const Extension* extension) { return warnings_list; } @@ -831,7 +831,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, extension_id_)); } -@@ -642,8 +666,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( +@@ -644,8 +668,7 @@ ExtensionFunction::ResponseAction ManagementUninstallFunctionBase::Uninstall( ->GetDelegate(); target_extension_id_ = target_extension_id; const Extension* target_extension = @@ -841,7 +841,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); if (!target_extension || !ShouldExposeViaManagementAPI(*target_extension)) { return RespondNow(Error(keys::kNoExtensionError, target_extension_id_)); -@@ -707,8 +730,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { +@@ -709,8 +732,7 @@ void ManagementUninstallFunctionBase::UninstallExtension() { // The extension can be uninstalled in another window while the UI was // showing. Do nothing in that case. const Extension* target_extension = @@ -851,7 +851,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br ExtensionRegistry::EVERYTHING); std::string error; bool success = false; -@@ -789,8 +811,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { +@@ -791,8 +813,7 @@ ExtensionFunction::ResponseAction ManagementCreateAppShortcutFunction::Run() { management::CreateAppShortcut::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -861,7 +861,7 @@ diff --git a/extensions/browser/api/management/management_api.cc b/extensions/br if (!extension) { return RespondNow(Error( ErrorUtils::FormatErrorMessage(keys::kNoExtensionError, params->id))); -@@ -840,8 +861,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { +@@ -842,8 +863,7 @@ ExtensionFunction::ResponseAction ManagementSetLaunchTypeFunction::Run() { management::SetLaunchType::Params::Create(args()); EXTENSION_FUNCTION_VALIDATE(params); const Extension* extension = @@ -1110,8 +1110,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc --- a/extensions/common/extension_features.cc +++ b/extensions/common/extension_features.cc -@@ -163,4 +163,19 @@ BASE_FEATURE(kUseItemSnippetsAPI, - "UseItemSnippetsAPI", +@@ -179,4 +179,19 @@ BASE_FEATURE(kUseNewServiceWorkerTaskQueue, + "UseNewServiceWorkerTaskQueue", base::FEATURE_DISABLED_BY_DEFAULT); +// Activates the auto update of extensions. @@ -1133,9 +1133,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h --- a/extensions/common/extension_features.h +++ b/extensions/common/extension_features.h -@@ -196,6 +196,10 @@ BASE_DECLARE_FEATURE(kDeclarativeNetRequestResponseHeaderMatching); - // If enabled, use the new CWS itemSnippets API to fetch extension info. - BASE_DECLARE_FEATURE(kUseItemSnippetsAPI); +@@ -211,6 +211,10 @@ BASE_DECLARE_FEATURE(kUseItemSnippetsAPI); + // If enabled, use the new simpler, more efficient service worker task queue. + BASE_DECLARE_FEATURE(kUseNewServiceWorkerTaskQueue); +BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate); + diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch index bf15aed5..ec7b5ecf 100644 --- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch +++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch @@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p diff --git a/services/network/network_context.cc b/services/network/network_context.cc --- a/services/network/network_context.cc +++ b/services/network/network_context.cc -@@ -1186,6 +1186,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time, +@@ -1247,6 +1247,8 @@ void NetworkContext::ClearHttpCache(base::Time start_time, base::BindOnce(&NetworkContext::OnHttpCacheCleared, base::Unretained(this), std::move(callback)))); diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch index 59d71d83..9583bb15 100644 --- a/build/patches/Client-hints-overrides.patch +++ b/build/patches/Client-hints-overrides.patch @@ -44,7 +44,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc --- a/content/browser/client_hints/client_hints.cc +++ b/content/browser/client_hints/client_hints.cc -@@ -55,6 +55,7 @@ +@@ -60,6 +60,7 @@ #include "third_party/blink/public/common/permissions_policy/origin_with_possible_wildcards.h" #include "third_party/blink/public/common/permissions_policy/permissions_policy.h" #include "third_party/blink/public/common/user_agent/user_agent_metadata.h" @@ -52,7 +52,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" -@@ -516,7 +517,8 @@ void AddPrefersReducedTransparencyHeader(net::HttpRequestHeaders* headers, +@@ -521,7 +522,8 @@ void AddPrefersReducedTransparencyHeader(net::HttpRequestHeaders* headers, : network::kPrefersReducedTransparencyNoPreference); } @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie return network::IsOriginPotentiallyTrustworthy(origin); } -@@ -718,7 +720,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -723,7 +725,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -72,7 +72,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -900,10 +903,12 @@ void AddRequestClientHintsHeaders( +@@ -905,10 +908,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -92,7 +92,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1194,6 +1194,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1202,6 +1202,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -133,7 +133,7 @@ new file mode 100644 diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc -@@ -102,6 +102,7 @@ const size_t kMaxRestarts = 32; +@@ -107,6 +107,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -266,7 +266,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir if (ShouldSendClientHint(policy, resource_origin, is_1p_origin, WebClientHintsType::kUAArch, hints_preferences)) { SetHttpHeader(WebClientHintsType::kUAArch, -@@ -656,6 +656,8 @@ bool BaseFetchContext::ShouldSendClientHint( +@@ -667,6 +667,8 @@ bool BaseFetchContext::ShouldSendClientHint( bool is_1p_origin, network::mojom::blink::WebClientHintsType type, const ClientHintsPreferences& hints_preferences) const { @@ -278,7 +278,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/thir 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 -@@ -338,6 +338,11 @@ +@@ -337,6 +337,11 @@ name: "AtomicMoveAPI", status: "test", }, diff --git a/build/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch index de20b2ae..4d4dc023 100644 --- a/build/patches/Close-Sessions-On-Ip-Change.patch +++ b/build/patches/Close-Sessions-On-Ip-Change.patch @@ -87,7 +87,7 @@ new file mode 100644 diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -447,7 +447,7 @@ const base::FeatureParam kIpPrivacyFallbackToDirect{ +@@ -436,7 +436,7 @@ const base::FeatureParam kIpPrivacyDebugExperimentArm{ // NetworkChangeNotifier::AreNetworkHandlesSupported). #if BUILDFLAG(IS_ANDROID) inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default = diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch index 1beaa0ca..16f9ffc2 100644 --- a/build/patches/Content-settings-infrastructure.patch +++ b/build/patches/Content-settings-infrastructure.patch @@ -150,7 +150,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html --- a/chrome/browser/resources/settings/privacy_page/privacy_page.html +++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -1504,4 +1504,5 @@ +@@ -1489,4 +1489,5 @@ @@ -709,7 +709,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn -@@ -2142,6 +2142,7 @@ static_library("ui") { +@@ -2165,6 +2165,7 @@ static_library("ui") { "//components/commerce/core:shopping_service", "//components/commerce/core/webui", "//components/endpoint_fetcher:endpoint_fetcher", @@ -817,7 +817,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom #include "components/page_info/core/features.h" #include "components/page_info/core/proto/about_this_site_metadata.pb.h" #include "components/page_info/page_info.h" -@@ -259,7 +261,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -246,7 +248,14 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( ContentSetting setting = info.setting == CONTENT_SETTING_DEFAULT ? info.default_setting : info.setting; @@ -832,7 +832,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.cc b/chrom // For guard content settings and Automatic Picture-in-Picture, ASK is treated // as an "on" state. const bool show_blocked_badge = -@@ -548,6 +557,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( +@@ -530,6 +539,17 @@ const ui::ImageModel PageInfoViewFactory::GetPermissionIcon( icon = &vector_icons::kPointerLockIcon; break; default: @@ -868,7 +868,7 @@ diff --git a/chrome/browser/ui/views/page_info/page_info_view_factory.h b/chrome diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc --- a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc +++ b/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc -@@ -38,6 +38,30 @@ +@@ -39,6 +39,30 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/style/typography.h" #include "ui/views/view_class_properties.h" @@ -899,7 +899,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(PermissionToggleRowView, kRowSubTitleCameraElementId); -@@ -58,16 +82,12 @@ PermissionToggleRowView::PermissionToggleRowView( +@@ -62,16 +86,12 @@ PermissionToggleRowView::PermissionToggleRowView( // instead of adding it as the only child. SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -917,7 +917,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (permission.requesting_origin.has_value()) { std::u16string requesting_origin_string; switch (permission.type) { -@@ -157,6 +177,90 @@ void PermissionToggleRowView::UpdatePermission( +@@ -167,6 +187,90 @@ void PermissionToggleRowView::UpdatePermission( UpdateUiOnPermissionChanged(); } @@ -1008,7 +1008,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -165,24 +269,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { +@@ -175,24 +279,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { void PermissionToggleRowView::InitForUserSource( bool should_show_spacer_view, const std::u16string& toggle_accessible_name) { @@ -1033,14 +1033,14 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c - gfx::Insets::VH(0, icon_label_spacing)); toggle_button->SetTooltipText(PageInfoUI::PermissionTooltipUiString( permission_.type, permission_.requesting_origin)); - toggle_button->SetAccessibleName(toggle_accessible_name); + toggle_button->GetViewAccessibility().SetName(toggle_accessible_name); - toggle_button_ = row_view_->AddControl(std::move(toggle_button)); + choose_button_ = row_view_->AddControlUnderLabel(std::move(toggle_button)); const int icon_size = GetLayoutConstant(PAGE_INFO_ICON_SIZE); // TODO(crbug.com/40101962): Update below code to only display the updated -@@ -240,9 +339,6 @@ void PermissionToggleRowView::InitForUserSource( +@@ -250,9 +349,6 @@ void PermissionToggleRowView::InitForUserSource( auto spacer_view = std::make_unique(); spacer_view->SetPreferredSize(gfx::Size(icon_size, icon_size)); spacer_view_ = row_view_->AddControl(std::move(spacer_view)); @@ -1050,7 +1050,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -314,6 +410,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -324,6 +420,33 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { } } } @@ -1109,7 +1109,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch METADATA_HEADER(PermissionToggleRowView, views::View) public: -@@ -64,6 +70,12 @@ class PermissionToggleRowView : public views::View { +@@ -66,6 +72,12 @@ class PermissionToggleRowView : public views::View { private: friend class test::PageInfoBubbleViewTestApi; @@ -1122,7 +1122,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.h b/ch void OnToggleButtonPressed(); void InitForUserSource(bool should_show_spacer_view, const std::u16string& toggle_accessible_name); -@@ -80,6 +92,10 @@ class PermissionToggleRowView : public views::View { +@@ -82,6 +94,10 @@ class PermissionToggleRowView : public views::View { raw_ptr toggle_button_ = nullptr; raw_ptr spacer_view_ = nullptr; @@ -1144,7 +1144,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "build/branding_buildflags.h" #include "build/build_config.h" #include "build/buildflag.h" -@@ -70,6 +71,9 @@ +@@ -74,6 +75,9 @@ #include "components/google/core/common/google_util.h" #include "components/history/core/common/pref_names.h" #include "components/omnibox/common/omnibox_features.h" @@ -1154,7 +1154,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide #include "components/password_manager/core/browser/leak_detection_dialog_utils.h" #include "components/password_manager/core/browser/manage_passwords_referrer.h" #include "components/password_manager/core/common/password_manager_features.h" -@@ -3680,6 +3684,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3717,6 +3721,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1223,7 +1223,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -230,13 +232,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { +@@ -231,13 +233,13 @@ const ContentSettingsTypeNameEntry kContentSettingsTypeGroupNames[] = { {ContentSettingsType::TOP_LEVEL_TPCD_ORIGIN_TRIAL, nullptr}, }; @@ -1244,7 +1244,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -468,6 +470,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -469,6 +471,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1258,7 +1258,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -481,11 +490,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -482,11 +491,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1284,15 +1284,15 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -500,7 +522,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -501,7 +523,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } - - NOTREACHED() << static_cast(type) - << " is not a recognized content settings type."; + NOTREACHED_IN_MIGRATION() << static_cast(type) + << " is not a recognized content settings type."; return std::string_view(); -@@ -598,6 +619,13 @@ std::vector GetVisiblePermissionCategories( +@@ -599,6 +620,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::POINTER_LOCK); } @@ -1309,7 +1309,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b diff --git a/components/browser_ui/settings/android/BUILD.gn b/components/browser_ui/settings/android/BUILD.gn --- a/components/browser_ui/settings/android/BUILD.gn +++ b/components/browser_ui/settings/android/BUILD.gn -@@ -82,6 +82,7 @@ android_resources("java_resources") { +@@ -83,6 +83,7 @@ android_resources("java_resources") { "java/res/layout/managed_disclaimer_preference_for_radio_groups.xml", "java/res/layout/preference_chrome_image_view.xml", "java/res/layout/preference_spinner.xml", @@ -2189,7 +2189,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleCategorySettings.java -@@ -334,6 +334,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -332,6 +332,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment website.site() .getContentSetting( browserContextHandle, mCategory.getContentSettingsType()); @@ -2200,7 +2200,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSettingValues.BLOCK == contentSetting; } -@@ -498,6 +502,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -496,6 +500,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2208,7 +2208,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c configureGlobalToggles(); if (mCategory.getType() == SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE) { RecordUserAction.record("DesktopSiteContentSetting.SettingsPage.Entered"); -@@ -528,7 +533,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -526,7 +531,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2218,7 +2218,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -540,12 +546,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -538,12 +544,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2239,7 +2239,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (mCategory.getType() == SiteSettingsCategory.Type.PROTECTED_MEDIA) { getSiteSettingsDelegate() .launchProtectedContentHelpAndFeedbackActivity(getActivity()); -@@ -617,6 +631,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -615,6 +629,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment BrowserContextHandle browserContextHandle = getSiteSettingsDelegate().getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2251,7 +2251,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); boolean toggleValue = (boolean) newValue; -@@ -811,6 +830,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -809,6 +828,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment .website_settings_allowed_group_heading_request_desktop_site; break; } @@ -2260,7 +2260,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c assert resource > 0; return getString(resource); } -@@ -926,6 +947,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -924,6 +945,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment default: break; } @@ -2269,7 +2269,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (allowSpecifyingExceptions) { getPreferenceScreen() .addPreference( -@@ -1112,8 +1135,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1110,8 +1133,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2286,7 +2286,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSettingValues.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1180,7 +1211,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1178,7 +1209,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (mCategory.getType() == SiteSettingsCategory.Type.STORAGE_ACCESS) { infoText.setSummary(getStorageAccessSummary()); } else { @@ -2299,7 +2299,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1217,6 +1252,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1215,6 +1250,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2307,7 +2307,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (permissionBlockedByOs) { maybeShowOsWarning(screen); -@@ -1376,7 +1412,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1372,7 +1408,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getSiteSettingsDelegate().getBrowserContextHandle(), contentType); int[] descriptionIds = ContentSettingsResources.getTriStateSettingDescriptionIDs(contentType); @@ -2316,7 +2316,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } private void configureBinaryToggle(ChromeSwitchPreference binaryToggle, int contentType) { -@@ -1504,6 +1540,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1496,6 +1532,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment @ContentSettingValues Integer value = site.getContentSetting(browserContextHandle, contentSettingsType); @@ -2334,7 +2334,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -47,6 +47,7 @@ import java.util.Collection; +@@ -48,6 +48,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -2342,7 +2342,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c /** Shows the permissions and other settings for a particular website. */ public class SingleWebsiteSettings extends BaseSiteSettingsFragment -@@ -165,7 +166,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -166,7 +167,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.CLIPBOARD_READ_WRITE: return "clipboard_permission_list"; default: @@ -2351,7 +2351,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -532,8 +533,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -536,8 +537,21 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { mMaxPermissionOrder = findPreference(PREF_PERMISSIONS_HEADER).getOrder(); @@ -2375,7 +2375,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c preference.setKey(getPreferenceKey(type)); if (type == ContentSettingsType.ADS) { -@@ -1073,20 +1087,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1079,20 +1093,32 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSettingValues @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2408,13 +2408,13 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c @ContentSettingsType.EnumType int contentType = getContentSettingsTypeFromPreferenceKey(preference.getKey()); - if (contentType == mHighlightedPermission) { -- switchPreference.setBackgroundColor(mHighlightColor); +- switchPreference.setBackgroundColor( + if (preference instanceof ChromeSwitchPreference && contentType == mHighlightedPermission) { -+ ((ChromeSwitchPreference)switchPreference).setBackgroundColor(mHighlightColor); ++ ((ChromeSwitchPreference)switchPreference).setBackgroundColor( + AppCompatResources.getColorStateList(getContext(), mHighlightColor) + .getDefaultColor()); } - if (isSessionPermission(contentType)) { - switchPreference.setSummary(switchPreference.getSummary() + " " + -@@ -1300,14 +1326,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1308,14 +1334,20 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment permission = (Boolean) newValue ? ContentSettingValues.ALLOW : ContentSettingValues.BLOCK; } else { @@ -2744,7 +2744,7 @@ new file mode 100644 diff --git a/components/content_settings/android/BUILD.gn b/components/content_settings/android/BUILD.gn --- a/components/content_settings/android/BUILD.gn +++ b/components/content_settings/android/BUILD.gn -@@ -59,6 +59,7 @@ android_library("content_settings_enums_java") { +@@ -87,6 +87,7 @@ android_library("content_settings_enums_java") { } java_cpp_enum("content_settings_enums_javagen") { @@ -2924,7 +2924,7 @@ diff --git a/components/content_settings/core/browser/website_settings_registry. diff --git a/components/content_settings/core/common/BUILD.gn b/components/content_settings/core/common/BUILD.gn --- a/components/content_settings/core/common/BUILD.gn +++ b/components/content_settings/core/common/BUILD.gn -@@ -55,6 +55,13 @@ static_library("common") { +@@ -56,6 +56,13 @@ static_library("common") { "//net", "//url", ] @@ -3121,12 +3121,13 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/content_settings_types.mojom b/components/content_settings/core/common/content_settings_types.mojom --- a/components/content_settings/core/common/content_settings_types.mojom +++ b/components/content_settings/core/common/content_settings_types.mojom -@@ -424,4 +424,5 @@ enum ContentSettingsType { +@@ -429,5 +429,6 @@ enum ContentSettingsType { // BLOCK: Protections enabled. This is the default state. // ALLOW: Protections disabled. TRACKING_PROTECTION, +#include "components/content_settings/core/common/bromite_content_settings.inc" }; + // LINT.ThenChange(/tools/metrics/histograms/metadata/settings/enums.xml:SafetyHubPermissionType) diff --git a/components/content_settings/renderer/content_settings_agent_impl.cc b/components/content_settings/renderer/content_settings_agent_impl.cc --- a/components/content_settings/renderer/content_settings_agent_impl.cc +++ b/components/content_settings/renderer/content_settings_agent_impl.cc @@ -3255,8 +3256,8 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp +#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" - #include "components/page_info/android/jni_headers/PageInfoController_jni.h" -@@ -149,6 +150,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( + #include "components/page_info/android/page_info_client.h" +@@ -151,6 +152,15 @@ void PageInfoControllerAndroid::SetPermissionInfo( } permissions_to_display.push_back(ContentSettingsType::STORAGE_ACCESS); @@ -3272,7 +3273,7 @@ diff --git a/components/page_info/android/page_info_controller_android.cc b/comp std::map user_specified_settings_to_display; std::map -@@ -208,6 +218,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( +@@ -210,6 +220,14 @@ std::optional PageInfoControllerAndroid::GetSettingToDisplay( return permission.setting; } @@ -3298,7 +3299,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. #include "components/content_settings/browser/ui/cookie_controls_controller.h" #include "components/content_settings/core/browser/content_settings_registry.h" #include "components/content_settings/core/browser/content_settings_uma_util.h" -@@ -1230,6 +1231,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1232,6 +1233,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // applies to permissions listed in |kPermissionType|. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3313,7 +3314,7 @@ diff --git a/components/page_info/page_info.cc b/components/page_info/page_info. // Note |ContentSettingsType::ADS| will show up regardless of its default // value when it has been activated on the current origin. if (info.type == ContentSettingsType::ADS) { -@@ -1337,7 +1346,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1339,7 +1348,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3456,7 +3457,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context #include "third_party/blink/renderer/bindings/core/v8/sanitize_script_errors.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/execution_context/security_context.h" -@@ -102,6 +103,10 @@ class SecurityOrigin; +@@ -103,6 +104,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/patches/Cromite-Branding.patch b/build/patches/Cromite-Branding.patch index c6abae31..26505ba2 100644 --- a/build/patches/Cromite-Branding.patch +++ b/build/patches/Cromite-Branding.patch @@ -53,8 +53,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chromium/product_logo_white.png | Bin 2512 -> 6790 bytes content/child/runtime_features.cc | 23 +++-- tools/grit/grit/grd_reader.py | 35 +++++++ - ui/base/ui_base_features.cc | 3 + - 50 files changed, 175 insertions(+), 111 deletions(-) + 49 files changed, 172 insertions(+), 111 deletions(-) diff --git a/build/BUILD.gn b/build/BUILD.gn --- a/build/BUILD.gn @@ -9180,7 +9179,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings. diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -402,7 +402,7 @@ +@@ -414,7 +414,7 @@ Change @@ -13134,7 +13133,7 @@ e)fqMZZ`3a)Ds&5H CreateProfilePrefStoreManager( +@@ -277,10 +278,7 @@ std::unique_ptr CreateProfilePrefStoreManager( #endif std::string seed; CHECK(ui::ResourceBundle::HasSharedInstance()); @@ -13211,7 +13210,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html #menu { color: var(--google-grey-700); display: flex; -@@ -162,7 +174,7 @@ +@@ -164,7 +176,7 @@ @@ -13223,7 +13222,7 @@ diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html 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 -@@ -2200,7 +2200,7 @@ Your Google account may have other forms of browsing history like searches and a +@@ -2264,7 +2264,7 @@ Your Google account may have other forms of browsing history like searches and a About Chrome @@ -13235,7 +13234,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h --- a/chrome/common/url_constants.h +++ b/chrome/common/url_constants.h -@@ -126,7 +126,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = +@@ -132,7 +132,7 @@ inline constexpr char kChromeHelpViaMenuURL[] = #endif // BUILDFLAG(IS_CHROMEOS_ASH) inline constexpr char kChromeHelpViaWebUIURL[] = @@ -13244,7 +13243,7 @@ diff --git a/chrome/common/url_constants.h b/chrome/common/url_constants.h #if BUILDFLAG(IS_CHROMEOS_ASH) inline constexpr char kChromeOsHelpViaWebUIURL[] = #if BUILDFLAG(GOOGLE_CHROME_BRANDING) -@@ -189,7 +189,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = +@@ -195,7 +195,7 @@ inline constexpr char kChromeUIUntrustedNewTabPageUrl[] = "chrome-untrusted://new-tab-page/"; // The URL for the Chromium project used in the About dialog. @@ -18865,7 +18864,7 @@ EKU(of)Bpeg 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 -@@ -616,7 +616,7 @@ void ResolveInvalidConfigurations() { +@@ -620,7 +620,7 @@ void ResolveInvalidConfigurations() { base::FeatureList::IsEnabled( features::kPrivacySandboxAdsAPIsM1Override)) && !base::FeatureList::IsEnabled(blink::features::kFencedFrames)) { @@ -18874,7 +18873,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kFencedFrames.name << " instead."; -@@ -626,9 +626,8 @@ void ResolveInvalidConfigurations() { +@@ -630,9 +630,8 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kFencedFrames) && base::FeatureList::IsEnabled( blink::features::kFencedFramesLocalUnpartitionedDataAccess)) { @@ -18886,7 +18885,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Fenced frames must be enabled in order to enable local " "unpartitioned " << "data access. Use --" << switches::kEnableFeatures << "=" -@@ -641,7 +640,7 @@ void ResolveInvalidConfigurations() { +@@ -645,7 +644,7 @@ void ResolveInvalidConfigurations() { // The Document API should be additionally gated by the // `kBrowsingTopicsDocumentAPI` feature. if (!base::FeatureList::IsEnabled(blink::features::kBrowsingTopics)) { @@ -18895,7 +18894,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "Topics cannot be enabled in this configuration. Use --" << switches::kEnableFeatures << "=" << blink::features::kBrowsingTopics.name << " in addition."; -@@ -661,7 +660,7 @@ void ResolveInvalidConfigurations() { +@@ -665,7 +664,7 @@ void ResolveInvalidConfigurations() { } if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18904,7 +18903,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -671,7 +670,7 @@ void ResolveInvalidConfigurations() { +@@ -675,7 +674,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM118) || !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18913,7 +18912,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage for M118+ cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -682,7 +681,7 @@ void ResolveInvalidConfigurations() { +@@ -686,7 +685,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled(blink::features::kSharedStorageAPIM125) || !base::FeatureList::IsEnabled(blink::features::kSharedStorageAPI)) { @@ -18922,7 +18921,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "SharedStorage for M125+ cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -693,7 +692,7 @@ void ResolveInvalidConfigurations() { +@@ -697,7 +696,7 @@ void ResolveInvalidConfigurations() { if (!base::FeatureList::IsEnabled( attribution_reporting::features::kConversionMeasurement)) { @@ -18931,7 +18930,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReporting cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -706,8 +705,8 @@ void ResolveInvalidConfigurations() { +@@ -710,8 +709,8 @@ void ResolveInvalidConfigurations() { attribution_reporting::features::kConversionMeasurement) || !base::FeatureList::IsEnabled( network::features::kAttributionReportingCrossAppWeb)) { @@ -18942,7 +18941,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. << "AttributionReportingCrossAppWeb cannot be enabled in this " "configuration. Use --" << switches::kEnableFeatures << "=" -@@ -718,7 +717,7 @@ void ResolveInvalidConfigurations() { +@@ -722,7 +721,7 @@ void ResolveInvalidConfigurations() { } if (!base::FeatureList::IsEnabled(blink::features::kInterestGroupStorage)) { @@ -19003,15 +19002,4 @@ diff --git a/tools/grit/grit/grd_reader.py b/tools/grit/grit/grd_reader.py class GrdPartContentHandler(xml.sax.handler.ContentHandler): def __init__(self, parent): -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 -@@ -549,4 +549,7 @@ BASE_FEATURE(kUseGammaContrastRegistrySettings, - BASE_FEATURE(kBubbleFrameViewTitleIsHeading, - "BubbleFrameViewTitleIsHeading", - base::FEATURE_ENABLED_BY_DEFAULT); -+ -+SET_CROMITE_FEATURE_ENABLED(kChromeRefresh2023); -+SET_CROMITE_FEATURE_ENABLED(kChromeRefreshSecondary2023); - } // namespace features -- diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch index 16d2e5f5..c0adc3f8 100644 --- a/build/patches/Customize-selection-popup.patch +++ b/build/patches/Customize-selection-popup.patch @@ -112,7 +112,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/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 -@@ -285,8 +285,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { +@@ -309,8 +309,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate { public void onOpenImageInNewTab(GURL url, Referrer referrer) { LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec()); loadUrlParams.setReferrer(referrer); @@ -138,7 +138,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.base.TraceEvent; import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; -@@ -823,11 +824,16 @@ public class RootUiCoordinator +@@ -822,11 +823,16 @@ public class RootUiCoordinator TrackerFactory.getTrackerForProfile(tab.getProfile()) .notifyEvent(EventConstants.WEB_SEARCH_PERFORMED); diff --git a/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch b/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch index e0869c2b..fb8ce3cf 100644 --- a/build/patches/Deprecate-Data-URL-in-SVGUseElement.patch +++ b/build/patches/Deprecate-Data-URL-in-SVGUseElement.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 -@@ -3273,8 +3273,8 @@ +@@ -3299,8 +3299,8 @@ status: "stable", }, { diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch index 568b1f14..0c454dc6 100644 --- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -291,8 +291,17 @@ class LocationBarMediator +@@ -293,8 +293,17 @@ class LocationBarMediator if (mNativeInitialized) RecordUserAction.record("FocusLocation"); // Don't clear Omnibox if the user just pasted text to NTP Omnibox. if (mShouldClearOmniboxOnFocus) { @@ -66,7 +66,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private int mLocationBarVerticalInset; -@@ -299,6 +301,27 @@ public abstract class UrlBar extends AutocompleteEditText { +@@ -298,6 +300,27 @@ public abstract class UrlBar extends AutocompleteEditText { mPendingScroll = false; } fixupTextDirection(); diff --git a/build/patches/Disable-Component-Updates.patch b/build/patches/Disable-Component-Updates.patch index 4ff58493..dc955920 100644 --- a/build/patches/Disable-Component-Updates.patch +++ b/build/patches/Disable-Component-Updates.patch @@ -34,7 +34,7 @@ diff --git a/components/component_updater/component_installer.cc b/components/co diff --git a/components/component_updater/component_updater_service.cc b/components/component_updater/component_updater_service.cc --- a/components/component_updater/component_updater_service.cc +++ b/components/component_updater/component_updater_service.cc -@@ -547,7 +547,7 @@ std::unique_ptr ComponentUpdateServiceFactory( +@@ -546,7 +546,7 @@ std::unique_ptr ComponentUpdateServiceFactory( // Register prefs required by the component update service. void RegisterComponentUpdateServicePrefs(PrefRegistrySimple* registry) { // The component updates are enabled by default, if the preference is not set. diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch index 614b1705..d0f1d552 100644 --- a/build/patches/Disable-Compose-feature.patch +++ b/build/patches/Disable-Compose-feature.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/extensions/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 -@@ -480,10 +480,12 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -487,10 +487,12 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist) [::permissions::prefs::kUnusedSitePermissionsRevocationEnabled] = settings_api::PrefType::kBoolean; @@ -28,7 +28,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro diff --git a/components/compose/core/browser/compose_features.cc b/components/compose/core/browser/compose_features.cc --- a/components/compose/core/browser/compose_features.cc +++ b/components/compose/core/browser/compose_features.cc -@@ -82,4 +82,6 @@ BASE_FEATURE(kEnableNudgeForUnspecifiedHint, +@@ -83,4 +83,6 @@ BASE_FEATURE(kEnableNudgeForUnspecifiedHint, BASE_FEATURE(kEnableAdditionalTextMetrics, "EnableAdditionalTextMetrics", base::FEATURE_ENABLED_BY_DEFAULT); diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch index 1af443a3..c5c37402 100644 --- a/build/patches/Disable-Compression-Dictionary-Transport.patch +++ b/build/patches/Disable-Compression-Dictionary-Transport.patch @@ -10,14 +10,14 @@ 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 -@@ -680,16 +680,18 @@ +@@ -689,16 +689,18 @@ } }, { - name: "CompressionDictionaryTransport", + name: "CompressionDictionaryTransport", // need to be disabled base_feature: "none", - origin_trial_feature_name: "CompressionDictionaryTransportForTest", + origin_trial_feature_name: "CompressionDictionaryTransportV3", origin_trial_allows_third_party: true, public: true, + status: "experimental", diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch index 4984f6aa..22940878 100644 --- a/build/patches/Disable-FedCm.patch +++ b/build/patches/Disable-FedCm.patch @@ -26,7 +26,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1515,7 +1515,7 @@ +@@ -1526,7 +1526,7 @@ { name: "FedCm", public: true, diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch index b8f3c259..cc9c29f8 100644 --- a/build/patches/Disable-GSA-by-default.patch +++ b/build/patches/Disable-GSA-by-default.patch @@ -4,11 +4,12 @@ Subject: Disable GSA by default License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../org/chromium/chrome/browser/IntentHandler.java | 5 ----- - .../chromium/chrome/browser/share/LensUtils.java | 14 ++------------ - .../org/chromium/chrome/browser/gsa/GSAState.java | 11 +++++------ - .../Disable-GSA-by-default.inc | 1 + - 4 files changed, 8 insertions(+), 23 deletions(-) + .../chrome/browser/IntentHandler.java | 5 ----- + .../chrome/browser/share/LensUtils.java | 14 ++------------ + .../chromium/chrome/browser/gsa/GSAState.java | 14 +++++--------- + .../GoogleBottomBarActionsHandler.java | 19 ++----------------- + .../Disable-GSA-by-default.inc | 1 + + 5 files changed, 10 insertions(+), 43 deletions(-) create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java @@ -31,7 +32,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j private static final String PACKAGE_GMAIL = "com.google.android.gm"; private static final String PACKAGE_PLUS = "com.google.android.apps.plus"; private static final String PACKAGE_HANGOUTS = "com.google.android.talk"; -@@ -482,8 +479,6 @@ public class IntentHandler { +@@ -485,8 +482,6 @@ public class IntentHandler { return ExternalAppId.LINE; } else if (packageName.equals(PACKAGE_WHATSAPP)) { return ExternalAppId.WHATSAPP; @@ -85,16 +86,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/LensUtils diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java --- a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java +++ b/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAState.java -@@ -31,8 +31,6 @@ import java.util.regex.Pattern; +@@ -31,11 +31,6 @@ import java.util.regex.Pattern; /** A class responsible for representing the current state of Chrome's integration with GSA. */ public class GSAState { - public static final String PACKAGE_NAME = "com.google.android.googlequicksearchbox"; +- public static final String GOOGLE_APP_CLASS_NAME = +- "com.google.android.apps.search.googleapp.activity.GoogleAppActivity"; +- public static final String VOICE_SEARCH_INTENT_ACTION = "android.intent.action.VOICE_ASSIST"; - /** Used to observe state changes in the class. */ public interface Observer { /** Called when the GSA account name is set. */ -@@ -70,7 +68,7 @@ public class GSAState { +@@ -72,7 +67,7 @@ public class GSAState { private final ObserverList mObserverList = new ObserverList<>(); /** Caches the result of a computation on whether GSA is available. */ @@ -103,7 +107,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat /** * The Google account email address being used by GSA according to the latest update we have -@@ -152,7 +150,7 @@ public class GSAState { +@@ -154,7 +149,7 @@ public class GSAState { /** Returns whether the GSA package is installed on device. */ public boolean isGsaInstalled() { @@ -112,7 +116,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat } /** -@@ -175,6 +173,7 @@ public class GSAState { +@@ -177,6 +172,7 @@ public class GSAState { */ public boolean isAgsaVersionBelowMinimum( String installedVersionName, String minimumVersionName) { @@ -120,7 +124,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat if (TextUtils.isEmpty(installedVersionName) || TextUtils.isEmpty(minimumVersionName)) { return true; } -@@ -206,7 +205,7 @@ public class GSAState { +@@ -208,7 +204,7 @@ public class GSAState { * @return Whether the given intent can be handled by Agsa. */ public boolean canAgsaHandleIntent(@NonNull Intent intent) { @@ -129,7 +133,7 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat ComponentName activity = intent.resolveActivity(ContextUtils.getApplicationContext().getPackageManager()); -@@ -220,7 +219,7 @@ public class GSAState { +@@ -222,7 +218,7 @@ public class GSAState { * @return The version name of the Agsa package or null if it can't be found. */ public @Nullable String getAgsaVersionName() { @@ -138,6 +142,62 @@ diff --git a/chrome/browser/gsa/java/src/org/chromium/chrome/browser/gsa/GSAStat return packageInfo == null ? null : packageInfo.versionName; } +diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java +--- a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java ++++ b/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/chrome/browser/ui/google_bottom_bar/GoogleBottomBarActionsHandler.java +@@ -4,9 +4,6 @@ + + package org.chromium.chrome.browser.ui.google_bottom_bar; + +-import static org.chromium.chrome.browser.gsa.GSAState.GOOGLE_APP_CLASS_NAME; +-import static org.chromium.chrome.browser.gsa.GSAState.PACKAGE_NAME; +-import static org.chromium.chrome.browser.gsa.GSAState.VOICE_SEARCH_INTENT_ACTION; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_HOME; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_LENS; + import static org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarLogger.GoogleBottomBarButtonEvent.SEARCHBOX_SEARCH; +@@ -106,11 +103,6 @@ class GoogleBottomBarActionsHandler { + } + + void onSearchboxMicTap() { +- GoogleBottomBarLogger.logButtonClicked(SEARCHBOX_VOICE_SEARCH); +- Intent intent = new Intent(VOICE_SEARCH_INTENT_ACTION); +- intent.setPackage(PACKAGE_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppVoiceSearch"); + } + + void onSearchboxLensTap() { +@@ -148,21 +140,13 @@ class GoogleBottomBarActionsHandler { + } + + private void openGoogleAppSearch() { +- Intent intent = new Intent(SearchManager.INTENT_ACTION_GLOBAL_SEARCH); +- intent.setPackage(PACKAGE_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppSearch"); + } + + private void openGoogleAppHome() { +- Intent intent = new Intent(Intent.ACTION_MAIN); +- intent.addCategory(Intent.CATEGORY_INFO); +- intent.setClassName(PACKAGE_NAME, GOOGLE_APP_CLASS_NAME); +- +- startGoogleAppActivityForResult(intent, "openGoogleAppHome"); + } + + private void startGoogleAppActivityForResult(Intent intent, String actionName) { ++ if ((true)) return; + intent.putExtra(EXTRA_IS_LAUNCHED_FROM_CHROME_SEARCH_ENTRYPOINT, true); + + if (PackageManagerUtils.canResolveActivity(intent)) { +@@ -285,6 +269,7 @@ class GoogleBottomBarActionsHandler { + } + + private void sendPendingIntentWithUrl(PendingIntent pendingIntent) { ++ if ((true)) return; + Tab tab = mTabProvider.get(); + if (tab == null) { + Log.e(TAG, "Can't send pending intent as tab is null."); diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-GSA-by-default.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch index 8d7e4f2f..26d68ba4 100644 --- a/build/patches/Disable-GetInstalledRelatedApps-API.patch +++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch @@ -5,10 +5,10 @@ Subject: Disable GetInstalledRelatedApps API License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- .../components/installedapp/InstalledAppProviderImpl.java | 1 + - content/browser/installedapp/installed_app_provider_impl_win.cc | 1 + + content/browser/installedapp/installed_app_provider_impl.cc | 2 +- .../content_features_cc/Disable-GetInstalledRelatedApps-API.inc | 2 ++ .../blink/renderer/platform/runtime_enabled_features.json5 | 2 +- - 4 files changed, 5 insertions(+), 1 deletion(-) + 4 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc diff --git a/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java b/components/installedapp/android/java/src/org/chromium/components/installedapp/InstalledAppProviderImpl.java @@ -22,17 +22,18 @@ diff --git a/components/installedapp/android/java/src/org/chromium/components/in GURL url = mRenderFrameHost.getLastCommittedURL(); final GURL frameUrl = url == null ? GURL.emptyGURL() : url; int delayMillis = 0; -diff --git a/content/browser/installedapp/installed_app_provider_impl_win.cc b/content/browser/installedapp/installed_app_provider_impl_win.cc ---- a/content/browser/installedapp/installed_app_provider_impl_win.cc -+++ b/content/browser/installedapp/installed_app_provider_impl_win.cc -@@ -112,6 +112,7 @@ void FilterInstalledAppsForWin( - std::vector related_apps, - blink::mojom::InstalledAppProvider::FilterInstalledAppsCallback callback, - const GURL frame_url) { -+ CHECK(true); - ComPtr url_factory; - HRESULT hr = - base::win::GetActivationFactoryPostTask( + FROM_HERE, + base::BindOnce(std::move(callback), diff --git a/cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc b/cromite_flags/content/public/common/content_features_cc/Disable-GetInstalledRelatedApps-API.inc new file mode 100644 --- /dev/null @@ -43,7 +44,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -2169,9 +2169,9 @@ +@@ -2194,9 +2194,9 @@ status: {"Android": "test", "default": "stable"}, }, { diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch index 15d43d12..4a038f30 100644 --- a/build/patches/Disable-PrivacyGuide.patch +++ b/build/patches/Disable-PrivacyGuide.patch @@ -24,7 +24,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc --- a/chrome/browser/ui/webui/settings/settings_ui.cc +++ b/chrome/browser/ui/webui/settings/settings_ui.cc -@@ -366,8 +366,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) +@@ -365,8 +365,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui) #endif // !BUILDFLAG(IS_CHROMEOS_LACROS) bool show_privacy_guide = diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch index 7743e834..e0482309 100644 --- a/build/patches/Disable-Real-Box.patch +++ b/build/patches/Disable-Real-Box.patch @@ -13,7 +13,7 @@ Real-box is search box in ntp diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -2254,7 +2254,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2350,7 +2350,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, registry->RegisterBooleanPref( prefs::kLensRegionSearchEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); diff --git a/build/patches/Disable-StartSurface-feature.patch b/build/patches/Disable-StartSurface-feature.patch index 0b999fc0..4ff5bd61 100644 --- a/build/patches/Disable-StartSurface-feature.patch +++ b/build/patches/Disable-StartSurface-feature.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -647,7 +647,7 @@ public abstract class ChromeFeatureList { +@@ -668,7 +668,7 @@ public abstract class ChromeFeatureList { public static final CachedFlag sSmallerTabStripTitleLimit = newCachedFlag(SMALLER_TAB_STRIP_TITLE_LIMIT, true); public static final CachedFlag sStartSurfaceAndroid = diff --git a/build/patches/Disable-TLS-resumption.patch b/build/patches/Disable-TLS-resumption.patch index e86d0881..369b5e5f 100644 --- a/build/patches/Disable-TLS-resumption.patch +++ b/build/patches/Disable-TLS-resumption.patch @@ -137,7 +137,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc QuicSessionRequest::QuicSessionRequest(QuicSessionPool* pool) : pool_(pool) {} QuicSessionRequest::~QuicSessionRequest() { -@@ -1880,7 +1913,7 @@ QuicSessionPool::CreateCryptoConfigHandle( +@@ -1881,7 +1914,7 @@ QuicSessionPool::CreateCryptoConfigHandle( cert_verifier_, transport_security_state_, sct_auditing_delegate_, HostsFromOrigins(params_.origins_to_force_quic_on), actual_network_anonymization_key), @@ -149,7 +149,7 @@ diff --git a/net/quic/quic_session_pool.cc b/net/quic/quic_session_pool.cc diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -288,7 +288,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( +@@ -293,7 +293,33 @@ SSLClientSocketImpl::SSLClientSocketImpl( CHECK(context_); } @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -672,6 +698,8 @@ int SSLClientSocketImpl::Init() { +@@ -677,6 +703,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } const int kBufferSize = GetDefaultOpenSSLBufferSize(); -@@ -958,6 +986,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -963,6 +991,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info extension. -@@ -1583,6 +1640,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1588,6 +1645,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/patches/Disable-WebGPU.patch b/build/patches/Disable-WebGPU.patch index 2654d6fa..08dec70d 100644 --- a/build/patches/Disable-WebGPU.patch +++ b/build/patches/Disable-WebGPU.patch @@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc --- a/content/child/runtime_features.cc +++ b/content/child/runtime_features.cc -@@ -568,6 +568,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -572,6 +572,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableV8IdleTasks(true); } @@ -24,7 +24,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc --- a/gpu/config/gpu_finch_features.cc +++ b/gpu/config/gpu_finch_features.cc -@@ -264,7 +264,7 @@ BASE_FEATURE(kEnableDrDc, +@@ -276,7 +276,7 @@ BASE_FEATURE(kEnableDrDc, // enabled by default on supported platforms. #if BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_CHROMEOS) || \ BUILDFLAG(IS_ANDROID) @@ -36,7 +36,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc --- a/third_party/blink/renderer/modules/webgpu/gpu.cc +++ b/third_party/blink/renderer/modules/webgpu/gpu.cc -@@ -379,6 +379,7 @@ ScriptPromise> GPU::requestAdapter( +@@ -378,6 +378,7 @@ ScriptPromise> GPU::requestAdapter( "WebGPU is experimental on this platform. See " "https://github.com/gpuweb/gpuweb/wiki/" "Implementation-Status#implementation-status")); diff --git a/build/patches/Disable-all-predictors-code.patch b/build/patches/Disable-all-predictors-code.patch index 495bed26..1cea9937 100644 --- a/build/patches/Disable-all-predictors-code.patch +++ b/build/patches/Disable-all-predictors-code.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/ui/tab_helpers.cc | 1 - .../ui/webui/omnibox/omnibox_page_handler.cc | 2 ++ chrome/utility/BUILD.gn | 2 +- - chrome/utility/services.cc | 7 ------- + chrome/utility/services.cc | 8 -------- .../core/browser/autofill_optimization_guide.cc | 5 +++-- .../omnibox/browser/autocomplete_controller.cc | 4 ++++ .../optimization_guide/core/hints_fetcher.cc | 1 + @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html services/webnn/features.gni | 2 +- .../document_speculation_rules.cc | 1 + .../platform/runtime_enabled_features.json5 | 2 +- - 29 files changed, 66 insertions(+), 34 deletions(-) + 29 files changed, 66 insertions(+), 35 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc @@ -43,7 +43,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 -@@ -850,8 +850,6 @@ static_library("browser") { +@@ -842,8 +842,6 @@ static_library("browser") { "navigation_predictor/navigation_predictor_keyed_service_factory.h", "navigation_predictor/navigation_predictor_metrics_document_data.cc", "navigation_predictor/navigation_predictor_metrics_document_data.h", @@ -154,7 +154,7 @@ diff --git a/chrome/browser/optimization_guide/model_validator_keyed_service.cc diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc --- a/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc +++ b/chrome/browser/optimization_guide/optimization_guide_keyed_service.cc -@@ -537,7 +537,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -544,7 +544,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -192,7 +192,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p 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 -@@ -433,7 +433,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -435,7 +435,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -228,31 +228,32 @@ diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc --- a/chrome/utility/services.cc +++ b/chrome/utility/services.cc -@@ -222,12 +222,6 @@ auto RunMacNotificationService( - #endif // BUILDFLAG(IS_MAC) +@@ -250,13 +250,6 @@ auto RunMirroringService( + std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner()); + } - #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) -auto RunPassageEmbeddingsService( - mojo::PendingReceiver - receiver) { - return std::make_unique( - std::move(receiver)); -} +- + #endif // !BUILDFLAG(IS_ANDROID) - auto RunSystemSignalsService( - mojo::PendingReceiver -@@ -495,7 +489,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { - #endif // BUILDFLAG(IS_WIN) - - #if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) +@@ -463,7 +456,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { + #if !BUILDFLAG(IS_ANDROID) + services.Add(RunProfileImporter); + services.Add(RunMirroringService); - services.Add(RunPassageEmbeddingsService); - services.Add(RunSystemSignalsService); - #endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) + #endif // !BUILDFLAG(IS_ANDROID) + #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/components/autofill/core/browser/autofill_optimization_guide.cc --- a/components/autofill/core/browser/autofill_optimization_guide.cc +++ b/components/autofill/core/browser/autofill_optimization_guide.cc -@@ -169,6 +169,7 @@ void AutofillOptimizationGuide::OnDidParseForm( +@@ -172,6 +172,7 @@ void AutofillOptimizationGuide::OnDidParseForm( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { // Register all optimization types that we need based on `form_structure`. @@ -260,7 +261,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -220,7 +221,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( +@@ -223,7 +224,7 @@ bool AutofillOptimizationGuide::ShouldBlockSingleFieldSuggestions( AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -269,7 +270,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -246,7 +247,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( +@@ -249,7 +250,7 @@ bool AutofillOptimizationGuide::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -281,7 +282,7 @@ diff --git a/components/autofill/core/browser/autofill_optimization_guide.cc b/c diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/omnibox/browser/autocomplete_controller.cc --- a/components/omnibox/browser/autocomplete_controller.cc +++ b/components/omnibox/browser/autocomplete_controller.cc -@@ -47,7 +47,9 @@ +@@ -46,7 +46,9 @@ #include "components/omnibox/browser/autocomplete_input.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -362,7 +363,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -427,8 +423,7 @@ size_t MaxURLKeyedHintCacheSize() { +@@ -430,8 +426,7 @@ size_t MaxURLKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -372,8 +373,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -814,5 +809,13 @@ double GetOnDeviceModelDefaultTemperature() { - return kTemperature.Get(); +@@ -871,5 +866,13 @@ int GetOnDeviceModelValidationAttemptCount() { + return kParam.Get(); } +SET_CROMITE_FEATURE_DISABLED(kOptimizationHints); @@ -398,7 +399,7 @@ diff --git a/components/optimization_guide/core/prediction_model_download_manage 0x5c, 0x7f, 0xd0, 0x0c, 0xa1, 0x6e, 0xef, 0xdd, 0x63, 0x7a}; const net::NetworkTrafficAnnotationTag kOptimizationGuidePredictionModelsTrafficAnnotation = -@@ -104,7 +104,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( +@@ -105,7 +105,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( GetBaseModelDirForDownloadCallback get_base_model_dir_for_download_callback, scoped_refptr background_task_runner) : download_service_(download_service), @@ -407,7 +408,7 @@ diff --git a/components/optimization_guide/core/prediction_model_download_manage api_key_(features::GetOptimizationGuideServiceAPIKey()), get_base_model_dir_for_download_callback_( get_base_model_dir_for_download_callback), -@@ -115,6 +115,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; +@@ -116,6 +116,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; void PredictionModelDownloadManager::StartDownload( const GURL& download_url, proto::OptimizationTarget optimization_target) { @@ -415,7 +416,7 @@ diff --git a/components/optimization_guide/core/prediction_model_download_manage download::DownloadParams download_params; download_params.client = download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS; -@@ -260,6 +261,7 @@ bool PredictionModelDownloadManager::VerifyDownload( +@@ -265,6 +266,7 @@ bool PredictionModelDownloadManager::VerifyDownload( const base::FilePath& download_file_path, const base::FilePath& base_model_dir, bool delete_file_on_error) { @@ -450,7 +451,7 @@ diff --git a/components/optimization_guide/features.gni b/components/optimizatio diff --git a/components/page_content_annotations/core/page_content_annotations_features.cc b/components/page_content_annotations/core/page_content_annotations_features.cc --- a/components/page_content_annotations/core/page_content_annotations_features.cc +++ b/components/page_content_annotations/core/page_content_annotations_features.cc -@@ -270,4 +270,9 @@ size_t MaxRelatedSearchesCacheSize() { +@@ -280,4 +280,9 @@ size_t MaxRelatedSearchesCacheSize() { "max_related_searches_cache_size", 10); } @@ -463,7 +464,7 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_f diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.cc --- a/components/search/ntp_features.cc +++ b/components/search/ntp_features.cc -@@ -571,4 +571,7 @@ std::vector GetModulesOrder() { +@@ -574,4 +574,7 @@ std::vector GetModulesOrder() { base::SplitResult::SPLIT_WANT_NONEMPTY); } @@ -509,15 +510,15 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni import("//build/config/features.gni") declare_args() { -- webnn_use_tflite = is_android || is_chromeos || is_linux -+ webnn_use_tflite = false #is_android || is_chromeos || is_linux +- webnn_use_tflite = is_android || is_chromeos || is_linux || is_win ++ webnn_use_tflite = false #is_android || is_chromeos || is_linux || is_win # Enable logging of TFLite profiling information on MLGraph destruction. webnn_enable_tflite_profiler = false diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc --- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc +++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc -@@ -657,6 +657,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { +@@ -660,6 +660,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() { return; } @@ -528,7 +529,7 @@ diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculat diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3087,7 +3087,7 @@ +@@ -3109,7 +3109,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch index 8911e544..a3b1a672 100644 --- a/build/patches/Disable-all-promo-dialogs.patch +++ b/build/patches/Disable-all-promo-dialogs.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/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 -@@ -1309,6 +1309,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1312,6 +1312,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -62,7 +62,7 @@ diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/ diff --git a/components/user_education/common/feature_promo_controller.cc b/components/user_education/common/feature_promo_controller.cc --- a/components/user_education/common/feature_promo_controller.cc +++ b/components/user_education/common/feature_promo_controller.cc -@@ -668,6 +668,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon( +@@ -669,6 +669,7 @@ FeaturePromoResult FeaturePromoControllerCommon::CanShowPromoCommon( const FeaturePromoSpecification** display_spec_out, std::unique_ptr* lifecycle_out, ui::TrackedElement** anchor_element_out) const { diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch index c06015d4..de3225bc 100644 --- a/build/patches/Disable-conversion-measurement-api.patch +++ b/build/patches/Disable-conversion-measurement-api.patch @@ -14,7 +14,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/aw_content_browser_client.cc | 3 + .../chromium/android_webview/AwSettings.java | 4 +- chrome/android/java/AndroidManifest.xml | 4 - - components/attribution_reporting/features.cc | 2 + + .../aggregatable_trigger_config.cc | 2 +- + components/attribution_reporting/features.cc | 1 + .../origin_trials/features.cc | 2 + .../render_view_context_menu_base.cc | 3 - .../aggregatable_report_sender.cc | 15 +- @@ -38,7 +39,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html third_party/blink/renderer/core/page/page.cc | 2 +- .../platform/runtime_enabled_features.json5 | 1 + ui/events/android/motion_event_android.cc | 6 +- - 27 files changed, 73 insertions(+), 375 deletions(-) + 28 files changed, 73 insertions(+), 376 deletions(-) create mode 100644 cromite_flags/content/common/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc @@ -47,7 +48,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 -@@ -1249,6 +1249,7 @@ network::mojom::AttributionSupport +@@ -1246,6 +1246,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -55,28 +56,28 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1267,6 +1268,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1264,6 +1265,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { + if ((true)) + return false; + AwBrowserContext* aw_context = + static_cast(browser_context); // WebView only supports OS-level attribution and not web-attribution. - // Note: We do not check here if attribution reporting has been disabled - // for the associated WebView as this is checked at the start of processing diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java -@@ -170,7 +170,7 @@ public class AwSettings { +@@ -172,7 +172,7 @@ public class AwSettings { private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mEnableSupportedHardwareAcceleratedFeatures; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; - private int mAttributionBehavior = AttributionBehavior.APP_SOURCE_AND_WEB_TRIGGER; + private int mAttributionBehavior = AttributionBehavior.DISABLED; - private boolean mCSSHexAlphaColorEnabled; - private boolean mScrollTopLeftInteropEnabled; - private boolean mWillSuppressErrorPage; -@@ -1740,7 +1740,7 @@ public class AwSettings { + + @SpeculativeLoadingAllowedFlags + private int mSpeculativeLoadingAllowedFlags = +@@ -1773,7 +1773,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -96,7 +97,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro +diff --git a/components/attribution_reporting/aggregatable_trigger_config.cc b/components/attribution_reporting/aggregatable_trigger_config.cc +--- a/components/attribution_reporting/aggregatable_trigger_config.cc ++++ b/components/attribution_reporting/aggregatable_trigger_config.cc +@@ -86,7 +86,7 @@ bool IsValid(SourceRegistrationTimeConfig source_registration_time_config, + + base::expected, TriggerRegistrationError> + ParseTriggerContextId(base::Value* value) { +- if (!value) { ++ if ((true)) { + return std::nullopt; + } + diff --git a/components/attribution_reporting/features.cc b/components/attribution_reporting/features.cc --- a/components/attribution_reporting/features.cc +++ b/components/attribution_reporting/features.cc -@@ -17,4 +17,6 @@ BASE_FEATURE(kAttributionReportingTriggerContextId, - "AttributionReportingTriggerContextId", +@@ -17,4 +17,5 @@ BASE_FEATURE(kAttributionAggregatableDebugReporting, + "AttributionAggregatableDebugReporting", base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kConversionMeasurement); -+SET_CROMITE_FEATURE_DISABLED(kAttributionReportingTriggerContextId); } // namespace attribution_reporting::features diff --git a/components/embedder_support/origin_trials/features.cc b/components/embedder_support/origin_trials/features.cc --- a/components/embedder_support/origin_trials/features.cc @@ -172,7 +184,7 @@ diff --git a/content/browser/aggregation_service/aggregatable_report_sender.cc b diff --git a/content/browser/aggregation_service/aggregation_service_features.cc b/content/browser/aggregation_service/aggregation_service_features.cc --- a/content/browser/aggregation_service/aggregation_service_features.cc +++ b/content/browser/aggregation_service/aggregation_service_features.cc -@@ -24,4 +24,5 @@ BASE_FEATURE(kPrivacySandboxAggregationServiceFilteringIds, +@@ -20,4 +20,5 @@ BASE_FEATURE(kPrivacySandboxAggregationServiceFilteringIds, "PrivacySandboxAggregationServiceFilteringIds", base::FEATURE_ENABLED_BY_DEFAULT); @@ -181,7 +193,7 @@ diff --git a/content/browser/aggregation_service/aggregation_service_features.cc diff --git a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc --- a/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc +++ b/content/browser/attribution_reporting/attribution_data_host_manager_impl.cc -@@ -1128,6 +1128,7 @@ void AttributionDataHostManagerImpl::ParseHeader( +@@ -1134,6 +1134,7 @@ void AttributionDataHostManagerImpl::ParseHeader( HeaderPendingDecode pending_decode, Registrar registrar) { CHECK(it != registrations_.end()); @@ -223,7 +235,7 @@ diff --git a/content/browser/attribution_reporting/attribution_os_level_manager. diff --git a/content/browser/attribution_reporting/attribution_report_network_sender.cc b/content/browser/attribution_reporting/attribution_report_network_sender.cc --- a/content/browser/attribution_reporting/attribution_report_network_sender.cc +++ b/content/browser/attribution_reporting/attribution_report_network_sender.cc -@@ -89,6 +89,9 @@ void AttributionReportNetworkSender::SendReport(GURL url, +@@ -125,6 +125,9 @@ void AttributionReportNetworkSender::SendReport(GURL url, const std::string& body, net::HttpRequestHeaders headers, UrlLoaderCallback callback) { @@ -233,7 +245,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se auto resource_request = std::make_unique(); resource_request->url = std::move(url); resource_request->headers = std::move(headers); -@@ -164,6 +167,12 @@ void AttributionReportNetworkSender::OnReportSent( +@@ -200,6 +203,12 @@ void AttributionReportNetworkSender::OnReportSent( ReportSentCallback sent_callback, UrlLoaderList::iterator it, scoped_refptr headers) { @@ -249,7 +261,7 @@ diff --git a/content/browser/attribution_reporting/attribution_report_network_se diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/content/browser/attribution_reporting/attribution_storage_sql.cc --- a/content/browser/attribution_reporting/attribution_storage_sql.cc +++ b/content/browser/attribution_reporting/attribution_storage_sql.cc -@@ -461,14 +461,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) { +@@ -471,14 +471,16 @@ base::FilePath DatabasePath(const base::FilePath& user_data_directory) { return user_data_directory.Append(kDatabasePath); } @@ -259,7 +271,7 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/ AttributionStorageSql::AttributionStorageSql( const base::FilePath& user_data_directory, - std::unique_ptr delegate) + AttributionResolverDelegate* delegate) - : path_to_database_(user_data_directory.empty() - ? base::FilePath() - : DatabasePath(user_data_directory)), @@ -267,8 +279,8 @@ diff --git a/content/browser/attribution_reporting/attribution_storage_sql.cc b/ + ? base::FilePath() + : DatabasePath(user_data_directory)), db_(sql::DatabaseOptions{.page_size = 4096, .cache_size = 32}), - delegate_(std::move(delegate)), - rate_limit_table_(delegate_.get()) { + delegate_(delegate), + rate_limit_table_(delegate_), diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc --- a/content/browser/storage_partition_impl.cc +++ b/content/browser/storage_partition_impl.cc @@ -291,7 +303,7 @@ diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -181,8 +181,6 @@ android_library("content_full_java") { +@@ -189,8 +189,6 @@ android_library("content_full_java") { "//third_party/androidx:androidx_appcompat_appcompat_resources_java", "//third_party/androidx:androidx_collection_collection_java", "//third_party/androidx:androidx_core_core_java", @@ -765,7 +777,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Attrib 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 -@@ -546,6 +546,7 @@ void ContentBrowserClient::OnAuctionComplete( +@@ -550,6 +550,7 @@ void ContentBrowserClient::OnAuctionComplete( network::mojom::AttributionSupport ContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -773,7 +785,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b switch (state) { case AttributionReportingOsApiState::kDisabled: return network::mojom::AttributionSupport::kWeb; -@@ -563,13 +564,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -567,13 +568,13 @@ bool ContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -789,7 +801,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b } bool ContentBrowserClient::IsAttributionReportingAllowedForContext( -@@ -577,7 +578,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( +@@ -581,7 +582,7 @@ bool ContentBrowserClient::IsAttributionReportingAllowedForContext( content::RenderFrameHost* rfh, const url::Origin& context_origin, const url::Origin& reporting_origin) { @@ -874,7 +886,7 @@ diff --git a/services/network/public/cpp/attribution_utils.cc b/services/network 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 -@@ -1440,7 +1440,7 @@ void Page::UpdateBrowsingContextGroup( +@@ -1436,7 +1436,7 @@ void Page::UpdateBrowsingContextGroup( void Page::SetAttributionSupport( network::mojom::AttributionSupport attribution_support) { @@ -886,7 +898,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re diff --git a/third_party/blink/renderer/platform/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 -@@ -3976,6 +3976,7 @@ +@@ -4016,6 +4016,7 @@ }, { name: "TopicsAPI", @@ -897,7 +909,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 diff --git a/ui/events/android/motion_event_android.cc b/ui/events/android/motion_event_android.cc --- a/ui/events/android/motion_event_android.cc +++ b/ui/events/android/motion_event_android.cc -@@ -162,7 +162,11 @@ int ToEventFlags(int meta_state, int button_state) { +@@ -166,7 +166,11 @@ int ToEventFlags(int meta_state, int button_state) { } base::TimeTicks FromAndroidTime(base::TimeTicks time) { diff --git a/build/patches/Disable-crash-reporting.patch b/build/patches/Disable-crash-reporting.patch index 5ec13b91..b6f61e3c 100644 --- a/build/patches/Disable-crash-reporting.patch +++ b/build/patches/Disable-crash-reporting.patch @@ -11,7 +11,7 @@ Subject: Disable crash reporting 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 -@@ -2558,15 +2558,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2584,15 +2584,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( base::NumberToString(pid)); } #endif diff --git a/build/patches/Disable-feeds-support-by-default.patch b/build/patches/Disable-feeds-support-by-default.patch index 81011bc5..16e21335 100644 --- a/build/patches/Disable-feeds-support-by-default.patch +++ b/build/patches/Disable-feeds-support-by-default.patch @@ -15,7 +15,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 -@@ -2682,6 +2682,15 @@ static_library("browser") { +@@ -2663,6 +2663,15 @@ static_library("browser") { ] } @@ -34,7 +34,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/feed/android/web_feed_bridge.cc --- a/chrome/browser/feed/android/web_feed_bridge.cc +++ b/chrome/browser/feed/android/web_feed_bridge.cc -@@ -25,6 +25,7 @@ +@@ -24,6 +24,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "components/country_codes/country_codes.h" @@ -42,7 +42,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee #include "components/feed/core/v2/config.h" #include "components/feed/core/v2/public/feed_service.h" #include "components/feed/core/v2/public/types.h" -@@ -78,10 +79,14 @@ base::android::ScopedJavaLocalRef ToJavaWebFeedId( +@@ -80,10 +81,14 @@ base::android::ScopedJavaLocalRef ToJavaWebFeedId( } WebFeedSubscriptions* GetSubscriptions() { @@ -57,7 +57,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } FeedApi* GetStream() { -@@ -217,10 +222,14 @@ static void JNI_WebFeedBridge_FollowWebFeed( +@@ -219,10 +224,14 @@ static void JNI_WebFeedBridge_FollowWebFeed( return; } @@ -72,7 +72,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } static jboolean JNI_WebFeedBridge_IsCormorantEnabledForLocale(JNIEnv* env) { -@@ -264,11 +273,16 @@ static void JNI_WebFeedBridge_UnfollowWebFeed( +@@ -266,11 +275,16 @@ static void JNI_WebFeedBridge_UnfollowWebFeed( auto callback = AdaptCallbackForJava( env, j_callback); @@ -89,7 +89,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee } static void JNI_WebFeedBridge_FindWebFeedInfoForPage( -@@ -280,6 +294,7 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( +@@ -282,6 +296,7 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( AdaptCallbackForJava(env, j_callback); PageInformation page_info = ToNativePageInformation(env, pageInfo); @@ -97,7 +97,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee // Make sure web_contents is not NULL since the user might navigate away from // the current tab that is requested to find info. if (!page_info.web_contents) { -@@ -290,6 +305,9 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( +@@ -292,6 +307,9 @@ static void JNI_WebFeedBridge_FindWebFeedInfoForPage( page_info.web_contents, static_cast(reason), std::move(callback)); @@ -110,7 +110,7 @@ diff --git a/chrome/browser/feed/android/web_feed_bridge.cc b/chrome/browser/fee 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 -@@ -2018,10 +2018,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2109,10 +2109,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, ChromeRLZTrackerDelegate::RegisterProfilePrefs(registry); #endif diff --git a/build/patches/Disable-fetching-of-all-field-trials.patch b/build/patches/Disable-fetching-of-all-field-trials.patch index fd1aefaf..4c16fb5a 100644 --- a/build/patches/Disable-fetching-of-all-field-trials.patch +++ b/build/patches/Disable-fetching-of-all-field-trials.patch @@ -45,7 +45,7 @@ diff --git a/android_webview/browser/component_updater/origin_trials_component_l diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc --- a/android_webview/common/aw_content_client.cc +++ b/android_webview/common/aw_content_client.cc -@@ -113,6 +113,8 @@ void AwContentClient::ExposeInterfacesToBrowser( +@@ -115,6 +115,8 @@ void AwContentClient::ExposeInterfacesToBrowser( } blink::OriginTrialPolicy* AwContentClient::GetOriginTrialPolicy() { @@ -57,15 +57,15 @@ diff --git a/android_webview/common/aw_content_client.cc b/android_webview/commo diff --git a/android_webview/nonembedded/BUILD.gn b/android_webview/nonembedded/BUILD.gn --- a/android_webview/nonembedded/BUILD.gn +++ b/android_webview/nonembedded/BUILD.gn -@@ -105,7 +105,6 @@ android_library("services_java") { - sources = [ +@@ -106,7 +106,6 @@ android_library("services_java") { "java/src/org/chromium/android_webview/services/AwMinidumpUploadJobService.java", "java/src/org/chromium/android_webview/services/AwMinidumpUploaderDelegate.java", + "java/src/org/chromium/android_webview/services/AwNetLogService.java", - "java/src/org/chromium/android_webview/services/AwVariationsSeedFetcher.java", "java/src/org/chromium/android_webview/services/ComponentUpdaterResetSafeModeAction.java", "java/src/org/chromium/android_webview/services/ComponentUpdaterSafeModeUtils.java", "java/src/org/chromium/android_webview/services/ComponentsProviderPathUtil.java", -@@ -124,7 +123,6 @@ android_library("services_java") { +@@ -125,7 +124,6 @@ android_library("services_java") { "java/src/org/chromium/android_webview/services/SafeModeService.java", "java/src/org/chromium/android_webview/services/SafeModeVariationsSeedContentProvider.java", "java/src/org/chromium/android_webview/services/StartupFeatureMetadataHolder.java", @@ -141,7 +141,7 @@ diff --git a/chrome/browser/metrics/chrome_browser_sampling_trials.cc b/chrome/b 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 -@@ -858,7 +858,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -856,7 +856,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { @@ -152,7 +152,7 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc --- a/components/ukm/ukm_recorder_impl.cc +++ b/components/ukm/ukm_recorder_impl.cc -@@ -190,6 +190,9 @@ std::string WebFeaturesToStringForDebug( +@@ -189,6 +189,9 @@ std::string WebDXFeaturesToStringForDebug(const std::set& features) { UkmRecorderImpl::UkmRecorderImpl() : sampling_seed_(static_cast(base::RandUint64())) { @@ -311,7 +311,7 @@ diff --git a/components/variations/service/variations_field_trial_creator_base.c diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc --- a/components/variations/service/variations_service.cc +++ b/components/variations/service/variations_service.cc -@@ -224,17 +224,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers, +@@ -226,17 +226,8 @@ bool GetInstanceManipulations(const net::HttpResponseHeaders* headers, // Variations seed fetching is only enabled in official Chrome builds, if a URL // is specified on the command line, and for testing. bool IsFetchingEnabled() { @@ -352,7 +352,7 @@ diff --git a/content/browser/loader/url_loader_throttles.cc b/content/browser/lo ClientHintsControllerDelegate* client_hint_delegate = browser_context->GetClientHintsControllerDelegate(); -@@ -132,11 +130,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive( +@@ -137,11 +135,6 @@ CreateContentBrowserURLLoaderThrottlesForKeepAlive( GetContentClient()->browser()->CreateURLLoaderThrottlesForKeepAlive( request, browser_context, wc_getter, frame_tree_node_id); variations::OmniboxURLLoaderThrottle::AppendThrottleIfNeeded(&throttles); @@ -404,7 +404,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 -@@ -200,13 +200,6 @@ WebVector CopyInitiatorOriginTrials( +@@ -202,13 +202,6 @@ WebVector CopyInitiatorOriginTrials( const Vector& initiator_origin_trial_features) { WebVector result; diff --git a/build/patches/Disable-idle-detection.patch b/build/patches/Disable-idle-detection.patch index 5604316e..d6b9288d 100644 --- a/build/patches/Disable-idle-detection.patch +++ b/build/patches/Disable-idle-detection.patch @@ -31,7 +31,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 --- a/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 +++ b/third_party/blink/renderer/core/permissions_policy/permissions_policy_features.json5 -@@ -280,6 +280,7 @@ +@@ -297,6 +297,7 @@ { name: "IdleDetection", permissions_policy_name: "idle-detection", @@ -55,8 +55,8 @@ diff --git a/third_party/blink/renderer/modules/idle/idle_detector.idl b/third_p 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 -@@ -2072,6 +2072,11 @@ - name: "HTMLUnsafeMethods", +@@ -2088,6 +2088,11 @@ + name: "IgnoresCSSTextTransformsForPlainTextCopy", status: "stable", }, + { diff --git a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch index b1b9bf71..083de5a7 100644 --- a/build/patches/Disable-lock-icon-in-address-bar-by-default.patch +++ b/build/patches/Disable-lock-icon-in-address-bar-by-default.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc --- a/components/omnibox/common/omnibox_features.cc +++ b/components/omnibox/common/omnibox_features.cc -@@ -398,8 +398,8 @@ BASE_FEATURE(kOmniboxModernizeVisualUpdate, +@@ -393,8 +393,8 @@ BASE_FEATURE(kOmniboxSteadyStateTextColor, // used, on non-Android platforms this is controlled through the // ChromeRefresh2023 flag. BASE_FEATURE(kUpdatedConnectionSecurityIndicators, diff --git a/build/patches/Disable-media-router-and-remoting-by-default.patch b/build/patches/Disable-media-router-and-remoting-by-default.patch index b03a2dc2..97b70d47 100644 --- a/build/patches/Disable-media-router-and-remoting-by-default.patch +++ b/build/patches/Disable-media-router-and-remoting-by-default.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc --- a/chrome/browser/media/router/media_router_feature.cc +++ b/chrome/browser/media/router/media_router_feature.cc -@@ -106,6 +106,7 @@ void ClearMediaRouterStoredPrefsForTesting() { +@@ -110,6 +110,7 @@ void ClearMediaRouterStoredPrefsForTesting() { } bool MediaRouterEnabled(content::BrowserContext* context) { @@ -23,7 +23,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse #if !BUILDFLAG(IS_ANDROID) if (!base::FeatureList::IsEnabled(kMediaRouter)) return false; -@@ -148,7 +149,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -152,7 +153,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterStringPref(prefs::kMediaRouterReceiverIdHashToken, "", PrefRegistry::PUBLIC); registry->RegisterBooleanPref( @@ -32,7 +32,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse registry->RegisterBooleanPref( media_router::prefs::kMediaRouterShowCastSessionsStartedByOtherDevices, true); -@@ -219,4 +220,7 @@ std::optional GetCastMirroringPlayoutDelay() { +@@ -223,4 +224,7 @@ std::optional GetCastMirroringPlayoutDelay() { #endif // !BUILDFLAG(IS_ANDROID) @@ -43,7 +43,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.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 -@@ -420,7 +420,7 @@ void ProfileImpl::RegisterProfilePrefs( +@@ -423,7 +423,7 @@ void ProfileImpl::RegisterProfilePrefs( #endif registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false); @@ -55,7 +55,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p 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 -@@ -568,6 +568,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( +@@ -572,6 +572,8 @@ void SetCustomizedRuntimeFeaturesFromCombinedArgs( WebRuntimeFeatures::EnableBackForwardCache( content::IsBackForwardCacheEnabled()); @@ -79,7 +79,7 @@ diff --git a/third_party/blink/renderer/modules/remoteplayback/remote_playback.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 -@@ -3248,14 +3248,10 @@ +@@ -3274,14 +3274,10 @@ base_feature: "none", }, { diff --git a/build/patches/Disable-plugins-enumeration.patch b/build/patches/Disable-plugins-enumeration.patch index 8ffbae13..4aaee3fb 100644 --- a/build/patches/Disable-plugins-enumeration.patch +++ b/build/patches/Disable-plugins-enumeration.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.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 -@@ -2219,9 +2219,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2252,9 +2252,7 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Disable-prefers-reduced-transparency-media-query.patch b/build/patches/Disable-prefers-reduced-transparency-media-query.patch index f58b5606..d495fbff 100644 --- a/build/patches/Disable-prefers-reduced-transparency-media-query.patch +++ b/build/patches/Disable-prefers-reduced-transparency-media-query.patch @@ -51,7 +51,7 @@ diff --git a/third_party/blink/renderer/core/preferences/preference_manager.idl 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 -@@ -3069,6 +3069,10 @@ +@@ -3091,6 +3091,10 @@ name: "PrefersReducedData", status: "experimental", }, diff --git a/build/patches/Disable-privacy-issues-in-password-manager.patch b/build/patches/Disable-privacy-issues-in-password-manager.patch index b7b46207..0240e967 100644 --- a/build/patches/Disable-privacy-issues-in-password-manager.patch +++ b/build/patches/Disable-privacy-issues-in-password-manager.patch @@ -13,8 +13,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html components/affiliations/core/browser/facet_manager.cc | 4 ++++ .../core/browser/features/password_features.cc | 4 ++++ .../leak_detection/leak_detection_check_factory_impl.cc | 5 +++++ - .../browser/leak_detection/leak_detection_check_impl.cc | 4 +--- - 10 files changed, 22 insertions(+), 15 deletions(-) + .../browser/leak_detection/leak_detection_check_impl.cc | 3 +-- + 10 files changed, 22 insertions(+), 14 deletions(-) diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml --- a/chrome/android/java/AndroidManifest.xml @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc b/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc --- a/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc +++ b/chrome/browser/password_manager/android/password_store_android_backend_dispatcher_bridge_impl.cc -@@ -64,6 +64,7 @@ bool PasswordStoreAndroidBackendDispatcherBridge:: +@@ -66,6 +66,7 @@ bool PasswordStoreAndroidBackendDispatcherBridge:: bool PasswordStoreAndroidBackendDispatcherBridge:: CanUseGetAllLoginsWithBrandingInfoAPI() { @@ -113,7 +113,7 @@ diff --git a/components/affiliations/core/browser/facet_manager.cc b/components/ 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 -@@ -191,4 +191,8 @@ BASE_FEATURE(kUsernameFirstFlowWithIntermediateValuesVoting, +@@ -206,4 +206,8 @@ BASE_FEATURE(kUsernameFirstFlowWithIntermediateValuesVoting, "UsernameFirstFlowWithIntermediateValuesVoting", base::FEATURE_ENABLED_BY_DEFAULT); @@ -140,13 +140,12 @@ diff --git a/components/password_manager/core/browser/leak_detection/leak_detect diff --git a/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc b/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc --- a/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc +++ b/components/password_manager/core/browser/leak_detection/leak_detection_check_impl.cc -@@ -194,9 +194,7 @@ bool LeakDetectionCheckImpl::HasAccountForRequest( +@@ -192,8 +192,7 @@ bool LeakDetectionCheckImpl::HasAccountForRequest( + const signin::IdentityManager* identity_manager) { + // On desktop HasPrimaryAccount(signin::ConsentLevel::kSignin) will // always return something if the user is signed in. - // On Android it will be empty if the user isn't syncing. Thus, - // GetAccountsWithRefreshTokens() check is necessary. - return identity_manager && -- (identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin) || -- !identity_manager->GetAccountsWithRefreshTokens().empty()); +- identity_manager->HasPrimaryAccount(signin::ConsentLevel::kSignin); + return false; } diff --git a/build/patches/Disable-privacy-sandbox.patch b/build/patches/Disable-privacy-sandbox.patch index afed76fe..0a87a60b 100644 --- a/build/patches/Disable-privacy-sandbox.patch +++ b/build/patches/Disable-privacy-sandbox.patch @@ -34,7 +34,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 -@@ -3302,6 +3302,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -3339,6 +3339,9 @@ bool ChromeContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -79,7 +79,7 @@ diff --git a/chrome/browser/first_party_sets/first_party_sets_policy_service.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -1523,7 +1523,7 @@ void RegisterProfilePrefsForMigration( +@@ -1577,7 +1577,7 @@ void RegisterProfilePrefsForMigration( registry->RegisterTimePref(kPlusAddressLastFetchedTime, base::Time()); // Deprecated 03/2024. @@ -91,7 +91,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_service_impl.cc -@@ -424,7 +424,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { +@@ -471,7 +471,7 @@ bool PrivacySandboxServiceImpl::IsRestrictedNoticeEnabled() { void PrivacySandboxServiceImpl::SetFirstPartySetsDataAccessEnabled( bool enabled) { pref_service_->SetBoolean(prefs::kPrivacySandboxRelatedWebsiteSetsEnabled, @@ -147,7 +147,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc --- a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc +++ b/components/privacy_sandbox/privacy_sandbox_attestations/privacy_sandbox_attestations.cc -@@ -485,8 +485,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( +@@ -502,8 +502,6 @@ void PrivacySandboxAttestations::OnAttestationsParsed( if (attestations_map.has_value() && (!file_version_.IsValid() || file_version_.CompareTo(version) < 0)) { // Parsing succeeded and the attestations file has newer version. @@ -159,9 +159,9 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_attestations/privacy_san diff --git a/components/privacy_sandbox/privacy_sandbox_features.cc b/components/privacy_sandbox/privacy_sandbox_features.cc --- a/components/privacy_sandbox/privacy_sandbox_features.cc +++ b/components/privacy_sandbox/privacy_sandbox_features.cc -@@ -230,4 +230,8 @@ const base::FeatureParam kPrivacySandboxActivityTypeStorageWithinXDays{ - &kPrivacySandboxActivityTypeStorage, - kPrivacySandboxActivityTypeStorageWithinXDaysName, 60}; +@@ -261,4 +261,8 @@ const base::FeatureParam + &kPrivacySandboxLocalNoticeConfirmation, "default-to-os-country", + false}; +SET_CROMITE_FEATURE_DISABLED(kPrivacySandboxSettings4); +SET_CROMITE_FEATURE_ENABLED(kDisablePrivacySandboxPrompts); @@ -229,7 +229,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); -@@ -549,7 +552,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( +@@ -550,7 +553,8 @@ void PrivacySandboxSettingsImpl::ClearFledgeJoiningAllowedSettings( } bool PrivacySandboxSettingsImpl::IsFledgeJoiningAllowed( @@ -239,7 +239,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo ScopedDictPrefUpdate scoped_pref_update( pref_service_, prefs::kPrivacySandboxFledgeJoinBlocked); auto& pref_data = scoped_pref_update.Get(); -@@ -812,7 +816,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( +@@ -813,7 +817,10 @@ void PrivacySandboxSettingsImpl::SetDelegateForTesting( delegate_ = std::move(delegate); } @@ -251,7 +251,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo pref_service_->SetTime(prefs::kPrivacySandboxTopicsDataAccessibleSince, base::Time::Now()); -@@ -825,6 +832,7 @@ PrivacySandboxSettingsImpl::Status +@@ -826,6 +833,7 @@ PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( const url::Origin& top_frame_origin, const GURL& url) const { @@ -259,7 +259,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo // Relying on |host_content_settings_map_| instead of |cookie_settings_| // allows to query whether the site associated with the |url| is allowed to // access Site data (aka ContentSettingsType::COOKIES) without considering any -@@ -839,6 +847,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( +@@ -840,6 +848,7 @@ PrivacySandboxSettingsImpl::GetSiteAccessAllowedStatus( PrivacySandboxSettingsImpl::Status PrivacySandboxSettingsImpl::GetPrivacySandboxAllowedStatus( bool should_ignore_restriction /*=false*/) const { @@ -270,7 +270,7 @@ diff --git a/components/privacy_sandbox/privacy_sandbox_settings_impl.cc b/compo diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -64,14 +64,14 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -53,14 +53,14 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { // Tracking Protection Settings Prefs registry->RegisterBooleanPref( @@ -317,7 +317,7 @@ new file mode 100644 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 -@@ -2571,6 +2571,7 @@ BASE_FEATURE(kWebviewAccelerateSmallCanvases, +@@ -2601,6 +2601,7 @@ BASE_FEATURE(kWebviewAccelerateSmallCanvases, // constants for features in the section above. bool IsAllowURNsInIframeEnabled() { diff --git a/build/patches/Disable-references-to-fonts.googleapis.com.patch b/build/patches/Disable-references-to-fonts.googleapis.com.patch index b1c577c4..e3a0a085 100644 --- a/build/patches/Disable-references-to-fonts.googleapis.com.patch +++ b/build/patches/Disable-references-to-fonts.googleapis.com.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts --- a/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts +++ b/chrome/browser/resources/side_panel/read_anything/read_anything_toolbar.ts -@@ -437,9 +437,6 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { +@@ -472,9 +472,6 @@ export class ReadAnythingToolbarElement extends ReadAnythingToolbarElementBase { const link = document.createElement('link'); link.rel = 'preload'; link.as = 'style'; diff --git a/build/patches/Disable-safety-check.patch b/build/patches/Disable-safety-check.patch index bce00510..391fdd55 100644 --- a/build/patches/Disable-safety-check.patch +++ b/build/patches/Disable-safety-check.patch @@ -4,14 +4,14 @@ Subject: Disable safety check License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/BUILD.gn | 5 ----- - chrome/android/chrome_java_sources.gni | 1 - - chrome/android/java/res/xml/main_preferences.xml | 5 ----- - .../browser/settings/SettingsActivity.java | 16 ---------------- - .../browser/settings/SettingsLauncherImpl.java | 5 +---- - chrome/browser/BUILD.gn | 1 - - .../omnibox/suggestions/action/OmniboxPedal.java | 3 --- - 7 files changed, 1 insertion(+), 35 deletions(-) + chrome/android/BUILD.gn | 5 ----- + chrome/android/chrome_java_sources.gni | 1 - + .../android/java/res/xml/main_preferences.xml | 5 ----- + .../browser/settings/SettingsActivity.java | 19 ------------------- + .../settings/SettingsLauncherImpl.java | 6 ++---- + chrome/browser/BUILD.gn | 1 - + .../suggestions/action/OmniboxPedal.java | 3 --- + 7 files changed, 2 insertions(+), 38 deletions(-) diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn @@ -24,7 +24,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/screenshot_monitor:java", "//chrome/browser/search_engines/android:java", -@@ -1097,8 +1096,6 @@ if (current_toolchain == default_toolchain) { +@@ -1101,8 +1100,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/recent_tabs:java", "//chrome/browser/recent_tabs:junit", "//chrome/browser/recent_tabs/internal:junit", @@ -33,26 +33,26 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/safety_hub/android:java", "//chrome/browser/safety_hub/android:junit", "//chrome/browser/screenshot_monitor:java", -@@ -1742,8 +1739,6 @@ if (current_toolchain == default_toolchain) { +@@ -1754,8 +1751,6 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/quick_delete:javatests", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/safe_browsing/android:javatests", - "//chrome/browser/safety_check/android:java", - "//chrome/browser/safety_check/android:javatests", "//chrome/browser/safety_hub/android:java", + "//chrome/browser/safety_hub/android:javatests", "//chrome/browser/screenshot_monitor:java", - "//chrome/browser/search_engines/android:java", diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1003,7 +1003,6 @@ chrome_java_sources = [ +@@ -996,7 +996,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java", "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java", - "java/src/org/chromium/chrome/browser/safety_check/SafetyCheckUpdatesDelegateImpl.java", "java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java", + "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityClientImpl.java", "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java", - "java/src/org/chromium/chrome/browser/searchwidget/SearchActivityTabDelegateFactory.java", 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 @@ -71,7 +71,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -71,10 +71,6 @@ import org.chromium.chrome.browser.profiles.Profile; +@@ -70,10 +70,6 @@ import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.profiles.ProfileManagerUtils; import org.chromium.chrome.browser.safe_browsing.settings.SafeBrowsingSettingsFragmentBase; @@ -79,23 +79,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin -import org.chromium.chrome.browser.safety_check.SafetyCheckCoordinator; -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; -import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl; + import org.chromium.chrome.browser.safety_hub.SafetyHubBaseFragment; import org.chromium.chrome.browser.safety_hub.SafetyHubFragment; import org.chromium.chrome.browser.safety_hub.SafetyHubModuleDelegateImpl; - import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings; -@@ -557,18 +553,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -559,21 +555,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity baseSiteSettingsFragment.setCustomTabIntentHelper( LaunchIntentDispatcher::createCustomTabActivityIntent); } - if (fragment instanceof SafetyCheckSettingsFragment) { - SafetyCheckCoordinator.create( - (SafetyCheckSettingsFragment) fragment, +- mProfile, - new SafetyCheckUpdatesDelegateImpl(), - new SafetyCheckBridge(mProfile), - mSettingsLauncher, +- SigninAndHistoryOptInActivityLauncherImpl.get(), - SyncConsentActivityLauncherImpl.get(), - getModalDialogManagerSupplier(), - SyncServiceFactory.getForProfile(mProfile), - UserPrefs.get(mProfile), +- new PasswordStoreBridge(mProfile), - PasswordManagerHelper.getForProfile(mProfile)); - } if (fragment instanceof PasswordCheckFragmentView) { @@ -104,29 +107,37 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsLauncherImpl.java -@@ -20,7 +20,6 @@ import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragm - import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment; +@@ -21,7 +21,6 @@ import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragment; import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataFragmentAdvanced; import org.chromium.chrome.browser.browsing_data.ClearBrowsingDataTabsFragment; + import org.chromium.chrome.browser.password_manager.settings.PasswordSettings; -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment; + import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; + import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.components.browser_ui.settings.SettingsLauncher; - import org.chromium.components.browser_ui.site_settings.SiteSettings; - -@@ -68,9 +67,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { +@@ -58,8 +57,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { + /* isFetcherSuppliedFromOutside= */ false); break; - case SettingsFragment.SAFETY_CHECK: -- fragment = SafetyCheckSettingsFragment.class; - fragmentArgs = SafetyCheckSettingsFragment.createBundle(true); - break; + return; - + case SettingsFragment.MAIN: + case SettingsFragment.PAYMENT_METHODS: case SettingsFragment.SITE: - fragment = SiteSettings.class; +@@ -132,7 +130,7 @@ public class SettingsLauncherImpl implements SettingsLauncher { + case SettingsFragment.PAYMENT_METHODS: + return AutofillPaymentMethodsFragment.class; + case SettingsFragment.SAFETY_CHECK: +- return SafetyCheckSettingsFragment.class; ++ return null; + case SettingsFragment.SITE: + return SiteSettings.class; + case SettingsFragment.ACCESSIBILITY: diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3606,7 +3606,6 @@ static_library("browser") { +@@ -3584,7 +3584,6 @@ static_library("browser") { "//chrome/browser/reading_list/android", "//chrome/browser/recent_tabs:jni_headers", "//chrome/browser/safe_browsing/android:safe_browsing_enums", @@ -137,7 +148,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/action/OmniboxPedal.java -@@ -52,9 +52,6 @@ public class OmniboxPedal extends OmniboxAction { +@@ -54,9 +54,6 @@ public class OmniboxPedal extends OmniboxAction { case OmniboxPedalId.UPDATE_CREDIT_CARD: delegate.openSettingsPage(SettingsFragment.PAYMENT_METHODS); break; diff --git a/build/patches/Disable-smart-selection-by-default.patch b/build/patches/Disable-smart-selection-by-default.patch index 95f9ec84..c1bedb6b 100644 --- a/build/patches/Disable-smart-selection-by-default.patch +++ b/build/patches/Disable-smart-selection-by-default.patch @@ -44,7 +44,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearc 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 -@@ -186,6 +186,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -194,6 +194,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kCCTExtendTrustedCdnPublisher, &kCCTFeatureUsage, &kCCTEphemeralMode, @@ -55,10 +55,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 -@@ -239,6 +239,7 @@ public abstract class ChromeFeatureList { - public static final String CCT_NESTED_SECURITY_ICON = "CCTNestedSecurityIcon"; +@@ -247,6 +247,7 @@ public abstract class ChromeFeatureList { public static final String CCT_INTENT_FEATURE_OVERRIDES = "CCTIntentFeatureOverrides"; public static final String CCT_PAGE_INSIGHTS_HUB = "CCTPageInsightsHub"; + public static final String CCT_PAGE_INSIGHTS_HUB_PEEK = "CCTPageInsightsHubPeek"; + public static final String CHROME_SMART_SELECTION = "ChromeSmartSelection"; public static final String CCT_PAGE_INSIGHTS_HUB_BETTER_SCROLL = "CCTPageInsightsHubBetterScroll"; @@ -66,7 +66,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f 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 -@@ -1187,7 +1187,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper +@@ -1181,7 +1181,6 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper public boolean canWebSearch() { return hasSelection() && !isFocusedNodeEditable() diff --git a/build/patches/Disable-speechSynthesis-getVoices-API.patch b/build/patches/Disable-speechSynthesis-getVoices-API.patch index 9f4683b6..a4c16722 100644 --- a/build/patches/Disable-speechSynthesis-getVoices-API.patch +++ b/build/patches/Disable-speechSynthesis-getVoices-API.patch @@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -1630,7 +1630,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( +@@ -1627,7 +1627,7 @@ ChromeContentRendererClient::CreateWorkerContentSettingsClient( std::unique_ptr ChromeContentRendererClient::CreateSpeechRecognitionClient( content::RenderFrame* render_frame) { @@ -81,7 +81,7 @@ diff --git a/components/content_settings/renderer/content_settings_agent_impl.h diff --git a/content/browser/speech/tts_android.cc b/content/browser/speech/tts_android.cc --- a/content/browser/speech/tts_android.cc +++ b/content/browser/speech/tts_android.cc -@@ -42,7 +42,7 @@ TtsPlatformImplAndroid::~TtsPlatformImplAndroid() { +@@ -44,7 +44,7 @@ TtsPlatformImplAndroid::~TtsPlatformImplAndroid() { } bool TtsPlatformImplAndroid::PlatformImplSupported() { diff --git a/build/patches/Disable-support-for-RAR-files-inspection.patch b/build/patches/Disable-support-for-RAR-files-inspection.patch index 2a3a45d9..b17b4b6c 100644 --- a/build/patches/Disable-support-for-RAR-files-inspection.patch +++ b/build/patches/Disable-support-for-RAR-files-inspection.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc --- a/chrome/browser/safe_browsing/download_protection/file_analyzer.cc +++ b/chrome/browser/safe_browsing/download_protection/file_analyzer.cc -@@ -80,7 +80,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, +@@ -75,7 +75,7 @@ void FileAnalyzer::Start(const base::FilePath& target_path, if (inspection_type == DownloadFileType::ZIP) { StartExtractZipFeatures(); } else if (inspection_type == DownloadFileType::RAR) { @@ -70,7 +70,7 @@ diff --git a/chrome/services/file_util/safe_archive_analyzer.h b/chrome/services diff --git a/chrome/utility/safe_browsing/BUILD.gn b/chrome/utility/safe_browsing/BUILD.gn --- a/chrome/utility/safe_browsing/BUILD.gn +++ b/chrome/utility/safe_browsing/BUILD.gn -@@ -31,8 +31,6 @@ source_set("safe_browsing") { +@@ -11,8 +11,6 @@ source_set("safe_browsing") { sources = [ "archive_analyzer.cc", "archive_analyzer.h", diff --git a/build/patches/Disable-text-fragments-by-default.patch b/build/patches/Disable-text-fragments-by-default.patch index eedaadc3..c3f9c354 100644 --- a/build/patches/Disable-text-fragments-by-default.patch +++ b/build/patches/Disable-text-fragments-by-default.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -368,7 +368,7 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -383,7 +383,7 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref(prefs::kEnableEncryptedMedia, true); registry->RegisterStringPref(prefs::kPrefixedVideoFullscreenApiAvailability, "runtime-enabled"); @@ -74,7 +74,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 -@@ -4589,9 +4589,14 @@ void Document::SetURL(const KURL& url) { +@@ -4599,9 +4599,14 @@ void Document::SetURL(const KURL& url) { TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, "url", new_url.GetString().Utf8()); @@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -3935,10 +3935,9 @@ +@@ -3966,10 +3966,9 @@ }, { name: "TextFragmentIdentifiers", diff --git a/build/patches/Disable-third-party-origin-trials.patch b/build/patches/Disable-third-party-origin-trials.patch index bde8c148..3db71015 100644 --- a/build/patches/Disable-third-party-origin-trials.patch +++ b/build/patches/Disable-third-party-origin-trials.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/common/aw_content_client.cc b/android_webview/common/aw_content_client.cc --- a/android_webview/common/aw_content_client.cc +++ b/android_webview/common/aw_content_client.cc -@@ -126,7 +126,6 @@ blink::OriginTrialPolicy* AwContentClient::GetOriginTrialPolicy() { +@@ -128,7 +128,6 @@ blink::OriginTrialPolicy* AwContentClient::GetOriginTrialPolicy() { // flag to true after construction. This will work because trial token // validator will always get the current instance of policy when needed. if (IsDisableOriginTrialsSafeModeActionOn()) { @@ -76,7 +76,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl. 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 -@@ -8888,7 +8888,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { +@@ -8971,7 +8971,6 @@ void NavigationRequest::SetSourceSiteInstanceToInitiatorIfNeeded() { void NavigationRequest::ForceEnableOriginTrials( const std::vector& trials) { DCHECK(!HasCommitted()); @@ -193,7 +193,7 @@ diff --git a/third_party/blink/common/origin_trials/trial_token_validator.cc b/t 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 -@@ -186,13 +186,6 @@ namespace { +@@ -188,13 +188,6 @@ namespace { Vector CopyInitiatorOriginTrials( const WebVector& initiator_origin_trial_features) { Vector result; @@ -207,7 +207,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -206,18 +199,12 @@ WebVector CopyInitiatorOriginTrials( +@@ -208,18 +201,12 @@ WebVector CopyInitiatorOriginTrials( Vector CopyForceEnabledOriginTrials( const WebVector& force_enabled_origin_trials) { Vector result; @@ -226,7 +226,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p return result; } -@@ -3080,10 +3067,6 @@ void DocumentLoader::CreateParserPostCommit() { +@@ -3070,10 +3057,6 @@ void DocumentLoader::CreateParserPostCommit() { mojom::blink::OriginTrialFeature::kTouchEventFeatureDetection); } @@ -240,7 +240,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/http_equiv.cc b/third_party/blink/renderer/core/loader/http_equiv.cc --- a/third_party/blink/renderer/core/loader/http_equiv.cc +++ b/third_party/blink/renderer/core/loader/http_equiv.cc -@@ -108,7 +108,7 @@ void HttpEquiv::ProcessHttpEquivDefaultStyle(Document& document, +@@ -107,7 +107,7 @@ void HttpEquiv::ProcessHttpEquivDefaultStyle(Document& document, void HttpEquiv::ProcessHttpEquivOriginTrial(LocalDOMWindow* window, const AtomicString& content) { diff --git a/build/patches/Disable-various-metrics.patch b/build/patches/Disable-various-metrics.patch index 24f2449d..ba5e1e25 100644 --- a/build/patches/Disable-various-metrics.patch +++ b/build/patches/Disable-various-metrics.patch @@ -24,7 +24,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/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java -@@ -64,7 +64,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity +@@ -63,7 +63,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity static final String SHOW_SYNC_CONSENT_PAGE = "ShowSyncConsent"; static final String SHOW_HISTORY_SYNC_PAGE = "ShowHistorySync"; @@ -91,7 +91,7 @@ diff --git a/chrome/browser/android/ntp/most_visited_sites_bridge.cc b/chrome/br 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 -@@ -1101,7 +1101,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -1099,7 +1099,7 @@ void BrowserProcessImpl::RegisterPrefs(PrefRegistrySimple* registry) { #endif // BUILDFLAG(IS_CHROMEOS_ASH) registry->RegisterBooleanPref(metrics::prefs::kMetricsReportingEnabled, @@ -103,7 +103,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro 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 -@@ -84,7 +84,6 @@ +@@ -85,7 +85,6 @@ #include "chrome/browser/history/history_service_factory.h" #include "chrome/browser/interstitials/enterprise_util.h" #include "chrome/browser/lifetime/browser_shutdown.h" @@ -111,7 +111,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #include "chrome/browser/media/audio_service_util.h" #include "chrome/browser/media/prefs/capture_device_ranking.h" #include "chrome/browser/media/router/media_router_feature.h" -@@ -5053,16 +5052,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5106,16 +5105,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( content::NavigationHandle* handle) { std::vector> throttles; @@ -128,8 +128,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(IS_ANDROID) // TODO(davidben): This is insufficient to integrate with prerender properly. // https://crbug.com/370595 -@@ -5162,10 +5151,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( - throttle_manager->MaybeAppendNavigationThrottles(handle, &throttles); +@@ -5223,10 +5212,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( + } } - MaybeAddThrottle( @@ -199,7 +199,7 @@ diff --git a/components/ntp_tiles/BUILD.gn b/components/ntp_tiles/BUILD.gn diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_tiles/custom_links_manager_impl.cc --- a/components/ntp_tiles/custom_links_manager_impl.cc +++ b/components/ntp_tiles/custom_links_manager_impl.cc -@@ -203,7 +203,6 @@ void CustomLinksManagerImpl::RemoveCustomLinksForPreinstalledApps() { +@@ -217,7 +217,6 @@ void CustomLinksManagerImpl::RemoveCustomLinksForPreinstalledApps() { } } if (default_app_links_deleted) { @@ -210,7 +210,7 @@ diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_ diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/most_visited_sites.cc --- a/components/ntp_tiles/most_visited_sites.cc +++ b/components/ntp_tiles/most_visited_sites.cc -@@ -721,8 +721,6 @@ void MostVisitedSites::SaveTilesAndNotify( +@@ -747,8 +747,6 @@ void MostVisitedSites::SaveTilesAndNotify( : new_tiles; if (fixed_tiles.size() != new_tiles.size()) { diff --git a/build/patches/Disable-wip-Android-Hub.patch b/build/patches/Disable-wip-Android-Hub.patch index 33770de0..3c5446a6 100644 --- a/build/patches/Disable-wip-Android-Hub.patch +++ b/build/patches/Disable-wip-Android-Hub.patch @@ -12,15 +12,15 @@ Temporarily disable android hub being still in work in progress 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 -@@ -543,7 +543,7 @@ public abstract class ChromeFeatureList { +@@ -557,7 +557,7 @@ public abstract class ChromeFeatureList { newCachedFlag(ANDROID_APP_INTEGRATION, false); public static final CachedFlag sAndroidElegantTextHeight = newCachedFlag(ANDROID_ELEGANT_TEXT_HEIGHT, false); - public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, true); + public static final CachedFlag sAndroidHub = newCachedFlag(ANDROID_HUB, false); - public static final CachedFlag sAndroidTabGroupStableIds = + public static final CachedFlag sAndroidHubFloatingActionButton = newCachedFlag( - ANDROID_TAB_GROUP_STABLE_IDS, + ANDROID_HUB_FLOATING_ACTION_BUTTON, diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-Android-Hub.inc new file mode 100644 --- /dev/null diff --git a/build/patches/Disallow-Android-App-Scheme-as-referrer.patch b/build/patches/Disallow-Android-App-Scheme-as-referrer.patch index ba10120d..1e438431 100644 --- a/build/patches/Disallow-Android-App-Scheme-as-referrer.patch +++ b/build/patches/Disallow-Android-App-Scheme-as-referrer.patch @@ -9,7 +9,7 @@ Subject: Disallow Android App Scheme as referrer 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 -@@ -554,11 +554,6 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -548,11 +548,6 @@ void ChromeContentRendererClient::RenderThreadStarted() { // TODO(nyquist): Add test to ensure this happens when the flag is set. WebSecurityPolicy::RegisterURLSchemeAsDisplayIsolated(dom_distiller_scheme); diff --git a/build/patches/Do-not-build-API-keys-infobar.patch b/build/patches/Do-not-build-API-keys-infobar.patch index 5d8290e0..47186ea5 100644 --- a/build/patches/Do-not-build-API-keys-infobar.patch +++ b/build/patches/Do-not-build-API-keys-infobar.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -1482,8 +1482,6 @@ static_library("ui") { +@@ -1500,8 +1500,6 @@ static_library("ui") { "startup/default_browser_prompt/default_browser_prompt_manager.h", "startup/default_browser_prompt/default_browser_prompt_prefs.cc", "startup/default_browser_prompt/default_browser_prompt_prefs.h", diff --git a/build/patches/Do-not-compile-QR-code-sharing.patch b/build/patches/Do-not-compile-QR-code-sharing.patch index c92f3f91..c888b015 100644 --- a/build/patches/Do-not-compile-QR-code-sharing.patch +++ b/build/patches/Do-not-compile-QR-code-sharing.patch @@ -14,7 +14,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 -@@ -3598,7 +3598,6 @@ generate_jni("chrome_jni_headers") { +@@ -3606,7 +3606,6 @@ generate_jni("chrome_jni_headers") { "../browser/share/android/java/src/org/chromium/chrome/browser/share/link_to_text/LinkToTextBridge.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabService.java", "../browser/share/android/java/src/org/chromium/chrome/browser/share/long_screenshots/bitmap_generation/LongScreenshotsTabServiceFactory.java", @@ -25,7 +25,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn 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 -@@ -113,7 +113,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; +@@ -114,7 +114,6 @@ import org.chromium.chrome.browser.share.ShareButtonController; import org.chromium.chrome.browser.share.ShareDelegate; import org.chromium.chrome.browser.share.ShareDelegate.ShareOrigin; import org.chromium.chrome.browser.share.ShareUtils; @@ -33,7 +33,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.share.scroll_capture.ScrollCaptureManager; import org.chromium.chrome.browser.tab.AccessibilityVisibilityHandler; import org.chromium.chrome.browser.tab.AutofillSessionLifetimeController; -@@ -605,10 +604,6 @@ public class RootUiCoordinator +@@ -604,10 +603,6 @@ public class RootUiCoordinator } public void onAttachFragment(Fragment fragment) { diff --git a/build/patches/Do-not-link-with-libatomic.patch b/build/patches/Do-not-link-with-libatomic.patch index dc9e6845..46d8b821 100644 --- a/build/patches/Do-not-link-with-libatomic.patch +++ b/build/patches/Do-not-link-with-libatomic.patch @@ -14,7 +14,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 -@@ -1144,7 +1144,7 @@ component("base") { +@@ -1121,7 +1121,7 @@ component("base") { # more robust check for this. if (!use_sysroot && (is_android || is_chromeos || (is_linux && !is_castos)) && host_toolchain != "//build/toolchain/cros:host") { diff --git a/build/patches/Do-not-store-passwords-by-default.patch b/build/patches/Do-not-store-passwords-by-default.patch index bf96b833..136b2823 100644 --- a/build/patches/Do-not-store-passwords-by-default.patch +++ b/build/patches/Do-not-store-passwords-by-default.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc -@@ -268,14 +268,14 @@ void MaybeNudgeToUpdateGMSCoreWhenSavingDisabled( +@@ -277,14 +277,14 @@ bool HasManuallyFilledFields(const PasswordForm& form) { void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( @@ -27,7 +27,7 @@ diff --git a/components/password_manager/core/browser/password_manager.cc b/comp user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); registry->RegisterStringPref(prefs::kSyncPasswordHash, std::string(), PrefRegistry::NO_REGISTRATION_FLAGS); -@@ -315,9 +315,9 @@ void PasswordManager::RegisterProfilePrefs( +@@ -324,9 +324,9 @@ void PasswordManager::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref(prefs::kPasswordsPrefWithNewLabelUsed, false); #if BUILDFLAG(IS_ANDROID) diff --git a/build/patches/DoH-improvements.patch b/build/patches/DoH-improvements.patch index cb010487..5906da1d 100644 --- a/build/patches/DoH-improvements.patch +++ b/build/patches/DoH-improvements.patch @@ -7,45 +7,50 @@ Always enforce DoH even with inconsistent system DNS configuration License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../browser/net/stub_resolver_config_reader.cc | 17 +---------------- - net/dns/dns_client.cc | 11 ++++++++--- - net/dns/host_resolver_manager.cc | 1 + - 3 files changed, 10 insertions(+), 19 deletions(-) + chrome/browser/net/secure_dns_config.cc | 2 +- + chrome/browser/net/stub_resolver_config_reader.cc | 3 +++ + net/dns/dns_client.cc | 11 ++++++++--- + net/dns/host_resolver_manager.cc | 1 + + 4 files changed, 13 insertions(+), 4 deletions(-) +diff --git a/chrome/browser/net/secure_dns_config.cc b/chrome/browser/net/secure_dns_config.cc +--- a/chrome/browser/net/secure_dns_config.cc ++++ b/chrome/browser/net/secure_dns_config.cc +@@ -27,7 +27,7 @@ std::optional SecureDnsConfig::ParseMode( + if (name == kModeSecure) { + return net::SecureDnsMode::kSecure; + } else if (name == kModeAutomatic) { +- return net::SecureDnsMode::kAutomatic; ++ return net::SecureDnsMode::kSecure; + } else if (name == kModeOff) { + return net::SecureDnsMode::kOff; + } diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc --- a/chrome/browser/net/stub_resolver_config_reader.cc +++ b/chrome/browser/net/stub_resolver_config_reader.cc -@@ -151,7 +151,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state, - if (entries.count("dns-over-https@1")) { - // The user has "Enabled" selected. - local_state_->SetString(prefs::kDnsOverHttpsMode, -- SecureDnsConfig::kModeAutomatic); -+ SecureDnsConfig::kModeSecure); - } else if (entries.count("dns-over-https@2")) { - // The user has "Disabled" selected. - local_state_->SetString(prefs::kDnsOverHttpsMode, -@@ -348,22 +348,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration( - check_parental_controls = false; - } +@@ -83,6 +83,7 @@ enum class SecureDnsModeDetailsForHistogram { -- // Check parental controls last because it can be expensive and should only be -- // checked if necessary for the otherwise-determined mode. - if (check_parental_controls) { -- if (ShouldDisableDohForParentalControls()) { -- forced_management_mode = -- SecureDnsConfig::ManagementMode::kDisabledParentalControls; -- secure_dns_mode = net::SecureDnsMode::kOff; -- mode_details = -- SecureDnsModeDetailsForHistogram::kOffByDetectedParentalControls; -- -- // If parental controls had not previously been checked, need to update -- // network service. -- if (!parental_controls_checked_) -- update_network_service = true; -- } -- - parental_controls_checked_ = true; - } + #if BUILDFLAG(IS_WIN) + bool ShouldDisableDohForWindowsParentalControls() { ++ if ((true)) return false; + return GetWinParentalControls().web_filter; + } + #endif // BUILDFLAG(IS_WIN) +@@ -189,6 +190,7 @@ void StubResolverConfigReader::UpdateNetworkService(bool record_metrics) { + } + + bool StubResolverConfigReader::ShouldDisableDohForManaged() { ++ if ((true)) return false; + // This function ignores cloud policies which are loaded on a per-profile basis. + #if BUILDFLAG(IS_ANDROID) + // Check for MDM/management/owner apps. android_has_owner_ is true if either a +@@ -217,6 +219,7 @@ bool StubResolverConfigReader::ShouldDisableDohForManaged() { + } + + bool StubResolverConfigReader::ShouldDisableDohForParentalControls() { ++ if ((true)) return false; + if (parental_controls_testing_override_.has_value()) + return parental_controls_testing_override_.value(); diff --git a/net/dns/dns_client.cc b/net/dns/dns_client.cc --- a/net/dns/dns_client.cc diff --git a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch index 406a3828..d64e7a00 100644 --- a/build/patches/Enable-Android-Dynamic-Performance-Framework.patch +++ b/build/patches/Enable-Android-Dynamic-Performance-Framework.patch @@ -23,7 +23,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni 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 -@@ -310,9 +310,11 @@ const base::FeatureParam kADPFBoostTimeout{ +@@ -318,9 +318,11 @@ const base::FeatureParam kADPFBoostTimeout{ // If enabled, Chrome includes the Renderer Main thread(s) into the // ADPF(Android Dynamic Performance Framework) hint session. diff --git a/build/patches/Enable-Certificate-Transparency.patch b/build/patches/Enable-Certificate-Transparency.patch index 32f52663..0ed7f62a 100644 --- a/build/patches/Enable-Certificate-Transparency.patch +++ b/build/patches/Enable-Certificate-Transparency.patch @@ -24,18 +24,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html 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 -@@ -24,6 +24,7 @@ BASE_DECLARE_FEATURE(kAppBoundEncryptionMetrics); - +@@ -21,6 +21,7 @@ namespace features { BASE_DECLARE_FEATURE(kAutocompleteActionPredictorConfidenceCutoff); + BASE_DECLARE_FEATURE(kBookmarksTreeView); BASE_DECLARE_FEATURE(kBookmarkTriggerForPrerender2); +BASE_DECLARE_FEATURE(kCertificateTransparency); BASE_DECLARE_FEATURE(kCertificateTransparencyAskBeforeEnabling); BASE_DECLARE_FEATURE(kClosedTabCache); - BASE_DECLARE_FEATURE(kDeferredSpareRendererForTopChromeWebUI); + 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 -@@ -1034,7 +1034,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { +@@ -1032,7 +1032,7 @@ bool SystemNetworkContextManager::IsCertificateTransparencyEnabled() { // - on an opt-in basis for other builds and embedders, controlled with the // kCertificateTransparencyAskBeforeEnabling flag return base::FeatureList::IsEnabled( @@ -94,7 +94,7 @@ new file mode 100644 diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -186,6 +186,7 @@ class HSTSPreloadDecoder : public net::extras::PreloadDecoder { +@@ -191,6 +191,7 @@ class HSTSPreloadDecoder : public extras::PreloadDecoder { bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { #if !BUILDFLAG(INCLUDE_TRANSPORT_SECURITY_STATE_PRELOAD_LIST) diff --git a/build/patches/Enable-Do-Not-Track-by-default.patch b/build/patches/Enable-Do-Not-Track-by-default.patch index 8579020a..1d705767 100644 --- a/build/patches/Enable-Do-Not-Track-by-default.patch +++ b/build/patches/Enable-Do-Not-Track-by-default.patch @@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -79,7 +79,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -70,7 +70,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kFingerprintingProtectionEnabled, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( diff --git a/build/patches/Enable-Document-Open-Inheritance-Removal.patch b/build/patches/Enable-Document-Open-Inheritance-Removal.patch index 7dba019e..e0155f88 100644 --- a/build/patches/Enable-Document-Open-Inheritance-Removal.patch +++ b/build/patches/Enable-Document-Open-Inheritance-Removal.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/third_party/blink/renderer/core/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 -@@ -3528,70 +3528,6 @@ void Document::open(LocalDOMWindow* entered_window, +@@ -3537,70 +3537,6 @@ void Document::open(LocalDOMWindow* entered_window, // https://chromestatus.com/metrics/feature/timeline/popularity/4375 CountUse(WebFeature::kDocumentOpenMutateSandbox); } @@ -85,7 +85,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink 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 -@@ -1335,7 +1335,6 @@ +@@ -1353,7 +1353,6 @@ { name: "DocumentOpenSandboxInheritanceRemoval", status: "stable", diff --git a/build/patches/Enable-Global-Privacy-Control.patch b/build/patches/Enable-Global-Privacy-Control.patch index 8a09b815..318428f2 100644 --- a/build/patches/Enable-Global-Privacy-Control.patch +++ b/build/patches/Enable-Global-Privacy-Control.patch @@ -72,7 +72,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 -@@ -976,6 +976,7 @@ chrome_java_sources = [ +@@ -965,6 +965,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/settings/AdBlockPreferences.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditor.java", "java/src/org/chromium/chrome/browser/policy/PolicyAuditorBridge.java", @@ -103,7 +103,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -55,6 +55,10 @@ found in the LICENSE file. +@@ -60,6 +60,10 @@ found in the LICENSE file. android:key="do_not_track" android:title="@string/do_not_track_title" android:fragment="org.chromium.chrome.browser.privacy.settings.DoNotTrackSettings" /> @@ -156,7 +156,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 -@@ -93,6 +93,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -90,6 +90,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_SECURE_DNS = "secure_dns"; private static final String PREF_USAGE_STATS = "usage_stats_reporting"; private static final String PREF_DO_NOT_TRACK = "do_not_track"; @@ -164,7 +164,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; private static final String PREF_REFERER_POLICY = "referers_policy"; -@@ -447,6 +448,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -468,6 +469,14 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -182,7 +182,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -2285,6 +2285,21 @@ +@@ -2294,6 +2294,21 @@ Learn more about Do Not Track @@ -207,7 +207,7 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp 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 -@@ -368,6 +368,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -371,6 +371,7 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kTrackingProtectionLevel] = settings_api::PrefType::kNumber; (*s_allowlist)[::prefs::kEnableDoNotTrack] = settings_api::PrefType::kBoolean; @@ -242,7 +242,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/privacy_page/cookies_page.html b/chrome/browser/resources/settings/privacy_page/cookies_page.html --- a/chrome/browser/resources/settings/privacy_page/cookies_page.html +++ b/chrome/browser/resources/settings/privacy_page/cookies_page.html -@@ -263,6 +263,8 @@ +@@ -256,6 +256,8 @@ @@ -464,7 +464,7 @@ diff --git a/chrome/browser/ui/prefs/pref_watcher.h b/chrome/browser/ui/prefs/pr 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 -@@ -1743,6 +1743,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1741,6 +1741,9 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"doNotTrackDialogMessage", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_TEXT}, {"doNotTrackDialogLearnMoreA11yLabel", IDS_SETTINGS_ENABLE_DO_NOT_TRACK_DIALOG_LEARN_MORE_ACCESSIBILITY_LABEL}, @@ -477,7 +477,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/components/privacy_sandbox/tracking_protection_prefs.cc --- a/components/privacy_sandbox/tracking_protection_prefs.cc +++ b/components/privacy_sandbox/tracking_protection_prefs.cc -@@ -81,6 +81,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -72,6 +72,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kEnableDoNotTrack, false, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); @@ -488,7 +488,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_prefs.cc b/component diff --git a/components/privacy_sandbox/tracking_protection_prefs.h b/components/privacy_sandbox/tracking_protection_prefs.h --- a/components/privacy_sandbox/tracking_protection_prefs.h +++ b/components/privacy_sandbox/tracking_protection_prefs.h -@@ -124,6 +124,8 @@ inline constexpr char kFingerprintingProtectionEnabled[] = +@@ -110,6 +110,8 @@ inline constexpr char kFingerprintingProtectionEnabled[] = // Whether to send the DNT header. inline constexpr char kEnableDoNotTrack[] = "enable_do_not_track"; @@ -512,8 +512,8 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/compon pref_change_registrar_.Add( prefs::kFingerprintingProtectionEnabled, base::BindRepeating( -@@ -177,6 +182,10 @@ bool TrackingProtectionSettings::HasTrackingProtectionException( - ContentSettingsType::TRACKING_PROTECTION) == CONTENT_SETTING_ALLOW; +@@ -185,6 +190,10 @@ void TrackingProtectionSettings::MaybeInitializeIppPref() { + pref_service_->SetBoolean(prefs::kIpProtectionInitializedByDogfood, true); } +bool TrackingProtectionSettings::IsGPCEnabled() const { @@ -523,7 +523,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.cc b/compon void TrackingProtectionSettings::OnEnterpriseControlForPrefsChanged() { if (!IsTrackingProtection3pcdEnabled()) { return; -@@ -216,6 +225,12 @@ void TrackingProtectionSettings::OnDoNotTrackEnabledPrefChanged() { +@@ -223,6 +232,12 @@ void TrackingProtectionSettings::OnDoNotTrackEnabledPrefChanged() { } } @@ -548,7 +548,7 @@ diff --git a/components/privacy_sandbox/tracking_protection_settings.h b/compone // Returns whether tracking protection for 3PCD (prefs + UX) is enabled. bool IsTrackingProtection3pcdEnabled() const; -@@ -82,6 +84,7 @@ class TrackingProtectionSettings +@@ -86,6 +88,7 @@ class TrackingProtectionSettings // Callbacks for pref observation. void OnDoNotTrackEnabledPrefChanged(); @@ -671,7 +671,7 @@ diff --git a/third_party/blink/public/mojom/renderer_preferences.mojom b/third_p diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni b/third_party/blink/renderer/bindings/idl_in_modules.gni --- a/third_party/blink/renderer/bindings/idl_in_modules.gni +++ b/third_party/blink/renderer/bindings/idl_in_modules.gni -@@ -1262,6 +1262,11 @@ static_idl_files_in_modules = [ +@@ -1265,6 +1265,11 @@ static_idl_files_in_modules = [ "//third_party/blink/renderer/modules/xr/xr_webgl_sub_image.idl", ] @@ -686,7 +686,7 @@ diff --git a/third_party/blink/renderer/bindings/idl_in_modules.gni 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 -@@ -3510,6 +3510,9 @@ void WebViewImpl::UpdateRendererPreferences( +@@ -3502,6 +3502,9 @@ void WebViewImpl::UpdateRendererPreferences( GetSettings()->SetCaretBrowsingEnabled( renderer_preferences_.caret_browsing_enabled); @@ -785,7 +785,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc --- a/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc +++ b/third_party/blink/renderer/modules/service_worker/web_service_worker_fetch_context_impl.cc -@@ -148,6 +148,9 @@ void WebServiceWorkerFetchContextImpl::WillSendRequest(WebURLRequest& request) { +@@ -154,6 +154,9 @@ void WebServiceWorkerFetchContextImpl::WillSendRequest(WebURLRequest& request) { if (renderer_preferences_.enable_do_not_track) { request.SetHttpHeaderField(WebString::FromUTF8(kDoNotTrackHeader), "1"); } @@ -811,7 +811,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/url_loader/dedicat 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 -@@ -1874,6 +1874,11 @@ +@@ -1880,6 +1880,11 @@ status: "stable", base_feature: "none", }, diff --git a/build/patches/Enable-ImprovedBookmarks-by-default.patch b/build/patches/Enable-ImprovedBookmarks-by-default.patch index 520d2485..cfcb3480 100644 --- a/build/patches/Enable-ImprovedBookmarks-by-default.patch +++ b/build/patches/Enable-ImprovedBookmarks-by-default.patch @@ -62,7 +62,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java -@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.IntentHandler; +@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.app.bookmarks.BookmarkActivity; import org.chromium.chrome.browser.app.bookmarks.BookmarkEditActivity; import org.chromium.chrome.browser.app.bookmarks.BookmarkFolderPickerActivity; @@ -70,7 +70,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm import org.chromium.chrome.browser.bookmarks.BookmarkUiPrefs.BookmarkRowDisplayPref; import org.chromium.chrome.browser.commerce.ShoppingServiceFactory; import org.chromium.chrome.browser.document.ChromeLauncherActivity; -@@ -527,7 +528,7 @@ public class BookmarkUtils { +@@ -539,7 +540,7 @@ public class BookmarkUtils { RecordUserAction.record("MobileBookmarkManagerReopenBookmarksInSameSession"); } @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm 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 -@@ -811,7 +811,7 @@ public abstract class ChromeFeatureList { +@@ -834,7 +834,7 @@ public abstract class ChromeFeatureList { public static final MutableFlagWithSafeDefault sAdaptiveButtonInTopToolbarCustomizationV2 = newMutableFlagWithSafeDefault(ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2, false); public static final MutableFlagWithSafeDefault sAndroidImprovedBookmarks = diff --git a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch index 44b1226d..2ff98adf 100644 --- a/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch +++ b/build/patches/Enable-StrictOriginIsolation-and-SitePerProcess.patch @@ -20,7 +20,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 -@@ -1509,7 +1509,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1531,7 +1531,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( registry->RegisterFilePathPref(prefs::kDiskCacheDir, base::FilePath()); registry->RegisterIntegerPref(prefs::kDiskCacheSize, 0); registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); @@ -29,7 +29,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch registry->RegisterBooleanPref(prefs::kTabFreezingEnabled, true); registry->RegisterIntegerPref(prefs::kSCTAuditingHashdanceReportCount, 0); #if BUILDFLAG(IS_CHROMEOS) -@@ -1530,7 +1530,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1552,7 +1552,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( // user policy in addition to the same named ones in Local State (which are // used for mapping the command-line flags). registry->RegisterStringPref(prefs::kIsolateOrigins, std::string()); diff --git a/build/patches/Enable-darken-websites-checkbox-in-themes.patch b/build/patches/Enable-darken-websites-checkbox-in-themes.patch index b59d6287..25c152fd 100644 --- a/build/patches/Enable-darken-websites-checkbox-in-themes.patch +++ b/build/patches/Enable-darken-websites-checkbox-in-themes.patch @@ -14,7 +14,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 -@@ -1789,9 +1789,9 @@ +@@ -1845,9 +1845,9 @@ "expiry_milestone": -1 }, { diff --git a/build/patches/Enable-gwp-asan-on-Android.patch b/build/patches/Enable-gwp-asan-on-Android.patch index 875ba5c2..1360cd36 100644 --- a/build/patches/Enable-gwp-asan-on-Android.patch +++ b/build/patches/Enable-gwp-asan-on-Android.patch @@ -33,7 +33,7 @@ diff --git a/android_webview/lib/aw_main_delegate.cc b/android_webview/lib/aw_ma diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni --- a/build/config/compiler/compiler.gni +++ b/build/config/compiler/compiler.gni -@@ -191,10 +191,11 @@ if (is_chromeos) { +@@ -184,10 +184,11 @@ if (is_chromeos) { enable_frame_pointers = true } } else if (is_android) { @@ -122,7 +122,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -1996,7 +1996,7 @@ void ChromeMainDelegate::InitializeMemorySystem() { +@@ -2004,7 +2004,7 @@ void ChromeMainDelegate::InitializeMemorySystem() { const std::string process_type = command_line->GetSwitchValueASCII(switches::kProcessType); const bool is_browser_process = process_type.empty(); @@ -134,7 +134,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat diff --git a/chrome/browser/platform_util_android.cc b/chrome/browser/platform_util_android.cc --- a/chrome/browser/platform_util_android.cc +++ b/chrome/browser/platform_util_android.cc -@@ -62,3 +62,35 @@ bool IsVisible(gfx::NativeView view) { +@@ -64,3 +64,35 @@ bool IsVisible(gfx::NativeView view) { } } // namespace platform_util diff --git a/build/patches/Enable-menu-on-reload-button.patch b/build/patches/Enable-menu-on-reload-button.patch index 49183128..bc84e9a1 100644 --- a/build/patches/Enable-menu-on-reload-button.patch +++ b/build/patches/Enable-menu-on-reload-button.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -4753,10 +4753,10 @@ are declared in tools/grit/grit_rule.gni. +@@ -4777,10 +4777,10 @@ are declared in tools/grit/grit_rule.gni. Normal Reload @@ -30,7 +30,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc --- a/chrome/browser/ui/views/toolbar/toolbar_view.cc +++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc -@@ -580,7 +580,7 @@ void ToolbarView::Update(WebContents* tab) { +@@ -558,7 +558,7 @@ void ToolbarView::Update(WebContents* tab) { } if (reload_) diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch index 5f64ed2b..e9ef1f27 100644 --- a/build/patches/Enable-native-Android-autofill.patch +++ b/build/patches/Enable-native-Android-autofill.patch @@ -25,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/flag_descriptions.cc | 6 -- chrome/browser/flag_descriptions.h | 3 - .../strings/android_chrome_strings.grd | 6 ++ - .../ui/autofill/autofill_client_provider.cc | 32 +------- + .../ui/autofill/autofill_client_provider.cc | 34 +------- .../ui/autofill/autofill_client_provider.h | 6 -- chrome/browser/ui/tab_helpers.cc | 4 +- components/android_autofill/browser/BUILD.gn | 1 + @@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/AutofillManagerWrapper.java | 5 +- .../components/autofill/AutofillProvider.java | 7 ++ .../BrowserSelectionActionMenuDelegate.java | 62 ++++++++++++++ - .../browser/content_autofill_driver.cc | 59 +++++++++++++ + .../browser/content_autofill_driver.cc | 13 +++ .../content/browser/content_autofill_driver.h | 10 +++ .../content_autofill_driver_factory.cc | 12 +++ .../content/renderer/autofill_agent.cc | 6 ++ @@ -47,7 +47,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill/core/common/autofill_features.h | 4 - .../autofill/core/common/autofill_prefs.cc | 4 +- .../autofill/core/common/autofill_prefs.h | 5 ++ - 32 files changed, 314 insertions(+), 94 deletions(-) + 32 files changed, 268 insertions(+), 96 deletions(-) create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java @@ -61,7 +61,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage import org.chromium.base.metrics.RecordHistogram; import org.chromium.chrome.R; import org.chromium.chrome.browser.password_check.PasswordCheck; -@@ -58,6 +59,11 @@ import java.lang.annotation.Retention; +@@ -59,6 +60,11 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.Locale; @@ -73,7 +73,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage /** * The "Passwords" screen in Settings, which allows the user to enable or disable password saving, * to view saved passwords (just the username and URL), and to delete saved passwords. -@@ -65,7 +71,7 @@ import java.util.Locale; +@@ -66,7 +72,7 @@ import java.util.Locale; public class PasswordSettings extends ChromeBaseSettingsFragment implements PasswordListObserver, Preference.OnPreferenceClickListener, @@ -82,7 +82,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage @IntDef({ TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN, -@@ -95,6 +101,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -96,6 +102,12 @@ public class PasswordSettings extends ChromeBaseSettingsFragment public static final String PREF_TRUSTED_VAULT_BANNER = "trusted_vault_banner"; public static final String PREF_KEY_MANAGE_ACCOUNT_LINK = "manage_account_link"; @@ -95,7 +95,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords"; private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions"; private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text"; -@@ -127,6 +139,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -128,6 +140,8 @@ public class PasswordSettings extends ChromeBaseSettingsFragment private Preference mLinkPref; private Menu mMenu; @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage private @ManagePasswordsReferrer int mManagePasswordsReferrer; private BottomSheetController mBottomSheetController; -@@ -301,6 +315,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -307,6 +321,7 @@ public class PasswordSettings extends ChromeBaseSettingsFragment } createSavePasswordsSwitch(); @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (shouldShowAutoSigninOption()) { createAutoSignInCheckbox(); } -@@ -574,6 +589,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -580,6 +595,71 @@ public class PasswordSettings extends ChromeBaseSettingsFragment getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE)); } @@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -410,8 +410,7 @@ public class MainSettings extends ChromeBaseSettingsFragment +@@ -436,8 +436,7 @@ public class MainSettings extends ChromeBaseSettingsFragment private void updateAutofillPreferences() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O @@ -200,7 +200,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe 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 -@@ -88,6 +88,13 @@ import org.chromium.url.GURL; +@@ -91,6 +91,13 @@ import java.lang.annotation.RetentionPolicy; import java.nio.ByteBuffer; import java.util.Objects; @@ -214,7 +214,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. -@@ -938,6 +945,11 @@ class TabImpl implements Tab { +@@ -970,6 +977,11 @@ class TabImpl implements Tab { for (TabObserver observer : mObservers) observer.onDestroyed(this); mObservers.clear(); @@ -226,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mUserDataHost.destroy(); mTabViewManager.destroy(); hideNativePage(false, null); -@@ -1210,8 +1222,7 @@ class TabImpl implements Tab { +@@ -1242,8 +1254,7 @@ class TabImpl implements Tab { */ boolean providesAutofillStructure() { // TODO(b/326231439): Check pref and AutofillService! @@ -236,7 +236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav } // Forwarded from TabWebContentsDelegateAndroid. -@@ -1867,15 +1878,20 @@ class TabImpl implements Tab { +@@ -1958,15 +1969,20 @@ class TabImpl implements Tab { * @return true if the the provider is available for the given WebContents. */ private boolean prepareAutofillProvider(WebContents newWebContents) { @@ -263,7 +263,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav mAutofillProvider = new AutofillProvider( getContext(), -@@ -1884,7 +1900,16 @@ class TabImpl implements Tab { +@@ -1975,7 +1991,16 @@ class TabImpl implements Tab { getContext().getString(R.string.app_name)); TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid); } @@ -284,9 +284,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav 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 -@@ -3759,19 +3759,6 @@ const FeatureEntry::FeatureVariation kLinkPreviewTriggerTypeVariations[] = { - std::size(kLinkPreviewTriggerTypeLongPress), nullptr}}; - #endif // !BUILDFLAG(IS_ANDROID) +@@ -3944,19 +3944,6 @@ const FeatureEntry::FeatureVariation kAutofillGranularFillingAvailableVariations + kAutofillGranularFillingAvailableVariationWithExpandControlVisibleOnSelectionOnly), + nullptr}}; -#if BUILDFLAG(IS_ANDROID) -inline constexpr flags_ui::FeatureEntry::FeatureParam @@ -304,7 +304,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc const FeatureEntry::FeatureParam kDefaultBrowserPromptRefreshAggressive[] = { {"max_prompt_count", "-1"}, {"reprompt_duration", "7d"}, -@@ -5749,15 +5736,6 @@ const FeatureEntry kFeatureEntries[] = { +@@ -6019,15 +6006,6 @@ const FeatureEntry kFeatureEntries[] = { #endif // BUILDFLAG(IS_CHROMEOS_ASH) #if BUILDFLAG(IS_ANDROID) @@ -361,9 +361,9 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc -@@ -653,12 +653,6 @@ const char kAutofillUpdateChromeSettingsLinkToGPayWebDescription[] = - "When enabled, Chrome Settings link directs to GPay Web rather than " - "Payments Center for payment methods management."; +@@ -652,12 +652,6 @@ const char kAutofillUpstreamUpdatedUiDescription[] = + "When enabled, shows different text and images in the UI of the credit " + "card upload save bubble."; -const char kAutofillVirtualViewStructureAndroidName[] = - "Enable the setting to provide a virtual view structure for Autofill"; @@ -377,9 +377,9 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h -@@ -388,9 +388,6 @@ extern const char kAutofillUpdateChromeSettingsLinkToGPayWebDescription[]; - extern const char kAutofillMoreProminentPopupName[]; - extern const char kAutofillMoreProminentPopupDescription[]; +@@ -388,9 +388,6 @@ extern const char kAutofillSyncEwalletAccountsDescription[]; + extern const char kAutofillUpstreamUpdatedUiName[]; + extern const char kAutofillUpstreamUpdatedUiDescription[]; -extern const char kAutofillVirtualViewStructureAndroidName[]; -extern const char kAutofillVirtualViewStructureAndroidDescription[]; @@ -390,7 +390,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio 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 -@@ -679,6 +679,12 @@ CHAR_LIMIT guidelines: +@@ -672,6 +672,12 @@ For more settings that use data to improve your Chrome experience, go to Save passwords @@ -400,8 +400,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro + + Enable native Android autofill in incognito + - - Auto Sign-in + + Use and save passwords in your Google Account diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/browser/ui/autofill/autofill_client_provider.cc --- a/chrome/browser/ui/autofill/autofill_client_provider.cc @@ -414,7 +414,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro #include "chrome/browser/keyboard_accessory/android/manual_filling_controller_impl.h" #include "components/android_autofill/browser/android_autofill_client.h" #endif // BUILDFLAG(IS_ANDROID) -@@ -21,32 +20,13 @@ +@@ -21,35 +20,14 @@ namespace autofill { namespace { @@ -424,6 +424,9 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro - features::kAutofillVirtualViewStructureAndroid)) { - return false; - } +- if (!prefs->GetBoolean(prefs::kAutofillThirdPartyPasswordManagersAllowed)) { +- return false; +- } - if (!prefs->GetBoolean(prefs::kAutofillUsingVirtualViewStructure)) { - return false; - } @@ -435,7 +438,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro - return false; -#endif // BUILDFLAG(IS_ANDROID) -} -- + } // namespace -AutofillClientProvider::AutofillClientProvider(PrefService* prefs) @@ -449,7 +452,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro #endif // BUILDFLAG(IS_ANDROID) } -@@ -54,15 +34,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; +@@ -57,15 +35,7 @@ AutofillClientProvider::~AutofillClientProvider() = default; void AutofillClientProvider::CreateClientForWebContents( content::WebContents* web_contents) { @@ -457,7 +460,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.cc b/chrome/bro -#if BUILDFLAG(IS_ANDROID) - android_autofill::AndroidAutofillClient::CreateForWebContents(web_contents); -#else -- NOTREACHED(); +- NOTREACHED_IN_MIGRATION(); -#endif - } else { ChromeAutofillClient::CreateForWebContents(web_contents); @@ -485,7 +488,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow 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 -@@ -380,9 +380,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -382,9 +382,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents); chrome::ChainedBackNavigationTracker::CreateForWebContents(web_contents); chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents); @@ -668,170 +671,30 @@ new file mode 100644 diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc --- a/components/autofill/content/browser/content_autofill_driver.cc +++ b/components/autofill/content/browser/content_autofill_driver.cc -@@ -420,6 +420,10 @@ void ContentAutofillDriver::FormsSeen( - const std::vector& removed_forms) { - target->GetAutofillManager().OnFormsSeen( - WithNewVersion(updated_forms), removed_forms); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnFormsSeen( -+ WithNewVersion(updated_forms), removed_forms); -+ } - }); - } - -@@ -437,6 +441,10 @@ void ContentAutofillDriver::FormSubmitted( - bool known_success, mojom::SubmissionSource submission_source) { - target->GetAutofillManager().OnFormSubmitted( - WithNewVersion(form), known_success, submission_source); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnFormSubmitted( -+ WithNewVersion(form), known_success, submission_source); -+ } - }); - } - -@@ -457,6 +465,10 @@ void ContentAutofillDriver::CaretMovedInFormField( - const FormFieldData& field, const gfx::Rect& caret_bounds) { - target->GetAutofillManager().OnCaretMovedInFormField( - WithNewVersion(form), field, caret_bounds); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnCaretMovedInFormField( -+ WithNewVersion(form), field, caret_bounds); -+ } - }); - } - -@@ -475,6 +487,10 @@ void ContentAutofillDriver::TextFieldDidChange(const FormData& raw_form, - const FormFieldData& field, base::TimeTicks timestamp) { - target->GetAutofillManager().OnTextFieldDidChange(WithNewVersion(form), - field, timestamp); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnTextFieldDidChange( -+ WithNewVersion(form), field, timestamp); -+ } - }); - } - -@@ -492,6 +508,10 @@ void ContentAutofillDriver::TextFieldDidScroll(const FormData& raw_form, - const FormFieldData& field) { - target->GetAutofillManager().OnTextFieldDidScroll(WithNewVersion(form), - field); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnTextFieldDidScroll( -+ WithNewVersion(form), field); -+ } - }); - } - -@@ -510,6 +530,10 @@ void ContentAutofillDriver::SelectControlDidChange( - const FormFieldData& field) { - target->GetAutofillManager().OnSelectControlDidChange( - WithNewVersion(form), field); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnSelectControlDidChange( -+ WithNewVersion(form), field); -+ } - }); - } - -@@ -532,6 +556,10 @@ void ContentAutofillDriver::AskForValuesToFill( - AutofillSuggestionTriggerSource trigger_source) { - target->GetAutofillManager().OnAskForValuesToFill( - WithNewVersion(form), field, caret_bounds, trigger_source); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnAskForValuesToFill( -+ WithNewVersion(form), field, caret_bounds, trigger_source); -+ } - }); - } - -@@ -543,6 +571,8 @@ void ContentAutofillDriver::HidePopup() { - DCHECK(!target->IsPrerendering()) - << "We should never affect UI while prerendering"; - target->GetAutofillManager().OnHidePopup(); -+ if (target->secondary_autofill_manager()) -+ target->secondary_autofill_manager()->OnHidePopup(); - }); - } - -@@ -554,6 +584,8 @@ void ContentAutofillDriver::FocusOnNonFormField(bool had_interacted_form) { - this, had_interacted_form, - [](autofill::AutofillDriver* target, bool had_interacted_form) { - target->GetAutofillManager().OnFocusOnNonFormField(had_interacted_form); -+ if (target->secondary_autofill_manager()) -+ target->secondary_autofill_manager()->OnFocusOnNonFormField(had_interacted_form); - }); - } - -@@ -571,9 +603,16 @@ void ContentAutofillDriver::FocusOnFormField(const FormData& raw_form, - const FormFieldData& field) { - target->GetAutofillManager().OnFocusOnFormField(WithNewVersion(form), - field); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnFocusOnFormField( -+ WithNewVersion(form), field); +@@ -247,6 +247,13 @@ void RouteToManager(ContentAutofillDriver& source, + AutofillManager& manager = target.GetAutofillManager(); + (manager.* + manager_fun)(WithNewVersion(std::forward(args))...); ++ ++ raw_ptr secondary_autofill_manager = ++ target.secondary_autofill_manager(); ++ if (secondary_autofill_manager) { ++ (secondary_autofill_manager->* ++ manager_fun)(WithNewVersion(std::forward(args))...); + } }, - [](autofill::AutofillDriver* target) { - target->GetAutofillManager().OnFocusOnNonFormField(true); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnFocusOnNonFormField(true); -+ } - }); + source, Lift(source, std::forward(args))...); } - -@@ -588,6 +627,10 @@ void ContentAutofillDriver::DidFillAutofillFormData(const FormData& raw_form, - base::TimeTicks timestamp) { - target->GetAutofillManager().OnDidFillAutofillFormData( - WithNewVersion(form), timestamp); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnDidFillAutofillFormData( -+ WithNewVersion(form), timestamp); -+ } - }); - } - -@@ -597,6 +640,8 @@ void ContentAutofillDriver::DidEndTextFieldEditing() { - } - router().DidEndTextFieldEditing(this, [](autofill::AutofillDriver* target) { - target->GetAutofillManager().OnDidEndTextFieldEditing(); -+ if (target->secondary_autofill_manager()) -+ target->secondary_autofill_manager()->OnDidEndTextFieldEditing(); - }); - } - -@@ -611,6 +656,10 @@ void ContentAutofillDriver::SelectOrSelectListFieldOptionsDidChange( - cast(target) - ->GetAutofillManager() - .OnSelectOrSelectListFieldOptionsDidChange(WithNewVersion(form)); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnSelectOrSelectListFieldOptionsDidChange( -+ WithNewVersion(form)); -+ } - }); - } - -@@ -632,6 +681,10 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( - bool formatting_only) { - target->GetAutofillManager().OnJavaScriptChangedAutofilledValue( - WithNewVersion(form), field, old_value, formatting_only); -+ if (target->secondary_autofill_manager()) { -+ target->secondary_autofill_manager()->OnJavaScriptChangedAutofilledValue( -+ WithNewVersion(form), field, old_value, formatting_only); -+ } - }); - } - -@@ -639,6 +692,8 @@ void ContentAutofillDriver::Reset() { - owner_->router().UnregisterDriver(this, - /*driver_is_dying=*/false); +@@ -589,6 +596,8 @@ void ContentAutofillDriver::JavaScriptChangedAutofilledValue( + void ContentAutofillDriver::Reset() { + owner_->router().UnregisterDriver(*this, /*driver_is_dying=*/false); autofill_manager_->Reset(); + if (secondary_autofill_manager_) + secondary_autofill_manager_->Reset(); } const mojo::AssociatedRemote& -@@ -651,6 +706,10 @@ ContentAutofillDriver::GetAutofillAgent() { +@@ -601,6 +610,10 @@ ContentAutofillDriver::GetAutofillAgent() { return autofill_agent_; } @@ -839,13 +702,13 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/co + return secondary_autofill_manager_.get(); +} + - void ContentAutofillDriver::SetFrameAndFormMetaData( - FormData& form, - base::optional_ref field) const { + void ContentAutofillDriver::LiftForTest(FormData& form) { + form = Lift(*this, form); + } diff --git a/components/autofill/content/browser/content_autofill_driver.h b/components/autofill/content/browser/content_autofill_driver.h --- a/components/autofill/content/browser/content_autofill_driver.h +++ b/components/autofill/content/browser/content_autofill_driver.h -@@ -128,6 +128,12 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -123,6 +123,12 @@ class ContentAutofillDriver : public AutofillDriver, ContentAutofillDriver& operator=(const ContentAutofillDriver&) = delete; ~ContentAutofillDriver() override; @@ -858,7 +721,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com content::RenderFrameHost* render_frame_host() { return &*render_frame_host_; } const content::RenderFrameHost* render_frame_host() const { return &*render_frame_host_; -@@ -309,6 +315,10 @@ class ContentAutofillDriver : public AutofillDriver, +@@ -282,6 +288,10 @@ class ContentAutofillDriver : public AutofillDriver, // The factory that created this driver. Outlives `this`. const raw_ref owner_; @@ -901,7 +764,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc --- a/components/autofill/content/renderer/autofill_agent.cc +++ b/components/autofill/content/renderer/autofill_agent.cc -@@ -1221,12 +1221,16 @@ void AutofillAgent::ShowSuggestions( +@@ -1250,12 +1250,16 @@ void AutofillAgent::ShowSuggestions( password_generation_agent_->ShowPasswordGenerationSuggestions( input_element)) { is_popup_possibly_visible_ = true; @@ -918,13 +781,12 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components } } -@@ -1237,11 +1241,13 @@ void AutofillAgent::ShowSuggestions( +@@ -1266,10 +1270,12 @@ void AutofillAgent::ShowSuggestions( // parenthesis to not match a regex). In this specific case we are actually // interested in whether the field is currently a password field, not whether // it has ever been a password field. +#if !BUILDFLAG(IS_ANDROID) - if (!input_element.IsNull() && - input_element.IsPasswordField /*disable presubmit*/ () && + if (input_element && input_element.IsPasswordField /*disable presubmit*/ () && !config_.query_password_suggestions) { return; } @@ -935,7 +797,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc --- a/components/autofill/content/renderer/password_autofill_agent.cc +++ b/components/autofill/content/renderer/password_autofill_agent.cc -@@ -836,7 +836,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( +@@ -849,7 +849,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange( void PasswordAutofillAgent::TrackAutofilledElement( const blink::WebFormControlElement& element) { @@ -958,23 +820,23 @@ diff --git a/components/autofill/core/browser/autofill_driver.h b/components/aut + // Returns whether the AutofillDriver instance is associated with an active // frame in the MPArch sense. - virtual bool IsInActiveFrame() const = 0; + virtual bool IsActive() const = 0; diff --git a/components/autofill/core/browser/autofill_manager.h b/components/autofill/core/browser/autofill_manager.h --- a/components/autofill/core/browser/autofill_manager.h +++ b/components/autofill/core/browser/autofill_manager.h -@@ -196,6 +196,8 @@ class AutofillManager +@@ -201,6 +201,8 @@ class AutofillManager ~AutofillManager() override; + virtual bool IsAndroidAutofill() const = 0; + - // The following will fail a DCHECK if called for a prerendered main frame. - AutofillClient& client() { - DCHECK(!driver().IsPrerendering()); + AutofillClient& client() { return driver_->GetAutofillClient(); } + const AutofillClient& client() const { return driver_->GetAutofillClient(); } + diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/components/autofill/core/browser/browser_autofill_manager.cc --- a/components/autofill/core/browser/browser_autofill_manager.cc +++ b/components/autofill/core/browser/browser_autofill_manager.cc -@@ -606,6 +606,8 @@ BrowserAutofillManager::~BrowserAutofillManager() { +@@ -693,6 +693,8 @@ BrowserAutofillManager::~BrowserAutofillManager() { // (due to a navigation). } @@ -986,7 +848,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.cc b/comp diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/components/autofill/core/browser/browser_autofill_manager.h --- a/components/autofill/core/browser/browser_autofill_manager.h +++ b/components/autofill/core/browser/browser_autofill_manager.h -@@ -136,6 +136,8 @@ class BrowserAutofillManager : public AutofillManager { +@@ -146,6 +146,8 @@ class BrowserAutofillManager : public AutofillManager { ~BrowserAutofillManager() override; @@ -998,7 +860,7 @@ diff --git a/components/autofill/core/browser/browser_autofill_manager.h b/compo 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 -@@ -726,7 +726,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid, +@@ -774,7 +774,7 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid, BASE_FEATURE(kAutofillVirtualViewStructureAndroid, "AutofillVirtualViewStructureAndroid", base::FEATURE_DISABLED_BY_DEFAULT); @@ -1010,7 +872,7 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a diff --git a/components/autofill/core/common/autofill_features.h b/components/autofill/core/common/autofill_features.h --- a/components/autofill/core/common/autofill_features.h +++ b/components/autofill/core/common/autofill_features.h -@@ -231,10 +231,6 @@ BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid); +@@ -240,10 +240,6 @@ BASE_DECLARE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid); COMPONENT_EXPORT(AUTOFILL) BASE_DECLARE_FEATURE(kAutofillVirtualViewStructureAndroid); @@ -1024,7 +886,7 @@ diff --git a/components/autofill/core/common/autofill_features.h b/components/au diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc -@@ -64,6 +64,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -66,6 +66,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kAutofillCreditCardFidoAuthOfferCheckboxState, true); #endif @@ -1033,19 +895,19 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto registry->RegisterIntegerPref(prefs::kAutocompleteLastVersionRetentionPolicy, 0); registry->RegisterStringPref(prefs::kAutofillUploadEncodingSeed, ""); -@@ -104,7 +106,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -107,7 +109,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kAutofillUsingVirtualViewStructure, - false); + true); - #endif - - #if BUILDFLAG(IS_ANDROID) + registry->RegisterBooleanPref( + prefs::kAutofillThirdPartyPasswordManagersAllowed, true); + registry->RegisterBooleanPref( diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h --- a/components/autofill/core/common/autofill_prefs.h +++ b/components/autofill/core/common/autofill_prefs.h -@@ -87,6 +87,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = +@@ -100,6 +100,11 @@ inline constexpr char kAutofillUploadEventsLastResetTimestamp[] = // retention policy was run. inline constexpr char kAutocompleteLastVersionRetentionPolicy[] = "autocomplete.retention_policy_last_version"; diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch index 33f66f43..c66b6fe3 100644 --- a/build/patches/Enable-network-isolation-features.patch +++ b/build/patches/Enable-network-isolation-features.patch @@ -9,9 +9,9 @@ PartitionNelAndReportingByNetworkIsolationKey License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../features_cc/Enable-network-isolation-features.inc | 10 ++++++++++ - .../features_cc/Enable-network-isolation-features.inc | 1 + - 2 files changed, 11 insertions(+) + .../base/features_cc/Enable-network-isolation-features.inc | 6 ++++++ + .../cpp/features_cc/Enable-network-isolation-features.inc | 1 + + 2 files changed, 7 insertions(+) create mode 100644 cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Enable-network-isolation-features.inc @@ -19,14 +19,10 @@ diff --git a/cromite_flags/net/base/features_cc/Enable-network-isolation-feature new file mode 100644 --- /dev/null +++ b/cromite_flags/net/base/features_cc/Enable-network-isolation-features.inc -@@ -0,0 +1,10 @@ +@@ -0,0 +1,6 @@ +SET_CROMITE_FEATURE_ENABLED(kSplitCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kSplitCodeCacheByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kSplitHostCacheByNetworkIsolationKey); +SET_CROMITE_FEATURE_ENABLED(kPartitionConnectionsByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionHttpServerPropertiesByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionSSLSessionsByNetworkIsolationKey); -+SET_CROMITE_FEATURE_ENABLED(kPartitionNelAndReportingByNetworkIsolationKey); + +SET_CROMITE_FEATURE_DISABLED(kEnableCrossSiteFlagNetworkIsolationKey); +SET_CROMITE_FEATURE_DISABLED(kEnableFrameSiteSharedOpaqueNetworkIsolationKey); diff --git a/build/patches/Enable-platform-aac-audio-and-h264-video.patch b/build/patches/Enable-platform-aac-audio-and-h264-video.patch index aa9d2c3f..84882b11 100644 --- a/build/patches/Enable-platform-aac-audio-and-h264-video.patch +++ b/build/patches/Enable-platform-aac-audio-and-h264-video.patch @@ -54,9 +54,9 @@ diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_c #include "base/strings/string_util.h" +#include "media/media_buildflags.h" #include "media/base/android/media_codec_bridge.h" - #include "media/base/android/media_jni_headers/CodecProfileLevelList_jni.h" - #include "media/base/android/media_jni_headers/MediaCodecUtil_jni.h" -@@ -113,6 +114,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) { + #include "media/base/video_codecs.h" + #include "third_party/re2/src/re2/re2.h" +@@ -115,6 +116,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) { // static std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec, SampleFormat sample_format) { @@ -112,7 +112,7 @@ diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_ diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc --- a/media/filters/ffmpeg_demuxer.cc +++ b/media/filters/ffmpeg_demuxer.cc -@@ -793,6 +793,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { +@@ -794,6 +794,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() { // FFmpeg doesn't understand xHE-AAC profiles yet, which can't be put in // ADTS anyways, so skip bitstream conversion when the profile is // unknown. @@ -131,10 +131,10 @@ diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_ #include "media/base/decoder_buffer.h" #include "media/base/limits.h" #include "media/base/media_log.h" -@@ -129,6 +130,16 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) { - return false; - } - #endif +@@ -123,6 +124,16 @@ static void ReleaseVideoBufferImpl(void* opaque, uint8_t* data) { + + // static + bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) { +#if BUILDFLAG(ENABLE_PLATFORM_H264_VIDEO) + if (codec == VideoCodec::kH264) { + return false; @@ -145,13 +145,13 @@ diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_ + return false; + } +#endif - return avcodec_find_decoder(VideoCodecToCodecID(codec)) != nullptr; } + diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters/win/media_foundation_audio_decoder.cc --- a/media/filters/win/media_foundation_audio_decoder.cc +++ b/media/filters/win/media_foundation_audio_decoder.cc -@@ -96,11 +96,15 @@ std::optional GetTypeInfo( +@@ -99,11 +99,15 @@ std::optional GetTypeInfo( #endif #if BUILDFLAG(USE_PROPRIETARY_CODECS) case AudioCodec::kAAC: @@ -167,7 +167,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters #endif #if BUILDFLAG(ENABLE_PLATFORM_AC4_AUDIO) case AudioCodec::kAC4: -@@ -314,8 +318,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) { +@@ -317,8 +321,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) { } bool MediaFoundationAudioDecoder::NeedsBitstreamConversion() const { diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch index 78e1ac6a..aac64460 100644 --- a/build/patches/Enable-search-engine-settings-desktop-ui.patch +++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch @@ -12,6 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html chrome/app/settings_strings.grdp | 3 + chrome/app/settings_strings_android.grdp | 260 ++++++++++++++++++ chrome/browser/BUILD.gn | 3 + + .../chrome_browser_interface_binders.cc | 12 + chrome/browser/resources/BUILD.gn | 6 + chrome/browser/resources/settings/BUILD.gn | 2 +- .../resources/settings/page_visibility.ts | 30 +- @@ -24,7 +25,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../browser/resources/settings/settings.html | 8 +- .../settings/settings_ui/settings_ui.html | 6 + .../resources/settings_shared/BUILD.gn | 2 +- - .../browser/search_engines/android/BUILD.gn | 1 + + chrome/browser/search/background/BUILD.gn | 4 +- + .../browser/search_engines/android/BUILD.gn | 2 + .../java/res/layout/search_engine_layout.xml | 25 ++ .../settings/SearchEngineSettings.java | 19 ++ chrome/browser/ui/BUILD.gn | 12 + @@ -43,14 +45,15 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ...ings_localized_strings_provider_android.cc | 198 +++++++++++++ ...tings_localized_strings_provider_android.h | 19 ++ .../ui/webui/settings/settings_ui_android.cc | 134 +++++++++ - .../ui/webui/settings/settings_ui_android.h | 127 +++++++++ + .../ui/webui/settings/settings_ui_android.h | 119 ++++++++ chrome/chrome_paks.gni | 11 + .../browser_ui/settings/SettingsLauncher.java | 2 + .../search_engine_desktop_ui.grdp | 6 + .../android/template_url_service_android.cc | 2 +- + .../search_engines/search_engines_switches.cc | 1 + .../search_engines/template_url_service.cc | 8 +- .../search_engines/template_url_service.h | 6 +- - content/browser/webui/web_ui_impl.cc | 16 +- + content/browser/webui/web_ui_impl.cc | 14 +- content/browser/webui/web_ui_impl.h | 3 + content/public/browser/web_ui.h | 1 + ui/base/template_expressions.cc | 21 +- @@ -67,7 +70,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ui/webui/resources/include_polymer.gni | 2 +- ui/webui/resources/js/BUILD.gn | 2 +- ui/webui/resources/js/load_time_data.ts | 17 +- - 60 files changed, 1098 insertions(+), 62 deletions(-) + 63 files changed, 1106 insertions(+), 62 deletions(-) create mode 100644 chrome/app/settings_strings_android.grdp create mode 100644 chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml create mode 100644 chrome/browser/ui/webui/settings/settings_localized_strings_provider_android.cc @@ -89,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import org.chromium.base.IntentUtils; import org.chromium.chrome.browser.accessibility.settings.AccessibilitySettings; import org.chromium.chrome.browser.autofill.settings.AutofillPaymentMethodsFragment; -@@ -33,6 +36,13 @@ public class SettingsLauncherImpl implements SettingsLauncher { +@@ -36,6 +39,13 @@ public class SettingsLauncherImpl implements SettingsLauncher { public SettingsLauncherImpl() {} @@ -118,7 +121,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources -@@ -496,7 +501,7 @@ are declared in tools/grit/grit_rule.gni. +@@ -500,7 +505,7 @@ are declared in tools/grit/grit_rule.gni. Disable @@ -130,7 +133,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp --- a/chrome/app/settings_strings.grdp +++ b/chrome/app/settings_strings.grdp -@@ -2585,6 +2585,9 @@ +@@ -2594,6 +2594,9 @@ URL with %s in place of query @@ -408,7 +411,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 -@@ -3782,6 +3782,9 @@ static_library("browser") { +@@ -3764,6 +3764,9 @@ static_library("browser") { "//components/user_scripts/android", ] } @@ -418,6 +421,35 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn } else { #!is_android sources += [ +diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc +--- a/chrome/browser/chrome_browser_interface_binders.cc ++++ b/chrome/browser/chrome_browser_interface_binders.cc +@@ -145,6 +145,9 @@ + #endif + + #if BUILDFLAG(IS_ANDROID) ++#include "ui/webui/resources/cr_components/help_bubble/help_bubble.mojom.h" ++#include "ui/webui/resources/cr_components/customize_color_scheme_mode/customize_color_scheme_mode.mojom.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" + #include "chrome/browser/android/dom_distiller/distiller_ui_handle_android.h" + #include "chrome/browser/offline_pages/android/offline_page_auto_fetcher.h" + #include "chrome/browser/ui/webui/feed_internals/feed_internals.mojom.h" +@@ -1168,6 +1171,15 @@ void PopulateChromeWebUIFrameBinders( + app_management::mojom::PageHandlerFactory, WebAppSettingsUI>(map); + #endif + ++#if BUILDFLAG(IS_ANDROID) ++ RegisterWebUIControllerInterfaceBinder< ++ help_bubble::mojom::HelpBubbleHandlerFactory, settings::SettingsUI>(map); ++ ++ RegisterWebUIControllerInterfaceBinder< ++ customize_color_scheme_mode::mojom:: ++ CustomizeColorSchemeModeHandlerFactory, settings::SettingsUI>(map); ++#endif ++ + #if !BUILDFLAG(IS_ANDROID) + if (search_engines::IsChoiceScreenFlagEnabled( + search_engines::ChoicePromo::kAny)) { diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn --- a/chrome/browser/resources/BUILD.gn +++ b/chrome/browser/resources/BUILD.gn @@ -449,11 +481,10 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/browser/resources/settings/page_visibility.ts --- a/chrome/browser/resources/settings/page_visibility.ts +++ b/chrome/browser/resources/settings/page_visibility.ts -@@ -47,7 +47,35 @@ export interface PrivacyPageVisibility { - */ - export let pageVisibility: PageVisibility; +@@ -42,8 +42,36 @@ export interface PrivacyPageVisibility { + searchPrediction: boolean; + } --if (loadTimeData.getBoolean('isGuest')) { +const isAndroid = (loadTimeData.getString('chromeAndroid') !== ""); +if (isAndroid) { + // @ts-expect-error @@ -482,10 +513,12 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows + chrome.settingsPrivate = chrome.settingsPrivate_; +} + -+if (loadTimeData.getBoolean('isGuest') || isAndroid) { - // "if not chromeos" and "if chromeos" in two completely separate blocks - // to work around closure compiler. - // + function createPageVisibility(): PageVisibility|undefined { +- if (!loadTimeData.getBoolean('isGuest')) { ++ if (!loadTimeData.getBoolean('isGuest') || isAndroid) { + return undefined; + } + diff --git a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html --- a/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html +++ b/chrome/browser/resources/settings/search_engines_page/search_engine_edit_dialog.html @@ -704,6 +737,30 @@ diff --git a/chrome/browser/resources/settings_shared/BUILD.gn b/chrome/browser/ build_webui("build") { grd_prefix = "settings_shared" +diff --git a/chrome/browser/search/background/BUILD.gn b/chrome/browser/search/background/BUILD.gn +--- a/chrome/browser/search/background/BUILD.gn ++++ b/chrome/browser/search/background/BUILD.gn +@@ -2,10 +2,11 @@ + # Use of this source code is governed by a BSD-style license that can be + # found in the LICENSE file. + +-assert(is_win || is_mac || is_linux || is_chromeos) ++# assert(is_win || is_mac || is_linux || is_chromeos) + + import("//third_party/protobuf/proto_library.gni") + ++if (!is_android) { + source_set("background") { + public = [ + "ntp_background_data.h", +@@ -61,6 +62,7 @@ source_set("background") { + "//ui/gfx/codec", + ] + } ++} + + proto_library("ntp_background_proto") { + sources = [ "ntp_background.proto" ] diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/search_engines/android/BUILD.gn --- a/chrome/browser/search_engines/android/BUILD.gn +++ b/chrome/browser/search_engines/android/BUILD.gn @@ -715,6 +772,14 @@ diff --git a/chrome/browser/search_engines/android/BUILD.gn b/chrome/browser/sea "java/res/layout/search_engine_choice_item.xml", "java/res/layout/search_engine_choice_view.xml", "java/res/layout/search_engine_recent_title.xml", +@@ -86,6 +87,7 @@ android_resources("java_resources") { + "java/res/values/ids.xml", + ] + deps = [ ++ "//chrome/browser/search/background:ntp_background_proto", + "//chrome/browser/ui/android/strings:ui_strings_grd", + "//components/browser_ui/styles/android:java_resources", + "//components/browser_ui/widget/android:java_resources", diff --git a/chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml b/chrome/browser/search_engines/android/java/res/layout/search_engine_layout.xml new file mode 100644 --- /dev/null @@ -798,7 +863,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 -@@ -1076,6 +1076,18 @@ static_library("ui") { +@@ -1098,6 +1098,18 @@ static_library("ui") { # TODO(b/335257259): Resolve circular deps. allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] @@ -1000,16 +1065,16 @@ diff --git a/chrome/browser/ui/search_engines/template_url_table_model.h b/chrom diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -123,6 +123,8 @@ +@@ -122,6 +122,8 @@ #include "chrome/browser/ui/webui/webapks/webapks_ui.h" #include "components/feed/buildflags.h" #include "components/feed/feed_feature_list.h" -+#include "chrome/browser/ui/webui/settings/settings_ui.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" +#include "chrome/browser/ui/webui/settings/settings_utils.h" #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/media/router/discovery/access_code/access_code_cast_feature.h" #include "chrome/browser/media/router/media_router_feature.h" -@@ -579,6 +581,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -588,6 +590,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; } #endif // !BUILDFLAG(IS_ANDROID) @@ -1215,7 +1280,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.cc b/chrome + else if (field_name.compare(kSuggestionUrlField) == 0) + is_valid = field_value.empty() || edit_controller_->IsURLValid(field_value); else - NOTREACHED(); + NOTREACHED_IN_MIGRATION(); @@ -415,18 +427,20 @@ void SearchEnginesHandler::HandleSearchEngineEditCompleted( if (!edit_controller_.get()) @@ -1257,7 +1322,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 -@@ -2390,6 +2390,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { +@@ -2407,6 +2407,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) { {"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL}, {"searchEnginesQueryURLExplanation", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION}, @@ -1266,7 +1331,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}, -@@ -3677,6 +3679,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3711,6 +3713,12 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, AddSystemStrings(html_source); #endif @@ -1515,7 +1580,7 @@ new file mode 100644 +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + -+#include "chrome/browser/ui/webui/settings/settings_ui.h" ++#include "chrome/browser/ui/webui/settings/settings_ui_android.h" + +#include + @@ -1633,14 +1698,14 @@ new file mode 100644 + mojo::PendingReceiver handler) { +} + -+void SettingsUI::CreateCustomizeColorSchemeModeHandler( -+ mojo::PendingRemote< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeClient> -+ client, -+ mojo::PendingReceiver< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeHandler> -+ handler) { -+} ++void SettingsUI::BindInterface( ++ mojo::PendingReceiver ++ pending_receiver) {} ++ ++void SettingsUI::BindInterface( ++ mojo::PendingReceiver ++ pending_receiver) {} + +WEB_UI_CONTROLLER_TYPE_IMPL(SettingsUI) + @@ -1649,7 +1714,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui_android.h b/chrome/bro new file mode 100644 --- /dev/null +++ b/chrome/browser/ui/webui/settings/settings_ui_android.h -@@ -0,0 +1,127 @@ +@@ -0,0 +1,119 @@ +#ifndef CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ +#define CHROME_BROWSER_UI_WEBUI_SETTINGS_SETTINGS_UI_ANDROID_H_ + @@ -1763,14 +1828,6 @@ new file mode 100644 + mojo::PendingReceiver handler) + override; + -+ void CreateCustomizeColorSchemeModeHandler( -+ mojo::PendingRemote< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeClient> -+ client, -+ mojo::PendingReceiver< -+ customize_color_scheme_mode::mojom::CustomizeColorSchemeModeHandler> -+ handler) override; -+ + WEB_UI_CONTROLLER_TYPE_DECL(); +}; + @@ -1780,7 +1837,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 -@@ -149,6 +149,17 @@ template("chrome_extra_paks") { +@@ -156,6 +156,17 @@ template("chrome_extra_paks") { sources += invoker.additional_paks } @@ -1801,8 +1858,8 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsLauncher.java -@@ -44,6 +44,8 @@ public interface SettingsLauncher { - int ACCESSIBILITY = 6; +@@ -53,6 +53,8 @@ public interface SettingsLauncher { + int MANAGE_SYNC = 9; } + void launchUrlInCustomTab(Context context, String url); @@ -1824,7 +1881,7 @@ new file mode 100644 diff --git a/components/search_engines/android/template_url_service_android.cc b/components/search_engines/android/template_url_service_android.cc --- a/components/search_engines/android/template_url_service_android.cc +++ b/components/search_engines/android/template_url_service_android.cc -@@ -417,7 +417,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( +@@ -419,7 +419,7 @@ jboolean TemplateUrlServiceAndroid::SetPlayAPISearchEngine( if (existing_play_api_turl->safe_for_autoreplace()) { template_url_service_->ResetTemplateURL( existing_play_api_turl, existing_play_api_turl->short_name(), @@ -1833,10 +1890,21 @@ diff --git a/components/search_engines/android/template_url_service_android.cc b } // Only one search engine can be marked as coming from Play at a time. +diff --git a/components/search_engines/search_engines_switches.cc b/components/search_engines/search_engines_switches.cc +--- a/components/search_engines/search_engines_switches.cc ++++ b/components/search_engines/search_engines_switches.cc +@@ -36,6 +36,7 @@ COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) + BASE_FEATURE(kSearchEngineChoiceTrigger, + "SearchEngineChoiceTrigger", + base::FEATURE_ENABLED_BY_DEFAULT); ++SET_CROMITE_FEATURE_DISABLED(kSearchEngineChoiceTrigger); + + COMPONENT_EXPORT(SEARCH_ENGINES_SWITCHES) + BASE_FEATURE(kSearchEngineChoiceAttribution, diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc --- a/components/search_engines/template_url_service.cc +++ b/components/search_engines/template_url_service.cc -@@ -707,13 +707,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( +@@ -708,13 +708,15 @@ TemplateURL* TemplateURLService::AddWithOverrides( std::unique_ptr template_url, const std::u16string& short_name, const std::u16string& keyword, @@ -1853,7 +1921,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear return Add(std::move(template_url)); } -@@ -909,7 +911,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { +@@ -918,7 +920,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) { void TemplateURLService::ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1863,7 +1931,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear DCHECK(!IsCreatedByExtension(url)); DCHECK(!keyword.empty()); DCHECK(!search_url.empty()); -@@ -921,6 +924,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, +@@ -930,6 +933,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url, // The urls have changed, reset the favicon url. data.favicon_url = GURL(); } @@ -1884,7 +1952,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. -@@ -316,7 +317,8 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -319,7 +320,8 @@ class TemplateURLService final : public WebDataServiceConsumer, void ResetTemplateURL(TemplateURL* url, const std::u16string& title, const std::u16string& keyword, @@ -1897,7 +1965,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui_impl.cc --- a/content/browser/webui/web_ui_impl.cc +++ b/content/browser/webui/web_ui_impl.cc -@@ -255,6 +255,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, +@@ -246,6 +246,10 @@ void WebUIImpl::RegisterMessageCallback(std::string_view message, message_callbacks_.emplace(message, std::move(callback)); } @@ -1908,17 +1976,15 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, const std::string& message, base::Value::List args) { -@@ -268,9 +272,15 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, +@@ -259,8 +263,14 @@ void WebUIImpl::ProcessWebUIMessage(const GURL& source_url, return; } -- DUMP_WILL_BE_NOTREACHED_NORETURN() -- << "Unhandled chrome.send(\"" << message << "\", " << args << "); from " -- << source_url; +- DUMP_WILL_BE_NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", " +- << args << "); from " << source_url; + if (!do_not_crash_on_unhandled_message_) { -+ DUMP_WILL_BE_NOTREACHED_NORETURN() -+ << "Unhandled chrome.send(\"" << message << "\", " << args << "); from " -+ << source_url; ++ DUMP_WILL_BE_NOTREACHED() << "Unhandled chrome.send(\"" << message << "\", " ++ << args << "); from " << source_url; + } else { + DLOG(INFO) + << "---Unhandled chrome.send(\"" << message << "\", " << args << "); from " @@ -1930,7 +1996,7 @@ diff --git a/content/browser/webui/web_ui_impl.cc b/content/browser/webui/web_ui diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_impl.h --- a/content/browser/webui/web_ui_impl.h +++ b/content/browser/webui/web_ui_impl.h -@@ -83,6 +83,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { +@@ -80,6 +80,7 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { void ProcessWebUIMessage(const GURL& source_url, const std::string& message, base::Value::List args) override; @@ -1938,7 +2004,7 @@ diff --git a/content/browser/webui/web_ui_impl.h b/content/browser/webui/web_ui_ bool CanCallJavascript() override; void CallJavascriptFunctionUnsafe(std::string_view function_name) override; void CallJavascriptFunctionUnsafe( -@@ -154,6 +155,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { +@@ -151,6 +152,8 @@ class CONTENT_EXPORT WebUIImpl : public WebUI, public mojom::WebUIHost { std::unique_ptr controller_; @@ -2099,7 +2165,7 @@ diff --git a/ui/webui/resources/cr_elements/cr_dialog/cr_dialog.css b/ui/webui/r 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 -@@ -226,6 +226,10 @@ html { +@@ -228,6 +228,10 @@ html { --cr-form-field-label-line-height: 1; } diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch index 77916ff1..4b8516e1 100644 --- a/build/patches/Enable-share-intent.patch +++ b/build/patches/Enable-share-intent.patch @@ -45,7 +45,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -1040,6 +1040,7 @@ chrome_java_sources = [ +@@ -1035,6 +1035,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/signin/SyncConsentActivity.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentActivityLauncherImpl.java", "java/src/org/chromium/chrome/browser/signin/SyncConsentFragment.java", @@ -211,7 +211,7 @@ 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"; -@@ -1303,6 +1306,17 @@ public class IntentHandler { +@@ -1306,6 +1309,17 @@ public class IntentHandler { return IntentUtils.safeGetSerializableExtra(intent, EXTRA_TAB_LAUNCH_TYPE); } @@ -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. -@@ -1432,7 +1446,7 @@ public class IntentHandler { +@@ -1435,7 +1449,7 @@ public class IntentHandler { String headers = getExtraHeadersFromIntent(intent); headers = maybeAddAdditionalContentHeaders(intent, url, headers); @@ -285,22 +285,22 @@ 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 -@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStore; +@@ -99,6 +99,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; +import org.chromium.chrome.browser.sharing.shared_intent.SharedIntentShareActivity; import org.chromium.chrome.browser.usb.UsbNotificationManager; import org.chromium.chrome.browser.util.AfterStartupTaskUtils; - import org.chromium.chrome.browser.webapps.WebApkUninstallTracker; -@@ -480,6 +481,7 @@ public class ProcessInitializationHandler { + import org.chromium.chrome.browser.webapps.ChromeWebApkHost; +@@ -683,6 +684,7 @@ public class ProcessInitializationHandler { ::makeDeferredRecordings); tasks.add(WebApkUninstallTracker::runDeferredTasks); + tasks.add(SharedIntentShareActivity::updateComponentEnabledState); - tasks.add(IncognitoTabLauncher::updateComponentEnabledState); tasks.add(OfflineContentAvailabilityStatusProvider::getInstance); tasks.add(() -> EnterpriseInfo.getInstance().logDeviceEnterpriseInfo()); + tasks.add(TosDialogBehaviorSharedPrefInvalidator::refreshSharedPreferenceIfTosSkipped); diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/sharing/shared_intent/SharedIntentShareActivity.java new file mode 100644 --- /dev/null @@ -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 -@@ -261,6 +261,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -275,6 +275,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReengagementNotification, &kSearchReadyOmniboxFeature, &kRelatedSearchesAllLanguage, @@ -479,10 +479,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 -@@ -408,6 +408,7 @@ public abstract class ChromeFeatureList { - public static final String READALOUD_IPH_MENU_BUTTON_HIGHLIGHT_CCT = - "ReadAloudIPHMenuButtonHighlightCCT"; +@@ -421,6 +421,7 @@ public abstract class ChromeFeatureList { public static final String READER_MODE_IN_CCT = "ReaderModeInCCT"; + public static final String READING_LIST_ENABLE_SYNC_TRANSPORT_MODE_UPON_SIGNIN = + "ReadingListEnableSyncTransportModeUponSignIn"; + public static final String SHARED_INTENT_UI = "SharedIntentUI"; public static final String RECORD_SUPPRESSION_METRICS = "RecordSuppressionMetrics"; public static final String REDIRECT_EXPLICIT_CTA_INTENTS_TO_EXISTING_ACTIVITY = @@ -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 -@@ -5366,6 +5366,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -5519,6 +5519,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d Make sure a phone app is enabled on this device diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch index e4137026..33a58792 100644 --- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch +++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch @@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js --- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js +++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js -@@ -1342,6 +1342,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId +@@ -1346,6 +1346,10 @@ inspectorBackend.registerCommand("Debugger.restartFrame", [{"name": "callFrameId inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume", "type": "boolean", "optional": true, "description": "Set to true to terminate execution upon resuming execution. In contrast to Runtime.terminateExecution, this will allows to execute further JavaScript (i.e. via evaluation) until execution of the paused code is actually resumed, at which point termination is triggered. If execution is currently not paused, this parameter has no effect.", "typeRef": null}], [], "Resumes JavaScript execution."); 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."); @@ -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 -@@ -4563,6 +4563,10 @@ export namespace ProtocolMapping { +@@ -4598,6 +4598,10 @@ export namespace ProtocolMapping { paramsType: [Protocol.Debugger.SetAsyncCallStackDepthRequest]; 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 -@@ -4050,6 +4050,8 @@ declare namespace ProtocolProxyApi { +@@ -4079,6 +4079,8 @@ declare namespace ProtocolProxyApi { */ invoke_setAsyncCallStackDepth(params: Protocol.Debugger.SetAsyncCallStackDepthRequest): 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 -@@ -17757,6 +17757,10 @@ export namespace Debugger { +@@ -17831,6 +17831,10 @@ export namespace Debugger { maxDepth: integer; } @@ -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 -@@ -26821,8 +26821,17 @@ +@@ -26939,8 +26939,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, -@@ -29948,4 +29957,4 @@ +@@ -30066,4 +30075,4 @@ ] } ] @@ -238,7 +238,7 @@ diff --git a/v8/src/debug/debug-interface.h b/v8/src/debug/debug-interface.h diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h --- a/v8/src/debug/debug.h +++ b/v8/src/debug/debug.h -@@ -428,6 +428,9 @@ class V8_EXPORT_PRIVATE Debug { +@@ -433,6 +433,9 @@ class V8_EXPORT_PRIVATE Debug { void set_break_points_active(bool v) { break_points_active_ = v; } bool break_points_active() const { return break_points_active_; } @@ -248,7 +248,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h StackFrameId break_frame_id() { return thread_local_.break_frame_id_; } Handle return_value_handle(); -@@ -587,6 +590,8 @@ class V8_EXPORT_PRIVATE Debug { +@@ -607,6 +610,8 @@ class V8_EXPORT_PRIVATE Debug { // Termination exception because side effect check has failed. bool side_effect_check_failed_; @@ -260,7 +260,7 @@ diff --git a/v8/src/debug/debug.h b/v8/src/debug/debug.h diff --git a/v8/src/execution/messages.cc b/v8/src/execution/messages.cc --- a/v8/src/execution/messages.cc +++ b/v8/src/execution/messages.cc -@@ -500,6 +500,7 @@ MaybeHandle MessageFormatter::TryFormat( +@@ -496,6 +496,7 @@ MaybeHandle MessageFormatter::TryFormat( MessageTemplate::kUndefinedOrNullToObject, MessageTemplate::kUnexpectedStrictReserved, MessageTemplate::kUnexpectedTokenIdentifier, diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch index 2fe3804f..e6087174 100644 --- a/build/patches/Experimental-user-scripts-support.patch +++ b/build/patches/Experimental-user-scripts-support.patch @@ -114,7 +114,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../user_scripts/renderer/script_context.h | 67 ++ .../user_scripts/renderer/script_injection.cc | 295 +++++++ .../user_scripts/renderer/script_injection.h | 155 ++++ - .../renderer/script_injection_manager.cc | 415 +++++++++ + .../renderer/script_injection_manager.cc | 414 +++++++++ .../renderer/script_injection_manager.h | 100 +++ .../user_scripts/renderer/script_injector.h | 96 +++ .../user_scripts/renderer/scripts_run_info.cc | 31 + @@ -123,7 +123,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/user_script_injector.h | 86 ++ .../user_scripts/renderer/user_script_set.cc | 264 ++++++ .../user_scripts/renderer/user_script_set.h | 101 +++ - .../renderer/user_script_set_manager.cc | 77 ++ + .../renderer/user_script_set_manager.cc | 76 ++ .../renderer/user_script_set_manager.h | 63 ++ .../renderer/user_scripts_dispatcher.cc | 36 + .../renderer/user_scripts_dispatcher.h | 49 ++ @@ -135,7 +135,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../Experimental-user-scripts-support.inc | 13 + ipc/ipc_message_start.h | 1 + tools/gritsettings/resource_ids.spec | 6 + - 108 files changed, 9494 insertions(+), 2 deletions(-) + 108 files changed, 9492 insertions(+), 2 deletions(-) create mode 100644 components/user_scripts/README.md create mode 100755 components/user_scripts/android/BUILD.gn create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml @@ -239,7 +239,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn ":chrome_base_module_resources", ":ui_locale_string_resources", "//chrome/android/webapk/libs/common:splash_resources", -@@ -645,6 +649,7 @@ if (current_toolchain == default_toolchain) { +@@ -647,6 +651,7 @@ if (current_toolchain == default_toolchain) { "//components/ukm/android:java", "//components/url_formatter/android:url_formatter_java", "//components/user_prefs/android:java", @@ -288,16 +288,16 @@ 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 -@@ -123,6 +123,8 @@ import java.util.ArrayList; - import java.util.Date; +@@ -146,6 +146,8 @@ import java.util.Date; import java.util.List; + import java.util.Locale; +import org.chromium.chrome.browser.user_scripts.UserScriptsUtils; + /** - * Handles the initialization dependences of the browser process. This is meant to handle the + * 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 -@@ -414,6 +416,8 @@ public class ProcessInitializationHandler { +@@ -620,6 +622,8 @@ public class ProcessInitializationHandler { DefaultBrowserInfo.initBrowserFetcher(); @@ -326,7 +326,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3766,6 +3766,13 @@ static_library("browser") { +@@ -3748,6 +3748,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } @@ -354,7 +354,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc --- a/chrome/browser/prefs/browser_prefs.cc +++ b/chrome/browser/prefs/browser_prefs.cc -@@ -269,6 +269,7 @@ +@@ -271,6 +271,7 @@ #include "components/permissions/contexts/geolocation_permission_context_android.h" #include "components/query_tiles/tile_service_prefs.h" #include "components/webapps/browser/android/install_prompt_prefs.h" @@ -362,7 +362,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #else // BUILDFLAG(IS_ANDROID) #include "chrome/browser/cart/cart_service.h" #include "chrome/browser/companion/core/promo_handler.h" -@@ -1974,6 +1975,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2065,6 +2066,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); @@ -375,7 +375,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn --- a/chrome/browser/profiles/BUILD.gn +++ b/chrome/browser/profiles/BUILD.gn -@@ -77,6 +77,9 @@ source_set("profile") { +@@ -76,6 +76,9 @@ source_set("profile") { "//content/public/browser", "//extensions/buildflags", ] @@ -388,7 +388,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -520,6 +520,10 @@ +@@ -531,6 +531,10 @@ #include "chrome/browser/enterprise/data_controls/reporting_service.h" #endif @@ -399,10 +399,10 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc namespace chrome { void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) { -@@ -1280,6 +1284,9 @@ void ChromeBrowserMainExtraPartsProfiles:: - #if !BUILDFLAG(IS_ANDROID) - WebUIContentsPreloadManager::EnsureFactoryBuilt(); +@@ -1308,6 +1312,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif + WebDataServiceFactory::GetInstance(); + webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); +#if BUILDFLAG(IS_ANDROID) + user_scripts::UserScriptsBrowserClient::GetInstance(); +#endif @@ -423,7 +423,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" #include "chrome/browser/sessions/session_service_factory.h" -@@ -1529,6 +1533,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, +@@ -1526,6 +1530,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, // initializing the supervised flag if necessary). ChildAccountServiceFactory::GetForProfile(profile)->Init(); SupervisedUserServiceFactory::GetForProfile(profile)->Init(); @@ -440,7 +440,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profiles/renderer_updater.cc --- a/chrome/browser/profiles/renderer_updater.cc +++ b/chrome/browser/profiles/renderer_updater.cc -@@ -38,6 +38,8 @@ +@@ -39,6 +39,8 @@ #include "chrome/browser/signin/bound_session_credentials/bound_session_cookie_refresh_service_factory.h" #endif // BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) @@ -449,7 +449,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profil RendererUpdater::RendererUpdater(Profile* profile) : profile_(profile), is_off_the_record_(profile_->IsOffTheRecord()), -@@ -73,6 +75,9 @@ RendererUpdater::RendererUpdater(Profile* profile) +@@ -74,6 +76,9 @@ RendererUpdater::RendererUpdater(Profile* profile) force_youtube_restrict_.Init(policy::policy_prefs::kForceYouTubeRestrict, pref_service); allowed_domains_for_apps_.Init(prefs::kAllowedDomainsForApps, pref_service); @@ -459,7 +459,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profil pref_change_registrar_.Init(pref_service); pref_change_registrar_.Add( -@@ -87,6 +92,12 @@ RendererUpdater::RendererUpdater(Profile* profile) +@@ -88,6 +93,12 @@ RendererUpdater::RendererUpdater(Profile* profile) prefs::kAllowedDomainsForApps, base::BindRepeating(&RendererUpdater::UpdateAllRenderers, base::Unretained(this))); @@ -472,7 +472,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profil } RendererUpdater::~RendererUpdater() { -@@ -230,5 +241,11 @@ chrome::mojom::DynamicParamsPtr RendererUpdater::CreateRendererDynamicParams() +@@ -231,5 +242,11 @@ chrome::mojom::DynamicParamsPtr RendererUpdater::CreateRendererDynamicParams() GetBoundSessionThrottlerParams(), #endif force_google_safesearch_.GetValue(), force_youtube_restrict_.GetValue(), @@ -501,7 +501,7 @@ diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profile diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc -@@ -92,6 +92,7 @@ +@@ -91,6 +91,7 @@ #include "components/security_interstitials/content/known_interception_disclosure_ui.h" #include "components/security_interstitials/content/urls.h" #include "components/site_engagement/content/site_engagement_service.h" @@ -509,7 +509,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "content/public/browser/web_contents.h" #include "content/public/browser/web_ui.h" #include "content/public/common/content_client.h" -@@ -477,6 +478,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -488,6 +489,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; @@ -523,7 +523,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni --- a/chrome/chrome_paks.gni +++ b/chrome/chrome_paks.gni -@@ -122,6 +122,7 @@ template("chrome_extra_paks") { +@@ -129,6 +129,7 @@ template("chrome_extra_paks") { "$root_gen_dir/net/net_resources.pak", "$root_gen_dir/third_party/blink/public/resources/blink_resources.pak", "$root_gen_dir/third_party/blink/public/resources/inspector_overlay_resources.pak", @@ -531,7 +531,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni "$root_gen_dir/ui/resources/webui_resources.pak", ] deps = [ -@@ -139,6 +140,7 @@ template("chrome_extra_paks") { +@@ -146,6 +147,7 @@ template("chrome_extra_paks") { "//third_party/blink/public:devtools_inspector_resources", "//third_party/blink/public:resources", "//ui/resources", @@ -542,7 +542,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer_configuration.mojom --- a/chrome/common/renderer_configuration.mojom +++ b/chrome/common/renderer_configuration.mojom -@@ -29,6 +29,7 @@ struct DynamicParams { +@@ -30,6 +30,7 @@ struct DynamicParams { bool force_safe_search = true; int32 youtube_restrict = 0; string allowed_domains_for_apps; @@ -553,7 +553,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn -@@ -242,6 +242,12 @@ static_library("renderer") { +@@ -243,6 +243,12 @@ static_library("renderer") { "//v8", ] @@ -569,8 +569,8 @@ 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 -@@ -261,6 +261,11 @@ - #include "chrome/renderer/cco/multiline_detector.h" +@@ -256,6 +256,11 @@ + #include "chrome/renderer/media/chrome_key_systems.h" #endif +#if BUILDFLAG(IS_ANDROID) @@ -581,7 +581,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; using autofill::PasswordGenerationAgent; -@@ -457,6 +462,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { +@@ -451,6 +456,14 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif @@ -596,7 +596,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) InitSpellCheck(); -@@ -620,6 +633,15 @@ void ChromeContentRendererClient::RenderFrameCreated( +@@ -614,6 +627,15 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, registry); #endif @@ -612,7 +612,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); #endif -@@ -1640,6 +1662,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( +@@ -1637,6 +1659,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. #endif @@ -630,7 +630,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( -@@ -1649,6 +1682,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( +@@ -1646,6 +1679,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. #endif @@ -648,7 +648,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( -@@ -1658,6 +1702,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( +@@ -1655,6 +1699,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. #endif @@ -696,9 +696,9 @@ diff --git a/components/components_strings.grd b/components/components_strings.g + - - - + + + diff --git a/components/user_scripts/README.md b/components/user_scripts/README.md new file mode 100644 --- /dev/null @@ -1299,7 +1299,7 @@ new file mode 100755 + + SettingsLauncher settingsLauncher = new SettingsLauncherImpl(); + Intent intent = settingsLauncher.createSettingsActivityIntent( -+ context, UserScriptsPreferences.class.getName(), ++ context, UserScriptsPreferences.class, + UserScriptsPreferences.createFragmentArgsForInstall(filePath)); + IntentUtils.safeStartActivity(context, intent); + @@ -8483,7 +8483,7 @@ diff --git a/components/user_scripts/renderer/script_injection_manager.cc b/comp new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/script_injection_manager.cc -@@ -0,0 +1,415 @@ +@@ -0,0 +1,414 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. @@ -8538,8 +8538,7 @@ new file mode 100755 + case UserScript::RUN_LOCATION_LAST: + break; + } -+ NOTREACHED(); -+ return UserScript::RUN_LOCATION_LAST; ++ NOTREACHED_NORETURN(); +} + +} // namespace @@ -9917,7 +9916,7 @@ diff --git a/components/user_scripts/renderer/user_script_set_manager.cc b/compo new file mode 100755 --- /dev/null +++ b/components/user_scripts/renderer/user_script_set_manager.cc -@@ -0,0 +1,77 @@ +@@ -0,0 +1,76 @@ +#include "user_script_set_manager.h" + +#include "base/logging.h" @@ -9971,8 +9970,7 @@ new file mode 100755 +void UserScriptSetManager::OnUpdateUserScripts( + base::ReadOnlySharedMemoryRegion shared_memory) { + if (!shared_memory.IsValid()) { -+ NOTREACHED() << "Bad scripts handle"; -+ return; ++ NOTREACHED_NORETURN() << "Bad scripts handle"; + } + + UserScriptSet* scripts = NULL; @@ -9995,7 +9993,6 @@ new file mode 100755 +} + +} -\ No newline at end of file diff --git a/components/user_scripts/renderer/user_script_set_manager.h b/components/user_scripts/renderer/user_script_set_manager.h new file mode 100755 --- /dev/null @@ -10484,7 +10481,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 -@@ -1015,6 +1015,12 @@ +@@ -1041,6 +1041,12 @@ "components/search_engine_descriptions_strings.grd": { "messages": [7260], }, diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch index 5cd98ad0..1bc8f607 100644 --- a/build/patches/Eyeo-Adblock-for-Cromite.patch +++ b/build/patches/Eyeo-Adblock-for-Cromite.patch @@ -12,8 +12,8 @@ deactivation of all pop-ups (default disabled) --- .../android/java/res/xml/main_preferences.xml | 19 +- chrome/browser/BUILD.gn | 2 - - .../adblock/adblock_content_browser_client.cc | 285 +- - .../adblock/adblock_content_browser_client.h | 48 +- + .../adblock/adblock_content_browser_client.cc | 291 +- + .../adblock/adblock_content_browser_client.h | 54 +- .../browser/chrome_content_browser_client.cc | 6 +- .../browser/chrome_content_browser_client.h | 6 +- .../adblock_private/adblock_private_api.cc | 74 +- @@ -32,7 +32,7 @@ deactivation of all pop-ups (default disabled) chrome/browser/resources/settings/settings.ts | 1 + .../settings/settings_menu/settings_menu.html | 5 + chrome/browser/ui/tab_helpers.cc | 6 +- - .../adblock_internals_page_handler_impl.cc | 20 +- + .../adblock_internals_page_handler_impl.cc | 23 +- .../common/extensions/api/_api_features.json | 4 +- .../extensions/api/_permission_features.json | 8 - .../common/extensions/api/adblock_private.idl | 8 + @@ -51,7 +51,7 @@ deactivation of all pop-ups (default disabled) .../settings/AdblockSettingsFragment.java | 51 +- components/adblock/content/browser/BUILD.gn | 18 +- .../adblock_controller_factory_base.cc | 5 +- - .../browser/adblock_url_loader_factory.cc | 65 +- + .../browser/adblock_url_loader_factory.cc | 68 +- .../browser/adblock_url_loader_factory.h | 7 +- .../browser/adblock_webcontents_observer.cc | 25 +- .../browser/adblock_webcontents_observer.h | 5 +- @@ -95,7 +95,7 @@ deactivation of all pop-ups (default disabled) .../filtering_configuration_maintainer_impl.h | 4 +- .../ongoing_subscription_request_impl.cc | 33 +- .../preloaded_subscription_provider_impl.cc | 4 +- - .../adblock/core/subscription/subscription.cc | 19 + + .../adblock/core/subscription/subscription.cc | 18 + .../adblock/core/subscription/subscription.h | 3 + .../subscription_collection_impl.cc | 1 + .../core/subscription/subscription_config.cc | 20 +- @@ -130,7 +130,7 @@ deactivation of all pop-ups (default disabled) .../blink/renderer/core/css/style_engine.h | 1 + .../renderer/core/exported/web_document.cc | 15 +- .../definitions/adblock_private.d.ts | 14 + - 120 files changed, 6140 insertions(+), 1299 deletions(-) + 120 files changed, 6147 insertions(+), 1309 deletions(-) create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts rename components/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (56%) @@ -189,7 +189,7 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -164,8 +164,6 @@ static_library("browser") { +@@ -158,8 +158,6 @@ static_library("browser") { "adblock/adblock_content_browser_client.h", "adblock/adblock_controller_factory.cc", "adblock/adblock_controller_factory.h", @@ -350,7 +350,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) { - if (IsFilteringNeeded(frame)) { @@ -377,7 +378,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) { - auto* frame = content::RenderFrameHost::FromID(render_frame_host_id); @@ -411,7 +413,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.cc b/chrome/b const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client, adblock::FilterMatchResult result) { @@ -640,7 +643,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client) override; @@ -695,7 +699,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client); void OnWebSocketFilterCheckCompleted( @@ -705,7 +710,8 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br const GURL& url, + const url::Origin& initiator_origin, const net::SiteForCookies& site_for_cookies, - const absl::optional& user_agent, +- const absl::optional& user_agent, ++ const std::optional& user_agent, mojo::PendingRemote handshake_client, adblock::FilterMatchResult result); @@ -725,7 +731,7 @@ diff --git a/chrome/browser/adblock/adblock_content_browser_client.h b/chrome/br diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -6350,7 +6350,9 @@ ChromeContentBrowserClient:: +@@ -6399,7 +6399,9 @@ ChromeContentBrowserClient:: } bool ChromeContentBrowserClient::WillInterceptWebSocket( @@ -736,7 +742,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch #if BUILDFLAG(ENABLE_EXTENSIONS) if (!frame) { return false; -@@ -6373,9 +6375,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( +@@ -6422,9 +6424,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket( } void ChromeContentBrowserClient::CreateWebSocket( @@ -751,7 +757,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 -@@ -656,11 +656,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { +@@ -663,11 +663,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient { CreateURLLoaderHandlerForServiceWorkerNavigationPreload( int frame_tree_node_id, const network::ResourceRequest& resource_request) override; @@ -1011,7 +1017,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/adblock/content_security_policy_injector_factory.h" #include "chrome/browser/adblock/element_hider_factory.h" #include "chrome/browser/adblock/resource_classification_runner_factory.h" -@@ -844,7 +843,6 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -861,7 +860,6 @@ void ChromeBrowserMainExtraPartsProfiles:: FakeSmartCardDeviceServiceFactory::GetInstance(); #endif adblock::AdblockControllerFactory::GetInstance(); @@ -1053,7 +1059,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "appearance_page/appearance_fonts_page.ts", "appearance_page/appearance_page.ts", "appearance_page/home_url_input.ts", -@@ -395,6 +396,7 @@ build_webui("build") { +@@ -397,6 +398,7 @@ build_webui("build") { ts_definitions = [ "//tools/typescript/definitions/autofill_private.d.ts", "//tools/typescript/definitions/chrome_event.d.ts", @@ -1611,7 +1617,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 -@@ -212,6 +212,10 @@ function createRoutes(): SettingsRoutes { +@@ -215,6 +215,10 @@ function createRoutes(): SettingsRoutes { r.FONTS = r.APPEARANCE.createChild('/fonts'); } @@ -1647,7 +1653,7 @@ diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/reso diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.html b/chrome/browser/resources/settings/settings_menu/settings_menu.html --- a/chrome/browser/resources/settings/settings_menu/settings_menu.html +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.html -@@ -146,6 +146,11 @@ +@@ -148,6 +148,11 @@ $i18n{a11yPageTitle} @@ -1670,7 +1676,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -380,6 +381,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -382,6 +383,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } } @@ -1679,7 +1685,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc AdblockWebContentObserver::CreateForWebContents( web_contents, adblock::SubscriptionServiceFactory::GetForBrowserContext( -@@ -388,7 +391,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -390,7 +393,8 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { web_contents->GetBrowserContext()), adblock::SitekeyStorageFactory::GetForBrowserContext( web_contents->GetBrowserContext()), @@ -1706,7 +1712,17 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha #include "components/adblock/core/session_stats.h" #include "components/adblock/core/subscription/subscription_config.h" #include "components/adblock/core/subscription/subscription_service.h" -@@ -53,6 +52,13 @@ std::string DebugLine(std::string name, int value, int level) { +@@ -41,8 +40,7 @@ std::string SubscriptionInstallationStateToString( + case State::Unknown: + return "Unknown"; + } +- NOTREACHED(); +- return ""; ++ NOTREACHED_NORETURN(); + } + + std::string DebugLine(std::string name, std::string value, int level) { +@@ -53,6 +51,13 @@ std::string DebugLine(std::string name, int value, int level) { return DebugLine(name, std::to_string(value), level); } @@ -1720,7 +1736,7 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha } // namespace AdblockInternalsPageHandlerImpl::AdblockInternalsPageHandlerImpl( -@@ -90,17 +96,13 @@ void AdblockInternalsPageHandlerImpl::GetDebugInfo( +@@ -90,17 +95,13 @@ void AdblockInternalsPageHandlerImpl::GetDebugInfo( content += DebugLine("Title", it->GetTitle(), 2); content += DebugLine("Version", it->GetCurrentVersion(), 2); content += DebugLine("Last update", @@ -1743,7 +1759,7 @@ diff --git a/chrome/browser/ui/webui/adblock_internals/adblock_internals_page_ha diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/extensions/api/_api_features.json --- a/chrome/common/extensions/api/_api_features.json +++ b/chrome/common/extensions/api/_api_features.json -@@ -64,7 +64,7 @@ +@@ -66,7 +66,7 @@ }], "adblockPrivate": [{ "dependencies": ["permission:adblockPrivate"], @@ -1752,7 +1768,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext }, { "channel": "stable", "contexts": ["webui"], -@@ -518,7 +518,7 @@ +@@ -523,7 +523,7 @@ }, "eyeoFilteringPrivate": [{ "dependencies": ["permission:eyeoFilteringPrivate"], @@ -2614,7 +2630,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ return ContentType::Script; case network::mojom::RequestDestination::kImage: return ContentType::Image; -@@ -101,11 +103,10 @@ ContentType ToAdblockResourceType(const network::ResourceRequest& request) { +@@ -101,16 +103,14 @@ ContentType ToAdblockResourceType(const network::ResourceRequest& request) { return ContentType::Other; case network::mojom::RequestDestination::kWebBundle: return ContentType::WebBundle; @@ -2627,7 +2643,13 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ case network::mojom::RequestDestination::kWebIdentity: return ContentType::Other; } -@@ -186,8 +187,13 @@ class AdblockURLLoaderFactory::InProgressRequest +- NOTREACHED(); +- return ContentType::Other; ++ NOTREACHED_NORETURN(); + } + + } // namespace +@@ -186,8 +186,13 @@ class AdblockURLLoaderFactory::InProgressRequest void OnRequestError(int error_code); void CheckFilterMatch(CheckFilterMatchCallback callback); void ProcessResponseHeaders( @@ -2641,7 +2663,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ void CheckRewriteFilterMatch(CheckRewriteFilterMatchCallback callback); void OnRequestUrlClassified(CheckFilterMatchCallback callback, FilterMatchResult result); -@@ -307,7 +313,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( +@@ -307,7 +312,9 @@ void AdblockURLLoaderFactory::InProgressRequest::OnReceiveResponse( VLOG(1) << "[eyeo] Sending headers for processing: " << request_url_; client_receiver_.Pause(); const scoped_refptr& headers = head->headers; @@ -2651,7 +2673,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ headers, base::BindOnce(&InProgressRequest::OnProcessHeadersResult, weak_factory_.GetWeakPtr(), std::move(head), std::move(body), std::move(cached_metadata))); -@@ -344,12 +352,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( +@@ -344,12 +351,6 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestError( void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( CheckFilterMatchCallback callback) { @@ -2664,7 +2686,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; if (is_document_request_) { auto* host = content::RenderFrameHost::FromID(factory_->host_id_); -@@ -386,9 +388,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -386,9 +387,10 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( FilterMatchResult::kNoRule); } } else { @@ -2677,7 +2699,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ base::BindOnce( &AdblockURLLoaderFactory::InProgressRequest::OnRequestUrlClassified, weak_factory_.GetWeakPtr(), -@@ -399,6 +402,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( +@@ -399,6 +401,7 @@ void AdblockURLLoaderFactory::InProgressRequest::CheckFilterMatch( } void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( @@ -2685,7 +2707,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ const scoped_refptr& headers, ProcessResponseHeadersCallback callback) { if (!factory_->CheckHostValid()) { -@@ -407,6 +411,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( +@@ -407,6 +410,36 @@ void AdblockURLLoaderFactory::InProgressRequest::ProcessResponseHeaders( return; } @@ -2722,7 +2744,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ auto subscription_service = factory_->config_.subscription_service; factory_->config_.resource_classifier->CheckResponseFilterMatch( subscription_service->GetCurrentSnapshot(), request_url_, -@@ -677,12 +711,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( +@@ -677,12 +710,13 @@ void AdblockURLLoaderFactory::InProgressRequest::OnRequestFilterMatchResult( AdblockURLLoaderFactory::AdblockURLLoaderFactory( AdblockURLLoaderFactoryConfig config, @@ -2738,7 +2760,7 @@ diff --git a/components/adblock/content/browser/adblock_url_loader_factory.cc b/ host_id_(host_id), user_agent_string_(std::move(user_agent_string)), on_disconnect_(std::move(on_disconnect)) { -@@ -691,10 +726,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( +@@ -691,10 +725,12 @@ AdblockURLLoaderFactory::AdblockURLLoaderFactory( DCHECK(config_.element_hider); DCHECK(config_.sitekey_storage); DCHECK(config_.csp_injector); @@ -4902,7 +4924,7 @@ diff --git a/components/adblock/core/subscription/preloaded_subscription_provide diff --git a/components/adblock/core/subscription/subscription.cc b/components/adblock/core/subscription/subscription.cc --- a/components/adblock/core/subscription/subscription.cc +++ b/components/adblock/core/subscription/subscription.cc -@@ -16,9 +16,28 @@ +@@ -16,9 +16,27 @@ */ #include "components/adblock/core/subscription/subscription.h" @@ -4926,8 +4948,7 @@ diff --git a/components/adblock/core/subscription/subscription.cc b/components/a + case State::Unknown: + return "Unknown"; + } -+ NOTREACHED(); -+ return ""; ++ NOTREACHED_NORETURN(); +} + } // namespace adblock @@ -9896,7 +9917,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 -@@ -1039,7 +1039,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( +@@ -1048,7 +1048,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory( DCHECK(browser_context); } @@ -9905,7 +9926,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b return false; } -@@ -1048,9 +1048,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { +@@ -1057,9 +1057,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) { } void ContentBrowserClient::CreateWebSocket( @@ -9920,7 +9941,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 -@@ -1930,7 +1930,7 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1951,7 +1951,7 @@ class CONTENT_EXPORT ContentBrowserClient { scoped_refptr navigation_response_task_runner); // Returns true when the embedder wants to intercept a websocket connection. @@ -9929,7 +9950,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); -@@ -1952,9 +1952,11 @@ class CONTENT_EXPORT ContentBrowserClient { +@@ -1973,9 +1973,11 @@ class CONTENT_EXPORT ContentBrowserClient { // Always called on the UI thread and only when the Network Service is // enabled. virtual void CreateWebSocket( @@ -9981,7 +10002,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/css/style_engine.cc b/third_party/blink/renderer/core/css/style_engine.cc --- a/third_party/blink/renderer/core/css/style_engine.cc +++ b/third_party/blink/renderer/core/css/style_engine.cc -@@ -633,6 +633,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( +@@ -634,6 +634,14 @@ void StyleEngine::UpdateActiveStyleSheetsInShadow( } } diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch index b7803cf5..07ab9b8a 100644 --- a/build/patches/Fix-chromium-build-bugs.patch +++ b/build/patches/Fix-chromium-build-bugs.patch @@ -18,7 +18,7 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10 diff --git a/BUILD.gn b/BUILD.gn --- a/BUILD.gn +++ b/BUILD.gn -@@ -410,7 +410,6 @@ group("gn_all") { +@@ -415,7 +415,6 @@ group("gn_all") { "//android_webview:empty_group", "//android_webview/test", "//android_webview/tools/automated_ui_tests:webview_ui_test_app", @@ -41,7 +41,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 -@@ -185,6 +185,7 @@ static_library("safe_browsing") { +@@ -186,6 +186,7 @@ static_library("safe_browsing") { "//components/version_info", "//content/public/browser", "//services/preferences/public/mojom:mojom", @@ -52,7 +52,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc --- a/components/omnibox/browser/autocomplete_classifier.cc +++ b/components/omnibox/browser/autocomplete_classifier.cc -@@ -103,8 +103,8 @@ void AutocompleteClassifier::Classify( +@@ -96,8 +96,8 @@ void AutocompleteClassifier::Classify( metrics::OmniboxEventProto::PageClassification page_classification, AutocompleteMatch* match, GURL* alternate_nav_url) { @@ -66,7 +66,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 -@@ -1035,11 +1035,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; +@@ -1068,11 +1068,11 @@ MLConfig& MLConfig::operator=(const MLConfig& other) = default; ScopedMLConfigForTesting::ScopedMLConfigForTesting() : original_config_(std::make_unique(GetMLConfig())) { @@ -118,7 +118,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 -@@ -1616,6 +1616,7 @@ component("net") { +@@ -1630,6 +1630,7 @@ component("net") { if (!is_cronet_build) { deps += [ "//mojo/public/cpp/bindings:default_construct_tag" ] } diff --git a/build/patches/Fix-crash-on-customize-profile-ui.patch b/build/patches/Fix-crash-on-customize-profile-ui.patch index 3f81ac26..04f860a1 100644 --- a/build/patches/Fix-crash-on-customize-profile-ui.patch +++ b/build/patches/Fix-crash-on-customize-profile-ui.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc --- a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc +++ b/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_color_picker_handler.cc -@@ -48,7 +48,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateChromeColor( +@@ -47,7 +47,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateChromeColor( chrome_colors::ColorInfo color_info) { auto theme_colors = GetAutogeneratedThemeColors(color_info.color); auto color = theme_color_picker::mojom::ChromeColor::New(); @@ -20,7 +20,7 @@ diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_colo color->seed = color_info.color; color->background = theme_colors.active_tab_color; color->foreground = theme_colors.frame_color; -@@ -63,7 +63,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateDynamicChromeColor( +@@ -62,7 +62,7 @@ theme_color_picker::mojom::ChromeColorPtr CreateDynamicChromeColor( auto color = theme_color_picker::mojom::ChromeColor::New(); auto color_palette = ui::GeneratePalette( color_info.color, GetSchemeVariant(color_info.variant)); @@ -32,7 +32,7 @@ diff --git a/chrome/browser/ui/webui/cr_components/theme_color_picker/theme_colo diff --git a/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc b/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc --- a/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc +++ b/chrome/browser/ui/webui/customize_themes/chrome_customize_themes_handler.cc -@@ -79,7 +79,7 @@ void ChromeCustomizeThemesHandler::GetChromeThemes( +@@ -80,7 +80,7 @@ void ChromeCustomizeThemesHandler::GetChromeThemes( auto theme_colors = GetAutogeneratedThemeColors(color_info.color); auto theme = customize_themes::mojom::ChromeTheme::New(); theme->id = color_info.id; diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch index b9877f6e..d6d2ba7e 100644 --- a/build/patches/Fonts-fingerprinting-mitigation.patch +++ b/build/patches/Fonts-fingerprinting-mitigation.patch @@ -115,7 +115,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 -@@ -296,6 +296,9 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam +@@ -292,6 +292,9 @@ BLINK_COMMON_EXPORT extern const base::FeatureParam kMaxDiskDataAllocatorCapacityMB; BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString); @@ -128,7 +128,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 -@@ -780,6 +780,7 @@ component("platform") { +@@ -784,6 +784,7 @@ component("platform") { "fonts/simple_font_data.cc", "fonts/simple_font_data.h", "fonts/skia/font_cache_skia.cc", diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch index 29d34032..13ae7a5f 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 -@@ -1569,7 +1569,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( +@@ -1591,7 +1591,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs( registry->RegisterIntegerPref( prefs::kUserAgentReduction, static_cast( @@ -54,7 +54,7 @@ diff --git a/content/common/user_agent.cc b/content/common/user_agent.cc diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -3219,23 +3219,23 @@ +@@ -3245,23 +3245,23 @@ // If enabled, the deviceModel will be reduced to "K" and the // androidVersion will be reduced to a static "10" string in android // User-Agent string. diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch index 0e8422a0..1d55a00c 100644 --- a/build/patches/History-number-of-days-privacy-setting.patch +++ b/build/patches/History-number-of-days-privacy-setting.patch @@ -38,7 +38,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -119,6 +119,12 @@ found in the LICENSE file. +@@ -124,6 +124,12 @@ found in the LICENSE file. android:title="@string/cablev2_paask_title" android:summary="@string/cablev2_paask_body" android:fragment="org.chromium.chrome.browser.webauthn.PrivacySettingsFragment" /> @@ -54,15 +54,15 @@ 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 -@@ -47,6 +47,7 @@ import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings; - import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; +@@ -44,6 +44,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.usage_stats.UsageStatsConsentDialog; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; + import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher; +import org.chromium.components.browser_ui.settings.SpinnerPreference; import org.chromium.components.browser_ui.settings.SettingsLauncher; import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.site_settings.ContentSettingsResources; -@@ -66,6 +67,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; +@@ -62,6 +63,9 @@ import org.chromium.chrome.browser.preferences.ChromeSharedPreferences; import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate; @@ -71,8 +71,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener { -@@ -106,6 +110,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher { +@@ -104,6 +108,8 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private ChromeSwitchPreference allowCustomTabIntentsPref; private ChromeSwitchPreference openExternalLinksPref; @@ -81,9 +81,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { getActivity().setTitle(R.string.prefs_privacy_security); -@@ -238,6 +244,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -236,6 +242,40 @@ public class PrivacySettings extends ChromeBaseSettingsFragment Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK); - syncAndServicesLink.setSummary(buildSyncAndServicesLink()); + syncAndServicesLink.setSummary(buildFooterString()); + // set up history expire days threshold preference + List options = new ArrayList<>(); @@ -122,8 +122,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference thirdPartyCookies = findPreference(PREF_THIRD_PARTY_COOKIES); Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK); -@@ -477,6 +517,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment - return ChromeFeatureList.isEnabled(ChromeFeatureList.IP_PROTECTION_UX); +@@ -479,6 +519,29 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + && ChromeFeatureList.isEnabled(ChromeFeatureList.FINGERPRINTING_PROTECTION_SETTING); } + class TimeFrequencySpinnerOption { @@ -155,7 +155,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting 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 -@@ -36,6 +36,7 @@ +@@ -37,6 +37,7 @@ #include "components/content_settings/core/common/pref_names.h" #include "components/dom_distiller/core/pref_names.h" #include "components/drive/drive_pref_names.h" @@ -163,7 +163,7 @@ 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" -@@ -205,6 +206,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -210,6 +211,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kShowForwardButton] = settings_api::PrefType::kBoolean; @@ -188,7 +188,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 -@@ -372,6 +372,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, +@@ -375,6 +375,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path, void ProfileImpl::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false); @@ -214,7 +214,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 @@ -245,7 +245,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 -@@ -1255,6 +1255,18 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1281,6 +1281,18 @@ Your Google account may have other forms of browsing history like searches and a Browsing history @@ -267,7 +267,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 -@@ -1820,6 +1820,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1814,6 +1814,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC}, {"safeBrowsingStandardDescUpdated", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC_UPDATED}, @@ -574,7 +574,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. -@@ -1216,6 +1220,10 @@ class HistoryService : public KeyedService, +@@ -1217,6 +1221,10 @@ class HistoryService : public KeyedService, raw_ptr local_device_info_provider_ = nullptr; diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch index 65bc687e..2bc1a3ce 100644 --- a/build/patches/Improve-the-browser-sandbox.patch +++ b/build/patches/Improve-the-browser-sandbox.patch @@ -7,21 +7,13 @@ using the new flags on android License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../common/features_cc/Improve-the-browser-sandbox.inc | 1 + - sandbox/policy/features.cc | 8 ++++++++ - 2 files changed, 9 insertions(+) - create mode 100644 cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc + sandbox/policy/features.cc | 8 ++++++++ + 1 file changed, 8 insertions(+) -diff --git a/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc b/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc -new file mode 100644 ---- /dev/null -+++ b/cromite_flags/third_party/blink/common/features_cc/Improve-the-browser-sandbox.inc -@@ -0,0 +1 @@ -+SET_CROMITE_FEATURE_ENABLED(kEnableMojoJSProtectedMemory); diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc --- a/sandbox/policy/features.cc +++ b/sandbox/policy/features.cc -@@ -215,4 +215,12 @@ bool IsNetworkSandboxEnabled() { +@@ -224,4 +224,12 @@ bool IsNetworkSandboxEnabled() { #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA) } 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 2d49864a..c54794de 100644 --- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch +++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc --- a/components/omnibox/browser/autocomplete_result.cc +++ b/components/omnibox/browser/autocomplete_result.cc -@@ -87,10 +87,11 @@ constexpr size_t kMaxPedalMatchIndex = +@@ -86,10 +86,11 @@ constexpr size_t kMaxPedalMatchIndex = // static size_t AutocompleteResult::GetMaxMatches(bool is_zero_suggest) { diff --git a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch index 8fe62ce0..c771ef43 100644 --- a/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch +++ b/build/patches/Inject-scripts-for-AMP-tracking-ads-and-video.patch @@ -35,7 +35,7 @@ diff --git a/third_party/blink/renderer/core/dom/build.gni b/third_party/blink/r 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 -@@ -304,6 +304,7 @@ +@@ -305,6 +305,7 @@ #include "third_party/blink/renderer/core/page/pointer_lock_controller.h" #include "third_party/blink/renderer/core/page/scrolling/fragment_anchor.h" #include "third_party/blink/renderer/core/page/scrolling/root_scroller_controller.h" @@ -43,7 +43,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "third_party/blink/renderer/core/page/scrolling/snap_coordinator.h" #include "third_party/blink/renderer/core/page/scrolling/top_document_root_scroller_controller.h" #include "third_party/blink/renderer/core/page/spatial_navigation_controller.h" -@@ -383,6 +384,8 @@ +@@ -384,6 +385,8 @@ #include "third_party/blink/renderer/platform/wtf/text/string_buffer.h" #include "third_party/blink/renderer/platform/wtf/text/text_encoding_registry.h" @@ -52,7 +52,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #ifndef NDEBUG using WeakDocumentSet = blink::HeapHashSet>; static WeakDocumentSet& LiveDocumentSet(); -@@ -7373,6 +7376,64 @@ void Document::OnPrepareToStopParsing() { +@@ -7398,6 +7401,64 @@ void Document::OnPrepareToStopParsing() { MilestoneForDelayedAsyncScript::kFinishedParsing); } @@ -117,7 +117,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink void Document::FinishedParsing() { TRACE_EVENT_WITH_FLOW0("blink", "Document::FinishedParsing", TRACE_ID_LOCAL(this), -@@ -7453,6 +7514,9 @@ void Document::FinishedParsing() { +@@ -7483,6 +7544,9 @@ void Document::FinishedParsing() { } frame->Loader().FinishedParsing(); @@ -130,7 +130,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -2179,6 +2179,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2185,6 +2185,9 @@ class CORE_EXPORT Document : public ContainerNode, void AXContextModeChanged(); void ClearAXObjectCache(); @@ -165,7 +165,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/html/html_script_element.cc b/third_party/blink/renderer/core/html/html_script_element.cc --- a/third_party/blink/renderer/core/html/html_script_element.cc +++ b/third_party/blink/renderer/core/html/html_script_element.cc -@@ -193,6 +193,11 @@ void HTMLScriptElement::setTextContent(const String& string) { +@@ -192,6 +192,11 @@ void HTMLScriptElement::setTextContent(const String& string) { Node::setTextContent(string); } diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch index 0d22a37a..0ab9977a 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 -@@ -2608,6 +2608,7 @@ static_library("browser") { +@@ -2575,6 +2575,7 @@ static_library("browser") { "//third_party/ungoogled:switches", "//services/device/public/mojom", "//services/device/public/mojom:usb", @@ -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 -@@ -164,6 +164,36 @@ bool ShouldOpenPdfInline(DownloadItem* item) { +@@ -170,6 +170,36 @@ bool ShouldOpenPdfInline(DownloadItem* item) { !item->IsMustDownload() && item->IsTransient(); } @@ -118,7 +118,7 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro } // namespace static void JNI_DownloadController_OnAcquirePermissionResult( -@@ -210,7 +240,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env, +@@ -216,7 +246,7 @@ static void JNI_DownloadController_DownloadUrl(JNIEnv* env, if (download_manager) { auto dl_params = std::make_unique( 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 -@@ -268,13 +268,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 -@@ -1047,6 +1047,7 @@ component("net") { +@@ -1049,6 +1049,7 @@ component("net") { "//build:chromeos_buildflags", "//components/miracle_parameter/common", "//net/http:transport_security_state_generated_files", @@ -300,7 +300,7 @@ diff --git a/net/BUILD.gn b/net/BUILD.gn diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_annotation/network_traffic_annotation.h --- a/net/traffic_annotation/network_traffic_annotation.h +++ b/net/traffic_annotation/network_traffic_annotation.h -@@ -373,10 +373,6 @@ struct MutablePartialNetworkTrafficAnnotationTag { +@@ -378,10 +378,6 @@ struct MutablePartialNetworkTrafficAnnotationTag { } // namespace net // Placeholder for unannotated usages. @@ -314,7 +314,7 @@ diff --git a/net/traffic_annotation/network_traffic_annotation.h b/net/traffic_a diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -337,6 +337,9 @@ URLRequestHttpJob::URLRequestHttpJob( +@@ -391,6 +391,9 @@ URLRequestHttpJob::URLRequestHttpJob( : URLRequestJob(request), http_user_agent_settings_(http_user_agent_settings) { ResetTimer(); @@ -324,7 +324,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } URLRequestHttpJob::~URLRequestHttpJob() { -@@ -623,6 +626,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { +@@ -677,6 +680,18 @@ void URLRequestHttpJob::MaybeStartTransactionInternal(int result) { void URLRequestHttpJob::StartTransactionInternal() { DCHECK(!override_response_headers_); @@ -1647,7 +1647,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 -@@ -93,6 +93,7 @@ +@@ -94,6 +94,7 @@ #include "net/url_request/url_request.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_builder.h" @@ -1655,7 +1655,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont #include "services/network/brokered_client_socket_factory.h" #include "services/network/cookie_manager.h" #include "services/network/cors/cors_url_loader_factory.h" -@@ -1619,6 +1620,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { +@@ -1680,6 +1681,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() { void NetworkContext::CreateUDPSocket( mojo::PendingReceiver receiver, mojo::PendingRemote listener) { @@ -1665,7 +1665,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener)); } -@@ -1631,6 +1635,17 @@ void NetworkContext::CreateRestrictedUDPSocket( +@@ -1692,6 +1696,17 @@ void NetworkContext::CreateRestrictedUDPSocket( mojo::PendingRemote listener, CreateRestrictedUDPSocketCallback callback) { // SimpleHostResolver is transitively owned by |this|. @@ -1683,7 +1683,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), -@@ -1643,6 +1658,17 @@ void NetworkContext::CreateTCPServerSocket( +@@ -1704,6 +1719,17 @@ void NetworkContext::CreateTCPServerSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPServerSocketCallback callback) { @@ -1701,7 +1701,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), -@@ -1657,6 +1683,21 @@ void NetworkContext::CreateTCPConnectedSocket( +@@ -1718,6 +1744,21 @@ void NetworkContext::CreateTCPConnectedSocket( mojo::PendingReceiver receiver, mojo::PendingRemote observer, CreateTCPConnectedSocketCallback callback) { @@ -1723,7 +1723,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), -@@ -1668,6 +1709,20 @@ void NetworkContext::CreateTCPBoundSocket( +@@ -1729,6 +1770,20 @@ void NetworkContext::CreateTCPBoundSocket( const net::MutableNetworkTrafficAnnotationTag& traffic_annotation, mojo::PendingReceiver receiver, CreateTCPBoundSocketCallback callback) { @@ -1744,7 +1744,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont socket_factory_->CreateTCPBoundSocket( local_addr, static_cast(traffic_annotation), -@@ -1734,6 +1789,24 @@ void NetworkContext::CreateWebSocket( +@@ -1795,6 +1850,24 @@ void NetworkContext::CreateWebSocket( mojo::PendingRemote auth_handler, mojo::PendingRemote header_client, const std::optional& throttling_profile_id) { @@ -1772,7 +1772,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network/public/cpp/simple_url_loader.cc --- a/services/network/public/cpp/simple_url_loader.cc +++ b/services/network/public/cpp/simple_url_loader.cc -@@ -1276,6 +1276,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( +@@ -1277,6 +1277,8 @@ SimpleURLLoaderImpl::SimpleURLLoaderImpl( timeout_timer_(timeout_tick_clock_) { // Allow creation and use on different threads. DETACH_FROM_SEQUENCE(sequence_checker_); @@ -1781,7 +1781,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.cc b/services/network #if DCHECK_IS_ON() if (resource_request_->request_body) { for (const DataElement& element : -@@ -1717,6 +1719,22 @@ void SimpleURLLoaderImpl::StartRequest( +@@ -1724,6 +1726,22 @@ void SimpleURLLoaderImpl::StartRequest( resource_request_->request_body->AppendDataPipe( string_upload_data_pipe_getter_->GetRemoteForNewUpload()); } @@ -1815,7 +1815,7 @@ diff --git a/services/network/public/cpp/simple_url_loader.h b/services/network/ class GURL; -@@ -408,6 +409,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader { +@@ -413,6 +414,8 @@ class COMPONENT_EXPORT(NETWORK_CPP) SimpleURLLoader { protected: SimpleURLLoader(); @@ -1833,7 +1833,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_utils.cc b/t case network::mojom::RequestDestination::kFencedframe: - case network::mojom::RequestDestination::kWebIdentity: - case network::mojom::RequestDestination::kSharedStorageWorklet: - NOTREACHED(); + NOTREACHED_IN_MIGRATION(); [[fallthrough]]; + // Split destination with new annotations diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch index f043dad9..f73d38d2 100644 --- a/build/patches/JIT-site-settings.patch +++ b/build/patches/JIT-site-settings.patch @@ -287,7 +287,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc -@@ -3350,13 +3350,8 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3396,13 +3396,8 @@ void RenderProcessHostImpl::AppendRendererCommandLine( } if (IsJitDisabled()) { diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch index d899e245..65b0642e 100644 --- a/build/patches/Keep-ComputePressure-disabled.patch +++ b/build/patches/Keep-ComputePressure-disabled.patch @@ -4,18 +4,21 @@ Subject: Keep ComputePressure disabled License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html --- - .../blink/renderer/platform/runtime_enabled_features.json5 | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) + .../renderer/platform/runtime_enabled_features.json5 | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) 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 -@@ -699,8 +699,9 @@ +@@ -707,11 +707,9 @@ + status: "experimental", }, { - // Shipping in M125. Should be removed after M127. - name: "ComputePressure", -- status: "stable", +- status: { +- "Android": "", +- "default": "stable", +- } + name: "ComputePressure", // disabled + status: "experimental", // by default + public: true, diff --git a/build/patches/Keep-Side-Panel-Companion-disabled.patch b/build/patches/Keep-Side-Panel-Companion-disabled.patch index 7a64a390..2833eea7 100644 --- a/build/patches/Keep-Side-Panel-Companion-disabled.patch +++ b/build/patches/Keep-Side-Panel-Companion-disabled.patch @@ -14,7 +14,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/companion/core/features.cc b/chrome/browser/companion/core/features.cc --- a/chrome/browser/companion/core/features.cc +++ b/chrome/browser/companion/core/features.cc -@@ -59,6 +59,11 @@ BASE_FEATURE(kCompanionEnableNewBadgesInContextMenu, +@@ -54,6 +54,11 @@ BASE_FEATURE(kCompanionEnableSearchWebInNewTabContextMenuItem, BASE_FEATURE(kCompanionEnablePageContent, "CompanionEnablePageContent", base::FEATURE_DISABLED_BY_DEFAULT); @@ -26,7 +26,7 @@ diff --git a/chrome/browser/companion/core/features.cc b/chrome/browser/companio } // namespace features namespace switches { -@@ -69,6 +74,7 @@ const char kDisableCheckUserPermissionsForCompanion[] = +@@ -64,6 +69,7 @@ const char kDisableCheckUserPermissionsForCompanion[] = const char kForceCompanionPinnedState[] = "force-companion-pinned-state"; bool ShouldOverrideCheckingUserPermissionsForCompanion() { @@ -49,7 +49,7 @@ diff --git a/chrome/browser/ui/side_search/side_search_prefs.cc b/chrome/browser 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 -@@ -1934,7 +1934,7 @@ GURL TemplateURL::GenerateSuggestionURL( +@@ -1957,7 +1957,7 @@ GURL TemplateURL::GenerateSuggestionURL( } bool TemplateURL::IsSideSearchSupported() const { diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch index 13536026..45bb86d5 100644 --- a/build/patches/Keep-disabled-FetchLaterAPI.patch +++ b/build/patches/Keep-disabled-FetchLaterAPI.patch @@ -157,7 +157,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 -@@ -2800,7 +2800,7 @@ void ResourceFetcher::PrepareForLeakDetection() { +@@ -2890,7 +2890,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. @@ -169,7 +169,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 -@@ -1647,10 +1647,9 @@ +@@ -1658,10 +1658,9 @@ }, { // The Blink runtime-enabled feature name for the API's IDL. diff --git a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch index 9222efd4..334c3569 100644 --- a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch +++ b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch @@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/android_webview/common/aw_features.cc b/android_webview/common/aw_features.cc --- a/android_webview/common/aw_features.cc +++ b/android_webview/common/aw_features.cc -@@ -258,5 +258,7 @@ BASE_FEATURE(kCreateSpareRendererOnBrowserContextCreation, +@@ -259,5 +259,7 @@ BASE_FEATURE(kCreateSpareRendererOnBrowserContextCreation, "CreateSpareRendererOnBrowserContextCreation", base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch index 23bb5093..49aeaf49 100644 --- a/build/patches/Keep-empty-tabs-between-sessions.patch +++ b/build/patches/Keep-empty-tabs-between-sessions.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java -@@ -731,18 +731,6 @@ public class TabPersistentStore { +@@ -817,18 +817,6 @@ public class TabPersistentStore { } } else { 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 67eb0487..837b019b 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 @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -5048,9 +5048,9 @@ +@@ -5112,9 +5112,9 @@ "expiry_milestone": 120 }, { diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch index 53f9a90f..af4f500b 100644 --- a/build/patches/Keyboard-protection-flag.patch +++ b/build/patches/Keyboard-protection-flag.patch @@ -235,7 +235,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 -@@ -30,6 +30,8 @@ BASE_DECLARE_FEATURE(kWindowsScrollingPersonality); +@@ -28,6 +28,8 @@ BASE_DECLARE_FEATURE(kWindowsScrollingPersonality); COMPONENT_EXPORT(UI_BASE_FEATURES) bool IsPercentBasedScrollingEnabled(); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kSystemCaptionStyle); COMPONENT_EXPORT(UI_BASE_FEATURES) BASE_DECLARE_FEATURE(kSystemKeyboardLock); 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 da1a1417..7f953417 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 -@@ -4694,6 +4694,14 @@ void Document::ProcessBaseElement() { +@@ -4704,6 +4704,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); } -@@ -4711,6 +4719,14 @@ void Document::ProcessBaseElement() { +@@ -4721,6 +4729,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 } } -@@ -4730,6 +4746,8 @@ void Document::ProcessBaseElement() { +@@ -4740,6 +4756,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 -@@ -2884,8 +2884,26 @@ void Element::StripScriptingAttributes( +@@ -2877,8 +2877,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 -@@ -654,7 +654,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable { +@@ -669,7 +669,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 -@@ -1443,8 +1443,8 @@ +@@ -1457,8 +1457,8 @@ // Experiment with preventing some instances of mutation XSS // by escaping "<" and ">" in attribute values. // See: crbug.com/1175016 @@ -342,7 +342,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 }, { name: "EventTimingInteractionCount", -@@ -2328,6 +2328,12 @@ +@@ -2364,6 +2364,12 @@ name: "MacFontsDeprecateFontTraitsWorkaround", status: "stable", }, diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch index 34e6f40d..4b9f5efc 100644 --- a/build/patches/Logcat-crash-reports-UI.patch +++ b/build/patches/Logcat-crash-reports-UI.patch @@ -67,15 +67,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/crash/MinidumpU diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chrome/browser/crash_upload_list/crash_upload_list_android.cc --- a/chrome/browser/crash_upload_list/crash_upload_list_android.cc +++ b/chrome/browser/crash_upload_list/crash_upload_list_android.cc -@@ -13,6 +13,7 @@ - #include "base/files/file_util.h" - #include "base/metrics/histogram_macros_local.h" +@@ -15,6 +15,7 @@ + + // Must come after all headers that specialize FromJniType() / ToJniType(). #include "chrome/android/chrome_jni_headers/MinidumpUploadServiceImpl_jni.h" +#include "base/strings/string_util.h" namespace { -@@ -75,16 +76,26 @@ void CrashUploadListAndroid::RequestSingleUpload(const std::string& local_id) { +@@ -77,16 +78,26 @@ void CrashUploadListAndroid::RequestSingleUpload(const std::string& local_id) { Java_MinidumpUploadServiceImpl_tryUploadCrashDumpWithLocalId(env, j_local_id); } @@ -102,7 +102,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr if (file.value().find(manually_forced_uploads) != std::string::npos) { RecordUnsuccessfulUploadListState(UnsuccessfulUploadListState::FORCED); upload_state = UploadList::UploadInfo::State::Pending_UserRequested; -@@ -116,6 +127,8 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( +@@ -118,6 +129,8 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( continue; } @@ -111,7 +111,7 @@ diff --git a/chrome/browser/crash_upload_list/crash_upload_list_android.cc b/chr // Crash reports can have multiple extensions (e.g. foo.dmp, foo.dmp.try1, // foo.skipped.try0). file = file.BaseName(); -@@ -135,7 +148,9 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( +@@ -137,7 +150,9 @@ void CrashUploadListAndroid::LoadUnsuccessfulUploadList( RecordUnsuccessfulUploadListState( UnsuccessfulUploadListState::ADDING_AN_UPLOAD_ENTRY); id = id.substr(pos + 1); @@ -154,7 +154,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 -@@ -706,6 +706,7 @@ static_library("ui") { +@@ -720,6 +720,7 @@ static_library("ui") { "//third_party/re2", "//third_party/webrtc_overrides:webrtc_component", "//third_party/zlib", @@ -205,7 +205,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra CrashesDOMHandler(const CrashesDOMHandler&) = delete; CrashesDOMHandler& operator=(const CrashesDOMHandler&) = delete; -@@ -97,6 +114,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -98,6 +115,8 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously fetches the list of crashes. Called from JS. void HandleRequestCrashes(const base::Value::List& args); @@ -214,7 +214,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra #if BUILDFLAG(IS_CHROMEOS_ASH) // Asynchronously triggers crash uploading. Called from JS. void HandleRequestUploads(const base::Value::List& args); -@@ -108,14 +127,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { +@@ -109,14 +128,30 @@ class CrashesDOMHandler : public WebUIMessageHandler { // Asynchronously requests a user triggered upload. Called from JS. void HandleRequestSingleCrashUpload(const base::Value::List& args); @@ -247,7 +247,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra } CrashesDOMHandler::~CrashesDOMHandler() { -@@ -141,10 +176,24 @@ void CrashesDOMHandler::RegisterMessages() { +@@ -142,6 +177,16 @@ void CrashesDOMHandler::RegisterMessages() { crash_reporter::kCrashesUIRequestSingleCrashUpload, base::BindRepeating(&CrashesDOMHandler::HandleRequestSingleCrashUpload, base::Unretained(this))); @@ -263,6 +263,9 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra + base::Unretained(this))); } + void CrashesDOMHandler::OnJavascriptDisallowed() { +@@ -150,6 +195,10 @@ void CrashesDOMHandler::OnJavascriptDisallowed() { + void CrashesDOMHandler::HandleRequestCrashes(const base::Value::List& args) { AllowJavascript(); + RequestCrashesList(); @@ -272,7 +275,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra if (first_load_) { first_load_ = false; if (list_available_) -@@ -176,8 +225,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { +@@ -181,8 +230,7 @@ void CrashesDOMHandler::OnUploadListAvailable() { } void CrashesDOMHandler::UpdateUI() { @@ -282,7 +285,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra bool system_crash_reporter = false; #if BUILDFLAG(IS_CHROMEOS) -@@ -225,14 +273,117 @@ void CrashesDOMHandler::UpdateUI() { +@@ -230,14 +278,117 @@ void CrashesDOMHandler::UpdateUI() { void CrashesDOMHandler::HandleRequestSingleCrashUpload( const base::Value::List& args) { @@ -406,7 +409,7 @@ diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/cra } } // namespace -@@ -244,7 +395,8 @@ void CrashesDOMHandler::HandleRequestSingleCrashUpload( +@@ -249,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 2a9073d0..91d120bc 100644 --- a/build/patches/Modify-default-preferences.patch +++ b/build/patches/Modify-default-preferences.patch @@ -19,10 +19,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/browser/cookie_settings.cc | 2 +- components/payments/core/payment_prefs.cc | 2 +- .../core/common/safe_browsing_prefs.cc | 4 ++-- - .../primary_account_manager.cc | 4 ++-- + .../primary_account_manager.cc | 2 +- .../Modify-default-preferences.inc | 8 ++++++++ .../features_cc/Modify-default-preferences.inc | 1 + - 18 files changed, 67 insertions(+), 17 deletions(-) + 18 files changed, 66 insertions(+), 16 deletions(-) create mode 100644 components/bookmarks/browser/features.cc create mode 100644 components/bookmarks/browser/features.h create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Modify-default-preferences.inc @@ -54,7 +54,7 @@ diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/brows diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -1526,7 +1526,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( +@@ -1548,7 +1548,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs( void ChromeContentBrowserClient::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false); @@ -78,7 +78,7 @@ diff --git a/chrome/browser/preloading/preloading_prefs.h b/chrome/browser/prelo diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc --- a/chrome/browser/profiles/profile.cc +++ b/chrome/browser/profiles/profile.cc -@@ -308,7 +308,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; +@@ -318,7 +318,7 @@ const char Profile::kProfileKey[] = "__PROFILE__"; void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref( prefs::kSearchSuggestEnabled, @@ -230,7 +230,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. 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 -@@ -93,7 +93,7 @@ void CookieSettings::RegisterProfilePrefs( +@@ -94,7 +94,7 @@ void CookieSettings::RegisterProfilePrefs( user_prefs::PrefRegistrySyncable* registry) { registry->RegisterIntegerPref( prefs::kCookieControlsMode, @@ -254,7 +254,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc --- a/components/safe_browsing/core/common/safe_browsing_prefs.cc +++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc -@@ -172,13 +172,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -168,13 +168,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) { registry->RegisterBooleanPref( prefs::kSafeBrowsingSawInterstitialScoutReporting, false); registry->RegisterBooleanPref( @@ -273,13 +273,10 @@ diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/compo diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc --- a/components/signin/internal/identity_manager/primary_account_manager.cc +++ b/components/signin/internal/identity_manager/primary_account_manager.cc -@@ -245,9 +245,9 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { +@@ -245,7 +245,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) { prefs::kGoogleServicesSyncingGaiaIdMigratedToSignedIn, std::string()); registry->RegisterStringPref( prefs::kGoogleServicesSyncingUsernameMigratedToSignedIn, std::string()); -- registry->RegisterBooleanPref(prefs::kAutologinEnabled, true); -+ registry->RegisterBooleanPref(prefs::kAutologinEnabled, false); - registry->RegisterListPref(prefs::kReverseAutologinRejectedEmailList); - registry->RegisterBooleanPref(prefs::kSigninAllowed, true); + registry->RegisterBooleanPref(prefs::kSigninAllowed, false); registry->RegisterBooleanPref(prefs::kSignedInWithCredentialProvider, false); diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch index efce068d..667ee2e1 100644 --- a/build/patches/Move-navigation-bar-to-bottom.patch +++ b/build/patches/Move-navigation-bar-to-bottom.patch @@ -24,13 +24,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../tab_management/TabGroupUiToolbarView.java | 17 ++ .../tab_management/TabGroupUiViewBinder.java | 3 + .../TabListContainerViewBinder.java | 15 +- - .../tab_management/TabListCoordinator.java | 151 +++++++++++++++++- - .../TabListEmptyCoordinator.java | 7 +- + .../tab_management/TabListCoordinator.java | 153 +++++++++++++++++- + .../TabListEmptyCoordinator.java | 15 +- .../tab_management/TabListRecyclerView.java | 19 ++- .../tab_management/TabSwitcherMediator.java | 27 +++- .../settings/AccessibilitySettings.java | 26 +++ .../ChromeAccessibilitySettingsDelegate.java | 69 ++++++++ - .../chrome/browser/app/ChromeActivity.java | 13 ++ + .../chrome/browser/app/ChromeActivity.java | 3 + .../compositor/CompositorViewHolder.java | 8 + .../layouts/LayoutManagerChrome.java | 19 ++- .../layouts/LayoutManagerChromeTablet.java | 4 +- @@ -45,17 +45,18 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../messages/MessageContainerCoordinator.java | 16 +- .../modaldialog/ChromeTabModalPresenter.java | 2 +- .../chrome/browser/ntp/NewTabPage.java | 14 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 8 + - .../chrome/browser/ntp/RecentTabsPage.java | 26 ++- - .../browser/searchwidget/SearchActivity.java | 13 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 9 ++ + .../chrome/browser/ntp/RecentTabsPage.java | 30 +++- + .../browser/searchwidget/SearchActivity.java | 11 ++ .../browser/settings/SettingsActivity.java | 5 + .../StatusIndicatorCoordinator.java | 9 ++ .../StatusIndicatorSceneLayer.java | 6 +- - .../browser/toolbar/ToolbarManager.java | 46 +++++- + .../browser/toolbar/ToolbarManager.java | 44 ++++- .../chrome/browser/ui/BottomContainer.java | 18 +++ .../ui/system/StatusBarColorController.java | 9 ++ .../android/compositor/layer/toolbar_layer.cc | 10 +- .../scene_layer/tab_strip_scene_layer.cc | 16 +- + .../BottomControlsStacker.java | 2 +- .../BrowserControlsMarginSupplier.java | 5 + .../BrowserControlsStateProvider.java | 6 + .../browser/feed/FeedListContentManager.java | 6 +- @@ -64,13 +65,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/prefs/browser_prefs.cc | 2 +- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++- .../ui/appmenu/AppMenuHandlerImpl.java | 10 ++ - .../omnibox/LocationBarCoordinator.java | 7 +- - ...mniboxSuggestionsDropdownEmbedderImpl.java | 24 ++- - .../suggestions/AutocompleteCoordinator.java | 16 +- + ...mniboxSuggestionsDropdownEmbedderImpl.java | 18 +++ + .../suggestions/AutocompleteCoordinator.java | 13 ++ .../suggestions/AutocompleteMediator.java | 6 +- .../DropdownItemViewInfoListManager.java | 7 +- - .../OmniboxSuggestionsDropdown.java | 39 ++++- - .../OmniboxSuggestionsDropdownEmbedder.java | 8 + + .../OmniboxSuggestionsDropdown.java | 11 +- + .../OmniboxSuggestionsDropdownEmbedder.java | 4 + .../strings/android_chrome_strings.grd | 6 + chrome/browser/ui/android/toolbar/BUILD.gn | 1 + .../toolbar/LocationBarFocusScrimHandler.java | 5 + @@ -88,13 +88,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../AccessibilitySettingsDelegate.java | 7 + .../render_widget_host_view_android.cc | 3 + .../Move-navigation-bar-to-bottom.inc | 17 ++ - 75 files changed, 1023 insertions(+), 90 deletions(-) + 75 files changed, 987 insertions(+), 81 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc diff --git a/cc/base/features.cc b/cc/base/features.cc --- a/cc/base/features.cc +++ b/cc/base/features.cc -@@ -36,6 +36,14 @@ BASE_FEATURE(kSynchronizedScrolling, +@@ -38,6 +38,14 @@ BASE_FEATURE(kSynchronizedScrolling, base::FEATURE_ENABLED_BY_DEFAULT); #endif @@ -112,7 +112,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc diff --git a/cc/base/features.h b/cc/base/features.h --- a/cc/base/features.h +++ b/cc/base/features.h -@@ -15,6 +15,8 @@ namespace features { +@@ -17,6 +17,8 @@ namespace features { CC_BASE_EXPORT BASE_DECLARE_FEATURE(kAnimatedImageResume); CC_BASE_EXPORT extern bool IsImpulseScrollAnimationEnabled(); CC_BASE_EXPORT BASE_DECLARE_FEATURE(kSynchronizedScrolling); @@ -124,7 +124,7 @@ diff --git a/cc/base/features.h b/cc/base/features.h 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 -@@ -17,6 +17,7 @@ +@@ -20,6 +20,7 @@ #include "ui/gfx/animation/tween.h" #include "ui/gfx/geometry/transform.h" #include "ui/gfx/geometry/vector2d_f.h" @@ -132,7 +132,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont namespace cc { namespace { -@@ -484,6 +485,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollBy( +@@ -496,6 +497,11 @@ gfx::Vector2dF BrowserControlsOffsetManager::ScrollBy( // content. If the top controls have no height, the content should scroll // immediately. gfx::Vector2dF applied_delta(0.f, old_top_offset - ContentTopOffset()); @@ -147,7 +147,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 -@@ -4332,6 +4332,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { +@@ -4448,6 +4448,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) { if (scroll_delta.IsZero()) return false; @@ -160,7 +160,7 @@ diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java --- a/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java +++ b/chrome/android/features/start_surface/java/src/org/chromium/chrome/features/start_surface/StartSurfaceMediator.java -@@ -108,6 +108,8 @@ import org.chromium.url.GURL; +@@ -105,6 +105,8 @@ import org.chromium.url.GURL; import java.util.List; @@ -169,7 +169,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ /** The mediator implements the logic to interact with the surfaces and caller. */ class StartSurfaceMediator implements TabSwitcher.TabSwitcherViewObserver, -@@ -974,6 +976,8 @@ class StartSurfaceMediator +@@ -968,6 +970,8 @@ class StartSurfaceMediator } private void setTopMargin(int topMargin) { @@ -181,7 +181,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ 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 -@@ -43,6 +43,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; +@@ -38,6 +38,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModelChangeProcessor; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; @@ -189,7 +189,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import java.util.List; -@@ -168,7 +169,8 @@ public class TabGroupUiCoordinator +@@ -153,7 +154,8 @@ public class TabGroupUiCoordinator public void initializeWithNative( Activity activity, BottomControlsCoordinator.BottomControlsVisibilityController visibilityController, @@ -199,7 +199,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser var currentTabModelFilterSupplier = mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilterSupplier(); try (TraceEvent e = TraceEvent.scoped("TabGroupUiCoordinator.initializeWithNative")) { -@@ -228,7 +230,8 @@ public class TabGroupUiCoordinator +@@ -211,7 +213,8 @@ public class TabGroupUiCoordinator mLayoutStateProviderSupplier, mIncognitoStateProvider, mTabGridDialogControllerSupplier, @@ -208,7 +208,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + topUiThemeColorProvider, tabSupplier); TabGroupUtils.startObservingForCreationIPH(); - + } 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 @@ -335,7 +335,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser void setupLeftButtonOnClickListener(View.OnClickListener listener) { mModel.set(TabGroupUiProperties.LEFT_BUTTON_ON_CLICK_LISTENER, listener); } -@@ -526,6 +575,7 @@ public class TabGroupUiMediator implements BackPressHandler { +@@ -524,6 +573,7 @@ public class TabGroupUiMediator implements BackPressHandler { } public void destroy() { @@ -479,7 +479,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.LayoutInflater; -@@ -59,6 +63,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; +@@ -58,6 +62,8 @@ import org.chromium.ui.modelutil.SimpleRecyclerViewAdapter; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; import org.chromium.ui.widget.ViewLookupCachingFrameLayout; @@ -617,11 +617,11 @@ 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. * -@@ -363,6 +491,12 @@ public class TabListCoordinator +@@ -355,6 +483,12 @@ public class TabListCoordinator checkAwaitingLayout(); } }; -+ if (titleProvider != null && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ if (actionOnRelatedTabs && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + gridLayoutManager = + new GridLayoutManagerDockBottom(context, GRID_LAYOUT_SPAN_COUNT_COMPACT); + ((GridLayoutManagerDockBottom)gridLayoutManager) @@ -630,7 +630,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mRecyclerView.setLayoutManager(gridLayoutManager); mMediator.registerOrientationListener(gridLayoutManager); mMediator.updateSpanCount( -@@ -374,8 +508,7 @@ public class TabListCoordinator +@@ -366,8 +500,7 @@ public class TabListCoordinator .getDecorView() .getWindowVisibleDisplayFrame(frame); updateGridCardLayout(frame.width()); @@ -640,7 +640,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser LinearLayoutManager layoutManager = new LinearLayoutManager( context, -@@ -390,6 +523,17 @@ public class TabListCoordinator +@@ -382,6 +515,17 @@ public class TabListCoordinator } }; mRecyclerView.setLayoutManager(layoutManager); @@ -658,7 +658,16 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser } mMediator.setRecyclerViewItemAnimationToggle(mRecyclerView::setDisableItemAnimations); } -@@ -699,6 +843,9 @@ public class TabListCoordinator +@@ -397,7 +541,7 @@ public class TabListCoordinator + + mHasEmptyView = hasEmptyView; + if (mHasEmptyView) { +- mTabListEmptyCoordinator = new TabListEmptyCoordinator(parentView, mModel); ++ mTabListEmptyCoordinator = new TabListEmptyCoordinator(parentView, mModel, mBrowserControlsStateProvider); + mEmptyStateHeadingResId = emptyHeadingStringResId; + mEmptyStateSubheadingResId = emptySubheadingStringResId; + mEmptyStateImageResId = emptyImageResId; +@@ -708,6 +852,9 @@ public class TabListCoordinator void prepareTabSwitcherView() { registerLayoutChangeListener(); mRecyclerView.prepareTabSwitcherView(); @@ -671,7 +680,13 @@ 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/TabListEmptyCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEmptyCoordinator.java -@@ -15,6 +15,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider +@@ -9,10 +9,13 @@ import android.view.View; + import android.view.ViewGroup; + import android.widget.ImageView; + import android.widget.TextView; ++import android.widget.FrameLayout; + ++import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.tab_ui.R; import org.chromium.ui.modelutil.ListObservable; import org.chromium.ui.modelutil.ListObservable.ListObserver; @@ -679,19 +694,38 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * Empty coordinator that is responsible for showing an empty state view in tab switcher when we are -@@ -131,7 +132,11 @@ class TabListEmptyCoordinator { - int toolbarHeightPx = mBrowserControlsStateProvider.getTopControlsHeight(); - FrameLayout.LayoutParams emptyViewParams = - (FrameLayout.LayoutParams) mEmptyView.getLayoutParams(); -- emptyViewParams.topMargin = toolbarHeightPx; +@@ -30,13 +33,16 @@ class TabListEmptyCoordinator { + private ListObserver mListObserver; + private boolean mIsTabSwitcherShowing; + private boolean mIsListObserverAttached; ++ private BrowserControlsStateProvider mBrowserControlsStateProvider; + +- public TabListEmptyCoordinator(ViewGroup rootView, TabListModel model) { ++ public TabListEmptyCoordinator(ViewGroup rootView, TabListModel model, ++ BrowserControlsStateProvider browserControlsStateProvider) { + mRootView = rootView; + mContext = rootView.getContext(); + + // Observe TabListModel to determine when to add / remove empty state view. + mModel = model; ++ mBrowserControlsStateProvider = browserControlsStateProvider; + mListObserver = + new ListObserver() { + @Override +@@ -121,6 +127,13 @@ class TabListEmptyCoordinator { + public void attachEmptyView() { + if (mEmptyView != null && mEmptyView.getParent() == null) { + mRootView.addView(mEmptyView); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ FrameLayout.LayoutParams emptyViewParams = ++ (FrameLayout.LayoutParams) mEmptyView.getLayoutParams(); ++ int toolbarHeightPx = mBrowserControlsStateProvider.getTopControlsHeight(); + emptyViewParams.bottomMargin = toolbarHeightPx; -+ } else { -+ emptyViewParams.topMargin = toolbarHeightPx; ++ mEmptyView.setLayoutParams(emptyViewParams); + } - mEmptyView.setLayoutParams(emptyViewParams); } setEmptyViewVisibility(View.GONE); + } diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java @@ -978,7 +1012,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 -@@ -253,6 +253,9 @@ import org.chromium.webapk.lib.client.WebApkNavigationClient; +@@ -252,6 +252,9 @@ import org.chromium.webapk.lib.client.WebApkNavigationClient; import java.util.ArrayList; import java.util.List; @@ -988,23 +1022,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv /** * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} * and associated classes. -@@ -873,6 +876,16 @@ public abstract class ChromeActivity - controlContainer.initWithToolbar(toolbarLayoutId, - DeviceFormFactor.isForceTabletUI() - ? R.dimen.control_container_height_tabletui : 0); -+ ImageView shadowImage = findViewById(R.id.toolbar_hairline); -+ if (shadowImage != null) { -+ // Invert the shadown if the top toolbar is at the bottom -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ ViewGroup.MarginLayoutParams marginParams = (ViewGroup.MarginLayoutParams)shadowImage.getLayoutParams(); -+ marginParams.setMargins(marginParams.leftMargin, 0, -+ marginParams.rightMargin, marginParams.bottomMargin); -+ shadowImage.setLayoutParams(marginParams); -+ } -+ } - } - onInitialLayoutInflationComplete(); - } 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 @@ -1048,7 +1065,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.List; import java.util.concurrent.Callable; -@@ -310,7 +311,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -311,7 +312,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl @Override public SwipeHandler createToolbarSwipeHandler(boolean supportSwipeDown) { @@ -1060,7 +1077,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -564,9 +568,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -566,9 +570,11 @@ public class LayoutManagerChrome extends LayoutManagerImpl private static final float SWIPE_RANGE_DEG = 25; private final boolean mSupportSwipeDown; @@ -1073,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } @Override -@@ -597,6 +603,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -599,6 +605,10 @@ public class LayoutManagerChrome extends LayoutManagerImpl if (mSupportSwipeDown && mScrollDirection == ScrollDirection.DOWN) { RecordUserAction.record("MobileToolbarSwipeOpenStackView"); showLayout(LayoutType.TAB_SWITCHER, true); @@ -1084,7 +1101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } else if (mScrollDirection == ScrollDirection.LEFT || mScrollDirection == ScrollDirection.RIGHT) { startShowing(mToolbarSwipeLayout, true); -@@ -647,6 +657,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -650,6 +660,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl direction = ScrollDirection.RIGHT; } else if (swipeAngle < 270 + SWIPE_RANGE_DEG && swipeAngle > 270 - SWIPE_RANGE_DEG) { direction = ScrollDirection.DOWN; @@ -1093,7 +1110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo } return direction; -@@ -663,7 +675,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl +@@ -666,7 +678,8 @@ public class LayoutManagerChrome extends LayoutManagerImpl return direction == ScrollDirection.DOWN || direction == ScrollDirection.LEFT @@ -1106,7 +1123,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/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 -@@ -38,6 +38,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; +@@ -39,6 +39,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimCoordinator; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.dragdrop.DragAndDropDelegate; import org.chromium.ui.resources.dynamics.DynamicResourceLoader; @@ -1114,12 +1131,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo import java.util.concurrent.Callable; -@@ -142,7 +143,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { - browserControlsStateProvider, +@@ -145,7 +146,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome { windowAndroid, toolbarManager, -- desktopWindowStateProvider); -+ desktopWindowStateProvider, + desktopWindowStateProvider, +- actionConfirmationManager); ++ actionConfirmationManager, + /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager()); addSceneOverlay(mTabStripLayoutHelperManager); addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver()); @@ -1165,7 +1182,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/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 -@@ -746,7 +746,7 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro +@@ -775,7 +775,7 @@ public class StripLayoutHelper implements StripLayoutTabDelegate, StripLayoutGro boolean isRtl = LocalizationUtils.isLayoutRtl(); boolean useUnadjustedScrollOffset = isRtl != isLeft; float offset = @@ -1177,15 +1194,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java -@@ -27,6 +27,7 @@ import androidx.annotation.VisibleForTesting; - import androidx.appcompat.content.res.AppCompatResources; +@@ -28,6 +28,7 @@ import androidx.appcompat.content.res.AppCompatResources; + import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.Supplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; import org.chromium.chrome.browser.compositor.LayerTitleCache; -@@ -88,6 +89,8 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -90,6 +91,8 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.resources.ResourceManager; import org.chromium.ui.util.ColorUtils; import org.chromium.url.GURL; @@ -1194,7 +1211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import java.util.ArrayList; import java.util.List; -@@ -226,12 +229,16 @@ public class StripLayoutHelperManager +@@ -228,12 +231,16 @@ public class StripLayoutHelperManager // Drag-Drop @Nullable private TabDragSource mTabDragSource; @@ -1211,7 +1228,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over if (mModelSelectorButton.onDown(x, y, fromMouse)) { return; } -@@ -254,6 +261,7 @@ public class StripLayoutHelperManager +@@ -256,6 +263,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1219,7 +1236,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mModelSelectorButton.drag(x, y); getActiveStripLayoutHelper().drag(time(), x, y, dx); } -@@ -263,6 +271,7 @@ public class StripLayoutHelperManager +@@ -265,6 +273,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1227,7 +1244,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over long time = time(); if (mModelSelectorButton.click(x, y)) { mModelSelectorButton.handleClick(time); -@@ -276,6 +285,7 @@ public class StripLayoutHelperManager +@@ -278,6 +287,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1235,7 +1252,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().fling(time(), x, y, velocityX, velocityY); } -@@ -284,6 +294,7 @@ public class StripLayoutHelperManager +@@ -286,6 +296,7 @@ public class StripLayoutHelperManager if (DragDropGlobalState.hasValue()) { return; } @@ -1243,26 +1260,26 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over getActiveStripLayoutHelper().onLongPress(time(), x, y); } -@@ -385,7 +396,8 @@ public class StripLayoutHelperManager - // TODO(crbug.com/40939440): Avoid passing the ToolbarManager instance. Potentially +@@ -388,7 +399,8 @@ public class StripLayoutHelperManager // implement an interface to manage strip transition states. @NonNull ToolbarManager toolbarManager, -- @Nullable DesktopWindowStateProvider desktopWindowStateProvider) { -+ @Nullable DesktopWindowStateProvider desktopWindowStateProvider, + @Nullable DesktopWindowStateProvider desktopWindowStateProvider, +- ActionConfirmationManager actionConfirmationManager) { ++ ActionConfirmationManager actionConfirmationManager, + Supplier browserControlsManagerSupplier) { Resources res = context.getResources(); mUpdateHost = updateHost; mLayerTitleCacheSupplier = layerTitleCacheSupplier; -@@ -527,6 +539,8 @@ public class StripLayoutHelperManager - mTabDragSource, - toolbarContainerView, - windowAndroid); +@@ -534,6 +546,8 @@ public class StripLayoutHelperManager + windowAndroid, + actionConfirmationManager, + toolbarManager.getTabStripHeightSupplier().get()); + mBrowserControlsManagerSupplier = browserControlsManagerSupplier; + mDpToPx = context.getResources().getDisplayMetrics().density; tabHoverCardViewStub.setOnInflateListener( (viewStub, view) -> { -@@ -686,6 +700,10 @@ public class StripLayoutHelperManager +@@ -694,6 +708,10 @@ public class StripLayoutHelperManager // value. yOffset -= getHeight(); } @@ -1273,7 +1290,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over mTabStripTreeProvider.pushAndUpdateStrip( this, mLayerTitleCacheSupplier.get(), -@@ -699,7 +717,9 @@ public class StripLayoutHelperManager +@@ -707,7 +725,9 @@ public class StripLayoutHelperManager scrimOpacity, mLeftPadding, mRightPadding, @@ -1284,7 +1301,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over return mTabStripTreeProvider; } -@@ -758,11 +778,21 @@ public class StripLayoutHelperManager +@@ -763,11 +783,21 @@ public class StripLayoutHelperManager mLeftPadding, mRightPadding); @@ -1311,7 +1328,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/StaticTabSceneLayer.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/scene_layer/StaticTabSceneLayer.java -@@ -16,6 +16,8 @@ import org.chromium.chrome.browser.tab_ui.TabContentManager; +@@ -17,6 +17,8 @@ import org.chromium.chrome.browser.tab_ui.TabContentManager; import org.chromium.ui.modelutil.PropertyKey; import org.chromium.ui.modelutil.PropertyModel; @@ -1320,7 +1337,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/scen /** A SceneLayer to render a static tab. */ @JNINamespace("android") public class StaticTabSceneLayer extends SceneLayer { -@@ -48,7 +50,10 @@ public class StaticTabSceneLayer extends SceneLayer { +@@ -49,7 +51,10 @@ public class StaticTabSceneLayer extends SceneLayer { float y = model.get(LayoutTab.CONTENT_OFFSET) + model.get(LayoutTab.RENDER_Y) * LayoutTab.sDpToPx; @@ -1424,7 +1441,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 -@@ -46,6 +46,8 @@ import org.chromium.ui.util.TokenHolder; +@@ -48,6 +48,8 @@ import org.chromium.ui.util.TokenHolder; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -1433,7 +1450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow /** A class that manages browser control visibility and positioning. */ public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer { // The amount of time to delay the control show request after returning to a once visible -@@ -431,6 +433,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -464,6 +466,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon return mTopControlContainerHeight; } @@ -1448,7 +1465,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow @Override public int getTopControlsMinHeight() { return mTopControlsMinHeight; -@@ -497,6 +507,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon +@@ -530,6 +540,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon @Override public float getTopVisibleContentOffset() { @@ -1512,15 +1529,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr 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 -@@ -112,6 +112,7 @@ import org.chromium.content_public.browser.NavigationController; - import org.chromium.ui.base.DeviceFormFactor; +@@ -114,6 +114,7 @@ import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.WindowAndroid; + import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import java.util.List; -@@ -672,11 +673,16 @@ public class NewTabPage +@@ -682,11 +683,16 @@ public class NewTabPage final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset() - mBrowserControlsStateProvider.getTopControlsHeight(); @@ -1539,7 +1556,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) { layoutParams.topMargin = topMargin; -@@ -692,9 +698,7 @@ public class NewTabPage +@@ -702,9 +708,7 @@ public class NewTabPage * strip. */ private int getToolbarExtraYOffset() { @@ -1553,16 +1570,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -18,6 +18,8 @@ import android.view.DragEvent; - import android.view.Gravity; +@@ -17,6 +17,9 @@ import android.util.AttributeSet; + import android.view.DragEvent; import android.view.LayoutInflater; import android.view.ViewStub; +import android.view.ViewGroup.LayoutParams; +import android.widget.FrameLayout; ++import android.view.Gravity; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -@@ -199,6 +201,12 @@ public class NewTabPageLayout extends LinearLayout { +@@ -176,6 +179,12 @@ public class NewTabPageLayout extends LinearLayout { mMiddleSpacer = findViewById(R.id.ntp_middle_spacer); mFakeSearchBoxLayout = findViewById(R.id.search_box); insertSiteSectionView(); @@ -1578,7 +1596,7 @@ 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 -@@ -26,6 +26,7 @@ import org.chromium.components.browser_ui.styles.SemanticColorUtils; +@@ -25,6 +25,7 @@ import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.ViewUtils; @@ -1586,7 +1604,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP /** * The native recent tabs page. Lists recently closed tabs, open windows and tabs from the user's -@@ -99,7 +100,8 @@ public class RecentTabsPage +@@ -98,7 +99,8 @@ public class RecentTabsPage mView.addOnAttachStateChangeListener(this); @@ -1596,22 +1614,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP mBrowserControlsStateProvider = browserControlsStateProvider; mBrowserControlsStateProvider.addObserver(this); onBottomControlsHeightChanged( -@@ -111,7 +113,13 @@ public class RecentTabsPage +@@ -110,14 +112,22 @@ public class RecentTabsPage mTabStripHeightSupplier = tabStripHeightSupplier; mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0); -- if (ToolbarFeatures.isDynamicTopChromeEnabled()) { +- mTabStripHeightChangeCallback = + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + mView.setPadding( + mView.getPaddingLeft(), + 0, + mView.getPaddingRight(), + mView.getPaddingBottom()); -+ } else if (ToolbarFeatures.isDynamicTopChromeEnabled()) { - mTabStripHeightChangeCallback = - newHeight -> - mView.setPadding( -@@ -300,7 +308,7 @@ public class RecentTabsPage ++ } else { ++ mTabStripHeightChangeCallback = + newHeight -> + mView.setPadding( + mView.getPaddingLeft(), + newHeight, + mView.getPaddingRight(), + mView.getPaddingBottom()); +- mTabStripHeightSupplier.addObserver(mTabStripHeightChangeCallback); ++ mTabStripHeightSupplier.addObserver(mTabStripHeightChangeCallback); ++ } + + onUpdated(); + } +@@ -297,7 +307,7 @@ public class RecentTabsPage private void updateMargins() { final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root); @@ -1620,7 +1648,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP final int contentOffset = mBrowserControlsStateProvider.getContentOffset(); ViewGroup.MarginLayoutParams layoutParams = (ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams(); -@@ -316,9 +324,17 @@ public class RecentTabsPage +@@ -313,9 +323,17 @@ public class RecentTabsPage // If the content offset is different from the margin, we use translationY to position the // view in line with the content offset. @@ -1655,7 +1683,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import java.lang.ref.WeakReference; /** Queries the user's default search engine and shows autocomplete suggestions. */ -@@ -292,6 +297,12 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -290,6 +295,12 @@ public class SearchActivity extends AsyncInitializationActivity (SearchActivityLocationBarLayout) contentView.findViewById(R.id.search_location_bar); View anchorView = contentView.findViewById(R.id.toolbar); @@ -1668,19 +1696,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se // Update the status bar's color based on the toolbar color. Drawable anchorViewBackground = anchorView.getBackground(); -@@ -308,7 +319,7 @@ public class SearchActivity extends AsyncInitializationActivity - - mLocationBarCoordinator = - new LocationBarCoordinator( -- mSearchBox, -+ mSearchBox, anchorView, - anchorView, - mProfileSupplier, - PrivacyPreferencesManagerImpl.getInstance(), 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 -@@ -372,6 +372,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -374,6 +374,11 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (fragment instanceof INeedSnackbarManager) { ((INeedSnackbarManager)fragment).setSnackbarManager(mSnackbarManager); } @@ -1689,8 +1708,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin + ((AccessibilitySettings) fragment) + .getDelegate()).setSnackbarManager(mSnackbarManager); + } - if (fragment instanceof ClearBrowsingDataFragment) { - ((ClearBrowsingDataFragment) fragment).setSnackbarManager(mSnackbarManager); + if (fragment instanceof AccountManagementFragment) { + ((AccountManagementFragment) fragment).setSnackbarManager(mSnackbarManager); } 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 @@ -1744,7 +1763,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -200,6 +200,9 @@ import org.chromium.url.GURL; +@@ -199,6 +199,9 @@ import org.chromium.url.GURL; import java.util.List; @@ -1752,18 +1771,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar +import android.view.Gravity; + /** - * Contains logic for managing the toolbar visual component. This class manages the interactions + * 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. -@@ -866,7 +869,7 @@ public class ToolbarManager - LocationBarCoordinator locationBarCoordinator = - new LocationBarCoordinator( - mActivity.findViewById(R.id.location_bar), -- toolbarLayout, -+ toolbarLayout, controlContainer, - profileSupplier, - PrivacyPreferencesManagerImpl.getInstance(), - mLocationBarModel, -@@ -1175,6 +1178,7 @@ public class ToolbarManager +@@ -1176,6 +1179,7 @@ public class ToolbarManager // the height won't be measured by the background image. if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1771,7 +1781,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar } else if (mLayoutChangeListener == null) { mLayoutChangeListener = (view, -@@ -1188,6 +1192,7 @@ public class ToolbarManager +@@ -1189,6 +1193,7 @@ public class ToolbarManager oldBottom) -> { if (mControlContainer.getBackground() == null) { setControlContainerTopMargin(getToolbarExtraYOffset()); @@ -1779,7 +1789,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mControlContainer.removeOnLayoutChangeListener( mLayoutChangeListener); mLayoutChangeListener = null; -@@ -1363,6 +1368,13 @@ public class ToolbarManager +@@ -1365,6 +1370,13 @@ public class ToolbarManager public void setTabSwitcherFullScreenView(ViewGroup containerView) { ViewStub toolbarStub = containerView.findViewById(R.id.fullscreen_tab_switcher_toolbar_stub); @@ -1793,7 +1803,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mToolbar.setFullScreenToolbarStub(toolbarStub); } -@@ -1652,14 +1664,26 @@ public class ToolbarManager +@@ -1658,14 +1670,26 @@ public class ToolbarManager return ((LocationBarCoordinator) mLocationBar).getUrlBarTextWithoutAutocomplete(); } @@ -1804,7 +1814,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar + ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // move up the container view of the ui + // below there is the toolbar -+ mBottomRoot.setTranslationY(-mBrowserControlsSizer.getTopControlsHeight()); ++ mBottomRoot.setTranslationY(-mBrowserControlsVisibilityManager.getTopControlsHeight()); + } + } + @@ -1819,11 +1829,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mActivity, - root.findViewById(R.id.bottom_container_slot), + mBottomRoot.findViewById(R.id.bottom_container_slot), - mBrowserControlsSizer, + mBrowserControlsVisibilityManager, mIncognitoStateProvider, mScrimCoordinator, -@@ -1684,7 +1708,7 @@ public class ToolbarManager - mBrowserControlsSizer, +@@ -1688,7 +1712,7 @@ public class ToolbarManager + mBottomControlsStacker, mFullscreenManager, mEdgeToEdgeControllerSupplier, - (ScrollingBottomViewResourceFrameLayout) root, @@ -1831,7 +1841,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mTabGroupUi, mTabObscuringHandler, mOverlayPanelVisibilitySupplier, -@@ -1692,7 +1716,8 @@ public class ToolbarManager +@@ -1696,7 +1720,8 @@ public class ToolbarManager /* readAloudRestoringSupplier= */ () -> { final var readAloud = mReadAloudControllerSupplier.get(); return readAloud != null && readAloud.isRestoringPlayer(); @@ -1841,7 +1851,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar mBottomControlsCoordinatorSupplier.set(bottomControlsCoordinator); if (mBackPressManager != null) { mBackPressManager.addHandler( -@@ -2247,6 +2272,8 @@ public class ToolbarManager +@@ -2245,6 +2270,8 @@ public class ToolbarManager */ private int getToolbarExtraYOffset() { int toolbarHairlineHeight = mToolbarHairline.getHeight(); @@ -1850,7 +1860,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar final int controlContainerHeight = mControlContainer.getHeight(); // Offset can't be calculated if control container height isn't known yet. -@@ -2654,6 +2681,15 @@ public class ToolbarManager +@@ -2653,6 +2680,15 @@ public class ToolbarManager private void setControlContainerTopMargin(int margin) { final ViewGroup.MarginLayoutParams layoutParams = ((ViewGroup.MarginLayoutParams) mControlContainer.getLayoutParams()); @@ -1946,7 +1956,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" -@@ -113,8 +114,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, +@@ -115,8 +116,13 @@ void ToolbarLayer::PushResource(int toolbar_resource_id, debug_layer_->RemoveFromParent(); // Position the toolbar at the bottom of the space available for top controls. @@ -1959,21 +1969,21 @@ diff --git a/chrome/browser/android/compositor/layer/toolbar_layer.cc b/chrome/b + layer_->SetPosition( + gfx::PointF(x_offset, content_offset - layer_->bounds().height())); + } - } - int ToolbarLayer::GetIndexOfLayer(scoped_refptr layer) { + // TODO(peilinwang): update layer_ with 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 -@@ -21,6 +21,7 @@ +@@ -20,6 +20,7 @@ #include "ui/gfx/geometry/point_f.h" #include "ui/gfx/geometry/rounded_corners_f.h" #include "ui/gfx/geometry/transform.h" +#include "cc/base/features.h" - using base::android::JavaParamRef; - using base::android::JavaRef; -@@ -95,8 +96,10 @@ void TabStripSceneLayer::SetContentTree( + // Must come after all headers that specialize FromJniType() / ToJniType(). + #include "chrome/android/chrome_jni_headers/TabStripSceneLayer_jni.h" +@@ -97,8 +98,10 @@ void TabStripSceneLayer::SetContentTree( content_tree_ = content_tree; if (content_tree) { layer()->InsertChild(content_tree->layer(), 0); @@ -1986,7 +1996,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer } } } -@@ -145,7 +148,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -147,7 +150,12 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, jfloat right_padding, jfloat top_padding) { gfx::RectF content(0, y_offset, width, height); @@ -2000,7 +2010,7 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer tab_strip_layer_->SetBounds(gfx::Size(width, height)); tab_strip_layer_->SetBackgroundColor(SkColor4f::FromColor(background_color)); -@@ -157,7 +165,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, +@@ -159,7 +167,7 @@ void TabStripSceneLayer::UpdateTabStripLayer(JNIEnv* env, group_indicator_layer_->SetPosition(gfx::PointF(0, top_padding)); // Content tree should not be affected by tab strip scene layer visibility. @@ -2009,6 +2019,18 @@ diff --git a/chrome/browser/android/compositor/scene_layer/tab_strip_scene_layer 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 +@@ -106,7 +106,7 @@ public class BottomControlsStacker implements BrowserControlsStateProvider.Obser + /** + * @return {@link BrowserControlsStateProvider} instance in the current Activity. + */ +- public BrowserControlsStateProvider getBrowserControls() { ++ public BrowserControlsSizer getBrowserControls() { + return mBrowserControlsSizer; + } + diff --git a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java --- a/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java +++ b/chrome/browser/browser_controls/android/java/src/org/chromium/chrome/browser/browser_controls/BrowserControlsMarginSupplier.java @@ -2034,7 +2056,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 -@@ -64,6 +64,12 @@ public interface BrowserControlsStateProvider { +@@ -81,6 +81,12 @@ public interface BrowserControlsStateProvider { */ int getTopControlsHeight(); @@ -2080,8 +2102,8 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse +#include "cc/base/features.h" #include "chrome/browser/browser_features.h" #include "chrome/browser/flags/android/chrome_session_state.h" - #include "chrome/browser/flags/jni_headers/ChromeFeatureMap_jni.h" -@@ -237,6 +238,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { + #include "chrome/browser/notifications/chime/android/features.h" +@@ -250,6 +251,8 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kMultiInstanceApplicationStatusCleanup, &kNavBarColorMatchesTabBackground, &kNewTabSearchEngineUrlAndroid, @@ -2093,7 +2115,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 -@@ -352,6 +352,10 @@ public abstract class ChromeFeatureList { +@@ -361,6 +361,10 @@ public abstract class ChromeFeatureList { "NavBarColorMatchesTabBackground"; public static final String NEW_TAB_SEARCH_ENGINE_URL_ANDROID = "NewTabSearchEngineUrlAndroid"; public static final String NOTIFICATION_ONE_TAP_UNSUBSCRIBE = "NotificationOneTapUnsubscribe"; @@ -2104,8 +2126,8 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; -@@ -620,6 +624,10 @@ public abstract class ChromeFeatureList { - newCachedFlag(PRICE_INSIGHTS, false); +@@ -641,6 +645,10 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sPriceInsights = newCachedFlag(PRICE_INSIGHTS, false); public static final CachedFlag sPrivacyGuideAndroid3 = newCachedFlag(PRIVACY_GUIDE_ANDROID_3, false); + public static final CachedFlag sDisableToolbarSwipeUp = @@ -2115,7 +2137,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sPrivacyGuidePreloadAndroid = newCachedFlag(PRIVACY_GUIDE_PRELOAD_ANDROID, false); public static final CachedFlag sOptimizationGuidePushNotifications = -@@ -743,6 +751,8 @@ public abstract class ChromeFeatureList { +@@ -767,6 +775,8 @@ public abstract class ChromeFeatureList { sPrivacyGuideAndroid3, sPrivacyGuidePreloadAndroid, sOptimizationGuidePushNotifications, @@ -2127,7 +2149,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f 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 -@@ -2285,7 +2285,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2383,7 +2383,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, #if BUILDFLAG(IS_ANDROID) registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault, @@ -2275,78 +2297,26 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch ContextThemeWrapper wrapper = new ContextThemeWrapper(mContext, R.style.OverflowMenuThemeOverlay); -diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/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 -@@ -90,6 +90,7 @@ public class LocationBarCoordinator - private StatusCoordinator mStatusCoordinator; - private WindowDelegate mWindowDelegate; - private WindowAndroid mWindowAndroid; -+ private View mContainerView; - private LocationBarMediator mLocationBarMediator; - private View mUrlBar; - private View mDeleteButton; -@@ -148,7 +149,7 @@ public class LocationBarCoordinator - */ - public LocationBarCoordinator( - View locationBarLayout, -- View autocompleteAnchorView, -+ View autocompleteAnchorView, View containerView, - ObservableSupplier profileObservableSupplier, - PrivacyPreferencesManager privacyPreferencesManager, - LocationBarDataProvider locationBarDataProvider, -@@ -187,6 +188,7 @@ public class LocationBarCoordinator - mWindowAndroid = windowAndroid; - mActivityLifecycleDispatcher = activityLifecycleDispatcher; - mActivityLifecycleDispatcher.register(this); -+ mContainerView = containerView; - Context context = mLocationBarLayout.getContext(); - OneshotSupplierImpl templateUrlServiceSupplier = - new OneshotSupplierImpl<>(); -@@ -197,7 +199,8 @@ public class LocationBarCoordinator - autocompleteAnchorView, - mLocationBarLayout, - uiOverrides.isForcedPhoneStyleOmnibox(), -- baseChromeLayout); -+ baseChromeLayout, -+ mContainerView); - - mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar); - // TODO(crbug.com/40733049): Inject LocaleManager instance to LocationBarCoordinator instead diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java -@@ -22,6 +22,7 @@ import org.chromium.base.Callback; - import org.chromium.base.supplier.ObservableSupplierImpl; +@@ -15,6 +15,7 @@ import android.view.WindowInsets; + import androidx.annotation.NonNull; + import androidx.annotation.Nullable; + import androidx.core.graphics.Insets; ++import androidx.core.view.ViewCompat; + import androidx.core.view.WindowInsetsCompat; + + import org.chromium.base.BuildInfo; +@@ -23,6 +24,7 @@ import org.chromium.base.supplier.ObservableSupplierImpl; + import org.chromium.base.supplier.Supplier; 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; -@@ -42,6 +43,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl - private final @NonNull WindowAndroid mWindowAndroid; - private final @NonNull WindowDelegate mWindowDelegate; - private final @NonNull View mAnchorView; -+ private final @NonNull View mContainerView; - private final @NonNull View mAlignmentView; - private final boolean mForcePhoneStyleOmnibox; - private final @NonNull Context mContext; -@@ -74,10 +76,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl - @NonNull View anchorView, - @NonNull View alignmentView, - boolean forcePhoneStyleOmnibox, -- @Nullable View baseChromeLayout) { -+ @Nullable View baseChromeLayout, -+ @NonNull View containerView) { - mWindowAndroid = windowAndroid; - mWindowDelegate = windowDelegate; - mAnchorView = anchorView; -+ mContainerView = containerView; - mAlignmentView = alignmentView; - mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox; - mContext = mAnchorView.getContext(); -@@ -99,6 +103,16 @@ class OmniboxSuggestionsDropdownEmbedderImpl +@@ -97,6 +99,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl mOmniboxAlignmentSupplier.removeObserver(obs); } @@ -2354,34 +2324,46 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + public View getAnchorView() { + return mAnchorView; + } -+ -+ @Override -+ public View getAnchorContainerView() { -+ return mContainerView; -+ } + @Nullable @Override public OmniboxAlignment getCurrentAlignment() { -@@ -117,9 +131,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl - mAnchorView.addOnLayoutChangeListener(this); - mAlignmentView.addOnLayoutChangeListener(this); - mAnchorView.getViewTreeObserver().addOnGlobalLayoutListener(this); -- mDeferredIMEWindowInsetApplicationCallback = -- new DeferredIMEWindowInsetApplicationCallback(this::recalculateOmniboxAlignment); -- mDeferredIMEWindowInsetApplicationCallback.attach(mWindowAndroid); -+ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ mDeferredIMEWindowInsetApplicationCallback = -+ new DeferredIMEWindowInsetApplicationCallback(this::recalculateOmniboxAlignment); -+ mDeferredIMEWindowInsetApplicationCallback.attach(mWindowAndroid); +@@ -121,6 +128,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl + + @Override + public void onDetachedFromWindow() { ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ recalculateOmniboxAlignment(); + } - onConfigurationChanged(mContext.getResources().getConfiguration()); - recalculateOmniboxAlignment(); - } + mAnchorView.removeOnLayoutChangeListener(this); + mAlignmentView.removeOnLayoutChangeListener(this); + mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this); +@@ -211,6 +221,8 @@ class OmniboxSuggestionsDropdownEmbedderImpl + ViewUtils.getRelativeLayoutPosition(baseRelativeLayout, mAnchorView, mPositionArray); + + int top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentViewTopPadding; ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) ++ top -= mPositionArray[1]; + int left; + int width; + int paddingLeft; +@@ -277,6 +289,12 @@ class OmniboxSuggestionsDropdownEmbedderImpl + : contentView.getMeasuredHeight() - keyboardHeight; + int height = Math.min(windowSpace, contentSpace) - top; + ++ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { ++ ViewCompat.setPaddingRelative( ++ contentView, 0, 0, 0, keyboardHeight); ++ top = 0; ++ } ++ + // TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to + // the previous alignment value. + OmniboxAlignment omniboxAlignment = 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 -@@ -60,6 +60,7 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; +@@ -63,6 +63,7 @@ import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.MVCListAdapter; import org.chromium.ui.modelutil.MVCListAdapter.ModelList; import org.chromium.ui.modelutil.PropertyModel; @@ -2389,30 +2371,25 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; -@@ -76,6 +77,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC +@@ -81,6 +82,7 @@ public class AutocompleteCoordinator private @Nullable OmniboxSuggestionsDropdown mDropdown; private @NonNull ObserverList mScrollListenerList = new ObserverList<>(); + private final @NonNull OmniboxSuggestionsDropdownEmbedder mDropdownEmbedder; - public AutocompleteCoordinator( - @NonNull ViewGroup parent, -@@ -102,6 +104,7 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC - PropertyModel listModel = new PropertyModel(SuggestionListProperties.ALL_KEYS); + /** An observer watching for changes to the visual state of the omnibox suggestions. */ + public interface OmniboxSuggestionsVisualStateObserver { +@@ -117,6 +119,7 @@ public class AutocompleteCoordinator + Context context = parent.getContext(); + ModelList listItems = new ModelList(); - + mDropdownEmbedder = dropdownEmbedder; - listModel.set(SuggestionListProperties.EMBEDDER, dropdownEmbedder); - listModel.set(SuggestionListProperties.VISIBLE, false); - listModel.set(SuggestionListProperties.DRAW_OVER_ANCHOR, false); -@@ -194,9 +197,20 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC - private void onAsyncInflationComplete(ViewGroup container) { - OmniboxSuggestionsDropdown dropdown = - new OmniboxSuggestionsDropdown( -- context, mRecycledViewPool, forcePhoneStyleOmnibox); -+ context, mRecycledViewPool, forcePhoneStyleOmnibox, -+ mDropdownEmbedder); + PropertyModel listModel = + new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS) + .with(SuggestionListProperties.EMBEDDER, dropdownEmbedder) +@@ -233,6 +236,16 @@ public class AutocompleteCoordinator + dropdown.forcePhoneStyleOmnibox(forcePhoneStyleOmnibox); dropdown.setAdapter(mAdapter); + if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // make margins works @@ -2424,13 +2401,13 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + ((ViewGroup.MarginLayoutParams) params).bottomMargin = + mDropdownEmbedder.getAnchorView().getMeasuredHeight(); + } - + mRecycledViewPool.ifPresent(p -> dropdown.setRecycledViewPool(p)); mHolder = new SuggestionListViewHolder(container, 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 -@@ -69,6 +69,8 @@ import org.chromium.ui.modelutil.PropertyModel; +@@ -68,6 +68,8 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.mojom.WindowOpenDisposition; import org.chromium.url.GURL; @@ -2439,7 +2416,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.List; -@@ -1127,7 +1129,9 @@ class AutocompleteMediator +@@ -1151,7 +1153,9 @@ class AutocompleteMediator @Override public void onSuggestionDropdownScroll() { mSuggestionsListScrolled = true; @@ -2477,9 +2454,9 @@ 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/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 -@@ -41,6 +41,9 @@ import org.chromium.ui.KeyboardVisibilityDelegate; - import org.chromium.ui.base.DeviceFormFactor; - import org.chromium.ui.base.ViewUtils; +@@ -44,6 +44,9 @@ import org.chromium.ui.base.ViewUtils; + + import java.util.Optional; +import android.graphics.Rect; +import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -2487,17 +2464,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /** A widget for showing a list of omnibox suggestions. */ public class OmniboxSuggestionsDropdown extends RecyclerView { /** -@@ -220,7 +223,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - public OmniboxSuggestionsDropdown( - @NonNull Context context, - RecycledViewPool recycledViewPool, -- boolean forcePhoneStyleOmnibox) { -+ boolean forcePhoneStyleOmnibox, -+ @NonNull OmniboxSuggestionsDropdownEmbedder embedder) { - super(context, null, android.R.attr.dropDownListViewStyle); - setFocusable(true); - setFocusableInTouchMode(true); -@@ -232,7 +236,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -242,7 +245,6 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { setItemAnimator(null); mLayoutScrollListener = new SuggestionLayoutScrollListener(context); @@ -2505,7 +2472,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mSelectionController = new RecyclerViewSelectionController(mLayoutScrollListener); addOnChildAttachStateChangeListener(mSelectionController); -@@ -241,6 +244,20 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { +@@ -251,6 +253,13 @@ 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); @@ -2513,51 +2480,12 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow + // reverse the layout so that the items are at the bottom (in reverse order) + // and anchored to the bottom edge + mLayoutScrollListener.setReverseLayout(true); -+ -+ if (!embedder.isTablet()) { -+ ViewGroup.MarginLayoutParams embedderParams = (ViewGroup.MarginLayoutParams) -+ embedder.getAnchorContainerView().getLayoutParams(); -+ paddingBottom = resources.getDimensionPixelOffset(R.dimen.toolbar_height_no_shadow) + -+ embedderParams.bottomMargin; -+ } + paddingTop = 0; + } + setLayoutManager(mLayoutScrollListener); ViewCompat.setPaddingRelative(this, 0, paddingTop, 0, paddingBottom); - mStandardBgColor = -@@ -416,8 +433,16 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - TimingMetric metric = OmniboxMetrics.recordSuggestionListMeasureTime(); - TimingMetric metric2 = OmniboxMetrics.recordSuggestionListMeasureWallTime()) { - OmniboxAlignment omniboxAlignment = mEmbedder.getCurrentAlignment(); -- maybeUpdateLayoutParams(omniboxAlignment.top); -- int availableViewportHeight = omniboxAlignment.height; -+ int top = omniboxAlignment.top; -+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { -+ top = 0; -+ } -+ maybeUpdateLayoutParams(top); -+ boolean useAlignmentSpecifiedHeight = -+ !ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled(); -+ int availableViewportHeight = useAlignmentSpecifiedHeight -+ ? omniboxAlignment.height -+ : calculateAvailableViewportHeight() - top; - int desiredWidth = omniboxAlignment.width; - adjustHorizontalPosition(); - notifyObserversIfViewportHeightChanged(availableViewportHeight); -@@ -437,6 +462,12 @@ public class OmniboxSuggestionsDropdown extends RecyclerView { - } - } - -+ private int calculateAvailableViewportHeight() { -+ Rect mTempRect = new Rect(); -+ mEmbedder.getWindowDelegate().getWindowVisibleDisplayFrame(mTempRect); -+ return mTempRect.height(); -+ } -+ - private void maybeUpdateLayoutParams(int topMargin) { - // Update the layout params to ensure the parent correctly positions the suggestions - // under the anchor view. + if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) { 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 @@ -2569,24 +2497,20 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import androidx.annotation.NonNull; import androidx.annotation.Nullable; -@@ -110,6 +111,13 @@ public interface OmniboxSuggestionsDropdownEmbedder { +@@ -109,6 +110,9 @@ public interface OmniboxSuggestionsDropdownEmbedder { @NonNull OmniboxAlignment getCurrentAlignment(); + @NonNull + View getAnchorView(); + -+ /** Return the container view the suggestion list should be drawn in. */ -+ @NonNull -+ View getAnchorContainerView(); -+ - /** Return the delegate used to interact with the Window. */ - @NonNull - WindowDelegate getWindowDelegate(); + /** Return whether the suggestions are being rendered in the tablet UI. */ + boolean isTablet(); + 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 -@@ -1664,6 +1664,12 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1696,6 +1696,12 @@ Your Google account may have other forms of browsing history like searches and a Force Tablet Mode @@ -2602,7 +2526,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 -@@ -178,6 +178,7 @@ android_library("java") { +@@ -177,6 +177,7 @@ android_library("java") { "//content/public/android:content_java", "//third_party/android_deps:material_design_java", "//third_party/androidx:androidx_annotation_annotation_experimental_java", @@ -2674,7 +2598,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * The root coordinator for the bottom controls component. This component is intended for use with -@@ -73,6 +75,8 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -72,6 +74,8 @@ public class BottomControlsCoordinator implements BackPressHandler { * @param constraintsSupplier Used to access current constraints of the browser controls. * @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently * restoring its player, e.g. after theme change. @@ -2683,7 +2607,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow */ @SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup. public BottomControlsCoordinator( -@@ -88,7 +92,9 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -87,7 +91,9 @@ public class BottomControlsCoordinator implements BackPressHandler { TabObscuringHandler tabObscuringHandler, ObservableSupplier overlayPanelVisibilitySupplier, ObservableSupplier constraintsSupplier, @@ -2694,7 +2618,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mRootFrameLayout = root; root.setConstraintsSupplier(constraintsSupplier); PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS); -@@ -147,7 +153,8 @@ public class BottomControlsCoordinator implements BackPressHandler { +@@ -146,7 +152,8 @@ public class BottomControlsCoordinator implements BackPressHandler { mMediator.setBottomControlsColor(color); } }, @@ -2707,7 +2631,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsMediator.java -@@ -22,6 +22,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeSupplier.ChangeObse +@@ -25,6 +25,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeSupplier.ChangeObse import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.modelutil.PropertyModel; @@ -2715,7 +2639,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * This class is responsible for reacting to events from the outside world, interacting with other -@@ -143,6 +144,12 @@ class BottomControlsMediator +@@ -148,6 +149,12 @@ class BottomControlsMediator } void setBottomControlsVisible(boolean visible) { @@ -2723,32 +2647,32 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + && mIsBottomControlsVisible == false + && ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // always show the toolbar if the bottom controls are visible, so as not to leave the hole below. -+ mBrowserControlsSizer.getBrowserVisibilityDelegate().showControlsTransient(); ++ mBottomControlsStacker.getBrowserControls().getBrowserVisibilityDelegate().showControlsTransient(); + } mIsBottomControlsVisible = visible; updateCompositedViewVisibility(); updateAndroidViewVisibility(); -@@ -175,6 +182,7 @@ class BottomControlsMediator +@@ -181,6 +188,7 @@ class BottomControlsMediator int bottomOffset, int bottomControlsMinHeightOffset, boolean needsAnimate) { + mModel.set(BottomControlsProperties.TOPCONTROLSMINHEIGHT_OFFSET, topControlsMinHeightOffset); - int minHeight = mBrowserControlsSizer.getBottomControlsMinHeight(); + int minHeight = getBrowserControls().getBottomControlsMinHeight(); mModel.set(BottomControlsProperties.Y_OFFSET, bottomOffset - minHeight); -@@ -288,10 +296,12 @@ class BottomControlsMediator +@@ -296,10 +304,12 @@ class BottomControlsMediator && !mIsInSwipeLayout - && mBrowserControlsSizer.getBottomControlOffset() == 0; + && getBrowserControls().getBottomControlOffset() == 0; if (visible) { - // Translate view so that its bottom is aligned with browser controls min height. - mModel.set( - BottomControlsProperties.ANDROID_VIEW_TRANSLATE_Y, -- -mBrowserControlsSizer.getBottomControlsMinHeight()); +- -getBrowserControls().getBottomControlsMinHeight()); + if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) { + // Translate view so that its bottom is aligned with browser controls min height. + mModel.set( + BottomControlsProperties.ANDROID_VIEW_TRANSLATE_Y, -+ -mBrowserControlsSizer.getBottomControlsMinHeight()); ++ -getBrowserControls().getBottomControlsMinHeight()); + } } mModel.set(BottomControlsProperties.ANDROID_VIEW_VISIBLE, visible); @@ -2903,9 +2827,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/TopToolbarOverlayProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java -@@ -46,6 +46,12 @@ public class TopToolbarOverlayProperties { - /** The current y offset of the top toolbar. */ - public static final WritableFloatPropertyKey CONTENT_OFFSET = new WritableFloatPropertyKey(); +@@ -51,6 +51,12 @@ public class TopToolbarOverlayProperties { + public static final WritableObjectPropertyKey TOOLBAR_OFFSET_TAG = + new WritableObjectPropertyKey<>(); + /** The current height of the main visible view. */ + public static final WritableFloatPropertyKey VIEWPORT_HEIGHT = new WritableFloatPropertyKey(); @@ -2916,17 +2840,17 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow public static final PropertyKey[] ALL_KEYS = new PropertyKey[] { ANONYMIZE, -@@ -58,5 +64,5 @@ public class TopToolbarOverlayProperties { - VISIBLE, +@@ -64,5 +70,5 @@ public class TopToolbarOverlayProperties { X_OFFSET, - CONTENT_OFFSET + CONTENT_OFFSET, + TOOLBAR_OFFSET_TAG - }; + , VIEWPORT_HEIGHT, TOOLBAR_HEIGHT}; } 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 -@@ -14,6 +14,7 @@ import org.chromium.components.browser_ui.widget.ClipDrawableProgressBar.Drawing +@@ -15,6 +15,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; @@ -2934,7 +2858,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** A SceneLayer to render the top toolbar. This is the "view" piece of the top toolbar overlay. */ @JNINamespace("android") -@@ -39,6 +40,13 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { +@@ -40,6 +41,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; @@ -2948,7 +2872,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow TopToolbarSceneLayerJni.get() .updateToolbarLayer( mNativePtr, -@@ -49,7 +57,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { +@@ -50,7 +58,7 @@ class TopToolbarSceneLayer extends SceneOverlayLayer { model.get(TopToolbarOverlayProperties.URL_BAR_RESOURCE_ID), model.get(TopToolbarOverlayProperties.URL_BAR_COLOR), model.get(TopToolbarOverlayProperties.X_OFFSET), @@ -2956,7 +2880,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow + offsetY, model.get(TopToolbarOverlayProperties.SHOW_SHADOW), model.get(TopToolbarOverlayProperties.VISIBLE), - model.get(TopToolbarOverlayProperties.ANONYMIZE)); + model.get(TopToolbarOverlayProperties.ANONYMIZE), diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml @@ -3006,9 +2930,9 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/ #include "base/threading/scoped_blocking_call.h" +#include "cc/base/features.h" #include "cc/base/math_util.h" + #include "cc/input/browser_controls_offset_tags_info.h" #include "cc/slim/layer.h" - #include "components/viz/common/features.h" -@@ -854,6 +855,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation( +@@ -857,6 +858,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 098fb880..d220332e 100644 --- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch +++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -77,6 +77,19 @@ found in the LICENSE file. +@@ -82,6 +82,19 @@ found in the LICENSE file. android:key="secure_dns" android:title="@string/settings_secure_dns_title" android:fragment="org.chromium.chrome.browser.privacy.secure_dns.SecureDnsSettings" /> @@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java -@@ -55,6 +55,14 @@ import org.chromium.components.user_prefs.UserPrefs; +@@ -51,6 +51,14 @@ import org.chromium.components.user_prefs.UserPrefs; import org.chromium.ui.text.NoUnderlineClickableSpan; import org.chromium.ui.text.SpanApplier; @@ -51,8 +51,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + /** Fragment to keep track of the all the privacy related preferences. */ public class PrivacySettings extends ChromeBaseSettingsFragment - implements Preference.OnPreferenceChangeListener { -@@ -71,6 +79,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment + implements Preference.OnPreferenceChangeListener, FragmentSettingsLauncher { +@@ -67,6 +75,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_INCOGNITO_LOCK = "incognito_lock"; private static final String PREF_THIRD_PARTY_COOKIES = "third_party_cookies"; private static final String PREF_TRACKING_PROTECTION = "tracking_protection"; @@ -66,10 +66,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting + ChromeSharedPreferences.getInstance(); + + private ManagedPreferenceDelegate mManagedPreferenceDelegate; - private static final String PREF_IP_PROTECTION = "ip_protection"; + @VisibleForTesting static final String PREF_FP_PROTECTION = "fp_protection"; + @VisibleForTesting static final String PREF_IP_PROTECTION = "ip_protection"; @VisibleForTesting static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data"; - -@@ -158,6 +176,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -159,6 +177,16 @@ public class PrivacySettings extends ChromeBaseSettingsFragment setHasOptionsMenu(true); @@ -86,7 +86,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting ChromeSwitchPreference canMakePaymentPref = (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT); canMakePaymentPref.setOnPreferenceChangeListener(this); -@@ -274,6 +302,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -294,6 +322,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment } else if (PREF_HTTPS_FIRST_MODE.equals(key)) { UserPrefs.get(getProfile()) .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue); @@ -96,7 +96,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting } return true; } -@@ -286,6 +317,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -306,6 +337,9 @@ public class PrivacySettings extends ChromeBaseSettingsFragment /** Updates the preferences. */ public void updatePreferences() { @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -459,6 +459,10 @@ CHAR_LIMIT guidelines: +@@ -450,6 +450,10 @@ For more settings that use data to improve your Chrome experience, go to diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch index bf9bc1d4..526369f6 100644 --- a/build/patches/Multiple-fingerprinting-mitigations.patch +++ b/build/patches/Multiple-fingerprinting-mitigations.patch @@ -43,17 +43,17 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../renderer/core/html/canvas/text_metrics.h | 2 + .../renderer/core/svg/svg_graphics_element.cc | 2 + .../core/svg/svg_text_content_element.cc | 28 +++- - .../canvas2d/base_rendering_context_2d.cc | 24 ++- + .../canvas2d/base_rendering_context_2d.cc | 25 ++- third_party/blink/renderer/platform/BUILD.gn | 5 +- .../platform/exported/web_runtime_features.cc | 13 ++ - .../platform/graphics/image_data_buffer.cc | 7 + + .../platform/graphics/image_data_buffer.cc | 8 + .../platform/graphics/static_bitmap_image.cc | 155 ++++++++++++++++++ .../platform/graphics/static_bitmap_image.h | 2 + .../platform/runtime_enabled_features.json5 | 9 + third_party/ungoogled/BUILD.gn | 10 ++ third_party/ungoogled/ungoogled_switches.cc | 18 ++ third_party/ungoogled/ungoogled_switches.h | 18 ++ - 27 files changed, 391 insertions(+), 8 deletions(-) + 27 files changed, 393 insertions(+), 8 deletions(-) create mode 100755 cromite_flags/chrome/browser/about_flags_cc/Multiple-fingerprinting-mitigations.inc create mode 100644 third_party/ungoogled/BUILD.gn create mode 100644 third_party/ungoogled/ungoogled_switches.cc @@ -62,7 +62,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 -@@ -2588,6 +2588,7 @@ static_library("browser") { +@@ -2555,6 +2555,7 @@ static_library("browser") { "//services/device/public/cpp:device_features", "//services/device/public/cpp/geolocation", "//services/device/public/cpp/usb", @@ -85,7 +85,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn -@@ -252,6 +252,7 @@ source_set("browser") { +@@ -254,6 +254,7 @@ source_set("browser") { "//third_party/libyuv", "//third_party/re2", "//third_party/sqlite", @@ -96,7 +96,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 -@@ -214,6 +214,7 @@ +@@ -215,6 +215,7 @@ #include "url/gurl.h" #include "url/origin.h" @@ -104,7 +104,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/android/java_interfaces_impl.h" -@@ -3421,6 +3422,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3471,6 +3472,9 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kDisableBreakpad, switches::kDisableDatabases, switches::kDisableFileSystem, @@ -137,7 +137,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features. #if BUILDFLAG(IS_ANDROID) #include "base/android/build_info.h" #endif -@@ -539,6 +541,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { +@@ -543,6 +545,12 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) { // as a last resort. void SetCustomizedRuntimeFeaturesFromCombinedArgs( const base::CommandLine& command_line) { @@ -195,7 +195,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink #include "base/notreached.h" #include "base/ranges/algorithm.h" #include "base/task/single_thread_task_runner.h" -@@ -909,6 +910,17 @@ Document::Document(const DocumentInit& initializer, +@@ -910,6 +911,17 @@ Document::Document(const DocumentInit& initializer, TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this), TRACE_EVENT_FLAG_FLOW_OUT); DCHECK(agent_); @@ -213,7 +213,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(); -@@ -2494,6 +2506,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { +@@ -2491,6 +2503,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() { #endif } @@ -231,7 +231,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/renderer/core/dom/document.h --- a/third_party/blink/renderer/core/dom/document.h +++ b/third_party/blink/renderer/core/dom/document.h -@@ -548,6 +548,10 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -549,6 +549,10 @@ class CORE_EXPORT Document : public ContainerNode, has_xml_declaration_ = has_xml_declaration ? 1 : 0; } @@ -242,7 +242,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ AtomicString visibilityState() const; bool IsPageVisible() const; bool hidden() const; -@@ -2548,6 +2552,9 @@ class CORE_EXPORT Document : public ContainerNode, +@@ -2557,6 +2561,9 @@ class CORE_EXPORT Document : public ContainerNode, base::ElapsedTimer start_time_; @@ -255,7 +255,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc -@@ -2406,6 +2406,7 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2399,6 +2399,7 @@ void Element::ClientQuads(Vector& quads) const { quads.push_back(element_layout_object->LocalToAbsoluteQuad( gfx::QuadF(element_layout_object->ObjectBoundingBox()))); } @@ -263,7 +263,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ return; } -@@ -2414,6 +2415,10 @@ void Element::ClientQuads(Vector& quads) const { +@@ -2407,6 +2408,10 @@ void Element::ClientQuads(Vector& quads) const { element_layout_object->IsBR()) { element_layout_object->AbsoluteQuads(quads); } @@ -274,7 +274,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/ } DOMRectList* Element::getClientRects() { -@@ -2459,6 +2464,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { +@@ -2452,6 +2457,9 @@ gfx::RectF Element::GetBoundingClientRectNoLifecycleUpdate() const { DCHECK(element_layout_object); GetDocument().AdjustRectForScrollAndAbsoluteZoom(result, *element_layout_object); @@ -338,7 +338,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creat diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc --- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc -@@ -69,6 +69,24 @@ TextMetrics::TextMetrics(const Font& font, +@@ -74,6 +74,24 @@ TextMetrics::TextMetrics(const Font& font, Update(font, direction, baseline, align, text); } @@ -366,7 +366,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h --- a/third_party/blink/renderer/core/html/canvas/text_metrics.h +++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h -@@ -66,6 +66,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { +@@ -72,6 +72,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable { void Trace(Visitor*) const override; @@ -469,18 +469,19 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc --- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc +++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc -@@ -90,6 +90,10 @@ - #include "ui/gfx/geometry/quad_f.h" +@@ -184,6 +184,11 @@ + #include "ui/gfx/geometry/size.h" + #include "ui/gfx/geometry/size_f.h" #include "ui/gfx/geometry/skia_conversions.h" - ++ +#include "third_party/blink/renderer/core/offscreencanvas/offscreen_canvas.h" +#include "third_party/blink/renderer/core/frame/local_dom_window.h" +#include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" + - namespace blink { - - BASE_FEATURE(kDisableCanvasOverdrawOptimization, -@@ -2601,6 +2605,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( + #include "ui/gfx/geometry/vector2d.h" + #include "ui/gfx/geometry/vector2d_f.h" + #include "v8/include/v8-local-handle.h" +@@ -2740,6 +2745,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal( snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds(); DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh))); } @@ -491,7 +492,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c } return image_data; -@@ -3279,8 +3287,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { +@@ -3419,8 +3428,22 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) { const CanvasRenderingContext2DState& state = GetState(); TextDirection direction = ToTextDirection(state.GetDirection(), canvas); @@ -518,7 +519,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn --- a/third_party/blink/renderer/platform/BUILD.gn +++ b/third_party/blink/renderer/platform/BUILD.gn -@@ -1685,7 +1685,9 @@ component("platform") { +@@ -1690,7 +1690,9 @@ component("platform") { "//third_party/blink/renderer:non_test_config", ] @@ -529,7 +530,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re allow_circular_includes_from = [ "//third_party/blink/renderer/platform/blob", -@@ -1763,6 +1765,7 @@ component("platform") { +@@ -1768,6 +1770,7 @@ component("platform") { "//third_party/blink/public/strings", "//third_party/blink/renderer/platform/wtf", "//third_party/ced", @@ -561,7 +562,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc --- a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc +++ b/third_party/blink/renderer/platform/graphics/image_data_buffer.cc -@@ -36,6 +36,8 @@ +@@ -36,8 +36,11 @@ #include "base/compiler_specific.h" #include "base/memory/ptr_util.h" @@ -569,8 +570,11 @@ diff --git a/third_party/blink/renderer/platform/graphics/image_data_buffer.cc b +#include "base/logging.h" #include "third_party/blink/renderer/platform/graphics/static_bitmap_image.h" #include "third_party/blink/renderer/platform/image-encoders/image_encoder.h" - #include "third_party/blink/renderer/platform/runtime_enabled_features.h" -@@ -146,6 +148,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type, ++#include "third_party/blink/renderer/platform/runtime_enabled_features.h" + #include "third_party/blink/renderer/platform/wtf/text/base64.h" + #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + #include "third_party/blink/renderer/platform/wtf/vector.h" +@@ -145,6 +148,11 @@ bool ImageDataBuffer::EncodeImageInternal(const ImageEncodingMimeType mime_type, const SkPixmap& pixmap) const { DCHECK(is_valid_); @@ -774,7 +778,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 -@@ -2673,6 +2673,15 @@ +@@ -2693,6 +2693,15 @@ status: {"Mac": "test", "default": "stable"}, base_feature: "none", }, diff --git a/build/patches/Never-fetch-popular-sites.patch b/build/patches/Never-fetch-popular-sites.patch index 595474e4..8f049101 100644 --- a/build/patches/Never-fetch-popular-sites.patch +++ b/build/patches/Never-fetch-popular-sites.patch @@ -18,7 +18,7 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p #if BUILDFLAG(IS_IOS) const char kIOSDefaultPopularSitesLocaleUS[] = "https://www.gstatic.com/chrome/ntp/ios/" -@@ -330,7 +329,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download, +@@ -343,7 +342,12 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download, DCHECK(!callback_); callback_ = std::move(callback); @@ -32,7 +32,7 @@ diff --git a/components/ntp_tiles/popular_sites_impl.cc b/components/ntp_tiles/p prefs_->GetInt64(prefs::kPopularSitesLastDownloadPref)); const base::TimeDelta time_since_last_download = base::Time::Now() - last_download_time; -@@ -347,7 +351,7 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download, +@@ -360,7 +364,7 @@ bool PopularSitesImpl::MaybeStartFetch(bool force_download, (time_since_last_download > redownload_interval) || url_changed) { FetchPopularSites(); return true; diff --git a/build/patches/Never-treat-Proguard-warnings-as-errors.patch b/build/patches/Never-treat-Proguard-warnings-as-errors.patch index 4b975a23..e9c44f29 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 -@@ -1264,9 +1264,9 @@ if (enable_java_templates) { +@@ -1267,9 +1267,9 @@ if (enable_java_templates) { _source_file_template, "--proguard-configs=@FileArg($_rebased_build_config:deps_info:proguard_all_configs)", ] diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch index 89df3cd7..bffc7e37 100644 --- a/build/patches/OpenSearch-miscellaneous.patch +++ b/build/patches/OpenSearch-miscellaneous.patch @@ -252,7 +252,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 -@@ -354,7 +354,10 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -357,7 +357,10 @@ class TemplateURLService final : public WebDataServiceConsumer, void UpdateProviderFavicons(const GURL& potential_search_url, const GURL& favicon_url); @@ -264,7 +264,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc // regardless of |url| if the default search provider is managed by policy or // controlled by an extension. bool CanMakeDefault(const TemplateURL* url) const; -@@ -763,9 +766,6 @@ class TemplateURLService final : public WebDataServiceConsumer, +@@ -766,9 +769,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 da6c1e13..363103ac 100644 --- a/build/patches/Override-Navigator-Language.patch +++ b/build/patches/Override-Navigator-Language.patch @@ -52,7 +52,7 @@ 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 -@@ -70,6 +70,7 @@ +@@ -71,6 +71,7 @@ #include "components/discardable_memory/public/mojom/discardable_shared_memory_manager.mojom.h" #include "components/discardable_memory/service/discardable_shared_memory_manager.h" #include "components/metrics/histogram_controller.h" @@ -60,7 +60,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content #include "components/metrics/single_sample_metrics.h" #include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h" #include "components/services/storage/public/cpp/buckets/bucket_id.h" -@@ -3334,8 +3335,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine( +@@ -3380,8 +3381,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 d672189c..3926fdd5 100644 --- a/build/patches/Partition-Blink-memory-cache.patch +++ b/build/patches/Partition-Blink-memory-cache.patch @@ -18,11 +18,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../core/inspector/inspector_network_agent.cc | 2 +- .../core/inspector/inspector_page_agent.cc | 4 ++-- .../renderer/core/loader/image_loader.cc | 3 ++- - .../platform/loader/fetch/memory_cache.cc | 7 ++----- - .../platform/loader/fetch/memory_cache.h | 4 ++-- + .../platform/loader/fetch/memory_cache.cc | 8 ++------ + .../platform/loader/fetch/memory_cache.h | 5 ++--- .../platform/loader/fetch/resource_fetcher.cc | 19 +++++++++++++------ .../platform/loader/fetch/resource_fetcher.h | 3 ++- - 8 files changed, 25 insertions(+), 19 deletions(-) + 8 files changed, 25 insertions(+), 21 deletions(-) diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc @@ -39,7 +39,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 -@@ -2406,7 +2406,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, +@@ -2436,7 +2436,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document, Resource* cached_resource = document->Fetcher()->CachedResource(url); if (!cached_resource) { cached_resource = MemoryCache::Get()->ResourceForURL( @@ -66,7 +66,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 -@@ -743,7 +743,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { +@@ -705,7 +705,8 @@ bool ImageLoader::ShouldLoadImmediately(const KURL& url) const { // content when style recalc is over and DOM mutation is allowed again. if (!url.IsNull()) { Resource* resource = MemoryCache::Get()->ResourceForURL( @@ -88,11 +88,12 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ return false; const auto resource_maps_it = -@@ -223,12 +223,9 @@ bool MemoryCache::Contains(const Resource* resource) const { +@@ -223,13 +223,9 @@ bool MemoryCache::Contains(const Resource* resource) const { return resource == resources_it->value->GetResource(); } --Resource* MemoryCache::ResourceForURL(const KURL& resource_url) const { +-Resource* MemoryCache::ResourceForURLForTesting( +- const KURL& resource_url) const { - return ResourceForURL(resource_url, DefaultCacheIdentifier()); -} - @@ -105,17 +106,18 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h -@@ -119,9 +119,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, - TypeStatistic other; - }; - -- Resource* ResourceForURL(const KURL&) const; +@@ -122,10 +122,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, + // Do not use this method outside test purposes. + // A resourfe URL is not enough to do a correct MemoryCache lookup, and + // relying on the method would likely yield wrong results. +- Resource* ResourceForURLForTesting(const KURL&) const; +- Resource* ResourceForURL(const KURL&, const String& cache_identifier) const; - HeapVector> ResourcesForURL(const KURL&) const; void Add(Resource*); void Remove(Resource*); -@@ -173,6 +171,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, +@@ -177,6 +174,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected, base::MemoryPressureListener::MemoryPressureLevel) override; private: @@ -127,7 +129,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 -@@ -957,7 +957,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( +@@ -963,7 +963,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData( if (!archive_ && factory.GetType() == ResourceType::kRaw) return nullptr; @@ -137,7 +139,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()) { -@@ -1320,7 +1321,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, +@@ -1392,7 +1393,9 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params, resource = nullptr; } else { resource = MemoryCache::Get()->ResourceForURL( @@ -148,7 +150,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } if (resource) { policy = DetermineRevalidationPolicy(resource_type, params, *resource, -@@ -1614,7 +1617,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( +@@ -1690,7 +1693,8 @@ Resource* ResourceFetcher::CreateResourceForLoading( const FetchParameters& params, const ResourceFactory& factory) { const String cache_identifier = @@ -158,7 +160,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c if (!base::FeatureList::IsEnabled( blink::features::kScopeMemoryCachePerContext)) { DCHECK(!IsMainThread() || params.IsStaleRevalidation() || -@@ -2672,10 +2676,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { +@@ -2762,10 +2766,13 @@ void ResourceFetcher::UpdateAllImageResourcePriorities() { to_be_removed.clear(); } @@ -174,7 +176,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 -@@ -2688,7 +2695,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { +@@ -2778,7 +2785,7 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url) const { if (bundle) return bundle->GetCacheIdentifier(); diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch index fc71ed30..213bd2e1 100644 --- a/build/patches/Partition-HSTS-cache-by-NAK.patch +++ b/build/patches/Partition-HSTS-cache-by-NAK.patch @@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../web_package/signed_exchange_handler.cc | 7 +- .../web_package/signed_exchange_handler.h | 2 + .../web_package/signed_exchange_loader.cc | 2 +- - net/http/transport_security_state.cc | 106 ++++++++++++------ - net/http/transport_security_state.h | 38 ++++--- + net/http/transport_security_state.cc | 109 ++++++++++++------ + net/http/transport_security_state.h | 39 ++++--- net/quic/crypto/proof_verifier_chromium.cc | 5 +- net/quic/quic_chromium_client_session.cc | 2 +- net/socket/ssl_client_socket_impl.cc | 5 +- @@ -22,12 +22,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html services/network/network_context.cc | 31 +++-- services/network/network_context.h | 13 ++- .../public/mojom/network_context.mojom | 9 +- - 18 files changed, 170 insertions(+), 101 deletions(-) + 18 files changed, 173 insertions(+), 102 deletions(-) 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 -@@ -362,6 +362,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( +@@ -359,6 +359,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader( network::mojom::NetworkContext* network_context = profile->GetDefaultStoragePartition()->GetNetworkContext(); network_context->IsHSTSActiveForHost( @@ -78,7 +78,7 @@ diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components/password_manager/core/browser/hsts_query.cc --- a/components/password_manager/core/browser/hsts_query.cc +++ b/components/password_manager/core/browser/hsts_query.cc -@@ -58,6 +58,7 @@ void PostHSTSQueryForHostAndNetworkContext( +@@ -59,6 +59,7 @@ void PostHSTSQueryForHostAndNetworkContext( scoped_refptr callback_helper = base::MakeRefCounted(std::move(callback)); network_context->IsHSTSActiveForHost( @@ -89,7 +89,7 @@ diff --git a/components/password_manager/core/browser/hsts_query.cc b/components diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc --- a/content/browser/web_package/signed_exchange_handler.cc +++ b/content/browser/web_package/signed_exchange_handler.cc -@@ -89,6 +89,7 @@ using VerifyCallback = +@@ -94,6 +94,7 @@ using VerifyCallback = void VerifyCert(const scoped_refptr& certificate, const GURL& url, @@ -97,7 +97,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br const std::string& ocsp_result, const std::string& sct_list, int frame_tree_node_id, -@@ -110,7 +111,7 @@ void VerifyCert(const scoped_refptr& certificate, +@@ -115,7 +116,7 @@ void VerifyCert(const scoped_refptr& certificate, } network_context->VerifyCertForSignedExchange( @@ -106,7 +106,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br } std::string OCSPErrorToString(const bssl::OCSPVerifyResult& ocsp_result) { -@@ -173,6 +174,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -178,6 +179,7 @@ SignedExchangeHandler::SignedExchangeHandler( std::unique_ptr body, ExchangeHeadersCallback headers_callback, std::unique_ptr cert_fetcher_factory, @@ -114,7 +114,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br const std::optional outer_request_isolation_info, int load_flags, const net::IPEndPoint& remote_endpoint, -@@ -186,6 +188,7 @@ SignedExchangeHandler::SignedExchangeHandler( +@@ -191,6 +193,7 @@ SignedExchangeHandler::SignedExchangeHandler( source_(std::move(body)), cert_fetcher_factory_(std::move(cert_fetcher_factory)), devtools_proxy_(std::move(devtools_proxy)), @@ -122,7 +122,7 @@ diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/br outer_request_isolation_info_(std::move(outer_request_isolation_info)), load_flags_(load_flags), remote_endpoint_(remote_endpoint), -@@ -529,7 +532,7 @@ void SignedExchangeHandler::OnCertReceived( +@@ -534,7 +537,7 @@ void SignedExchangeHandler::OnCertReceived( // property, or const std::string& stapled_ocsp_response = unverified_cert_chain_->ocsp(); @@ -165,7 +165,7 @@ diff --git a/content/browser/web_package/signed_exchange_loader.cc b/content/bro diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_state.cc --- a/net/http/transport_security_state.cc +++ b/net/http/transport_security_state.cc -@@ -82,7 +82,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { +@@ -87,7 +87,7 @@ bool AddHash(const char* sha256_hash, HashValueVector* out) { // Converts |hostname| from dotted form ("www.google.com") to the form // used in DNS: "\x03www\x06google\x03com", lowercases that, and returns // the result. @@ -174,7 +174,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // We cannot perform the operations as detailed in the spec here as `host` // has already undergone IDN processing before it reached us. Thus, we // lowercase the input (probably redudnant since most input here has been -@@ -103,6 +103,29 @@ std::vector CanonicalizeHost(const std::string& host) { +@@ -108,6 +108,29 @@ std::vector CanonicalizeHost(const std::string& host) { return new_host.value(); } @@ -204,7 +204,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // PreloadResult is the result of resolving a specific name in the preloaded // data. struct PreloadResult { -@@ -194,7 +217,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { +@@ -199,7 +222,7 @@ bool DecodeHSTSPreload(const std::string& search_hostname, PreloadResult* out) { // Ensure that |search_hostname| is a valid hostname before // processing. @@ -213,7 +213,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -255,18 +278,19 @@ TransportSecurityState::TransportSecurityState( +@@ -260,18 +283,19 @@ TransportSecurityState::TransportSecurityState( // Both HSTS and HPKP cause fatal SSL errors, so return true if a // host has either. @@ -236,20 +236,32 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ dict.Set("should_upgrade_to_ssl", sts_state.ShouldUpgradeToSSL()); dict.Set("host_found_in_hsts_bypass_list", hsts_host_bypass_list_.find(host) != hsts_host_bypass_list_.end()); -@@ -274,31 +298,33 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( +@@ -279,13 +303,14 @@ base::Value::Dict TransportSecurityState::NetLogUpgradeToSSLParam( + } + + SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( ++ const NetworkAnonymizationKey& nak, + const std::string& host, + const NetLogWithSource& net_log) { + net_log.AddEvent( + NetLogEventType::TRANSPORT_SECURITY_STATE_SHOULD_UPGRADE_TO_SSL, +- [&] { return NetLogUpgradeToSSLParam(host); }); ++ [&] { return NetLogUpgradeToSSLParam(nak, host); }); + STSState sts_state; +- if (GetDynamicSTSState(host, &sts_state)) { ++ if (GetDynamicSTSState(nak, host, &sts_state)) { + if (sts_state.ShouldUpgradeToSSL()) { + // If the static state also requires an upgrade, the dynamic state didn't + // need to be used in the decision. +@@ -305,27 +330,29 @@ SSLUpgradeDecision TransportSecurityState::GetSSLUpgradeDecision( } bool TransportSecurityState::ShouldUpgradeToSSL( + const NetworkAnonymizationKey& nak, const std::string& host, const NetLogWithSource& net_log) { - STSState sts_state; - net_log.AddEvent( - NetLogEventType::TRANSPORT_SECURITY_STATE_SHOULD_UPGRADE_TO_SSL, -- [&] { return NetLogUpgradeToSSLParam(host); }); -- return GetSTSState(host, &sts_state) && sts_state.ShouldUpgradeToSSL(); -+ [&] { return NetLogUpgradeToSSLParam(nak, host); }); -+ return GetSTSState(nak, host, &sts_state) && sts_state.ShouldUpgradeToSSL(); +- return GetSSLUpgradeDecision(host, net_log) != SSLUpgradeDecision::kNoUpgrade; ++ return GetSSLUpgradeDecision(nak, host, net_log) != SSLUpgradeDecision::kNoUpgrade; } TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPins( @@ -277,7 +289,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } TransportSecurityState::CTRequirementsStatus -@@ -379,12 +405,13 @@ void TransportSecurityState::UpdatePinList( +@@ -406,12 +433,13 @@ void TransportSecurityState::UpdatePinList( } void TransportSecurityState::AddHSTSInternal( @@ -292,7 +304,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -408,13 +435,14 @@ void TransportSecurityState::AddHSTSInternal( +@@ -435,13 +463,14 @@ void TransportSecurityState::AddHSTSInternal( DirtyNotify(); } @@ -309,7 +321,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return; -@@ -459,10 +487,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( +@@ -486,10 +515,12 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPins( return PKPStatus::VIOLATED; } @@ -324,7 +336,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -539,7 +569,8 @@ void TransportSecurityState::DirtyNotify() { +@@ -566,7 +597,8 @@ void TransportSecurityState::DirtyNotify() { delegate_->StateIsDirty(this); } @@ -334,7 +346,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ const std::string& value) { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); -@@ -558,23 +589,25 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host, +@@ -585,23 +617,25 @@ bool TransportSecurityState::AddHSTSHeader(const std::string& host, upgrade_mode = STSState::MODE_FORCE_HTTPS; } @@ -365,7 +377,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ } size_t TransportSecurityState::num_sts_entries() const { -@@ -592,9 +625,10 @@ TransportSecurityState::PKPStatus +@@ -619,9 +653,10 @@ TransportSecurityState::PKPStatus TransportSecurityState::CheckPublicKeyPinsImpl( const HostPortPair& host_port_pair, bool is_issued_by_known_root, @@ -378,7 +390,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ // HasPublicKeyPins should have returned true in order for this method to have // been called. -@@ -635,7 +669,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -662,7 +697,7 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, PreloadResult result; if (host_pins_.has_value()) { // Ensure that |host| is a valid hostname before processing. @@ -387,7 +399,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ return false; } // Normalize any trailing '.' used for DNS suffix searches. -@@ -718,21 +752,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, +@@ -745,21 +780,24 @@ bool TransportSecurityState::GetStaticPKPState(const std::string& host, return false; } @@ -418,7 +430,7 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ if (canonicalized_host.empty()) return false; -@@ -769,11 +806,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, +@@ -796,11 +834,12 @@ bool TransportSecurityState::GetDynamicSTSState(const std::string& host, return false; } @@ -436,7 +448,15 @@ diff --git a/net/http/transport_security_state.cc b/net/http/transport_security_ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_state.h --- a/net/http/transport_security_state.h +++ b/net/http/transport_security_state.h -@@ -280,13 +280,14 @@ class NET_EXPORT TransportSecurityState { +@@ -289,6 +289,7 @@ class NET_EXPORT TransportSecurityState { + // As ShouldUpgradeToSSL(), but also returns whether the decision came from + // static or dynamic state, for metrics. + SSLUpgradeDecision GetSSLUpgradeDecision( ++ const NetworkAnonymizationKey& nak, + const std::string& host, + const NetLogWithSource& net_log = NetLogWithSource()); + +@@ -297,13 +298,14 @@ class NET_EXPORT TransportSecurityState { // primary public interface; direct access to STS and PKP states is best // left to tests. The caller needs to handle the optional pinning override // when is_issued_by_known_root is false. @@ -455,7 +475,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns CT_REQUIREMENTS_NOT_MET if a connection violates CT policy // requirements: that is, if a connection to |host|, using the validated -@@ -370,7 +371,7 @@ class NET_EXPORT TransportSecurityState { +@@ -387,7 +389,7 @@ class NET_EXPORT TransportSecurityState { // // If an entry is deleted, the new state will be persisted through // the Delegate (if any). @@ -464,7 +484,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| if |host| has dynamic or static // HSTS/HPKP (respectively) state. If multiple entries match |host|, dynamic -@@ -380,8 +381,8 @@ class NET_EXPORT TransportSecurityState { +@@ -397,8 +399,8 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -475,7 +495,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // Returns true and updates |*result| iff |host| has static HSTS/HPKP // (respectively) state. If multiple entries match |host|, the most specific -@@ -395,22 +396,24 @@ class NET_EXPORT TransportSecurityState { +@@ -412,22 +414,24 @@ class NET_EXPORT TransportSecurityState { // // Note that these methods are not const because they opportunistically remove // entries that have expired. @@ -505,7 +525,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s const base::Time& expiry, bool include_subdomains, const HashValueVector& hashes); -@@ -448,7 +451,7 @@ class NET_EXPORT TransportSecurityState { +@@ -465,7 +469,7 @@ class NET_EXPORT TransportSecurityState { typedef std::map STSStateMap; typedef std::map PKPStateMap; @@ -514,7 +534,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // IsBuildTimely returns true if the current build is new enough ensure that // built in security information (i.e. HSTS preloading and pinning -@@ -458,7 +461,8 @@ class NET_EXPORT TransportSecurityState { +@@ -475,7 +479,8 @@ class NET_EXPORT TransportSecurityState { // Helper method for actually checking pins. PKPStatus CheckPublicKeyPinsImpl(const HostPortPair& host_port_pair, bool is_issued_by_known_root, @@ -524,7 +544,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s // If a Delegate is present, notify it that the internal state has // changed. -@@ -468,11 +472,13 @@ class NET_EXPORT TransportSecurityState { +@@ -485,11 +490,13 @@ class NET_EXPORT TransportSecurityState { // any previous state for the |host|, including static entries. // // The new state for |host| is persisted using the Delegate (if any). @@ -543,7 +563,7 @@ diff --git a/net/http/transport_security_state.h b/net/http/transport_security_s diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_verifier_chromium.cc --- a/net/quic/crypto/proof_verifier_chromium.cc +++ b/net/quic/crypto/proof_verifier_chromium.cc -@@ -403,7 +403,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { +@@ -412,7 +412,8 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { transport_security_state_->CheckPublicKeyPins( HostPortPair(hostname_, port_), cert_verify_result.is_issued_by_known_root, @@ -553,7 +573,7 @@ diff --git a/net/quic/crypto/proof_verifier_chromium.cc b/net/quic/crypto/proof_ switch (pin_validity) { case TransportSecurityState::PKPStatus::VIOLATED: result = ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN; -@@ -430,7 +431,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { +@@ -439,7 +440,7 @@ int ProofVerifierChromium::Job::DoVerifyCertComplete(int result) { verify_details_->is_fatal_cert_error = IsCertStatusError(cert_status) && result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED && @@ -565,7 +585,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 -@@ -1444,7 +1444,7 @@ bool QuicChromiumClientSession::CanPool( +@@ -1450,7 +1450,7 @@ bool QuicChromiumClientSession::CanPool( return SpdySession::CanPool(transport_security_state_, ssl_info, *ssl_config_service_, session_key_.host(), @@ -577,7 +597,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 -@@ -1188,7 +1188,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1193,7 +1193,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { TransportSecurityState::PKPStatus pin_validity = context_->transport_security_state()->CheckPublicKeyPins( host_and_port_, server_cert_verify_result_.is_issued_by_known_root, @@ -587,7 +607,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 |= -@@ -1210,7 +1211,7 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1215,7 +1216,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( @@ -599,7 +619,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 -@@ -733,7 +733,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -738,7 +738,8 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, const SSLInfo& ssl_info, const SSLConfigService& ssl_config_service, std::string_view old_hostname, @@ -609,7 +629,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. -@@ -752,7 +753,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, +@@ -757,7 +758,7 @@ bool SpdySession::CanPool(TransportSecurityState* transport_security_state, // Port is left at 0 as it is never used. if (transport_security_state->CheckPublicKeyPins( HostPortPair(new_hostname, 0), ssl_info.is_issued_by_known_root, @@ -618,7 +638,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc TransportSecurityState::PKPStatus::VIOLATED) { return false; } -@@ -973,7 +974,8 @@ bool SpdySession::VerifyDomainAuthentication(std::string_view domain) const { +@@ -978,7 +979,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_, @@ -628,7 +648,7 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc } void SpdySession::EnqueueStreamWrite( -@@ -3009,7 +3011,8 @@ void SpdySession::OnAltSvc( +@@ -3014,7 +3016,8 @@ void SpdySession::OnAltSvc( return; } if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_, @@ -678,17 +698,17 @@ diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/ur diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -280,7 +280,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { - - TransportSecurityState* hsts = request->context()->transport_security_state(); - bool should_upgrade_to_ssl = -- hsts && hsts->ShouldUpgradeToSSL(url.host(), request->net_log()); -+ hsts && hsts->ShouldUpgradeToSSL(request->isolation_info().network_anonymization_key(), +@@ -333,7 +333,8 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { + if (TransportSecurityState* hsts = + request->context()->transport_security_state()) { + upgrade_decision = +- hsts->GetSSLUpgradeDecision(url.host(), request->net_log()); ++ hsts->GetSSLUpgradeDecision(request->isolation_info().network_anonymization_key(), + url.host(), request->net_log()); + } // Check for reasons not to return a URLRequestHttpJob. These don't apply to - // https and wss requests. -@@ -1106,7 +1107,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { +@@ -1151,7 +1152,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() { HttpResponseHeaders* headers = GetResponseHeaders(); std::string value; if (headers->EnumerateHeader(nullptr, "Strict-Transport-Security", &value)) @@ -697,7 +717,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque } void URLRequestHttpJob::OnStartCompleted(int result) { -@@ -1176,7 +1177,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { +@@ -1221,7 +1222,7 @@ void URLRequestHttpJob::OnStartCompleted(int result) { TransportSecurityState* state = context->transport_security_state(); NotifySSLCertificateError( result, transaction_->GetResponseInfo()->ssl_info, @@ -709,7 +729,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 -@@ -1822,6 +1822,7 @@ void NetworkContext::CreateHostResolver( +@@ -1883,6 +1883,7 @@ void NetworkContext::CreateHostResolver( void NetworkContext::VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -717,7 +737,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont const std::string& ocsp_result, const std::string& sct_list, VerifyCertForSignedExchangeCallback callback) { -@@ -1832,6 +1833,7 @@ void NetworkContext::VerifyCertForSignedExchange( +@@ -1893,6 +1894,7 @@ void NetworkContext::VerifyCertForSignedExchange( pending_cert_verify->result = std::make_unique(); pending_cert_verify->certificate = certificate; pending_cert_verify->url = url; @@ -725,7 +745,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont pending_cert_verify->ocsp_result = ocsp_result; pending_cert_verify->sct_list = sct_list; net::CertVerifier* cert_verifier = -@@ -1876,17 +1878,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( +@@ -1937,17 +1939,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin( std::move(callback).Run(); } @@ -748,7 +768,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont IsHSTSActiveForHostCallback callback) { net::TransportSecurityState* security_state = url_request_context_->transport_security_state(); -@@ -1896,10 +1900,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, +@@ -1957,10 +1961,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host, return; } @@ -761,7 +781,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont GetHSTSStateCallback callback) { base::Value::Dict result; -@@ -1937,10 +1941,10 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -1998,10 +2002,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( @@ -774,7 +794,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)); -@@ -1978,6 +1982,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, +@@ -2039,6 +2043,7 @@ void NetworkContext::GetHSTSState(const std::string& domain, } void NetworkContext::DeleteDynamicDataForHost( @@ -782,7 +802,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 = -@@ -1988,7 +1993,7 @@ void NetworkContext::DeleteDynamicDataForHost( +@@ -2049,7 +2054,7 @@ void NetworkContext::DeleteDynamicDataForHost( } std::move(callback).Run( @@ -791,7 +811,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont } void NetworkContext::EnableStaticKeyPinningForTesting( -@@ -2029,7 +2034,7 @@ void NetworkContext::PreconnectSockets( +@@ -2090,7 +2095,7 @@ void NetworkContext::PreconnectSockets( DCHECK(!require_network_anonymization_key_ || !network_anonymization_key.IsEmpty()); @@ -800,7 +820,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. -@@ -2848,12 +2853,15 @@ void NetworkContext::OnConnectionError() { +@@ -2907,12 +2912,15 @@ void NetworkContext::OnConnectionError() { std::move(on_connection_close_callback_).Run(this); } @@ -817,7 +837,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont original_url.host())) { return original_url; } -@@ -2901,7 +2909,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( +@@ -2960,7 +2968,8 @@ void NetworkContext::OnVerifyCertForSignedExchangeComplete( url_request_context_->transport_security_state()->CheckPublicKeyPins( net::HostPortPair::FromURL(pending_cert_verify->url), pending_cert_verify->result->is_issued_by_known_root, @@ -830,7 +850,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 -@@ -407,18 +407,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -410,18 +410,21 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext void VerifyCertForSignedExchange( const scoped_refptr& certificate, const GURL& url, @@ -855,7 +875,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte const std::string& host, DeleteDynamicDataForHostCallback callback) override; void SetCorsOriginAccessListsForOrigin( -@@ -727,7 +730,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -735,7 +738,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext mojo::PendingRemote cookie_observer, net::FirstPartySetMetadata first_party_set_metadata); @@ -865,7 +885,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte #if BUILDFLAG(IS_P2P_ENABLED) void DestroySocketManager(P2PSocketManager* socket_manager); -@@ -919,6 +923,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -924,6 +928,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext VerifyCertForSignedExchangeCallback callback; scoped_refptr certificate; GURL url; 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 1c1de149..13a8e89a 100644 --- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch +++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch @@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html ...storage_access_grant_permission_context.cc | 12 ++++ .../experiment/experiment_manager_impl.cc | 1 + .../core/browser/cookie_settings.cc | 2 + - .../core/common/cookie_settings_base.cc | 60 +------------------ + .../core/common/cookie_settings_base.cc | 66 +------------------ ...ioning-all-cookies-by-top-frame-domain.inc | 3 + ...ioning-all-cookies-by-top-frame-domain.inc | 1 + ...ioning-all-cookies-by-top-frame-domain.inc | 1 + @@ -27,14 +27,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html net/cookies/cookie_util.cc | 1 + net/cookies/parsed_cookie.h | 6 +- .../sqlite/sqlite_persistent_cookie_store.cc | 8 +++ - net/url_request/url_request_http_job.cc | 10 +--- + net/url_request/url_request_http_job.cc | 10 +-- services/network/cookie_settings.cc | 6 +- services/network/restricted_cookie_manager.cc | 6 ++ .../modules/cookie_store/cookie_init.idl | 2 +- .../modules/cookie_store/cookie_store.cc | 3 + .../cookie_store_delete_options.idl | 2 +- ui/webui/webui_allowlist.cc | 1 + - 25 files changed, 76 insertions(+), 84 deletions(-) + 25 files changed, 76 insertions(+), 90 deletions(-) create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc @@ -43,7 +43,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 -@@ -3484,7 +3484,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( +@@ -3524,7 +3524,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed( scoped_refptr cookie_settings = CookieSettingsFactory::GetForProfile(profile); if (!cookie_settings) { @@ -69,7 +69,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 -@@ -781,16 +781,16 @@ ProfileNetworkContextService::CreateCookieManagerParams( +@@ -799,16 +799,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. @@ -95,7 +95,7 @@ diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/brow diff --git a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc --- a/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc +++ b/chrome/browser/privacy_sandbox/privacy_sandbox_settings_delegate.cc -@@ -363,6 +363,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const { +@@ -361,6 +361,7 @@ bool PrivacySandboxSettingsDelegate::IsCookieDeprecationLabelAllowed() const { bool PrivacySandboxSettingsDelegate:: AreThirdPartyCookiesBlockedByCookieDeprecationExperiment() const { @@ -139,7 +139,7 @@ diff --git a/chrome/browser/tpcd/experiment/experiment_manager_impl.cc b/chrome/ 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 -@@ -132,6 +132,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( +@@ -133,6 +133,7 @@ void CookieSettings::SetTemporaryCookieGrantForHeuristic( const GURL& first_party_url, base::TimeDelta ttl, bool use_schemeless_patterns) { @@ -147,7 +147,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo if (url.is_empty() || first_party_url.is_empty()) { return; } -@@ -398,6 +399,7 @@ bool CookieSettings::MitigationsEnabledFor3pcdInternal() { +@@ -406,6 +407,7 @@ bool CookieSettings::MitigationsEnabledFor3pcdInternal() const { ->AreThirdPartyCookiesAllowedByEnterprise(); } @@ -158,7 +158,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc --- a/components/content_settings/core/common/cookie_settings_base.cc +++ b/components/content_settings/core/common/cookie_settings_base.cc -@@ -39,16 +39,6 @@ using net::cookie_util::StorageAccessResult; +@@ -41,16 +41,6 @@ using net::cookie_util::StorageAccessResult; using ThirdPartyCookieAllowMechanism = CookieSettingsBase::ThirdPartyCookieAllowMechanism; @@ -174,22 +174,18 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c - constexpr StorageAccessResult GetStorageAccessResult( ThirdPartyCookieAllowMechanism mechanism) { - switch (mechanism) { -@@ -534,62 +524,14 @@ CookieSettingsBase::DecideAccess(const GURL& url, - return BlockAllCookies{}; + using AllowMechanism = ThirdPartyCookieAllowMechanism; +@@ -542,70 +532,16 @@ CookieSettingsBase::DecideAccess( + return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone}; } -- if (!ShouldBlockThirdPartyCookies() && -- !Are3pcsForceDisabledByOverride(overrides)) { +- if (!global_setting_or_embedder_blocks_third_party_cookies) { - return AllowAllCookies{ - ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting}; - } - - if (!is_third_party_request) { - return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone}; - } - if (IsThirdPartyCookiesAllowedScheme(first_party_url.scheme())) { -- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kNone}; +- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowByScheme}; - } - - // Site controlled mechanisms (ex: web APIs, deprecation trial): @@ -221,7 +217,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c - } - - // Enterprise Policies: -- if (is_explicit_setting && setting_source == SettingSource::kPolicy) { +- if (is_explicit_setting && setting_info.source == SettingSource::kPolicy) { - return AllowAllCookies{ThirdPartyCookieAllowMechanism:: - kAllowByEnterprisePolicyCookieAllowedForUrls}; - } @@ -229,8 +225,7 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c - // Chrome controlled mechanisms (ex. 3PCD Metadata Grants): - SettingInfo tpcd_metadata_info; - if (IsAllowedBy3pcdMetadataGrantsSettings(url, first_party_url, overrides, -- &tpcd_metadata_info) && -- !IgnoreTpcdDtGracePeriodMetadataEntry(tpcd_metadata_info)) { +- &tpcd_metadata_info)) { - return AllowAllCookies{TpcdMetadataSourceToAllowMechanism( - tpcd_metadata_info.metadata.tpcd_metadata_rule_source())}; - } @@ -238,15 +233,28 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c if (is_explicit_setting) { return AllowAllCookies{ ThirdPartyCookieAllowMechanism::kAllowByExplicitSetting}; -@@ -623,7 +565,7 @@ CookieSettingsBase::GetCookieSettingInternal( + } + +- // Check for a TRACKING_PROTECTION exception, which should also disable 3PCB. +- SettingInfo tp_info; +- if (IsAllowedByTrackingProtectionSetting(url, first_party_url, tp_info)) { +- setting_info = tp_info; +- return AllowAllCookies{ +- ThirdPartyCookieAllowMechanism::kAllowByTrackingProtectionException}; +- } +- + return AllowPartitionedCookies{}; + } + +@@ -637,7 +573,7 @@ CookieSettingsBase::GetCookieSettingInternal( } return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW, /*allow_partitioned_cookies=*/true, - /*is_explicit_setting=*/false, + /*is_explicit_setting=*/true, /*third_party_cookie_allow_mechanism=*/ - ThirdPartyCookieAllowMechanism::kNone}; - } + ThirdPartyCookieAllowMechanism::kNone, + is_third_party_request}; diff --git a/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc b/cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc new file mode 100644 --- /dev/null @@ -284,7 +292,7 @@ new file mode 100644 diff --git a/net/cookies/canonical_cookie.cc b/net/cookies/canonical_cookie.cc --- a/net/cookies/canonical_cookie.cc +++ b/net/cookies/canonical_cookie.cc -@@ -1001,9 +1001,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { +@@ -999,9 +999,6 @@ bool CanonicalCookie::IsCanonicalForFromStorage() const { if (CookiePartitionKey::HasNonce(PartitionKey())) { return true; } @@ -310,7 +318,7 @@ diff --git a/net/cookies/cookie_deletion_info.cc b/net/cookies/cookie_deletion_i diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc --- a/net/cookies/cookie_monster.cc +++ b/net/cookies/cookie_monster.cc -@@ -2216,6 +2216,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( +@@ -2230,6 +2230,7 @@ size_t CookieMonster::GarbageCollectPartitionedCookies( if (cookie_partition_it == partitioned_cookies_.end()) return num_deleted; @@ -321,7 +329,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc --- a/net/cookies/cookie_util.cc +++ b/net/cookies/cookie_util.cc -@@ -726,6 +726,7 @@ bool IsCookiePartitionedValid(const GURL& url, +@@ -732,6 +732,7 @@ bool IsCookiePartitionedValid(const GURL& url, bool secure, bool is_partitioned, bool partition_has_nonce) { @@ -340,7 +348,7 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h #include "net/base/net_export.h" #include "net/cookies/cookie_constants.h" -@@ -85,7 +86,10 @@ class NET_EXPORT ParsedCookie { +@@ -82,7 +83,10 @@ class NET_EXPORT ParsedCookie { CookieSameSite SameSite( CookieSameSiteString* samesite_string = nullptr) const; CookiePriority Priority() const; @@ -350,8 +358,8 @@ diff --git a/net/cookies/parsed_cookie.h b/net/cookies/parsed_cookie.h + return partitioned_index_ != 0; + } bool HasInternalHtab() const { return internal_htab_; } - TruncatingCharacterInCookieStringType - GetTruncatingCharacterInCookieStringType() const { + // Returns the number of attributes, for example, returning 2 for: + // "BLAH=hah; path=/; domain=.google.com" diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sqlite/sqlite_persistent_cookie_store.cc --- a/net/extras/sqlite/sqlite_persistent_cookie_store.cc +++ b/net/extras/sqlite/sqlite_persistent_cookie_store.cc @@ -373,7 +381,7 @@ diff --git a/net/extras/sqlite/sqlite_persistent_cookie_store.cc b/net/extras/sq diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -782,13 +782,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( +@@ -836,13 +836,9 @@ void URLRequestHttpJob::SetCookieHeaderAndStart( AnnotateAndMoveUserBlockedCookies(maybe_included_cookies, excluded_cookies); } @@ -393,7 +401,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque diff --git a/services/network/cookie_settings.cc b/services/network/cookie_settings.cc --- a/services/network/cookie_settings.cc +++ b/services/network/cookie_settings.cc -@@ -42,8 +42,7 @@ namespace network { +@@ -43,8 +43,7 @@ namespace network { namespace { bool ShouldApply3pcdRelatedReasons(const net::CanonicalCookie& cookie) { @@ -403,7 +411,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti } bool IsValidType(ContentSettingsType type) { -@@ -118,8 +117,7 @@ bool IsOriginOpaqueHttpOrHttps(const url::Origin* top_frame_origin) { +@@ -112,8 +111,7 @@ bool IsOriginOpaqueHttpOrHttps(const url::Origin* top_frame_origin) { // static bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie, const CookieSettingWithMetadata& setting) { @@ -416,7 +424,7 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc --- a/services/network/restricted_cookie_manager.cc +++ b/services/network/restricted_cookie_manager.cc -@@ -950,6 +950,12 @@ void RestrictedCookieManager::SetCookieFromString( +@@ -954,6 +954,12 @@ void RestrictedCookieManager::SetCookieFromString( std::move(callback).Run(); diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch index 9e813b57..67a300fa 100644 --- a/build/patches/Private-network-access-content-settings.patch +++ b/build/patches/Private-network-access-content-settings.patch @@ -21,7 +21,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc -@@ -7627,8 +7627,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( +@@ -7676,8 +7676,7 @@ ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy( #if BUILDFLAG(IS_ANDROID) if (base::FeatureList::IsEnabled( @@ -176,7 +176,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 -@@ -1032,7 +1032,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( +@@ -1033,7 +1033,7 @@ std::optional CorsURLLoader::ConvertPreflightResult( } // Private Network Access warning: ignore net and CORS errors. @@ -185,7 +185,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co CHECK(ShouldIgnorePrivateNetworkAccessErrors( request_.required_ip_address_space)); CHECK_EQ(*reason, PreflightRequiredReason::kPrivateNetworkAccess); -@@ -1384,12 +1384,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( +@@ -1385,12 +1385,6 @@ bool CorsURLLoader::ShouldIgnorePrivateNetworkAccessErrors( if (!state) { return false; } @@ -223,7 +223,7 @@ diff --git a/services/network/private_network_access_checker.cc b/services/netwo using Result = PrivateNetworkAccessCheckResult; using Policy = mojom::PrivateNetworkRequestPolicy; -@@ -291,11 +299,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( +@@ -292,11 +300,17 @@ bool PrivateNetworkAccessChecker::NeedPermission( const GURL& url, bool is_web_secure_context, mojom::IPAddressSpace target_address_space) { diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch index f9c626c9..da2b3cdc 100644 --- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch +++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch @@ -45,18 +45,18 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -173,6 +173,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kBackGestureMoveToBackDuringStartup, &kBackGestureRefactorAndroid, &kBackToHomeAnimation, + &kCloseAllTabsModalDialog, &kBackgroundThreadPool, &kBlockIntentsWhileLocked, - &kBrowserControlsEarlyResize, + &kBottomBrowserControlsRefactor, 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 -@@ -247,6 +247,7 @@ public abstract class ChromeFeatureList { +@@ -257,6 +257,7 @@ public abstract class ChromeFeatureList { public static final String CCT_PREWARM_TAB = "CCTPrewarmTab"; public static final String CCT_REPORT_PARALLEL_REQUEST_STATUS = "CCTReportParallelRequestStatus"; diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch index 74e94f97..11fe0d22 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 -@@ -4254,8 +4254,13 @@ action("build_date") { +@@ -4222,8 +4222,13 @@ action("build_date") { args = [ rebase_path("$target_gen_dir/generated_build_date.h", root_build_dir), @@ -34,7 +34,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn diff --git a/build_overrides/build.gni b/build_overrides/build.gni --- a/build_overrides/build.gni +++ b/build_overrides/build.gni -@@ -49,6 +49,11 @@ declare_args() { +@@ -45,6 +45,11 @@ declare_args() { # //third_party/robolectric . limit_android_deps = false 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 cf20a6b7..0b0565cc 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 @@ -35,7 +35,7 @@ diff --git a/net/dns/dns_transaction.cc b/net/dns/dns_transaction.cc diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -431,6 +431,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -485,6 +485,7 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( // fields in the referrer. GURL referrer(request_->referrer()); @@ -43,7 +43,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque // Our consumer should have made sure that this is a safe referrer (e.g. via // URLRequestJob::ComputeReferrerForPolicy). if (referrer.is_valid()) { -@@ -438,11 +439,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( +@@ -492,11 +493,14 @@ void URLRequestHttpJob::OnGotFirstPartySetMetadata( request_info_.extra_headers.SetHeader(HttpRequestHeaders::kReferer, referer_value); } @@ -58,7 +58,7 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque AddExtraHeaders(); -@@ -688,10 +692,10 @@ void URLRequestHttpJob::StartTransactionInternal() { +@@ -742,10 +746,10 @@ void URLRequestHttpJob::StartTransactionInternal() { void URLRequestHttpJob::AddExtraHeaders() { request_info_.extra_headers.SetAcceptEncodingIfMissing( request()->url(), request()->accepted_stream_types(), 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 f036bea2..05a83596 100644 --- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch +++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch @@ -56,8 +56,8 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -984,6 +984,8 @@ chrome_java_sources = [ - "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionNoticeController.java", +@@ -977,6 +977,8 @@ chrome_java_sources = [ + "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionOnboardingView.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java", "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java", @@ -120,7 +120,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -102,6 +102,10 @@ found in the LICENSE file. +@@ -107,6 +107,10 @@ found in the LICENSE file. android:title="@string/close_tabs_on_exit_title" android:summary="@string/close_tabs_on_exit_summary" android:defaultValue="false" /> @@ -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 -@@ -30,6 +30,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; +@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference; 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; -@@ -81,6 +82,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -77,6 +78,7 @@ public class PrivacySettings extends ChromeBaseSettingsFragment private static final String PREF_DO_NOT_TRACK = "do_not_track"; private static final String PREF_SAFE_BROWSING = "safe_browsing"; private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link"; @@ -186,7 +186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox"; private static final String PREF_PROXY_OPTIONS = "proxy"; private static final String PREF_PRIVACY_GUIDE = "privacy_guide"; -@@ -417,6 +419,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment +@@ -445,6 +447,10 @@ public class PrivacySettings extends ChromeBaseSettingsFragment : R.string.text_off); } @@ -379,7 +379,7 @@ new file mode 100644 diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc --- a/chrome/browser/extensions/api/settings_private/prefs_util.cc +++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc -@@ -209,6 +209,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -214,6 +214,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { (*s_allowlist)[::prefs::kExpireDaysThreshold] = settings_api::PrefType::kNumber; @@ -442,7 +442,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 @@ -480,7 +480,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1050,6 +1050,30 @@ CHAR_LIMIT guidelines: +@@ -1076,6 +1076,30 @@ For more settings that use data to improve your Chrome experience, go to @@ -526,7 +526,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 -@@ -365,6 +365,8 @@ void PrefsTabHelper::RegisterProfilePrefs( +@@ -380,6 +380,8 @@ void PrefsTabHelper::RegisterProfilePrefs( registry->RegisterBooleanPref( prefs::kEnableReferrers, !base::FeatureList::IsEnabled(features::kNoReferrers)); @@ -538,7 +538,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc --- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc -@@ -1825,6 +1825,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, +@@ -1819,6 +1819,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source, {"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION}, {"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION}, {"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION}, @@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -1510,6 +1510,9 @@ inline constexpr char kEnableEncryptedMedia[] = +@@ -1536,6 +1536,9 @@ inline constexpr char kEnableEncryptedMedia[] = inline constexpr char kPrefixedVideoFullscreenApiAvailability[] = "media.prefixed_fullscreen_video_api_availability"; diff --git a/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch b/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch index bf1c68db..d0bcf68c 100644 --- a/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch +++ b/build/patches/Remove-auth-header-upon-cross-origin-redirect.patch @@ -19,7 +19,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc --- a/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_loader.cc -@@ -600,6 +600,9 @@ bool ResourceLoader::WillFollowRedirect( +@@ -595,6 +595,9 @@ bool ResourceLoader::WillFollowRedirect( new_url)) { fetcher_->GetUseCounter().CountUse( mojom::WebFeature::kAuthorizationCrossOrigin); diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch index 6e69396c..4bb3d66d 100644 --- a/build/patches/Remove-binary-blob-integrations.patch +++ b/build/patches/Remove-binary-blob-integrations.patch @@ -52,8 +52,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/resources/settings/route.ts | 2 - chrome/browser/ui/BUILD.gn | 3 - chrome/browser/ui/android/omnibox/BUILD.gn | 4 - - .../FullscreenSigninMediator.java | 16 +- - chrome/browser/ui/webauthn/sheet_models.cc | 7 +- + .../FullscreenSigninMediator.java | 12 +- + chrome/browser/ui/webauthn/sheet_models.cc | 9 +- .../webui/chrome_web_ui_controller_factory.cc | 3 - chrome/browser/webauthn/android/BUILD.gn | 1 - .../CableAuthenticatorModuleProvider.java | 35 +- @@ -91,7 +91,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/signin/public/android/BUILD.gn | 3 - .../signin/AccountRenameChecker.java | 16 - components/webauthn/android/BUILD.gn | 14 +- - .../webauthn/AuthenticatorImpl.java | 65 -- + .../webauthn/AuthenticatorImpl.java | 66 -- .../webauthn/ConditionalUiState.java | 15 + .../components/webauthn/GmsCoreUtils.java | 21 +- .../webauthn/WebauthnModeProvider.java | 13 - @@ -108,7 +108,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../preconditions/javatests/BUILD.gn | 1 - .../gms/ChromiumPlayServicesAvailability.java | 10 +- third_party/cardboard/BUILD.gn | 4 - - 84 files changed, 117 insertions(+), 2228 deletions(-) + 84 files changed, 116 insertions(+), 2228 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 @@ -136,7 +136,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest. diff --git a/build/android/gyp/proguard.py b/build/android/gyp/proguard.py --- a/build/android/gyp/proguard.py +++ b/build/android/gyp/proguard.py -@@ -54,6 +54,8 @@ _IGNORE_WARNINGS = ( +@@ -52,6 +52,8 @@ _IGNORE_WARNINGS = ( r'EditorDialogToolbar', # https://crbug.com/1441226 r'PaymentRequest[BH]', @@ -177,7 +177,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base/version_info/android:version_constants_java", "//cc:cc_java", "//cc/mojom:mojom_java", -@@ -686,13 +678,23 @@ if (current_toolchain == default_toolchain) { +@@ -689,13 +681,23 @@ if (current_toolchain == default_toolchain) { "//services/shape_detection:shape_detection_java", "//services/shape_detection/public/mojom:mojom_java", "//skia/public/mojom:mojom_java", @@ -203,7 +203,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//third_party/android_deps:protobuf_lite_runtime_java", "//third_party/android_media:android_media_java", "//third_party/android_swipe_refresh:android_swipe_refresh_java", -@@ -969,12 +971,6 @@ if (current_toolchain == default_toolchain) { +@@ -972,12 +974,6 @@ if (current_toolchain == default_toolchain) { ":chrome_jni_headers", ":chrome_unit_test_util_java", ":delegate_public_impl_java", @@ -216,7 +216,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java_test_support", "//base:base_java_test_support_uncommon", "//base:base_junit_test_support", -@@ -1637,13 +1633,6 @@ if (current_toolchain == default_toolchain) { +@@ -1648,13 +1644,6 @@ if (current_toolchain == default_toolchain) { ":chrome_app_java_resources", ":chrome_test_util_java", ":delegate_public_impl_java", @@ -230,7 +230,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//base:base_java_test_support", "//base:base_java_test_support_uncommon", -@@ -2537,7 +2526,6 @@ if (current_toolchain == default_toolchain) { +@@ -2551,7 +2540,6 @@ if (current_toolchain == default_toolchain) { ] deps = [ ":chrome_java", @@ -238,7 +238,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", -@@ -2638,7 +2626,6 @@ if (current_toolchain == default_toolchain) { +@@ -2653,7 +2641,6 @@ if (current_toolchain == default_toolchain) { # is in a DFM. android_library("base_module_java") { sources = [ @@ -246,7 +246,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/ChromeBackupAgent.java", -@@ -2655,8 +2642,6 @@ if (current_toolchain == default_toolchain) { +@@ -2670,8 +2657,6 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java", "java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java", "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java", @@ -255,7 +255,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", -@@ -2679,16 +2664,10 @@ if (current_toolchain == default_toolchain) { +@@ -2695,16 +2680,10 @@ if (current_toolchain == default_toolchain) { "java/src/org/chromium/chrome/browser/notifications/NotificationService.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java", "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java", @@ -272,7 +272,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//base:base_java", "//chrome/browser/download/android:file_provider_java", "//chrome/browser/flags:java", -@@ -2701,7 +2680,6 @@ if (current_toolchain == default_toolchain) { +@@ -2717,7 +2696,6 @@ if (current_toolchain == default_toolchain) { "//components/media_router/browser/android:cast_options_provider_java", "//components/minidump_uploader:minidump_uploader_java", "//components/module_installer/android:module_installer_java", @@ -280,7 +280,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", -@@ -2721,7 +2699,6 @@ if (current_toolchain == default_toolchain) { +@@ -2737,7 +2715,6 @@ if (current_toolchain == default_toolchain) { # Deps to pull services into base module. # TODO(crbug.com/40148088): Consider moving these to the chrome module to # reduce base dex size. @@ -299,7 +299,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java", "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java", "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java", -@@ -1008,11 +1007,6 @@ chrome_java_sources = [ +@@ -1003,11 +1002,6 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/segmentation_platform/ReaderModeActionProvider.java", "java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java", "java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java", @@ -346,7 +346,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -781,16 +776,6 @@ by a child template that "extends" this file. +@@ -775,16 +770,6 @@ by a child template that "extends" this file. @@ -363,7 +363,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro @@ -390,7 +390,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1039,15 +1004,6 @@ by a child template that "extends" this file. +@@ -1033,15 +998,6 @@ by a child template that "extends" this file. @@ -406,7 +406,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro -@@ -1292,12 +1248,6 @@ by a child template that "extends" this file. +@@ -1289,12 +1245,6 @@ by a child template that "extends" this file. {% endif %} @@ -490,7 +490,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/background_task @@ -16,8 +16,6 @@ import org.chromium.chrome.browser.notifications.scheduler.NotificationScheduler import org.chromium.chrome.browser.offlinepages.OfflineBackgroundTask; import org.chromium.chrome.browser.omaha.OmahaService; - import org.chromium.chrome.browser.safety_hub.SafetyHubFetchService; + import org.chromium.chrome.browser.safety_hub.SafetyHubFetchTask; -import org.chromium.chrome.browser.services.gcm.GCMBackgroundTask; -import org.chromium.chrome.browser.services.gcm.GCMNativeBackgroundTask; import org.chromium.chrome.browser.webapps.WebApkUpdateTask; @@ -741,7 +741,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/instantapps/Ins diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java -@@ -127,7 +127,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -128,7 +128,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment private Preference mLinkPref; private Menu mMenu; @@ -749,7 +749,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage private @ManagePasswordsReferrer int mManagePasswordsReferrer; private BottomSheetController mBottomSheetController; -@@ -200,7 +199,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -206,7 +205,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -757,7 +757,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage computeTrustedVaultBannerState(); } -@@ -305,9 +303,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -311,9 +309,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment if (shouldShowAutoSigninOption()) { createAutoSignInCheckbox(); } @@ -767,10 +767,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) { createTrustedVaultBanner( -@@ -508,10 +503,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment +@@ -514,10 +509,6 @@ public class PasswordSettings extends ChromeBaseSettingsFragment // by the system. if (getActivity().isFinishing()) { - PasswordManagerHandlerProvider.getInstance().removeObserver(this); + PasswordManagerHandlerProvider.getForProfile(getProfile()).removeObserver(this); - if (mPasswordCheck != null - && mManagePasswordsReferrer != ManagePasswordsReferrer.CHROME_SETTINGS) { - PasswordCheckFactory.destroy(); @@ -911,15 +911,15 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p "account_storage_notice:java", "//base:base_java", "//build/android:build_java", -@@ -252,8 +250,6 @@ robolectric_binary("password_manager_junit_tests") { +@@ -261,8 +259,6 @@ robolectric_binary("password_manager_junit_tests") { ":settings_interface_java", ":test_support_java", ":unified_password_manager_proto_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", "pwd_migration:junit", - "//base:base_java", diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordManagerAndroidBackendUtil.java @@ -998,10 +998,10 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom -import com.google.android.gms.common.GoogleApiAvailability; -import com.google.android.gms.common.api.ApiException; - - import org.chromium.base.Callback; - import org.chromium.base.ContextUtils; - import org.chromium.base.metrics.RecordHistogram; -@@ -424,34 +421,9 @@ public class PasswordManagerHelper { + import org.jni_zero.JniType; + import org.jni_zero.NativeMethods; + +@@ -401,34 +398,9 @@ public class PasswordManagerHelper { } public static void launchGmsUpdate(Context context) { @@ -1037,7 +1037,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom @VisibleForTesting void launchTheCredentialManager( @ManagePasswordsReferrer int referrer, -@@ -563,7 +535,7 @@ public class PasswordManagerHelper { +@@ -540,7 +512,7 @@ public class PasswordManagerHelper { CredentialManagerError.API_ERROR, CredentialManagerError.COUNT); @@ -1103,7 +1103,7 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc 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 -@@ -292,8 +292,6 @@ static_library("ui") { +@@ -301,8 +301,6 @@ static_library("ui") { "webui/flags/flags_ui.h", "webui/flags/flags_ui_handler.cc", "webui/flags/flags_ui_handler.h", @@ -1112,7 +1112,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/internals/internals_ui.cc", "webui/internals/internals_ui.h", "webui/interstitials/interstitial_ui.cc", -@@ -543,7 +541,6 @@ static_library("ui") { +@@ -554,7 +552,6 @@ static_library("ui") { "//components/find_in_page", "//components/fingerprinting_protection_filter/browser", "//components/flags_ui", @@ -1123,7 +1123,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 -@@ -153,8 +153,6 @@ android_library("java") { +@@ -155,8 +155,6 @@ android_library("java") { deps = [ ":java_resources", @@ -1132,7 +1132,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr "//base:base_java", "//build/android:build_java", "//chrome/browser/android/lifecycle:java", -@@ -466,8 +464,6 @@ robolectric_library("junit") { +@@ -469,8 +467,6 @@ robolectric_library("junit") { deps = [ ":java", ":java_resources", @@ -1144,7 +1144,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java --- a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java +++ b/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/browser/ui/signin/fullscreen_signin/FullscreenSigninMediator.java -@@ -213,21 +213,15 @@ public class FullscreenSigninMediator +@@ -224,21 +224,17 @@ public class FullscreenSigninMediator * also means that native has been initialized. */ void onInitialLoadCompleted(boolean hasPolicies) { @@ -1153,16 +1153,15 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows + boolean isSigninDisabledByPolicy = true; + boolean isMetricsReportingDisabledByPolicy = true; Log.i(TAG, "#onInitialLoadCompleted() hasPolicies:" + hasPolicies); + Profile profile = mDelegate.getProfileSupplier().get().getOriginalProfile(); if (hasPolicies) { - isSigninDisabledByPolicy = - IdentityServicesProvider.get() -- .getSigninManager( -- mDelegate.getProfileSupplier().get().getOriginalProfile()) +- .getSigninManager(profile) - .isSigninDisabledByPolicy(); -- Log.i( -- TAG, + isSigninDisabledByPolicy = true; -+ Log.i(TAG, + Log.i( + TAG, "#onInitialLoadCompleted() isSigninDisabledByPolicy:" + isSigninDisabledByPolicy); - isMetricsReportingDisabledByPolicy = @@ -1174,20 +1173,24 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/ui/webauthn/sheet_models.cc b/chrome/browser/ui/webauthn/sheet_models.cc --- a/chrome/browser/ui/webauthn/sheet_models.cc +++ b/chrome/browser/ui/webauthn/sheet_models.cc -@@ -208,12 +208,7 @@ bool AuthenticatorMechanismSelectorSheetModel::IsManageDevicesButtonVisible() +@@ -1605,16 +1605,9 @@ AuthenticatorMultiSourcePickerSheetModel:: + + bool AuthenticatorMultiSourcePickerSheetModel::IsManageDevicesButtonVisible() const { - // If any phones are shown then also show a button that goes to the settings - // page to manage them. +- using Mechanism = AuthenticatorRequestDialogModel::Mechanism; + // If any phones or passkeys from a phone are shown then also show a button + // that goes to the settings page to manage them. - return base::ranges::any_of( -- dialog_model()->mechanisms, -- [](const AuthenticatorRequestDialogModel::Mechanism& mechanism) { -- return absl::holds_alternative< -- AuthenticatorRequestDialogModel::Mechanism::Phone>(mechanism.type); +- dialog_model()->mechanisms, [](const Mechanism& mech) { +- return absl::holds_alternative(mech.type) || +- (absl::holds_alternative(mech.type) && +- absl::get(mech.type).value().source == +- device::AuthenticatorType::kPhone); - }); + return false; } - void AuthenticatorMechanismSelectorSheetModel::OnManageDevices() { + void AuthenticatorMultiSourcePickerSheetModel::OnManageDevices() { diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc @@ -1199,10 +1202,10 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/internals/internals_ui.h" #include "chrome/browser/ui/webui/interstitials/interstitial_ui.h" #include "chrome/browser/ui/webui/intro/intro_ui.h" -@@ -430,8 +429,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, - if (url.host_piece() == chrome::kChromeUIFlagsHost) { - return &NewWebUI; - } +@@ -433,8 +432,6 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, + return &NewWebUI; + if (url.host_piece() == chrome::kChromeUIDownloadInternalsHost) + return &NewWebUI; - if (url.host_piece() == chrome::kChromeUIGCMInternalsHost) - return &NewWebUI; if (url.host_piece() == chrome::kChromeUIInternalsHost) @@ -1281,7 +1284,7 @@ diff --git a/chrome/browser/webauthn/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/webauthn/authenticator_request_dialog_model.cc b/chrome/browser/webauthn/authenticator_request_dialog_model.cc --- a/chrome/browser/webauthn/authenticator_request_dialog_model.cc +++ b/chrome/browser/webauthn/authenticator_request_dialog_model.cc -@@ -2200,10 +2200,6 @@ void AuthenticatorRequestDialogController::PopulateMechanisms() { +@@ -2180,10 +2180,6 @@ void AuthenticatorRequestDialogController::PopulateMechanisms() { if (model_->cable_ui_type) { switch (*model_->cable_ui_type) { case AuthenticatorRequestDialogModel::CableUIType::CABLE_V2_2ND_FACTOR: @@ -1308,7 +1311,7 @@ diff --git a/chrome/browser/webauthn/cablev2_devices.cc b/chrome/browser/webauth diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn --- a/chrome/test/android/BUILD.gn +++ b/chrome/test/android/BUILD.gn -@@ -322,8 +322,6 @@ android_library("chrome_java_integration_test_support") { +@@ -335,8 +335,6 @@ android_library("chrome_java_integration_test_support") { deps = [ ":chrome_java_test_support_common", @@ -3148,7 +3151,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi "//base:base_java", "//build/android:build_java", "//components/externalauth/android:java", -@@ -188,7 +186,6 @@ robolectric_library("junit") { +@@ -189,7 +187,6 @@ robolectric_library("junit") { deps = [ ":java", ":signin_java_test_support", @@ -3214,7 +3217,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/GetAssertionResponseCallback.java", "java/src/org/chromium/components/webauthn/GetMatchingCredentialIdsResponseCallback.java", -@@ -64,9 +58,6 @@ android_library("java") { +@@ -65,9 +59,6 @@ android_library("java") { ] deps = [ @@ -3224,7 +3227,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ "//base:base_java", "//base/version_info/android:version_constants_java", "//build/android:build_java", -@@ -119,8 +110,6 @@ android_library("test_support_java") { +@@ -120,8 +111,6 @@ android_library("test_support_java") { source_set("android") { sources = [ "cred_man_support.h", @@ -3233,7 +3236,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", -@@ -189,7 +178,6 @@ robolectric_library("junit") { +@@ -190,7 +179,6 @@ robolectric_library("junit") { deps = [ ":java", ":test_support_java", @@ -3244,7 +3247,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/ diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java --- a/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java +++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/AuthenticatorImpl.java -@@ -70,14 +70,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -71,14 +71,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon // Similar to the above, but for pending isConditionalMediationAvailable request callbacks. private Queue mIsConditionalMediationAvailableCallbackQueue = new LinkedList<>(); @@ -3259,7 +3262,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Builds the Authenticator service implementation. -@@ -109,19 +101,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -110,19 +102,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mCreateConfirmationUiDelegate = createConfirmationUiDelegate; } @@ -3279,7 +3282,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut /** * Called by InternalAuthenticatorAndroid, which facilitates WebAuthn for processes that * originate from the browser process. Since the request is from the browser process, the -@@ -168,13 +147,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -169,14 +148,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon private void continueMakeCredential( PublicKeyCredentialCreationOptions options, MakeCredential_Response callback) { @@ -3287,13 +3290,14 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut - mPendingFido2CredentialRequest.handleMakeCredentialRequest( - options, - /* maybeClientDataHash= */ null, +- maybeCreateBrowserOptions(), - mOrigin, - this::onRegisterResponse, - this::onError); } - @Override -@@ -193,16 +165,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon + private @Nullable Bundle maybeCreateBrowserOptions() { +@@ -204,16 +175,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon onError(AuthenticatorStatus.NOT_IMPLEMENTED); return; } @@ -3310,7 +3314,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -220,11 +182,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -231,11 +192,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon decoratedCallback.call(false); return; } @@ -3322,7 +3326,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** -@@ -245,14 +202,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -256,14 +212,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.onResponse(new ArrayList()); return; } @@ -3337,7 +3341,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -264,14 +213,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -275,14 +223,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon callback.call(false); return; } @@ -3352,7 +3356,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } @Override -@@ -283,8 +224,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -294,8 +234,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon if (!mIsOperationPending || mGetAssertionCallback == null) { return; } @@ -3361,7 +3365,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut } /** Callbacks for receiving responses from the internal handlers. */ -@@ -329,7 +268,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -340,7 +278,6 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon } else if (mGetAssertionCallback != null) { mGetAssertionCallback.call(status, null, null); } @@ -3369,7 +3373,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut cleanupRequest(); } -@@ -337,13 +275,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon +@@ -348,13 +285,10 @@ public final class AuthenticatorImpl implements Authenticator, AuthenticationCon mIsOperationPending = false; mMakeCredentialCallback = null; mGetAssertionCallback = null; @@ -3564,10 +3568,10 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn --- a/content/public/android/BUILD.gn +++ b/content/public/android/BUILD.gn -@@ -144,10 +144,6 @@ android_library("content_full_java") { - deps = [ +@@ -150,10 +150,6 @@ android_library("content_full_java") { ":content_java_resources", ":content_main_dex_java", + ":content_util_java", - "$google_play_services_package:google_play_services_auth_api_phone_java", - "$google_play_services_package:google_play_services_base_java", - "$google_play_services_package:google_play_services_basement_java", @@ -3578,7 +3582,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 -@@ -3537,10 +3537,6 @@ if (is_android) { +@@ -3551,10 +3551,6 @@ if (is_android) { testonly = true sources = content_java_sources_needing_jni deps = [ @@ -3592,7 +3596,7 @@ diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn diff --git a/device/BUILD.gn b/device/BUILD.gn --- a/device/BUILD.gn +++ b/device/BUILD.gn -@@ -525,9 +525,6 @@ if (is_android) { +@@ -529,9 +529,6 @@ if (is_android) { "gamepad/android/junit/src/org/chromium/device/gamepad/GamepadMappingsTest.java", ] deps = [ diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch index a9b35b63..ab86766b 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 -@@ -386,7 +386,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams( +@@ -383,7 +383,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 5fd9cc67..a9c42c43 100644 --- a/build/patches/Remove-help-menu-item.patch +++ b/build/patches/Remove-help-menu-item.patch @@ -66,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2603,15 +2603,6 @@ public abstract class ChromeActivity +@@ -2612,15 +2612,6 @@ public abstract class ChromeActivity final Tab currentTab = getActivityTab(); @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settin diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java --- a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/ClearBrowsingDataFragment.java -@@ -897,6 +897,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat +@@ -892,6 +892,7 @@ public abstract class ClearBrowsingDataFragment extends PreferenceFragmentCompat TraceEventVectorDrawableCompat.create( getResources(), R.drawable.ic_help_and_feedback, getActivity().getTheme())); help.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); @@ -118,7 +118,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java -@@ -741,7 +741,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity { @@ -63,7 +63,7 @@ diff --git a/chrome/android/features/start_surface/java/src/org/chromium/chrome/ }); mPropertyModel.set( -@@ -1062,13 +1049,6 @@ class StartSurfaceMediator +@@ -1056,13 +1043,6 @@ class StartSurfaceMediator ThreadUtils.postOnUiThread( () -> { if (mOmniboxStub != null) { @@ -116,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/UmaSess 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 -@@ -62,7 +62,6 @@ import org.chromium.chrome.browser.magic_stack.ModuleRegistry; +@@ -61,7 +61,6 @@ import org.chromium.chrome.browser.magic_stack.ModuleRegistry; import org.chromium.chrome.browser.native_page.ContextMenuManager; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.OmniboxStub; @@ -124,7 +124,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.search_engines.TemplateUrlServiceFactory; -@@ -123,7 +122,6 @@ public class NewTabPage +@@ -125,7 +124,6 @@ public class NewTabPage TemplateUrlServiceObserver, BrowserControlsStateProvider.Observer, FeedSurfaceDelegate, @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. ModuleDelegateHost { private static final String TAG = "NewTabPage"; -@@ -153,7 +151,6 @@ public class NewTabPage +@@ -155,7 +153,6 @@ public class NewTabPage protected boolean mSearchProviderHasLogo; protected OmniboxStub mOmniboxStub; @@ -140,7 +140,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; -@@ -254,8 +251,7 @@ public class NewTabPage +@@ -257,8 +254,7 @@ public class NewTabPage @Override public boolean isVoiceSearchEnabled() { @@ -150,7 +150,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -263,24 +259,6 @@ public class NewTabPage +@@ -266,24 +262,6 @@ public class NewTabPage if (mIsDestroyed) return; FeedReliabilityLogger feedReliabilityLogger = mFeedSurfaceProvider.getReliabilityLogger(); @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -854,12 +832,6 @@ public class NewTabPage +@@ -864,12 +842,6 @@ public class NewTabPage mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger); } } @@ -188,7 +188,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage. } @Override -@@ -870,11 +842,6 @@ public class NewTabPage +@@ -880,11 +852,6 @@ public class NewTabPage } } @@ -200,7 +200,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); -@@ -986,9 +953,6 @@ public class NewTabPage +@@ -996,9 +963,6 @@ public class NewTabPage } mFeedSurfaceProvider.destroy(); mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager); @@ -224,7 +224,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/Sear diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java -@@ -65,7 +65,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; +@@ -66,7 +66,6 @@ import org.chromium.chrome.browser.settings.SettingsLauncherImpl; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.TabBuilder; import org.chromium.chrome.browser.tab.TabLaunchType; @@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable; import org.chromium.chrome.browser.ui.native_page.NativePage; -@@ -330,7 +329,7 @@ public class SearchActivity extends AsyncInitializationActivity +@@ -328,7 +327,7 @@ public class SearchActivity extends AsyncInitializationActivity /*omniboxUma*/ (url, transition, isNtp) -> {}, TabWindowManagerSingleton::getInstance, /* bookmarkState= */ (url) -> false, @@ -250,10 +250,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.toolbar.top.ToolbarPhone; - import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient.IntentOrigin; - import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient.SearchType; -@@ -192,13 +191,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { - }); + import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; + import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.SearchType; +@@ -196,13 +195,6 @@ public class SearchActivityLocationBarLayout extends LocationBarLayout { + mUrlBar.post(() -> mUrlBar.clearFocus()); } - @Override @@ -277,7 +277,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; -@@ -2598,10 +2597,6 @@ public class ToolbarManager +@@ -2596,10 +2595,6 @@ public class ToolbarManager return mLocationBar.getOmniboxStub(); } @@ -291,7 +291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -93,8 +93,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; +@@ -94,8 +94,6 @@ import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader; import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl; @@ -300,7 +300,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; -@@ -134,7 +132,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; +@@ -135,7 +133,6 @@ import org.chromium.chrome.browser.theme.TopUiThemeColorProvider; import org.chromium.chrome.browser.toolbar.ButtonDataProvider; import org.chromium.chrome.browser.toolbar.ToolbarIntentMetadata; import org.chromium.chrome.browser.toolbar.ToolbarManager; @@ -308,7 +308,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveButtonActionMenuCoordinator; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonController; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarButtonVariant; -@@ -295,7 +292,6 @@ public class RootUiCoordinator +@@ -296,7 +293,6 @@ public class RootUiCoordinator protected OneshotSupplier mIntentMetadataOneshotSupplier; protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>(); protected Supplier mStartSurfaceParentTabSupplier; @@ -316,7 +316,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; -@@ -654,9 +650,6 @@ public class RootUiCoordinator +@@ -653,9 +649,6 @@ public class RootUiCoordinator } if (mToolbarManager != null) { @@ -326,7 +326,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi mToolbarManager.destroy(); mToolbarManager = null; } -@@ -1322,39 +1315,12 @@ public class RootUiCoordinator +@@ -1323,39 +1316,12 @@ public class RootUiCoordinator () -> mToolbarManager.setUrlBarFocus( false, OmniboxFocusReason.UNFOCUS)); @@ -366,7 +366,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi OptionalNewTabButtonController newTabButtonController = new OptionalNewTabButtonController( mActivity, -@@ -1384,8 +1350,6 @@ public class RootUiCoordinator +@@ -1385,8 +1351,6 @@ public class RootUiCoordinator AdaptiveToolbarButtonVariant.NEW_TAB, newTabButtonController); adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.SHARE, shareButtonController); @@ -375,7 +375,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi adaptiveToolbarButtonController.addButtonVariant( AdaptiveToolbarButtonVariant.ADD_TO_BOOKMARKS, addToBookmarksToolbarButtonController); -@@ -1503,13 +1467,6 @@ public class RootUiCoordinator +@@ -1504,13 +1468,6 @@ public class RootUiCoordinator if (!mSupportsAppMenuSupplier.getAsBoolean()) { mToolbarManager.getToolbar().disableMenuButton(); } @@ -392,7 +392,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn --- a/chrome/browser/ui/android/omnibox/BUILD.gn +++ b/chrome/browser/ui/android/omnibox/BUILD.gn -@@ -143,7 +143,6 @@ android_library("java") { +@@ -145,7 +145,6 @@ android_library("java") { "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java", "java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java", @@ -403,15 +403,15 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBar.java -@@ -10,7 +10,6 @@ import android.view.ViewGroup; - import androidx.annotation.Nullable; +@@ -12,7 +12,6 @@ import androidx.annotation.Nullable; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.tab.Tab; - /** Container that holds the {@link UrlBar} and SSL state related with the current {@link Tab}. */ -@@ -82,11 +81,6 @@ public interface LocationBar { + import java.util.Optional; +@@ -86,11 +85,6 @@ public interface LocationBar { */ View getSecurityIconView(); @@ -426,15 +426,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/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 -@@ -40,7 +40,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate; - import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; +@@ -41,7 +41,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams; import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener; + import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState; import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManager; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; -@@ -464,13 +463,6 @@ public class LocationBarCoordinator +@@ -468,13 +467,6 @@ public class LocationBarCoordinator return mLocationBarLayout.getSecurityIconView(); } @@ -448,7 +448,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Nullable @Override public OmniboxStub getOmniboxStub() { -@@ -767,11 +759,6 @@ public class LocationBarCoordinator +@@ -771,11 +763,6 @@ public class LocationBarCoordinator // End tablet-specific methods. @@ -486,7 +486,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 -@@ -52,7 +52,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; +@@ -53,7 +53,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; @@ -494,7 +494,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.privacy.settings.PrivacyPreferencesManager; -@@ -93,8 +92,6 @@ import java.util.function.BooleanSupplier; +@@ -94,8 +93,6 @@ import java.util.function.BooleanSupplier; class LocationBarMediator implements LocationBarDataProvider.Observer, OmniboxStub, @@ -503,7 +503,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow UrlBarDelegate, OnKeyListener, ComponentCallbacks, -@@ -158,7 +155,6 @@ class LocationBarMediator +@@ -160,7 +157,6 @@ class LocationBarMediator }; private final LocationBarLayout mLocationBarLayout; @@ -511,7 +511,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private final LocationBarDataProvider mLocationBarDataProvider; private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides; private StatusCoordinator mStatusCoordinator; -@@ -234,8 +230,6 @@ class LocationBarMediator +@@ -236,8 +232,6 @@ class LocationBarMediator mEmbedderUiOverrides = embedderUiOverrides; mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate; mLocaleManager = localeManager; @@ -520,7 +520,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mProfileSupplier = profileSupplier; mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile)); mPrivacyPreferencesManager = privacyPreferencesManager; -@@ -280,8 +274,6 @@ class LocationBarMediator +@@ -282,8 +276,6 @@ class LocationBarMediator mAutocompleteCoordinator = null; mUrlCoordinator = null; mPrivacyPreferencesManager = null; @@ -529,7 +529,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow mLocationBarDataProvider.removeObserver(this); mDeferredNativeRunnables.clear(); mUrlFocusChangeListeners.clear(); -@@ -415,11 +407,6 @@ class LocationBarMediator +@@ -417,11 +409,6 @@ class LocationBarMediator mLocationBarLayout.setUnfocusedWidth(unfocusedWidth); } @@ -541,7 +541,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow /* package */ void setLensControllerForTesting(LensController lensController) { mLensController = lensController; } -@@ -674,10 +661,6 @@ class LocationBarMediator +@@ -676,10 +663,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); @@ -552,7 +552,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } /** package */ -@@ -1151,10 +1134,7 @@ class LocationBarMediator +@@ -1153,10 +1136,7 @@ class LocationBarMediator private boolean shouldShowMicButton() { if (shouldShowDeleteButton()) return false; @@ -564,7 +564,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow return false; } boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean(); -@@ -1171,6 +1151,7 @@ class LocationBarMediator +@@ -1173,6 +1153,7 @@ class LocationBarMediator } private boolean shouldShowLensButton() { @@ -572,7 +572,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. -@@ -1389,16 +1370,6 @@ class LocationBarMediator +@@ -1391,16 +1372,6 @@ class LocationBarMediator } } @@ -589,7 +589,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow @Override public void addUrlFocusChangeListener(UrlFocusChangeListener listener) { mUrlFocusChangeListeners.addObserver(listener); -@@ -1414,31 +1385,13 @@ class LocationBarMediator +@@ -1416,31 +1387,13 @@ class LocationBarMediator return mUrlHasFocus; } @@ -623,7 +623,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; -@@ -1461,20 +1414,6 @@ class LocationBarMediator +@@ -1463,20 +1416,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -681,7 +681,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.AutocompleteMatch; -@@ -332,25 +331,6 @@ public class AutocompleteController { +@@ -334,25 +333,6 @@ public class AutocompleteController { mNativeController, match.getNativeObjectRef(), matchIndex, webContents); } @@ -707,7 +707,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. -@@ -472,11 +452,6 @@ public class AutocompleteController { +@@ -473,11 +453,6 @@ public class AutocompleteController { Tab getMatchingTabForSuggestion( long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch); @@ -722,7 +722,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 -@@ -42,7 +42,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderView; +@@ -44,7 +44,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderView; import org.chromium.chrome.browser.omnibox.suggestions.header.HeaderViewBinder; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionView; import org.chromium.chrome.browser.omnibox.suggestions.tail.TailSuggestionViewBinder; @@ -730,8 +730,8 @@ 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; -@@ -336,13 +335,6 @@ public class AutocompleteCoordinator implements UrlFocusChangeListener, UrlTextC - mRecycledViewPool.onNativeInitialized(); +@@ -372,13 +371,6 @@ public class AutocompleteCoordinator + mRecycledViewPool.ifPresent(p -> p.onNativeInitialized()); } - /** @@ -747,15 +747,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/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 -@@ -38,7 +38,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On - import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.AutocompleteLoadCallback; +@@ -39,7 +39,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; -import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler; import org.chromium.chrome.browser.profiles.Profile; - import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory; import org.chromium.chrome.browser.share.ShareDelegate; -@@ -469,14 +468,6 @@ class AutocompleteMediator + import org.chromium.chrome.browser.tab.Tab; +@@ -484,13 +483,6 @@ class AutocompleteMediator mShouldPreventOmniboxAutocomplete = prevent; } @@ -763,8 +763,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow - * @see AutocompleteController#onVoiceResults(List) - */ - void onVoiceResults(@Nullable List results) { -- if (!mNativeInitialized || mAutocomplete == null) return; -- mAutocomplete.onVoiceResults(results); +- mAutocomplete.ifPresent(a -> a.onVoiceResults(results)); - } - /** 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 914eb842..7d938749 100644 --- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch +++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch @@ -21,7 +21,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc -@@ -2828,7 +2828,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2808,7 +2808,7 @@ void DocumentLoader::CommitNavigation() { // that the name would be nulled and if the name is accessed after we will // fire a UseCounter. If we decide to move forward with this change, we'd // actually clean the name here. @@ -30,7 +30,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p frame_->Tree().ExperimentalSetNulledName(); } -@@ -2839,6 +2839,7 @@ void DocumentLoader::CommitNavigation() { +@@ -2819,6 +2819,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 new file mode 100644 index 00000000..c465b8b7 --- /dev/null +++ b/build/patches/Restore-BookmarkToolbar-setCurrentFolder.patch @@ -0,0 +1,149 @@ +From: uazo +Date: Thu, 18 Jul 2024 14:03:12 +0000 +Subject: Restore BookmarkToolbar#setCurrentFolder + +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 | 8 ++++++++ + .../browser/bookmarks/BookmarkToolbarViewBinder.java | 4 ++++ + 5 files changed, 26 insertions(+) + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbar.java +@@ -10,11 +10,13 @@ import android.view.MenuItem; + import android.view.View.OnClickListener; + + import androidx.annotation.IdRes; ++import androidx.annotation.Nullable; + import androidx.appcompat.widget.Toolbar.OnMenuItemClickListener; + import androidx.core.view.MenuCompat; + + import org.chromium.chrome.R; + import org.chromium.chrome.browser.bookmarks.BookmarkUiState.BookmarkUiMode; ++import org.chromium.components.bookmarks.BookmarkItem; + import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.browser_ui.util.ToolbarUtils; + import org.chromium.components.browser_ui.widget.selectable_list.SelectableListToolbar; +@@ -30,9 +32,11 @@ import java.util.function.Function; + */ + public class BookmarkToolbar extends SelectableListToolbar + implements OnMenuItemClickListener, OnClickListener { ++ private BookmarkModel mBookmarkModel; + private BookmarkOpener mBookmarkOpener; + private SelectionDelegate mSelectionDelegate; + ++ private @Nullable BookmarkItem mCurrentFolder; + private boolean mEditButtonVisible; + private boolean mNewFolderButtonVisible; + private boolean mNewFolderButtonEnabled; +@@ -60,6 +64,10 @@ public class BookmarkToolbar extends SelectableListToolbar + setOnMenuItemClickListener(this); + } + ++ void setBookmarkModel(BookmarkModel bookmarkModel) { ++ mBookmarkModel = bookmarkModel; ++ } ++ + void setBookmarkOpener(BookmarkOpener bookmarkOpener) { + mBookmarkOpener = bookmarkOpener; + } +@@ -167,6 +175,10 @@ public class BookmarkToolbar extends SelectableListToolbar + getMenu().findItem(id).setChecked(true); + } + ++ void setCurrentFolder(BookmarkId folder) { ++ mCurrentFolder = mBookmarkModel.getBookmarkById(folder); ++ } ++ + void setNavigateBackRunnable(Runnable navigateBackRunnable) { + mNavigateBackRunnable = navigateBackRunnable; + } +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarCoordinator.java +@@ -55,6 +55,7 @@ public class BookmarkToolbarCoordinator { + searchDelegate, R.string.bookmark_toolbar_search, R.id.search_menu_id); + + mModel = new PropertyModel.Builder(BookmarkToolbarProperties.ALL_KEYS).build(); ++ mModel.set(BookmarkToolbarProperties.BOOKMARK_MODEL, bookmarkModel); + mModel.set(BookmarkToolbarProperties.BOOKMARK_OPENER, bookmarkOpener); + mModel.set(BookmarkToolbarProperties.SELECTION_DELEGATE, selectionDelegate); + mModel.set(BookmarkToolbarProperties.BOOKMARK_UI_MODE, BookmarkUiMode.LOADING); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarMediator.java +@@ -290,6 +290,7 @@ class BookmarkToolbarMediator + @Override + public void onFolderStateSet(BookmarkId folder) { + mCurrentFolder = folder; ++ mModel.set(BookmarkToolbarProperties.CURRENT_FOLDER, mCurrentFolder); + + BookmarkItem folderItem = + mCurrentFolder == null ? null : mBookmarkModel.getBookmarkById(mCurrentFolder); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarProperties.java +@@ -4,6 +4,7 @@ + + package org.chromium.chrome.browser.bookmarks; + ++import org.chromium.components.bookmarks.BookmarkId; + import org.chromium.components.browser_ui.widget.selectable_list.SelectionDelegate; + import org.chromium.ui.modelutil.PropertyKey; + import org.chromium.ui.modelutil.PropertyModel.WritableBooleanPropertyKey; +@@ -19,6 +20,8 @@ import java.util.function.Function; + */ + class BookmarkToolbarProperties { + /** Dependencies */ ++ static final WritableObjectPropertyKey BOOKMARK_MODEL = ++ new WritableObjectPropertyKey<>(); + static final WritableObjectPropertyKey BOOKMARK_OPENER = + new WritableObjectPropertyKey<>(); + +@@ -68,6 +71,10 @@ class BookmarkToolbarProperties { + static final WritableObjectPropertyKey FAKE_SELECTION_STATE_CHANGE = + new WritableObjectPropertyKey<>(/* skipEquality= */ true); + ++ /** Bookmark state properties. */ ++ static final WritableObjectPropertyKey CURRENT_FOLDER = ++ new WritableObjectPropertyKey<>(/* skipEquality= */ true); ++ + /** Callables to delegate business logic back to the mediator */ + static final WritableObjectPropertyKey> MENU_ID_CLICKED_FUNCTION = + new WritableObjectPropertyKey<>(); +@@ -88,6 +95,7 @@ class BookmarkToolbarProperties { + NEW_FOLDER_BUTTON_VISIBLE, + NEW_FOLDER_BUTTON_ENABLED, + NAVIGATION_BUTTON_STATE, ++ CURRENT_FOLDER, + SORT_MENU_IDS, + SORT_MENU_IDS_ENABLED, + CHECKED_SORT_MENU_ID, +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkToolbarViewBinder.java +@@ -13,6 +13,8 @@ class BookmarkToolbarViewBinder { + public static void bind(PropertyModel model, BookmarkToolbar bookmarkToolbar, PropertyKey key) { + if (key == BookmarkToolbarProperties.BOOKMARK_OPENER) { + bookmarkToolbar.setBookmarkOpener(model.get(BookmarkToolbarProperties.BOOKMARK_OPENER)); ++ } else if (key == BookmarkToolbarProperties.BOOKMARK_MODEL) { ++ bookmarkToolbar.setBookmarkModel(model.get(BookmarkToolbarProperties.BOOKMARK_MODEL)); + } else if (key == BookmarkToolbarProperties.SELECTION_DELEGATE) { + bookmarkToolbar.setSelectionDelegate( + model.get(BookmarkToolbarProperties.SELECTION_DELEGATE)); +@@ -52,6 +54,8 @@ class BookmarkToolbarViewBinder { + } else if (key == BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID) { + bookmarkToolbar.setCheckedViewMenuId( + model.get(BookmarkToolbarProperties.CHECKED_VIEW_MENU_ID)); ++ } else if (key == BookmarkToolbarProperties.CURRENT_FOLDER) { ++ bookmarkToolbar.setCurrentFolder(model.get(BookmarkToolbarProperties.CURRENT_FOLDER)); + } else if (key == BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE) { + bookmarkToolbar.setNavigateBackRunnable( + model.get(BookmarkToolbarProperties.NAVIGATE_BACK_RUNNABLE)); +-- diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch index a45dff96..a8dd5bca 100644 --- a/build/patches/Restore-LastTabStandingTracker.patch +++ b/build/patches/Restore-LastTabStandingTracker.patch @@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -1982,6 +1982,16 @@ static_library("browser") { +@@ -1935,6 +1935,16 @@ static_library("browser") { ] } @@ -372,7 +372,7 @@ new file mode 100644 + private: + explicit LastTabStandingTrackerTabHelper(content::WebContents* webContents); + friend class content::WebContentsUserData; -+ absl::optional last_committed_origin_; ++ std::optional last_committed_origin_; + + WEB_CONTENTS_USER_DATA_KEY_DECL(); +}; @@ -389,7 +389,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/permissions/notifications_engagement_service_factory.h" #include "chrome/browser/permissions/one_time_permissions_tracker_factory.h" #include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h" -@@ -983,6 +984,7 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -1006,6 +1007,7 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) OnDeviceTailModelServiceFactory::GetInstance(); #endif @@ -400,7 +400,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc --- a/chrome/browser/ui/tab_helpers.cc +++ b/chrome/browser/ui/tab_helpers.cc -@@ -53,6 +53,7 @@ +@@ -55,6 +55,7 @@ #include "chrome/browser/page_info/page_info_features.h" #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h" #include "chrome/browser/password_manager/chrome_password_manager_client.h" @@ -408,7 +408,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/permissions/one_time_permissions_tracker_helper.h" #include "chrome/browser/predictors/loading_predictor_factory.h" #include "chrome/browser/predictors/loading_predictor_tab_helper.h" -@@ -419,6 +420,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -421,6 +422,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 952a6cc5..45ba51e0 100644 --- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch +++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch @@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -254,6 +254,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -268,6 +268,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kReaderModeInCCT, &kRecordSuppressionMetrics, &kReengagementNotification, @@ -34,9 +34,9 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java -@@ -338,6 +338,7 @@ public abstract class ChromeFeatureList { - "LookalikeUrlNavigationSuggestionsUI"; - public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; +@@ -347,6 +347,7 @@ public abstract class ChromeFeatureList { + public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = + "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; + public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = @@ -45,23 +45,23 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java -@@ -12,6 +12,7 @@ import androidx.annotation.Nullable; - import androidx.annotation.Px; +@@ -11,6 +11,7 @@ import androidx.annotation.NonNull; + import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.base.supplier.Supplier; import org.chromium.chrome.browser.omnibox.UrlBarEditingTextStateProvider; import org.chromium.chrome.browser.omnibox.styles.OmniboxImageSupplier; -@@ -53,6 +54,7 @@ class DropdownItemViewInfoListBuilder { +@@ -49,6 +50,7 @@ class DropdownItemViewInfoListBuilder { + private @Nullable Supplier mShareDelegateSupplier; private @NonNull Optional mImageSupplier; private @NonNull BookmarkState mBookmarkState; - private @Px int mDropdownHeight; + private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor; DropdownItemViewInfoListBuilder( @NonNull Supplier tabSupplier, @NonNull BookmarkState bookmarkState) { -@@ -86,9 +88,11 @@ class DropdownItemViewInfoListBuilder { +@@ -81,9 +83,11 @@ class DropdownItemViewInfoListBuilder { mGroupSeparatorProcessor = new GroupSeparatorProcessor(context); mHeaderProcessor = new HeaderProcessor(context); @@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow registerSuggestionProcessor( new AnswerSuggestionProcessor(context, host, textProvider, mImageSupplier)); registerSuggestionProcessor( -@@ -195,6 +199,9 @@ class DropdownItemViewInfoListBuilder { +@@ -170,6 +174,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 13f0ac44..4c8a14c9 100644 --- a/build/patches/Restore-Simplified-NTP-launch.patch +++ b/build/patches/Restore-Simplified-NTP-launch.patch @@ -6,24 +6,34 @@ This reverts commit 4d0e4483c5f77c66a8b6193e8a3bec5d0624d6ad. License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/android/chrome_java_resources.gni | 1 + - chrome/android/chrome_java_sources.gni | 1 + - .../java/res/layout/new_tab_page_layout.xml | 7 ++ - .../android/java/res/layout/ntp_shortcuts.xml | 65 +++++++++++++++++++ - .../feedback/ChromeFeedbackCollector.java | 1 + - .../feedback/SimplifiedNtpFeedbackSource.java | 38 +++++++++++ - .../identity_disc/IdentityDiscController.java | 5 +- - .../NativePageNavigationDelegateImpl.java | 4 +- - .../chrome/browser/ntp/NewTabPageLayout.java | 31 ++++++++- - .../SuggestionsNavigationDelegate.java | 17 +++++ - .../flags/android/chrome_feature_list.cc | 1 + - .../browser/flags/ChromeFeatureList.java | 3 +- - .../Restore-Simplified-NTP-launch.inc | 12 ++++ - .../Restore-Simplified-NTP-launch.inc | 5 ++ - .../Restore-Simplified-NTP-launch.inc | 1 + - 15 files changed, 186 insertions(+), 6 deletions(-) + chrome/android/chrome_java_resources.gni | 1 + + chrome/android/chrome_java_sources.gni | 2 + + .../java/res/layout/mv_tiles_layout.xml | 13 +- + .../java/res/layout/new_tab_page_layout.xml | 7 + + .../android/java/res/layout/ntp_shortcuts.xml | 65 ++++++ + chrome/android/java/res/values/attrs.xml | 4 + + chrome/android/java/res/values/dimens.xml | 2 + + .../feedback/ChromeFeedbackCollector.java | 1 + + .../feedback/SimplifiedNtpFeedbackSource.java | 38 ++++ + .../identity_disc/IdentityDiscController.java | 5 +- + .../NativePageNavigationDelegateImpl.java | 4 +- + .../chrome/browser/ntp/NewTabPageLayout.java | 25 ++- + .../SuggestionsNavigationDelegate.java | 17 ++ + .../mostvisited/MostVisitedSitesBridge.java | 2 +- + .../tile/MostVisitedTilesCoordinator.java | 10 +- + .../tile/MostVisitedTilesGridLayout.java | 194 ++++++++++++++++++ + .../tile/MostVisitedTilesMediator.java | 9 +- + .../engagement/important_sites_util.cc | 2 +- + .../flags/android/chrome_feature_list.cc | 1 + + .../browser/flags/ChromeFeatureList.java | 5 +- + .../history/core/browser/top_sites_impl.h | 2 +- + .../Restore-Simplified-NTP-launch.inc | 12 ++ + .../Restore-Simplified-NTP-launch.inc | 6 + + .../Restore-Simplified-NTP-launch.inc | 1 + + 24 files changed, 397 insertions(+), 31 deletions(-) create mode 100644 chrome/android/java/res/layout/ntp_shortcuts.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/feedback/SimplifiedNtpFeedbackSource.java + create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Restore-Simplified-NTP-launch.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/Restore-Simplified-NTP-launch.inc @@ -31,7 +41,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -537,6 +537,7 @@ chrome_java_resources = [ +@@ -538,6 +538,7 @@ chrome_java_resources = [ "java/res/layout/new_tab_page_layout.xml", "java/res/layout/new_tab_page_tile_grid_placeholder.xml", "java/res/layout/open_full_chrome_history_header.xml", @@ -42,7 +52,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 -@@ -623,6 +623,7 @@ chrome_java_sources = [ +@@ -622,6 +622,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", @@ -50,10 +60,40 @@ 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", +@@ -1058,6 +1059,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", ++ "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesProperties.java", + "java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesViewBinder.java", +diff --git a/chrome/android/java/res/layout/mv_tiles_layout.xml b/chrome/android/java/res/layout/mv_tiles_layout.xml +--- a/chrome/android/java/res/layout/mv_tiles_layout.xml ++++ b/chrome/android/java/res/layout/mv_tiles_layout.xml +@@ -5,14 +5,9 @@ Use of this source code is governed by a BSD-style license that can be + found in the LICENSE file. + --> + +- +- +- +- ++ android:layout_gravity="center_horizontal" /> 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 -@@ -37,6 +37,13 @@ found in the LICENSE file. +@@ -38,6 +38,13 @@ found in the LICENSE file. android:layout_marginTop="16dp" android:visibility="gone"/> @@ -137,6 +177,32 @@ new file mode 100644 + app:chromeDrawableTint="@color/default_icon_color_light" /> + + +diff --git a/chrome/android/java/res/values/attrs.xml b/chrome/android/java/res/values/attrs.xml +--- a/chrome/android/java/res/values/attrs.xml ++++ b/chrome/android/java/res/values/attrs.xml +@@ -15,6 +15,10 @@ found in the LICENSE file. + + + ++ ++ ++ ++ + + + +diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml +--- a/chrome/android/java/res/values/dimens.xml ++++ b/chrome/android/java/res/values/dimens.xml +@@ -129,6 +129,8 @@ found in the LICENSE file. + 62dp + + ++ 6dp ++ 4dp + 20dp + @dimen/signin_promo_lateral_paddings + 17dp diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java --- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ChromeFeedbackCollector.java @@ -209,13 +275,14 @@ 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/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 -@@ -23,9 +23,9 @@ import org.chromium.ui.mojom.WindowOpenDisposition; +@@ -29,10 +29,10 @@ import java.util.List; /** {@link NativePageNavigationDelegate} implementation. */ public class NativePageNavigationDelegateImpl implements NativePageNavigationDelegate { - private final Profile mProfile; + protected final Profile mProfile; private final TabModelSelector mTabModelSelector; + private final TabGroupCreationDialogManager mTabGroupCreationDialogManager; - private final Tab mTab; + protected final Tab mTab; @@ -224,23 +291,23 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -17,6 +17,7 @@ import android.util.AttributeSet; +@@ -16,6 +16,7 @@ import android.text.Editable; + import android.util.AttributeSet; import android.view.DragEvent; - import android.view.Gravity; import android.view.LayoutInflater; +import android.view.ViewStub; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; -@@ -34,6 +35,7 @@ import org.chromium.chrome.R; +@@ -32,6 +33,7 @@ import org.chromium.base.supplier.ObservableSupplier; + import org.chromium.chrome.R; import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate; - import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensEntryPoint; +import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.lens.LensMetrics; import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher; import org.chromium.chrome.browser.logo.LogoBridge.Logo; -@@ -98,6 +100,8 @@ public class NewTabPageLayout extends LinearLayout { +@@ -92,6 +94,8 @@ public class NewTabPageLayout extends LinearLayout { private @Nullable DisplayStyleObserver mDisplayStyleObserver; private CallbackController mCallbackController = new CallbackController(); @@ -249,44 +316,33 @@ 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. -@@ -308,6 +312,7 @@ public class NewTabPageLayout extends LinearLayout { - isScrollableMvtEnabled(), - searchProviderIsGoogle); +@@ -104,7 +108,7 @@ public class NewTabPageLayout extends LinearLayout { + */ + private boolean mHasShownView; + +- private boolean mSearchProviderHasLogo = true; ++ private boolean mSearchProviderHasLogo = false; + private boolean mSearchProviderIsGoogle; + private boolean mShowingNonStandardGoogleLogo; + +@@ -278,6 +282,7 @@ public class NewTabPageLayout extends LinearLayout { + initializeMostVisitedTilesCoordinator( + mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate); initializeSearchBoxBackground(); + initializeShortcuts(); initializeSearchBoxTextView(); initializeVoiceSearchButton(); initializeLensButton(); -@@ -808,12 +813,15 @@ public class NewTabPageLayout extends LinearLayout { - marginLayoutParams.leftMargin = lateralPaddingsForNtp; - marginLayoutParams.rightMargin = lateralPaddingsForNtp; - } -- marginLayoutParams.topMargin = -+ // when simplified NTP is enabled the top marging is included in its view's padding -+ if (mShortcutsView == null) { -+ marginLayoutParams.topMargin = - getResources() - .getDimensionPixelSize( - shouldShowLogo() - ? R.dimen.tile_grid_layout_top_margin - : R.dimen.tile_grid_layout_no_logo_top_margin); -+ } - marginLayoutParams.bottomMargin = - getResources() - .getDimensionPixelSize(R.dimen.tile_carousel_layout_bottom_margin); -@@ -821,7 +829,10 @@ public class NewTabPageLayout extends LinearLayout { - // Set a bit more top padding on the tile grid if there is no logo. - ViewGroup.LayoutParams layoutParams = mMvTilesContainerLayout.getLayoutParams(); - layoutParams.width = ViewGroup.LayoutParams.WRAP_CONTENT; -- marginLayoutParams.topMargin = getGridMvtTopMargin(); -+ // when simplified NTP is enabled the top marging is included in its view's padding -+ if (mShortcutsView == null) { -+ marginLayoutParams.topMargin = getGridMvtTopMargin(); -+ } - marginLayoutParams.bottomMargin = getGridMvtBottomMargin(); +@@ -645,7 +650,7 @@ public class NewTabPageLayout extends LinearLayout { + && mInitialized) { + return; } +- mSearchProviderHasLogo = hasLogo; ++ mSearchProviderHasLogo = false; + mSearchProviderIsGoogle = isGoogle; -@@ -1141,6 +1152,22 @@ public class NewTabPageLayout extends LinearLayout { + boolean isSearchProviderMarginUpdated = +@@ -1017,6 +1022,22 @@ public class NewTabPageLayout extends LinearLayout { return mMostVisitedTilesCoordinator; } @@ -312,7 +368,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java -@@ -14,6 +14,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost; +@@ -15,6 +15,11 @@ import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.ui.base.PageTransition; @@ -324,8 +380,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug /** Extension of {@link NativePageNavigationDelegate} with suggestions-specific methods. */ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateImpl { public SuggestionsNavigationDelegate( -@@ -25,6 +30,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI - super(activity, profile, host, tabModelSelector, tab); +@@ -27,6 +32,18 @@ public class SuggestionsNavigationDelegate extends NativePageNavigationDelegateI + super(activity, profile, host, tabModelSelector, tabGroupCreationDialogManager, tab); } + public void navigateToBookmarks() { @@ -343,10 +399,304 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug /** * Opens the suggestions page without recording metrics. * +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java +@@ -21,7 +21,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { + * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if + * the UI supports it, getting more can raise unexpected issues. + */ +- public static final int MAX_TILE_COUNT = 12; ++ public static final int MAX_TILE_COUNT = 12 * 2; + + private long mNativeMostVisitedSitesBridge; + +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java +@@ -38,7 +38,7 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver + private final MostVisitedTilesMediator mMediator; + private final WindowAndroid mWindowAndroid; + private final UiConfig mUiConfig; +- private final PropertyModelChangeProcessor mModelChangeProcessor; ++ private PropertyModelChangeProcessor mModelChangeProcessor; + private TileRenderer mRenderer; + private ContextMenuManager mContextMenuManager; + private OfflinePageBridge mOfflinePageBridge; +@@ -66,17 +66,11 @@ public class MostVisitedTilesCoordinator implements ConfigurationChangedObserver + mWindowAndroid = windowAndroid; + + ((ViewStub) mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout_stub)).inflate(); +- MostVisitedTilesLayout tilesLayout = ++ MostVisitedTilesGridLayout tilesLayout = + mvTilesContainerLayout.findViewById(R.id.mv_tiles_layout); + + mUiConfig = new UiConfig(tilesLayout); + PropertyModel propertyModel = new PropertyModel(MostVisitedTilesProperties.ALL_KEYS); +- mModelChangeProcessor = +- PropertyModelChangeProcessor.create( +- propertyModel, +- new MostVisitedTilesViewBinder.ViewHolder( +- mvTilesContainerLayout, tilesLayout), +- MostVisitedTilesViewBinder::bind); + mRenderer = + new TileRenderer( + mActivity, SuggestionsConfig.getTileStyle(mUiConfig), TITLE_LINES, null); +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java +new file mode 100644 +--- /dev/null ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesGridLayout.java +@@ -0,0 +1,194 @@ ++// Copyright 2015 The Chromium Authors ++// Use of this source code is governed by a BSD-style license that can be ++// found in the LICENSE file. ++ ++package org.chromium.chrome.browser.suggestions.tile; ++ ++import android.content.Context; ++import android.content.res.Configuration; ++import android.content.res.Resources; ++import android.content.res.TypedArray; ++import android.util.AttributeSet; ++import android.util.Pair; ++import android.view.View; ++import android.widget.FrameLayout; ++ ++import androidx.annotation.Nullable; ++import androidx.annotation.VisibleForTesting; ++ ++import org.chromium.base.MathUtils; ++import org.chromium.base.library_loader.LibraryLoader; ++import org.chromium.chrome.R; ++import org.chromium.chrome.browser.flags.ChromeFeatureList; ++import org.chromium.chrome.browser.ntp.FeedPositionUtils; ++import org.chromium.chrome.browser.suggestions.SiteSuggestion; ++import org.chromium.ui.base.DeviceFormFactor; ++ ++/** A layout that arranges tiles in a grid. */ ++public class MostVisitedTilesGridLayout extends FrameLayout { ++ private final int mMinHorizontalSpacing; ++ private final int mMaxHorizontalSpacing; ++ private final int mMaxWidth; ++ ++ private int mVerticalSpacing; ++ private int mMaxRows = 4; ++ private int mMaxColumns = 4; ++ ++ /** ++ * Constructor for inflating from XML. ++ * ++ * @param context The view context in which this item will be shown. ++ * @param attrs The attributes of the XML tag that is inflating the view. ++ */ ++ public MostVisitedTilesGridLayout(Context context, AttributeSet attrs) { ++ super(context, attrs); ++ ++ Resources res = getResources(); ++ mVerticalSpacing = ++ getResources().getDimensionPixelOffset(getGridMVTVerticalSpacingResourcesId()); ++ TypedArray styledAttrs = ++ context.obtainStyledAttributes(attrs, R.styleable.MostVisitedTilesGridLayout); ++ mMinHorizontalSpacing = ++ styledAttrs.getDimensionPixelOffset( ++ R.styleable.MostVisitedTilesGridLayout_minHorizontalSpacing, ++ res.getDimensionPixelOffset( ++ R.dimen.tile_grid_layout_min_horizontal_spacing)); ++ styledAttrs.recycle(); ++ mMaxHorizontalSpacing = Integer.MAX_VALUE; ++ mMaxWidth = Integer.MAX_VALUE; ++ } ++ ++ /** Sets the maximum number of rows to display. Any items that don't fit will be hidden. */ ++ public void setMaxRows(int rows) { ++ mMaxRows = rows; ++ } ++ ++ /** Sets the maximum number of columns to display. Any items that don't fit will be hidden. */ ++ public void setMaxColumns(int columns) { ++ mMaxColumns = columns; ++ } ++ ++ @Override ++ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { ++ int totalWidth = Math.min(MeasureSpec.getSize(widthMeasureSpec), mMaxWidth); ++ int childCount = getChildCount(); ++ if (childCount == 0) { ++ setMeasuredDimension(totalWidth, resolveSize(0, heightMeasureSpec)); ++ return; ++ } ++ ++ // Measure the children. We don't use the ViewGroup.measureChildren() method here because ++ // it only measures visible children. In a situation where a child is invisible before ++ // this measurement and we decide to show it after the measurement, it will not have its ++ // dimensions and will not be displayed. ++ for (int i = 0; i < childCount; i++) { ++ measureChild(getChildAt(i), MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED); ++ } ++ ++ // Determine the number of columns that will fit. ++ int childHeight = getChildAt(0).getMeasuredHeight(); ++ int childWidth = getChildAt(0).getMeasuredWidth(); ++ int numColumns = ++ MathUtils.clamp( ++ (totalWidth + mMinHorizontalSpacing) / (childWidth + mMinHorizontalSpacing), ++ 1, ++ mMaxColumns); ++ ++ // Determine how much padding to use between and around the tiles. ++ int gridWidthMinusColumns = Math.max(0, totalWidth - numColumns * childWidth); ++ Pair gridProperties = ++ computeHorizontalDimensions(gridWidthMinusColumns, numColumns); ++ int gridStart = gridProperties.first; ++ int horizontalSpacing = gridProperties.second; ++ ++ // Limit the number of rows to mMaxRows. ++ int visibleChildCount = Math.min(childCount, mMaxRows * numColumns); ++ ++ // Arrange the visible children in a grid. ++ int numRows = (visibleChildCount + numColumns - 1) / numColumns; ++ int paddingTop = getPaddingTop(); ++ boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; ++ ++ for (int i = 0; i < visibleChildCount; i++) { ++ View child = getChildAt(i); ++ child.setVisibility(View.VISIBLE); ++ int row = i / numColumns; ++ int column = i % numColumns; ++ int childTop = row * (childHeight + mVerticalSpacing); ++ int childStart = gridStart + (column * (childWidth + horizontalSpacing)); ++ MarginLayoutParams layoutParams = (MarginLayoutParams) child.getLayoutParams(); ++ layoutParams.setMargins(isRtl ? 0 : childStart, childTop, isRtl ? childStart : 0, 0); ++ child.setLayoutParams(layoutParams); ++ } ++ ++ // Hide any extra children in case there are more than needed for the maximum number of ++ // rows. ++ for (int i = visibleChildCount; i < childCount; i++) { ++ getChildAt(i).setVisibility(View.GONE); ++ } ++ ++ int totalHeight = ++ paddingTop ++ + getPaddingBottom() ++ + numRows * childHeight ++ + (numRows - 1) * mVerticalSpacing; ++ ++ setMeasuredDimension(totalWidth, resolveSize(totalHeight, heightMeasureSpec)); ++ } ++ ++ /** ++ * @param availableWidth The space available to spread between and around the tiles. ++ * @param numColumns The number of columns to be organised. ++ * @return The [gridStart, horizontalSpacing] pair of dimensions. ++ */ ++ @VisibleForTesting ++ Pair computeHorizontalDimensions(int availableWidth, int numColumns) { ++ int gridStart; ++ float horizontalSpacing; ++ ++ // Identically sized spacers are added both between and around the tiles. ++ int spacerCount = numColumns + 1; ++ horizontalSpacing = (float) availableWidth / spacerCount; ++ gridStart = Math.round(horizontalSpacing); ++ ++ if (horizontalSpacing < mMinHorizontalSpacing ++ || horizontalSpacing > mMaxHorizontalSpacing) { ++ // Ensure column spacing isn't greater than mMaxHorizontalSpacing. ++ long gridSidePadding = availableWidth - (long) mMaxHorizontalSpacing * (numColumns - 1); ++ if (gridSidePadding > 0) { ++ horizontalSpacing = mMaxHorizontalSpacing; ++ gridStart = (int) (gridSidePadding / 2); ++ } else { ++ horizontalSpacing = (float) availableWidth / Math.max(1, numColumns - 1); ++ gridStart = 0; ++ } ++ } ++ int screenWidth = getResources().getDisplayMetrics().widthPixels; ++ int screenHeight = getResources().getDisplayMetrics().heightPixels; ++ String logMessage = ++ "|horizontalSpacing| = " ++ + horizontalSpacing ++ + " |numColumns| = " ++ + numColumns ++ + " |availableWidth| = " ++ + availableWidth ++ + " |screenWidth| = " ++ + screenWidth ++ + " |screenHeight| = " ++ + screenHeight ++ + "."; ++ assert horizontalSpacing >= mMinHorizontalSpacing ++ : "Horizontal spacing shouldn't be smaller than minimal horizontal spacing: " ++ + logMessage; ++ assert horizontalSpacing <= mMaxHorizontalSpacing ++ : "Horizontal spacing shouldn't be larger than maximal horizontal spacing: " ++ + logMessage; ++ ++ return Pair.create(gridStart, Math.round(horizontalSpacing)); ++ } ++ ++ // TODO(crbug.com/40226731): Remove this method when the Feed position experiment is cleaned up. ++ private int getGridMVTVerticalSpacingResourcesId() { ++ return R.dimen.tile_grid_layout_vertical_spacing; ++ } ++} +diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java ++++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java +@@ -12,6 +12,7 @@ import static org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesPrope + + import android.content.res.Configuration; + import android.content.res.Resources; ++import android.view.ViewGroup; + import android.view.ViewStub; + + import androidx.annotation.Nullable; +@@ -37,7 +38,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + + private final Resources mResources; + private final UiConfig mUiConfig; +- private final MostVisitedTilesLayout mMvTilesLayout; ++ private final ViewGroup mMvTilesLayout; + private final ViewStub mNoMvPlaceholderStub; + private final PropertyModel mModel; + private final boolean mIsTablet; +@@ -59,7 +60,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + public MostVisitedTilesMediator( + Resources resources, + UiConfig uiConfig, +- MostVisitedTilesLayout mvTilesLayout, ++ ViewGroup mvTilesLayout, + ViewStub noMvPlaceholderStub, + TileRenderer renderer, + PropertyModel propertyModel, +@@ -166,8 +167,8 @@ public class MostVisitedTilesMediator implements TileGroup.Observer, TemplateUrl + } + + public void destroy() { +- if (mMvTilesLayout != null) { +- mMvTilesLayout.destroy(); ++ if (mMvTilesLayout instanceof MostVisitedTilesLayout) { ++ ((MostVisitedTilesLayout)mMvTilesLayout).destroy(); + } + + if (mTileGroup != null) { +diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc +--- a/chrome/browser/engagement/important_sites_util.cc ++++ b/chrome/browser/engagement/important_sites_util.cc +@@ -66,7 +66,7 @@ static const int kTimesIgnoredForSuppression = 3; + // These are the maximum # of bookmarks we can use as signals. If the user has + // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all + // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. +-static const int kMaxBookmarks = 5; ++static const int kMaxBookmarks = 4 * 4 + 2; + + // We need this to be a macro, as the histogram macros cache their pointers + // after the first call, so when we change the uma name we check fail if we're 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 -@@ -228,6 +228,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -240,6 +240,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kGcmNativeBackgroundTask, &kIncognitoReauthenticationForAndroid, &kIncognitoScreenshot, @@ -357,23 +707,44 @@ 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 -@@ -340,6 +340,7 @@ public abstract class ChromeFeatureList { - "LookalikeUrlNavigationSuggestionsUI"; - public static final String MAGIC_STACK_ANDROID = "MagicStackAndroid"; +@@ -349,6 +349,7 @@ public abstract class ChromeFeatureList { + public static final String MAYLAUNCHURL_USES_SEPARATE_STORAGE_PARTITION = + "MayLaunchUrlUsesSeparateStoragePartition"; public static final String MESSAGES_FOR_ANDROID_ADS_BLOCKED = "MessagesForAndroidAdsBlocked"; + public static final String SIMPLIFIED_NTP = "SimplifiedNTP"; public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox"; public static final String MIGRATE_ACCOUNT_MANAGEMENT_SETTINGS_TO_CAPABILITIES = "MigrateAccountManagementSettingsToCapabilities"; -@@ -637,7 +638,7 @@ public abstract class ChromeFeatureList { +@@ -625,7 +626,7 @@ public abstract class ChromeFeatureList { + public static final CachedFlag sIncognitoReauthenticationForAndroid = + newCachedFlag(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, true); + public static final CachedFlag sLogoPolish = newCachedFlag(LOGO_POLISH, 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 sMultiInstanceApplicationStatusCleanup = + newCachedFlag(MUlTI_INSTANCE_APPLICATION_STATUS_CLEANUP, false); + public static final CachedFlag sNavBarColorMatchesTabBackground = +@@ -658,7 +659,7 @@ public abstract class ChromeFeatureList { newCachedFlag(START_SURFACE_RETURN_TIME, true); public static final CachedFlag sStopAppIndexingReport = newCachedFlag(STOP_APP_INDEXING_REPORT, true); - public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, true); + public static final CachedFlag sSurfacePolish = newCachedFlag(SURFACE_POLISH, false); + public static final CachedFlag sSurfacePolishForToolbarKillSwitch = + newCachedFlag(SURFACE_POLISH_FOR_TOOLBAR_KILL_SWITCH, true); public static final CachedFlag sTabDragDropAsWindowAndroid = - newCachedFlag(TAB_DRAG_DROP_ANDROID, false); - public static final CachedFlag sTabGroupPaneAndroid = +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; + + // How many top sites to store in the cache. +-static constexpr size_t kTopSitesNumber = 10; ++static constexpr size_t kTopSitesNumber = 4 * 4 + 2; + + // 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 diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-Simplified-NTP-launch.inc new file mode 100644 --- /dev/null @@ -395,12 +766,13 @@ 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,6 @@ +CROMITE_FEATURE(kSimplifiedNTP, + "SimplifiedNTP", + base::FEATURE_ENABLED_BY_DEFAULT); + +SET_CROMITE_FEATURE_DISABLED(kSurfacePolish); ++SET_CROMITE_FEATURE_DISABLED(kMagicStackAndroid); 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 f8296dac..e64267d3 100644 --- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch +++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch @@ -26,15 +26,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/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 -@@ -47,6 +47,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; +@@ -50,6 +50,7 @@ import org.chromium.chrome.browser.sync.settings.ManageSyncSettings; import org.chromium.chrome.browser.sync.settings.SignInPreference; import org.chromium.chrome.browser.sync.settings.SyncPromoPreference; import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils; +import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarFeatures; import org.chromium.chrome.browser.toolbar.adaptive.AdaptiveToolbarStatePredictor; import org.chromium.chrome.browser.tracing.settings.DeveloperSettings; - import org.chromium.chrome.browser.ui.signin.SyncPromoController; -@@ -250,7 +251,7 @@ public class MainSettings extends ChromeBaseSettingsFragment + import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -272,7 +273,7 @@ public class MainSettings extends ChromeBaseSettingsFragment uiState -> { // We don't show the toolbar shortcut settings page if disabled from // finch. @@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareButt 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 -@@ -661,18 +661,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { +@@ -657,18 +657,12 @@ const FeatureEntry::FeatureParam kAdaptiveButtonCustomization_Share[] = { {"default_segment", "share"}, {"show_ui_only_after_ready", "false"}, {"ignore_segmentation_results", "true"}}; @@ -130,7 +130,7 @@ diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.js 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 -@@ -150,6 +150,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -155,6 +155,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &history::kOrganicRepeatableQueries, &history_clusters::internal::kJourneys, &history_clusters::internal::kOmniboxAction, @@ -138,7 +138,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse &kAdaptiveButtonInTopToolbarTranslate, &kAdaptiveButtonInTopToolbarAddToBookmarks, &kAdaptiveButtonInTopToolbarCustomizationV2, -@@ -392,6 +393,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { +@@ -406,6 +407,10 @@ static jlong JNI_ChromeFeatureMap_GetNativeMap(JNIEnv* env) { // Alphabetical: @@ -210,7 +210,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow private static final String VARIATION_PARAM_SHOW_UI_ONLY_AFTER_READY = "show_ui_only_after_ready"; @VisibleForTesting static final String VARIATION_PARAM_MIN_VERSION = "min_version_adaptive"; -@@ -102,6 +113,21 @@ public class AdaptiveToolbarFeatures { +@@ -113,6 +124,21 @@ public class AdaptiveToolbarFeatures { } } @@ -232,7 +232,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** * Returns whether the adaptive toolbar is enabled with segmentation and customization. * -@@ -235,11 +261,48 @@ public class AdaptiveToolbarFeatures { +@@ -252,11 +278,48 @@ public class AdaptiveToolbarFeatures { ChromeFeatureList.CONTEXTUAL_PAGE_ACTIONS, "enable_ui", true); } diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch index 321c49e3..5513148e 100644 --- a/build/patches/Restore-chrome-password-store.patch +++ b/build/patches/Restore-chrome-password-store.patch @@ -11,7 +11,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html 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 -@@ -713,7 +713,7 @@ CHAR_LIMIT guidelines: +@@ -706,7 +706,7 @@ For more settings that use data to improve your Chrome experience, go to diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch index 7597fcb1..aeca5ab5 100644 --- a/build/patches/Restore-offline-indicator-v2-flag.patch +++ b/build/patches/Restore-offline-indicator-v2-flag.patch @@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -1126,7 +1126,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1130,7 +1130,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; } -@@ -1160,6 +1161,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1164,6 +1165,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 -@@ -239,6 +239,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -252,6 +252,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &kNewTabSearchEngineUrlAndroid, &kNotificationPermissionVariant, &kNotificationPermissionBottomSheet, @@ -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 -@@ -355,6 +355,7 @@ public abstract class ChromeFeatureList { +@@ -364,6 +364,7 @@ public abstract class ChromeFeatureList { public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant"; public static final String NOTIFICATION_PERMISSION_BOTTOM_SHEET = "NotificationPermissionBottomSheet"; diff --git a/build/patches/Revert-Delete-block-external-form-redirects.patch b/build/patches/Revert-Delete-block-external-form-redirects.patch index cef692cd..fa99eb5e 100644 --- a/build/patches/Revert-Delete-block-external-form-redirects.patch +++ b/build/patches/Revert-Delete-block-external-form-redirects.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/external_intents/android/external_intents_features.cc b/components/external_intents/android/external_intents_features.cc --- a/components/external_intents/android/external_intents_features.cc +++ b/components/external_intents/android/external_intents_features.cc -@@ -20,7 +20,6 @@ namespace { +@@ -22,7 +22,6 @@ namespace { const base::Feature* kFeaturesExposedToJava[] = { &kExternalNavigationDebugLogs, &kBlockFrameRenavigations, &kBlockIntentsToSelf, &kTrustedClientGestureBypass}; @@ -26,7 +26,7 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ } // namespace // Alphabetical: -@@ -41,7 +40,13 @@ BASE_FEATURE(kTrustedClientGestureBypass, +@@ -43,7 +42,13 @@ BASE_FEATURE(kTrustedClientGestureBypass, "TrustedClientGestureBypass", base::FEATURE_ENABLED_BY_DEFAULT); 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 8877bb5a..e7ccd297 100644 --- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch +++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch @@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json -@@ -2005,6 +2005,10 @@ +@@ -2064,6 +2064,10 @@ "yangsharon@google.com", "alexmos@google.com", "creis@google.com" ], "expiry_milestone": 140 }, diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch index 99fb005e..f724288f 100644 --- a/build/patches/Revert-removal-of-execution-context-address-space.patch +++ b/build/patches/Revert-removal-of-execution-context-address-space.patch @@ -28,8 +28,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ...ed_service_worker_module_script_fetcher.cc | 1 + .../modulescript/module_script_loader_test.cc | 1 + .../worker_module_script_fetcher.cc | 3 +- - .../renderer/core/workers/dedicated_worker.cc | 11 ++++-- - .../renderer/core/workers/dedicated_worker.h | 4 ++- + .../renderer/core/workers/dedicated_worker.cc | 14 ++++++-- + .../renderer/core/workers/dedicated_worker.h | 5 ++- .../workers/dedicated_worker_global_scope.cc | 9 ++++- .../workers/dedicated_worker_global_scope.h | 1 + .../workers/global_scope_creation_params.cc | 2 ++ @@ -53,7 +53,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../audio_worklet_global_scope_test.cc | 1 + .../webaudio/audio_worklet_thread_test.cc | 1 + .../worklet/worklet_thread_test_common.cc | 2 +- - 36 files changed, 187 insertions(+), 18 deletions(-) + 36 files changed, 191 insertions(+), 18 deletions(-) create mode 100644 cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc diff --git a/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc b/cromite_flags/content/public/common/content_features_cc/Revert-removal-of-execution-context-address-space.inc @@ -66,7 +66,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc -@@ -512,6 +512,15 @@ void ExecutionContext::SetReferrerPolicy( +@@ -519,6 +519,15 @@ void ExecutionContext::SetReferrerPolicy( policy_container_->UpdateReferrerPolicy(referrer_policy); } @@ -93,7 +93,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" -@@ -385,6 +386,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, +@@ -386,6 +387,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable, const String& message = g_empty_string, const String& source_file = g_empty_string) const {} @@ -171,7 +171,7 @@ diff --git a/third_party/blink/renderer/core/frame/policy_container.h b/third_pa diff --git a/third_party/blink/renderer/core/frame/web_frame_test.cc b/third_party/blink/renderer/core/frame/web_frame_test.cc --- a/third_party/blink/renderer/core/frame/web_frame_test.cc +++ b/third_party/blink/renderer/core/frame/web_frame_test.cc -@@ -8088,6 +8088,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { +@@ -8087,6 +8087,40 @@ TEST_F(WebFrameTest, PushStateStartsAndStops) { EXPECT_EQ(client.StopLoadingCount(), 2); } @@ -276,7 +276,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, reject_coep_unsafe_none, std::move(back_forward_cache_controller_host)); return; -@@ -353,6 +354,7 @@ void DedicatedWorker::OnScriptLoadStarted( +@@ -355,6 +356,7 @@ void DedicatedWorker::OnScriptLoadStarted( ContinueStart(script_request_url_, std::move(worker_main_script_load_params), network::mojom::ReferrerPolicy::kDefault, Vector(), @@ -284,7 +284,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third String() /* source_code */, RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); } -@@ -425,6 +427,7 @@ void DedicatedWorker::OnFinished( +@@ -427,6 +429,7 @@ void DedicatedWorker::OnFinished( ? mojo::Clone(classic_script_loader_->GetContentSecurityPolicy() ->GetParsedPolicies()) : Vector(), @@ -292,7 +292,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third classic_script_loader_->SourceText(), RejectCoepUnsafeNone(false), std::move(back_forward_cache_controller_host)); probe::ScriptImported(GetExecutionContext(), -@@ -441,6 +444,7 @@ void DedicatedWorker::ContinueStart( +@@ -443,6 +446,7 @@ void DedicatedWorker::ContinueStart( network::mojom::ReferrerPolicy referrer_policy, Vector response_content_security_policies, @@ -300,7 +300,31 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -450,7 +454,8 @@ void DedicatedWorker::ContinueStart( +@@ -465,6 +469,7 @@ void DedicatedWorker::ContinueStart( + std::move(worker_main_script_load_params), + std::move(referrer_policy), + std::move(response_content_security_policies), ++ response_address_space, + source_code, reject_coep_unsafe_none, + std::move(back_forward_cache_controller_host)), + base::Milliseconds(features::kDedicatedWorkerStartDelayInMs.Get())); +@@ -473,6 +478,7 @@ void DedicatedWorker::ContinueStart( + ContinueStartInternal(script_url, std::move(worker_main_script_load_params), + std::move(referrer_policy), + std::move(response_content_security_policies), ++ response_address_space, + source_code, reject_coep_unsafe_none, + std::move(back_forward_cache_controller_host)); + } +@@ -484,6 +490,7 @@ void DedicatedWorker::ContinueStartInternal( + network::mojom::ReferrerPolicy referrer_policy, + Vector + response_content_security_policies, ++ std::optional response_address_space, + const String& source_code, + RejectCoepUnsafeNone reject_coep_unsafe_none, + mojo::PendingRemote +@@ -495,7 +502,8 @@ void DedicatedWorker::ContinueStartInternal( context_proxy_->StartWorkerGlobalScope( CreateGlobalScopeCreationParams( script_url, referrer_policy, @@ -310,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third std::move(worker_main_script_load_params), options_, script_url, *outside_fetch_client_settings_object_, v8_stack_trace_id_, source_code, reject_coep_unsafe_none, token_, -@@ -487,7 +492,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -532,7 +540,8 @@ DedicatedWorker::CreateGlobalScopeCreationParams( const KURL& script_url, network::mojom::ReferrerPolicy referrer_policy, Vector @@ -320,7 +344,7 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third base::UnguessableToken parent_devtools_token; std::unique_ptr settings; ExecutionContext* execution_context = GetExecutionContext(); -@@ -536,6 +542,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( +@@ -581,6 +590,7 @@ DedicatedWorker::CreateGlobalScopeCreationParams( execution_context->GetSecurityOrigin(), execution_context->IsSecureContext(), execution_context->GetHttpsState(), MakeGarbageCollected(), CreateWebContentSettingsClient(), @@ -339,7 +363,15 @@ diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.h b/third_ const String& source_code, RejectCoepUnsafeNone reject_coep_unsafe_none, mojo::PendingRemote -@@ -145,7 +146,8 @@ class CORE_EXPORT DedicatedWorker final +@@ -148,6 +149,7 @@ class CORE_EXPORT DedicatedWorker final + network::mojom::ReferrerPolicy, + Vector + response_content_security_policies, ++ std::optional response_address_space, + const String& source_code, + RejectCoepUnsafeNone reject_coep_unsafe_none, + mojo::PendingRemote +@@ -156,7 +158,8 @@ class CORE_EXPORT DedicatedWorker final const KURL& script_url, network::mojom::ReferrerPolicy, Vector @@ -533,7 +565,7 @@ diff --git a/third_party/blink/renderer/core/workers/main_thread_worklet_test.cc diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc --- a/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/shared_worker_global_scope.cc -@@ -82,6 +82,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { +@@ -81,6 +81,7 @@ const AtomicString& SharedWorkerGlobalScope::InterfaceName() const { void SharedWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -541,7 +573,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. Vector response_csp, const Vector* response_origin_trial_tokens) { // Step 12.3. "Set worker global scope's url to response's url." -@@ -95,6 +96,9 @@ void SharedWorkerGlobalScope::Initialize( +@@ -94,6 +95,9 @@ void SharedWorkerGlobalScope::Initialize( // parsing the `Referrer-Policy` header of response." SetReferrerPolicy(response_referrer_policy); @@ -551,7 +583,7 @@ diff --git a/third_party/blink/renderer/core/workers/shared_worker_global_scope. // Step 12.6. "Execute the Initialize a global object's CSP list algorithm // on worker global scope and response. [CSP]" // SharedWorkerGlobalScope inherits the outside's CSP instead of the response -@@ -104,6 +108,8 @@ void SharedWorkerGlobalScope::Initialize( +@@ -103,6 +107,8 @@ void SharedWorkerGlobalScope::Initialize( // https://fetch.spec.whatwg.org/#local-scheme // // https://w3c.github.io/webappsec-csp/#initialize-global-object-csp @@ -560,7 +592,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") -@@ -251,6 +257,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( +@@ -250,6 +256,7 @@ void SharedWorkerGlobalScope::DidFetchClassicScript( // Step 12.3-12.6 are implemented in Initialize(). Initialize(classic_script_loader->ResponseURL(), response_referrer_policy, @@ -593,7 +625,7 @@ diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_ /*parent_devtools_token=*/ client_provided_global_scope_creation_params->devtools_token, /*worker_settings=*/nullptr, -@@ -140,6 +142,7 @@ void ThreadedWorkletMessagingProxy::Initialize( +@@ -143,6 +145,7 @@ void ThreadedWorkletMessagingProxy::Initialize( window->GetReferrerPolicy(), window->GetSecurityOrigin(), window->IsSecureContext(), window->GetHttpsState(), worker_clients, frame_client->CreateWorkerContentSettingsClient(), @@ -773,7 +805,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 -@@ -476,6 +476,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -475,6 +475,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( // is set, and with the following callback steps given evaluationStatus:" RunClassicScript( classic_script_loader->ResponseURL(), referrer_policy, @@ -781,7 +813,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()) -@@ -489,6 +490,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( +@@ -488,6 +489,7 @@ void ServiceWorkerGlobalScope::DidFetchClassicScript( void ServiceWorkerGlobalScope::Initialize( const KURL& response_url, network::mojom::ReferrerPolicy response_referrer_policy, @@ -789,7 +821,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." -@@ -502,6 +504,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -501,6 +503,9 @@ void ServiceWorkerGlobalScope::Initialize( // script resource's referrer policy." SetReferrerPolicy(response_referrer_policy); @@ -799,7 +831,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 -@@ -512,6 +517,9 @@ void ServiceWorkerGlobalScope::Initialize( +@@ -511,6 +516,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." @@ -809,7 +841,7 @@ diff --git a/third_party/blink/renderer/modules/service_worker/service_worker_gl InitContentSecurityPolicyFromVector(std::move(response_csp)); BindContentSecurityPolicyToExecutionContext(); -@@ -552,26 +560,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( +@@ -551,26 +559,27 @@ void ServiceWorkerGlobalScope::LoadAndRunInstalledClassicScript( kDoNotSupportReferrerPolicyLegacyKeywords, &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 d347998f..d729debe 100644 --- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch +++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch @@ -187,7 +187,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 -@@ -3980,14 +3980,6 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() { +@@ -4017,14 +4017,6 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings() { } @@ -205,7 +205,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 -@@ -931,12 +931,6 @@ class CORE_EXPORT LocalFrame final +@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final // Can only be called while the frame is not detached. const mojom::RendererContentSettingsPtr& GetContentSettings(); @@ -235,7 +235,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc --- a/third_party/blink/renderer/core/loader/base_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc -@@ -569,7 +569,7 @@ BaseFetchContext::CanRequestInternal( +@@ -574,7 +574,7 @@ BaseFetchContext::CanRequestInternal( } if (type == ResourceType::kScript) { @@ -259,7 +259,7 @@ diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -449,7 +449,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -451,7 +451,8 @@ void FrameFetchContext::AddClientHintsIfNecessary( // Check if |url| is allowed to run JavaScript. If not, client hints are not // attached to the requests that initiate on the render side. @@ -269,7 +269,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi return; } -@@ -586,15 +587,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { +@@ -588,15 +589,26 @@ void FrameFetchContext::SetFirstPartyCookie(ResourceRequest& request) { request.SetSiteForCookies(GetSiteForCookies()); } diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch index 772d0e5f..af9dcda1 100644 --- a/build/patches/Show-NTP-at-startup.patch +++ b/build/patches/Show-NTP-at-startup.patch @@ -15,11 +15,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../chrome/browser/tasks/ReturnToChromeUtil.java | 12 +++++++++++- .../browser/preferences/ChromePreferenceKeys.java | 2 ++ .../preferences/LegacyChromePreferenceKeys.java | 1 + - .../java/res/layout/single_tab_view_layout.xml | 11 +++++++++-- - .../single_tab/SingleTabSwitcherOnNtpMediator.java | 10 ++++------ + .../single_tab/SingleTabSwitcherCoordinator.java | 2 +- + .../single_tab/SingleTabSwitcherOnNtpMediator.java | 6 ++---- .../show-ntp-at-startup.grdp | 9 +++++++++ .../chrome_feature_list_cc/show-ntp-at-startup.inc | 2 ++ - 11 files changed, 61 insertions(+), 10 deletions(-) + 11 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/show-ntp-at-startup.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/show-ntp-at-startup.inc @@ -83,7 +83,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 -@@ -1672,7 +1672,7 @@ public class ChromeTabbedActivity extends ChromeActivity onStandardActiveIndexRead = null; shouldShowNtpAsHomeSurfaceAtStartup = shouldShowNtpHomeSurfaceOnStartup(); boolean skipSavingNonActiveNtps = skipSavingNonActiveNtps(); @@ -92,15 +92,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct mHomeSurfaceTracker = new HomeSurfaceTracker(); } if (shouldShowNtpAsHomeSurfaceAtStartup) { -@@ -2389,6 +2389,8 @@ public class ChromeTabbedActivity extends ChromeActivity -@@ -55,11 +55,18 @@ found in the LICENSE file. - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="1.0" -- android:layout_marginBottom="10dp" - android:layout_gravity="center_vertical" - android:gravity="center_vertical" - android:singleLine="true" - android:textAppearance="@style/TextAppearance.TextMedium" /> -+ - +diff --git a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java +--- a/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java ++++ b/chrome/browser/single_tab/android/java/src/org/chromium/chrome/browser/single_tab/SingleTabSwitcherCoordinator.java +@@ -309,7 +309,7 @@ public class SingleTabSwitcherCoordinator implements TabSwitcher, ModuleProvider - GetContentSettings(); } @@ -340,7 +340,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 -@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final +@@ -929,12 +929,6 @@ class CORE_EXPORT LocalFrame final // Can only be called while the frame is not detached. const mojom::RendererContentSettingsPtr& GetContentSettings(); @@ -371,7 +371,7 @@ diff --git a/third_party/blink/renderer/core/html/image_document.cc b/third_part diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc -@@ -242,6 +242,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( +@@ -244,6 +244,7 @@ ResourceFetcher* FrameFetchContext::CreateFetcherForCommittedDocument( fetcher->SetResourceLoadObserver( MakeGarbageCollected( loader, document, fetcher->GetProperties())); @@ -379,7 +379,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi fetcher->SetAutoLoadImages( frame->GetSettings()->GetLoadsImagesAutomatically()); fetcher->SetEarlyHintsPreloadedResources( -@@ -416,16 +417,11 @@ void FrameFetchContext::AddResourceTiming( +@@ -418,16 +419,11 @@ void FrameFetchContext::AddResourceTiming( ->AddResourceTiming(std::move(info), initiator_type); } @@ -449,7 +449,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); -@@ -1818,7 +1819,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( +@@ -1894,7 +1895,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused( if (existing_resource.GetType() != ResourceType::kImage) return false; @@ -458,7 +458,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c } ResourceFetcher::RevalidationPolicy -@@ -2061,8 +2062,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { +@@ -2137,8 +2138,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) { ReloadImagesIfNotDeferred(); } @@ -491,7 +491,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h FetchContext& Context() const; void ClearContext(); -@@ -675,8 +676,9 @@ class PLATFORM_EXPORT ResourceFetcher +@@ -686,8 +687,9 @@ class PLATFORM_EXPORT ResourceFetcher // This is not in the bit field below because we want to use AutoReset. bool is_in_request_resource_ = false; 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 dc863aa0..fcd0196b 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 -@@ -2979,6 +2979,7 @@ void SpdySession::OnHeaders(spdy::SpdyStreamId stream_id, +@@ -2984,6 +2984,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 9e3a778c..f57bc0ef 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 -@@ -122,7 +122,7 @@ uint64_t PerformanceResourceTiming::GetTransferSize( +@@ -124,7 +124,7 @@ uint64_t PerformanceResourceTiming::GetTransferSize( 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 { -@@ -156,6 +156,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( +@@ -158,6 +158,7 @@ AtomicString PerformanceResourceTiming::GetNextHopProtocol( returnedProtocol = g_empty_atom; } diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch index d5c8b0a0..70d7e35b 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 -@@ -392,7 +392,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, +@@ -399,7 +399,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, BlockType nearest_ancestor_block_type = kDontBlockChildren; for (const auto& block : rules) { if (check_path == block.path || check_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; } -@@ -419,7 +419,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, +@@ -426,7 +426,7 @@ bool ShouldBlockAccessToPath(const base::FilePath& path, } // The nearest ancestor blocks access to its children, so block access. diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch index 196a2cfa..c5d87880 100644 --- a/build/patches/Timezone-customization.patch +++ b/build/patches/Timezone-customization.patch @@ -559,7 +559,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 -@@ -1118,3 +1118,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( +@@ -1121,3 +1121,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern( ContentSettingsPattern::FromString(pattern_string)); return ConvertUTF8ToJavaString(env, host_only_pattern.ToString()); } @@ -747,7 +747,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 -@@ -368,6 +368,9 @@ class HostContentSettingsMap : public content_settings::Observer, +@@ -367,6 +367,9 @@ class HostContentSettingsMap : public content_settings::Observer, allow_invalid_secondary_pattern_for_testing_ = allow; } @@ -815,7 +815,7 @@ diff --git a/components/content_settings/core/common/content_settings_mojom_trai diff --git a/components/content_settings/core/common/pref_names.h b/components/content_settings/core/common/pref_names.h --- a/components/content_settings/core/common/pref_names.h +++ b/components/content_settings/core/common/pref_names.h -@@ -234,6 +234,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = +@@ -232,6 +232,9 @@ inline constexpr char kDesktopSiteWindowSettingEnabled[] = "desktop_site.window_setting"; #endif diff --git a/build/patches/Use-4-tile-rows-never-show-logo.patch b/build/patches/Use-4-tile-rows-never-show-logo.patch deleted file mode 100644 index ec1f6a86..00000000 --- a/build/patches/Use-4-tile-rows-never-show-logo.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: csagan5 <32685696+csagan5@users.noreply.github.com> -Date: Wed, 21 Feb 2018 00:32:09 +0100 -Subject: Use 4 tile rows, never show logo - -License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html ---- - .../org/chromium/chrome/browser/ntp/NewTabPageLayout.java | 6 +++--- - .../suggestions/mostvisited/MostVisitedSitesBridge.java | 2 +- - chrome/browser/engagement/important_sites_util.cc | 2 +- - components/history/core/browser/top_sites_impl.h | 2 +- - 4 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java -@@ -110,7 +110,7 @@ public class NewTabPageLayout extends LinearLayout { - */ - private boolean mHasShownView; - -- private boolean mSearchProviderHasLogo = true; -+ private boolean mSearchProviderHasLogo = false; - private boolean mSearchProviderIsGoogle; - private boolean mShowingNonStandardGoogleLogo; - -@@ -499,7 +499,7 @@ public class NewTabPageLayout extends LinearLayout { - boolean searchProviderIsGoogle) { - assert mMvTilesContainerLayout != null; - -- int maxRows = 2; -+ int maxRows = 4; - - mMostVisitedTilesCoordinator = - new MostVisitedTilesCoordinator( -@@ -733,7 +733,7 @@ public class NewTabPageLayout extends LinearLayout { - && mInitialized) { - return; - } -- mSearchProviderHasLogo = hasLogo; -+ mSearchProviderHasLogo = false; - mSearchProviderIsGoogle = isGoogle; - - boolean isSearchProviderMarginUpdated = -diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java ---- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesBridge.java -@@ -22,7 +22,7 @@ public class MostVisitedSitesBridge implements MostVisitedSites { - * Maximum number of tiles that is explicitly supported. UMA relies on this value, so even if - * the UI supports it, getting more can raise unexpected issues. - */ -- public static final int MAX_TILE_COUNT = 12; -+ public static final int MAX_TILE_COUNT = 12 * 2; - - private long mNativeMostVisitedSitesBridge; - -diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/engagement/important_sites_util.cc ---- a/chrome/browser/engagement/important_sites_util.cc -+++ b/chrome/browser/engagement/important_sites_util.cc -@@ -66,7 +66,7 @@ static const int kTimesIgnoredForSuppression = 3; - // These are the maximum # of bookmarks we can use as signals. If the user has - // <= kMaxBookmarks, then we just use those bookmarks. Otherwise we filter all - // bookmarks on site engagement > 0, sort, and trim to kMaxBookmarks. --static const int kMaxBookmarks = 5; -+static const int kMaxBookmarks = 4 * 4 + 2; - - // We need this to be a macro, as the histogram macros cache their pointers - // after the first call, so when we change the uma name we check fail if we're -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; - - // How many top sites to store in the cache. --static constexpr size_t kTopSitesNumber = 10; -+static constexpr size_t kTopSitesNumber = 4 * 4 + 2; - - // 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 --- diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch index 8c6b7901..dbeffedf 100644 --- a/build/patches/Use-list-mode-for-tab-switcher.patch +++ b/build/patches/Use-list-mode-for-tab-switcher.patch @@ -21,15 +21,15 @@ 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/TabUiFeatureUtilities.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabUiFeatureUtilities.java -@@ -16,6 +16,7 @@ import org.chromium.build.BuildConfig; +@@ -14,6 +14,7 @@ import org.chromium.base.cached_flags.IntCachedFieldTrialParameter; + import org.chromium.build.BuildConfig; import org.chromium.chrome.browser.flags.ChromeFeatureList; - import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; import org.chromium.ui.base.DeviceFormFactor; +import org.chromium.chrome.browser.flags.cromite.sTabSwitcherListMode; - import java.util.Collections; - import java.util.HashSet; -@@ -115,8 +116,7 @@ public class TabUiFeatureUtilities { + /** A class to handle the state of flags for tab_management. */ + public class TabUiFeatureUtilities { +@@ -67,8 +68,7 @@ public class TabUiFeatureUtilities { /** Returns whether the Grid Tab Switcher UI should use list mode. */ public static boolean shouldUseListMode() { @@ -42,7 +42,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml +++ b/chrome/android/java/res/xml/privacy_preferences.xml -@@ -85,6 +85,13 @@ found in the LICENSE file. +@@ -90,6 +90,13 @@ found in the LICENSE file. android:summary="@string/settings_incognito_tab_lock_summary_android_setting_off" android:persistent="false" /> @@ -119,7 +119,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.LocationBar; import org.chromium.chrome.browser.omnibox.LocationBarCoordinator; import org.chromium.chrome.browser.omnibox.NewTabPageDelegate; -@@ -516,7 +517,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -521,7 +522,8 @@ public class ToolbarPhone extends ToolbarLayout private void inflateTabSwitchingResources() { mToggleTabStackButton = findViewById(R.id.tab_switcher_button); @@ -129,7 +129,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow } private void enableTabSwitchingResources() { -@@ -2007,14 +2009,15 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2016,14 +2018,15 @@ 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 only in #onStartSurfaceStateChanged. @@ -147,7 +147,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // Prevent pressing the tab switcher button until after transition finishes. mToggleTabStackButton.setClickable(false); return; -@@ -2034,7 +2037,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2043,7 +2046,8 @@ public class ToolbarPhone extends ToolbarLayout return; } // Prevent pressing the tab switcher button until after transition finishes. @@ -157,7 +157,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow mTabSwitcherState = inTabSwitcherMode ? ENTERING_TAB_SWITCHER : EXITING_TAB_SWITCHER; -@@ -2128,7 +2132,8 @@ public class ToolbarPhone extends ToolbarLayout +@@ -2142,7 +2146,8 @@ public class ToolbarPhone extends ToolbarLayout } if (mTabSwitcherState == ENTERING_TAB_SWITCHER) { mTabSwitcherState = TAB_SWITCHER; diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch index 3fa4c4c5..eb704941 100644 --- a/build/patches/User-agent-customization.patch +++ b/build/patches/User-agent-customization.patch @@ -22,7 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../PrivacyPreferencesManagerImpl.java | 42 ++++ .../settings/UserAgentPreferences.java | 183 ++++++++++++++++++ .../browser/tab/RequestDesktopUtils.java | 1 + - .../chromium/chrome/browser/tab/TabImpl.java | 71 +++++-- + .../chromium/chrome/browser/tab/TabImpl.java | 62 +++++- .../chromium/chrome/browser/tab/TabUtils.java | 17 +- .../browser/android/content/content_utils.cc | 30 +++ .../preferences/browser_prefs_android.cc | 7 + @@ -46,7 +46,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../browser/web_contents/web_contents_impl.cc | 6 +- .../framehost/NavigationControllerImpl.java | 3 +- content/renderer/render_thread_impl.cc | 1 - - 36 files changed, 794 insertions(+), 32 deletions(-) + 36 files changed, 794 insertions(+), 23 deletions(-) create mode 100644 chrome/android/java/res/layout/custom_useragent_preferences.xml create mode 100644 chrome/android/java/res/xml/useragent_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/UserAgentPreferences.java @@ -90,7 +90,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -955,6 +955,7 @@ chrome_java_sources = [ +@@ -944,6 +944,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java", "java/src/org/chromium/chrome/browser/payments/ui/LineItem.java", "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java", @@ -257,7 +257,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2758,7 +2758,7 @@ public abstract class ChromeActivity +@@ -2767,7 +2767,7 @@ public abstract class ChromeActivity TabUtils.switchUserAgent( currentTab, usingDesktopUserAgent, @@ -269,15 +269,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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 -@@ -52,6 +52,7 @@ import org.chromium.content_public.browser.BrowserStartupController; - import org.chromium.content_public.browser.DeviceUtils; - import org.chromium.content_public.browser.SpeechRecognition; - import org.chromium.net.NetworkChangeNotifier; +@@ -21,6 +21,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; +import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl; - import java.io.File; import java.util.ArrayList; -@@ -324,11 +325,13 @@ public class ChromeBrowserInitializer { + import java.util.List; +@@ -229,11 +230,13 @@ public class ChromeBrowserInitializer { @Override public void onSuccess() { @@ -540,7 +540,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 -@@ -139,6 +139,7 @@ public class RequestDesktopUtils { +@@ -137,6 +137,7 @@ public class RequestDesktopUtils { */ public static void setRequestDesktopSiteContentSettingsForUrl( Profile profile, GURL url, boolean useDesktopUserAgent) { @@ -551,7 +551,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java -@@ -64,6 +64,9 @@ import org.chromium.components.autofill.AutofillFeatures; +@@ -66,6 +66,9 @@ import org.chromium.components.autofill.AutofillFeatures; import org.chromium.components.autofill.AutofillProvider; import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate; import org.chromium.components.autofill.AutofillSelectionMenuItemHelper; @@ -561,7 +561,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils; import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.components.embedder_support.view.ContentView; -@@ -95,6 +98,9 @@ import org.chromium.chrome.browser.preferences.Pref; +@@ -98,6 +101,9 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.components.user_prefs.UserPrefs; @@ -571,33 +571,17 @@ 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. -@@ -738,11 +744,6 @@ class TabImpl implements Tab { - return true; - } - -- // If desktop mode window setting is enabled, move switchUserAgentIfNeeded() from -- // loadIfNeeded() to restoreIfNeeded(); to avoid reload without explicit user intent. -- if (!ContentFeatureMap.isEnabled(ContentFeatureList.REQUEST_DESKTOP_SITE_WINDOW_SETTING)) { -- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller); -- } - restoreIfNeeded(caller); - return true; - } -@@ -1814,13 +1815,6 @@ class TabImpl implements Tab { +@@ -1909,9 +1915,6 @@ class TabImpl implements Tab { } if (mWebContents != null) { -- // If desktop mode window setting is enabled, move switchUserAgentIfNeeded() from -- // loadIfNeeded() to restoreIfNeeded(); to avoid reload without explicit user -- // intent. -- if (ContentFeatureMap.isEnabled( -- ContentFeatureList.REQUEST_DESKTOP_SITE_WINDOW_SETTING)) { -- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller); -- } +- // Invoke switchUserAgentIfNeeded() from restoreIfNeeded() instead of loadIfNeeded() +- // to avoid reload without explicit user intent. +- switchUserAgentIfNeeded(UseDesktopUserAgentCaller.LOAD_IF_NEEDED + caller); mWebContents.getNavigationController().loadIfNecessary(); } mIsBeingRestored = true; -@@ -2134,6 +2128,11 @@ class TabImpl implements Tab { +@@ -2225,6 +2228,11 @@ class TabImpl implements Tab { url = webContents.getVisibleUrl(); } @@ -609,7 +593,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav // Do not override UA if there is a tab level setting. if (tabUserAgent != TabUserAgent.DEFAULT) { recordHistogramUseDesktopUserAgent(currentRequestDesktopSite); -@@ -2207,6 +2206,54 @@ class TabImpl implements Tab { +@@ -2304,6 +2312,54 @@ class TabImpl implements Tab { } } @@ -701,7 +685,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabUtils.ja diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/android/content/content_utils.cc --- a/chrome/browser/android/content/content_utils.cc +++ b/chrome/browser/android/content/content_utils.cc -@@ -8,6 +8,20 @@ +@@ -7,9 +7,23 @@ #include "components/version_info/version_info.h" #include "content/public/browser/web_contents.h" @@ -711,6 +695,9 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an +#include "components/prefs/pref_service.h" +#include "chrome/common/pref_names.h" + + // Must come after all headers that specialize FromJniType() / ToJniType(). + #include "chrome/browser/android/content/jni_headers/ContentUtils_jni.h" + +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF16ToJavaString; +using base::android::ConvertUTF8ToJavaString; @@ -722,7 +709,7 @@ diff --git a/chrome/browser/android/content/content_utils.cc b/chrome/browser/an static base::android::ScopedJavaLocalRef JNI_ContentUtils_GetBrowserUserAgent(JNIEnv* env) { return base::android::ConvertUTF8ToJavaString( -@@ -18,6 +32,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( +@@ -20,6 +34,22 @@ static void JNI_ContentUtils_SetUserAgentOverride( JNIEnv* env, const base::android::JavaParamRef& jweb_contents, jboolean j_override_in_new_tabs) { @@ -772,10 +759,15 @@ diff --git a/chrome/browser/android/preferences/browser_prefs_android.cc b/chrom diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc -@@ -13,6 +13,32 @@ +@@ -12,9 +12,35 @@ #include "components/policy/core/common/features.h" #include "components/prefs/pref_service.h" ++#include "base/android/jni_android.h" ++#include "base/android/jni_array.h" ++#include "base/android/jni_string.h" ++#include "base/android/scoped_java_ref.h" ++ +#include "base/command_line.h" +#include "base/base_switches.h" +#include "chrome/common/chrome_switches.h" @@ -789,11 +781,9 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl +#include "components/embedder_support/user_agent_utils.h" +#include "components/embedder_support/origin_trials/origin_trials_settings_storage.h" + -+#include "base/android/jni_android.h" -+#include "base/android/jni_array.h" -+#include "base/android/jni_string.h" -+#include "base/android/scoped_java_ref.h" -+ + // Must come after all headers that specialize FromJniType() / ToJniType(). + #include "chrome/android/chrome_jni_headers/PrivacyPreferencesManagerImpl_jni.h" + +using base::android::ConvertJavaStringToUTF8; +using base::android::ConvertUTF16ToJavaString; +using base::android::ConvertUTF8ToJavaString; @@ -805,7 +795,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl static jboolean JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingEnabled( JNIEnv* env) { PrefService* local_state = g_browser_process->local_state(); -@@ -34,3 +60,101 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( +@@ -36,3 +62,101 @@ JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( metrics::prefs::kMetricsReportingEnabled) && !local_state->GetBoolean(metrics::prefs::kMetricsReportingEnabled); } @@ -918,15 +908,15 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o #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" -@@ -36,6 +37,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: - if (base::FeatureList::IsEnabled( - features::kRequestDesktopSiteWindowSetting)) { - pref_service_ = profile->GetPrefs(); -+ tab_android_ = TabAndroid::FromWebContents(contents); - } +@@ -34,6 +35,7 @@ RequestDesktopSiteWebContentsObserverAndroid:: + host_content_settings_map_ = + HostContentSettingsMapFactory::GetForProfile(profile); + pref_service_ = profile->GetPrefs(); ++ tab_android_ = TabAndroid::FromWebContents(contents); } -@@ -51,6 +53,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( + RequestDesktopSiteWebContentsObserverAndroid:: +@@ -48,6 +50,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation( return; } @@ -964,7 +954,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 -@@ -1033,8 +1033,6 @@ public final class ChromePreferenceKeys { +@@ -1043,8 +1043,6 @@ public final class ChromePreferenceKeys { SIGNIN_PROMO_NTP_LAST_SHOWN_TIME, SYNC_PROMO_TOTAL_SHOW_COUNT, SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP, @@ -1046,7 +1036,7 @@ diff --git a/chrome/browser/tabmodel/internal/android/java/src/org/chromium/chro 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 -@@ -236,6 +236,32 @@ CHAR_LIMIT guidelines: +@@ -231,6 +231,32 @@ CHAR_LIMIT guidelines: Visit help page @@ -1082,7 +1072,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 -@@ -1854,6 +1854,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; +@@ -1880,6 +1880,14 @@ inline constexpr char kNaviOnboardGroup[] = "browser.navi_onboard_group"; inline constexpr char kHadThreeConsecutiveNotificationPermissionDenies[] = "profile.content_settings.had_three_consecutive_denies.notifications"; @@ -1238,7 +1228,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/content/browser/renderer_host/navigation_controller_android.cc --- a/content/browser/renderer_host/navigation_controller_android.cc +++ b/content/browser/renderer_host/navigation_controller_android.cc -@@ -252,6 +252,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -254,6 +254,7 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( jboolean can_load_local_resources, jboolean is_renderer_initiated, jboolean should_replace_current_entry, @@ -1246,7 +1236,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.cc b/co const JavaParamRef& j_initiator_origin, jboolean has_user_gesture, jboolean should_clear_history_list, -@@ -352,6 +353,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( +@@ -354,6 +355,9 @@ base::android::ScopedJavaLocalRef NavigationControllerAndroid::LoadUrl( params.navigation_ui_data = std::move(navigation_ui_data); @@ -1270,7 +1260,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 -@@ -3595,6 +3595,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3644,6 +3644,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedMedia, switches::kLacrosUseChromeosProtectedAv1, #endif @@ -1289,7 +1279,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" -@@ -2145,8 +2146,6 @@ void WebContentsImpl::SetUserAgentOverride( +@@ -2163,8 +2164,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); @@ -1298,7 +1288,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser if (GetUserAgentOverride() == ua_override) { return; -@@ -3201,6 +3200,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { +@@ -3229,6 +3228,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences() { #else prefs.viewport_meta_enabled = false; #endif @@ -1331,7 +1321,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 -@@ -865,7 +865,6 @@ void RenderThreadImpl::InitializeRenderer( +@@ -864,7 +864,6 @@ void RenderThreadImpl::InitializeRenderer( const blink::UserAgentMetadata& user_agent_metadata, const std::vector& cors_exempt_header_list, blink::mojom::OriginTrialsSettingsPtr origin_trials_settings) { diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch index 75ae316a..8994aac0 100644 --- a/build/patches/Viewport-Protection-flag.patch +++ b/build/patches/Viewport-Protection-flag.patch @@ -282,15 +282,15 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5 --- a/third_party/blink/renderer/core/css/css_properties.json5 +++ b/third_party/blink/renderer/core/css/css_properties.json5 -@@ -3837,6 +3837,7 @@ +@@ -4034,6 +4034,7 @@ }, { name: "opacity", + computed_style_custom_functions: ["setter","getter"], - property_methods: ["ParseSingleValueFromRange", "CSSValueFromComputedStyleInternal"], + property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"], interpolable: true, compositable: true, -@@ -3844,7 +3845,6 @@ +@@ -4041,7 +4042,6 @@ field_template: "primitive", default_value: "1.0", type_name: "float", @@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc --- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc +++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc -@@ -1852,7 +1852,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const { +@@ -1877,7 +1877,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 -@@ -1050,7 +1050,7 @@ WebPagePopupImpl* WebViewImpl::OpenPagePopup(PagePopupClient* client) { +@@ -1056,7 +1056,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 -@@ -1504,7 +1504,12 @@ int LocalDOMWindow::outerHeight() const { +@@ -1515,7 +1515,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; -@@ -1529,7 +1534,12 @@ int LocalDOMWindow::outerWidth() const { +@@ -1540,7 +1545,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; -@@ -1730,7 +1740,8 @@ double LocalDOMWindow::devicePixelRatio() const { +@@ -1741,7 +1751,8 @@ double LocalDOMWindow::devicePixelRatio() const { if (!GetFrame()) return 0.0; @@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p } void LocalDOMWindow::scrollBy(double x, double y) const { -@@ -2320,6 +2331,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate, +@@ -2340,6 +2351,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 -@@ -2376,6 +2404,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow( +@@ -2396,6 +2424,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 -@@ -1525,6 +1525,10 @@ void LocalFrame::RestoreScrollOffsets() { +@@ -1560,6 +1560,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::SetPageZoomFactor(float factor) { SetPageAndTextZoomFactors(factor, text_zoom_factor_); } -@@ -1703,12 +1707,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() { +@@ -1734,12 +1738,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; } -@@ -3276,6 +3284,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { +@@ -3309,6 +3317,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) { DCHECK(!GetDocument() || !GetDocument()->Printing()); DCHECK(IsMainFrame()); @@ -537,7 +537,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h --- a/third_party/blink/renderer/core/frame/local_frame.h +++ b/third_party/blink/renderer/core/frame/local_frame.h -@@ -428,13 +428,14 @@ class CORE_EXPORT LocalFrame final +@@ -427,13 +427,14 @@ class CORE_EXPORT LocalFrame final void SetInViewSourceMode(bool = true); void SetPageZoomFactor(float); @@ -554,7 +554,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b // Informs the local root's document and its local descendant subtree that a // media query value changed. -@@ -1089,6 +1090,7 @@ class CORE_EXPORT LocalFrame final +@@ -1088,6 +1089,7 @@ class CORE_EXPORT LocalFrame final unsigned hidden_ : 1; float page_zoom_factor_; @@ -660,7 +660,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc --- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc +++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc -@@ -1807,6 +1807,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( +@@ -1816,6 +1816,14 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing( if (auto* device_emulator = DeviceEmulator()) { device_emulator->UpdateVisualProperties(visual_properties); @@ -745,7 +745,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re namespace blink { namespace { -@@ -1100,7 +1106,94 @@ void Page::UpdateAcceleratedCompositingSettings() { +@@ -1106,7 +1112,94 @@ void Page::UpdateAcceleratedCompositingSettings() { } } @@ -843,7 +843,7 @@ 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 -@@ -487,6 +487,10 @@ class CORE_EXPORT Page final : public GarbageCollected, +@@ -492,6 +492,10 @@ class CORE_EXPORT Page final : public GarbageCollected, // the close task will still be processed after the swap. void TakeCloseTaskHandler(Page* old_page); @@ -869,7 +869,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h --- a/third_party/blink/renderer/core/style/computed_style.h +++ b/third_party/blink/renderer/core/style/computed_style.h -@@ -1926,6 +1926,12 @@ class ComputedStyle final : public ComputedStyleBase { +@@ -1846,6 +1846,12 @@ class ComputedStyle final : public ComputedStyleBase { IsRunningBackdropFilterAnimationOnCompositor(); } diff --git a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch index e37413a1..2afd20ef 100644 --- a/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch +++ b/build/patches/WIN-Add-some-prefs-to-secure-preferences.patch @@ -9,7 +9,7 @@ Subject: WIN Add some prefs to secure preferences diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -112,6 +112,14 @@ bool g_disable_domain_check_for_testing = false; +@@ -113,6 +113,14 @@ bool g_disable_domain_check_for_testing = false; // See CleanupDeprecatedTrackedPreferences() in pref_hash_filter.cc to remove a // deprecated tracked preference. const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { diff --git a/build/patches/WIN-Disable-sharing-hub.patch b/build/patches/WIN-Disable-sharing-hub.patch index e3a89b1d..7ca77ce6 100644 --- a/build/patches/WIN-Disable-sharing-hub.patch +++ b/build/patches/WIN-Disable-sharing-hub.patch @@ -25,7 +25,7 @@ diff --git a/chrome/browser/sharing_hub/sharing_hub_features.cc b/chrome/browser diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc -@@ -1766,10 +1766,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { +@@ -1789,10 +1789,10 @@ void BrowserCommandController::UpdateCommandsForFullscreenMode() { command_updater_.UpdateCommandEnabled(IDC_CHROME_WHATS_NEW, show_main_ui); #endif command_updater_.UpdateCommandEnabled(IDC_CONTENT_CONTEXT_SHARING_SUBMENU, @@ -42,7 +42,7 @@ diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc --- a/chrome/browser/ui/browser_commands.cc +++ b/chrome/browser/ui/browser_commands.cc -@@ -1637,6 +1637,7 @@ void SendTabToSelf(Browser* browser) { +@@ -1645,6 +1645,7 @@ void SendTabToSelf(Browser* browser) { } bool CanGenerateQrCode(const Browser* browser) { diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch index 514ddf1e..4580adb6 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 -@@ -2220,7 +2220,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { +@@ -2253,7 +2253,9 @@ WebContentSettingsClient* LocalFrame::GetContentSettingsClient() { } PluginData* LocalFrame::GetPluginData() const { diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch index 9d500d20..f17fcb4d 100644 --- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch +++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch @@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn -@@ -437,6 +437,7 @@ if (is_win) { +@@ -440,6 +440,7 @@ if (is_win) { "//components/policy:generated", "//content/public/app", "//crypto", @@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn "//headless:headless_non_renderer", "//headless:headless_shell_browser_lib", "//net:net_resources", -@@ -1678,6 +1679,8 @@ if (is_android) { +@@ -1681,6 +1682,8 @@ if (is_android) { "//chrome/common/profiler", "//chrome/gpu", "//chrome/renderer", @@ -71,7 +71,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc -@@ -96,6 +96,9 @@ +@@ -97,6 +97,9 @@ #include "ui/base/resource/resource_bundle.h" #include "ui/base/resource/scoped_startup_resource_bundle.h" #include "ui/base/ui_base_switches.h" @@ -81,7 +81,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #if BUILDFLAG(IS_WIN) #include -@@ -1280,6 +1283,13 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { +@@ -1284,6 +1287,13 @@ std::optional ChromeMainDelegate::BasicStartupComplete() { return chrome::RESULT_CODE_INVALID_SANDBOX_STATE; #endif @@ -98,7 +98,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 -@@ -7376,6 +7376,10 @@ Keep your key file in a safe place. You will need it to create new versions of y +@@ -7391,6 +7391,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. @@ -131,7 +131,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 -@@ -3600,6 +3600,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( +@@ -3649,6 +3649,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer( switches::kLacrosUseChromeosProtectedAv1, #endif switches::kDesktopModeViewportMetaEnabled, diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch index cc51d839..f8ebab82 100644 --- a/build/patches/Welcome-screen.patch +++ b/build/patches/Welcome-screen.patch @@ -29,7 +29,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 -@@ -497,6 +497,7 @@ chrome_java_resources = [ +@@ -500,6 +500,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", @@ -40,7 +40,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -651,6 +651,8 @@ chrome_java_sources = [ +@@ -650,6 +650,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/firstrun/SyncConsentFirstRunFragment.java", "java/src/org/chromium/chrome/browser/firstrun/TabbedModeFirstRunActivity.java", "java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java", @@ -217,7 +217,7 @@ new file mode 100644 diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res/values/dimens.xml --- a/chrome/android/java/res/values/dimens.xml +++ b/chrome/android/java/res/values/dimens.xml -@@ -112,6 +112,16 @@ found in the LICENSE file. +@@ -109,6 +109,16 @@ found in the LICENSE file. 48dp 18dp 8dp @@ -237,7 +237,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 -@@ -272,6 +272,30 @@ found in the LICENSE file. +@@ -278,6 +278,30 @@ found in the LICENSE file. 1 @@ -374,7 +374,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR if (mPagerAdapter != null) { mPagerAdapter.notifyDataSetChanged(); } -@@ -531,11 +509,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa +@@ -537,11 +515,6 @@ public class FirstRunActivity extends FirstRunActivityBase implements FirstRunPa public void acceptTermsOfService(boolean allowMetricsAndCrashUploading) { assert mNativeInitializationPromise.isFulfilled(); @@ -389,7 +389,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java -@@ -38,8 +38,6 @@ import org.chromium.chrome.browser.profiles.ProfileProvider; +@@ -37,8 +37,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; @@ -398,7 +398,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR /** Base class for First Run Experience. */ // TODO(b/41493788): Consider renaming it now that it is also the base for the upgrade promo. -@@ -113,9 +111,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity +@@ -115,9 +113,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity @Override @CallSuper public void triggerLayoutInflation() { @@ -1252,7 +1252,7 @@ diff --git a/chrome/browser/locale/java/src/org/chromium/chrome/browser/locale/L 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 -@@ -3351,7 +3351,29 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -3464,7 +3464,29 @@ To change this setting, BEGIN_LINKdelete the Chrome d %1$sGoogle Maps will open in Chrome. By continuing, you agree to the <LINK1>Google Terms of Service</LINK1>, and the <LINK2>Google Chrome and ChromeOS Additional Terms of Service</LINK2>. The <LINK3>Privacy Policy</LINK3> also applies. diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch index 5c2c3145..41958a95 100644 --- a/build/patches/add-browser-policy.patch +++ b/build/patches/add-browser-policy.patch @@ -22,7 +22,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../commerce/core/commerce_feature_list.cc | 65 ++------- .../core/browser/browser_policy_connector.cc | 3 + .../common/command_line_policy_provider.cc | 3 + - .../core/common/policy_loader_command_line.cc | 133 +++++++++++++++--- + .../core/common/policy_loader_command_line.cc | 132 +++++++++++++++--- .../policy/core/common/policy_pref_names.cc | 3 + .../policy/core/common/policy_pref_names.h | 1 + .../policy/core/common/policy_service_impl.cc | 3 + @@ -36,7 +36,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../gaia_cookie_manager_service.cc | 4 + google_apis/gaia/gaia_auth_fetcher.cc | 1 + net/socket/ssl_client_socket_impl.cc | 3 + - 32 files changed, 319 insertions(+), 150 deletions(-) + 32 files changed, 318 insertions(+), 150 deletions(-) diff --git a/base/win/win_util.cc b/base/win/win_util.cc --- a/base/win/win_util.cc @@ -153,7 +153,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc --- a/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc +++ b/chrome/browser/android/preferences/privacy_preferences_manager_impl.cc -@@ -56,6 +56,11 @@ static jboolean +@@ -58,6 +58,11 @@ static jboolean JNI_PrivacyPreferencesManagerImpl_IsMetricsReportingDisabledByPolicy( JNIEnv* env) { const PrefService* local_state = g_browser_process->local_state(); @@ -177,7 +177,7 @@ diff --git a/chrome/browser/metrics/chrome_feature_list_creator.cc b/chrome/brow #if BUILDFLAG(IS_CHROMEOS_ASH) #include "chrome/browser/ash/policy/core/browser_policy_connector_ash.h" -@@ -222,6 +224,16 @@ void ChromeFeatureListCreator::CreatePrefService() { +@@ -218,6 +220,16 @@ void ChromeFeatureListCreator::CreatePrefService() { // ManagementService's cache. if (local_state_pref_store->ReadPrefs() == JsonPrefStore::PREF_READ_ERROR_NONE) { @@ -222,7 +222,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc -@@ -2200,9 +2200,9 @@ bool AreFuturePoliciesEnabledByDefault() { +@@ -2237,9 +2237,9 @@ bool AreFuturePoliciesEnabledByDefault() { if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) { return true; } @@ -265,7 +265,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/ + return AccountConsistencyMethod::kDisabled; #endif - NOTREACHED(); + NOTREACHED_IN_MIGRATION(); diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b/chrome/browser/signin/account_consistency_mode_manager_factory.cc --- a/chrome/browser/signin/account_consistency_mode_manager_factory.cc +++ b/chrome/browser/signin/account_consistency_mode_manager_factory.cc @@ -279,7 +279,7 @@ diff --git a/chrome/browser/signin/account_consistency_mode_manager_factory.cc b diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc b/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc --- a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc +++ b/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth_fetcher.cc -@@ -13,6 +13,7 @@ +@@ -15,6 +15,7 @@ #include "net/cookies/cookie_util.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/fetch_api.mojom-shared.h" @@ -287,15 +287,15 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth ThrottledGaiaAuthFetcher::ThrottledGaiaAuthFetcher( GaiaAuthConsumer* consumer, -@@ -39,6 +40,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( +@@ -41,6 +42,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( const GURL& gaia_gurl, network::mojom::CredentialsMode credentials_mode, const net::NetworkTrafficAnnotationTag& traffic_annotation) { +#if BUILDFLAG(ENABLE_BOUND_SESSION_CREDENTIALS) if ((IsListAccountsUrl(gaia_gurl) || IsMultiloginUrl(gaia_gurl)) && credentials_mode == network::mojom::CredentialsMode::kInclude && - GoogleURLLoaderThrottle::ShouldDeferRequestForBoundSession( -@@ -54,6 +56,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( + GoogleURLLoaderThrottle::GetRequestBoundSessionStatus( +@@ -59,6 +61,7 @@ void ThrottledGaiaAuthFetcher::CreateAndStartGaiaFetcher( GaiaAuthFetcher::CreateAndStartGaiaFetcher(body, body_content_type, headers, gaia_gurl, credentials_mode, traffic_annotation); @@ -303,7 +303,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth } void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( -@@ -65,6 +68,7 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( +@@ -70,6 +73,7 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( const net::NetworkTrafficAnnotationTag& traffic_annotation, BoundSessionRequestThrottledHandler::UnblockAction unblock_action, chrome::mojom::ResumeBlockedRequestsTrigger resume_trigger) { @@ -311,7 +311,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth switch (unblock_action) { case BoundSessionRequestThrottledHandler::UnblockAction::kResume: GaiaAuthFetcher::CreateAndStartGaiaFetcher( -@@ -76,4 +80,5 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( +@@ -81,4 +85,5 @@ void ThrottledGaiaAuthFetcher::OnGaiaFetcherResumedOrCancelled( /*response_code=*/0); break; } @@ -344,7 +344,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/signin/dice_response_handler.cc --- a/chrome/browser/signin/dice_response_handler.cc +++ b/chrome/browser/signin/dice_response_handler.cc -@@ -485,8 +485,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader( +@@ -479,8 +479,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) || @@ -574,7 +574,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } // namespace namespace switches { -@@ -322,6 +272,16 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered"; +@@ -326,6 +276,16 @@ const char kParcelTrackingTestDataParamDelivered[] = "Delivered"; const char kParcelTrackingTestDataParamInProgress[] = "InProgress"; const char kParcelTrackingTestDataParamOutForDelivery[] = "OutForDelivery"; @@ -591,7 +591,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm // Params for Discount Consent V2 in the NTP Cart module. const char kNtpChromeCartModuleDiscountConsentNtpVariationParam[] = "discount-consent-ntp-variation"; -@@ -447,11 +407,11 @@ bool IsPartnerMerchant(const GURL& url) { +@@ -451,11 +411,11 @@ bool IsPartnerMerchant(const GURL& url) { } bool IsRuleDiscountPartnerMerchant(const GURL& url) { @@ -605,7 +605,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm } bool IsCartDiscountFeatureEnabled() { -@@ -534,6 +494,7 @@ base::TimeDelta GetDiscountFetchDelay() { +@@ -538,6 +498,7 @@ base::TimeDelta GetDiscountFetchDelay() { } bool IsNoDiscountMerchant(const GURL& url) { @@ -674,7 +674,7 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo namespace policy { -@@ -21,25 +46,101 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default; +@@ -21,25 +46,100 @@ PolicyLoaderCommandLine::~PolicyLoaderCommandLine() = default; PolicyBundle PolicyLoaderCommandLine::Load() { PolicyBundle bundle; @@ -764,7 +764,6 @@ diff --git a/components/policy/core/common/policy_loader_command_line.cc b/compo + AddPolicy(disabled_policies_list, policy_map, policy::key::kSideSearchEnabled, base::Value(false)); +#endif + -+ AddPolicy(disabled_policies_list, policy_map, policy::key::kBlockTruncatedCookies, base::Value(true)); + // kFirstPartySetsEnabled + // kLensCameraAssistedSearchEnabled + // kPasswordLeakDetectionEnabled @@ -986,7 +985,7 @@ diff --git a/google_apis/gaia/gaia_auth_fetcher.cc b/google_apis/gaia/gaia_auth_ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc --- a/net/socket/ssl_client_socket_impl.cc +++ b/net/socket/ssl_client_socket_impl.cc -@@ -772,6 +772,7 @@ int SSLClientSocketImpl::Init() { +@@ -777,6 +777,7 @@ int SSLClientSocketImpl::Init() { return ERR_UNEXPECTED; } @@ -994,7 +993,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. -@@ -1178,6 +1179,8 @@ ssl_verify_result_t SSLClientSocketImpl::HandleVerifyResult() { +@@ -1183,6 +1184,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 121542c5..23fb0a13 100644 --- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch +++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch @@ -23,7 +23,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py """ import sys -@@ -238,7 +240,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): +@@ -231,7 +233,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir): sys.exit(1) @@ -32,7 +32,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py stamp_file = None package_file = None -@@ -270,6 +272,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -263,6 +265,8 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): target_os = env.get('target_os', target_os) except: pass @@ -41,7 +41,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py if os.path.exists(OLD_STAMP_FILE): # Delete the old stamp file so it doesn't look like an old version of clang -@@ -287,7 +291,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): +@@ -280,7 +284,7 @@ def UpdatePackage(package_name, host_os, dir=LLVM_BUILD_DIR): # Updating the main clang package nukes the output dir. Any other packages # need to be updated *after* the clang package. @@ -50,7 +50,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py RmTree(dir) DownloadAndUnpackPackage(package_file, dir, host_os) -@@ -337,6 +341,8 @@ def main(): +@@ -330,6 +334,8 @@ def main(): 'and exit.')) parser.add_argument('--verify-version', help='Verify that clang has the passed-in version.') @@ -59,7 +59,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py args = parser.parse_args() if args.verify_version and args.verify_version != RELEASE_VERSION: -@@ -378,7 +384,7 @@ def main(): +@@ -371,7 +377,7 @@ def main(): print('--llvm-force-head-revision can only be used for --print-revision') return 1 diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch index eddea92b..301b274f 100644 --- a/build/patches/autofill-miscellaneous.patch +++ b/build/patches/autofill-miscellaneous.patch @@ -16,13 +16,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../autofill_crowdsourcing_manager.h | 2 - .../autofill/core/common/autofill_features.cc | 2 + .../autofill/core/common/autofill_prefs.cc | 10 +-- - .../password_generation_frame_helper.cc | 4 -- - 7 files changed, 14 insertions(+), 82 deletions(-) + .../password_generation_frame_helper.cc | 5 -- + 7 files changed, 14 insertions(+), 83 deletions(-) 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 -@@ -1441,7 +1441,7 @@ void RegisterProfilePrefsForMigration( +@@ -1495,7 +1495,7 @@ void RegisterProfilePrefsForMigration( #endif // Deprecated 12/2023. @@ -34,7 +34,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -230,12 +230,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { +@@ -219,12 +219,7 @@ ChromeAutofillClient::GetURLLoaderFactory() { } AutofillCrowdsourcingManager* ChromeAutofillClient::GetCrowdsourcingManager() { @@ -51,7 +51,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc --- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc +++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc -@@ -475,33 +475,6 @@ std::optional GetUploadPayloadForApi( +@@ -501,33 +501,6 @@ std::optional GetUploadPayloadForApi( return std::move(payload); } @@ -85,7 +85,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci // Gets HTTP body payload for API POST request. std::optional GetAPIBodyPayload(std::string payload, RequestType type) { -@@ -533,18 +506,7 @@ std::optional GetAPIQueryPayload( +@@ -559,18 +532,7 @@ std::optional GetAPIQueryPayload( } std::string GetAPIKeyForUrl(version_info::Channel channel) { @@ -105,7 +105,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci } std::optional>& GetActiveExperiments() { -@@ -774,34 +736,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( +@@ -804,34 +766,13 @@ size_t AutofillCrowdsourcingManager::GetPayloadLength( std::tuple AutofillCrowdsourcingManager::GetRequestURLAndMethod( const FormRequestData& request_data) const { @@ -159,7 +159,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourci diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc --- a/components/autofill/core/common/autofill_features.cc +++ b/components/autofill/core/common/autofill_features.cc -@@ -828,6 +828,8 @@ BASE_FEATURE(kAutofillUploadThrottling, +@@ -879,6 +879,8 @@ BASE_FEATURE(kAutofillUploadThrottling, "AutofillUploadThrottling", base::FEATURE_ENABLED_BY_DEFAULT); @@ -193,7 +193,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( kAutofillPaymentCardBenefits, true, -@@ -94,9 +94,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -97,9 +97,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { #endif // Deprecated prefs registered for migration. @@ -208,7 +208,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto diff --git a/components/password_manager/core/browser/password_generation_frame_helper.cc b/components/password_manager/core/browser/password_generation_frame_helper.cc --- a/components/password_manager/core/browser/password_generation_frame_helper.cc +++ b/components/password_manager/core/browser/password_generation_frame_helper.cc -@@ -95,7 +95,6 @@ void PasswordGenerationFrameHelper::ProcessPasswordRequirements( +@@ -100,7 +100,6 @@ void PasswordGenerationFrameHelper::ProcessPasswordRequirements( // In order for password generation to be enabled, we need to make sure: // (1) Password sync is enabled, and // (2) Password saving is enabled @@ -216,12 +216,13 @@ diff --git a/components/password_manager/core/browser/password_generation_frame_ bool PasswordGenerationFrameHelper::IsGenerationEnabled( bool log_debug_data) const { std::unique_ptr logger; -@@ -105,9 +104,6 @@ bool PasswordGenerationFrameHelper::IsGenerationEnabled( +@@ -110,10 +109,6 @@ bool PasswordGenerationFrameHelper::IsGenerationEnabled( } GURL url = driver_->GetLastCommittedURL(); -- if (url.DomainIs("google.com")) +- if (url.DomainIs("google.com")) { - return false; +- } - if (!password_manager_util::IsAbleToSavePasswords(client_)) { if (logger) { diff --git a/build/patches/disable-AdsBlockedInfoBar.patch b/build/patches/disable-AdsBlockedInfoBar.patch index 63bf270e..282088f5 100644 --- a/build/patches/disable-AdsBlockedInfoBar.patch +++ b/build/patches/disable-AdsBlockedInfoBar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/components/subresource_filter/content/browser/profile_interaction_manager.cc b/components/subresource_filter/content/browser/profile_interaction_manager.cc --- a/components/subresource_filter/content/browser/profile_interaction_manager.cc +++ b/components/subresource_filter/content/browser/profile_interaction_manager.cc -@@ -19,13 +19,6 @@ +@@ -21,13 +21,6 @@ #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" @@ -24,10 +24,10 @@ diff --git a/components/subresource_filter/content/browser/profile_interaction_m namespace subresource_filter { ProfileInteractionManager::ProfileInteractionManager( -@@ -133,47 +126,6 @@ void ProfileInteractionManager::MaybeShowNotification() { +@@ -136,47 +129,6 @@ void ProfileInteractionManager::MaybeShowNotification() { // currently primary. - DCHECK(page_); - DCHECK(page_->IsPrimary()); + CHECK(page_, base::NotFatalUntil::M129); + CHECK(page_->IsPrimary(), base::NotFatalUntil::M129); - - const GURL& top_level_url = page_->GetMainDocument().GetLastCommittedURL(); - if (profile_context_->settings_manager()->ShouldShowUIForSite( diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch index 7d9444cc..02248687 100644 --- a/build/patches/disable-WebView-variations-support.patch +++ b/build/patches/disable-WebView-variations-support.patch @@ -28,7 +28,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java -@@ -460,10 +460,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { +@@ -518,10 +518,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider { } } diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch index 6c903adb..2b284ac6 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 -@@ -2452,7 +2452,7 @@ template("run_mksnapshot") { +@@ -2436,7 +2436,7 @@ template("run_mksnapshot") { # Replace this with --warn-about-builtin-profile-data to see the full # list of builtins with incompatible profiles. diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch index 43b1ecf9..7360bb0c 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_api.patch @@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn import("//build/android/resource_sizes.gni") import("//build/config/android/config.gni") -@@ -512,6 +516,7 @@ if (current_toolchain == default_toolchain) { +@@ -513,6 +517,7 @@ if (current_toolchain == default_toolchain) { "//chrome/browser/xsurface_provider:java", "//components/android_autofill/browser:java", "//components/autofill/android:autofill_features_java", @@ -105,7 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//components/autofill/android:autofill_java", "//components/background_task_scheduler:background_task_scheduler_java", "//components/background_task_scheduler:background_task_scheduler_task_ids_java", -@@ -1654,6 +1659,7 @@ if (current_toolchain == default_toolchain) { +@@ -1664,6 +1669,7 @@ if (current_toolchain == default_toolchain) { "//chrome/android/webapk/libs/client:client_java", "//chrome/android/webapk/libs/common:common_java", "//chrome/android/webapk/libs/runtime_library:webapk_service_aidl_java", @@ -113,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/browser/android/browserservices/intents:java", "//chrome/browser/android/browserservices/verification:java", "//chrome/browser/android/browserservices/verification:javatests", -@@ -2010,6 +2016,7 @@ if (current_toolchain == default_toolchain) { +@@ -2024,6 +2030,7 @@ if (current_toolchain == default_toolchain) { srcjar_deps = [ "//chrome/browser:tos_dialog_behavior_generated_enum" ] data = [ @@ -121,7 +121,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn "//chrome/test/data/android/", "//chrome/test/data/autofill/", "//chrome/test/data/background_sync/", -@@ -3871,6 +3878,7 @@ group("jni_headers") { +@@ -3880,6 +3887,7 @@ group("jni_headers") { "//chrome/browser/util:jni_headers", "//chrome/browser/webauthn/android:jni_headers", "//components/browser_ui/device_lock/android:device_lock_bridge_jni_headers", @@ -132,8 +132,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -3573,6 +3573,17 @@ static_library("browser") { - "webauthn/android/webauthn_request_delegate_android.h", +@@ -3550,6 +3550,17 @@ static_library("browser") { + "webid/digital_identity_provider_android.h", ] + ### Android API module start @@ -150,7 +150,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn public_deps += [ "//chrome/android/features/dev_ui:buildflags", -@@ -3779,6 +3790,9 @@ static_library("browser") { +@@ -3761,6 +3772,9 @@ static_library("browser") { # `IdentityManagerFactory` in facilitated payments. allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] @@ -652,7 +652,7 @@ new file mode 100644 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc -@@ -281,6 +281,11 @@ +@@ -287,6 +287,11 @@ #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -664,7 +664,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" -@@ -850,6 +855,11 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -867,6 +872,11 @@ void ChromeBrowserMainExtraPartsProfiles:: #if BUILDFLAG(IS_ANDROID) FastCheckoutCapabilitiesFetcherFactory::GetInstance(); diff --git a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch index 6596a8f6..1023ac3e 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-android_settings.patch @@ -254,7 +254,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn if (plus_addresses_use_internal_android_resources) { deps += [ "//clank/components/plus_addresses:java_resources" ] } else { -@@ -743,6 +747,10 @@ if (current_toolchain == default_toolchain) { +@@ -746,6 +750,10 @@ if (current_toolchain == default_toolchain) { "//url/mojom:url_mojom_gurl_java", ] diff --git a/build/patches/eyeo-beta-118.0.5993.48-base.patch b/build/patches/eyeo-beta-118.0.5993.48-base.patch index 024ced45..068bd279 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-base.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-base.patch @@ -222,8 +222,8 @@ Based on Chromium 118.0.5993.48 tools/eyeo/generate_interdiffs.sh | 150 ++ tools/eyeo/generate_modules.sh | 209 +++ tools/eyeo/snippets_deps.py | 61 + - tools/gritsettings/resource_ids.spec | 8 + - 219 files changed, 22054 insertions(+), 3 deletions(-) + tools/gritsettings/resource_ids.spec | 9 + + 219 files changed, 22055 insertions(+), 3 deletions(-) create mode 100644 components/adblock/CHANGELOG.md create mode 100644 components/adblock/LICENSE create mode 100644 components/adblock/README.md @@ -435,8 +435,8 @@ diff --git a/DEPS b/DEPS # By default, do not check out WebKit for iOS, as it is not needed unless # running against ToT WebKit rather than system WebKit. This can be overridden # e.g. with custom_vars. -@@ -290,6 +294,8 @@ vars = { - 'download_libaom_testdata': False, +@@ -293,6 +297,8 @@ vars = { + 'download_libvpx_testdata': False, 'android_git': 'https://android.googlesource.com', + 'eyeo_distpartners_gitlab': 'https://gitlab.com/eyeo/distpartners', @@ -444,7 +444,7 @@ diff --git a/DEPS b/DEPS 'aomedia_git': 'https://aomedia.googlesource.com', 'boringssl_git': 'https://boringssl.googlesource.com', 'chrome_git': 'https://chrome-internal.googlesource.com', -@@ -505,6 +511,11 @@ vars = { +@@ -508,6 +514,11 @@ vars = { # and whatever else without interference from each other. 'betocore_revision': '8bd72cfb219344308ee857bcbe65a27fe91acfe8', @@ -455,8 +455,8 @@ diff --git a/DEPS b/DEPS + # If you change this, also update the libc++ revision in # //buildtools/deps_revisions.gni. - 'libcxx_revision': 'e3b94d0e5b86883fd77696bf10dc33ba250ba99b', -@@ -1012,6 +1023,10 @@ deps = { + 'libcxx_revision': '852bc6746f45add53fec19f3a29280e69e358d44', +@@ -1262,6 +1273,10 @@ deps = { 'condition': 'checkout_android and checkout_src_internal', }, @@ -465,9 +465,9 @@ diff --git a/DEPS b/DEPS + }, + 'src/docs/website': { - 'url': Var('chromium_git') + '/website.git' + '@' + 'b623150ede7e61bf949bd203b400f28012298274', + 'url': Var('chromium_git') + '/website.git' + '@' + 'cbeef22a59f72b8b5b4ac426d2eaa547fd2888b8', }, -@@ -1141,6 +1156,13 @@ deps = { +@@ -1391,6 +1406,13 @@ deps = { 'dep_type': 'cipd', }, @@ -525,7 +525,7 @@ diff --git a/README.md b/README.md diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h --- a/base/trace_event/builtin_categories.h +++ b/base/trace_event/builtin_categories.h -@@ -92,6 +92,7 @@ +@@ -93,6 +93,7 @@ X("exo") \ X("extensions") \ X("explore_sites") \ @@ -551,7 +551,7 @@ diff --git a/build/install-build-deps.py b/build/install-build-deps.py import argparse import functools import os -@@ -569,7 +577,7 @@ def backwards_compatible_list(options): +@@ -571,7 +579,7 @@ def backwards_compatible_list(options): "msttcorefonts", "python-dev", "python-setuptools", @@ -588,7 +588,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn "//components/affiliations/core/browser:unit_tests", "//components/aggregation_service:unit_tests", "//components/apdu:unit_tests", -@@ -414,6 +425,7 @@ test("components_unittests") { +@@ -417,6 +428,7 @@ test("components_unittests") { if (use_blink) { deps += [ @@ -52303,7 +52303,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow #include "content/browser/loader/navigation_url_loader_impl.h" #include -@@ -1102,7 +1106,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( +@@ -1110,7 +1114,7 @@ void NavigationURLLoaderImpl::OnReceiveRedirect( LogQueueTimeHistogram("Navigation.QueueTime.OnReceiveRedirect", resource_request_->is_outermost_main_frame); net::Error error = net::OK; @@ -52326,7 +52326,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" -@@ -2758,6 +2762,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( +@@ -2752,6 +2756,12 @@ void RenderFrameHostImpl::ExecuteJavaScriptMethod( std::move(callback)); } @@ -52353,7 +52353,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_ -@@ -462,6 +466,10 @@ class CONTENT_EXPORT RenderFrameHostImpl +@@ -465,6 +469,10 @@ class CONTENT_EXPORT RenderFrameHostImpl const std::u16string& method_name, base::Value::List arguments, JavaScriptResultCallback callback) override; @@ -52378,7 +52378,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_ -@@ -536,6 +540,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, +@@ -537,6 +541,9 @@ class CONTENT_EXPORT RenderFrameHost : public IPC::Listener, virtual void AddMessageToConsole(blink::mojom::ConsoleMessageLevel level, const std::string& message) = 0; @@ -52496,7 +52496,7 @@ diff --git a/third_party/blink/public/mojom/frame/frame.mojom b/third_party/blin module blink.mojom; -@@ -936,6 +940,10 @@ interface LocalFrame { +@@ -944,6 +948,10 @@ interface LocalFrame { // the given point in the view coordinate space. PluginActionAt(gfx.mojom.Point location, blink.mojom.PluginActionType action); @@ -52619,7 +52619,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" -@@ -356,6 +360,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) +@@ -357,6 +361,14 @@ LocalFrameMojoHandler::LocalFrameMojoHandler(blink::LocalFrame& frame) WrapWeakPersistent(this))); } @@ -52648,7 +52648,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame_mojo_handler.h b/ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_LOCAL_FRAME_MOJO_HANDLER_H_ -@@ -109,6 +113,7 @@ class LocalFrameMojoHandler +@@ -110,6 +114,7 @@ class LocalFrameMojoHandler void AddMessageToConsole(mojom::blink::ConsoleMessageLevel level, const WTF::String& message, bool discard_duplicates) final; @@ -53128,15 +53128,16 @@ 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 -@@ -734,6 +738,10 @@ - "META": {"sizes": {"includes": [10]}}, - "includes": [5460], +@@ -1344,6 +1348,11 @@ + "includes": [8460], }, + + "<(SHARED_INTERMEDIATE_DIR)/chrome/browser/resources/adblock_internals/resources.grd": { + "META": {"sizes": {"includes": [10]}}, -+ "includes": [5480], ++ "includes": [8480], + }, - # END chrome/ WebUI resources section ++ + # END "everything else" section. + # Everything but chrome/, components/, content/, and ios/ - # START chrome/ miscellaneous section. -- diff --git a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch index 72b3e227..aef91c21 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-chrome_integration.patch @@ -110,7 +110,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat #include "chrome/browser/buildflags.h" #include "chrome/browser/chrome_content_browser_client.h" #include "chrome/browser/chrome_resource_bundle_helper.h" -@@ -1913,7 +1918,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { +@@ -1921,7 +1926,7 @@ content::ContentClient* ChromeMainDelegate::CreateContentClient() { content::ContentBrowserClient* ChromeMainDelegate::CreateContentBrowserClient() { chrome_content_browser_client_ = @@ -132,7 +132,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn import("//base/allocator/allocator.gni") import("//build/buildflag_header.gni") -@@ -157,6 +160,26 @@ static_library("browser") { +@@ -151,6 +154,26 @@ static_library("browser") { "accessibility/prefers_default_scrollbar_styles_prefs.h", "affiliations/affiliation_service_factory.cc", "affiliations/affiliation_service_factory.h", @@ -158,16 +158,16 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn + "adblock/subscription_service_factory.h", "after_startup_task_utils.cc", "after_startup_task_utils.h", - "app_mode/app_mode_utils.cc", -@@ -2176,6 +2199,7 @@ static_library("browser") { - "//chrome/browser/ui/color:color_headers", + "ai/ai_manager_impl.cc", +@@ -2138,6 +2161,7 @@ static_library("browser") { "//chrome/browser/ui/color:mixers", + "//chrome/browser/ui/tabs", "//chrome/browser/ui/webui:configs", + "//chrome/browser/ui/webui/adblock_internals:mojo_bindings", "//chrome/browser/ui/webui/app_service_internals:mojo_bindings", "//chrome/browser/ui/webui/data_sharing_internals:mojo_bindings", "//chrome/browser/ui/webui/internals/user_education:mojo_bindings", -@@ -2200,6 +2224,8 @@ static_library("browser") { +@@ -2162,6 +2186,8 @@ static_library("browser") { "//chrome/installer/util:with_no_strings", "//chrome/services/on_device_translation:on_device_translation_service", "//chrome/services/speech/buildflags", @@ -176,16 +176,16 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "//components/assist_ranker", "//components/autofill/content/browser", "//components/autofill/content/common:features", -@@ -3546,6 +3572,8 @@ static_library("browser") { - "webauthn/android/webauthn_request_delegate_android.cc", - "webauthn/android/webauthn_request_delegate_android.h", +@@ -3523,6 +3549,8 @@ static_library("browser") { + "webid/digital_identity_provider_android.cc", + "webid/digital_identity_provider_android.h", ] + + public_deps += [ "//chrome/android/features/dev_ui:buildflags", "//components/image_fetcher/core", -@@ -3751,6 +3779,7 @@ static_library("browser") { +@@ -3733,6 +3761,7 @@ static_library("browser") { # `IdentityManagerFactory` in facilitated payments. allow_circular_includes_from += [ "//chrome/browser/facilitated_payments" ] @@ -2041,13 +2041,13 @@ diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser @@ -38,6 +42,7 @@ #include "chrome/browser/ui/search_engines/search_engine_tab_helper.h" - #include "chrome/browser/ui/side_panel/companion/companion_utils.h" + #include "chrome/browser/ui/views/side_panel/companion/companion_utils.h" #include "chrome/browser/ui/ui_features.h" +#include "chrome/browser/ui/webui/adblock_internals/adblock_internals_ui.h" #include "chrome/browser/ui/webui/browsing_topics/browsing_topics_internals_ui.h" + #include "chrome/browser/ui/webui/data_sharing_internals/data_sharing_internals_ui.h" #include "chrome/browser/ui/webui/engagement/site_engagement_ui.h" - #include "chrome/browser/ui/webui/internals/internals_ui.h" -@@ -1107,6 +1112,10 @@ void PopulateChromeWebUIFrameBinders( +@@ -1121,6 +1126,10 @@ void PopulateChromeWebUIFrameBinders( media::mojom::MediaEngagementScoreDetailsProvider, MediaEngagementUI>( map); @@ -2094,7 +2094,7 @@ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browse #include "chrome/browser/prefs/chrome_pref_service_factory.h" -@@ -40,6 +44,7 @@ +@@ -41,6 +45,7 @@ #include "chrome/grit/branded_strings.h" #include "chrome/grit/browser_resources.h" #include "chrome/grit/generated_resources.h" @@ -2102,10 +2102,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" -@@ -185,6 +190,12 @@ const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { - {33, prefs::kGoogleServicesLastSignedInUsername, +@@ -189,6 +194,12 @@ const prefs::TrackedPreferenceMetadata kTrackedPrefs[] = { + {34, enterprise_signin::prefs::kPolicyRecoveryToken, EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::ATOMIC, - ValueType::PERSONAL}, + ValueType::IMPERSONAL}, + {100, adblock::common::prefs::kSubscriptionSignatures, + EnforcementLevel::ENFORCE_ON_LOAD, PrefTrackingStrategy::SPLIT, + ValueType::IMPERSONAL}, @@ -2145,7 +2145,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" #include "chrome/browser/autocomplete/document_suggestions_service_factory.h" #include "chrome/browser/autocomplete/in_memory_url_index_factory.h" -@@ -267,6 +280,8 @@ +@@ -273,6 +286,8 @@ #include "chrome/browser/signin/signin_manager_android_factory.h" #include "components/commerce/core/commerce_feature_list.h" #include "components/commerce/core/proto/merchant_signal_db_content.pb.h" @@ -2154,7 +2154,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc #else #include "chrome/browser/accessibility/live_caption/live_caption_controller_factory.h" #include "chrome/browser/accessibility/live_translate_controller_factory.h" -@@ -823,8 +838,19 @@ void ChromeBrowserMainExtraPartsProfiles:: +@@ -840,8 +855,19 @@ void ChromeBrowserMainExtraPartsProfiles:: // Makes manual testing possible. FakeSmartCardDeviceServiceFactory::GetInstance(); #endif @@ -2195,7 +2195,7 @@ diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD. "bluetooth_internals:resources", "browsing_topics:resources", "components:resources", -@@ -307,6 +311,7 @@ repack("dev_ui_paks") { +@@ -311,6 +315,7 @@ repack("dev_ui_paks") { sources = [ "$root_gen_dir/chrome/accessibility_resources.pak", @@ -2340,9 +2340,9 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ +// Use of this source code is governed by the GPLv3 that can be found in the +// components/adblock/LICENSE file. - #include - #include -@@ -66,6 +70,7 @@ + #include "components/safe_browsing/content/browser/safe_browsing_blocking_page.h" + +@@ -70,6 +74,7 @@ #include "chrome/common/url_constants.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -2350,9 +2350,9 @@ diff --git a/chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc b/ #include "components/google/core/common/google_util.h" #include "components/grit/components_resources.h" #include "components/omnibox/browser/omnibox_prefs.h" -@@ -665,6 +670,8 @@ class SafeBrowsingBlockingPageBrowserTest +@@ -683,6 +688,8 @@ class SafeBrowsingBlockingPageBrowserTest {tag_and_attribute, add_warning_shown_timestamp_csbrrs, - create_warning_shown_csbrrs}, + create_warning_shown_csbrrs, abusive_notification_revocation}, {}); + scoped_feature_list_.InitWithFeaturesAndParameters( + {tag_and_attribute}, {adblock::kAdblockPlusFeature}); @@ -2405,7 +2405,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn import("//build/config/buildflags_paint_preview.gni") import("//build/config/chromeos/ui_mode.gni") -@@ -252,6 +256,10 @@ static_library("ui") { +@@ -261,6 +265,10 @@ static_library("ui") { "webui/about/about_ui.h", "webui/accessibility/accessibility_ui.cc", "webui/accessibility/accessibility_ui.h", @@ -2416,7 +2416,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "webui/autofill_and_password_manager_internals/autofill_internals_ui.cc", "webui/autofill_and_password_manager_internals/autofill_internals_ui.h", "webui/autofill_and_password_manager_internals/internals_ui_handler.cc", -@@ -468,6 +476,7 @@ static_library("ui") { +@@ -479,6 +487,7 @@ static_library("ui") { "//chrome/browser/ui/webui", "//chrome/browser/ui/webui/data_sharing_internals:mojo_bindings", "//chrome/browser/ui/webui/location_internals:mojo_bindings", @@ -2424,7 +2424,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//chrome/browser/ui/webui/omnibox:mojo_bindings", "//chrome/browser/ui/webui/privacy_sandbox:mojo_bindings", "//chrome/browser/ui/webui/segmentation_internals:mojo_bindings", -@@ -484,6 +493,7 @@ static_library("ui") { +@@ -495,6 +504,7 @@ static_library("ui") { "//components/access_code_cast/common:metrics", "//components/account_id", "//components/affiliations/core/browser:affiliations", @@ -2493,7 +2493,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "chrome/browser/bookmarks/bookmark_model_factory.h" #include "chrome/browser/breadcrumbs/breadcrumb_manager_tab_helper.h" #include "chrome/browser/browser_process.h" -@@ -115,6 +122,7 @@ +@@ -116,6 +123,7 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/chrome_isolated_world_ids.h" #include "chrome/common/chrome_switches.h" @@ -2501,7 +2501,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc #include "components/autofill/content/browser/content_autofill_client.h" #include "components/autofill/content/browser/content_autofill_driver_factory.h" #include "components/autofill/core/browser/browser_autofill_manager.h" -@@ -371,6 +379,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -373,6 +381,16 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { optimization_guide_decider); } } @@ -2874,7 +2874,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom #include "chrome/browser/ui/webui/components/components_ui.h" #include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" #include "chrome/browser/ui/webui/crashes_ui.h" -@@ -478,6 +483,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, +@@ -489,6 +494,9 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIUserActionsHost) return &NewWebUI; diff --git a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch index df570543..ac72e50f 100644 --- a/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch +++ b/build/patches/eyeo-beta-118.0.5993.48-extension_api.patch @@ -56,7 +56,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") -@@ -52,6 +56,8 @@ static_library("extensions") { +@@ -52,6 +56,8 @@ source_set("extensions") { # here. "api/activity_log_private/activity_log_private_api.cc", "api/activity_log_private/activity_log_private_api.h", @@ -65,7 +65,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/api_browser_context_keyed_service_factories.cc", "api/api_browser_context_keyed_service_factories.h", "api/autofill_private/autofill_private_api.cc", -@@ -153,6 +159,8 @@ static_library("extensions") { +@@ -153,6 +159,8 @@ source_set("extensions") { "api/extension_action/extension_action_api.h", "api/extension_action/extension_page_actions_api_constants.cc", "api/extension_action/extension_page_actions_api_constants.h", @@ -74,7 +74,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL "api/favicon/favicon_util.cc", "api/favicon/favicon_util.h", "api/feedback_private/chrome_feedback_private_delegate.cc", -@@ -835,6 +843,7 @@ static_library("extensions") { +@@ -853,6 +861,7 @@ source_set("extensions") { "//chrome/browser/safe_browsing:metrics_collector", "//chrome/browser/ui/tabs:tab_enums", "//chrome/browser/web_applications", @@ -2134,7 +2134,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac #include "chrome/browser/extensions/api/font_settings/font_settings_api.h" #include "chrome/browser/extensions/api/history/history_api.h" #include "chrome/browser/extensions/api/identity/identity_api.h" -@@ -80,6 +86,7 @@ namespace chrome_extensions { +@@ -75,6 +81,7 @@ namespace chrome_extensions { void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::ActivityLogAPI::GetFactoryInstance(); @@ -2142,7 +2142,7 @@ diff --git a/chrome/browser/extensions/api/api_browser_context_keyed_service_fac extensions::AutofillPrivateEventRouterFactory::GetInstance(); extensions::BluetoothLowEnergyAPI::GetFactoryInstance(); extensions::BookmarksAPI::GetFactoryInstance(); -@@ -92,6 +99,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { +@@ -87,6 +94,7 @@ void EnsureApiBrowserContextKeyedServiceFactoriesBuilt() { extensions::DocumentScanAPIHandler::GetFactoryInstance(); #endif extensions::ExtensionActionAPI::GetFactoryInstance(); @@ -3472,15 +3472,15 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro #include "chrome/browser/extensions/api/settings_private/prefs_util.h" #include -@@ -28,6 +32,7 @@ - #include "chrome/browser/ssl/generated_https_first_mode_pref.h" +@@ -29,6 +33,7 @@ + #include "chrome/browser/ui/tabs/tab_strip_prefs.h" #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" +#include "components/adblock/core/common/adblock_prefs.h" #include "components/autofill/core/common/autofill_prefs.h" #include "components/bookmarks/common/bookmark_pref_names.h" #include "components/browsing_data/core/pref_names.h" -@@ -172,6 +177,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { +@@ -175,6 +180,20 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() { } s_allowlist = new PrefsUtil::TypedPrefMap(); @@ -3556,7 +3556,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext // This features file defines extension APIs implemented under src/chrome. // See chrome/common/extensions/api/_features.md to understand this file, as -@@ -58,6 +62,16 @@ +@@ -60,6 +64,16 @@ "chrome://extensions/*" ] }], @@ -3573,7 +3573,7 @@ diff --git a/chrome/common/extensions/api/_api_features.json b/chrome/common/ext "app": { "blocklist": [ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice -@@ -502,6 +516,14 @@ +@@ -507,6 +521,14 @@ "channel": "stable", "contexts": [] }, @@ -4154,7 +4154,7 @@ diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metr -@@ -3121,6 +3122,8 @@ Called by update_extension_permission.py.--> +@@ -3117,6 +3118,8 @@ Called by update_extension_permission.py.--> diff --git a/build/patches/net-cert-increase-default-key-length.patch b/build/patches/net-cert-increase-default-key-length.patch index fd40d196..ade38ec9 100644 --- a/build/patches/net-cert-increase-default-key-length.patch +++ b/build/patches/net-cert-increase-default-key-length.patch @@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/net/cert/x509_util.cc b/net/cert/x509_util.cc --- a/net/cert/x509_util.cc +++ b/net/cert/x509_util.cc -@@ -299,7 +299,7 @@ bool GetTLSServerEndPointChannelBinding(const X509Certificate& certificate, +@@ -304,7 +304,7 @@ bool GetTLSServerEndPointChannelBinding(const X509Certificate& certificate, } // RSA keys created by CreateKeyAndSelfSignedCert will be of this length. diff --git a/build/patches/ungoogled-chromium-Disable-profile-avatar.patch b/build/patches/ungoogled-chromium-Disable-profile-avatar.patch index 202ea3ca..24fad833 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 -@@ -1407,8 +1407,6 @@ static_library("browser") { +@@ -1397,8 +1397,6 @@ static_library("browser") { "profiles/profile_attributes_storage.cc", "profiles/profile_attributes_storage.h", "profiles/profile_attributes_storage_observer.h", diff --git a/build/patches/ungoogled-chromium-Disable-translate-integration.patch b/build/patches/ungoogled-chromium-Disable-translate-integration.patch index 6eefb6bb..92ce51e5 100644 --- a/build/patches/ungoogled-chromium-Disable-translate-integration.patch +++ b/build/patches/ungoogled-chromium-Disable-translate-integration.patch @@ -173,7 +173,7 @@ diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1820,9 +1820,6 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1884,9 +1884,6 @@ Your Google account may have other forms of browsing history like searches and a Let websites know the languages you speak. They’ll show content in those languages, when possible. diff --git a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch index 95f26977..85d8d38c 100644 --- a/build/patches/ungoogled-chromium-no-special-hosts-domains.patch +++ b/build/patches/ungoogled-chromium-no-special-hosts-domains.patch @@ -30,11 +30,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../from_gws_page_load_metrics_observer.cc | 6 +- .../page_load_metrics_initialize.cc | 2 - chrome/browser/safe_browsing/BUILD.gn | 1 - + chrome/browser/search_engines/BUILD.gn | 1 - .../ui_thread_search_terms_data.cc | 4 - chrome/browser/ui/BUILD.gn | 1 - chrome/browser/ui/android/omnibox/BUILD.gn | 2 - .../omnibox/LocationBarCoordinator.java | 2 - - .../browser/omnibox/LocationBarMediator.java | 22 -- + .../browser/omnibox/LocationBarMediator.java | 25 -- .../ui/webui/new_tab_page/new_tab_page_ui.cc | 5 - .../webui/settings/reset_settings_handler.cc | 1 - .../upgrade_detector/upgrade_detector_impl.cc | 6 - @@ -63,13 +64,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 +- - 56 files changed, 57 insertions(+), 841 deletions(-) + 57 files changed, 57 insertions(+), 845 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 -@@ -91,7 +91,6 @@ import org.chromium.chrome.browser.messages.MessageContainerCoordinator; +@@ -92,7 +92,6 @@ import org.chromium.chrome.browser.messages.MessageContainerCoordinator; import org.chromium.chrome.browser.messages.MessageContainerObserver; import org.chromium.chrome.browser.messages.MessagesResourceMapperInitializer; import org.chromium.chrome.browser.omnibox.OmniboxFocusReason; @@ -77,7 +78,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; -@@ -1078,10 +1077,8 @@ public class RootUiCoordinator +@@ -1079,10 +1078,8 @@ public class RootUiCoordinator String url = TemplateUrlServiceFactory.getForProfile(tab.getProfile()) .getUrlForSearchQuery(query); @@ -91,7 +92,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 -@@ -1014,10 +1014,6 @@ static_library("browser") { +@@ -1006,10 +1006,6 @@ static_library("browser") { "page_load_metrics/observers/foreground_duration_ukm_observer.h", "page_load_metrics/observers/formfill_page_load_metrics_observer.cc", "page_load_metrics/observers/formfill_page_load_metrics_observer.h", @@ -102,7 +103,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", -@@ -1737,8 +1733,6 @@ static_library("browser") { +@@ -1720,8 +1716,6 @@ static_library("browser") { "supervised_user/chrome_supervised_user_web_content_handler_base.h", "supervised_user/supervised_user_browser_utils.cc", "supervised_user/supervised_user_browser_utils.h", @@ -111,7 +112,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", -@@ -2005,7 +1999,6 @@ static_library("browser") { +@@ -1958,7 +1952,6 @@ static_library("browser") { "//chrome/browser/autofill", "//chrome/browser/devtools", "//chrome/browser/favicon", @@ -119,18 +120,18 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn # Circular dependency due to SystemNetworkContextManager. "//chrome/browser/image_fetcher", -@@ -2039,7 +2032,6 @@ static_library("browser") { +@@ -1995,7 +1988,6 @@ static_library("browser") { public_deps = [ "//base", - "//chrome/browser/google", "//chrome/browser/headless", "//chrome/browser/profiles", - "//chrome/common", + "//chrome/browser/ui/tabs:tab_enums", diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browser/android/metrics/uma_session_stats.cc --- a/chrome/browser/android/metrics/uma_session_stats.cc +++ b/chrome/browser/android/metrics/uma_session_stats.cc -@@ -257,16 +257,6 @@ static void JNI_UmaSessionStats_ChangeMetricsReportingConsent( +@@ -259,16 +259,6 @@ static void JNI_UmaSessionStats_ChangeMetricsReportingConsent( jint called_from) { UpdateMetricsPrefsOnPermissionChange( consent, static_cast(called_from)); @@ -150,7 +151,7 @@ diff --git a/chrome/browser/android/metrics/uma_session_stats.cc b/chrome/browse diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/browser/android/signin/signin_manager_android.cc --- a/chrome/browser/android/signin/signin_manager_android.cc +++ b/chrome/browser/android/signin/signin_manager_android.cc -@@ -70,41 +70,10 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { +@@ -71,41 +71,10 @@ class ProfileDataRemover : public content::BrowsingDataRemover::Observer { origin_runner_(base::SingleThreadTaskRunner::GetCurrentDefault()), remover_(profile->GetBrowsingDataRemover()) { remover_->AddObserver(this); @@ -199,7 +200,7 @@ diff --git a/chrome/browser/android/signin/signin_manager_android.cc b/chrome/br 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 -@@ -1190,7 +1190,6 @@ BrowserProcessImpl::component_updater() { +@@ -1188,7 +1188,6 @@ BrowserProcessImpl::component_updater() { std::make_unique(); std::string brand; @@ -222,7 +223,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows } #endif // BUILDFLAG(ENABLE_PROCESS_SINGLETON) -@@ -1808,11 +1803,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { +@@ -1811,11 +1806,6 @@ int ChromeBrowserMainParts::PreMainMessageLoopRunImpl() { upgrade_util::SaveLastModifiedTimeOfExe(); #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) @@ -237,7 +238,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 -@@ -2799,7 +2799,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( +@@ -2836,7 +2836,6 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches( switches::kForcePNaClSubzero, #endif switches::kForceUIDirection, @@ -245,7 +246,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch switches::kJavaScriptHarmony, switches::kEnableExperimentalWebAssemblyFeatures, embedder_support::kOriginTrialDisabledFeatures, -@@ -5149,9 +5148,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( +@@ -5202,9 +5201,6 @@ ChromeContentBrowserClient::CreateThrottlesForNavigation( } #endif @@ -255,7 +256,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch MaybeAddThrottle( SupervisedUserNavigationThrottle::MaybeCreateThrottleFor(handle), -@@ -5727,7 +5723,8 @@ GetClientDataHeader(int frame_tree_node_id) { +@@ -5775,7 +5771,8 @@ GetClientDataHeader(int frame_tree_node_id) { } #endif @@ -265,7 +266,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 -@@ -5766,7 +5763,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( +@@ -5815,7 +5812,7 @@ std::unique_ptr CreateGoogleURLLoaderThrottle( std::move(bound_session_request_throttled_handler), #endif std::move(dynamic_params)); @@ -274,7 +275,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch std::vector> ChromeContentBrowserClient::CreateURLLoaderThrottles( -@@ -5814,15 +5811,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( +@@ -5863,15 +5860,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottles( GetClientDataHeader(frame_tree_node_id); #endif @@ -290,7 +291,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch { auto* factory = ProtocolHandlerRegistryFactory::GetForBrowserContext(browser_context); -@@ -5877,20 +5865,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( +@@ -5926,20 +5914,6 @@ ChromeContentBrowserClient::CreateURLLoaderThrottlesForKeepAlive( } #endif @@ -360,7 +361,7 @@ diff --git a/chrome/browser/domain_reliability/service_factory.cc b/chrome/brows diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn --- a/chrome/browser/extensions/BUILD.gn +++ b/chrome/browser/extensions/BUILD.gn -@@ -824,7 +824,6 @@ static_library("extensions") { +@@ -842,7 +842,6 @@ source_set("extensions") { "//chrome/browser/devtools", "//chrome/browser/extensions:cws_item_service_proto", "//chrome/browser/favicon", @@ -379,7 +380,7 @@ diff --git a/chrome/browser/feedback/system_logs/log_sources/chrome_internal_log #if BUILDFLAG(GOOGLE_CHROME_BRANDING) constexpr char kUpdateErrorCode[] = "update_error_code"; constexpr char kUpdateHresult[] = "update_hresult"; -@@ -628,10 +627,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( +@@ -626,10 +625,6 @@ void ChromeInternalLogSource::PopulateEnrolledToDomain( void ChromeInternalLogSource::PopulateInstallerBrandCode( SystemLogsResponse* response) { @@ -432,7 +433,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 -@@ -34,13 +34,11 @@ constexpr size_t kMaxPerCaptureSizeBytes = 50 * 1000L * 1000L; // 50 MB. +@@ -36,13 +36,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. @@ -446,7 +447,7 @@ diff --git a/chrome/browser/long_screenshots/long_screenshots_tab_service.cc b/c const char kGoogleNewsPathPattern[] = "/articles/(.*)"; } // namespace -@@ -229,26 +227,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { +@@ -231,26 +229,6 @@ bool LongScreenshotsTabService::IsAmpUrl(const GURL& url) { return false; } @@ -606,7 +607,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 -@@ -859,7 +859,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( +@@ -857,7 +857,6 @@ void SystemNetworkContextManager::AddSSLConfigToNetworkContextParams( void SystemNetworkContextManager::ConfigureDefaultNetworkContextParams( network::mojom::NetworkContextParams* network_context_params) { variations::UpdateCorsExemptHeaderForVariations(network_context_params); @@ -706,7 +707,18 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin - "//chrome/browser/google", "//chrome/browser/profiles", "//chrome/browser/profiles:profile", - "//chrome/common", + "//chrome/browser/sync", +diff --git a/chrome/browser/search_engines/BUILD.gn b/chrome/browser/search_engines/BUILD.gn +--- a/chrome/browser/search_engines/BUILD.gn ++++ b/chrome/browser/search_engines/BUILD.gn +@@ -32,7 +32,6 @@ source_set("search_engines") { + + deps = [ + "//chrome/browser:browser_process", +- "//chrome/browser/google", + "//chrome/common:channel_info", + "//chrome/common:non_code_constants", + "//components/google/core/common", diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chrome/browser/search_engines/ui_thread_search_terms_data.cc --- a/chrome/browser/search_engines/ui_thread_search_terms_data.cc +++ b/chrome/browser/search_engines/ui_thread_search_terms_data.cc @@ -724,10 +736,10 @@ diff --git a/chrome/browser/search_engines/ui_thread_search_terms_data.cc b/chro 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 -@@ -445,7 +445,6 @@ static_library("ui") { - "//chrome/browser/companion/core", +@@ -456,7 +456,6 @@ static_library("ui") { "//chrome/browser/devtools", "//chrome/browser/favicon", + "//chrome/browser/fingerprinting_protection", - "//chrome/browser/google", "//chrome/browser/image_decoder", "//chrome/browser/image_fetcher", @@ -755,7 +767,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.status.StatusCoordinator.PageInfoAction; import org.chromium.chrome.browser.omnibox.status.StatusView; -@@ -380,7 +379,6 @@ public class LocationBarCoordinator +@@ -384,7 +383,6 @@ public class LocationBarCoordinator mLocationBarMediator.destroy(); mLocationBarMediator = null; @@ -766,7 +778,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.lens.LensQueryParams; +@@ -48,7 +48,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; @@ -774,7 +786,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import org.chromium.chrome.browser.omnibox.status.StatusCoordinator; import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider; import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator; -@@ -304,24 +303,6 @@ class LocationBarMediator +@@ -306,24 +305,6 @@ class LocationBarMediator if (!mUrlFocusedWithoutAnimations) handleUrlFocusAnimation(hasFocus); @@ -799,7 +811,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow if (!hasFocus && mLocationBarDataProvider.hasTab()) { setUrl( mLocationBarDataProvider.getCurrentGurl(), -@@ -337,8 +318,6 @@ class LocationBarMediator +@@ -339,8 +320,6 @@ class LocationBarMediator templateUrlService.addObserver(this); if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() && templateUrlService.isDefaultSearchEngineGoogle()) { @@ -808,7 +820,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } }); -@@ -568,7 +547,6 @@ class LocationBarMediator +@@ -570,7 +549,6 @@ class LocationBarMediator LoadUrlParams loadUrlParams = new LoadUrlParams(url); try (TimingMetric record = TimingMetric.shortUptime("Android.Omnibox.SetGeolocationHeadersTime")) { @@ -816,10 +828,26 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } loadUrlParams.setTransitionType( omniboxLoadUrlParams.transitionType | PageTransition.FROM_ADDRESS_BAR); +@@ -1549,15 +1527,12 @@ class LocationBarMediator + if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled() + && mProfileSupplier.hasValue() + && mTemplateUrlServiceSupplier.hasValue()) { +- GeolocationHeader.primeLocationForGeoHeaderIfEnabled( +- mProfileSupplier.get(), mTemplateUrlServiceSupplier.get()); + } + } + + @Override + public void onPauseWithNative() { + if (OmniboxFeatures.sUseFusedLocationProvider.isEnabled()) { +- GeolocationHeader.stopListeningForLocationUpdates(); + } + } + 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 -@@ -675,11 +675,6 @@ content::WebUIDataSource* CreateAndAddNewTabPageUiHtmlSource(Profile* profile) { +@@ -693,11 +693,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. @@ -861,7 +889,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 -@@ -144,8 +144,6 @@ static_library("common_lib") { +@@ -141,8 +141,6 @@ static_library("common_lib") { "content_restriction.h", "crash_keys.cc", "crash_keys.h", @@ -905,9 +933,9 @@ 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 -@@ -6837,7 +6837,6 @@ test("unit_tests") { - "//chrome/browser/dips:unit_tests", +@@ -6932,7 +6932,6 @@ test("unit_tests") { "//chrome/browser/favicon", + "//chrome/browser/fingerprinting_protection", "//chrome/browser/first_party_sets", - "//chrome/browser/google:unit_tests", "//chrome/browser/ip_protection:unit_tests", @@ -1573,7 +1601,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 -@@ -586,11 +586,7 @@ std::u16string TemplateURLRef::SearchTermToString16( +@@ -593,11 +593,7 @@ std::u16string TemplateURLRef::SearchTermToString16( bool TemplateURLRef::HasGoogleBaseURLs( const SearchTermsData& search_terms_data) const { ParseIfNecessary(search_terms_data); @@ -1807,7 +1835,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 -@@ -2754,7 +2754,7 @@ URLRequestContextOwner NetworkContext::MakeURLRequestContext( +@@ -2813,7 +2813,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 042c0d81..bcae6d62 100644 --- a/build/patches/webRTC-do-not-expose-local-IP-addresses.patch +++ b/build/patches/webRTC-do-not-expose-local-IP-addresses.patch @@ -29,7 +29,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u 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 -@@ -120,7 +120,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { +@@ -119,7 +119,9 @@ WebRTCIPHandlingPolicy GetWebRTCIPHandlingPolicy(const String& preference) { return kDefaultPublicInterfaceOnly; if (preference == kWebRTCIPHandlingDisableNonProxiedUdp) return kDisableNonProxiedUdp; @@ -40,7 +40,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_d } bool IsValidPortRange(uint16_t min_port, uint16_t max_port) { -@@ -857,7 +859,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -859,7 +861,7 @@ PeerConnectionDependencyFactory::CreatePortAllocator( break; } diff --git a/build/patches/webview-Hard-no-to-persistent-histograms.patch b/build/patches/webview-Hard-no-to-persistent-histograms.patch index 34fa2636..3a5d5c9c 100644 --- a/build/patches/webview-Hard-no-to-persistent-histograms.patch +++ b/build/patches/webview-Hard-no-to-persistent-histograms.patch @@ -18,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browser/aw_field_trials.cc --- a/android_webview/browser/aw_field_trials.cc +++ b/android_webview/browser/aw_field_trials.cc -@@ -60,13 +60,6 @@ class AwFeatureOverrides { +@@ -62,13 +62,6 @@ class AwFeatureOverrides { } // namespace void AwFieldTrials::OnVariationsSetupComplete() { @@ -27,7 +27,7 @@ diff --git a/android_webview/browser/aw_field_trials.cc b/android_webview/browse - if (base::PathService::Get(base::DIR_ANDROID_APP_DATA, &metrics_dir)) { - InstantiatePersistentHistogramsWithFeaturesAndCleanup(metrics_dir); - } else { -- NOTREACHED(); +- NOTREACHED_IN_MIGRATION(); - } }