diff --git a/build/browser.gn_args b/build/browser.gn_args index 02215a531a8f01baafb9b4f85925e751f7cc3f28..b3acb59cfa0146a6e3a69f652f395babd8e05209 100644 --- a/build/browser.gn_args +++ b/build/browser.gn_args @@ -51,6 +51,8 @@ use_rtti=false use_stable_package_name_for_trichrome=false use_thin_lto=false use_v8_context_snapshot=false +enable_glic = false +build_tflite_with_xnnpack = false chrome_public_manifest_package = "foundation.e.browser" trichrome_library_package = "foundation.e.trichromelibrary" diff --git a/build/cromite_patches/Add-AllowUserCertificates-flag.patch b/build/cromite_patches/Add-AllowUserCertificates-flag.patch index df21203fe180decbab6be47ac16308fd5a5fbee6..8a9e869bf11d738ef606db5390040d6ddd73c7a1 100644 --- a/build/cromite_patches/Add-AllowUserCertificates-flag.patch +++ b/build/cromite_patches/Add-AllowUserCertificates-flag.patch @@ -20,7 +20,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -239,6 +239,7 @@ import org.chromium.content_public.browser.LoadUrlParams; +@@ -242,6 +242,7 @@ import org.chromium.content_public.browser.LoadUrlParams; import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.ContentSwitches; @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.printing.PrintManagerDelegateImpl; import org.chromium.printing.PrintingController; import org.chromium.printing.PrintingControllerImpl; -@@ -999,6 +1000,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -1004,6 +1005,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity super.onStartWithNative(); ChromeActivitySessionTracker.getInstance().onStartWithNative(getProfileProviderSupplier()); @@ -40,7 +40,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -181,6 +181,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { +@@ -185,6 +185,7 @@ const base::Feature* const kFeaturesExposedToJava[] = { &feed::kFeedPerformanceStudy, &feed::kFeedShowSignInCommand, &feed::kFeedSignedOutViewDemotion, @@ -51,7 +51,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 -@@ -162,6 +162,7 @@ public abstract class ChromeFeatureList { +@@ -164,6 +164,7 @@ public abstract class ChromeFeatureList { "AccountForSuppressedKeyboardInsets"; public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_CUSTOMIZATION_V2 = "AdaptiveButtonInTopToolbarCustomizationV2"; @@ -59,23 +59,23 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final String ADAPTIVE_BUTTON_IN_TOP_TOOLBAR_PAGE_SUMMARY = "AdaptiveButtonInTopToolbarPageSummary"; public static final String ALLOW_TAB_CLOSING_UPON_MINIMIZATION = -@@ -796,6 +797,8 @@ public abstract class ChromeFeatureList { +@@ -807,6 +808,8 @@ public abstract class ChromeFeatureList { public static final CachedFlag sAndroidWindowPopupResizeAfterSpawn = - newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false); + newCachedFlag(ANDROID_WINDOW_POPUP_RESIZE_AFTER_SPAWN, false, true); public static final CachedFlag sAppSpecificHistory = newCachedFlag(APP_SPECIFIC_HISTORY, true); + public static final CachedFlag sAllowUserCertificates = + newCachedFlag(ALLOW_USER_CERTIFICATES, false); public static final CachedFlag sAppSpecificHistoryViewIntent = newCachedFlag(APP_SPECIFIC_HISTORY_VIEW_INTENT, true); public static final CachedFlag sAsyncNotificationManager = -@@ -1131,6 +1134,7 @@ public abstract class ChromeFeatureList { +@@ -1130,6 +1133,7 @@ public abstract class ChromeFeatureList { + sAllowTabClosingUponMinimization, sAndroidAnimatedProgressBarInBrowser, sAndroidAnimatedProgressBarInViz, - sAndroidAppIntegration, + sAllowUserCertificates, sAndroidAppIntegrationModule, sAndroidAppIntegrationMultiDataSource, - sAndroidAppIntegrationV2, + sAndroidBottomToolbar, diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-AllowUserCertificates-flag.inc new file mode 100644 --- /dev/null @@ -120,7 +120,7 @@ diff --git a/net/android/java/src/org/chromium/net/X509Util.java b/net/android/j public static AndroidCertVerifyResult verifyServerCertificates( byte[][] certChain, String authType, -@@ -637,6 +639,9 @@ public class X509Util { +@@ -639,6 +641,9 @@ public class X509Util { X509Certificate root = verifiedChain.get(verifiedChain.size() - 1); isIssuedByKnownRoot = isKnownRoot(root); } diff --git a/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch b/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch index fceaf6d363cc8827d37c5d6248436c6f2e9e239c..f857bb8b667990c9b22a0754dcb463b526165ef5 100644 --- a/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch +++ b/build/cromite_patches/Add-Alt-D-hotkey-to-focus-address-bar.patch @@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java --- a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcuts.java -@@ -895,6 +895,12 @@ public class KeyboardShortcuts { +@@ -883,6 +883,12 @@ public class KeyboardShortcuts { KeyEvent.KEYCODE_ESCAPE, KeyEvent.META_CTRL_ON); } diff --git a/build/cromite_patches/Add-IsCleartextPermitted-flag.patch b/build/cromite_patches/Add-IsCleartextPermitted-flag.patch index e75cef12f05742af33f6c38ea1cdad22d17e3d1e..090c933fbc71dd18a590cf0d6f6c46f5d725ad8d 100644 --- a/build/cromite_patches/Add-IsCleartextPermitted-flag.patch +++ b/build/cromite_patches/Add-IsCleartextPermitted-flag.patch @@ -44,7 +44,7 @@ new file mode 100644 diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_request_http_job.cc --- a/net/url_request/url_request_http_job.cc +++ b/net/url_request/url_request_http_job.cc -@@ -408,6 +408,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { +@@ -413,6 +413,11 @@ std::unique_ptr URLRequestHttpJob::Create(URLRequest* request) { } } diff --git a/build/cromite_patches/Add-a-proxy-configuration-page.patch b/build/cromite_patches/Add-a-proxy-configuration-page.patch index 5b42e599e23fb7ee7c3fe8bbfc5229cb162883de..9d89df06a95da0cf2cfb28941eb7e161413a6f8d 100644 --- a/build/cromite_patches/Add-a-proxy-configuration-page.patch +++ b/build/cromite_patches/Add-a-proxy-configuration-page.patch @@ -89,7 +89,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -409,6 +409,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { +@@ -410,6 +410,7 @@ ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() { builtins_to_provide.push_back(chrome::kChromeUISettingsURL16); #endif builtins_to_provide.push_back(chrome::kChromeUIVersionURL16); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resources.grd --- a/chrome/browser/browser_resources.grd +++ b/chrome/browser/browser_resources.grd -@@ -226,6 +226,9 @@ +@@ -229,6 +229,9 @@ @@ -113,7 +113,7 @@ diff --git a/chrome/browser/browser_resources.grd b/chrome/browser/browser_resou diff --git a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc --- a/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc +++ b/chrome/browser/extensions/api/proxy/proxy_api_helpers.cc -@@ -372,7 +372,7 @@ std::optional CreateProxyConfigDict( +@@ -375,7 +375,7 @@ std::optional CreateProxyConfigDict( return std::nullopt; } return ProxyConfigDictionary::CreateFixedServers(proxy_rules_string, @@ -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 -@@ -204,6 +204,8 @@ +@@ -207,6 +207,8 @@ #include "printing/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h" @@ -206,7 +206,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #if BUILDFLAG(ENABLE_BACKGROUND_MODE) #include "chrome/browser/background/extensions/background_mode_manager.h" #endif -@@ -1692,6 +1694,8 @@ void RegisterLocalState(PrefRegistrySimple* registry) { +@@ -1749,6 +1751,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 -@@ -156,6 +156,8 @@ static_library("ui") { +@@ -158,6 +158,8 @@ static_library("ui") { "webui/metrics_internals/metrics_internals_ui.h", "webui/net_export_ui.cc", "webui/net_export_ui.h", @@ -683,7 +683,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u #if BUILDFLAG(ENABLE_WEBUI_CERTIFICATE_VIEWER) #include "chrome/browser/ui/webui/certificate_viewer/certificate_viewer_ui.h" #endif -@@ -424,7 +427,7 @@ void RegisterChromeWebUIConfigs() { +@@ -426,7 +429,7 @@ void RegisterChromeWebUIConfigs() { map.AddWebUIConfig(std::make_unique()); map.AddWebUIConfig(std::make_unique()); #endif @@ -1154,7 +1154,7 @@ diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_cons diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_constants.h --- a/chrome/common/webui_url_constants.h +++ b/chrome/common/webui_url_constants.h -@@ -188,6 +188,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; +@@ -190,6 +190,8 @@ inline constexpr char kChromeUINetInternalsHost[] = "net-internals"; inline constexpr char kChromeUINetInternalsURL[] = "chrome://net-internals/"; inline constexpr char kChromeUINewTabHost[] = "newtab"; inline constexpr char kChromeUINewTabFooterHost[] = "newtab-footer"; diff --git a/build/cromite_patches/Add-an-always-incognito-mode.patch b/build/cromite_patches/Add-an-always-incognito-mode.patch index 304b7523c90c11af05516a07bd23dd177e8e1766..71b68aa700a1f2fef22b5e88e4ab412ac096fa77 100644 --- a/build/cromite_patches/Add-an-always-incognito-mode.patch +++ b/build/cromite_patches/Add-an-always-incognito-mode.patch @@ -68,7 +68,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/profiles/profile_selections.cc | 10 + chrome/browser/profiles/profile_selections.h | 7 +- .../browser/ui/android/native_page/BUILD.gn | 2 + - .../browser/ui/native_page/NativePage.java | 22 ++- + .../browser/ui/native_page/NativePage.java | 17 +- .../browser/omnibox/LocationBarMediator.java | 8 + .../strings/android_chrome_strings.grd | 25 +++ .../browser/toolbar/LocationBarModel.java | 4 +- @@ -88,7 +88,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../add-an-always-incognito-mode.inc | 1 + .../add-an-always-incognito-mode.inc | 3 + .../add-an-always-incognito-mode.inc | 1 + - 69 files changed, 794 insertions(+), 105 deletions(-) + 69 files changed, 791 insertions(+), 103 deletions(-) create mode 100644 chrome/android/java/res/xml/incognito_preferences.xml create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/AlwaysIncognitoLinkInterceptor.java create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java @@ -101,7 +101,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -624,6 +624,7 @@ chrome_java_resources = [ +@@ -638,6 +638,7 @@ chrome_java_resources = [ "java/res/xml/main_preferences.xml", "java/res/xml/manage_sync_preferences.xml", "java/res/xml/personalize_google_services_preferences.xml", @@ -120,14 +120,14 @@ 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", -@@ -916,6 +917,7 @@ chrome_java_sources = [ +@@ -925,6 +926,7 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/privacy/settings/PasswordEchoSettingHandlerFactory.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java", "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java", + "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoSettings.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/CctHandler.java", "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java", - "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java", + "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandbox3pcdRollbackMessageController.java", diff --git a/chrome/android/java/res/xml/incognito_preferences.xml b/chrome/android/java/res/xml/incognito_preferences.xml new file mode 100644 --- /dev/null @@ -247,7 +247,7 @@ new file mode 100644 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -73,6 +73,10 @@ import org.chromium.build.annotations.Nullable; +@@ -71,6 +71,10 @@ import org.chromium.build.annotations.Nullable; import org.chromium.build.annotations.UsedByReflection; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; @@ -258,9 +258,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.IntentHandler.ExternalAppId; import org.chromium.chrome.browser.IntentHandler.TabOpenType; import org.chromium.chrome.browser.app.ChromeActivity; -@@ -803,14 +807,19 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -837,15 +841,20 @@ public class ChromeTabbedActivity extends ChromeActivity { + } - Profile profile = mTabModelSelector.getCurrentModel().getProfile(); // For saving non-incognito tab closures for Recent Tabs. - mHistoricalTabModelObserver = - new HistoricalTabModelObserver( @@ -276,16 +276,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct .getTabGroupModelFilterProvider() - .getTabGroupModelFilter(false)); - mHistoricalTabModelObserver.addSecondaryTabModelSupplier( -- ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); -- +- ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) + .getTabGroupModelFilter(alwaysIncognito)); + mHistoricalTabModelObserver.addSecondaryTabModelSupplier( -+ ArchivedTabModelOrchestrator.getForProfile(profile)::getTabModel); ++ ArchivedTabModelOrchestrator.getForProfile(currentTabModel.getProfile()) + ::getTabModel); +- + } // Defer creation of this helper so it triggers after TabGroupModelFilter observers. mUndoRefocusHelper = new UndoRefocusHelper( -@@ -3228,7 +3237,7 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3299,7 +3308,7 @@ public class ChromeTabbedActivity extends ChromeActivity { // We determine SupportedProfileType in onPreCreate(). // We determine the model as soon as possible so every systems get initialized coherently. @@ -297,7 +298,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -98,6 +98,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH +@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.compositor.layouts.content.TabContentManagerH import org.chromium.chrome.browser.contextualsearch.ContextualSearchManager; import org.chromium.chrome.browser.device.DeviceClassManager; import org.chromium.chrome.browser.devtools.DevToolsWindowAndroid; @@ -305,7 +306,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.dom_distiller.DomDistillerUiUtils; import org.chromium.chrome.browser.dom_distiller.ReaderModeManager; import org.chromium.chrome.browser.download.DownloadManagerService; -@@ -2028,6 +2029,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2076,6 +2077,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity throw new IllegalStateException( "Attempting to access TabCreator before initialization"); } @@ -318,7 +319,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 -@@ -91,6 +91,8 @@ import java.util.Iterator; +@@ -92,6 +92,8 @@ import java.util.Iterator; import java.util.List; import java.util.function.Supplier; @@ -327,7 +328,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. -@@ -620,8 +622,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -635,8 +637,9 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties && !isNativePage && !isFileScheme && !isContentScheme @@ -342,7 +343,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/ChromeContextMenuPopulator.java -@@ -39,6 +39,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; +@@ -41,6 +41,7 @@ import org.chromium.base.shared_preferences.SharedPreferencesManager; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; @@ -350,7 +351,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.contextmenu.ChromeContextMenuItem.Item; import org.chromium.chrome.browser.contextmenu.ContextMenuCoordinator.ContextMenuItemType; -@@ -425,6 +426,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -430,6 +431,9 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { mShowEphemeralTabNewLabel = null; mCustomActionMap.clear(); @@ -360,7 +361,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr List groupedItems = new ArrayList<>(); if (mParams.isPage() && shouldShowEmptySpaceContextMenu()) { -@@ -489,7 +493,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { +@@ -501,7 +505,7 @@ public class ChromeContextMenuPopulator implements ContextMenuPopulator { } } if (FirstRunStatus.getFirstRunFlowComplete()) { @@ -372,21 +373,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextmenu/Chr diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivityLifecycleUmaTracker.java -@@ -62,37 +62,6 @@ public class CustomTabActivityLifecycleUmaTracker +@@ -68,37 +68,6 @@ public class CustomTabActivityLifecycleUmaTracker private boolean mIsInitialResume = true; private void recordIncognitoLaunchReason() { - // TODO(crbug.com/352525607): Separate Ephemeral and Incognito CCT metrics. -- /*@IncognitoCctCallerId*/ int incognitoCctCallerId = -- mIntentDataProvider.getFeatureIdForMetricsCollection(); +- @BrowserServicesIntentDataProvider.IncognitoCctCallerId +- int incognitoCctCallerId = mIntentDataProvider.getFeatureIdForMetricsCollection(); - - RecordHistogram.recordEnumeratedHistogram( - "CustomTabs.IncognitoCctCallerId", - incognitoCctCallerId, -- IntentHandler.IncognitoCctCallerId.NUM_ENTRIES); +- BrowserServicesIntentDataProvider.IncognitoCctCallerId.NUM_ENTRIES); - - // Record which 1P app launched Incognito CCT. -- if (incognitoCctCallerId == IntentHandler.IncognitoCctCallerId.GOOGLE_APPS) { +- if (incognitoCctCallerId +- == BrowserServicesIntentDataProvider.IncognitoCctCallerId.GOOGLE_APPS) { - String sendersPackageName = mIntentDataProvider.getClientPackageName(); - @IntentHandler.ExternalAppId - int externalId = IntentHandler.mapPackageToExternalAppId(sendersPackageName); @@ -398,9 +400,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust - } else { - // Using package name didn't give any meaningful insight on who launched the - // Incognito CCT, falling back to check if they provided EXTRA_APPLICATION_ID. -- externalId = -- IntentHandler.determineExternalIntentSource( -- mIntentDataProvider.getIntent(), mActivity); +- var intent = assertNonNull(mIntentDataProvider.getIntent()); +- externalId = IntentHandler.determineExternalIntentSource(intent, mActivity); - RecordHistogram.recordEnumeratedHistogram( - "CustomTabs.ClientAppId.Incognito", - externalId, @@ -413,7 +414,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -21,6 +21,7 @@ import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -421,7 +422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.DefaultBrowserInfo; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; import org.chromium.chrome.browser.bookmarks.BookmarkModel; -@@ -221,6 +222,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -224,6 +225,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat openInChromeItemVisible = false; tryAddingReadAloud = false; } @@ -434,7 +435,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 -@@ -104,6 +104,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -105,6 +105,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.device.mojom.ScreenOrientationLockType; import org.chromium.net.NetId; @@ -444,7 +445,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; -@@ -1263,6 +1266,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1287,6 +1290,13 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid return getInitialActivityWidth() > 0; } @@ -480,7 +481,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo /** A class containing some utility static methods. */ @NullMarked public class DownloadUtils { -@@ -314,7 +319,13 @@ public class DownloadUtils { +@@ -292,7 +297,13 @@ public class DownloadUtils { public static boolean isAllowedToDownloadPage(@Nullable Tab tab) { if (tab == null) return false; @@ -617,21 +618,21 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/history/History diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -25,6 +25,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor; import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; - import org.chromium.chrome.browser.bookmarks.BookmarkPage; -@@ -379,7 +380,8 @@ public class NativePageFactory { - @Nullable PdfInfo pdfInfo) { + import org.chromium.chrome.browser.back_press.BackPressManager; +@@ -396,7 +397,8 @@ public class NativePageFactory { + NativePage page; -- switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null)) { +- switch (NativePage.nativePageType(gurl, candidatePage, isIncognito, pdfInfo != null)) { + boolean isAlwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito(); -+ switch (NativePage.nativePageType(url, candidatePage, isIncognito, pdfInfo != null, isAlwaysIncognito)) { ++ switch (NativePage.nativePageType(gurl, candidatePage, isIncognito, pdfInfo != null, isAlwaysIncognito)) { case NativePageType.NONE: return null; case NativePageType.CANDIDATE: @@ -664,7 +665,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsM mActiveTab = tab; mTabModelSelector = tabModelSelector; mShowHistoryManager = showHistoryManager; -@@ -301,6 +311,22 @@ public class RecentTabsManager +@@ -302,6 +312,22 @@ public class RecentTabsManager */ public void openRecentlyClosedTab(RecentlyClosedTab tab, int windowDisposition) { if (mIsDestroyed) return; @@ -726,7 +727,7 @@ new file mode 100644 + +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.preferences.Pref; @@ -878,7 +879,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import org.chromium.components.browser_ui.accessibility.AccessibilitySettings; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.settings.FragmentSettingsNavigation; -@@ -231,6 +232,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -229,6 +230,9 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl SigninAndHistorySyncActivityLauncherImpl.get(), new SettingsCustomTabLauncherImpl())); } @@ -1005,7 +1006,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ai.AiAssistantService; import org.chromium.chrome.browser.app.appmenu.AppMenuPropertiesDelegateImpl; -@@ -221,7 +222,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -241,7 +242,8 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // When the feature is enabled, show either "New Incognito tab" in incognito mode // or "New tab" in normal mode. When the feature is disabled, show both. @@ -1027,7 +1028,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab import org.chromium.ui.base.IntentRequestTracker; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.display.DisplayUtil; -@@ -1270,7 +1272,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1281,7 +1283,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { () -> { mTabCreatorManagerSupplier .get() @@ -1039,7 +1040,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -55,6 +55,10 @@ import org.chromium.url.GURL; +@@ -56,6 +56,10 @@ import org.chromium.url.GURL; import java.util.Collections; import java.util.function.Supplier; @@ -1050,7 +1051,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome /** This class creates various kinds of new tabs and adds them to the right {@link TabModel}. */ @NullMarked public class ChromeTabCreator extends TabCreator -@@ -584,7 +588,6 @@ public class ChromeTabCreator extends TabCreator +@@ -587,7 +591,6 @@ public class ChromeTabCreator extends TabCreator // TODO(crbug.com/40691614): Clean up the launches from SearchActivity/Chrome. public @Nullable Tab launchUrlFromExternalApp( LoadUrlParams loadUrlParams, String appId, boolean forceNewTab, Intent intent) { @@ -1090,7 +1091,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.DataInputStream; -@@ -838,6 +840,13 @@ public class TabPersistentStore { +@@ -837,6 +839,13 @@ public class TabPersistentStore { } } } @@ -1107,7 +1108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java -@@ -49,6 +49,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; +@@ -50,6 +50,7 @@ import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.cc.input.BrowserControlsState; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; @@ -1115,7 +1116,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.tabwindow.TabWindowManagerSingleton; import org.chromium.chrome.browser.back_press.BackPressManager; -@@ -866,7 +867,7 @@ public class ToolbarManager +@@ -869,7 +870,7 @@ public class ToolbarManager return ret; } }, @@ -1239,7 +1240,7 @@ diff --git a/chrome/browser/android/historical_tab_saver.cc b/chrome/browser/and diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc -@@ -460,6 +460,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { +@@ -461,6 +461,15 @@ ChromeAutocompleteProviderClient::GetAimEligibilityService() const { return AimEligibilityServiceFactory::GetForProfile(profile_); } @@ -1376,7 +1377,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo #else #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" -@@ -612,6 +615,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { +@@ -614,6 +617,13 @@ void HistoryTabHelper::TitleWasSet(NavigationEntry* entry) { history::HistoryService* HistoryTabHelper::GetHistoryService() { Profile* profile = Profile::FromBrowserContext(web_contents()->GetBrowserContext()); @@ -1390,7 +1391,7 @@ diff --git a/chrome/browser/history/history_tab_helper.cc b/chrome/browser/histo if (profile->IsOffTheRecord()) return nullptr; -@@ -619,6 +629,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { +@@ -621,6 +631,16 @@ history::HistoryService* HistoryTabHelper::GetHistoryService() { profile, ServiceAccessType::IMPLICIT_ACCESS); } @@ -1739,7 +1740,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 -@@ -254,6 +254,7 @@ +@@ -257,6 +257,7 @@ #if BUILDFLAG(IS_ANDROID) #include "chrome/browser/accessibility/accessibility_prefs/android/accessibility_prefs_controller.h" @@ -1747,7 +1748,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse #include "chrome/browser/android/ntp/recent_tabs_page_prefs.h" #include "chrome/browser/android/oom_intervention/oom_intervention_decider.h" #include "chrome/browser/android/preferences/browser_prefs_android.h" -@@ -2145,6 +2146,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, +@@ -2203,6 +2204,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, usage_stats::UsageStatsBridge::RegisterProfilePrefs(registry); variations::VariationsService::RegisterProfilePrefs(registry); webapps::InstallPromptPrefs::RegisterProfilePrefs(registry); @@ -1852,22 +1853,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } /** -@@ -212,11 +215,12 @@ public interface NativePage { - String url, - @Nullable NativePage candidatePage, - boolean isIncognito, -- boolean hasPdfDownload) { -+ boolean hasPdfDownload, -+ boolean isAlwaysIncognito) { - if (url == null) return NativePageType.NONE; - - GURL gurl = new GURL(url); -- return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload); -+ return nativePageType(gurl, candidatePage, isIncognito, hasPdfDownload, isAlwaysIncognito); - } - - /** -@@ -230,7 +234,8 @@ public interface NativePage { +@@ -211,7 +214,8 @@ public interface NativePage { GURL url, @Nullable NativePage candidatePage, boolean isIncognito, @@ -1877,7 +1863,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ if (hasPdfDownload) { // For navigation with associated pdf download (e.g. open a pdf link), pdf page should // be created. -@@ -248,7 +253,7 @@ public interface NativePage { +@@ -229,7 +233,7 @@ public interface NativePage { // created after the pdf document is re-downloaded in other parts of the code. return NativePageType.NONE; } else { @@ -1886,7 +1872,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ } } -@@ -260,7 +265,7 @@ public interface NativePage { +@@ -241,7 +245,7 @@ public interface NativePage { * which do not have chrome or chrome-native scheme. */ private static @NativePageType int chromePageType( @@ -1895,7 +1881,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) -@@ -280,7 +285,8 @@ public interface NativePage { +@@ -261,7 +265,8 @@ public interface NativePage { return NativePageType.DOWNLOADS; } else if (UrlConstants.HISTORY_HOST.equals(host)) { return NativePageType.HISTORY; @@ -1908,7 +1894,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java -@@ -97,6 +97,11 @@ import org.chromium.ui.interpolators.Interpolators; +@@ -99,6 +99,11 @@ import org.chromium.ui.interpolators.Interpolators; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.url.GURL; @@ -1920,7 +1906,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import java.util.ArrayList; import java.util.List; import java.util.function.BooleanSupplier; -@@ -437,6 +442,9 @@ class LocationBarMediator +@@ -448,6 +453,9 @@ class LocationBarMediator if (!DeviceFormFactor.isNonMultiDisplayContextOnTablet(mContext)) return; Tab tab = mLocationBarDataProvider.getTab(); if (tab == null) return; @@ -1933,7 +1919,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 -@@ -6627,6 +6627,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -6669,6 +6669,31 @@ To change this setting, BEGIN_LINKdelete the Chrome d Cookies, cache, and other site data @@ -1968,7 +1954,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java -@@ -168,6 +168,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -167,6 +167,7 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro protected GURL mVisibleGurl = GURL.emptyGURL(); protected String mFormattedFullUrl; protected String mUrlForDisplay; @@ -1976,7 +1962,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow // notifyUrlChanged and notifySecurityStateChanged are usually called 3 times across a same // document navigation. The first call is usually necessary, which updates the UrlBar to reflect -@@ -192,7 +193,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro +@@ -191,7 +192,8 @@ public class LocationBarModel implements ToolbarDataProvider, LocationBarDataPro NewTabPageDelegate newTabPageDelegate, UrlFormatter urlFormatter, OfflineStatus offlineStatus, @@ -2021,7 +2007,7 @@ new file mode 100644 + +package org.chromium.chrome.browser.ui.messages.snackbar; + -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; +import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; + +/** @@ -2056,7 +2042,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h -@@ -4095,6 +4095,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = +@@ -4101,6 +4101,12 @@ inline constexpr char kOutOfProcessSystemDnsResolutionEnabled[] = "net.out_of_process_system_dns_resolution_enabled"; #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_LINUX) @@ -2072,7 +2058,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/content_settings/core/browser/content_settings_pref_provider.cc b/components/content_settings/core/browser/content_settings_pref_provider.cc --- a/components/content_settings/core/browser/content_settings_pref_provider.cc +++ b/components/content_settings/core/browser/content_settings_pref_provider.cc -@@ -114,10 +114,12 @@ void PrefProvider::RegisterProfilePrefs( +@@ -120,10 +120,12 @@ void PrefProvider::RegisterProfilePrefs( PrefProvider::PrefProvider(PrefService* prefs, bool off_the_record, @@ -2085,7 +2071,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov store_last_modified_(store_last_modified), clock_(base::DefaultClock::GetInstance()) { TRACE_EVENT_BEGIN("startup", "PrefProvider::PrefProvider"); -@@ -140,11 +142,13 @@ PrefProvider::PrefProvider(PrefService* prefs, +@@ -146,11 +148,13 @@ PrefProvider::PrefProvider(PrefService* prefs, WebsiteSettingsRegistry* website_settings = WebsiteSettingsRegistry::GetInstance(); for (const WebsiteSettingsInfo* info : *website_settings) { @@ -2111,7 +2097,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov bool store_last_modified, bool restore_session); -@@ -127,6 +128,7 @@ class PrefProvider : public UserModifiableProvider { +@@ -130,6 +131,7 @@ class PrefProvider : public UserModifiableProvider { raw_ptr prefs_; const bool off_the_record_; @@ -2170,10 +2156,10 @@ diff --git a/components/content_settings/core/browser/host_content_settings_map. diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/components/omnibox/browser/autocomplete_provider_client.cc --- a/components/omnibox/browser/autocomplete_provider_client.cc +++ b/components/omnibox/browser/autocomplete_provider_client.cc -@@ -74,3 +74,7 @@ base::WeakPtr - AutocompleteProviderClient::GetWeakPtr() { +@@ -81,3 +81,7 @@ AutocompleteProviderClient::GetGeminiPrototypeOmniboxService() const { return nullptr; } + #endif // BUILDFLAG(IS_IOS) + +bool AutocompleteProviderClient::IsAlwaysIncognitoEnabled() const { + return false; @@ -2181,7 +2167,7 @@ diff --git a/components/omnibox/browser/autocomplete_provider_client.cc b/compon diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h -@@ -154,6 +154,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { +@@ -161,6 +161,7 @@ class AutocompleteProviderClient : public OmniboxAction::Client { virtual bool IsOffTheRecord() const = 0; virtual bool IsIncognitoProfile() const = 0; virtual bool IsGuestSession() const = 0; @@ -2192,7 +2178,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 -@@ -432,7 +432,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( +@@ -401,7 +401,7 @@ bool BaseSearchProvider::CanSendSuggestRequest( // Don't make a suggest request if in incognito mode; unless for the Lens // searchboxes. diff --git a/build/cromite_patches/Add-bookmark-import-export-actions.patch b/build/cromite_patches/Add-bookmark-import-export-actions.patch index e7db3b19a407ca733352e96011d43ea90fb5cc80..c07ea764d9420ec3a9b8eab7cdb83a988321384a 100644 --- a/build/cromite_patches/Add-bookmark-import-export-actions.patch +++ b/build/cromite_patches/Add-bookmark-import-export-actions.patch @@ -14,7 +14,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 1 - .../menu/bookmark_toolbar_menu_improved.xml | 14 + .../browser/TabbedModeTabDelegateFactory.java | 5 +- - .../app/bookmarks/BookmarkActivity.java | 31 ++ + .../app/bookmarks/BookmarkActivity.java | 32 ++ .../native_page/NativePageFactory.java | 9 +- chrome/browser/BUILD.gn | 11 +- .../bookmarks/android/bookmark_bridge.cc | 197 ++++++++++++ @@ -51,7 +51,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 + - 40 files changed, 809 insertions(+), 24 deletions(-) + 40 files changed, 810 insertions(+), 24 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 @@ -94,14 +94,14 @@ diff --git a/chrome/android/java/res/menu/bookmark_toolbar_menu_improved.xml b/c diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDelegateFactory.java -@@ -11,6 +11,7 @@ import org.chromium.base.supplier.ObservableSupplier; +@@ -10,6 +10,7 @@ import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid; + import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider; - import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -60,7 +61,7 @@ import java.util.function.Supplier; */ @NullMarked @@ -112,7 +112,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe private final Supplier mShareDelegateSupplier; private final Supplier mEphemeralTabCoordinatorSupplier; @@ -91,7 +92,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory { - private @Nullable NativePageFactory mNativePageFactory; + private final BackPressManager mBackPressManager; public TabbedModeTabDelegateFactory( - Activity activity, @@ -123,15 +123,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/BookmarkActivity.java -@@ -9,6 +9,7 @@ import static org.chromium.build.NullUtil.assumeNonNull; +@@ -6,6 +6,8 @@ package org.chromium.chrome.browser.app.bookmarks; + + import static org.chromium.build.NullUtil.assumeNonNull; + ++import android.os.Bundle; ++ import android.content.ComponentName; import android.content.Intent; import android.text.TextUtils; -+import android.os.Bundle; - - import org.chromium.base.IntentUtils; - import org.chromium.build.annotations.NullMarked; -@@ -32,6 +33,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; +@@ -35,6 +37,9 @@ import org.chromium.components.embedder_support.util.UrlConstants; import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; @@ -141,9 +142,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B /** * The activity that displays the bookmark UI on the phone. It keeps a {@link * BookmarkManagerCoordinator} inside of it and creates a snackbar manager. This activity should -@@ -46,6 +50,9 @@ public class BookmarkActivity extends SnackbarActivity { - private @Nullable BookmarkManagerCoordinator mBookmarkManagerCoordinator; +@@ -50,6 +55,9 @@ public class BookmarkActivity extends SnackbarActivity { private @Nullable BookmarkOpener mBookmarkOpener; + private @Nullable OnKeyDownHandler mOnKeyDownHandler; + private ActivityWindowAndroid mWindowAndroid; + private IntentRequestTracker mIntentRequestTracker; @@ -151,10 +152,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B @Override protected void onProfileAvailable(Profile profile) { super.onProfileAvailable(profile); -@@ -73,6 +80,14 @@ public class BookmarkActivity extends SnackbarActivity { - mBookmarkManagerCoordinator.updateForUrl(url); - setContentView(mBookmarkManagerCoordinator.getView()); - BackPressHelper.create(this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); +@@ -82,6 +90,14 @@ public class BookmarkActivity extends SnackbarActivity { + mOnKeyDownHandler = + BackPressHelper.create( + this, getOnBackPressedDispatcher(), mBookmarkManagerCoordinator); + + final boolean listenToActivityState = true; + mIntentRequestTracker = IntentRequestTracker.createFromActivity(this); @@ -166,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B } @Override -@@ -91,6 +106,7 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -109,6 +125,7 @@ public class BookmarkActivity extends SnackbarActivity { @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); @@ -174,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B if (requestCode == EDIT_BOOKMARK_REQUEST_CODE && resultCode == RESULT_OK) { assumeNonNull(data); BookmarkId bookmarkId = -@@ -100,6 +116,21 @@ public class BookmarkActivity extends SnackbarActivity { +@@ -118,6 +135,21 @@ public class BookmarkActivity extends SnackbarActivity { } } @@ -199,15 +200,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/bookmarks/B diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageFactory.java -@@ -20,6 +20,7 @@ import org.chromium.base.supplier.OneshotSupplier; +@@ -25,6 +25,7 @@ import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; import org.chromium.chrome.R; +import org.chromium.chrome.browser.app.ChromeActivity; import org.chromium.chrome.browser.app.download.home.DownloadPage; + import org.chromium.chrome.browser.back_press.BackPressManager; import org.chromium.chrome.browser.bookmarks.BookmarkPage; - import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier; -@@ -67,7 +68,7 @@ import java.util.function.Supplier; +@@ -76,7 +77,7 @@ import java.util.function.Supplier; */ @NullMarked public class NativePageFactory { @@ -216,8 +217,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final BrowserControlsManager mBrowserControlsManager; private final Supplier<@Nullable Tab> mCurrentTabSupplier; -@@ -91,7 +92,7 @@ public class NativePageFactory { - private static @Nullable NativePage sTestPage; +@@ -100,7 +101,7 @@ public class NativePageFactory { + private final BackPressManager mBackPressManager; public NativePageFactory( - Activity activity, @@ -225,7 +226,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat BottomSheetController sheetController, BrowserControlsManager browserControlsManager, Supplier<@Nullable Tab> currentTabSupplier, -@@ -166,7 +167,7 @@ public class NativePageFactory { +@@ -175,7 +176,7 @@ public class NativePageFactory { @VisibleForTesting static class NativePageBuilder { @@ -234,20 +235,20 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat private final BottomSheetController mBottomSheetController; private final Supplier mNewTabPageCreationTracker; private final BrowserControlsManager mBrowserControlsManager; -@@ -275,7 +276,7 @@ public class NativePageFactory { - mBrowserControlsManager, +@@ -284,7 +285,7 @@ public class NativePageFactory { mTabModelSelector, mEdgeToEdgeControllerSupplier), -- mActivity.getComponentName()); -+ mActivity.getComponentName(), mActivity); + mActivity.getComponentName(), +- mBackPressManager); ++ mBackPressManager, mActivity); } protected NativePage buildDownloadsPage(Tab tab) { diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn -@@ -241,6 +241,8 @@ static_library("browser") { - "bluetooth/chrome_bluetooth_delegate_impl_client.h", +@@ -205,6 +205,8 @@ static_library("browser") { + "bad_message.h", "bookmarks/bookmark_model_factory.cc", "bookmarks/bookmark_model_factory.h", + "bookmarks/bookmark_html_writer.cc", @@ -255,9 +256,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "bookmarks/chrome_bookmark_client.cc", "bookmarks/chrome_bookmark_client.h", "bookmarks/managed_bookmark_service_factory.cc", -@@ -1688,6 +1690,13 @@ static_library("browser") { - ] - } +@@ -1625,6 +1627,13 @@ static_library("browser") { + "webdata_services/web_data_service_factory.cc", + ] + if (is_android) { + sources += [ @@ -269,7 +270,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn configs += [ "//build/config/compiler:wexit_time_destructors", "//build/config:precompiled_headers", -@@ -3712,8 +3721,6 @@ static_library("browser") { +@@ -3715,8 +3724,6 @@ static_library("browser") { "bookmarks/bookmark_expanded_state_tracker.h", "bookmarks/bookmark_expanded_state_tracker_factory.cc", "bookmarks/bookmark_expanded_state_tracker_factory.h", @@ -690,7 +691,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.modaldialog.ModalDialogManager; import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; import org.chromium.ui.modelutil.MVCListAdapter.ListItem; -@@ -333,6 +335,13 @@ public class BookmarkManagerCoordinator +@@ -344,6 +346,13 @@ public class BookmarkManagerCoordinator // Public API implementation. @@ -716,7 +717,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows import org.chromium.ui.accessibility.AccessibilityState; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.base.DeviceInput; -@@ -83,6 +85,47 @@ import java.util.function.BooleanSupplier; +@@ -84,6 +86,47 @@ import java.util.function.BooleanSupplier; import java.util.function.Consumer; import java.util.function.Predicate; @@ -764,7 +765,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Responsible for BookmarkManager business logic. */ // TODO(crbug.com/40256938): Remove BookmarkDelegate if possible. @NullMarked -@@ -93,6 +136,9 @@ class BookmarkManagerMediator +@@ -94,6 +137,9 @@ class BookmarkManagerMediator private static boolean sPreventLoadingForTesting; @@ -774,7 +775,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** Keeps track of whether drag is enabled / active for bookmark lists. */ private class BookmarkDragStateDelegate implements DragStateDelegate { private BookmarkDelegate mBookmarkDelegate; -@@ -608,6 +654,14 @@ class BookmarkManagerMediator +@@ -655,6 +701,14 @@ class BookmarkManagerMediator mNativePage = nativePage; } @@ -789,7 +790,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** See BookmarkManager(Coordinator)#updateForUrl */ void updateForUrl(String url) { // Bookmark model is null if the manager has been destroyed. -@@ -780,6 +834,235 @@ class BookmarkManagerMediator +@@ -827,6 +881,235 @@ class BookmarkManagerMediator } } @@ -1028,7 +1029,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java --- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java +++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPage.java -@@ -15,6 +15,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; +@@ -16,6 +16,9 @@ import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager; import org.chromium.chrome.browser.ui.native_page.BasicNativePage; import org.chromium.chrome.browser.ui.native_page.NativePageHost; import org.chromium.components.embedder_support.util.UrlConstants; @@ -1038,19 +1039,19 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows /** A native page holding a {@link BookmarkManagerCoordinator} on _tablet_. */ @NullMarked -@@ -35,7 +38,8 @@ public class BookmarkPage extends BasicNativePage { - SnackbarManager snackbarManager, +@@ -37,7 +40,8 @@ public class BookmarkPage extends BasicNativePage { Profile profile, NativePageHost host, -- @Nullable ComponentName componentName) { -+ @Nullable ComponentName componentName, + @Nullable ComponentName componentName, +- BackPressManager backPressManager) { ++ BackPressManager backPressManager, + ChromeActivity activity) { super(host); + mTitle = host.getContext().getString(R.string.bookmarks); +@@ -65,6 +69,9 @@ public class BookmarkPage extends BasicNativePage { + backPressManager); -@@ -56,6 +60,9 @@ public class BookmarkPage extends BasicNativePage { - PriceDropNotificationManagerFactory.create(profile), - host::createEdgeToEdgePadAdjuster); mBookmarkManagerCoordinator.setBasicNativePage(this); + mBookmarkManagerCoordinator.setWindow(activity.getWindowAndroid(), + new ModalDialogManager( @@ -1261,7 +1262,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 -@@ -702,6 +702,7 @@ public abstract class ChromeFeatureList { +@@ -712,6 +712,7 @@ public abstract class ChromeFeatureList { public static final String USE_LIBUNWINDSTACK_NATIVE_UNWINDER_ANDROID = "UseLibunwindstackNativeUnwinderAndroid"; public static final String VISITED_URL_RANKING_SERVICE = "VisitedURLRankingService"; @@ -1324,7 +1325,7 @@ diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/bro /** Whether Chrome is set as the default browser. Default value is false. */ public static final String CHROME_DEFAULT_BROWSER = "applink.chrome_default_browser"; -@@ -1051,6 +1053,7 @@ public final class ChromePreferenceKeys { +@@ -1067,6 +1069,7 @@ public final class ChromePreferenceKeys { AUXILIARY_SEARCH_SCHEMA_VERSION, APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE, APP_LAUNCH_SEARCH_ENGINE_HAD_LOGO, @@ -1335,7 +1336,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 -@@ -249,6 +249,24 @@ CHAR_LIMIT guidelines: +@@ -252,6 +252,24 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/cromite_patches/Add-cromite-flags-support.patch b/build/cromite_patches/Add-cromite-flags-support.patch index bc1b881a0950af25b147e0664644bf29340c8bd4..30619cba6b9b5b3949c1aab643b608e282f6653b 100644 --- a/build/cromite_patches/Add-cromite-flags-support.patch +++ b/build/cromite_patches/Add-cromite-flags-support.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html .../base/cached_flags/ValuesReturned.java | 2 +- base/feature_list.cc | 76 ++++++++ base/feature_list.h | 98 +++++++++- - build/android/gyp/java_cpp_features.py | 17 ++ + build/android/gyp/java_cpp_features.py | 15 ++ chrome/android/java/res/values/values.xml | 3 + .../java/res/xml/privacy_preferences.xml | 4 + .../homepage/settings/HomepageSettings.java | 2 +- @@ -106,7 +106,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html third_party/blink/public/common/features.h | 1 + ui/base/ui_base_features.cc | 1 + ui/base/ui_base_features.h | 1 + - 93 files changed, 850 insertions(+), 32 deletions(-) + 93 files changed, 848 insertions(+), 32 deletions(-) create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/include_all_directory.java create mode 100644 chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/java_template/CromiteCachedFlag.java.tmpl create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-cromite-flags-support.grdp @@ -152,7 +152,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn sources = [ "allocator/allocator_check.cc", "allocator/allocator_check.h", -@@ -1046,7 +1048,7 @@ component("base") { +@@ -1048,7 +1050,7 @@ component("base") { "//build/config/compiler:wglobal_constructors", ] @@ -291,7 +291,7 @@ diff --git a/base/feature_list.cc b/base/feature_list.cc diff --git a/base/feature_list.h b/base/feature_list.h --- a/base/feature_list.h +++ b/base/feature_list.h -@@ -238,8 +238,10 @@ constexpr const char* GetFeatureNameFromIdentifier(std::string_view feature) { +@@ -233,8 +233,10 @@ StringStorage(const char (&feature)[N]) -> StringStorage; struct BASE_EXPORT LOGICALLY_CONST Feature { constexpr Feature(const char* name, FeatureState default_state, @@ -304,7 +304,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h #if BUILDFLAG(ENABLE_BANNED_BASE_FEATURE_PREFIX) if (std::string_view(name).find(BUILDFLAG(BANNED_BASE_FEATURE_PREFIX)) == 0) { -@@ -266,6 +268,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { +@@ -261,6 +263,9 @@ struct BASE_EXPORT LOGICALLY_CONST Feature { // command line switch. const FeatureState default_state; @@ -314,7 +314,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h private: friend class FeatureList; -@@ -546,6 +551,11 @@ class BASE_EXPORT FeatureList { +@@ -541,6 +546,11 @@ class BASE_EXPORT FeatureList { // instance, which is checked in builds with DCHECKs enabled. static bool IsEnabled(const Feature& feature); @@ -326,7 +326,7 @@ diff --git a/base/feature_list.h b/base/feature_list.h // Some characters are not allowed to appear in feature names or the // associated field trial names, as they are used as special characters for // command-line serialization. This function checks that the strings are ASCII -@@ -815,4 +825,88 @@ class BASE_EXPORT FeatureList { +@@ -810,4 +820,88 @@ class BASE_EXPORT FeatureList { } // namespace base @@ -418,34 +418,35 @@ diff --git a/base/feature_list.h b/base/feature_list.h diff --git a/build/android/gyp/java_cpp_features.py b/build/android/gyp/java_cpp_features.py --- a/build/android/gyp/java_cpp_features.py +++ b/build/android/gyp/java_cpp_features.py -@@ -25,10 +25,27 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): - _FEATURE_RE_3_ARGS = re.compile(r'BASE_FEATURE\(k([^,]+),') - # For 2-arg macro: BASE_FEATURE(MyFeature, ...) - _FEATURE_RE_2_ARGS = re.compile(r'BASE_FEATURE\(([^,]+),') -+ -+ FEATURE_RE1 = re.compile(r'CROMITE_FEATURE\(k([^,]+),') -+ FEATURE_RE2 = re.compile(r'CROMITE_FEATURE_KEEP_DISABLED\(k([^,]+),') -+ FEATURE_RE3 = re.compile(r'CROMITE_FEATURE_DISABLED\(k([^,]+),') -+ FEATURE_RE4 = re.compile(r'CROMITE_FEATURE_KEEP_ENABLED\(k([^,]+),') -+ FEATURE_RE5 = re.compile(r'CROMITE_FEATURE_ENABLED\(k([^,]+),') -+ - _VALUE_RE = re.compile(r'\s*("(?:\\"|[^"])*")\s*,') - - def ExtractConstantName(self, line): - match = self._FEATURE_RE_3_ARGS.match(line) +@@ -22,6 +22,11 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): + # ExtractConstantName() -> 'ConstantName' + # ExtractValue() -> '"StringNameOfTheFeature"' or '"ConstantName"' + _FEATURE_RE = re.compile(r'BASE_FEATURE\(\s*(k\w+),') ++ _FEATURE_RE1 = re.compile(r'CROMITE_FEATURE\(\s*(k\w+),') ++ _FEATURE_RE2 = re.compile(r'BASE_FEATURE_DISABLED\(\s*(k\w+),') ++ _FEATURE_RE3 = re.compile(r'CROMITE_FEATURE_DISABLED\(\s*(k\w+),') ++ _FEATURE_RE4 = re.compile(r'BASE_FEATURE_ENABLED\(\s*(k\w+),') ++ _FEATURE_RE5 = re.compile(r'CROMITE_FEATURE_ENABLED\(\s*(k\w+),') + _STRING_LITERAL_RE = re.compile(r'"(?:\\"|[^"])*"') + _constant_name = None # The name of the current macro. + _comma_count = 0 # Number of commas seen in the current macro. +@@ -34,6 +39,16 @@ class FeatureParserDelegate(java_cpp_utils.CppConstantParser.Delegate): + self._constant_name = None + + match = self._FEATURE_RE.match(line) + if match is None: -+ match = FeatureParserDelegate.FEATURE_RE1.match(line) ++ match = self._FEATURE_RE1.match(line) + if match is None: -+ match = FeatureParserDelegate.FEATURE_RE2.match(line) ++ match = self._FEATURE_RE2.match(line) + if match is None: -+ match = FeatureParserDelegate.FEATURE_RE3.match(line) ++ match = self._FEATURE_RE3.match(line) + if match is None: -+ match = FeatureParserDelegate.FEATURE_RE4.match(line) ++ match = self._FEATURE_RE4.match(line) + if match is None: -+ match = FeatureParserDelegate.FEATURE_RE5.match(line) ++ match = self._FEATURE_RE5.match(line) if match: - return match.group(1) - match = self._FEATURE_RE_2_ARGS.match(line) + # The regex ensures that the feature name starts with 'k'. + feature_name = match.group(1) diff --git a/chrome/android/java/res/values/values.xml b/chrome/android/java/res/values/values.xml --- a/chrome/android/java/res/values/values.xml +++ b/chrome/android/java/res/values/values.xml @@ -504,11 +505,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; import org.chromium.base.supplier.OneshotSupplier; import org.chromium.build.annotations.NullMarked; -@@ -72,24 +73,31 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl +@@ -71,24 +72,31 @@ public class FragmentDependencyProvider extends FragmentManager.FragmentLifecycl private final OneshotSupplier mSnackbarManagerSupplier; private final OneshotSupplier mBottomSheetControllerSupplier; private final ObservableSupplier<@Nullable ModalDialogManager> mModalDialogManagerSupplier; @@ -552,17 +553,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; -@@ -32,7 +33,9 @@ import org.chromium.base.CallbackUtils; +@@ -39,7 +40,9 @@ import org.chromium.base.CallbackUtils; import org.chromium.base.DeviceInfo; import org.chromium.base.Log; import org.chromium.base.metrics.RecordHistogram; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.OneshotSupplier; import org.chromium.base.supplier.OneshotSupplierImpl; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -@@ -42,12 +45,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; +@@ -49,12 +52,14 @@ import org.chromium.chrome.browser.back_press.BackPressHelper; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.init.ChromeBrowserInitializer; @@ -577,8 +578,8 @@ 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; -@@ -92,6 +97,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity - implements PreferenceFragmentCompat.OnPreferenceStartFragmentCallback, SnackbarManageable { +@@ -107,6 +112,40 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + PreferenceUpdateObserver { private static final String TAG = "SettingsActivity"; + private static class RequestRestartDelegate implements ChromeBaseSettingsFragment.RequireRestartDelegate { @@ -618,7 +619,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"; -@@ -158,7 +197,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -184,7 +223,8 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity mProfile, mSnackbarManagerSupplier, mBottomSheetControllerSupplier, @@ -653,7 +654,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tracing/setting diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -384,6 +384,10 @@ using flags_ui::kOsLinux; +@@ -387,6 +387,10 @@ using flags_ui::kOsLinux; using flags_ui::kOsMac; using flags_ui::kOsWin; @@ -664,9 +665,9 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { -@@ -4895,6 +4899,10 @@ const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { - #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_WIN) || \ - // BUILDFLAG(IS_CHROMEOS) +@@ -4966,6 +4970,10 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { + std::size(kSeamlessSigninPromoTypeTwoButtons), nullptr}}; + #endif // BUILDFLAG(IS_ANDROID) +#define FEATURE_PARAM_SECTION +#include "cromite_flags/chrome_browser_about_flags_cc.inc" @@ -675,7 +676,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. -@@ -4921,6 +4929,9 @@ const FeatureEntry::FeatureVariation kNtpEnterpriseShortcutsVariations[] = { +@@ -4992,6 +5000,9 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. @@ -688,16 +689,16 @@ 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 -@@ -368,4 +368,5 @@ BASE_FEATURE(kRemovalOfIWAsFromTabCapture, - "RemovalOfIWAsFromTabCapture", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -313,4 +313,5 @@ BASE_FEATURE(kReportPakFileIntegrity, + // show both in Chrome Tabs and Windows. + BASE_FEATURE(kRemovalOfIWAsFromTabCapture, base::FEATURE_ENABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_browser_features_cc.inc" } // namespace features 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 -@@ -125,6 +125,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); +@@ -126,6 +126,7 @@ BASE_DECLARE_FEATURE(kRemovalOfIWAsFromTabCapture); // module, e.g. // //chrome/browser//features.h // @@ -708,7 +709,7 @@ diff --git a/chrome/browser/browser_features.h b/chrome/browser/browser_features diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -12,9 +12,14 @@ android_library("java") { +@@ -13,9 +13,14 @@ android_library("java") { "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] @@ -723,7 +724,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "//base/version_info/android:version_constants_java", "//build:android_buildflags", "//build:chromeos_buildflags", -@@ -25,12 +30,20 @@ android_library("java") { +@@ -27,12 +32,20 @@ android_library("java") { "//third_party/jni_zero:jni_zero_java", ] srcjar_deps = [ @@ -747,9 +748,9 @@ 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 -@@ -1558,5 +1558,6 @@ BASE_FEATURE(kWebOtpCrossDeviceSimpleString, - "WebOtpCrossDeviceSimpleString", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -1159,5 +1159,6 @@ BASE_FEATURE(kUseLibunwindstackNativeUnwinderAndroid, + // a descriptive text. + BASE_FEATURE(kWebOtpCrossDeviceSimpleString, base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_flags_android_chrome_feature_list_cc.inc" } // namespace android @@ -757,7 +758,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 -@@ -346,6 +346,7 @@ constexpr base::FeatureParam kTouchToSearchCalloutSnippetAsSubtitle( +@@ -354,6 +354,7 @@ constexpr base::FeatureParam kTouchToSearchCalloutSnippetAsSubtitle( "snippet_as_subtitle", /*default_value=*/false); @@ -863,17 +864,17 @@ new file mode 100644 diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java --- a/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java +++ b/chrome/browser/settings/android/java/src/org/chromium/chrome/browser/settings/ChromeBaseSettingsFragment.java -@@ -16,6 +16,7 @@ import androidx.recyclerview.widget.RecyclerView; +@@ -9,6 +9,7 @@ import androidx.preference.PreferenceFragmentCompat; import org.chromium.build.annotations.Initializer; import org.chromium.build.annotations.NullMarked; import org.chromium.build.annotations.Nullable; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncher; import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherFactory; import org.chromium.chrome.browser.flags.ChromeFeatureList; -@@ -28,6 +29,12 @@ import org.chromium.components.browser_ui.settings.SettingsStylingController; - - import java.util.Objects; +@@ -18,6 +19,12 @@ import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; + import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver; + import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher; +import android.os.Bundle; +import androidx.preference.Preference; @@ -884,9 +885,9 @@ diff --git a/chrome/browser/settings/android/java/src/org/chromium/chrome/browse /** * Base class for settings in Chrome. * -@@ -89,6 +96,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa - }); - } +@@ -35,6 +42,49 @@ public abstract class ChromeBaseSettingsFragment extends PreferenceFragmentCompa + private SettingsCustomTabLauncher mCustomTabLauncher; + private @Nullable PreferenceUpdateObserver mPreferenceUpdateObserver; + private Supplier mRequireRestartDelegateSupplier; + @@ -968,9 +969,9 @@ new file mode 100644 diff --git a/chrome/browser/ui/ui_features.cc b/chrome/browser/ui/ui_features.cc --- a/chrome/browser/ui/ui_features.cc +++ b/chrome/browser/ui/ui_features.cc -@@ -748,4 +748,5 @@ bool IsNewTabAddsToActiveGroupEnabled() { - } - #endif // !BUILDFLAG(IS_ANDROID) +@@ -664,4 +664,5 @@ bool IsAndroidAnimatedProgressBarInBrowserEnabled() { + + BASE_FEATURE(kWhatsNewDesktopRefresh, base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/chrome_browser_ui_ui_features_cc.inc" } // namespace features @@ -1009,9 +1010,9 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc -@@ -1623,5 +1623,5 @@ BASE_FEATURE(DisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); +@@ -1696,5 +1696,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); // happen silently without prompting an updating dialog. - BASE_FEATURE(SilentPolicyAndDefaultAppUpdating, + BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, base::FEATURE_DISABLED_BY_DEFAULT); - +#include "cromite_flags/chrome_common_chrome_features_cc.inc" @@ -1019,14 +1020,14 @@ diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc diff --git a/components/browser_ui/accessibility/android/BUILD.gn b/components/browser_ui/accessibility/android/BUILD.gn --- a/components/browser_ui/accessibility/android/BUILD.gn +++ b/components/browser_ui/accessibility/android/BUILD.gn -@@ -55,6 +55,7 @@ android_library("lib_java") { +@@ -61,6 +61,7 @@ android_library("lib_java") { ":page_zoom_utils_java", "//base:base_java", "//build/android:build_java", + "//chrome/browser/settings:java", "//components/browser_ui/settings/android:java", "//components/browser_ui/site_settings/android:java", - "//components/cached_flags:java", + "//components/browser_ui/styles/android:java", diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml --- a/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml +++ b/components/browser_ui/accessibility/android/java/res/xml/accessibility_preferences.xml @@ -1037,9 +1038,9 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil - + - - diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java --- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java +++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java @@ -1064,7 +1065,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c + public void onCreatePreferencesCromite(@Nullable Bundle savedInstanceState, @Nullable String rootKey) { SettingsUtils.addPreferencesFromResource(this, R.xml.accessibility_preferences); - mPageZoomDefaultZoomPref = findPreference(PREF_PAGE_ZOOM_DEFAULT_ZOOM); + // TODO(crbug.com/439911511): Add PageZoomPreference directly to the xml file instead. diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/components/browser_ui/settings/android/java/res/values/attrs.xml --- a/components/browser_ui/settings/android/java/res/values/attrs.xml +++ b/components/browser_ui/settings/android/java/res/values/attrs.xml @@ -1082,7 +1083,7 @@ diff --git a/components/browser_ui/settings/android/java/res/values/attrs.xml b/ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java --- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java +++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/ChromeSwitchPreference.java -@@ -13,6 +13,8 @@ import android.view.accessibility.AccessibilityEvent; +@@ -15,6 +15,8 @@ import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.TextView; @@ -1091,7 +1092,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium import androidx.annotation.ColorInt; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceViewHolder; -@@ -38,6 +40,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { +@@ -43,6 +45,11 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat /** Indicates if the preference uses a custom layout. */ private final boolean mHasCustomLayout; @@ -1103,7 +1104,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium // TOOD(crbug.com/1451550): This is an interim solution. In the long-term, we should migrate // away from a switch with dynamically changing summaries onto a radio group. /** -@@ -57,6 +64,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat { +@@ -67,6 +74,18 @@ public class ChromeSwitchPreference extends SwitchPreferenceCompat mHasCustomLayout = ManagedPreferencesUtils.isCustomLayoutApplied(context, attrs); mUseSummaryAsTitle = true; @@ -1161,9 +1162,9 @@ 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 -@@ -176,5 +176,6 @@ BASE_FEATURE(kForceAllowStorageAccess, - "ForceAllowStorageAccess", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -160,5 +160,6 @@ BASE_FEATURE(kContentSettingsPartitioning, base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kForceAllowStorageAccess, base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/components_content_settings_core_common_features_cc.inc" } // namespace features @@ -1177,7 +1178,7 @@ new file mode 100644 diff --git a/components/offline_pages/core/offline_page_feature.cc b/components/offline_pages/core/offline_page_feature.cc --- a/components/offline_pages/core/offline_page_feature.cc +++ b/components/offline_pages/core/offline_page_feature.cc -@@ -48,4 +48,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() { +@@ -47,4 +47,5 @@ bool IsOfflinePagesNetworkStateLikelyUnknown() { return base::FeatureList::IsEnabled(kOfflinePagesNetworkStateLikelyUnknown); } @@ -1197,7 +1198,7 @@ diff --git a/components/offline_pages/core/offline_page_feature.h b/components/o diff --git a/components/password_manager/core/browser/features/password_features.cc b/components/password_manager/core/browser/features/password_features.cc --- a/components/password_manager/core/browser/features/password_features.cc +++ b/components/password_manager/core/browser/features/password_features.cc -@@ -225,4 +225,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, +@@ -183,4 +183,5 @@ BASE_FEATURE(kRetrieveTrustedVaultKeyKeyboardAccessoryAction, base::FEATURE_DISABLED_BY_DEFAULT); #endif // BUILDFLAG(IS_ANDROID) @@ -1206,8 +1207,8 @@ diff --git a/components/password_manager/core/browser/features/password_features diff --git a/components/permissions/features.cc b/components/permissions/features.cc --- a/components/permissions/features.cc +++ b/components/permissions/features.cc -@@ -137,6 +137,8 @@ BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, - "OsAdditionalSecurityPermissionKillSwitch", +@@ -107,6 +107,8 @@ BASE_FEATURE(kSafetyHubUnusedPermissionRevocationForAllSurfaces, + BASE_FEATURE(kOsAdditionalSecurityPermissionKillSwitch, base::FEATURE_DISABLED_BY_DEFAULT); #endif + @@ -1639,7 +1640,7 @@ diff --git a/components/webui/version/version_handler_helper.cc b/components/web diff --git a/content/common/features.cc b/content/common/features.cc --- a/content/common/features.cc +++ b/content/common/features.cc -@@ -761,4 +761,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { +@@ -675,4 +675,5 @@ bool IsEnforceSameDocumentOriginInvariantsEnabled() { blink::features::kTreatMhtmlInitialDocumentLoadsAsCrossDocument); } @@ -1648,7 +1649,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 -@@ -1403,4 +1403,5 @@ bool IsPushSubscriptionChangeEventEnabled() { +@@ -1411,4 +1411,5 @@ bool IsPushSubscriptionChangeEventEnabled() { features::kPushSubscriptionChangeEventOnResubscribe); } @@ -1657,7 +1658,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 -@@ -404,6 +404,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); +@@ -409,6 +409,7 @@ CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForOutOfProcess(); CONTENT_EXPORT bool IsVideoCaptureServiceEnabledForBrowserProcess(); CONTENT_EXPORT bool IsPushSubscriptionChangeEventEnabled(); @@ -2003,7 +2004,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 -@@ -1727,5 +1727,5 @@ uint32_t GetPassthroughAudioFormats() { +@@ -1730,5 +1730,5 @@ uint32_t GetPassthroughAudioFormats() { return 0; #endif // BUILDFLAG(ENABLE_PASSTHROUGH_AUDIO_CODECS) } @@ -2013,7 +2014,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 -@@ -603,5 +603,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); +@@ -609,5 +609,5 @@ MEDIA_EXPORT bool IsOutOfProcessVideoDecodingEnabled(); MEDIA_EXPORT uint32_t GetPassthroughAudioFormats(); } // namespace media @@ -2023,18 +2024,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc -@@ -804,4 +804,5 @@ BASE_FEATURE_PARAM(std::string, - /*name=*/"wildcard_quic_hints", - /*default_value=*/""); +@@ -839,4 +839,5 @@ BASE_FEATURE_PARAM(size_t, + "cache_size", + 64); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h -@@ -912,6 +912,7 @@ NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, kQuicHintHostPortPairs); - NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, - kWildcardQuicHintHostPortPairs); +@@ -935,6 +935,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDnsFilteringDetails); + NET_EXPORT BASE_DECLARE_FEATURE(kUpdateIsMainFrameOriginRecentlyAccessed); + NET_EXPORT BASE_DECLARE_FEATURE_PARAM(size_t, kRecentlyAccessedOriginCacheSize); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features @@ -2043,16 +2044,16 @@ 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 -@@ -674,4 +674,5 @@ BASE_FEATURE_PARAM(bool, +@@ -587,4 +587,5 @@ BASE_FEATURE_PARAM(bool, "url_loader", - false); + true); +#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 -@@ -367,6 +367,7 @@ BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerResourceScheduler); +@@ -361,6 +361,7 @@ BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerResourceScheduler); COMPONENT_EXPORT(NETWORK_CPP_FLAGS_AND_SWITCHES) BASE_DECLARE_FEATURE_PARAM(bool, kNetworkServiceTaskSchedulerURLLoader); @@ -2063,7 +2064,7 @@ diff --git a/services/network/public/cpp/features.h b/services/network/public/cp diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/features.cc --- a/third_party/blink/common/features.cc +++ b/third_party/blink/common/features.cc -@@ -2569,4 +2569,5 @@ bool IsXrDevice() { +@@ -2633,4 +2633,5 @@ bool IsXrDevice() { // // DO NOT ADD NEW FEATURES HERE. @@ -2072,7 +2073,7 @@ diff --git a/third_party/blink/common/features.cc b/third_party/blink/common/fea diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h --- a/third_party/blink/public/common/features.h +++ b/third_party/blink/public/common/features.h -@@ -1908,6 +1908,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); +@@ -1917,6 +1917,7 @@ BLINK_COMMON_EXPORT bool IsXrDevice(); // // DO NOT ADD NEW FEATURES HERE. @@ -2083,18 +2084,18 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ diff --git a/ui/base/ui_base_features.cc b/ui/base/ui_base_features.cc --- a/ui/base/ui_base_features.cc +++ b/ui/base/ui_base_features.cc -@@ -492,4 +492,5 @@ BASE_FEATURE(kUseSystemDefaultAccentColors, - "UseSystemDefaultAccentColors", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -434,4 +434,5 @@ BASE_FEATURE(kUseSystemDefaultAccentColors, base::FEATURE_ENABLED_BY_DEFAULT); + + BASE_FEATURE(kStringWidthCache, base::FEATURE_DISABLED_BY_DEFAULT); +#include "cromite_flags/ui_base_features_cc.inc" } // namespace features diff --git a/ui/base/ui_base_features.h b/ui/base/ui_base_features.h --- a/ui/base/ui_base_features.h +++ b/ui/base/ui_base_features.h -@@ -248,6 +248,7 @@ bool IsHandleIMESpanChangesOnUpdateCompositionEnabled(); +@@ -267,6 +267,7 @@ BASE_DECLARE_FEATURE(kUseSystemDefaultAccentColors); COMPONENT_EXPORT(UI_BASE_FEATURES) - BASE_DECLARE_FEATURE(kUseSystemDefaultAccentColors); + BASE_DECLARE_FEATURE(kStringWidthCache); +#include "cromite_flags/ui_base_features_h.inc" } // namespace features diff --git a/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch b/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch index a898ec2b635430dfba8e8c29c795c3ceb1962a98..c5ecd490feb010b2256316b5820a078756689869 100644 --- a/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch +++ b/build/cromite_patches/Add-custom-tab-intents-privacy-option.patch @@ -18,14 +18,14 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../customtabs/CustomTabsConnection.java | 3 +- .../IncognitoCustomTabIntentDataProvider.java | 14 +++++ .../privacy/settings/PrivacySettings.java | 51 +++++++++++++++++++ - .../flags/android/chrome_feature_list.cc | 2 +- + .../flags/android/chrome_feature_list.cc | 5 +- .../browser/flags/ChromeFeatureList.java | 3 ++ .../chrome/browser/tab/TabAssociatedApp.java | 6 ++- ...Add-custom-tab-intents-privacy-option.grdp | 25 +++++++++ .../OriginVerifier.java | 5 ++ .../core/common/language_experiments.cc | 1 + .../add-custom-tab-intents-privacy-option.inc | 1 + - 13 files changed, 156 insertions(+), 13 deletions(-) + 13 files changed, 158 insertions(+), 14 deletions(-) create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Add-custom-tab-intents-privacy-option.grdp create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/add-custom-tab-intents-privacy-option.inc @@ -109,7 +109,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabIntentDataProvider.java -@@ -236,16 +236,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -238,16 +238,16 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid // Extra whose value is an array of ints that is supplied to // SyntheticTrialRegistry::RegisterExternalExperiments(). @@ -132,7 +132,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust /** * Extra that, if set, makes the Custom Tab Activity's height to be x pixels, the Custom Tab -@@ -685,7 +685,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -689,7 +689,7 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid TrustedWebActivityIntentBuilder.EXTRA_SCREEN_ORIENTATION, ScreenOrientation.DEFAULT)); @@ -141,7 +141,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust mBreakPointDp = getActivityBreakPointFromIntent(intent); mInitialActivityHeight = getInitialActivityHeightFromIntent(intent); -@@ -698,8 +698,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -702,8 +702,8 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid intent, EXTRA_ACTIVITY_HEIGHT_RESIZE_BEHAVIOR, ACTIVITY_HEIGHT_DEFAULT); mIsPartialCustomTabFixedHeight = activityHeightResizeBehavior == ACTIVITY_HEIGHT_FIXED; @@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust @BackgroundInteractBehavior int backgroundInteractBehavior = IntentUtils.safeGetIntExtra( -@@ -1270,7 +1270,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid +@@ -1294,7 +1294,9 @@ public class CustomTabIntentDataProvider extends BrowserServicesIntentDataProvid public @CustomTabProfileType int getCustomTabMode() { return AlwaysIncognitoLinkInterceptor.isAlwaysIncognito() ? CustomTabProfileType.INCOGNITO @@ -166,7 +166,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabsConnection.java -@@ -776,7 +776,7 @@ public class CustomTabsConnection { +@@ -782,7 +782,7 @@ public class CustomTabsConnection { ThreadUtils.assertOnUiThread(); if (extras == null) return; int[] experimentIds = @@ -175,7 +175,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust if (experimentIds == null) return; // When ids are set through cct, they should not override existing ids. boolean override = false; -@@ -992,6 +992,7 @@ public class CustomTabsConnection { +@@ -999,6 +999,7 @@ public class CustomTabsConnection { PostTask.postTask( TaskTraits.UI_DEFAULT, () -> { @@ -186,7 +186,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 -@@ -40,6 +40,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; +@@ -43,6 +43,9 @@ import org.chromium.components.browser_ui.widget.TintedDrawable; import java.util.ArrayList; import java.util.List; @@ -196,7 +196,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco /** * A model class that parses the incoming intent for incognito Custom Tabs specific customization * data. -@@ -121,6 +124,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -125,6 +128,9 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } private static boolean isIntentFromThirdPartyAllowed() { @@ -206,7 +206,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco return ChromeFeatureList.sCctIncognitoAvailableToThirdParty.isEnabled(); } -@@ -221,6 +227,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -222,6 +228,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD } public static boolean isValidIncognitoIntent(Intent intent, boolean recordMetrics) { @@ -217,7 +217,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco if (!isIncognitoRequested(intent)) return false; var session = SessionHolder.getSessionHolderFromIntent(intent); if (isIntentFromThirdPartyAllowed() -@@ -330,6 +340,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD +@@ -332,6 +342,10 @@ public class IncognitoCustomTabIntentDataProvider extends BrowserServicesIntentD @Override public @CustomTabProfileType int getCustomTabMode() { @@ -327,14 +327,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc --- a/chrome/browser/flags/android/chrome_feature_list.cc +++ b/chrome/browser/flags/android/chrome_feature_list.cc -@@ -1153,7 +1153,7 @@ BASE_FEATURE(kMagicStackAndroid, +@@ -909,8 +909,9 @@ BASE_FEATURE(kMagicStackAndroid, base::FEATURE_ENABLED_BY_DEFAULT); // Enables an experimental feature which forces mayLaunchUrl to use a different // storage partition. This may reduce performance. This should not be enabled by // default. -BASE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, +- base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kMayLaunchUrlUsesSeparateStoragePartition, - "MayLaunchUrlUsesSeparateStoragePartition", - base::FEATURE_DISABLED_BY_DEFAULT); ++ "MayLaunchUrlUsesSeparateStoragePartition", ++ base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kMediaIndicatorsAndroid, base::FEATURE_DISABLED_BY_DEFAULT); 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 @@ -348,7 +351,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f public static final CachedFlag sMostVisitedTilesReselect = newCachedFlag(MOST_VISITED_TILES_RESELECT, false); public static final CachedFlag sMultiInstanceApplicationStatusCleanup = -@@ -1226,6 +1228,7 @@ public abstract class ChromeFeatureList { +@@ -1224,6 +1226,7 @@ public abstract class ChromeFeatureList { sMiniOriginBar, sMitigateLegacySearchEnginePromoOverlap, sMostVisitedTilesCustomization, @@ -420,9 +423,9 @@ diff --git a/components/content_relationship_verification/android/java/src/org/c diff --git a/components/language/core/common/language_experiments.cc b/components/language/core/common/language_experiments.cc --- a/components/language/core/common/language_experiments.cc +++ b/components/language/core/common/language_experiments.cc -@@ -26,4 +26,5 @@ BASE_FEATURE(kDisableGeoLanguageModel, - "DisableGeoLanguageModel", - base::FEATURE_ENABLED_BY_DEFAULT); +@@ -20,4 +20,5 @@ BASE_FEATURE(kTranslateOpenSettings, base::FEATURE_DISABLED_BY_DEFAULT); + + BASE_FEATURE(kDisableGeoLanguageModel, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kCctAutoTranslate); } // namespace language diff --git a/build/cromite_patches/Add-exit-menu-item.patch b/build/cromite_patches/Add-exit-menu-item.patch index 4e1fc75c6c932df0798ceaff219d2b344ca3e642..543cf846b672d6c11255709fc2657f8cb8251ae5 100644 --- a/build/cromite_patches/Add-exit-menu-item.patch +++ b/build/cromite_patches/Add-exit-menu-item.patch @@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -121,6 +121,7 @@ found in the LICENSE file. +@@ -123,6 +123,7 @@ found in the LICENSE file. @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -352,6 +352,8 @@ import java.util.Set; +@@ -358,6 +358,8 @@ import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Supplier; @@ -37,7 +37,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. -@@ -3820,6 +3822,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3882,6 +3884,8 @@ public class ChromeTabbedActivity extends ChromeActivity { .closeTabs( TabClosureParams.closeTab(currentTab).build(), /* allowDialog= */ true); RecordUserAction.record("MobileTabClosed"); @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -61,6 +61,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; +@@ -63,6 +63,7 @@ import org.chromium.base.supplier.UnownedUserDataSupplier; import org.chromium.chrome.R; import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityUtils; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv import org.chromium.chrome.browser.ChromeActivitySessionTracker; import org.chromium.chrome.browser.ChromeApplicationImpl; import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate; -@@ -2481,6 +2482,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2529,6 +2530,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return true; } @@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -390,6 +390,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -410,6 +410,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm maybeAddDividerLine(modelList, R.id.menu_item_content_filter_divider_line_id); modelList.add(buildContentFilterHelpCenterMenuItem(currentTab)); } @@ -108,7 +108,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4311,6 +4311,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4317,6 +4317,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Dark theme diff --git a/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch b/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch index 5fa03a3d1c559159cb59d828b8c593a5ab3eeccc..9e5e78119706e452136f35a672cb00180ff1f448 100644 --- a/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch +++ b/build/cromite_patches/Add-flag-for-omnibox-autocomplete-filtering.patch @@ -26,7 +26,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "base/feature_list.h" #include "base/format_macros.h" #include "base/functional/bind.h" -@@ -569,6 +570,15 @@ AutocompleteController::AutocompleteController( +@@ -571,6 +572,15 @@ AutocompleteController::AutocompleteController( provider_client_->GetOmniboxTriggeredFeatureService()), steady_state_omnibox_position_( metrics::OmniboxEventProto::UNKNOWN_POSITION) { diff --git a/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch b/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch index 666c6f44eadddcc4de0b550498aacea337405b46..a38a63698e8c38c57ebaae2d4253aceb437cf0fa 100644 --- a/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch +++ b/build/cromite_patches/Add-flag-to-configure-maximum-connections-per-host.patch @@ -103,7 +103,7 @@ diff --git a/net/socket/client_socket_pool_manager.cc b/net/socket/client_socket #include "net/ssl/ssl_config.h" #include "url/gurl.h" #include "url/scheme_host_port.h" -@@ -186,6 +190,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( +@@ -187,6 +191,19 @@ void ClientSocketPoolManager::set_max_sockets_per_pool( int ClientSocketPoolManager::max_sockets_per_group( HttpNetworkSession::SocketPoolType pool_type) { DCHECK_LT(pool_type, HttpNetworkSession::NUM_SOCKET_POOL_TYPES); diff --git a/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch b/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch index 1c3be714b8e2249a88f0d15c3d171857c4dfcdf3..0011adb8a84546eae98b75c2013e14c0d62a3c75 100644 --- a/build/cromite_patches/Add-flag-to-disable-IPv6-probes.patch +++ b/build/cromite_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 -@@ -1167,6 +1167,7 @@ component("net") { +@@ -1172,6 +1172,7 @@ component("net") { ":net_deps", "//components/miracle_parameter/common", "//components/network_time/time_tracker", @@ -64,7 +64,7 @@ diff --git a/net/dns/host_resolver_manager.cc b/net/dns/host_resolver_manager.cc #include "net/log/net_log_with_source.h" #include "net/socket/client_socket_factory.h" #include "net/url_request/url_request_context.h" -@@ -1496,6 +1497,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( +@@ -1493,6 +1494,13 @@ int HostResolverManager::StartIPv6ReachabilityCheck( return OK; } diff --git a/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch b/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch index 10ff8e43bad41102e70d86c15189ba2dc8783940..4bc8327e1004d2cb54440bfc07e6462af93f3ea9 100644 --- a/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch +++ b/build/cromite_patches/Add-flag-to-disable-external-intent-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java -@@ -35,6 +35,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; +@@ -38,6 +38,7 @@ import org.chromium.chrome.browser.ephemeraltab.EphemeralTabCoordinator; import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl; import org.chromium.chrome.browser.flags.ActivityType; import org.chromium.chrome.browser.flags.ChromeFeatureList; @@ -57,7 +57,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust import org.chromium.chrome.browser.fullscreen.BrowserControlsManager; import org.chromium.chrome.browser.fullscreen.FullscreenManager; import org.chromium.chrome.browser.init.ChromeActivityNativeDelegate; -@@ -152,6 +153,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { +@@ -156,6 +157,7 @@ public class CustomTabDelegateFactory implements TabDelegateFactory { @Override public boolean shouldDisableAllExternalIntents() { @@ -149,9 +149,9 @@ diff --git a/components/external_intents/android/external_intents_features.cc b/ } // namespace // Alphabetical: -@@ -62,7 +61,13 @@ BASE_FEATURE(kAuxiliaryNavigationStaysInPWA, - "AuxiliaryNavigationStaysInPWA", - base::FEATURE_DISABLED_BY_DEFAULT); +@@ -52,7 +51,13 @@ BASE_FEATURE(kReparentAuxiliaryNavigationFromPWA, + + BASE_FEATURE(kAuxiliaryNavigationStaysInPWA, base::FEATURE_DISABLED_BY_DEFAULT); +CROMITE_FEATURE(kIntentBlockExternalFormRedirectsNoGesture, + "IntentBlockExternalFormRedirectsNoGesture", @@ -193,8 +193,8 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java --- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java +++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java -@@ -1556,6 +1556,12 @@ public class ExternalNavigationHandler { - || ignoreBackForwardNav(params); +@@ -1623,6 +1623,12 @@ public class ExternalNavigationHandler { + return false; } + /** Wrapper of check against the feature to support overriding for testing. */ @@ -206,7 +206,7 @@ diff --git a/components/external_intents/android/java/src/org/chromium/component private OverrideUrlLoadingResult shouldOverrideUrlLoadingInternal( ExternalNavigationParams params, Intent targetIntent, -@@ -1624,6 +1630,21 @@ public class ExternalNavigationHandler { +@@ -1716,6 +1722,21 @@ public class ExternalNavigationHandler { return OverrideUrlLoadingResult.forNoOverride(); } diff --git a/build/cromite_patches/Add-flag-to-disable-vibration.patch b/build/cromite_patches/Add-flag-to-disable-vibration.patch index 4148cafc1b1cfdd4faab4f50ba2638b6dc27c58c..2bffa7067dfe85455fcc34330653ac4d05c6d159 100644 --- a/build/cromite_patches/Add-flag-to-disable-vibration.patch +++ b/build/cromite_patches/Add-flag-to-disable-vibration.patch @@ -104,7 +104,7 @@ diff --git a/third_party/blink/renderer/platform/exported/web_runtime_features.c diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -1045,6 +1045,10 @@ +@@ -1070,6 +1070,10 @@ { name: "CompositingDecisionAtAnimationPhaseBoundaries" }, diff --git a/build/cromite_patches/Add-lifetime-options-for-permissions.patch b/build/cromite_patches/Add-lifetime-options-for-permissions.patch index 9d45a22f88593787245ed76413ea494dd2fbb2df..525be5673f7b4e109b714a55dbdf7b9cd463d5f4 100644 --- a/build/cromite_patches/Add-lifetime-options-for-permissions.patch +++ b/build/cromite_patches/Add-lifetime-options-for-permissions.patch @@ -142,8 +142,8 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker.cc b/chrome/br diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome/browser/permissions/one_time_permissions_tracker.cc --- a/chrome/browser/permissions/one_time_permissions_tracker.cc +++ b/chrome/browser/permissions/one_time_permissions_tracker.cc -@@ -19,8 +19,34 @@ - #include "components/permissions/features.h" +@@ -20,8 +20,34 @@ + #include "components/permissions/permission_util.h" #include "content/public/browser/visibility.h" #include "url/gurl.h" +#include "components/content_settings/core/browser/host_content_settings_map.h" @@ -178,7 +178,7 @@ diff --git a/chrome/browser/permissions/one_time_permissions_tracker.cc b/chrome OneTimePermissionsTracker::~OneTimePermissionsTracker() = default; OneTimePermissionsTracker::OriginTrackEntry::OriginTrackEntry() = default; -@@ -254,6 +280,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( +@@ -255,6 +281,12 @@ void OneTimePermissionsTracker::NotifyLastPageFromOriginClosed( for (auto& observer : observer_list_) { observer.OnLastPageFromOriginClosed(origin); } @@ -269,7 +269,7 @@ diff --git a/chrome/browser/ui/views/permissions/permission_prompt_bubble_base_v diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/SingleWebsiteSettings.java -@@ -634,6 +634,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -689,6 +689,11 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment } @RequiresNonNull({"mSite"}) @@ -281,7 +281,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c private void setUpClearDataPreference() { ClearWebsiteStorage preference = findPreference(PREF_CLEAR_DATA); long usage = mSite.getTotalUsage(); -@@ -1240,6 +1245,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1295,6 +1300,10 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment .getDefaultColor()); } } @@ -295,7 +295,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc --- a/components/browser_ui/site_settings/android/website_preference_bridge.cc +++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc -@@ -223,7 +223,7 @@ void GetOrigins(JNIEnv* env, +@@ -224,7 +224,7 @@ void GetOrigins(JNIEnv* env, seen_origins.push_back(origin); insertionFunc(env, static_cast(content_type), list, ConvertOriginToJavaString(env, origin), jembedder, @@ -307,7 +307,7 @@ diff --git a/components/browser_ui/site_settings/android/website_preference_brid diff --git a/components/browser_ui/strings/android/browser_ui_strings.grd b/components/browser_ui/strings/android/browser_ui_strings.grd --- a/components/browser_ui/strings/android/browser_ui_strings.grd +++ b/components/browser_ui/strings/android/browser_ui_strings.grd -@@ -646,6 +646,11 @@ +@@ -649,6 +649,11 @@ URL truncated @@ -365,7 +365,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc bool CanTrackLastVisit(ContentSettingsType type) { DCHECK(WebsiteSettingsRegistry::GetInstance()->Get(type)) << type; -@@ -273,10 +309,6 @@ const std::vector& GetTypesWithTemporaryGrants() { +@@ -282,10 +318,6 @@ const std::vector& GetTypesWithTemporaryGrants() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -376,7 +376,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc ContentSettingsType::HAND_TRACKING, ContentSettingsType::SMART_CARD_DATA, ContentSettingsType::AR, -@@ -292,10 +324,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { +@@ -301,10 +333,6 @@ const std::vector& GetTypesWithTemporaryGrantsInHcsm() { ContentSettingsType::CAPTURED_SURFACE_CONTROL, #endif ContentSettingsType::KEYBOARD_LOCK, @@ -425,7 +425,7 @@ diff --git a/components/content_settings/core/common/content_settings_enums.mojo diff --git a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java --- a/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java +++ b/components/page_info/android/java/src/org/chromium/components/page_info/PageInfoController.java -@@ -374,8 +374,8 @@ public class PageInfoController +@@ -376,8 +376,8 @@ public class PageInfoController */ @CalledByNative private void addPermissionSection( @@ -522,7 +522,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 -@@ -1293,6 +1293,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1303,6 +1303,8 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, permission_info.is_one_time = (info.metadata.session_model() == content_settings::mojom::SessionModel::ONE_TIME); @@ -990,7 +990,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm bool PermissionContextBase::UsesAutomaticEmbargo() const { return true; } -@@ -571,7 +582,8 @@ void PermissionContextBase::DecidePermission( +@@ -572,7 +583,8 @@ void PermissionContextBase::DecidePermission( void PermissionContextBase::PermissionDecided( PermissionDecision decision, bool is_final_decision, @@ -1000,7 +1000,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm UserMadePermissionDecision(request_data.id, request_data.requesting_origin, request_data.embedding_origin, decision); -@@ -584,11 +596,12 @@ void PermissionContextBase::PermissionDecided( +@@ -585,11 +597,12 @@ void PermissionContextBase::PermissionDecided( // missing if a permission prompt was preignored and we already notified an // origin about it. if (request->second.second) { @@ -1017,7 +1017,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } } -@@ -673,6 +686,30 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -674,6 +687,30 @@ void PermissionContextBase::NotifyPermissionSet( bool persist, PermissionDecision decision, bool is_final_decision) { @@ -1048,7 +1048,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // Note that rfh may be null, see crbug.com/426909787. -@@ -688,8 +725,8 @@ void PermissionContextBase::NotifyPermissionSet( +@@ -689,8 +726,8 @@ void PermissionContextBase::NotifyPermissionSet( if (persist) { // Clone new value, because we need it again for the callback. @@ -1059,7 +1059,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm } if (is_final_decision) { -@@ -727,6 +764,17 @@ void PermissionContextBase::UpdateSetting( +@@ -728,6 +765,17 @@ void PermissionContextBase::UpdateSetting( const PermissionRequestData& request_data, PermissionSetting setting, bool is_one_time) { @@ -1077,7 +1077,7 @@ diff --git a/components/permissions/permission_context_base.cc b/components/perm DCHECK_EQ(request_data.requesting_origin, request_data.requesting_origin.DeprecatedGetOriginAsURL()); DCHECK_EQ(request_data.embedding_origin, -@@ -736,6 +784,8 @@ void PermissionContextBase::UpdateSetting( +@@ -737,6 +785,8 @@ void PermissionContextBase::UpdateSetting( constraints.set_session_model( is_one_time ? content_settings::mojom::SessionModel::ONE_TIME : content_settings::mojom::SessionModel::DURABLE); @@ -1261,7 +1261,7 @@ diff --git a/components/permissions/permission_request.h b/components/permission // Called when the user has cancelled the permission request. This // corresponds to a denial, but is segregated in case the context needs to -@@ -237,6 +248,9 @@ class PermissionRequest { +@@ -234,6 +245,9 @@ class PermissionRequest { // Called once a decision is made about the permission. PermissionDecidedCallback permission_decided_callback_; diff --git a/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch b/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch index 24ae12087effbc19424dd3dbbe5456ad895e3050..a2425da45c67b10c46937b0a04a386bd52f9fc05 100644 --- a/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch +++ b/build/cromite_patches/Add-menu-item-to-bookmark-all-tabs.patch @@ -36,7 +36,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -187,6 +187,7 @@ found in the LICENSE file. +@@ -191,6 +191,7 @@ found in the LICENSE file. @@ -47,7 +47,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -102,6 +102,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; +@@ -100,6 +100,7 @@ import org.chromium.chrome.browser.bookmarks.BookmarkPane; import org.chromium.chrome.browser.bookmarks.BookmarkUtils; import org.chromium.chrome.browser.browserservices.intents.WebappConstants; import org.chromium.chrome.browser.compositor.CompositorViewHolder; @@ -55,7 +55,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.compositor.layouts.Layout; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; -@@ -292,6 +293,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac +@@ -296,6 +297,9 @@ import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFac import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory; @@ -65,7 +65,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient; import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityExtras.IntentOrigin; import org.chromium.chrome.browser.ui.signin.BottomSheetSigninAndHistorySyncConfig; -@@ -303,6 +307,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; +@@ -309,6 +313,8 @@ import org.chromium.chrome.browser.usage_stats.UsageStatsService; import org.chromium.chrome.browser.util.ChromeAccessibilityUtil; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionInitializerImpl; import org.chromium.chrome.browser.xr.scenecore.XrSceneCoreSessionManagerImpl; @@ -74,7 +74,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.util.BrowserControlsVisibilityDelegate; import org.chromium.components.browser_ui.util.ComposedBrowserControlsVisibilityDelegate; -@@ -3848,6 +3854,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3910,6 +3916,8 @@ public class ChromeTabbedActivity extends ChromeActivity { CloseAllTabsDialog.show( this, getModalDialogManagerSupplier(), tabModelSelector, closeAllTabsRunnable); RecordUserAction.record("MobileMenuCloseAllTabs"); @@ -83,7 +83,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct } else if (id == R.id.close_all_incognito_tabs_menu_id) { boolean allowUndo = TabClosureParamsUtils.shouldAllowUndo(triggeringMotion); -@@ -3970,6 +3978,41 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -4030,6 +4038,41 @@ public class ChromeTabbedActivity extends ChromeActivity { getTabModalLifetimeHandler().onOmniboxFocusChanged(hasFocus); } @@ -128,7 +128,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -271,6 +271,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -291,6 +291,14 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm // Bookmarks modelList.add(buildBookmarksItem()); @@ -143,7 +143,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab // Recent Tabs if (shouldShowRecentTabsItem()) modelList.add(buildRecentTabsItem()); -@@ -448,6 +456,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -466,6 +474,13 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm } modelList.add(buildCloseAllTabsItem()); if (shouldShowTinkerTank()) modelList.add(buildTinkerTankItem()); @@ -460,7 +460,7 @@ diff --git a/chrome/browser/download/android/java/src/org/chromium/chrome/browse diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -4431,6 +4431,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -4437,6 +4437,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d Select tabs @@ -520,15 +520,15 @@ diff --git a/components/bookmark_bar_strings.grdp b/components/bookmark_bar_stri diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmarks/browser/bookmark_codec.cc --- a/components/bookmarks/browser/bookmark_codec.cc +++ b/components/bookmarks/browser/bookmark_codec.cc -@@ -36,6 +36,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; +@@ -39,6 +39,7 @@ const char BookmarkCodec::kBookmarkBarFolderNameKey[] = "bookmark_bar"; const char BookmarkCodec::kOtherBookmarkFolderNameKey[] = "other"; // The value is left as 'synced' for historical reasons. const char BookmarkCodec::kMobileBookmarkFolderNameKey[] = "synced"; +const char BookmarkCodec::kTabsBookmarkFolderNameKey[] = "tabs"; const char BookmarkCodec::kVersionKey[] = "version"; const char BookmarkCodec::kChecksumKey[] = "checksum"; - const char BookmarkCodec::kIdKey[] = "id"; -@@ -73,6 +74,7 @@ base::Value::Dict BookmarkCodec::Encode( + const char BookmarkCodec::kChecksumSHA256Key[] = "checksum_sha256"; +@@ -99,6 +100,7 @@ base::Value::Dict BookmarkCodec::Encode( const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -536,7 +536,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar std::string sync_metadata_str) { ids_reassigned_ = false; uuids_reassigned_ = false; -@@ -98,6 +100,8 @@ base::Value::Dict BookmarkCodec::Encode( +@@ -124,6 +126,8 @@ base::Value::Dict BookmarkCodec::Encode( roots.Set(kBookmarkBarFolderNameKey, EncodeNode(bookmark_bar_node)); roots.Set(kOtherBookmarkFolderNameKey, EncodeNode(other_folder_node)); roots.Set(kMobileBookmarkFolderNameKey, EncodeNode(mobile_folder_node)); @@ -545,7 +545,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar } else { // No permanent node should have been provided. CHECK(!other_folder_node); -@@ -119,6 +123,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -148,6 +152,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -553,7 +553,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar int64_t* max_id, std::string* sync_metadata_str) { const int64_t max_already_assigned_id = -@@ -133,7 +138,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, +@@ -162,7 +167,8 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, base::Uuid::ParseLowercase(kBookmarkBarNodeUuid), base::Uuid::ParseLowercase(kOtherBookmarksNodeUuid), base::Uuid::ParseLowercase(kMobileBookmarksNodeUuid), @@ -563,23 +563,24 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar ids_reassigned_ = false; uuids_reassigned_ = false; ids_valid_ = true; -@@ -141,13 +147,14 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, - stored_checksum_.clear(); +@@ -171,6 +177,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + stored_sha256_checksum_.clear(); InitializeChecksum(); bool success = DecodeHelper(bb_node, other_folder_node, mobile_folder_node, + tabs_folder_node, value, sync_metadata_str); FinalizeChecksum(); - // If either the checksums differ or some IDs were missing/not unique, - // reassign IDs. - if (!ids_valid_ || computed_checksum_ != stored_checksum_) { + +@@ -180,7 +187,7 @@ bool BookmarkCodec::Decode(const base::Value::Dict& value, + if (!ids_valid_ || (computed_checksum_ != stored_checksum_) || + (use_sha256 && computed_sha256_checksum_ != stored_sha256_checksum_)) { maximum_id_ = max_already_assigned_id; - ReassignIDs(bb_node, other_folder_node, mobile_folder_node); + ReassignIDs(bb_node, other_folder_node, mobile_folder_node, tabs_folder_node); } *max_id = maximum_id_ + 1; return success; -@@ -205,6 +212,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( +@@ -239,6 +246,7 @@ base::Value::Dict BookmarkCodec::EncodeMetaInfo( bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -587,7 +588,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar const base::Value::Dict& value, std::string* sync_metadata_str) { std::optional version = value.FindInt(kVersionKey); -@@ -237,6 +245,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -284,6 +292,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, roots->FindDict(kOtherBookmarkFolderNameKey); const base::Value::Dict* mobile_folder_value = roots->FindDict(kMobileBookmarkFolderNameKey); @@ -596,7 +597,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar if (!bb_value || !other_folder_value || !mobile_folder_value) return false; -@@ -244,6 +254,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, +@@ -291,6 +301,8 @@ bool BookmarkCodec::DecodeHelper(BookmarkNode* bb_node, DecodeNode(*bb_value, nullptr, bb_node); DecodeNode(*other_folder_value, nullptr, other_folder_node); DecodeNode(*mobile_folder_value, nullptr, mobile_folder_node); @@ -605,7 +606,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar // Need to reset the title as the title is persisted and restored from // the file. -@@ -475,12 +487,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( +@@ -499,12 +511,14 @@ void BookmarkCodec::DecodeMetaInfoHelper( void BookmarkCodec::ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -624,7 +625,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.cc b/components/bookmar diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmarks/browser/bookmark_codec.h --- a/components/bookmarks/browser/bookmark_codec.h +++ b/components/bookmarks/browser/bookmark_codec.h -@@ -43,6 +43,7 @@ class BookmarkCodec { +@@ -44,6 +44,7 @@ class BookmarkCodec { const BookmarkNode* bookmark_bar_node, const BookmarkNode* other_folder_node, const BookmarkNode* mobile_folder_node, @@ -632,7 +633,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark std::string sync_metadata_str); // Decodes the previously encoded value to the specified nodes as well as -@@ -61,6 +62,7 @@ class BookmarkCodec { +@@ -62,6 +63,7 @@ class BookmarkCodec { BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -640,15 +641,15 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark int64_t* max_node_id, std::string* sync_metadata_str); -@@ -92,6 +94,7 @@ class BookmarkCodec { +@@ -100,6 +102,7 @@ class BookmarkCodec { static const char kBookmarkBarFolderNameKey[]; static const char kOtherBookmarkFolderNameKey[]; static const char kMobileBookmarkFolderNameKey[]; + static const char kTabsBookmarkFolderNameKey[]; static const char kVersionKey[]; static const char kChecksumKey[]; - static const char kIdKey[]; -@@ -124,6 +127,7 @@ class BookmarkCodec { + static const char kChecksumSHA256Key[]; +@@ -133,6 +136,7 @@ class BookmarkCodec { bool DecodeHelper(BookmarkNode* bb_node, BookmarkNode* other_folder_node, BookmarkNode* mobile_folder_node, @@ -656,7 +657,7 @@ diff --git a/components/bookmarks/browser/bookmark_codec.h b/components/bookmark const base::Value::Dict& value, std::string* sync_metadata_str); -@@ -134,7 +138,8 @@ class BookmarkCodec { +@@ -143,7 +147,8 @@ class BookmarkCodec { // Reassigns bookmark IDs for all nodes. void ReassignIDs(BookmarkNode* bb_node, BookmarkNode* other_node, @@ -906,7 +907,7 @@ diff --git a/components/bookmarks/browser/model_loader.cc b/components/bookmarks &sync_metadata_str)) { ids_assigned_to_account_nodes = codec.release_assigned_ids(); -@@ -123,7 +127,8 @@ std::unique_ptr LoadBookmarks( +@@ -118,7 +122,8 @@ std::unique_ptr LoadBookmarks( if (root_dict.has_value() && codec.Decode(*root_dict, std::move(ids_assigned_to_account_nodes), details->bb_node(), details->other_folder_node(), @@ -919,7 +920,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 -@@ -442,6 +442,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( +@@ -447,6 +447,7 @@ sync_pb::BookmarkSpecifics::Type GetProtoTypeFromBookmarkNode( case bookmarks::BookmarkNode::BOOKMARK_BAR: case bookmarks::BookmarkNode::OTHER_NODE: case bookmarks::BookmarkNode::MOBILE: diff --git a/build/cromite_patches/Add-menu-item-to-view-source.patch b/build/cromite_patches/Add-menu-item-to-view-source.patch index d9033c350c3516823e7eebdc601d227c6083f5ac..4c89e08662af1ca218bf2186296f58052cd891c9 100644 --- a/build/cromite_patches/Add-menu-item-to-view-source.patch +++ b/build/cromite_patches/Add-menu-item-to-view-source.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/values/ids.xml --- a/chrome/android/java/res/values/ids.xml +++ b/chrome/android/java/res/values/ids.xml -@@ -131,6 +131,7 @@ found in the LICENSE file. +@@ -133,6 +133,7 @@ found in the LICENSE file. @@ -27,7 +27,7 @@ diff --git a/chrome/android/java/res/values/ids.xml b/chrome/android/java/res/va diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -3884,6 +3884,8 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -3946,6 +3946,8 @@ public class ChromeTabbedActivity extends ChromeActivity { NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER); } RecordUserAction.record("MobileMenuDownloadManager"); @@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -2638,6 +2638,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -2697,6 +2697,11 @@ public abstract class ChromeActivity extends AsyncInitializationActivity return doOpenWebApk(currentTab); } @@ -54,7 +54,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java -@@ -974,6 +974,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties +@@ -989,6 +989,30 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties return false; } @@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/App diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabAppMenuPropertiesDelegate.java -@@ -370,6 +370,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat +@@ -378,6 +378,9 @@ public class CustomTabAppMenuPropertiesDelegate extends AppMenuPropertiesDelegat modelList.add(buildAddToHomescreenListItem(currentTab, false)); } @@ -101,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java -@@ -338,6 +338,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm +@@ -358,6 +358,9 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm modelList.add(buildAddToHomescreenListItem(currentTab, shouldShowIconBeforeItem())); } @@ -114,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -321,6 +321,10 @@ CHAR_LIMIT guidelines: +@@ -324,6 +324,10 @@ CHAR_LIMIT guidelines: Collaboration diff --git a/build/cromite_patches/Add-option-to-force-tablet-UI.patch b/build/cromite_patches/Add-option-to-force-tablet-UI.patch index 8976f1cfca8b5464a85c8a805e46e8b4fbc8e180..930d9de0136111960cba587e7670c6145186c4fc 100644 --- a/build/cromite_patches/Add-option-to-force-tablet-UI.patch +++ b/build/cromite_patches/Add-option-to-force-tablet-UI.patch @@ -99,7 +99,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java -@@ -62,6 +62,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; +@@ -64,6 +64,7 @@ import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeFieldTrialImpl; import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils; @@ -107,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo import org.chromium.chrome.browser.ui.edge_to_edge.SimpleEdgeToEdgeController; import org.chromium.components.browser_ui.styles.SemanticColorUtils; import org.chromium.components.browser_ui.util.AutomotiveUtils; -@@ -142,6 +143,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity +@@ -145,6 +146,8 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity protected void attachBaseContext(Context newBase) { super.attachBaseContext(newBase); @@ -170,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/accessibility/s diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java -@@ -803,7 +803,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity +@@ -808,7 +808,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity // Inflate the correct toolbar layout for the device. int toolbarLayoutId = getToolbarLayoutId(); if (toolbarLayoutId != ActivityUtils.NO_RESOURCE_ID && controlContainer != null) { @@ -184,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelper.java -@@ -130,6 +130,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -132,6 +132,7 @@ import org.chromium.components.tab_group_sync.TabGroupSyncService; import org.chromium.components.tab_group_sync.TriggerSource; import org.chromium.components.tab_groups.TabGroupColorId; import org.chromium.ui.accessibility.AccessibilityState; @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; -@@ -5147,8 +5148,13 @@ public class StripLayoutHelper +@@ -5039,8 +5040,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); @@ -260,7 +260,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow import org.chromium.chrome.browser.profiles.ProfileManager; import org.chromium.chrome.browser.signin.SigninCheckerProvider; import org.chromium.components.background_task_scheduler.BackgroundTaskSchedulerFactory; -@@ -109,6 +110,7 @@ public class ChromeBrowserInitializer { +@@ -110,6 +111,7 @@ public class ChromeBrowserInitializer { public void handlePreNativeStartupAndLoadLibraries(final BrowserParts parts) { ThreadUtils.checkUiThread(); if (parts.isActivityFinishingOrDestroyed()) return; @@ -271,7 +271,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeBrow diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java -@@ -762,7 +762,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -768,7 +768,9 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { @Override public int getControlContainerHeightResource() { @@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java -@@ -107,6 +107,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; +@@ -110,6 +110,8 @@ import org.chromium.chrome.browser.paint_preview.DemoPaintPreview; import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer; import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher; import org.chromium.chrome.browser.pdf.PdfPage; @@ -294,7 +294,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.quick_delete.QuickDeleteController; import org.chromium.chrome.browser.quick_delete.QuickDeleteDelegateImpl; -@@ -1715,7 +1717,9 @@ public class RootUiCoordinator +@@ -1803,7 +1805,9 @@ public class RootUiCoordinator if (!mSupportsFindInPageSupplier.getAsBoolean()) return; int stubId = R.id.find_toolbar_stub; @@ -319,7 +319,7 @@ diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BU diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java --- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java +++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java -@@ -321,6 +321,7 @@ public final class ChromePreferenceKeys { +@@ -337,6 +337,7 @@ public final class ChromePreferenceKeys { /** Whether the app-specific history info text was already seen by users. */ public static final String HISTORY_APP_SPECIFIC_INFO_SEEN = "Chrome.History.AppSpecificInfoSeen"; @@ -378,7 +378,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c import org.chromium.ui.insets.InsetObserver; import org.chromium.ui.insets.InsetObserver.WindowInsetsConsumer; import org.chromium.ui.insets.InsetsRectProvider; -@@ -280,6 +281,7 @@ public class AppHeaderCoordinator +@@ -281,6 +282,7 @@ public class AppHeaderCoordinator InsetsRectProvider insetsRectProvider, @DesktopWindowHeuristicResult int currentResult, boolean isOnExternalDisplay) { @@ -389,7 +389,7 @@ diff --git a/chrome/browser/ui/android/desktop_windowing/java/src/org/chromium/c diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java --- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java +++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java -@@ -862,7 +862,7 @@ public class LocationBarCoordinator +@@ -869,7 +869,7 @@ public class LocationBarCoordinator } private boolean isTabletWindow() { @@ -401,7 +401,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -1483,6 +1483,13 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1489,6 +1489,13 @@ Your Google account may have other forms of browsing history like searches and a Privacy guide explanation closed @@ -516,7 +516,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow import android.graphics.Canvas; import android.graphics.Color; import android.graphics.PorterDuff; -@@ -165,8 +166,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout +@@ -170,8 +171,25 @@ public class ToolbarControlContainer extends OptimizedFrameLayout @Override @Initializer @@ -587,7 +587,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java --- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java +++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/tab_strip/TabStripTransitionCoordinator.java -@@ -28,6 +28,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; +@@ -29,6 +29,7 @@ import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils; import org.chromium.components.browser_ui.desktop_windowing.AppHeaderState; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager; import org.chromium.components.browser_ui.desktop_windowing.DesktopWindowStateManager.AppHeaderObserver; @@ -595,7 +595,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow /** Class used to manage tab strip visibility and height updates. */ @NullMarked -@@ -153,7 +154,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea +@@ -148,7 +149,10 @@ public class TabStripTransitionCoordinator implements ComponentCallbacks, AppHea mTabStripReservedTopPadding = controlContainerView() .getResources() @@ -610,7 +610,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow 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 -@@ -41,6 +41,11 @@ found in the LICENSE file. +@@ -36,6 +36,11 @@ found in the LICENSE file. android:summary="@string/jump_start_omnibox_summary" android:title="@string/jump_start_omnibox_title" /> @@ -643,7 +643,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c private PageZoomPreference mPageZoomDefaultZoomPref; private ChromeSwitchPreference mPageZoomIncludeOSAdjustment; private ChromeSwitchPreference mPageZoomAlwaysShowPref; -@@ -108,6 +112,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -117,6 +121,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment mDelegate.getReaderAccessibilityDelegate().getValue()); readerForAccessibilityPref.setOnPreferenceChangeListener(this); @@ -656,7 +656,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c Preference captions = findPreference(PREF_CAPTIONS); captions.setOnPreferenceClickListener( preference -> { -@@ -167,6 +177,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment +@@ -176,6 +186,9 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { if (PREF_FORCE_ENABLE_ZOOM.equals(preference.getKey())) { mDelegate.getForceEnableZoomAccessibilityDelegate().setValue((Boolean) newValue); @@ -681,7 +681,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java --- a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java +++ b/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java -@@ -70,6 +70,14 @@ public class DeviceFormFactor { +@@ -79,6 +79,14 @@ public class DeviceFormFactor { /** See {@link #setIsTabletForTesting(boolean)}. */ private static @Nullable Boolean sIsTabletForTesting; @@ -696,7 +696,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui /** * Each activity could be on a different display, and this will just tell you whether the * display associated with the application context is "tablet sized". Use {@link -@@ -78,6 +86,7 @@ public class DeviceFormFactor { +@@ -87,6 +95,7 @@ public class DeviceFormFactor { @CalledByNative @Deprecated public static boolean isTablet() { @@ -704,7 +704,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui if (sIsTabletForTesting != null) { return sIsTabletForTesting; } -@@ -108,6 +117,7 @@ public class DeviceFormFactor { +@@ -117,6 +126,7 @@ public class DeviceFormFactor { * E.g. http://developer.samsung.com/samsung-dex/testing */ public static boolean isNonMultiDisplayContextOnTablet(Context context) { @@ -712,7 +712,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return detectScreenWidthBucket(context) >= SCREEN_BUCKET_TABLET; } -@@ -142,6 +152,7 @@ public class DeviceFormFactor { +@@ -151,6 +161,7 @@ public class DeviceFormFactor { * @return The screen width bucket the device is in (see constants at the top of this class). */ private static int detectScreenWidthBucket(Context context) { @@ -720,7 +720,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -149,6 +160,7 @@ public class DeviceFormFactor { +@@ -158,6 +169,7 @@ public class DeviceFormFactor { ThreadUtils.assertOnUiThread(); Context context = windowAndroid.getContext().get(); if (context == null) return 0; @@ -728,7 +728,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return context.getResources().getInteger(R.integer.min_screen_width_bucket); } -@@ -158,6 +170,7 @@ public class DeviceFormFactor { +@@ -167,6 +179,7 @@ public class DeviceFormFactor { */ @UiThread public static int getNonMultiDisplayMinimumTabletWidthPx(Context context) { @@ -736,7 +736,7 @@ diff --git a/ui/android/java/src/org/chromium/ui/base/DeviceFormFactor.java b/ui return getMinimumTabletWidthPx(DisplayAndroid.getNonMultiDisplay(context)); } -@@ -166,6 +179,7 @@ public class DeviceFormFactor { +@@ -175,6 +188,7 @@ public class DeviceFormFactor { * layout. */ public static int getMinimumTabletWidthPx(DisplayAndroid display) { diff --git a/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch b/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch index 46458afbdc92e225956e2a8ef6d4cea7a64ef178..cf0e4938d6827e434f61f0e99861f1c253ae5cfd 100644 --- a/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch +++ b/build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch @@ -28,7 +28,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java -@@ -46,6 +46,7 @@ import org.chromium.base.Callback; +@@ -47,6 +47,7 @@ import org.chromium.base.Callback; import org.chromium.base.CallbackController; import org.chromium.base.CallbackUtils; import org.chromium.base.CommandLine; @@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct import org.chromium.base.IntentUtils; import org.chromium.base.Log; import org.chromium.base.MemoryPressureListener; -@@ -2151,8 +2152,10 @@ public class ChromeTabbedActivity extends ChromeActivity { +@@ -2218,8 +2219,10 @@ public class ChromeTabbedActivity extends ChromeActivity { boolean hadCipherData = CipherLazyHolder.sCipherInstance.restoreFromBundle(getSavedInstanceState()); @@ -104,7 +104,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd -@@ -2850,6 +2850,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d +@@ -2856,6 +2856,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d All tabs diff --git a/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch b/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch index 8dbd181db93a48d10971ec646dbd68d389b6ac73..ac639836a699efc5b0e36a6f602724540d4b0d76 100644 --- a/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch +++ b/build/cromite_patches/Add-option-to-use-home-page-as-NTP.patch @@ -6,7 +6,7 @@ And allow use about:blank as default homepage License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - .../tab_management/TabGridDialogMediator.java | 11 ++++++++++- + .../tab_management/TabGridDialogMediator.java | 12 +++++++++++- .../tasks/tab_management/TabGroupUiMediator.java | 8 +++++++- .../java/res/xml/homepage_preferences.xml | 5 +++++ .../strip/TabGroupContextMenuCoordinator.java | 11 ++++++++++- @@ -19,12 +19,20 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/strings/android_chrome_strings.grd | 3 +++ chrome/browser/ui/browser_ui_prefs.cc | 2 ++ chrome/common/pref_names.h | 4 ++++ - 13 files changed, 79 insertions(+), 4 deletions(-) + 13 files changed, 80 insertions(+), 4 deletions(-) diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java --- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java +++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabGridDialogMediator.java -@@ -120,6 +120,9 @@ import java.util.Optional; +@@ -100,6 +100,7 @@ import org.chromium.components.collaboration.messaging.PersistentNotificationTyp + import org.chromium.components.data_sharing.DataSharingService; + import org.chromium.components.data_sharing.GroupMember; + import org.chromium.components.data_sharing.member_role.MemberRole; ++import org.chromium.components.embedder_support.util.UrlConstants; + import org.chromium.components.tab_group_sync.EitherId.EitherGroupId; + import org.chromium.components.tab_group_sync.LocalTabGroupId; + import org.chromium.components.tab_group_sync.TabGroupSyncService; +@@ -120,6 +121,9 @@ import java.util.Objects; import java.util.Set; import java.util.function.Supplier; @@ -34,11 +42,11 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser /** * A mediator for the TabGridDialog component, responsible for communicating with the components' * coordinator as well as managing the business logic for dialog show/hide. -@@ -1028,9 +1031,15 @@ public class TabGridDialogMediator - return; - } +@@ -1033,9 +1037,15 @@ public class TabGridDialogMediator + UrlConstantResolver urlConstantResolver = + UrlConstantResolverFactory.getForProfile(profile); -+ String url = UrlConstants.NTP_URL; ++ String url = urlConstantResolver.getNtpUrl(); + if (UrlConstants.NTP_URL.equals(url) + && HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + GURL gurl = HomepageManager.getInstance().getHomepageGurl(); @@ -46,7 +54,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser + } TabGroupUtils.openUrlInGroup( assumeNonNull(mCurrentTabGroupModelFilterSupplier.get()), -- UrlConstants.NTP_URL, +- urlConstantResolver.getNtpUrl(), + url, tabsInGroup.get(tabsInGroup.size() - 1).getId(), TabLaunchType.FROM_TAB_GROUP_UI); @@ -62,11 +70,11 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver; import org.chromium.chrome.browser.layouts.LayoutType; import org.chromium.chrome.browser.profiles.Profile; -@@ -420,10 +421,15 @@ public class TabGroupUiMediator implements BackPressHandler { - assert relatedTabs.size() > 0; +@@ -425,10 +426,15 @@ public class TabGroupUiMediator implements BackPressHandler { + UrlConstantResolverFactory.getForProfile(currentTabProfile); Tab parentTabToAttach = relatedTabs.get(relatedTabs.size() - 1); -+ String url = UrlConstants.NTP_URL; ++ String url = urlConstantResolver.getNtpUrl(); + if (HomepageManager.getInstance().getPrefNTPIsHomepageEnabled()) { + GURL gurl = HomepageManager.getInstance().getHomepageGurl(); + url = gurl != null ? gurl.getSpec() : url; @@ -74,7 +82,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser mTabCreatorManager .getTabCreator(currentTab.isIncognito()) .createNewTab( -- new LoadUrlParams(UrlConstants.NTP_URL), +- new LoadUrlParams(urlConstantResolver.getNtpUrl()), + new LoadUrlParams(url), TabLaunchType.FROM_TAB_GROUP_UI, parentTabToAttach); @@ -200,7 +208,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/metrics/LaunchM diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java --- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/ChromeTabCreator.java -@@ -26,6 +26,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; +@@ -27,6 +27,7 @@ import org.chromium.chrome.browser.app.tab_activity_glue.ReparentingTask; import org.chromium.chrome.browser.compositor.CompositorViewHolder; import org.chromium.chrome.browser.flags.ChromeFeatureList; import org.chromium.chrome.browser.multiwindow.MultiInstanceManager; @@ -208,7 +216,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/Chrome import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge; import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState; import org.chromium.chrome.browser.profiles.Profile; -@@ -569,6 +570,13 @@ public class ChromeTabCreator extends TabCreator +@@ -572,6 +573,13 @@ public class ChromeTabCreator extends TabCreator */ public @Nullable Tab launchUrl( String url, @TabLaunchType int type, @Nullable Intent intent, long intentTimestamp) { @@ -225,7 +233,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 -@@ -334,6 +334,7 @@ public final class ChromePreferenceKeys { +@@ -350,6 +350,7 @@ public final class ChromePreferenceKeys { public static final String HOMEPAGE_USE_CHROME_NTP = "Chrome.Homepage.UseNTP"; public static final String HOMEPAGE_USE_DEFAULT_URI = "homepage_partner_enabled"; @@ -247,7 +255,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 -@@ -1324,6 +1324,9 @@ Your Google account may have other forms of browsing history like searches and a +@@ -1330,6 +1330,9 @@ Your Google account may have other forms of browsing history like searches and a Last hour @@ -260,7 +268,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -115,6 +115,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -119,6 +119,8 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kPinSplitTabButton, false, pref_registration_flags); @@ -272,7 +280,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 -@@ -1345,6 +1345,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = +@@ -1336,6 +1336,10 @@ inline constexpr char kSplitViewDragAndDropNudgeUsedCount[] = // by enterprise policy. inline constexpr char kGeminiSettings[] = "browser.gemini_settings"; diff --git a/build/cromite_patches/Add-search-engine.patch b/build/cromite_patches/Add-search-engine.patch index 3498b0b98d753049449c93d52acd7d20cb48d32e..5e22cc154873ab90cf4eebf1aa8a7bcbe3c9e55c 100644 --- a/build/cromite_patches/Add-search-engine.patch +++ b/build/cromite_patches/Add-search-engine.patch @@ -63,7 +63,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ -@@ -162,6 +163,7 @@ source_set("search_engine_utils") { +@@ -164,6 +165,7 @@ source_set("search_engine_utils") { ":search_engine_type", "//components/google/core/common", "//third_party/search_engines_data:prepopulated_engines", @@ -71,7 +71,7 @@ diff --git a/components/search_engines/BUILD.gn b/components/search_engines/BUIL ] deps = [ "//url" ] -@@ -252,6 +254,7 @@ source_set("unit_tests") { +@@ -258,6 +260,7 @@ source_set("unit_tests") { "//testing/gmock", "//testing/gtest", "//third_party/search_engines_data:prepopulated_engines", diff --git a/build/cromite_patches/Add-site-engagement-flag.patch b/build/cromite_patches/Add-site-engagement-flag.patch index b95565e26423cbd1d818ec95375626a74d08836a..e005b42cc9013c0733454d8cb9801a7e3d8377d0 100644 --- a/build/cromite_patches/Add-site-engagement-flag.patch +++ b/build/cromite_patches/Add-site-engagement-flag.patch @@ -9,6 +9,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- chrome/browser/about_flags.cc | 1 + .../engagement/important_sites_util.cc | 9 +++++ + .../browser/media/media_engagement_service.cc | 4 ++- .../internal/tracker_impl.cc | 3 ++ .../public/feature_configurations.cc | 7 ++++ .../content/site_engagement_score.cc | 5 +++ @@ -16,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/site_engagement/core/features.cc | 30 ++++++++++++++++ components/site_engagement/core/features.h | 34 +++++++++++++++++++ .../Add-site-engagement-flag.inc | 10 ++++++ - 9 files changed, 105 insertions(+) + 10 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 components/site_engagement/core/features.cc create mode 100644 components/site_engagement/core/features.h create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc @@ -24,7 +25,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc -@@ -169,6 +169,7 @@ +@@ -171,6 +171,7 @@ #include "components/sensitive_content/features.h" #include "components/services/heap_profiling/public/cpp/switches.h" #include "components/services/storage/public/cpp/buckets/bucket_info.h" @@ -65,6 +66,27 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/ std::map important_info; std::map engagement_map; +diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/media/media_engagement_service.cc +--- a/chrome/browser/media/media_engagement_service.cc ++++ b/chrome/browser/media/media_engagement_service.cc +@@ -25,6 +25,7 @@ + #include "components/history/core/browser/history_service.h" + #include "components/no_state_prefetch/browser/no_state_prefetch_contents.h" + #include "components/prefs/pref_service.h" ++#include "components/site_engagement/core/features.h" + #include "content/public/browser/web_contents.h" + #include "media/base/media_switches.h" + #include "url/origin.h" +@@ -54,7 +55,8 @@ enum class MediaEngagementClearReason { + + // static + bool MediaEngagementService::IsEnabled() { +- return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores); ++ return base::FeatureList::IsEnabled(media::kRecordMediaEngagementScores) ++ && base::FeatureList::IsEnabled(site_engagement::features::kSiteEngagement); + } + + // static diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc @@ -76,7 +98,7 @@ diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components #include "components/feature_engagement/internal/availability_model_impl.h" #include "components/feature_engagement/internal/blocked_iph_features.h" #include "components/feature_engagement/internal/chrome_variations_configuration.h" -@@ -306,6 +307,8 @@ TrackerImpl::TrackerImpl( +@@ -291,6 +292,8 @@ TrackerImpl::TrackerImpl( TrackerImpl::~TrackerImpl() = default; void TrackerImpl::NotifyEvent(const std::string& event) { diff --git a/build/cromite_patches/Add-support-for-ISupportHelpAndFeedback.patch b/build/cromite_patches/Add-support-for-ISupportHelpAndFeedback.patch index 4756ba1200de2cfcbfd5e19b8f1fe97d10bccc82..fde685d258cea5a2289ae489ea9c1672904e8ac0 100644 --- a/build/cromite_patches/Add-support-for-ISupportHelpAndFeedback.patch +++ b/build/cromite_patches/Add-support-for-ISupportHelpAndFeedback.patch @@ -12,15 +12,15 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java -@@ -56,6 +56,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; +@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar; import org.chromium.components.browser_ui.bottomsheet.BottomSheetController; import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFactory; import org.chromium.components.browser_ui.bottomsheet.ManagedBottomSheetController; +import org.chromium.components.browser_ui.settings.SettingsUtils; import org.chromium.components.browser_ui.modaldialog.AppModalPresenter; import org.chromium.components.browser_ui.settings.EmbeddableSettingsPage; - import org.chromium.components.browser_ui.settings.SettingsFragment; -@@ -485,8 +486,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity + import org.chromium.components.browser_ui.settings.PreferenceUpdateObserver; +@@ -733,8 +734,12 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity finishCurrentSettings(mainFragment); return true; } else if (item.getItemId() == R.id.menu_id_general_help) { @@ -38,7 +38,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java --- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java +++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java -@@ -28,6 +28,10 @@ import org.chromium.ui.drawable.StateListDrawableBuilder; +@@ -33,6 +33,10 @@ import java.util.ArrayList; /** A helper class for Settings. */ @NullMarked public class SettingsUtils { diff --git a/build/cromite_patches/Add-webGL-site-setting.patch b/build/cromite_patches/Add-webGL-site-setting.patch index ebcfe814862f09efe14e35b545e49e2d2c351cb0..1972e4fcb7c6949109a6e08fa221dab338779469 100644 --- a/build/cromite_patches/Add-webGL-site-setting.patch +++ b/build/cromite_patches/Add-webGL-site-setting.patch @@ -206,7 +206,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h -@@ -114,6 +114,8 @@ enum ReasonForCallingCanExecuteScripts { +@@ -115,6 +115,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 -@@ -345,6 +345,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( +@@ -346,6 +346,13 @@ void WebGLRenderingContextBase::InitializeWebGLContextLimits( } } @@ -232,8 +232,8 @@ 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_); -@@ -615,25 +622,6 @@ static String ExtractWebGLContextCreationError( - const Platform::GraphicsInfo& info) { +@@ -616,25 +623,6 @@ static String ExtractWebGLContextCreationError( + const Platform::WebGLContextInfo& info) { StringBuilder builder; builder.Append("Could not create a WebGL context"); - FormatWebGLStatusString( @@ -258,10 +258,10 @@ diff --git a/third_party/blink/renderer/modules/webgl/webgl_rendering_context_ba FormatWebGLStatusString("ErrorMessage", info.error_message.Utf8().c_str(), builder); builder.Append('.'); -@@ -694,6 +682,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( +@@ -695,6 +683,12 @@ WebGLRenderingContextBase::CreateWebGraphicsContext3DProvider( const CanvasContextCreationAttributesCore& attributes, - Platform::ContextType context_type, - Platform::GraphicsInfo* graphics_info) { + Platform::WebGLContextType context_type, + Platform::WebGLContextInfo* context_info) { + if (!AllowWebglForHost(host)) { + host->HostDispatchEvent(WebGLContextEvent::Create( + event_type_names::kWebglcontextcreationerror, diff --git a/build/cromite_patches/Add-webRTC-site-settings.patch b/build/cromite_patches/Add-webRTC-site-settings.patch index d981ed2d362694bd27fb20bcb9ecd4dae26ce789..fe0202fd69c049b3955b6d86d620cb02dd8dc651 100644 --- a/build/cromite_patches/Add-webRTC-site-settings.patch +++ b/build/cromite_patches/Add-webRTC-site-settings.patch @@ -187,7 +187,7 @@ new file mode 100644 diff --git a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc --- a/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc +++ b/third_party/blink/renderer/modules/peerconnection/peer_connection_dependency_factory.cc -@@ -46,6 +46,7 @@ +@@ -47,6 +47,7 @@ #include "third_party/blink/public/platform/modules/webrtc/webrtc_logging.h" #include "third_party/blink/public/platform/platform.h" #include "third_party/blink/public/platform/task_type.h" @@ -195,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" -@@ -1023,6 +1024,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( +@@ -989,6 +990,11 @@ PeerConnectionDependencyFactory::CreatePortAllocator( // |request_multiple_routes|. Whether local IP addresses could be // collected depends on if mic/camera permission is granted for this // origin. @@ -220,7 +220,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver. #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_rtcp_parameters.h" -@@ -287,6 +290,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, +@@ -279,6 +282,14 @@ RTCRtpCapabilities* RTCRtpReceiver::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; @@ -248,7 +248,7 @@ diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_encoding_options.h" #include "third_party/blink/renderer/bindings/modules/v8/v8_rtc_insertable_streams.h" -@@ -1034,6 +1037,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, +@@ -1031,6 +1034,14 @@ RTCRtpCapabilities* RTCRtpSender::getCapabilities(ScriptState* state, if (kind != "audio" && kind != "video") return nullptr; diff --git a/build/cromite_patches/Allow-building-without-enable_reporting.patch b/build/cromite_patches/Allow-building-without-enable_reporting.patch index e818961004d40c00ae7b0629b13da3a964da0572..0dcdb80a0e45a989cfa9d5d0530722aa9bef580a 100644 --- a/build/cromite_patches/Allow-building-without-enable_reporting.patch +++ b/build/cromite_patches/Allow-building-without-enable_reporting.patch @@ -43,7 +43,7 @@ diff --git a/chrome/browser/net/chrome_report_sender.cc b/chrome/browser/net/chr diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc --- a/content/browser/devtools/protocol/network_handler.cc +++ b/content/browser/devtools/protocol/network_handler.cc -@@ -1516,6 +1516,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { +@@ -1520,6 +1520,7 @@ String BuildReportStatus(const net::ReportingReport::Status status) { } } @@ -51,7 +51,7 @@ diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/brow std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { std::vector urls; frame_host->ForEachRenderFrameHostImplWithAction( -@@ -1529,6 +1530,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { +@@ -1533,6 +1534,7 @@ std::vector ComputeReportingURLs(RenderFrameHostImpl* frame_host) { }); return urls; } @@ -126,7 +126,7 @@ diff --git a/content/browser/network/reporting_service_proxy.cc b/content/browse diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc --- a/content/browser/renderer_host/render_frame_host_impl.cc +++ b/content/browser/renderer_host/render_frame_host_impl.cc -@@ -16185,12 +16185,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( +@@ -16264,12 +16264,6 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport( } } } @@ -308,7 +308,7 @@ diff --git a/net/reporting/reporting_service.cc b/net/reporting/reporting_servic diff --git a/services/network/network_context.h b/services/network/network_context.h --- a/services/network/network_context.h +++ b/services/network/network_context.h -@@ -501,14 +501,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext +@@ -506,14 +506,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext const GURL& url, const std::optional& reporting_source, const net::NetworkAnonymizationKey& network_anonymization_key, @@ -329,7 +329,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte diff --git a/services/network/public/cpp/parsed_headers.cc b/services/network/public/cpp/parsed_headers.cc --- a/services/network/public/cpp/parsed_headers.cc +++ b/services/network/public/cpp/parsed_headers.cc -@@ -125,6 +125,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( +@@ -133,6 +133,7 @@ mojom::ParsedHeadersPtr PopulateParsedHeaders( } #if BUILDFLAG(ENABLE_REPORTING) @@ -351,7 +351,7 @@ diff --git a/services/network/public/mojom/BUILD.gn b/services/network/public/mo diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom --- a/services/network/public/mojom/network_context.mojom +++ b/services/network/public/mojom/network_context.mojom -@@ -1264,6 +1264,7 @@ interface NetworkContext { +@@ -1303,6 +1303,7 @@ interface NetworkContext { // provided `network_anonymization_key`. // // Spec: https://w3c.github.io/reporting/#concept-reports @@ -359,7 +359,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueReport(string type, string group, url.mojom.Url url, -@@ -1271,6 +1272,7 @@ interface NetworkContext { +@@ -1310,6 +1311,7 @@ interface NetworkContext { NetworkAnonymizationKey network_anonymization_key, mojo_base.mojom.DictionaryValue body); @@ -367,7 +367,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw QueueEnterpriseReport(string type, string group, url.mojom.Url url, -@@ -1281,6 +1283,7 @@ interface NetworkContext { +@@ -1320,6 +1322,7 @@ interface NetworkContext { // Note that this queued report will never be delivered if no reporting // endpoint matching is registered for with the provided // `network_anonymization_key`. @@ -386,7 +386,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c #include "base/containers/contains.h" #include "base/debug/dump_without_crashing.h" #include "base/feature_list.h" -@@ -1356,6 +1357,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1355,6 +1356,7 @@ void ContentSecurityPolicy::ReportViolation( ShouldBypassContentSecurityPolicy(KURL(violation_data->sourceFile()))) { return; } @@ -394,7 +394,7 @@ diff --git a/third_party/blink/renderer/core/frame/csp/content_security_policy.c PostViolationReport(violation_data, context_frame, report_endpoints, use_reporting_api); -@@ -1363,6 +1365,7 @@ void ContentSecurityPolicy::ReportViolation( +@@ -1362,6 +1364,7 @@ void ContentSecurityPolicy::ReportViolation( // `context_frame` (i.e. we're not processing 'frame-ancestors'). if (delegate_ && !context_frame) delegate_->DispatchViolationEvent(*violation_data, element); @@ -413,7 +413,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/ #include "services/network/public/cpp/features.h" #include "services/network/public/mojom/content_security_policy.mojom-blink.h" #include "services/network/public/mojom/source_location.mojom-blink.h" -@@ -2860,9 +2861,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { +@@ -2851,9 +2852,11 @@ DocumentResourceCoordinator* LocalFrame::GetDocumentResourceCoordinator() { return CHECK_DEREF(GetDocument()).GetResourceCoordinator(); } @@ -436,7 +436,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b #include "mojo/public/cpp/bindings/pending_associated_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h" #include "net/storage_access_api/status.h" -@@ -671,7 +672,9 @@ class CORE_EXPORT LocalFrame final +@@ -668,7 +669,9 @@ class CORE_EXPORT LocalFrame final return client_hints_preferences_; } diff --git a/build/cromite_patches/Allow-building-without-supervised-users.patch b/build/cromite_patches/Allow-building-without-supervised-users.patch index ea83f0b0a646fd4d5ad3be70d10ccfabb61d774e..0e303a101d225225b82aef2b9cd7dff3d7a58e27 100644 --- a/build/cromite_patches/Allow-building-without-supervised-users.patch +++ b/build/cromite_patches/Allow-building-without-supervised-users.patch @@ -24,7 +24,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn -@@ -820,7 +820,6 @@ if (_is_default_toolchain) { +@@ -826,7 +826,6 @@ if (_is_default_toolchain) { "//components/offline_pages/core:offline_page_model_enums_java", "//components/sharing_message:sharing_dialog_type_generated_enum", "//components/sharing_message:sharing_send_message_result_generated_enum", @@ -65,7 +65,7 @@ diff --git a/chrome/browser/feedback/android/BUILD.gn b/chrome/browser/feedback/ diff --git a/chrome/browser/prefs/chrome_pref_service_factory.cc b/chrome/browser/prefs/chrome_pref_service_factory.cc --- a/chrome/browser/prefs/chrome_pref_service_factory.cc +++ b/chrome/browser/prefs/chrome_pref_service_factory.cc -@@ -324,7 +324,7 @@ void PrepareFactory( +@@ -327,7 +327,7 @@ void PrepareFactory( policy::BrowserPolicyConnector* policy_connector) { factory->SetManagedPolicies(policy_service, policy_connector); factory->SetRecommendedPolicies(policy_service, policy_connector); @@ -100,7 +100,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p // Changes in the profile avatar. pref_change_registrar_.Add( -@@ -1623,6 +1619,7 @@ GURL ProfileImpl::GetHomePage() { +@@ -1632,6 +1628,7 @@ GURL ProfileImpl::GetHomePage() { } void ProfileImpl::UpdateSupervisedUserIdInStorage() { @@ -111,7 +111,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc --- a/chrome/browser/profiles/profile_manager.cc +++ b/chrome/browser/profiles/profile_manager.cc -@@ -1190,10 +1190,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { +@@ -1191,10 +1191,6 @@ void ProfileManager::InitProfileUserPrefs(Profile* profile) { profile->GetPrefs()->SetString(prefs::kProfileName, profile_name); } @@ -122,7 +122,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile } void ProfileManager::RegisterTestingProfile(std::unique_ptr profile, -@@ -1955,9 +1951,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { +@@ -1956,9 +1952,6 @@ void ProfileManager::AddProfileToStorage(Profile* profile) { init_params.icon_index = profile->GetPrefs()->GetInteger(prefs::kProfileAvatarIndex); @@ -219,7 +219,7 @@ diff --git a/components/supervised_user/core/browser/supervised_user_service.cc 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 -@@ -33,7 +33,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, +@@ -30,7 +30,6 @@ BASE_FEATURE(kAllowSubframeLocalWebApprovals, #else base::FEATURE_DISABLED_BY_DEFAULT); #endif @@ -227,7 +227,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup #if BUILDFLAG(IS_IOS) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \ BUILDFLAG(IS_WIN) const int kLocalWebApprovalBottomSheetLoadTimeoutDefaultValueMs = 5000; -@@ -164,4 +163,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { +@@ -151,4 +150,5 @@ bool ClassifyUrlWithoutCredentialsForLocalSupervision() { #endif @@ -236,7 +236,7 @@ diff --git a/components/supervised_user/core/common/features.cc b/components/sup diff --git a/extensions/browser/api/management/management_api.cc b/extensions/browser/api/management/management_api.cc --- a/extensions/browser/api/management/management_api.cc +++ b/extensions/browser/api/management/management_api.cc -@@ -312,6 +312,7 @@ void AddExtensionInfo(const Extension* source_extension, +@@ -324,6 +324,7 @@ void AddExtensionInfo(const Extension* source_extension, } bool PlatformSupportsApprovalFlowForExtensions() { diff --git a/build/cromite_patches/Allow-playing-audio-in-background.patch b/build/cromite_patches/Allow-playing-audio-in-background.patch index 96462a4647b97cf654d434753371c1fe06d29181..1967106ef3cd8f272e68bfbd8cfc5a929e451a76 100644 --- a/build/cromite_patches/Allow-playing-audio-in-background.patch +++ b/build/cromite_patches/Allow-playing-audio-in-background.patch @@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html diff --git a/third_party/blink/renderer/platform/media/web_media_player_impl.cc b/third_party/blink/renderer/platform/media/web_media_player_impl.cc --- a/third_party/blink/renderer/platform/media/web_media_player_impl.cc +++ b/third_party/blink/renderer/platform/media/web_media_player_impl.cc -@@ -1330,6 +1330,12 @@ bool WebMediaPlayerImpl::HasAudio() const { +@@ -1309,6 +1309,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( std::optional enabled_track_id) { DCHECK(main_task_runner_->BelongsToCurrentThread()); -@@ -3679,7 +3685,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { +@@ -3645,7 +3651,10 @@ bool WebMediaPlayerImpl::ShouldPausePlaybackWhenHidden() const { const bool preserve_audio = HasUnmutedAudio() || audio_source_provider_->IsAudioBeingCaptured(); // Audio only stream is allowed to play when in background. diff --git a/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch b/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch index caa7d3095f3b5ad7651aec74851e9c1b2956946e..5b7a36babcd38971444b26f2a868ff640ed994e3 100644 --- a/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch +++ b/build/cromite_patches/AudioBuffer-AnalyserNode-fp-mitigations.patch @@ -218,7 +218,7 @@ diff --git a/third_party/blink/renderer/modules/webaudio/realtime_analyser.cc b/ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -594,9 +594,8 @@ +@@ -608,9 +608,8 @@ { // AudioContext.playoutStats interface. // https://chromestatus.com/feature/5172818344148992 diff --git a/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch b/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch index e9eb6ceba1b18917c0ebe08de635ec3f9cce0995..c7d34b52ee610c8c55cf757c8b0dff23fdfb6046 100644 --- a/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch +++ b/build/cromite_patches/Block-qjz9zk-or-trk-requests.patch @@ -49,7 +49,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc --- a/chrome/browser/ui/singleton_tabs.cc +++ b/chrome/browser/ui/singleton_tabs.cc -@@ -136,6 +136,11 @@ int GetIndexOfExistingTab(Browser* browser, const NavigateParams& params) { +@@ -141,6 +141,11 @@ int GetIndexOfExistingTab(BrowserWindowInterface* browser, continue; } @@ -60,7 +60,7 @@ diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_t + GURL rewritten_tab_url = tab_url; content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary( - &rewritten_tab_url, browser->profile()); + &rewritten_tab_url, browser->GetProfile()); diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnibox/browser/autocomplete_input.cc --- a/components/omnibox/browser/autocomplete_input.cc +++ b/components/omnibox/browser/autocomplete_input.cc @@ -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 -@@ -970,6 +970,7 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() +@@ -969,6 +969,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 -@@ -1137,6 +1137,8 @@ component("net") { +@@ -1142,6 +1142,8 @@ component("net") { "url_request/url_request_http_job.cc", "url_request/url_request_http_job.h", "url_request/url_request_interceptor.cc", @@ -211,7 +211,7 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc namespace net { -@@ -653,6 +655,12 @@ URLRequest::URLRequest(base::PassKey pass_key, +@@ -650,6 +652,12 @@ URLRequest::URLRequest(base::PassKey pass_key, // Sanity check out environment. DCHECK(base::SingleThreadTaskRunner::HasCurrentDefault()); @@ -222,8 +222,8 @@ diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc + } + context->url_requests()->insert(this); - net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, [&] { - return NetLogURLRequestConstructorParams(url, priority_, + net_log_.BeginEvent(NetLogEventType::REQUEST_ALIVE, + [&](NetLogCaptureMode capture_mode) { diff --git a/net/url_request/url_request_context_builder.cc b/net/url_request/url_request_context_builder.cc --- a/net/url_request/url_request_context_builder.cc +++ b/net/url_request/url_request_context_builder.cc diff --git a/build/cromite_patches/Bookmarks-select-all-menu-entry.patch b/build/cromite_patches/Bookmarks-select-all-menu-entry.patch index 26714befd1b95e89ac473c2d79d91a292c177053..f3c564d32a2c69c1ca12b305da5c98a793c0acf4 100644 --- a/build/cromite_patches/Bookmarks-select-all-menu-entry.patch +++ b/build/cromite_patches/Bookmarks-select-all-menu-entry.patch @@ -80,7 +80,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows 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 -@@ -249,6 +249,9 @@ CHAR_LIMIT guidelines: +@@ -252,6 +252,9 @@ CHAR_LIMIT guidelines: Sites diff --git a/build/cromite_patches/Bromite-subresource-adblocker.patch b/build/cromite_patches/Bromite-subresource-adblocker.patch index 4197934f98953f91cc3cdf1539f5a4bdfdbdf8a0..f8e1538e91a977dbc38b1e318343b7df561a4366 100644 --- a/build/cromite_patches/Bromite-subresource-adblocker.patch +++ b/build/cromite_patches/Bromite-subresource-adblocker.patch @@ -77,7 +77,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni --- a/chrome/android/chrome_java_resources.gni +++ b/chrome/android/chrome_java_resources.gni -@@ -424,6 +424,7 @@ chrome_java_resources = [ +@@ -432,6 +432,7 @@ chrome_java_resources = [ "java/res/layout/account_divider_preference.xml", "java/res/layout/account_management_account_row.xml", "java/res/layout/app_history_filter.xml", @@ -85,7 +85,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja "java/res/layout/auto_sign_in_first_run_dialog.xml", "java/res/layout/autofill_billing_address_dropdown.xml", "java/res/layout/autofill_card_name_and_number.xml", -@@ -613,6 +614,7 @@ chrome_java_resources = [ +@@ -627,6 +628,7 @@ chrome_java_resources = [ "java/res/xml/account_management_preferences.xml", "java/res/xml/ad_services_config.xml", "java/res/xml/appearance_preferences.xml", @@ -96,7 +96,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni --- a/chrome/android/chrome_java_sources.gni +++ b/chrome/android/chrome_java_sources.gni -@@ -909,6 +909,8 @@ chrome_java_sources = [ +@@ -918,6 +918,8 @@ chrome_java_sources = [ "java/src/org/chromium/chrome/browser/permissions/PermissionBlockedDialog.java", "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java", "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java", @@ -180,7 +180,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 -@@ -311,6 +311,24 @@ found in the LICENSE file. +@@ -312,6 +312,24 @@ found in the LICENSE file. @@ -377,7 +377,7 @@ new file mode 100644 + +import org.chromium.base.supplier.ObservableSupplier; +import org.chromium.base.supplier.ObservableSupplierImpl; -+import org.chromium.base.supplier.Supplier; ++import java.util.function.Supplier; + +import org.chromium.content_public.browser.BrowserContextHandle; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; @@ -442,16 +442,16 @@ 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 -@@ -75,6 +75,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType; - import java.lang.ref.WeakReference; +@@ -88,6 +88,8 @@ import java.util.HashMap; import java.util.Locale; + import java.util.Map; +import org.chromium.chrome.browser.settings.AdBlockEditor; + /** * The Chrome settings activity. * -@@ -698,6 +700,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity +@@ -948,6 +950,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) { return; } @@ -462,7 +462,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin 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 -@@ -17032,6 +17032,16 @@ Please help our engineers fix this problem. Tell us what happened right before y +@@ -17103,6 +17103,16 @@ Please help our engineers fix this problem. Tell us what happened right before y Never show this again. @@ -590,7 +590,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc -@@ -387,6 +387,9 @@ StartupProfileInfo CreateInitialProfile( +@@ -390,6 +390,9 @@ StartupProfileInfo CreateInitialProfile( // missing code in the above test. CHECK(profile_info.profile) << "Cannot get default profile."; @@ -603,7 +603,7 @@ diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_brows diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn --- a/chrome/browser/flags/BUILD.gn +++ b/chrome/browser/flags/BUILD.gn -@@ -8,6 +8,7 @@ import("//third_party/jni_zero/jni_zero.gni") +@@ -9,6 +9,7 @@ import("//third_party/jni_zero/jni_zero.gni") android_library("java") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -611,7 +611,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", -@@ -47,6 +48,7 @@ java_bromite_impl("java_cromite_cached_flags") { +@@ -49,6 +50,7 @@ java_bromite_impl("java_cromite_cached_flags") { generate_jni("jni_headers") { sources = [ "android/java/src/org/chromium/chrome/browser/flags/CromiteNativeUtils.java" ] sources += [ @@ -619,7 +619,7 @@ diff --git a/chrome/browser/flags/BUILD.gn b/chrome/browser/flags/BUILD.gn "android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureMap.java", "android/java/src/org/chromium/chrome/browser/flags/ChromeSessionState.java", ] -@@ -61,6 +63,7 @@ static_library("flags_android") { +@@ -62,6 +64,7 @@ static_library("flags_android") { "android/chrome_session_state.cc", "android/chrome_session_state.h", ] @@ -701,7 +701,7 @@ new file mode 100755 diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc -@@ -717,6 +717,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { +@@ -715,6 +715,10 @@ void SystemNetworkContextManager::RegisterPrefs(PrefRegistrySimple* registry) { DefaultDnsOverHttpsConfigSource::RegisterPrefs(registry); NetworkProcessLaunchWatcher::RegisterPrefs(registry); @@ -732,8 +732,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 -@@ -221,6 +221,20 @@ CHAR_LIMIT guidelines: - %1$s <new>New</new> +@@ -224,6 +224,20 @@ CHAR_LIMIT guidelines: + Search settings + @@ -756,7 +756,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 -@@ -2919,6 +2919,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; +@@ -2931,6 +2931,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled"; inline constexpr char kAudioCaptureAllowedUrls[] = "hardware.audio_capture_allowed_urls"; @@ -771,7 +771,7 @@ diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h diff --git a/components/browser_ui/strings/android/site_settings.grdp b/components/browser_ui/strings/android/site_settings.grdp --- a/components/browser_ui/strings/android/site_settings.grdp +++ b/components/browser_ui/strings/android/site_settings.grdp -@@ -403,6 +403,9 @@ +@@ -406,6 +406,9 @@ This site shows intrusive or misleading ads @@ -1613,7 +1613,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f web_contents_helper_(web_contents_helper) {} ContentSubresourceFilterThrottleManager:: -@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager:: +@@ -629,6 +633,17 @@ ContentSubresourceFilterThrottleManager:: throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(), ad_tagging_state); } diff --git a/build/cromite_patches/Client-hints-overrides.patch b/build/cromite_patches/Client-hints-overrides.patch index be0cb9e32b648ca1427b5114f53c08d4417b322a..164a1641862b1e429c4d50b669cde55699b749cf 100644 --- a/build/cromite_patches/Client-hints-overrides.patch +++ b/build/cromite_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 -@@ -57,6 +57,7 @@ +@@ -58,6 +58,7 @@ #include "third_party/blink/public/common/features.h" #include "third_party/blink/public/common/page/page_zoom.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" -@@ -705,7 +706,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( +@@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } @@ -62,7 +62,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); -@@ -897,10 +899,12 @@ void AddRequestClientHintsHeaders( +@@ -898,10 +900,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -79,7 +79,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); -@@ -988,6 +992,7 @@ ParseAndPersistAcceptCHForNavigation( +@@ -989,6 +993,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { @@ -90,7 +90,7 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc -@@ -1737,6 +1737,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( +@@ -1744,6 +1744,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( return; } @@ -131,7 +131,7 @@ new file mode 100644 diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc -@@ -111,6 +111,7 @@ const size_t kMaxRestarts = 32; +@@ -113,6 +113,7 @@ const size_t kMaxRestarts = 32; // Returns true when Early Hints are allowed on the given protocol. bool EarlyHintsAreAllowedOn(HttpConnectionInfo connection_info) { @@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/navigator_ua_data.idl 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 -@@ -227,6 +227,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, +@@ -231,6 +231,8 @@ bool ShouldSendClientHint(const network::PermissionsPolicy& policy, bool is_1p_origin, network::mojom::blink::WebClientHintsType type, const ClientHintsPreferences& hints_preferences) { @@ -243,7 +243,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi // For subresource requests, sending the hint in the fetch request based on // the permissions policy. if (!policy.IsFeatureEnabledForOrigin( -@@ -630,7 +632,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( +@@ -713,7 +715,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available @@ -255,7 +255,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5 -@@ -551,6 +551,11 @@ +@@ -569,6 +569,11 @@ name: "AriaNotifyV2", status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"}, }, @@ -267,7 +267,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 { name: "AriaRowColIndexText", status: "stable", -@@ -946,8 +951,7 @@ +@@ -976,8 +981,7 @@ // Allows top-level sites to restrict collection of high-entropy UA client // hints (from 3Ps, or itself) via the getHighEntropyValues API. // crbug.com/385161047 diff --git a/build/cromite_patches/Content-settings-infrastructure.patch b/build/cromite_patches/Content-settings-infrastructure.patch index 118842ed4a2781eeb406a162d8e84ecce09dd42a..0514c821e38d5bce129325c41a1928498080cf6c 100644 --- a/build/cromite_patches/Content-settings-infrastructure.patch +++ b/build/cromite_patches/Content-settings-infrastructure.patch @@ -14,8 +14,8 @@ Require: bromite-build-utils.patch .../ChromeSiteSettingsDelegate.java | 17 +- ...page_specific_content_settings_delegate.cc | 2 +- chrome/browser/resources/settings/BUILD.gn | 2 +- - .../settings/privacy_page/privacy_page.html | 1 + - .../settings/privacy_page/privacy_page.ts | 77 +++- + .../privacy_page/privacy_page_index.html | 1 + + .../privacy_page/privacy_page_index.ts | 82 +++- chrome/browser/resources/settings/route.ts | 2 + ...settings_category_default_radio_group.html | 12 + .../settings_category_default_radio_group.ts | 23 +- @@ -47,7 +47,7 @@ Require: bromite-build-utils.patch ...tomTriStateSiteSettingsPreferenceImpl.java | 24 + .../ContentSettingsResources.java | 39 +- .../site_settings/SingleCategorySettings.java | 57 ++- - .../site_settings/SingleWebsiteSettings.java | 53 ++- + .../site_settings/SingleWebsiteSettings.java | 54 ++- .../site_settings/SiteSettings.java | 33 +- .../site_settings/SiteSettingsCategory.java | 18 +- .../site_settings/SiteSettingsDelegate.java | 2 + @@ -74,7 +74,7 @@ Require: bromite-build-utils.patch .../core/common/content_settings.mojom | 6 + .../common/content_settings_mojom_traits.cc | 12 +- .../common/content_settings_mojom_traits.h | 24 + - .../core/common/content_settings_types.mojom | 1 + + .../core/common/content_settings_types.mojom | 2 + .../renderer/content_settings_agent_impl.cc | 74 ++++ .../renderer/content_settings_agent_impl.h | 9 + .../PageInfoPermissionsController.java | 9 + @@ -85,7 +85,7 @@ Require: bromite-build-utils.patch .../platform/web_content_settings_client.h | 13 + .../execution_context/execution_context.cc | 16 + .../execution_context/execution_context.h | 5 + - 74 files changed, 1965 insertions(+), 108 deletions(-) + 74 files changed, 1972 insertions(+), 108 deletions(-) create mode 100644 components/browser_ui/settings/android/java/res/layout/preference_spinner_single_widget.xml create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSetting.java create mode 100644 components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/BromiteCustomContentSettingImpl.java @@ -99,7 +99,7 @@ Require: bromite-build-utils.patch diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -70,6 +70,10 @@ import org.chromium.url.GURL; +@@ -69,6 +69,10 @@ import org.chromium.url.GURL; import java.util.List; import java.util.Set; @@ -110,7 +110,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C /** A SiteSettingsDelegate instance that contains Chrome-specific Site Settings logic. */ @NullMarked public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { -@@ -243,7 +247,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -242,7 +246,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { @Override public boolean isHelpAndFeedbackEnabled() { @@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/C } @Override -@@ -381,6 +385,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -380,6 +384,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { return mPrivacySandboxBridge.getRelatedWebsiteSetOwner(memberOrigin); } @@ -152,7 +152,7 @@ diff --git a/chrome/browser/content_settings/page_specific_content_settings_dele diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resources/settings/BUILD.gn --- a/chrome/browser/resources/settings/BUILD.gn +++ b/chrome/browser/resources/settings/BUILD.gn -@@ -319,6 +319,7 @@ build_webui("build") { +@@ -353,6 +353,7 @@ build_webui("build") { "privacy_sandbox/privacy_sandbox_browser_proxy.ts", "relaunch_mixin.ts", "reset_page/reset_browser_proxy.ts", @@ -160,7 +160,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "route.ts", "router.ts", "safety_hub/safety_hub_browser_proxy.ts", -@@ -333,7 +334,6 @@ build_webui("build") { +@@ -366,7 +367,6 @@ build_webui("build") { "site_settings/constants.ts", "site_settings/site_settings_mixin.ts", "site_settings/site_settings_prefs_browser_proxy.ts", @@ -168,34 +168,35 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc "site_settings/website_usage_browser_proxy.ts", "time.ts", "tooltip_mixin.ts", -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 -@@ -982,4 +982,5 @@ - - - -+
- -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 -@@ -54,6 +54,7 @@ import {SiteSettingsPrefsBrowserProxyImpl} from '../site_settings/site_settings_ - - import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_availability_mixin.js'; - import {getTemplate} from './privacy_page.html.js'; -+import { SettingsCategoryDefaultRadioGroupElement } from '../site_settings/settings_category_default_radio_group.js'; - - interface BlockAutoplayStatus { - enabled: boolean; -@@ -77,8 +78,82 @@ export class SettingsPrivacyPageElement extends SettingsPrivacyPageElementBase { - return 'settings-privacy-page'; +diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.html ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.html +@@ -572,4 +572,5 @@ + + + ++
+ +diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts +--- a/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts ++++ b/chrome/browser/resources/settings/privacy_page/privacy_page_index.ts +@@ -29,6 +29,8 @@ import {PrivacyGuideAvailabilityMixin} from './privacy_guide/privacy_guide_avail + import type {PrivacyGuideBrowserProxy} from './privacy_guide/privacy_guide_browser_proxy.js'; + import {MAX_PRIVACY_GUIDE_PROMO_IMPRESSION, PrivacyGuideBrowserProxyImpl} from './privacy_guide/privacy_guide_browser_proxy.js'; + import {getTemplate} from './privacy_page_index.html.js'; ++import {ContentSettingsTypes} from '../site_settings/constants.js'; ++import {SettingsCategoryDefaultRadioGroupElement} from '../site_settings/settings_category_default_radio_group.js'; + + // clang-format off + // +@@ -53,8 +55,86 @@ export class SettingsPrivacyPageIndexElement extends + return 'settings-privacy-page-index'; } + static getSettingTemplate(template: HTMLTemplateElement, + name: string) : SettingsCategoryDefaultRadioGroupElement | undefined { + let value : SettingsCategoryDefaultRadioGroupElement | undefined = undefined; -+ let page : any = template.content.querySelector("settings-animated-pages"); ++ let page : any = template.content.querySelector("cr-view-manager"); + + page.querySelectorAll("template")!.forEach( + (subTemplate: HTMLTemplateElement) => { @@ -234,9 +235,14 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch + subpage.setAttribute("page-title", loadTimeData.getString(`brSiteSettings${name}`)); + subpage.setAttribute("search-title", loadTimeData.getString("siteSettingsAllSitesSearch")); + subpage.setAttribute("search-term", "{{searchFilter_}}"); ++ subpage.setAttribute("slot", "view"); ++ subpage.setAttribute("data-parent-view-id", "privacy"); ++ subpage.setAttribute("id", `siteSettings${name}`); ++ subpage.setAttribute("route-path", `/content/${tag_name}`); + + let divElement = document.createElement("div"); + divElement.setAttribute("class", "content-settings-header secondary"); ++ divElement.setAttribute("style", "padding: 0 var(--cr-section-padding)"); + divElement.innerText = loadTimeData.getString(`brSiteSettings${name}Description`); + subpage.appendChild(divElement); + @@ -261,8 +267,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch + + let tag = document.createElement("template"); + tag.setAttribute("is", "dom-if"); -+ tag.setAttribute("route-path", `/content/${tag_name}`); -+ tag.setAttribute("no-search", ""); ++ tag.setAttribute("if", `[[renderView_(routes_.SITE_SETTINGS_${name.toUpperCase()}, currentRoute, inSearchMode)]]`); + tag.content.appendChild(subpage); + + content.parentElement!.insertBefore(tag, content); @@ -283,9 +288,9 @@ diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resourc /** * Add all of the child routes that originate from the privacy route, -@@ -175,6 +176,7 @@ function addPrivacyChildRoutes(r: Partial) { +@@ -155,6 +156,7 @@ function addPrivacyChildRoutes(r: Partial) { + r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS = r.SITE_SETTINGS.createChild('localNetworkAccess'); - r.SITE_SETTINGS_LOCAL_NETWORK_ACCESS.hasMigratedToPlugin = true; } + setupContentSettingsRoutes(r); } @@ -390,16 +395,17 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html --- a/chrome/browser/resources/settings/site_settings/site_details.html +++ b/chrome/browser/resources/settings/site_settings/site_details.html -@@ -331,4 +331,5 @@ +@@ -332,5 +332,6 @@ label="$i18n{siteSettingsLocalNetworkAccess}"> +
+ diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts --- a/chrome/browser/resources/settings/site_settings/site_details.ts +++ b/chrome/browser/resources/settings/site_settings/site_details.ts -@@ -62,8 +62,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { +@@ -69,8 +69,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase { return 'site-details'; } @@ -675,7 +681,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_settings_util. diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.ts -@@ -50,7 +50,7 @@ function getCategoryItemMap(): Map { +@@ -51,7 +51,7 @@ function getCategoryItemMap(): Map { } // The following list is ordered alphabetically by |id|. The order in which // these appear in the UI is determined elsewhere in this file. @@ -684,7 +690,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ { route: routes.SITE_SETTINGS_ADS, id: Id.ADS, -@@ -451,10 +451,36 @@ function getCategoryItemMap(): Map { +@@ -452,10 +452,36 @@ function getCategoryItemMap(): Map { icon: 'privacy:cookie', }, ]; @@ -721,7 +727,7 @@ diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_ function buildItemListFromIds(orderedIdList: ContentSettingsTypes[]): CategoryListItem[] { const map = getCategoryItemMap(); -@@ -545,7 +571,7 @@ export class SettingsSiteSettingsPageElement extends +@@ -546,7 +572,7 @@ export class SettingsSiteSettingsPageElement extends Id.IMAGES, Id.POPUPS, ]), @@ -733,7 +739,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 -@@ -1542,6 +1542,7 @@ static_library("ui") { +@@ -1581,6 +1581,7 @@ static_library("ui") { "//components/commerce/core/mojom:mojo_bindings", "//components/commerce/core/webui", "//components/endpoint_fetcher", @@ -741,7 +747,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn "//components/enterprise/common:files_scan_data", "//components/feedback/proto", "//components/headless/console_message_logger", -@@ -4672,6 +4673,7 @@ static_library("ui") { +@@ -4719,6 +4720,7 @@ static_library("ui") { "//components/power_bookmarks/core", "//components/power_bookmarks/storage", "//components/prefs", @@ -912,7 +918,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 -@@ -39,6 +39,34 @@ +@@ -40,6 +40,34 @@ #include "ui/views/controls/styled_label.h" #include "ui/views/style/typography.h" #include "ui/views/view_class_properties.h" @@ -947,7 +953,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c namespace { -@@ -73,17 +101,12 @@ PermissionToggleRowView::PermissionToggleRowView( +@@ -74,17 +102,12 @@ PermissionToggleRowView::PermissionToggleRowView( navigation_handler_(navigation_handler) { SetUseDefaultFillLayout(true); row_view_ = AddChildView(std::make_unique()); @@ -966,7 +972,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) { -@@ -181,6 +204,91 @@ void PermissionToggleRowView::UpdatePermission( +@@ -182,6 +205,91 @@ void PermissionToggleRowView::UpdatePermission( UpdateUiOnPermissionChanged(); } @@ -1058,7 +1064,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c void PermissionToggleRowView::OnToggleButtonPressed() { PageInfoUI::ToggleBetweenAllowAndBlock(permission_); PermissionChanged(); -@@ -189,27 +297,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { +@@ -190,27 +298,19 @@ void PermissionToggleRowView::OnToggleButtonPressed() { void PermissionToggleRowView::AddToggleButton( const std::u16string& toggle_accessible_name, int icon_label_spacing) { @@ -1093,7 +1099,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } void PermissionToggleRowView::InitForUserSource( -@@ -251,12 +351,6 @@ void PermissionToggleRowView::InitForUserSource( +@@ -255,12 +355,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)); @@ -1106,7 +1112,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c } } } -@@ -282,6 +376,15 @@ void PermissionToggleRowView::InitForManagedSource( +@@ -286,6 +380,15 @@ void PermissionToggleRowView::InitForManagedSource( } void PermissionToggleRowView::UpdateUiOnPermissionChanged() { @@ -1122,7 +1128,7 @@ diff --git a/chrome/browser/ui/views/page_info/permission_toggle_row_view.cc b/c if (blocked_on_system_level_label_) { if (!permission_.setting) { permission_blocked_on_system_level_ = false; -@@ -326,6 +429,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { +@@ -330,6 +433,37 @@ void PermissionToggleRowView::UpdateUiOnPermissionChanged() { } } } @@ -1230,7 +1236,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" -@@ -3855,6 +3859,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, +@@ -3885,6 +3889,56 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source, policy_indicator::AddLocalizedStrings(html_source); AddSecurityKeysStrings(html_source); @@ -1290,7 +1296,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/browser/ui/webui/settings/site_settings_helper.cc --- a/chrome/browser/ui/webui/settings/site_settings_helper.cc +++ b/chrome/browser/ui/webui/settings/site_settings_helper.cc -@@ -47,6 +47,8 @@ +@@ -46,6 +46,8 @@ #include "chrome/grit/generated_resources.h" #include "components/content_settings/core/browser/content_settings_provider.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -1299,8 +1305,8 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_pattern.h" #include "components/content_settings/core/common/content_settings_types.h" -@@ -261,13 +263,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< - {ContentSettingsType::DEVICE_ATTRIBUTES, nullptr}, +@@ -263,13 +265,13 @@ constexpr auto kContentSettingsTypeGroupNames = std::to_array< + {ContentSettingsType::SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, nullptr}, }); -static_assert( @@ -1320,7 +1326,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b struct SiteSettingSourceStringMapping { SiteSettingSource source; -@@ -529,6 +531,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { +@@ -531,6 +533,13 @@ bool HasRegisteredGroupName(ContentSettingsType type) { return true; } } @@ -1334,7 +1340,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b return false; } -@@ -542,11 +551,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { +@@ -544,11 +553,24 @@ ContentSettingsType ContentSettingsTypeFromGroupName(std::string_view name) { return entry.type; } } @@ -1360,7 +1366,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b for (const auto& entry : kContentSettingsTypeGroupNames) { if (type == entry.type) { // Content setting types that aren't represented in the settings UI -@@ -561,7 +583,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { +@@ -563,7 +585,6 @@ std::string_view ContentSettingsTypeToGroupName(ContentSettingsType type) { return entry.name ? entry.name : std::string_view(); } } @@ -1368,7 +1374,7 @@ diff --git a/chrome/browser/ui/webui/settings/site_settings_helper.cc b/chrome/b NOTREACHED() << static_cast(type) << " is not a recognized content settings type."; } -@@ -668,6 +689,13 @@ std::vector GetVisiblePermissionCategories( +@@ -670,6 +691,13 @@ std::vector GetVisiblePermissionCategories( base_types->push_back(ContentSettingsType::LOCAL_NETWORK_ACCESS); } @@ -1385,7 +1391,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 -@@ -92,6 +92,7 @@ android_resources("java_resources") { +@@ -94,6 +94,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", @@ -1548,7 +1554,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/browser_ui/site_settings/android/BUILD.gn --- a/components/browser_ui/site_settings/android/BUILD.gn +++ b/components/browser_ui/site_settings/android/BUILD.gn -@@ -153,6 +153,23 @@ android_library("java") { +@@ -156,6 +156,23 @@ android_library("java") { ":site_settings_jni_headers", "//components/content_settings/android:java_pref_names_srcjar", ] @@ -1572,7 +1578,7 @@ diff --git a/components/browser_ui/site_settings/android/BUILD.gn b/components/b } android_library("javatests") { -@@ -202,6 +219,7 @@ robolectric_library("junit") { +@@ -205,6 +222,7 @@ robolectric_library("junit") { } android_resources("java_resources") { @@ -1598,7 +1604,7 @@ diff --git a/components/browser_ui/site_settings/android/java/res/xml/site_setti diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/AllSiteSettings.java -@@ -389,7 +389,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -390,7 +390,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -1608,7 +1614,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -401,6 +402,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment +@@ -402,6 +403,8 @@ public class AllSiteSettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2306,7 +2312,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 -@@ -349,6 +349,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -355,6 +355,10 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { @ContentSetting Integer contentSetting = website.site().getContentSetting(browserContextHandle, type); @@ -2317,7 +2323,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (contentSetting != null) { return ContentSetting.BLOCK == contentSetting; } -@@ -540,6 +544,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -546,6 +550,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? new HashSet<>(getArguments().getStringArrayList(EXTRA_SELECTED_DOMAINS)) : null; @@ -2325,7 +2331,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"); -@@ -575,7 +580,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -581,7 +586,8 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment if (queryHasChanged) getInfoForOrigins(); }); @@ -2335,7 +2341,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c MenuItem help = menu.add( Menu.NONE, -@@ -587,12 +593,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -593,12 +599,20 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getResources(), R.drawable.ic_help_and_feedback, getContext().getTheme())); @@ -2356,7 +2362,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()); -@@ -671,6 +685,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -673,6 +687,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment public boolean onPreferenceChange(Preference preference, Object newValue) { BrowserContextHandle browserContextHandle = getBrowserContextHandle(); PrefService prefService = UserPrefs.get(browserContextHandle); @@ -2368,7 +2374,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c if (BINARY_RADIO_BUTTON_KEY.equals(preference.getKey()) || BINARY_TOGGLE_KEY.equals(preference.getKey())) { assert !mCategory.isManaged(); -@@ -845,7 +864,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -847,7 +866,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment ? R.string.website_settings_add_site_description_javascript_optimizer_block : R.string.website_settings_add_site_description_javascript_optimizer_allow; } @@ -2377,7 +2383,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // OnPreferenceClickListener: -@@ -963,17 +982,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -965,17 +984,15 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment break; } @@ -2398,7 +2404,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c String exceptionDialogMessage = exceptionDialogMessageResourceId != 0 ? getString(exceptionDialogMessageResourceId) -@@ -984,7 +1001,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -986,7 +1003,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment getStyledContext(), ADD_EXCEPTION_KEY, exceptionDialogMessage, @@ -2407,7 +2413,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c mCategory, this)); -@@ -1168,8 +1185,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1170,8 +1187,16 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment private boolean isBlocked() { switch (mGlobalToggleLayout) { case GlobalToggleLayout.TRI_STATE_TOGGLE: @@ -2424,7 +2430,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c return (triStateToggle.getCheckedSetting() == ContentSetting.BLOCK); case GlobalToggleLayout.TRI_STATE_COOKIE_TOGGLE: TriStateCookieSettingsPreference triStateCookieToggle = -@@ -1322,7 +1347,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1324,7 +1349,11 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else if (res_id != -1) { infoText.setSummary(res_id); } else { @@ -2437,7 +2443,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } // Hide the anti-abuse text preferences, as needed. -@@ -1361,6 +1390,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1363,6 +1392,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment } else { screen.removePreference(mLocationTriStatePref); } @@ -2445,7 +2451,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c maybeShowReasonToggleDisabled(screen); -@@ -1569,6 +1599,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment +@@ -1571,6 +1601,7 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment iconIds = ContentSettingsResources.getTriStateSettingIconIDs(contentType); } triStateToggle.initialize( @@ -2453,8 +2459,8 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setting, descriptionIds, iconIds, -@@ -1743,6 +1774,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment - value = site.getContentSetting(browserContextHandle, contentSettingsType); +@@ -1859,6 +1890,14 @@ public class SingleCategorySettings extends BaseSiteSettingsFragment + selectedButton.setChecked(true); } + AlertDialog.Builder alertDialogBuilder = @@ -2471,7 +2477,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 -@@ -56,6 +56,7 @@ import java.util.Collection; +@@ -57,6 +57,7 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -2479,7 +2485,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. */ @NullMarked -@@ -196,7 +197,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -200,7 +201,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment case ContentSettingsType.WINDOW_MANAGEMENT: return "window_management_permission_list"; default: @@ -2488,36 +2494,37 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } } -@@ -596,14 +597,27 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -623,7 +624,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment private void setupContentSettingsPreferences() { Preference permissionsHeaderPref = findPreference(PREF_PERMISSIONS_HEADER); mMaxPermissionOrder = permissionsHeaderPref.getOrder(); - for (@ContentSettingsType.EnumType int type : SiteSettingsUtil.SETTINGS_ORDER) { + List order = BromiteCustomContentSettingImpl.getSettingsOrder(); + for (@ContentSettingsType.EnumType int type : order) { -+ @ContentSetting @Nullable Integer value = -+ mSite.getContentSetting( -+ getSiteSettingsDelegate().getBrowserContextHandle(), type); -+ if (value == null) { -+ value = WebsitePreferenceBridge.getDefaultContentSetting( -+ getSiteSettingsDelegate().getBrowserContextHandle(), type); -+ } - Preference preference = -+ BromiteCustomContentSettingImpl -+ .createWebSitePreference(type, getStyledContext(), value); -+ if (preference == null) { -+ preference = - (isOneTime(type) - && PermissionsAndroidFeatureMap.isEnabled( - PermissionsAndroidFeatureList - .APPROXIMATE_GEOLOCATION_PERMISSION)) - ? new ChromeImageViewPreference(getStyledContext()) - : new ChromeSwitchPreference(getStyledContext()); -+ } + Preference preference = getPermissionPreference(type); preference.setKey(getPreferenceKey(type)); - if (type == ContentSettingsType.ADS) { -@@ -1199,7 +1213,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -655,6 +657,19 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment + } + + private Preference getPermissionPreference(@ContentSettingsType.EnumType int type) { ++ @ContentSetting @Nullable Integer value = ++ mSite.getContentSetting( ++ getSiteSettingsDelegate().getBrowserContextHandle(), type); ++ if (value == null) { ++ value = WebsitePreferenceBridge.getDefaultContentSetting( ++ getSiteSettingsDelegate().getBrowserContextHandle(), type); ++ } ++ Preference preference = ++ BromiteCustomContentSettingImpl ++ .createWebSitePreference(type, getStyledContext(), value); ++ if (preference != null) ++ return preference; ++ + boolean isOneTime = isOneTime(type); + if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS && !isOneTime) { + return createTwoActionLocationSwitchPreference(); +@@ -1254,7 +1269,16 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment @ContentSetting @Nullable Integer value, boolean isEmbargoed, boolean isOneTime) { @@ -2535,7 +2542,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c setUpPreferenceCommon(preference, value); preference.setOnPreferenceChangeListener(this); @ContentSettingsType.EnumType -@@ -1211,7 +1234,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1266,7 +1290,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment isEmbargoed ? getString(R.string.automatically_blocked) : getString( @@ -2544,7 +2551,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c value, isOneTime, isApproximateGeolocation))); if (preference instanceof ChromeImageViewPreference) { ChromeImageViewPreference oneTimePreference = (ChromeImageViewPreference) preference; -@@ -1237,10 +1260,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1292,10 +1316,14 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment oneTimePreference.setBackgroundColor(mHighlightColor); } } else { @@ -2563,7 +2570,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c AppCompatResources.getColorStateList(getContext(), mHighlightColor) .getDefaultColor()); } -@@ -1532,7 +1559,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1587,7 +1615,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment if (newValue instanceof Boolean) { permission = (Boolean) newValue ? getEnabledValue(type) : ContentSetting.BLOCK; } else { @@ -2578,7 +2585,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c } if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) { -@@ -1553,7 +1586,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment +@@ -1608,7 +1642,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment // info. preference.setSummary( getString( @@ -2802,7 +2809,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/WebsitePermissionsFetcher.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java --- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java +++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePermissionsFetcher.java -@@ -128,7 +128,7 @@ public class WebsitePermissionsFetcher { +@@ -129,7 +129,7 @@ public class WebsitePermissionsFetcher { } break; default: @@ -2952,7 +2959,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry. diff --git a/components/content_settings/core/browser/content_settings_uma_util.cc b/components/content_settings/core/browser/content_settings_uma_util.cc --- a/components/content_settings/core/browser/content_settings_uma_util.cc +++ b/components/content_settings/core/browser/content_settings_uma_util.cc -@@ -224,11 +224,7 @@ void RecordContentSettingsHistogram(const std::string& name, +@@ -226,11 +226,7 @@ void RecordContentSettingsHistogram(const std::string& name, } int ContentSettingTypeToHistogramValue(ContentSettingsType content_setting) { @@ -3288,10 +3295,11 @@ 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 -@@ -498,5 +498,6 @@ enum ContentSettingsType { - // Setting for enabling the Device Attributes API. Spec link: - // https://wicg.github.io/WebApiDevice/device_attributes/ - DEVICE_ATTRIBUTES, +@@ -508,5 +508,7 @@ enum ContentSettingsType { + // when suspicious warning is shown. If the user has selected this, the + // notification permission will not be revoked based on suspicious verdict. + SUSPICIOUS_NOTIFICATION_SHOW_ORIGINAL, ++ +#include "components/content_settings/core/common/bromite_content_settings.inc" }; // LINT.ThenChange(//components/content_settings/core/browser/content_settings_uma_util.cc:kHistogramValue) @@ -3477,7 +3485,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" -@@ -1367,6 +1368,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, +@@ -1377,6 +1378,14 @@ void PageInfo::PopulatePermissionInfo(PermissionInfo& permission_info, // via `HasContentSettingChangedViaPageInfo(type)`. bool PageInfo::ShouldShowPermission( const PageInfo::PermissionInfo& info) const { @@ -3492,7 +3500,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) { -@@ -1494,7 +1503,19 @@ void PageInfo::PresentSitePermissions() { +@@ -1504,7 +1513,19 @@ void PageInfo::PresentSitePermissions() { HostContentSettingsMap* content_settings = GetContentSettings(); DCHECK(web_contents_); @@ -3524,7 +3532,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in #include "components/page_info/core/features.h" #include "components/page_info/page_info.h" #include "components/page_info/page_info_ui.h" -@@ -252,6 +253,13 @@ void CreateOppositeToDefaultSiteException( +@@ -251,6 +252,13 @@ void CreateOppositeToDefaultSiteException( std::u16string GetPermissionAskStateString(ContentSettingsType type) { int message_id = kInvalidResourceID; @@ -3538,7 +3546,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in switch (type) { case ContentSettingsType::GEOLOCATION: message_id = IDS_PAGE_INFO_STATE_TEXT_LOCATION_ASK; -@@ -550,6 +558,12 @@ PageInfoUI::~PageInfoUI() = default; +@@ -549,6 +557,12 @@ PageInfoUI::~PageInfoUI() = default; // static std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { @@ -3551,7 +3559,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id); -@@ -560,6 +574,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { +@@ -559,6 +573,12 @@ std::u16string PageInfoUI::PermissionTypeToUIString(ContentSettingsType type) { // static std::u16string PageInfoUI::PermissionTypeToUIStringMidSentence( ContentSettingsType type) { @@ -3564,7 +3572,7 @@ diff --git a/components/page_info/page_info_ui.cc b/components/page_info/page_in for (const PermissionUIInfo& info : GetContentSettingsUIInfo()) { if (info.type == type) return l10n_util::GetStringUTF16(info.string_id_mid_sentence); -@@ -948,6 +968,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { +@@ -947,6 +967,11 @@ bool PageInfoUI::ContentSettingsTypeInPageInfo(ContentSettingsType type) { if (info.type == type) return true; } @@ -3645,7 +3653,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 -@@ -42,6 +42,7 @@ +@@ -43,6 +43,7 @@ #include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink-forward.h" #include "third_party/blink/public/mojom/permissions_policy/policy_disposition.mojom-blink-forward.h" #include "third_party/blink/public/mojom/v8_cache_options.mojom-blink-forward.h" @@ -3653,7 +3661,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" -@@ -101,6 +102,10 @@ class SecurityOrigin; +@@ -102,6 +103,10 @@ class SecurityOrigin; class ScriptState; class ScriptWrappable; class TrustedTypePolicyFactory; diff --git a/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch index ba5f0bf304a21933af7483ee844eed55da37aab9..1dfde8d4ff213cd21b4b09407b9a665b27cbad6f 100644 --- a/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch +++ b/build/cromite_patches/Dictionary-suggestions-for-the-Omnibox.patch @@ -28,7 +28,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 -@@ -322,8 +322,17 @@ class LocationBarMediator +@@ -331,8 +331,17 @@ class LocationBarMediator if (!mUrlFocusedWithPastedText && !shouldRetainOmniboxOnFocus && mLocationBarLayout.shouldClearTextOnFocus()) { @@ -48,7 +48,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow } else if (shouldRetainOmniboxOnFocus) { mUrlCoordinator.setSelectAllOnFocus(true); } -@@ -1642,7 +1651,6 @@ class LocationBarMediator +@@ -1666,7 +1675,6 @@ class LocationBarMediator mUrlCoordinator.setKeyboardVisibility(true, false); } @@ -67,7 +67,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow import android.os.SystemClock; import android.text.Editable; import android.text.InputType; -@@ -115,6 +116,7 @@ public class UrlBar extends AutocompleteEditText { +@@ -114,6 +115,7 @@ public class UrlBar extends AutocompleteEditText { private boolean mAllowFocus = true; private boolean mShouldSendTypingStartedEvent; @@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow private boolean mPendingScroll; private boolean mIsInCct; -@@ -339,6 +341,28 @@ public class UrlBar extends AutocompleteEditText { +@@ -345,6 +347,28 @@ public class UrlBar extends AutocompleteEditText { fixupTextDirection(); mShouldSendTypingStartedEvent = focused; diff --git a/build/cromite_patches/Disable-Accessibility-service-by-default.patch b/build/cromite_patches/Disable-Accessibility-service-by-default.patch index a090455219da8e98f922f0a7b6d56e9ab88dd7f9..12a928160919f7e5fb89a123fa1aa520581481f5 100644 --- a/build/cromite_patches/Disable-Accessibility-service-by-default.patch +++ b/build/cromite_patches/Disable-Accessibility-service-by-default.patch @@ -27,22 +27,22 @@ new file mode 100644 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 -@@ -8,6 +8,11 @@ found in the LICENSE file. - +@@ -11,6 +11,11 @@ found in the LICENSE file. + android:key="zoom_info" + android:title="@string/zoom_info_preference_title"/> + + - + (), this); + std::make_unique(), this); @@ -183,7 +183,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket Disconnect(); } -@@ -703,6 +729,8 @@ int SSLClientSocketImpl::Init() { +@@ -709,6 +735,8 @@ int SSLClientSocketImpl::Init() { } if (session) SSL_set_session(ssl_.get(), session.get()); @@ -192,7 +192,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket } transport_adapter_ = std::make_unique( -@@ -972,6 +1000,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { +@@ -986,6 +1014,35 @@ int SSLClientSocketImpl::DoHandshakeComplete(int result) { : SSLHandshakeDetails::kTLS13Full; } } @@ -228,7 +228,7 @@ diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket UMA_HISTOGRAM_ENUMERATION("Net.SSLHandshakeDetails", details); // Measure TLS connections that implement the renegotiation_info and EMS -@@ -1611,6 +1668,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { +@@ -1625,6 +1682,8 @@ bool SSLClientSocketImpl::IsRenegotiationAllowed() const { } bool SSLClientSocketImpl::IsCachingEnabled() const { diff --git a/build/cromite_patches/Disable-all-predictors-code.patch b/build/cromite_patches/Disable-all-predictors-code.patch index 90a49c18694686cfec38e3a86e40752b059d2041..ac10b20cb86f1b4c9f61fb085a16a3bf9ed193d3 100644 --- a/build/cromite_patches/Disable-all-predictors-code.patch +++ b/build/cromite_patches/Disable-all-predictors-code.patch @@ -5,74 +5,76 @@ Subject: Disable all predictors code Original License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- - chrome/browser/BUILD.gn | 4 +--- - .../background_download_service_factory.cc | 2 +- - .../preloading_model_keyed_service.cc | 3 +++ - .../preloading_model_keyed_service_factory.cc | 4 +--- - .../optimization_guide/chrome_hints_manager.cc | 1 + - .../model_validator_keyed_service.cc | 6 +++++- - .../optimization_guide_keyed_service.cc | 1 - - chrome/browser/permissions/BUILD.gn | 2 -- - .../permissions/chrome_permissions_client.cc | 2 -- - .../passage_embedder_delegate.cc | 2 ++ - .../prediction_model_handler_provider.cc | 9 ++++++--- - .../prediction_model_handler_provider.h | 2 ++ - .../predictors/autocomplete_action_predictor.cc | 2 ++ - .../predictors/loading_predictor_config.cc | 4 ++-- - chrome/browser/predictors/predictors_features.cc | 3 +-- - .../search_prefetch/field_trial_settings.cc | 4 ++++ - .../search_prefetch_url_loader_interceptor.cc | 1 + - .../chrome_browser_main_extra_parts_profiles.cc | 1 - - chrome/browser/safe_browsing/BUILD.gn | 1 - - ...fication_content_detection_service_factory.cc | 6 ++++++ - .../preloading/AndroidPrerenderManager.java | 1 + - .../ui/autofill/chrome_autofill_client.cc | 15 --------------- - chrome/browser/ui/tab_helpers.cc | 1 - - .../autofill_ml_internals_page_handler.cc | 2 ++ - .../autofill_ml_internals_page_handler.h | 3 +++ - .../autofill_ml_internals_ui.cc | 3 +++ - .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- - .../read_anything/read_aloud_app_model.h | 9 ++++++++- - .../read_anything_app_controller.cc | 10 ++++++++++ - .../read_anything/read_anything_app_controller.h | 4 ++++ - chrome/utility/BUILD.gn | 2 +- - chrome/utility/services.cc | 8 -------- - components/BUILD.gn | 2 +- - .../core/browser/foundations/autofill_manager.cc | 2 ++ - .../core/browser/foundations/autofill_manager.h | 3 +++ - .../autofill_optimization_guide_decider.cc | 5 +++-- - .../field_classification_model_handler.cc | 12 ++++++++---- - .../field_classification_model_handler.h | 10 ++++++++-- - .../browser/aim_eligibility_service_features.cc | 1 + - .../omnibox/browser/autocomplete_controller.cc | 4 ++++ - .../omnibox/browser/base_search_provider.cc | 4 ++-- - .../prediction_model_download_manager.cc | 6 ++++-- - .../delivery/prediction_model_fetcher_impl.cc | 1 + - .../core/hints/hints_fetcher.cc | 1 + - .../core/hints/hints_manager.cc | 2 ++ - .../core/optimization_guide_features.cc | 12 ++++++------ - components/optimization_guide/features.gni | 3 +-- - .../core/page_content_annotations_features.cc | 4 ++++ - .../page_content_annotations_model_manager.cc | 1 + - .../notification_content_detection/BUILD.gn | 7 +++++++ - .../service_worker_main_resource_loader.cc | 1 + - .../Disable-all-predictors-code.inc | 2 ++ - .../Disable-all-predictors-code.inc | 1 + - .../Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 3 +++ - .../features_cc/Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 1 + - .../features_cc/Disable-all-predictors-code.inc | 2 ++ - services/on_device_model/ml/BUILD.gn | 2 +- - services/on_device_model/ml/ts_model.cc | 4 ++-- - services/on_device_model/safety/BUILD.gn | 2 +- - services/webnn/BUILD.gn | 2 +- - services/webnn/features.gni | 2 +- - services/webnn/webnn_context_provider_impl.cc | 16 +--------------- - .../core/html/parser/html_document_parser.cc | 1 + - .../document_speculation_rules.cc | 1 + - .../platform/runtime_enabled_features.json5 | 2 +- - 67 files changed, 165 insertions(+), 93 deletions(-) + chrome/browser/BUILD.gn | 4 +--- + .../background_download_service_factory.cc | 2 +- + .../preloading_model_keyed_service.cc | 3 +++ + .../preloading_model_keyed_service_factory.cc | 4 +--- + .../optimization_guide/chrome_hints_manager.cc | 1 + + .../model_validator_keyed_service.cc | 6 +++++- + .../optimization_guide_keyed_service.cc | 1 - + chrome/browser/permissions/BUILD.gn | 2 -- + .../permissions/chrome_permissions_client.cc | 2 -- + .../passage_embedder_delegate.cc | 2 ++ + .../permissions_ai_ui_selector.cc | 1 + + .../prediction_model_handler_provider.cc | 9 ++++++--- + .../prediction_model_handler_provider.h | 2 ++ + .../quiet_notification_permission_ui_state.cc | 4 ++-- + .../predictors/autocomplete_action_predictor.cc | 2 ++ + .../predictors/loading_predictor_config.cc | 4 ++-- + .../browser/predictors/predictors_features.cc | 3 +-- + .../search_prefetch/field_trial_settings.cc | 4 ++++ + .../search_prefetch_url_loader_interceptor.cc | 1 + + .../chrome_browser_main_extra_parts_profiles.cc | 1 - + chrome/browser/safe_browsing/BUILD.gn | 1 - + ...ication_content_detection_service_factory.cc | 6 ++++++ + .../preloading/AndroidPrerenderManager.java | 1 + + .../ui/autofill/chrome_autofill_client.cc | 15 --------------- + chrome/browser/ui/tab_helpers.cc | 1 - + .../autofill_ml_internals_page_handler.cc | 2 ++ + .../autofill_ml_internals_page_handler.h | 3 +++ + .../autofill_ml_internals_ui.cc | 3 +++ + .../read_anything/read_aloud_app_model.cc | 16 ++++++++++++++-- + .../read_anything/read_aloud_app_model.h | 9 ++++++++- + .../read_anything_app_controller.cc | 10 ++++++++++ + .../read_anything_app_controller.h | 4 ++++ + chrome/utility/BUILD.gn | 2 +- + chrome/utility/services.cc | 8 -------- + components/BUILD.gn | 2 +- + .../browser/foundations/autofill_manager.cc | 6 ++++++ + .../core/browser/foundations/autofill_manager.h | 3 +++ + .../autofill_optimization_guide_decider.cc | 5 +++-- + .../field_classification_model_handler.cc | 12 ++++++++---- + .../field_classification_model_handler.h | 10 ++++++++-- + .../browser/aim_eligibility_service_features.cc | 1 + + .../omnibox/browser/autocomplete_controller.cc | 4 ++++ + .../omnibox/browser/base_search_provider.cc | 4 ++-- + .../prediction_model_download_manager.cc | 6 ++++-- + .../delivery/prediction_model_fetcher_impl.cc | 1 + + .../core/hints/hints_fetcher.cc | 1 + + .../core/hints/hints_manager.cc | 2 ++ + .../core/optimization_guide_features.cc | 12 ++++++------ + components/optimization_guide/features.gni | 3 +-- + .../core/page_content_annotations_features.cc | 4 ++++ + .../page_content_annotations_model_manager.cc | 1 + + .../notification_content_detection/BUILD.gn | 7 +++++++ + .../service_worker_main_resource_loader.cc | 1 + + .../Disable-all-predictors-code.inc | 2 ++ + .../Disable-all-predictors-code.inc | 1 + + .../Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 5 +++++ + .../features_cc/Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 1 + + .../features_cc/Disable-all-predictors-code.inc | 2 ++ + services/on_device_model/ml/BUILD.gn | 2 +- + services/on_device_model/ml/ts_model.cc | 4 ++-- + services/on_device_model/safety/BUILD.gn | 2 +- + services/webnn/BUILD.gn | 2 +- + services/webnn/features.gni | 2 +- + services/webnn/webnn_context_provider_impl.cc | 17 +---------------- + .../core/html/parser/html_document_parser.cc | 1 + + .../document_speculation_rules.cc | 1 + + .../platform/runtime_enabled_features.json5 | 2 +- + 69 files changed, 174 insertions(+), 96 deletions(-) create mode 100644 cromite_flags/chrome/browser/browser_features_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Disable-all-predictors-code.inc create mode 100644 cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc @@ -84,7 +86,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 -@@ -793,8 +793,6 @@ static_library("browser") { +@@ -760,8 +760,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", @@ -93,7 +95,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn "navigation_predictor/preloading_model_keyed_service.cc", "navigation_predictor/preloading_model_keyed_service.h", "navigation_predictor/preloading_model_keyed_service_factory.cc", -@@ -2381,7 +2379,7 @@ static_library("browser") { +@@ -2390,7 +2388,7 @@ static_library("browser") { "//components/resources", "//components/safe_browsing/content/browser", "//components/safe_browsing/content/browser:safe_browsing_service", @@ -217,7 +219,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 -@@ -409,7 +409,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( +@@ -388,7 +388,6 @@ void OptimizationGuideKeyedService::RemoveObserverForOptimizationTargetModel( void OptimizationGuideKeyedService::RegisterOptimizationTypes( const std::vector& optimization_types) { @@ -228,23 +230,23 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service. diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BUILD.gn --- a/chrome/browser/permissions/BUILD.gn +++ b/chrome/browser/permissions/BUILD.gn -@@ -44,8 +44,6 @@ source_set("permissions") { +@@ -42,8 +42,6 @@ source_set("permissions") { + "prediction_service/language_detection_observer.h", + "prediction_service/passage_embedder_delegate.cc", "prediction_service/passage_embedder_delegate.h", +- "prediction_service/permissions_ai_ui_selector.cc", +- "prediction_service/permissions_ai_ui_selector.h", "prediction_service/permissions_aiv1_handler.cc", "prediction_service/permissions_aiv1_handler.h", -- "prediction_service/prediction_based_permission_ui_selector.cc", -- "prediction_service/prediction_based_permission_ui_selector.h", "prediction_service/prediction_model_handler_provider.cc", - "prediction_service/prediction_model_handler_provider.h", - "prediction_service/prediction_service_factory.cc", diff --git a/chrome/browser/permissions/chrome_permissions_client.cc b/chrome/browser/permissions/chrome_permissions_client.cc --- a/chrome/browser/permissions/chrome_permissions_client.cc +++ b/chrome/browser/permissions/chrome_permissions_client.cc -@@ -474,8 +474,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( +@@ -472,8 +472,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors( #endif selectors.emplace_back(std::make_unique( Profile::FromBrowserContext(browser_context))); -- selectors.emplace_back(std::make_unique( +- selectors.emplace_back(std::make_unique( - Profile::FromBrowserContext(browser_context))); return selectors; } @@ -268,6 +270,17 @@ diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_dele return nullptr; } +diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc +--- a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc ++++ b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.cc +@@ -718,6 +718,7 @@ bool PermissionsAiUiSelector::ShouldHoldBack( + + PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse( + permissions::RequestType request_type) { ++ if ((true)) return PredictionSource::kNoCpssModel; + const bool is_msbb_enabled = profile_->GetPrefs()->GetBoolean( + unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled); + diff --git a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc --- a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc +++ b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.cc @@ -312,6 +325,21 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand std::unique_ptr permissions_aiv1_handler_; #if BUILDFLAG(BUILD_WITH_TFLITE_LIB) +diff --git a/chrome/browser/permissions/quiet_notification_permission_ui_state.cc b/chrome/browser/permissions/quiet_notification_permission_ui_state.cc +--- a/chrome/browser/permissions/quiet_notification_permission_ui_state.cc ++++ b/chrome/browser/permissions/quiet_notification_permission_ui_state.cc +@@ -25,9 +25,9 @@ void QuietNotificationPermissionUiState::RegisterProfilePrefs( + registry->RegisterTimePref(prefs::kQuietNotificationPermissionUiDisabledTime, + base::Time()); + registry->RegisterBooleanPref(prefs::kEnableNotificationCPSS, +- /*default_value=*/true); ++ /*default_value=*/false); + registry->RegisterBooleanPref(prefs::kEnableGeolocationCPSS, +- /*default_value=*/true); ++ /*default_value=*/false); + registry->RegisterBooleanPref( + prefs::kDidMigrateAdaptiveNotifiationQuietingToCPSS, + /*default_value=*/false); diff --git a/chrome/browser/predictors/autocomplete_action_predictor.cc b/chrome/browser/predictors/autocomplete_action_predictor.cc --- a/chrome/browser/predictors/autocomplete_action_predictor.cc +++ b/chrome/browser/predictors/autocomplete_action_predictor.cc @@ -354,7 +382,7 @@ diff --git a/chrome/browser/predictors/predictors_features.cc b/chrome/browser/p diff --git a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc --- a/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc +++ b/chrome/browser/preloading/prefetch/search_prefetch/field_trial_settings.cc -@@ -146,3 +146,7 @@ const base::FeatureParam +@@ -139,3 +139,7 @@ const base::FeatureParam kSuppressesSearchPrefetchOnSlowNetworkThreshold{ &kSuppressesSearchPrefetchOnSlowNetwork, "slow_network_threshold_for_search_prefetch", base::Milliseconds(208)}; @@ -376,18 +404,18 @@ diff --git a/chrome/browser/preloading/prefetch/search_prefetch/search_prefetch_ 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 -@@ -1201,7 +1201,6 @@ void ChromeBrowserMainExtraPartsProfiles:: - base::FeatureList::IsEnabled( - permissions::features::kPermissionOnDeviceGeolocationPredictions) || - base::FeatureList::IsEnabled(permissions::features::kPermissionsAIv1)) { -- PredictionModelHandlerProviderFactory::GetInstance(); - } +@@ -1209,7 +1209,6 @@ void ChromeBrowserMainExtraPartsProfiles:: + policy::UserPolicySigninServiceFactory::GetInstance(); + #endif + PolicyBlocklistFactory::GetInstance(); +- PredictionModelHandlerProviderFactory::GetInstance(); PredictionServiceFactory::GetInstance(); predictors::AutocompleteActionPredictorFactory::GetInstance(); + predictors::LoadingPredictorFactory::GetInstance(); 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 -@@ -52,7 +52,6 @@ static_library("safe_browsing") { +@@ -53,7 +53,6 @@ static_library("safe_browsing") { "//components/resources:components_resources_grit", "//components/safe_browsing:buildflags", "//components/safe_browsing/content/browser", @@ -435,7 +463,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific diff --git a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java b/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java --- a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java +++ b/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/browser/preloading/AndroidPrerenderManager.java -@@ -89,6 +89,7 @@ public class AndroidPrerenderManager { +@@ -92,6 +92,7 @@ public class AndroidPrerenderManager { * @param prerenderUrl The url to be prerendered. */ public void startPrerendering(GURL prerenderUrl) { @@ -446,7 +474,7 @@ diff --git a/chrome/browser/ui/android/preloading/java/src/org/chromium/chrome/b diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc -@@ -509,11 +509,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { +@@ -512,11 +512,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) { } AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() { @@ -458,7 +486,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows } AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() { -@@ -1199,18 +1195,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( +@@ -1247,18 +1243,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey( optimization_guide::ModelQualityLogsUploaderService* ChromeAutofillClient::GetMqlsUploadService() { @@ -480,7 +508,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows 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 -@@ -449,7 +449,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { +@@ -458,7 +458,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) { } MixedContentSettingsTabHelper::CreateForWebContents(web_contents); NavigationMetricsRecorder::CreateForWebContents(web_contents); @@ -561,7 +589,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc #include "chrome/renderer/accessibility/phrase_segmentation/dependency_tree.h" #include "chrome/renderer/accessibility/phrase_segmentation/phrase_segmenter.h" #include "chrome/renderer/accessibility/phrase_segmentation/token_boundaries.h" -@@ -27,6 +29,7 @@ +@@ -28,6 +30,7 @@ namespace { @@ -569,7 +597,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc // Returns the dependency parser model for this renderer process. DependencyParserModel& GetDependencyParserModel_() { static base::NoDestructor instance; -@@ -39,6 +42,7 @@ std::vector GetDependencyHeads(base::span input) { +@@ -40,6 +43,7 @@ std::vector GetDependencyHeads(base::span input) { ? dependency_parser_model.GetDependencyHeads(input) : std::vector(); } @@ -577,7 +605,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc } // namespace -@@ -153,10 +157,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( +@@ -164,10 +168,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech( } } @@ -591,7 +619,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc void ReadAloudAppModel::CalculatePhrases( a11y::ReadAloudCurrentGranularity& granularity) { if (!features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) { -@@ -213,19 +220,23 @@ void ReadAloudAppModel::CalculatePhrases( +@@ -224,19 +231,23 @@ void ReadAloudAppModel::CalculatePhrases( base::BindOnce(&ReadAloudAppModel::UpdatePhraseBoundaries, weak_ptr_factory_.GetWeakPtr(), phrase_tokens)); } @@ -617,7 +645,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc // Reset the phrase calculation flag, so that the next phrase calculation can // be scheduled, if needed. is_calculating_phrases = false; -@@ -287,6 +298,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, +@@ -298,6 +309,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens, current_phrase_calculation_index_ = -1; LOG(WARNING) << "All phrases calculated!"; } @@ -650,7 +678,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h // Increments the processed_granularity_index_, updating ReadAloud's state of // the current granularity to refer to the next granularity. The current -@@ -291,9 +296,11 @@ class ReadAloudAppModel { +@@ -293,9 +298,11 @@ class ReadAloudAppModel { // still needs to be read. bool NoValidTextRemainingInCurrentNode(bool is_pdf, bool is_docs) const; @@ -662,7 +690,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.h // Once the phrase segmentation has completed for a given sentence, update the // granularity with the phrase boundaries, and calculate phrases for the next -@@ -367,7 +374,7 @@ class ReadAloudAppModel { +@@ -369,7 +376,7 @@ class ReadAloudAppModel { // Whether a phrase calculation for a sentence is currently underway. (We // do not initiate a second calculation before the first has completed.) @@ -684,7 +712,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr #include "chrome/renderer/accessibility/read_anything/read_aloud_traversal_utils.h" #include "chrome/renderer/accessibility/read_anything/read_anything_app_model.h" #include "chrome/renderer/accessibility/read_anything/read_anything_node_utils.h" -@@ -1754,6 +1756,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1786,6 +1788,7 @@ void ReadAnythingAppController::OnConnected() { render_frame()->GetBrowserInterfaceBroker().GetInterface( std::move(page_handler_factory_receiver)); @@ -692,7 +720,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr // Get the dependency parser model used by phrase-based highlighting. if (read_aloud_model_.GetDependencyParserModel().IsAvailable()) { return; -@@ -1762,6 +1765,7 @@ void ReadAnythingAppController::OnConnected() { +@@ -1794,6 +1797,7 @@ void ReadAnythingAppController::OnConnected() { page_handler_->GetDependencyParserModel( base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel, weak_ptr_factory_.GetWeakPtr())); @@ -700,7 +728,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::OnCopy() const { -@@ -2003,8 +2007,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { +@@ -2034,8 +2038,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() { } void ReadAnythingAppController::PreprocessTextForSpeech() { @@ -711,7 +739,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr } void ReadAnythingAppController::MovePositionToNextGranularity() { -@@ -2257,14 +2263,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { +@@ -2289,14 +2295,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const { void ReadAnythingAppController::UpdateDependencyParserModel( base::File model_file) { @@ -743,7 +771,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr class ReadAnythingAppControllerTest; class ReadAnythingAppControllerScreen2xDataCollectionModeTest; -@@ -304,7 +306,9 @@ class ReadAnythingAppController +@@ -310,7 +312,9 @@ class ReadAnythingAppController // available. void UpdateDependencyParserModel(base::File model_file); @@ -768,7 +796,7 @@ 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 -@@ -251,13 +251,6 @@ auto RunMirroringService( +@@ -249,13 +249,6 @@ auto RunMirroringService( std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner()); } @@ -782,7 +810,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc #endif // !BUILDFLAG(IS_ANDROID) #if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE) -@@ -475,7 +468,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { +@@ -466,7 +459,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) { #if !BUILDFLAG(IS_ANDROID) services.Add(RunProfileImporter); services.Add(RunMirroringService); @@ -793,8 +821,8 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc diff --git a/components/BUILD.gn b/components/BUILD.gn --- a/components/BUILD.gn +++ b/components/BUILD.gn -@@ -617,7 +617,7 @@ test("components_unittests") { - "//components/media_router/common/providers/cast/channel:unit_tests", +@@ -622,7 +622,7 @@ test("components_unittests") { + "//components/one_time_tokens/core/browser:unit_tests", "//components/page_info:unit_tests", "//components/permissions:unit_tests", - "//components/permissions/prediction_service:unit_tests", @@ -805,15 +833,42 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/components/autofill/core/browser/foundations/autofill_manager.cc --- a/components/autofill/core/browser/foundations/autofill_manager.cc +++ b/components/autofill/core/browser/foundations/autofill_manager.cc -@@ -895,6 +895,7 @@ void AutofillManager::LogCurrentFieldTypes(const FormStructure& form) { +@@ -137,8 +137,10 @@ struct AutofillManager::AsyncContext { + + std::vector forms; + std::vector regex_predictions; ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + std::vector autofill_predictions; + std::vector password_manager_predictions; ++#endif + GeoIpCountryCode country_code; + LanguageCode current_page_language; + std::unique_ptr log_manager; +@@ -707,6 +709,7 @@ void AutofillManager::ParseFormsAsyncCommon( + } + } + ++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) + if (!context.autofill_predictions.empty()) { + context.autofill_predictions[i].ApplyTo(form_structure->fields()); + } +@@ -714,6 +717,7 @@ void AutofillManager::ParseFormsAsyncCommon( + context.password_manager_predictions[i].ApplyTo( + form_structure->fields()); + } ++#endif + if (!context.regex_predictions.empty()) { + context.regex_predictions[i].ApplyTo(form_structure->fields()); + } +@@ -955,6 +959,7 @@ void AutofillManager::LogCurrentFieldTypes( } } +#if BUILDFLAG(BUILD_WITH_TFLITE_LIB) void AutofillManager::SubscribeToMlModelChanges( - FieldClassificationModelHandler& handler, - optimization_guide::proto::OptimizationTarget optimization_target) { -@@ -919,5 +920,6 @@ void AutofillManager::SubscribeToMlModelChanges( + FieldClassificationModelHandler& handler) { + switch (handler.optimization_target()) { +@@ -978,5 +983,6 @@ void AutofillManager::SubscribeToMlModelChanges( NOTREACHED(); } } @@ -823,7 +878,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/components/autofill/core/browser/foundations/autofill_manager.h --- a/components/autofill/core/browser/foundations/autofill_manager.h +++ b/components/autofill/core/browser/foundations/autofill_manager.h -@@ -38,6 +38,7 @@ +@@ -39,6 +39,7 @@ #include "components/autofill/core/common/signatures.h" #include "components/autofill/core/common/unique_ids.h" #include "components/optimization_guide/proto/models.pb.h" @@ -831,7 +886,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c #include "components/translate/core/browser/translate_driver.h" namespace autofill { -@@ -355,12 +356,14 @@ class AutofillManager +@@ -366,10 +367,12 @@ class AutofillManager // Reparses all known forms. void ReparseKnownForms(); @@ -839,9 +894,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c // After subscribing, FieldClassificationModelHandler::OnModelUpdated() will // trigger ReparseKnownForms(). There may be a handler for Autofill and/or // Password Manager. - void SubscribeToMlModelChanges( - FieldClassificationModelHandler& handler, - optimization_guide::proto::OptimizationTarget optimization_target); + void SubscribeToMlModelChanges(FieldClassificationModelHandler& handler); +#endif protected: @@ -849,7 +902,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c diff --git a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc --- a/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc +++ b/components/autofill/core/browser/integrators/optimization_guide/autofill_optimization_guide_decider.cc -@@ -258,6 +258,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( +@@ -264,6 +264,7 @@ void AutofillOptimizationGuideDecider::OnPaymentsDataLoaded( // If we do not have any optimization types to register, do not do anything. if (!optimization_types.empty()) { @@ -857,7 +910,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut decider_->RegisterOptimizationTypes( std::vector( std::move(optimization_types).extract())); -@@ -365,7 +366,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( +@@ -371,7 +372,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockSingleFieldSuggestions( const AutofillField* field) const { // If the field's storable type is `IBAN_VALUE`, check whether IBAN // suggestions should be blocked based on `url`. @@ -866,7 +919,7 @@ diff --git a/components/autofill/core/browser/integrators/optimization_guide/aut optimization_guide::OptimizationGuideDecision decision = decider_->CanApplyOptimization( url, optimization_guide::proto::IBAN_AUTOFILL_BLOCKED, -@@ -391,7 +392,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( +@@ -397,7 +398,7 @@ bool AutofillOptimizationGuideDecider::ShouldBlockFormFieldSuggestion( const CreditCard& card) const { if (auto optimization_type = GetVcnMerchantOptOutOptimizationTypeForCard(card); @@ -898,7 +951,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode // Store the model in memory as soon as it is available and keep it loaded for // the whole browser session since we query predictions very regularly. // TODO(crbug.com/40276177): Maybe change both back to default behavior if we -@@ -167,6 +165,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( +@@ -164,6 +162,7 @@ void FieldClassificationModelHandler::ApplySmallFormRules( } } @@ -906,7 +959,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode autofill_ml_internals::mojom::MlPredictionLogPtr FieldClassificationModelHandler::CreateMlPredictionLog( const FormData& form) const { -@@ -239,6 +238,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( +@@ -236,6 +235,7 @@ FieldClassificationModelHandler::CreateMlPredictionLog( prediction_log->start_time = base::Time::Now(); return prediction_log; } @@ -914,7 +967,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode void PopulateMlPredictionLogAfterInference( autofill_ml_internals::mojom::MlPredictionLog& prediction_log, -@@ -268,9 +268,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( +@@ -264,9 +264,11 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( std::optional prediction_log = std::nullopt; @@ -924,9 +977,9 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode } +#endif - // TODO(crbug.com/428686605) Set tokenized representation in `prediction_log`. FieldClassificationModelEncoder::ModelInput encoded_input = -@@ -325,11 +327,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( + state_->encoder.EncodeForm(form); +@@ -331,11 +333,13 @@ void FieldClassificationModelHandler::GetModelPredictionsForForm( predicted_types); } } @@ -965,7 +1018,7 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode ~FieldClassificationModelHandler() override; // This function asynchronously queries predictions for the `form_structure` -@@ -132,8 +134,10 @@ class FieldClassificationModelHandler +@@ -136,8 +138,10 @@ class FieldClassificationModelHandler ModelInputHash CalculateModelInputHash( const FieldClassificationModelEncoder::ModelInput& input); @@ -974,9 +1027,9 @@ diff --git a/components/autofill/core/browser/ml_model/field_classification_mode const FormData& form_structure) const; +#endif - struct ModelState { - optimization_guide::proto::AutofillFieldClassificationModelMetadata -@@ -155,7 +159,9 @@ class FieldClassificationModelHandler + // Converts a `TokenId` to the string representation. + std::string TokenIdToString( +@@ -163,7 +167,9 @@ class FieldClassificationModelHandler ModelChangeCallbackList model_change_callback_list_; @@ -992,15 +1045,15 @@ diff --git a/components/omnibox/browser/aim_eligibility_service_features.cc b/co @@ -9,6 +9,7 @@ namespace omnibox { - BASE_FEATURE(kAimEnabled, "AimEnabled", base::FEATURE_ENABLED_BY_DEFAULT); + BASE_FEATURE(kAimEnabled, base::FEATURE_ENABLED_BY_DEFAULT); +SET_CROMITE_FEATURE_DISABLED(kAimEnabled); // Disable AI Mode starter pack - BASE_FEATURE(kAimServerEligibilityEnabled, - "AimServerEligibilityEnabled", + BASE_FEATURE(kAimServerEligibilityEnabled, base::FEATURE_DISABLED_BY_DEFAULT); + 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 -@@ -54,7 +54,9 @@ +@@ -53,7 +53,9 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/omnibox/browser/autocomplete_match_type.h" #include "components/omnibox/browser/autocomplete_provider.h" @@ -1010,7 +1063,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ #include "components/omnibox/browser/autocomplete_scoring_signals_annotator.h" #include "components/omnibox/browser/bookmark_provider.h" #include "components/omnibox/browser/bookmark_scoring_signals_annotator.h" -@@ -128,6 +130,7 @@ using ProviderType = AutocompleteProvider::Type; +@@ -131,6 +133,7 @@ using ProviderType = AutocompleteProvider::Type; constexpr bool is_android = !!BUILDFLAG(IS_ANDROID); @@ -1018,7 +1071,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ void RecordMlScoreCoverage(size_t matches_with_non_null_scores, size_t total_scored_matches) { int percent_score_coverage = -@@ -236,6 +239,7 @@ void RecordTotalMatchesScored(size_t num_scored) { +@@ -239,6 +242,7 @@ void RecordTotalMatchesScored(size_t num_scored) { base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches", num_scored); } @@ -1029,7 +1082,7 @@ diff --git a/components/omnibox/browser/autocomplete_controller.cc b/components/ 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 -@@ -101,14 +101,14 @@ BaseSearchProvider::BaseSearchProvider(AutocompleteProvider::Type type, +@@ -100,14 +100,14 @@ BaseSearchProvider::BaseSearchProvider(AutocompleteProvider::Type type, bool BaseSearchProvider::ShouldPrefetch(const AutocompleteMatch& match) { // TODO (manukh): `GetAdditionalInfoForDebugging()` shouldn't be used for // non-debugging purposes. @@ -1049,7 +1102,7 @@ diff --git a/components/omnibox/browser/base_search_provider.cc b/components/omn diff --git a/components/optimization_guide/core/delivery/prediction_model_download_manager.cc b/components/optimization_guide/core/delivery/prediction_model_download_manager.cc --- a/components/optimization_guide/core/delivery/prediction_model_download_manager.cc +++ b/components/optimization_guide/core/delivery/prediction_model_download_manager.cc -@@ -51,7 +51,7 @@ const char kDisableModelDownloadsForBenchmarking[] = +@@ -53,7 +53,7 @@ const char kDisableModelDownloadsForBenchmarking[] = // we require models to come from. constexpr std::array kPublisherKeyHash = { 0x66, 0xa1, 0xd9, 0x3e, 0x4e, 0x5a, 0x66, 0x8a, 0x0f, 0xd3, 0xfa, @@ -1058,16 +1111,16 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo 0x5c, 0x7f, 0xd0, 0x0c, 0xa1, 0x6e, 0xef, 0xdd, 0x63, 0x7a}; const net::NetworkTrafficAnnotationTag kOptimizationGuidePredictionModelsTrafficAnnotation = -@@ -111,7 +111,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( +@@ -123,7 +123,7 @@ PredictionModelDownloadManager::PredictionModelDownloadManager( unzip::UnzipperFactory unzipper_factory, scoped_refptr background_task_runner) - : download_service_(download_service), + : download_service_tracker_(download_service_tracker), - is_available_for_downloads_(true), + is_available_for_downloads_(false), api_key_(features::GetOptimizationGuideServiceAPIKey()), get_base_model_dir_for_download_callback_( get_base_model_dir_for_download_callback), -@@ -124,6 +124,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; +@@ -136,6 +136,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default; void PredictionModelDownloadManager::StartDownload( const GURL& download_url, proto::OptimizationTarget optimization_target) { @@ -1075,7 +1128,7 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo download::DownloadParams download_params; download_params.client = download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS; -@@ -276,6 +277,7 @@ bool PredictionModelDownloadManager::VerifyDownload( +@@ -293,6 +294,7 @@ bool PredictionModelDownloadManager::VerifyDownload( const base::FilePath& download_file_path, const base::FilePath& base_model_dir, bool delete_file_on_error) { @@ -1086,14 +1139,14 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo diff --git a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc --- a/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc +++ b/components/optimization_guide/core/delivery/prediction_model_fetcher_impl.cc -@@ -50,6 +50,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( +@@ -51,6 +51,7 @@ bool PredictionModelFetcherImpl::FetchOptimizationGuideServiceModels( proto::RequestContext request_context, const std::string& locale, ModelsFetchedCallback models_fetched_callback) { + if ((true)) return false; DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (url_loader_) { + TRACE_EVENT( diff --git a/components/optimization_guide/core/hints/hints_fetcher.cc b/components/optimization_guide/core/hints/hints_fetcher.cc --- a/components/optimization_guide/core/hints/hints_fetcher.cc +++ b/components/optimization_guide/core/hints/hints_fetcher.cc @@ -1137,7 +1190,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } // namespace -@@ -289,8 +285,7 @@ size_t MaxHostKeyedHintCacheSize() { +@@ -253,8 +249,7 @@ size_t MaxHostKeyedHintCacheSize() { } bool ShouldPersistHintsToDisk() { @@ -1147,7 +1200,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b } RequestContextSet GetAllowedContextsForPersonalizedMetadata() { -@@ -699,5 +694,10 @@ bool IsPrivacyGuideAiSettingsEnabled() { +@@ -659,5 +654,10 @@ bool IsPrivacyGuideAiSettingsEnabled() { return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings); } @@ -1174,8 +1227,8 @@ 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 -@@ -298,4 +298,8 @@ std::string AnnotatedPageContentMode() { - return kAnnotatedPageContentMode.Get(); +@@ -323,4 +323,8 @@ PageContentExtractionTriggeringMode GetPageContentExtractionTriggeringMode() { + return PageContentExtractionTriggeringMode::kOnLoad; } +SET_CROMITE_FEATURE_DISABLED(kPageContentAnnotations); @@ -1245,10 +1298,12 @@ diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predic new file mode 100644 --- /dev/null +++ b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc -@@ -0,0 +1,3 @@ -+SET_CROMITE_FEATURE_DISABLED(kPermissionOnDeviceNotificationPredictions); -+SET_CROMITE_FEATURE_DISABLED(kPermissionOnDeviceGeolocationPredictions); +@@ -0,0 +1,5 @@ +SET_CROMITE_FEATURE_DISABLED(kPermissionPredictionsV2); ++ ++#if BUILDFLAG(IS_ANDROID) ++SET_CROMITE_FEATURE_DISABLED(kPermissionDedicatedCpssSettingAndroid); ++#endif diff --git a/cromite_flags/net/base/features_cc/Disable-all-predictors-code.inc b/cromite_flags/net/base/features_cc/Disable-all-predictors-code.inc new file mode 100644 --- /dev/null @@ -1298,8 +1353,8 @@ diff --git a/services/on_device_model/ml/ts_model.cc b/services/on_device_model/ -#if !BUILDFLAG(IS_FUCHSIA) +#if false && !BUILDFLAG(IS_FUCHSIA) - if (params->safety_assets->which() == - mojom::SafetyModelAssets::Tag::kTsAssets) { + if (!params->safety_assets || params->safety_assets->which() == + mojom::SafetyModelAssets::Tag::kTsAssets) { auto impl = TsModel::Create(*chrome_ml_, std::move(params)); diff --git a/services/on_device_model/safety/BUILD.gn b/services/on_device_model/safety/BUILD.gn --- a/services/on_device_model/safety/BUILD.gn @@ -1316,7 +1371,7 @@ diff --git a/services/on_device_model/safety/BUILD.gn b/services/on_device_model diff --git a/services/webnn/BUILD.gn b/services/webnn/BUILD.gn --- a/services/webnn/BUILD.gn +++ b/services/webnn/BUILD.gn -@@ -178,7 +178,7 @@ component("webnn_service") { +@@ -166,7 +166,7 @@ component("webnn_service") { } } @@ -1340,8 +1395,8 @@ diff --git a/services/webnn/features.gni b/services/webnn/features.gni diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webnn_context_provider_impl.cc --- a/services/webnn/webnn_context_provider_impl.cc +++ b/services/webnn/webnn_context_provider_impl.cc -@@ -186,21 +186,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( - RecordDeviceType(options->device); +@@ -208,22 +208,7 @@ void WebNNContextProviderImpl::CreateWebNNContext( + } #if BUILDFLAG(IS_WIN) - if (ort::ShouldCreateOrtContext(*options)) { @@ -1354,19 +1409,20 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn - context_impl = base::MakeRefCounted( - std::move(receiver), this, - env_creation_results.value()->GetEpWorkarounds(options->device), -- std::move(options), std::move(env_creation_results.value()), -- command_buffer_id, std::move(sequence), -- std::move(scheduler_task_runner)); +- std::move(options), std::move(write_tensor_consumer), +- std::move(read_tensor_producer), +- std::move(env_creation_results.value()), command_buffer_id, +- std::move(sequence), std::move(scheduler_task_runner)); - } - } else if (dml::ShouldCreateDmlContext(*options)) { + if (dml::ShouldCreateDmlContext(*options)) { base::expected, mojom::ErrorPtr> context_creation_results = dml::CreateContextFromOptions( - std::move(options), gpu_feature_info_, gpu_info_, + std::move(options), std::move(write_tensor_consumer), diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc b/third_party/blink/renderer/core/html/parser/html_document_parser.cc --- a/third_party/blink/renderer/core/html/parser/html_document_parser.cc +++ b/third_party/blink/renderer/core/html/parser/html_document_parser.cc -@@ -1822,6 +1822,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( +@@ -1845,6 +1845,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget( } bool HTMLDocumentParser::ShouldSkipPreloadScan() { @@ -1388,7 +1444,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 -@@ -3752,7 +3752,7 @@ +@@ -3844,7 +3844,7 @@ // // It also has some feature params defined throughout the codebase. name: "Prerender2", diff --git a/build/cromite_patches/Disable-all-promo-dialogs.patch b/build/cromite_patches/Disable-all-promo-dialogs.patch index 937d580b587cc8eec4cdc8d8c17d2b62d8441728..73f45d83a2a58910e0d80a09243400ee4c626e0f 100644 --- a/build/cromite_patches/Disable-all-promo-dialogs.patch +++ b/build/cromite_patches/Disable-all-promo-dialogs.patch @@ -18,7 +18,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html diff --git a/chrome/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 -@@ -1769,6 +1769,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { +@@ -1800,6 +1800,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator { } private boolean maybeShowPromo(Profile profile) { @@ -29,7 +29,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc --- a/chrome/browser/ui/browser_ui_prefs.cc +++ b/chrome/browser/ui/browser_ui_prefs.cc -@@ -176,7 +176,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { +@@ -180,7 +180,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) { registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled, false); @@ -63,7 +63,7 @@ diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_c diff --git a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java --- a/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java +++ b/chrome/browser/user_education/java/src/org/chromium/chrome/browser/user_education/UserEducationHelper.java -@@ -122,6 +122,7 @@ public class UserEducationHelper { +@@ -119,6 +119,7 @@ public class UserEducationHelper { } private void showIph(Tracker tracker, IphCommand iphCommand) { diff --git a/build/cromite_patches/Disable-conversion-measurement-api.patch b/build/cromite_patches/Disable-conversion-measurement-api.patch index 84ee8bf0442308d32604b491d7755204e0deaf5c..c0b665e5fa44352f38b3d0cba85ff29536c31931 100644 --- a/build/cromite_patches/Disable-conversion-measurement-api.patch +++ b/build/cromite_patches/Disable-conversion-measurement-api.patch @@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/android/java/AndroidManifest.xml | 4 - .../ChromeSiteSettingsDelegate.java | 2 + .../k_anonymity_trust_token_getter.cc | 2 +- - .../settings/privacy_page/privacy_page.html | 5 - + .../privacy_page/privacy_page_index.html | 8 - chrome/browser/resources/settings/route.ts | 2 +- .../site_settings_page/site_settings_page.ts | 1 + .../aggregatable_trigger_config.cc | 2 +- @@ -46,14 +46,14 @@ 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 | 20 +- ui/events/android/motion_event_android.cc | 8 +- - 35 files changed, 103 insertions(+), 430 deletions(-) + 35 files changed, 103 insertions(+), 433 deletions(-) create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Disable-conversion-measurement-api.inc create mode 100644 cromite_flags/third_party/blink/common/features_cc/Disable-conversion-measurement-api.inc diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc --- a/android_webview/browser/aw_content_browser_client.cc +++ b/android_webview/browser/aw_content_browser_client.cc -@@ -1357,6 +1357,7 @@ network::mojom::AttributionSupport +@@ -1317,6 +1317,7 @@ network::mojom::AttributionSupport AwContentBrowserClient::GetAttributionSupport( AttributionReportingOsApiState state, bool client_os_disabled) { @@ -61,7 +61,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv // WebView only supports OS-level attribution and not web-attribution. switch (state) { case AttributionReportingOsApiState::kDisabled: -@@ -1375,6 +1376,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( +@@ -1335,6 +1336,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed( const url::Origin* destination_origin, const url::Origin* reporting_origin, bool* can_bypass) { @@ -73,7 +73,7 @@ diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webv 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 -@@ -207,7 +207,7 @@ public class AwSettings { +@@ -202,7 +202,7 @@ public class AwSettings { private boolean mSpatialNavigationEnabled; // Default depends on device features. private boolean mEnableSupportedHardwareAcceleratedFeatures; private int mMixedContentMode = WebSettings.MIXED_CONTENT_NEVER_ALLOW; @@ -82,7 +82,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja @SpeculativeLoadingAllowedFlags private int mSpeculativeLoadingAllowedFlags = -@@ -1834,7 +1834,7 @@ public class AwSettings { +@@ -1784,7 +1784,7 @@ public class AwSettings { public void setAttributionBehavior(@AttributionBehavior int behavior) { synchronized (mAwSettingsLock) { if (mAttributionBehavior != behavior) { @@ -115,7 +115,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java --- a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/site_settings/ChromeSiteSettingsDelegate.java -@@ -151,6 +151,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { +@@ -150,6 +150,8 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate { // not great to dynamically remove the preference in this way. case SiteSettingsCategory.Type.ADS: return SiteSettingsCategory.adsCategoryEnabled(); @@ -136,25 +136,28 @@ diff --git a/chrome/browser/k_anonymity_service/k_anonymity_trust_token_getter.c !identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSignin)) { std::move(callback).Run(std::nullopt); return; -diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/chrome/browser/resources/settings/privacy_page/privacy_page.html ---- a/chrome/browser/resources/settings/privacy_page/privacy_page.html -+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html -@@ -395,11 +395,6 @@ - - - -- - + +- +- +