Date: Thu, 6 Nov 2025 13:22:24 +0000
-Subject: Backport-v143-android-extensions-changes
+Subject: Backport-v144-android-extensions-changes
Enable support for anonymous browsing.
Backport of bugid 7089957 extensions Use BrowserWindowInterface in ExtensionViewHost
https://chromium-review.googlesource.com/c/chromium/src/+/7089957
---
- .../chrome/browser/ChromeTabbedActivity.java | 58 +-------
- .../chrome/browser/app/ChromeActivity.java | 76 +++++++++++
+ .../chrome/browser/ChromeTabbedActivity.java | 1 +
+ .../chrome/browser/app/ChromeActivity.java | 12 ++
.../customtabs/BaseCustomTabActivity.java | 1 +
.../BaseCustomTabRootUiCoordinator.java | 5 +
.../tabbed_mode/TabbedRootUiCoordinator.java | 2 +
@@ -26,92 +26,12 @@ https://chromium-review.googlesource.com/c/chromium/src/+/7089957
.../ExtensionActionListMediatorTest.java | 11 +-
.../ExtensionToolbarCoordinator.java | 5 +
.../ExtensionToolbarCoordinatorImpl.java | 4 +
- 20 files changed, 225 insertions(+), 148 deletions(-)
+ 20 files changed, 160 insertions(+), 92 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -292,12 +292,8 @@ import org.chromium.chrome.browser.ui.IncognitoRestoreAppLaunchDrawBlockerFactor
- import org.chromium.chrome.browser.ui.RootUiCoordinator;
- import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
- import org.chromium.chrome.browser.ui.browser_window.BrowserWindowType;
--import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
--import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTracker;
--import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFactory;
- 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;
- import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
- import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
- import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarController;
-@@ -835,18 +831,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
- mTabModelNotificationDotManager.initWithNative(mTabModelSelector);
- TabModel currentTabModel = mTabModelSelector.getCurrentModel();
-
-- // Initialize ChromeAndroidTask.
-- //
-- // This needs to be done before any tab is added so that
-- // TabModel#associateWithBrowserWindow() can be called in time for each tab to have the
-- // same native SessionID as the native AndroidBrowserWindow managed by
-- // ChromeAndroidTask.
-- ChromeAndroidTask chromeAndroidTask = initializeChromeAndroidTask(currentTabModel);
-- if (chromeAndroidTask != null) {
-- currentTabModel.associateWithBrowserWindow(
-- chromeAndroidTask.getOrCreateNativeBrowserWindowPtr());
-- initializeExtensionWindowControllerBridge(chromeAndroidTask);
-- }
-+ initializeChromeAndroidTask(BrowserWindowType.NORMAL, currentTabModel);
-
- // For saving non-incognito tab closures for Recent Tabs.
- boolean alwaysIncognito = AlwaysIncognitoLinkInterceptor.isAlwaysIncognito();
-@@ -1346,46 +1331,6 @@ public class ChromeTabbedActivity extends ChromeActivity {
- }
- }
-
-- @Nullable
-- private ChromeAndroidTask initializeChromeAndroidTask(TabModel currentTabModel) {
-- try (TraceEvent e = TraceEvent.scoped("ChromeTabbedActivity.initializeChromeAndroidTask")) {
-- var chromeAndroidTaskTracker = ChromeAndroidTaskTrackerFactory.getInstance();
-- if (chromeAndroidTaskTracker == null) {
-- return null;
-- }
--
-- var activityWindowAndroid = getWindowAndroid();
-- assert activityWindowAndroid != null
-- : "ChromeAndroidTask must be initialized after Java WindowAndroid is created.";
--
-- int pendingIdExtraValue =
-- IntentUtils.safeGetIntExtra(
-- getIntent(),
-- ChromeAndroidTaskTracker.EXTRA_PENDING_BROWSER_WINDOW_TASK_ID,
-- /* defaultValue= */ -1);
-- OptionalInt pendingId =
-- pendingIdExtraValue == -1
-- ? OptionalInt.empty()
-- : OptionalInt.of(pendingIdExtraValue);
--
-- return chromeAndroidTaskTracker.obtainTask(
-- BrowserWindowType.NORMAL, activityWindowAndroid, currentTabModel, pendingId);
-- }
-- }
--
-- private void initializeExtensionWindowControllerBridge(
-- @Nullable ChromeAndroidTask chromeAndroidTask) {
-- if (chromeAndroidTask == null) {
-- return;
-- }
--
-- var extensionWindowControllerBridge =
-- ExtensionWindowControllerBridgeFactory.create(chromeAndroidTask);
-- if (extensionWindowControllerBridge != null) {
-- chromeAndroidTask.addFeature(extensionWindowControllerBridge);
-- }
-- }
--
- private void maybeCreateIncognitoTabSnapshotController() {
- try (TraceEvent e =
- TraceEvent.scoped(
-@@ -2976,6 +2921,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
+@@ -2937,6 +2937,7 @@ public class ChromeTabbedActivity extends ChromeActivity {
mLayoutStateProviderSupplier,
getBrowserControlsManager(),
getWindowAndroid(),
@@ -122,15 +42,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
-@@ -52,6 +52,7 @@ import org.chromium.base.CommandLine;
- import org.chromium.base.ContextUtils;
- import org.chromium.base.DeviceInfo;
- import org.chromium.base.InputHintChecker;
-+import org.chromium.base.IntentUtils;
- import org.chromium.base.Log;
- import org.chromium.base.PowerMonitor;
- import org.chromium.base.TraceEvent;
-@@ -61,6 +62,7 @@ import org.chromium.base.metrics.RecordUserAction;
+@@ -62,6 +62,7 @@ import org.chromium.base.metrics.RecordUserAction;
import org.chromium.base.shared_preferences.SharedPreferencesManager;
import org.chromium.base.supplier.ObservableSupplier;
import org.chromium.base.supplier.ObservableSupplierImpl;
@@ -138,31 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.base.supplier.UnownedUserDataSupplier;
import org.chromium.chrome.R;
-@@ -203,9 +205,15 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator;
- import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
- import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
- import org.chromium.chrome.browser.ui.appmenu.AppMenuPropertiesDelegate;
-+import org.chromium.chrome.browser.ui.browser_window.BrowserWindowType;
-+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
-+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskFeature;
-+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTracker;
-+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTaskTrackerFactory;
- import org.chromium.chrome.browser.ui.device_lock.MissingDeviceLockLauncher;
- import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
- import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
-+import org.chromium.chrome.browser.ui.extensions.windowing.ExtensionWindowControllerBridgeFactory;
- import org.chromium.chrome.browser.ui.messages.snackbar.Snackbar;
- import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
- import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
-@@ -272,6 +280,7 @@ import org.chromium.webapk.lib.client.WebApkNavigationClient;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.function.Supplier;
-+import java.util.OptionalInt;
-
- /**
- * A {@link AsyncInitializationActivity} that builds and manages a {@link CompositorViewHolder} and
-@@ -440,6 +449,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -447,6 +448,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
private @Nullable TabStateThemeResourceProvider mThemeResourceProvider;
@@ -172,69 +60,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
protected ChromeActivity() {
mManualFillingComponentSupplier.set(ManualFillingComponentFactory.createComponent());
sNextActivityId++;
-@@ -1018,6 +1030,70 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
- TraceEvent.end("ChromeActivity:CompositorInitialization");
- }
-
-+ /**
-+ * Initializes {@link ChromeAndroidTask} and adds {@link ChromeAndroidTaskFeature}s.
-+ *
-+ * This method is for a subclass of {@link ChromeActivity} that needs windowing support on
-+ * Java and/or native side(s).
-+ *
-+ *
If a subclass of {@link ChromeActivity} needs {@link ChromeAndroidTask}, it should call
-+ * this method as early as possible (after the native library is loaded). For example, this
-+ * method should be called before any tab is added so that {@link
-+ * TabModel#associateWithBrowserWindow} can be called in time for each tab to have the same
-+ * native SessionID as the native {@code AndroidBrowserWindow}.
-+ *
-+ * @param browserWindowType Type of the browser window (normal, popup, etc.)
-+ * @param currentTabModel The current {@link TabModel} for this {@code Activity}.
-+ */
-+ protected final void initializeChromeAndroidTask(
-+ @BrowserWindowType int browserWindowType, TabModel currentTabModel) {
-+ try (TraceEvent e = TraceEvent.scoped("ChromeActivity.initializeChromeAndroidTask")) {
-+ // 1. Obtain a ChromeAndroidTask that represents the Task (window) for this Activity.
-+ var chromeAndroidTaskTracker = ChromeAndroidTaskTrackerFactory.getInstance();
-+ if (chromeAndroidTaskTracker == null) {
-+ return;
-+ }
-+
-+ var activityWindowAndroid = getWindowAndroid();
-+ assert activityWindowAndroid != null
-+ : "ChromeAndroidTask must be initialized after Java WindowAndroid is created.";
-+
-+ int pendingIdExtraValue =
-+ IntentUtils.safeGetIntExtra(
-+ getIntent(),
-+ ChromeAndroidTaskTracker.EXTRA_PENDING_BROWSER_WINDOW_TASK_ID,
-+ /* defaultValue= */ -1);
-+ OptionalInt pendingId =
-+ pendingIdExtraValue == -1
-+ ? OptionalInt.empty()
-+ : OptionalInt.of(pendingIdExtraValue);
-+
-+ var chromeAndroidTask =
-+ chromeAndroidTaskTracker.obtainTask(
-+ browserWindowType, activityWindowAndroid, currentTabModel, pendingId);
-+
-+ // 2. Associate the current TabModel with ChromeAndroidTask's underlying native
-+ // AndroidBrowserWindow object.
-+ currentTabModel.associateWithBrowserWindow(
-+ chromeAndroidTask.getOrCreateNativeBrowserWindowPtr());
-+
-+ // 3. Add windowing features.
-+ ChromeAndroidTaskFeature extensionWindowControllerBridge =
-+ ExtensionWindowControllerBridgeFactory.create(chromeAndroidTask);
-+ if (extensionWindowControllerBridge != null) {
-+ chromeAndroidTask.addFeature(extensionWindowControllerBridge);
-+ }
+@@ -1093,9 +1097,17 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+ if (extensionWindowControllerBridge != null) {
+ chromeAndroidTask.addFeature(extensionWindowControllerBridge);
+ }
+
+ // 4. Make the ChromeAndroidTask available via OneshotSupplier.
+ mChromeAndroidTaskSupplier.set(chromeAndroidTask);
-+ }
-+ }
-+
+ }
+ }
+
+ /** Returns an {@link OneshotSupplier} for {@link ChromeAndroidTask}. */
+ protected final OneshotSupplier getChromeAndroidTaskSupplier() {
+ return mChromeAndroidTaskSupplier;
@@ -246,7 +81,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/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
-@@ -361,6 +361,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
+@@ -364,6 +364,7 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
getTabModelSelectorSupplier(),
getBrowserControlsManager(),
getWindowAndroid(),
@@ -265,15 +100,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
import org.chromium.base.supplier.OneshotSupplierImpl;
import org.chromium.base.supplier.SupplierUtils;
import org.chromium.chrome.R;
-@@ -98,6 +99,7 @@ import org.chromium.chrome.browser.ui.RootUiCoordinator;
- import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
+@@ -96,6 +97,7 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuBlocker;
+ import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;
+import org.chromium.chrome.browser.ui.browser_window.ChromeAndroidTask;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeUtils;
import org.chromium.chrome.browser.ui.google_bottom_bar.GoogleBottomBarCoordinator;
-@@ -164,6 +166,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
+@@ -160,6 +162,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
* @param tabModelSelectorSupplier Supplies the {@link TabModelSelector}.
* @param browserControlsManager Manages the browser controls.
* @param windowAndroid The current {@link WindowAndroid}.
@@ -281,7 +116,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
* @param activityLifecycleDispatcher Allows observation of the activity lifecycle.
* @param layoutManagerSupplier Supplies the {@link LayoutManager}.
* @param menuOrKeyboardActionController Controls the menu or keyboard action controller.
-@@ -204,6 +207,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
+@@ -200,6 +203,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
@NonNull ObservableSupplier tabModelSelectorSupplier,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull ActivityWindowAndroid windowAndroid,
@@ -289,7 +124,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
@NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher,
@NonNull ObservableSupplier layoutManagerSupplier,
@NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
-@@ -249,6 +253,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
+@@ -245,6 +249,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
new OneshotSupplierImpl<>(),
browserControlsManager,
windowAndroid,
@@ -319,7 +154,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/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
-@@ -173,6 +173,7 @@ import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoord
+@@ -184,6 +184,7 @@ import org.chromium.chrome.browser.toolbar.top.tab_strip.TabStripTransitionCoord
import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinator;
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
import org.chromium.chrome.browser.ui.appmenu.MenuButtonDelegate;
@@ -327,7 +162,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
import org.chromium.chrome.browser.ui.native_page.NativePage;
import org.chromium.chrome.browser.ui.system.StatusBarColorController;
-@@ -732,6 +733,7 @@ public class ToolbarManager
+@@ -748,6 +749,7 @@ public class ToolbarManager
* @param omniboxFocusStateSupplier Supplier to access the focus state of the omnibox.
* @param promoShownOneshotSupplier Supplier for whether a promo was shown on startup.
* @param windowAndroid The {@link WindowAndroid} associated with the ToolbarManager.
@@ -335,7 +170,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
* @param isInOverviewModeSupplier Supplies whether the app is currently in overview mode.
* @param modalDialogManagerSupplier Supplies the {@link ModalDialogManager}.
* @param statusBarColorController The {@link StatusBarColorController} for the app.
-@@ -783,6 +785,7 @@ public class ToolbarManager
+@@ -800,6 +802,7 @@ public class ToolbarManager
ObservableSupplier omniboxFocusStateSupplier,
OneshotSupplier promoShownOneshotSupplier,
WindowAndroid windowAndroid,
@@ -343,18 +178,18 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
Supplier isInOverviewModeSupplier,
Supplier modalDialogManagerSupplier,
StatusBarColorController statusBarColorController,
-@@ -1103,6 +1106,7 @@ public class ToolbarManager
+@@ -1127,6 +1130,7 @@ public class ToolbarManager
mActivity,
extensionToolbarStub,
windowAndroid,
+ chromeAndroidTaskSupplier,
- profileSupplier,
- tabProvider,
+ (ObservableSupplier) profileSupplier,
+ (ObservableSupplier) tabProvider,
mTabCreatorManager.getTabCreator(false),
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
-@@ -151,6 +151,7 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinatorFactory;
+@@ -166,6 +166,7 @@ import org.chromium.chrome.browser.ui.appmenu.AppMenuCoordinatorFactory;
import org.chromium.chrome.browser.ui.appmenu.AppMenuDelegate;
import org.chromium.chrome.browser.ui.appmenu.AppMenuHandler;
import org.chromium.chrome.browser.ui.appmenu.AppMenuObserver;
@@ -362,7 +197,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.chrome.browser.ui.desktop_windowing.AppHeaderUtils;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeController;
import org.chromium.chrome.browser.ui.edge_to_edge.EdgeToEdgeControllerCreator;
-@@ -245,6 +246,7 @@ public class RootUiCoordinator
+@@ -262,6 +263,7 @@ public class RootUiCoordinator
protected @Nullable AppMenuCoordinator mAppMenuCoordinator;
private final MenuOrKeyboardActionController mMenuOrKeyboardActionController;
protected final ActivityWindowAndroid mWindowAndroid;
@@ -370,7 +205,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
protected final ActivityTabProvider mActivityTabProvider;
protected ObservableSupplier mShareDelegateSupplier;
-@@ -382,6 +384,7 @@ public class RootUiCoordinator
+@@ -401,6 +403,7 @@ public class RootUiCoordinator
* @param layoutStateProviderOneshotSupplier Supplier of the {@link LayoutStateProvider}.
* @param browserControlsManager Manages the browser controls.
* @param windowAndroid The current {@link WindowAndroid}.
@@ -378,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
* @param activityLifecycleDispatcher Allows observation of the activity lifecycle.
* @param layoutManagerSupplier Supplies the {@link LayoutManager}.
* @param menuOrKeyboardActionController Controls the menu or keyboard action controller.
-@@ -427,6 +430,7 @@ public class RootUiCoordinator
+@@ -446,6 +449,7 @@ public class RootUiCoordinator
@NonNull OneshotSupplier layoutStateProviderOneshotSupplier,
@NonNull BrowserControlsManager browserControlsManager,
@NonNull ActivityWindowAndroid windowAndroid,
@@ -386,7 +221,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
@NonNull ActivityLifecycleDispatcher activityLifecycleDispatcher,
@NonNull ObservableSupplier layoutManagerSupplier,
@NonNull MenuOrKeyboardActionController menuOrKeyboardActionController,
-@@ -459,6 +463,7 @@ public class RootUiCoordinator
+@@ -478,6 +482,7 @@ public class RootUiCoordinator
mCallbackController = new CallbackController();
mActivity = activity;
mWindowAndroid = windowAndroid;
@@ -394,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
setupUnownedUserDataSuppliers();
mOnOmniboxFocusChangedListener = onOmniboxFocusChangedListener;
mBrowserControlsManager = browserControlsManager;
-@@ -1642,6 +1647,7 @@ public class RootUiCoordinator
+@@ -1715,6 +1720,7 @@ public class RootUiCoordinator
mOmniboxFocusStateSupplier,
mPromoShownOneshotSupplier,
mWindowAndroid,
@@ -405,7 +240,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/android/junit/BUILD.gn b/chrome/android/junit/BUILD.gn
--- a/chrome/android/junit/BUILD.gn
+++ b/chrome/android/junit/BUILD.gn
-@@ -207,6 +207,7 @@ if (is_android) {
+@@ -205,6 +205,7 @@ if (is_android) {
"//chrome/browser/ui/android/signin:java",
"//chrome/browser/ui/android/theme:java",
"//chrome/browser/ui/android/toolbar:java",
@@ -765,15 +600,15 @@ diff --git a/chrome/browser/ui/android/extensions/java/src/org/chromium/chrome/b
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn
--- a/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chrome/browser/ui/android/toolbar/BUILD.gn
-@@ -188,6 +188,7 @@ android_library("java") {
+@@ -189,6 +189,7 @@ android_library("java") {
"//chrome/browser/ui/android/omnibox:java_resources",
"//chrome/browser/ui/android/pdf:java",
"//chrome/browser/ui/android/theme:java",
+ "//chrome/browser/ui/browser_window/public/android:java",
+ "//chrome/browser/url_constants/android:java",
"//chrome/browser/user_education:java",
"//chrome/browser/util:java",
- "//components/browser_ui/bottomsheet/android:java",
-@@ -474,6 +475,7 @@ robolectric_library("junit") {
+@@ -478,6 +479,7 @@ robolectric_library("junit") {
"//chrome/browser/ui/android/omnibox:java_resources",
"//chrome/browser/ui/android/theme:java",
"//chrome/browser/ui/android/toolbar:java_resources",
diff --git a/build/patches/Block-gateway-attacks-via-websockets.patch b/build/patches/Block-gateway-attacks-via-websockets.patch
index f5335965..ff90f965 100644
--- a/build/patches/Block-gateway-attacks-via-websockets.patch
+++ b/build/patches/Block-gateway-attacks-via-websockets.patch
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h
--- a/third_party/blink/renderer/core/execution_context/execution_context.h
+++ b/third_party/blink/renderer/core/execution_context/execution_context.h
-@@ -398,6 +398,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable,
+@@ -391,6 +391,7 @@ class CORE_EXPORT ExecutionContext : public Supplementable,
void SetAddressSpace(network::mojom::blink::IPAddressSpace ip_address_space);
HeapObserverList& ContextLifecycleObserverSet();
diff --git a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
index 92fbe294..3b7f2296 100644
--- a/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
+++ b/build/patches/Block-leakage-of-urls-in-sandbox-iframes.patch
@@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -5151,7 +5151,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
+@@ -5180,7 +5180,17 @@ void RenderFrameHostImpl::SetLastCommittedOrigin(
}
void RenderFrameHostImpl::SetInheritedBaseUrl(const GURL& inherited_base_url) {
@@ -82,7 +82,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/core/dom/document.h"
-@@ -126,8 +127,20 @@ DOMStringList* Location::ancestorOrigins() const {
+@@ -127,8 +128,20 @@ DOMStringList* Location::ancestorOrigins() const {
auto* origins = MakeGarbageCollected();
if (!IsAttached())
return origins;
@@ -106,7 +106,7 @@ diff --git a/third_party/blink/renderer/core/frame/location.cc b/third_party/bli
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -836,6 +836,11 @@ WebString DocumentLoader::HttpMethod() const {
+@@ -835,6 +835,11 @@ WebString DocumentLoader::HttpMethod() const {
}
const AtomicString& DocumentLoader::GetReferrer() const {
@@ -118,7 +118,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
return referrer_;
}
-@@ -2916,6 +2921,13 @@ void DocumentLoader::CommitNavigation() {
+@@ -2903,6 +2908,13 @@ void DocumentLoader::CommitNavigation() {
response_.HttpHeaderField(http_names::kDocumentPolicyReportOnly));
}
diff --git a/build/patches/Block-qjz9zk-or-trk-requests.patch b/build/patches/Block-qjz9zk-or-trk-requests.patch
index c7d34b52..2771f753 100644
--- a/build/patches/Block-qjz9zk-or-trk-requests.patch
+++ b/build/patches/Block-qjz9zk-or-trk-requests.patch
@@ -49,7 +49,7 @@ diff --git a/chrome/browser/history/history_utils.cc b/chrome/browser/history/hi
diff --git a/chrome/browser/ui/singleton_tabs.cc b/chrome/browser/ui/singleton_tabs.cc
--- a/chrome/browser/ui/singleton_tabs.cc
+++ b/chrome/browser/ui/singleton_tabs.cc
-@@ -141,6 +141,11 @@ int GetIndexOfExistingTab(BrowserWindowInterface* browser,
+@@ -144,6 +144,11 @@ int GetIndexOfExistingTab(BrowserWindowInterface* browser,
continue;
}
@@ -80,7 +80,7 @@ diff --git a/components/omnibox/browser/autocomplete_input.cc b/components/omnib
return url::FindAndCompareScheme(utf8_input, scheme, nullptr);
}
-@@ -578,7 +583,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
+@@ -580,7 +585,8 @@ void AutocompleteInput::ParseForEmphasizeComponents(
// For the view-source and blob schemes, we should emphasize the host of the
// URL qualified by the view-source or blob prefix.
if ((base::EqualsCaseInsensitiveASCII(scheme_str, kViewSourceScheme) ||
@@ -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
-@@ -1142,6 +1142,8 @@ component("net") {
+@@ -1147,6 +1147,8 @@ component("net") {
"url_request/url_request_http_job.cc",
"url_request/url_request_http_job.h",
"url_request/url_request_interceptor.cc",
diff --git a/build/patches/Bromite-auto-updater.patch b/build/patches/Bromite-auto-updater.patch
index 88a9ee6a..04b688ba 100644
--- a/build/patches/Bromite-auto-updater.patch
+++ b/build/patches/Bromite-auto-updater.patch
@@ -42,12 +42,12 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../core/compare/cluster_server_proxy.cc | 2 +-
.../product_specifications_server_proxy.cc | 2 +-
.../subscriptions_server_proxy.cc | 2 +-
+ .../internal/composebox_query_controller.cc | 2 +-
.../data_sharing_network_loader_impl.cc | 2 +-
.../internal/preview_server_proxy.cc | 2 +-
.../endpoint_fetcher/endpoint_fetcher.cc | 127 ++++++--
.../endpoint_fetcher/endpoint_fetcher.h | 28 +-
components/manta/base_provider.cc | 4 +-
- .../composebox/composebox_query_controller.cc | 2 +-
.../Bromite-auto-updater.inc | 3 +
.../Bromite-auto-updater.inc | 1 +
42 files changed, 1154 insertions(+), 106 deletions(-)
@@ -79,7 +79,7 @@ diff --git a/build/android/java/templates/BuildConfig.template b/build/android/j
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
-@@ -1952,6 +1952,9 @@ if (!is_robolectric && enable_java_templates) {
+@@ -1959,6 +1959,9 @@ if (!is_robolectric && enable_java_templates) {
sources = [ "//build/android/java/templates/BuildConfig.template" ]
defines = []
@@ -92,7 +92,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -848,6 +848,8 @@ chrome_java_sources = [
+@@ -858,6 +858,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/omaha/OmahaBase.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegate.java",
"java/src/org/chromium/chrome/browser/omaha/OmahaDelegateBase.java",
@@ -686,7 +686,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2669,6 +2669,12 @@ static_library("browser") {
+@@ -2660,6 +2660,12 @@ static_library("browser") {
}
if (is_android) {
@@ -1004,18 +1004,18 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -375,6 +375,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -386,6 +386,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kProtectedTabsAndroid,
&kPwaRestoreUi,
&kPwaRestoreUiAtStartup,
+ &kInlineUpdateFlow,
- &kOmahaMinSdkVersionAndroid,
- &kShortCircuitUnfocusAnimation,
- &kShowHomeButtonPolicyAndroid,
+ &kQuickDeleteAndroidSurvey,
+ &kReadAloud,
+ &kReadAloudAudioOverviews,
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
-@@ -464,6 +464,7 @@ public abstract class ChromeFeatureList {
+@@ -469,6 +469,7 @@ public abstract class ChromeFeatureList {
public static final String INCOGNITO_NTP_SMALL_ICON = "IncognitoNtpSmallIcon";
public static final String INCOGNITO_SCREENSHOT = "IncognitoScreenshot";
public static final String INCOGNITO_THEME_OVERLAY_TESTING = "IncognitoThemeOverlayTesting";
@@ -1026,9 +1026,9 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
--- a/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
+++ b/chrome/browser/media/router/discovery/access_code/access_code_cast_discovery_interface.cc
-@@ -270,7 +270,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher(
- .SetOauthScopes(discovery_scopes)
- .SetOauthConsumerName(kDiscoveryOAuthConsumerName)
+@@ -266,7 +266,7 @@ AccessCodeCastDiscoveryInterface::CreateEndpointFetcher(
+ .SetTimeout(kTimeout)
+ .SetUrl(GURL(base::StrCat({GetDiscoveryUrl(), "/", access_code})))
.SetPostData(kEmptyPostData)
- .Build());
+ .Build(), kTrafficAnnotation);
@@ -1605,7 +1605,7 @@ diff --git a/chrome/browser/safety_hub/android/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/save_to_drive/drive_uploader.cc
--- a/chrome/browser/save_to_drive/drive_uploader.cc
+++ b/chrome/browser/save_to_drive/drive_uploader.cc
-@@ -288,7 +288,7 @@ DriveUploader::CreateEndpointFetcher(
+@@ -290,7 +290,7 @@ DriveUploader::CreateEndpointFetcher(
return std::make_unique(
/*url_loader_factory=*/url_loader_factory_.get(),
/*identity_manager=*/identity_manager_,
@@ -1617,7 +1617,7 @@ diff --git a/chrome/browser/save_to_drive/drive_uploader.cc b/chrome/browser/sav
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
-@@ -2279,6 +2279,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -2306,6 +2306,12 @@ Your Google account may have other forms of browsing history like searches and a
Chrome updates are no longer supported for this version of Android
@@ -1630,7 +1630,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
-@@ -4255,7 +4261,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -4315,7 +4321,10 @@ To change this setting, BEGIN_LINKdelete the Chrome d
@@ -1642,7 +1642,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Newer version is available
-@@ -4266,6 +4275,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -4326,6 +4335,18 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Android version is unsupported
@@ -1664,7 +1664,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
--- a/chrome/browser/ui/lens/lens_overlay_query_controller.cc
+++ b/chrome/browser/ui/lens/lens_overlay_query_controller.cc
-@@ -726,7 +726,7 @@ LensOverlayQueryController::CreateEndpointFetcher(
+@@ -742,7 +742,7 @@ LensOverlayQueryController::CreateEndpointFetcher(
.SetTimeout(timeout)
.SetUrl(fetch_url)
.SetUploadProgressCallback(std::move(upload_progress_callback))
@@ -1676,7 +1676,7 @@ diff --git a/chrome/browser/ui/lens/lens_overlay_query_controller.cc b/chrome/br
diff --git a/components/commerce/core/account_checker.cc b/components/commerce/core/account_checker.cc
--- a/components/commerce/core/account_checker.cc
+++ b/components/commerce/core/account_checker.cc
-@@ -331,7 +331,7 @@ std::unique_ptr AccountChecker::CreateEndpointFetcher(
+@@ -327,7 +327,7 @@ std::unique_ptr AccountChecker::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique(
@@ -1688,7 +1688,7 @@ diff --git a/components/commerce/core/account_checker.cc b/components/commerce/c
diff --git a/components/commerce/core/compare/cluster_server_proxy.cc b/components/commerce/core/compare/cluster_server_proxy.cc
--- a/components/commerce/core/compare/cluster_server_proxy.cc
+++ b/components/commerce/core/compare/cluster_server_proxy.cc
-@@ -158,7 +158,7 @@ std::unique_ptr ClusterServerProxy::CreateEndpointFetcher(
+@@ -156,7 +156,7 @@ std::unique_ptr ClusterServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
commerce::MaybeUseAlternateShoppingServer(request_params);
return std::make_unique(
@@ -1700,7 +1700,7 @@ diff --git a/components/commerce/core/compare/cluster_server_proxy.cc b/componen
diff --git a/components/commerce/core/compare/product_specifications_server_proxy.cc b/components/commerce/core/compare/product_specifications_server_proxy.cc
--- a/components/commerce/core/compare/product_specifications_server_proxy.cc
+++ b/components/commerce/core/compare/product_specifications_server_proxy.cc
-@@ -298,7 +298,7 @@ ProductSpecificationsServerProxy::CreateEndpointFetcher(
+@@ -296,7 +296,7 @@ ProductSpecificationsServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique(
@@ -1712,7 +1712,7 @@ diff --git a/components/commerce/core/compare/product_specifications_server_prox
diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
--- a/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
+++ b/components/commerce/core/subscriptions/subscriptions_server_proxy.cc
-@@ -304,7 +304,7 @@ SubscriptionsServerProxy::CreateEndpointFetcher(
+@@ -302,7 +302,7 @@ SubscriptionsServerProxy::CreateEndpointFetcher(
.SetPostData(post_data);
MaybeUseAlternateShoppingServer(request_params);
return std::make_unique(
@@ -1721,12 +1721,24 @@ diff --git a/components/commerce/core/subscriptions/subscriptions_server_proxy.c
}
void SubscriptionsServerProxy::HandleManageSubscriptionsResponses(
+diff --git a/components/contextual_search/internal/composebox_query_controller.cc b/components/contextual_search/internal/composebox_query_controller.cc
+--- a/components/contextual_search/internal/composebox_query_controller.cc
++++ b/components/contextual_search/internal/composebox_query_controller.cc
+@@ -525,7 +525,7 @@ ComposeboxQueryController::CreateEndpointFetcher(
+ .SetTimeout(timeout)
+ .SetUploadProgressCallback(std::move(upload_progress_callback))
+ .SetUrl(fetch_url)
+- .Build());
++ .Build(), kTrafficAnnotationTag);
+ }
+
+ lens::LensOverlayClientContext ComposeboxQueryController::CreateClientContext()
diff --git a/components/data_sharing/internal/data_sharing_network_loader_impl.cc b/components/data_sharing/internal/data_sharing_network_loader_impl.cc
--- a/components/data_sharing/internal/data_sharing_network_loader_impl.cc
+++ b/components/data_sharing/internal/data_sharing_network_loader_impl.cc
-@@ -78,7 +78,7 @@ DataSharingNetworkLoaderImpl::CreateEndpointFetcher(
- .SetOauthScopes(scopes)
- .SetOauthConsumerName(kOauthConsumerName)
+@@ -63,7 +63,7 @@ DataSharingNetworkLoaderImpl::CreateEndpointFetcher(
+ .SetUrl(url)
+ .SetOAuthConsumerId(signin::OAuthConsumerId::kDataSharingAndroid)
.SetPostData(post_data)
- .Build());
+ .Build(), annotation_tag);
@@ -1736,10 +1748,10 @@ diff --git a/components/data_sharing/internal/data_sharing_network_loader_impl.c
diff --git a/components/data_sharing/internal/preview_server_proxy.cc b/components/data_sharing/internal/preview_server_proxy.cc
--- a/components/data_sharing/internal/preview_server_proxy.cc
+++ b/components/data_sharing/internal/preview_server_proxy.cc
-@@ -351,7 +351,7 @@ std::unique_ptr PreviewServerProxy::CreateEndpointFetcher(
+@@ -346,7 +346,7 @@ std::unique_ptr PreviewServerProxy::CreateEndpointFetcher(
+ .SetContentType(kContentType)
+ .SetTimeout(kTimeout)
.SetUrl(url)
- .SetOauthScopes(std::vector{kOAuthScope})
- .SetOauthConsumerName(kOAuthName)
- .Build());
+ .Build(), kGetSharedDataPreviewTrafficAnnotation);
}
@@ -1783,7 +1795,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
} // namespace
EndpointResponse::EndpointResponse() = default;
-@@ -108,9 +122,11 @@ EndpointFetcher::RequestParams::Builder::Build() {
+@@ -105,9 +119,11 @@ EndpointFetcher::RequestParams::Builder::Build() {
EndpointFetcher::EndpointFetcher(
const scoped_refptr& url_loader_factory,
signin::IdentityManager* identity_manager,
@@ -1796,7 +1808,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
request_params_(std::move(request_params)) {
if (request_params_.auth_type() == OAUTH) {
DCHECK(identity_manager_)
-@@ -123,12 +139,32 @@ EndpointFetcher::EndpointFetcher(
+@@ -120,12 +136,32 @@ EndpointFetcher::EndpointFetcher(
EndpointFetcher::EndpointFetcher(
const net::NetworkTrafficAnnotationTag& annotation_tag)
: identity_manager_(nullptr),
@@ -1829,7 +1841,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
EndpointFetcher::~EndpointFetcher() = default;
void EndpointFetcher::Fetch(EndpointFetcherCallback endpoint_fetcher_callback) {
-@@ -211,13 +247,10 @@ void EndpointFetcher::PerformHttpRequest(
+@@ -208,13 +244,10 @@ void EndpointFetcher::PerformHttpRequest(
auto resource_request = std::make_unique();
resource_request->method = GetHttpMethodString(request_params_.http_method());
resource_request->url = request_params_.url();
@@ -1846,7 +1858,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
// Add Content-Type header if post data is present.
bool has_body_content = (request_params_.http_method() == HttpMethod::kPost ||
request_params_.http_method() == HttpMethod::kPut) &&
-@@ -258,8 +291,23 @@ void EndpointFetcher::PerformHttpRequest(
+@@ -255,8 +288,23 @@ void EndpointFetcher::PerformHttpRequest(
break;
}
@@ -1870,7 +1882,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
if (has_body_content) {
simple_url_loader_->AttachStringForUpload(
-@@ -272,9 +320,18 @@ void EndpointFetcher::PerformHttpRequest(
+@@ -269,9 +317,18 @@ void EndpointFetcher::PerformHttpRequest(
simple_url_loader_->SetRetryOptions(GetMaxRetries(),
network::SimpleURLLoader::RETRY_ON_5XX);
@@ -1892,7 +1904,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
network::SimpleURLLoader::BodyAsStringCallbackDeprecated
body_as_string_callback = base::BindOnce(
&EndpointFetcher::OnResponseFetched, weak_ptr_factory_.GetWeakPtr(),
-@@ -333,21 +390,6 @@ void EndpointFetcher::OnResponseFetched(
+@@ -330,21 +387,6 @@ void EndpointFetcher::OnResponseFetched(
std::move(endpoint_fetcher_callback).Run(std::move(response));
}
@@ -1914,7 +1926,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.cc b/components/endpoi
int EndpointFetcher::GetMaxRetries() const {
return request_params_.max_retries.value_or(kNumRetries);
}
-@@ -365,4 +407,39 @@ std::string EndpointFetcher::GetUrlForTesting() {
+@@ -362,4 +404,39 @@ std::string EndpointFetcher::GetUrlForTesting() {
return request_params_.url().spec();
}
@@ -1984,7 +1996,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
int http_status_code{-1};
std::optional error_type;
scoped_refptr headers;
-@@ -314,7 +320,16 @@ class EndpointFetcher {
+@@ -301,7 +307,16 @@ class EndpointFetcher {
EndpointFetcher(
const scoped_refptr& url_loader_factory,
signin::IdentityManager* identity_manager,
@@ -2002,7 +2014,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
EndpointFetcher(const EndpointFetcher& endpoint_fetcher) = delete;
EndpointFetcher& operator=(const EndpointFetcher& endpoint_fetcher) = delete;
-@@ -347,11 +362,17 @@ class EndpointFetcher {
+@@ -334,11 +349,17 @@ class EndpointFetcher {
void OnResponseFetched(EndpointFetcherCallback callback,
std::unique_ptr response_body);
@@ -2020,7 +2032,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
// Members set in constructor
const scoped_refptr url_loader_factory_;
-@@ -359,6 +380,8 @@ class EndpointFetcher {
+@@ -346,6 +367,8 @@ class EndpointFetcher {
// this case, callers should invoke `PerformRequest` directly).
const raw_ptr identity_manager_;
@@ -2029,7 +2041,7 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
// The complete definition of the specific network request to be performed.
// Contains authentication details and response handling preferences.
const RequestParams request_params_;
-@@ -368,6 +391,9 @@ class EndpointFetcher {
+@@ -355,6 +378,9 @@ class EndpointFetcher {
access_token_fetcher_;
std::unique_ptr simple_url_loader_;
@@ -2042,16 +2054,16 @@ diff --git a/components/endpoint_fetcher/endpoint_fetcher.h b/components/endpoin
diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.cc
--- a/components/manta/base_provider.cc
+++ b/components/manta/base_provider.cc
-@@ -145,7 +145,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcher(
- .SetOauthScopes(scopes)
- .SetOauthConsumerName(oauth_consumer_name)
+@@ -140,7 +140,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcher(
+ .SetUrl(url)
+ .SetOAuthConsumerId(signin::OAuthConsumerId::kManta)
.SetPostData(post_data)
- .Build());
+ .Build(), annotation_tag);
}
std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode(
-@@ -163,7 +163,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode(
+@@ -158,7 +158,7 @@ std::unique_ptr BaseProvider::CreateEndpointFetcherForDemoMode(
.SetTimeout(timeout)
.SetPostData(post_data)
.SetChannel(version_info::Channel::STABLE)
@@ -2060,18 +2072,6 @@ diff --git a/components/manta/base_provider.cc b/components/manta/base_provider.
}
} // namespace manta
-diff --git a/components/omnibox/composebox/composebox_query_controller.cc b/components/omnibox/composebox/composebox_query_controller.cc
---- a/components/omnibox/composebox/composebox_query_controller.cc
-+++ b/components/omnibox/composebox/composebox_query_controller.cc
-@@ -524,7 +524,7 @@ ComposeboxQueryController::CreateEndpointFetcher(
- .SetTimeout(timeout)
- .SetUploadProgressCallback(std::move(upload_progress_callback))
- .SetUrl(fetch_url)
-- .Build());
-+ .Build(), kTrafficAnnotationTag);
- }
-
- lens::LensOverlayClientContext ComposeboxQueryController::CreateClientContext()
diff --git a/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc b/cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/Bromite-auto-updater.inc
new file mode 100644
--- /dev/null
diff --git a/build/patches/Bromite-subresource-adblocker.patch b/build/patches/Bromite-subresource-adblocker.patch
index f8e1538e..45a1aefe 100644
--- a/build/patches/Bromite-subresource-adblocker.patch
+++ b/build/patches/Bromite-subresource-adblocker.patch
@@ -33,7 +33,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/adblock_native_gateway.cc | 31 ++
.../browser/flags/AdBlockNativeGateway.java | 30 ++
.../net/system_network_context_manager.cc | 4 +
- .../sessions/session_restore_android.cc | 7 +-
.../strings/android_chrome_strings.grd | 14 +
chrome/common/pref_names.h | 5 +
.../strings/android/site_settings.grdp | 3 +
@@ -51,7 +50,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/subresource_filter_features.cc | 118 +-------
.../core/browser/verified_ruleset_dealer.cc | 4 +
.../core/common/indexed_ruleset.cc | 5 +-
- 39 files changed, 1287 insertions(+), 129 deletions(-)
+ 38 files changed, 1282 insertions(+), 127 deletions(-)
create mode 100644 chrome/android/java/res/layout/adblock_editor.xml
create mode 100644 chrome/android/java/res/xml/adblock_preferences.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/AdBlockEditor.java
@@ -66,7 +65,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -324,6 +324,7 @@ if (_is_default_toolchain) {
+@@ -325,6 +325,7 @@ if (_is_default_toolchain) {
"//chrome/android/features/tab_ui/public:ui_java_resources",
"//chrome/android/modules/stack_unwinder/provider:java",
"//chrome/android/webapk/libs/client:client_java",
@@ -77,7 +76,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
-@@ -432,6 +432,7 @@ chrome_java_resources = [
+@@ -439,6 +439,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 +84,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",
-@@ -627,6 +628,7 @@ chrome_java_resources = [
+@@ -639,6 +640,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 +95,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
-@@ -918,6 +918,8 @@ chrome_java_sources = [
+@@ -929,6 +929,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 +179,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
-@@ -312,6 +312,24 @@ found in the LICENSE file.
+@@ -317,6 +317,24 @@ found in the LICENSE file.
@@ -442,7 +441,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -88,6 +88,8 @@ import java.util.HashMap;
+@@ -87,6 +87,8 @@ import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
@@ -451,7 +450,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
/**
* The Chrome settings activity.
*
-@@ -948,6 +950,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -1016,6 +1018,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
if (!MAIN_FRAGMENT_TAG.equals(fragment.getTag())) {
return;
}
@@ -462,7 +461,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
-@@ -17103,6 +17103,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
+@@ -17255,6 +17255,16 @@ Please help our engineers fix this problem. Tell us what happened right before y
Never show this again.
@@ -533,7 +532,7 @@ diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
-@@ -1270,6 +1270,34 @@ BrowserProcessImpl::component_updater() {
+@@ -1285,6 +1285,34 @@ BrowserProcessImpl::component_updater() {
return component_updater_.get();
}
@@ -571,7 +570,7 @@ diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_pro
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
-@@ -212,6 +212,7 @@ class BrowserProcessImpl : public BrowserProcess,
+@@ -211,6 +211,7 @@ class BrowserProcessImpl : public BrowserProcess,
#endif
component_updater::ComponentUpdateService* component_updater() override;
@@ -579,7 +578,7 @@ diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_proc
MediaFileSystemRegistry* media_file_system_registry() override;
WebRtcLogUploader* webrtc_log_uploader() override;
network_time::NetworkTimeTracker* network_time_tracker() override;
-@@ -429,6 +430,7 @@ class BrowserProcessImpl : public BrowserProcess,
+@@ -428,6 +429,7 @@ class BrowserProcessImpl : public BrowserProcess,
// to concerns over integrity of data shared between profiles,
// but some users of component updater only install per-user.
std::unique_ptr component_updater_;
@@ -590,7 +589,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
-@@ -390,6 +390,9 @@ StartupProfileInfo CreateInitialProfile(
+@@ -429,6 +429,9 @@ StartupProfileInfo CreateInitialProfile(
// missing code in the above test.
CHECK(profile_info.profile) << "Cannot get default profile.";
@@ -712,23 +711,6 @@ diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/brows
// Static auth params
registry->RegisterStringPref(prefs::kAuthSchemes,
"basic,digest,ntlm,negotiate");
-diff --git a/chrome/browser/sessions/session_restore_android.cc b/chrome/browser/sessions/session_restore_android.cc
---- a/chrome/browser/sessions/session_restore_android.cc
-+++ b/chrome/browser/sessions/session_restore_android.cc
-@@ -58,8 +58,11 @@ content::WebContents* SessionRestore::RestoreForeignSessionTab(
- DCHECK(current_tab);
- // If swapped, return the current tab's most up-to-date web contents.
- if (disposition == WindowOpenDisposition::CURRENT_TAB) {
-- current_tab->SwapWebContents(std::move(new_web_contents), false, false);
-- return current_tab->web_contents();
-+ int active_tab_index = tab_model->GetActiveIndex();
-+ tab_model->CreateTab(current_tab, new_web_contents.release(),
-+ disposition == WindowOpenDisposition::NEW_BACKGROUND_TAB);
-+ tab_model->CloseTabAt(active_tab_index);
-+ return raw_new_web_contents;
- }
- DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB ||
- disposition == WindowOpenDisposition::NEW_BACKGROUND_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
@@ -756,7 +738,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
-@@ -2931,6 +2931,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
+@@ -2942,6 +2942,11 @@ inline constexpr char kAudioCaptureAllowed[] = "hardware.audio_capture_enabled";
inline constexpr char kAudioCaptureAllowedUrls[] =
"hardware.audio_capture_allowed_urls";
@@ -771,7 +753,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
-@@ -406,6 +406,9 @@
+@@ -421,6 +421,9 @@
This site shows intrusive or misleading ads
@@ -1613,7 +1595,7 @@ diff --git a/components/subresource_filter/content/browser/content_subresource_f
web_contents_helper_(web_contents_helper) {}
ContentSubresourceFilterThrottleManager::
-@@ -629,6 +633,17 @@ ContentSubresourceFilterThrottleManager::
+@@ -628,6 +632,17 @@ ContentSubresourceFilterThrottleManager::
throttle->NotifyPageActivationWithRuleset(EnsureRulesetHandle(),
ad_tagging_state);
}
diff --git a/build/patches/Bubble-Locking-on-UI-DevTools.patch b/build/patches/Bubble-Locking-on-UI-DevTools.patch
index 49b9b49d..a91e5acf 100644
--- a/build/patches/Bubble-Locking-on-UI-DevTools.patch
+++ b/build/patches/Bubble-Locking-on-UI-DevTools.patch
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/ui/views/toolbar/reload_button.cc
--- a/chrome/browser/ui/views/toolbar/reload_button.cc
+++ b/chrome/browser/ui/views/toolbar/reload_button.cc
-@@ -225,6 +225,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) {
+@@ -274,6 +274,14 @@ void ReloadButton::ButtonPressed(const ui::Event& event) {
command = IDC_RELOAD;
}
@@ -33,7 +33,7 @@ diff --git a/chrome/browser/ui/views/toolbar/reload_button.cc b/chrome/browser/u
diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
--- a/ui/views/widget/widget.h
+++ b/ui/views/widget/widget.h
-@@ -1465,6 +1465,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1468,6 +1468,19 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
// initialized.
void SaveWindowPlacementIfNeeded();
@@ -53,7 +53,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
protected:
// Creates the RootView to be used within this Widget. Subclasses may override
// to create custom RootViews that do specialized event processing.
-@@ -1505,13 +1518,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1508,13 +1521,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
void set_widget_closed() { widget_closed_ = true; }
private:
@@ -67,7 +67,7 @@ diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h
class PaintAsActiveLockImpl;
friend class ButtonTest;
-@@ -1522,11 +1528,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
+@@ -1525,11 +1531,6 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate,
friend class ui_devtools::BubbleLocking;
friend void DisableActivationChangeHandlingForTests();
diff --git a/build/patches/Chrome-web-store-protection.patch b/build/patches/Chrome-web-store-protection.patch
index 59c168c6..d4d00b3f 100644
--- a/build/patches/Chrome-web-store-protection.patch
+++ b/build/patches/Chrome-web-store-protection.patch
@@ -129,7 +129,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_a
diff --git a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
--- a/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
+++ b/chrome/browser/extensions/api/developer_private/developer_private_functions_shared.cc
-@@ -364,6 +364,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
+@@ -375,6 +375,7 @@ ExtensionFunction::ResponseAction DeveloperPrivateAutoUpdateFunction::Run() {
ExtensionUpdater::CheckParams params;
params.fetch_priority = DownloadFetchPriority::kForeground;
params.install_immediately = true;
@@ -137,7 +137,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
params.callback =
base::BindOnce(&DeveloperPrivateAutoUpdateFunction::OnComplete, this);
updater->CheckNow(std::move(params));
-@@ -500,7 +501,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
+@@ -511,7 +512,7 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
const developer::ProfileConfigurationUpdate& update = params->update;
@@ -146,7 +146,7 @@ diff --git a/chrome/browser/extensions/api/developer_private/developer_private_f
Profile* profile = Profile::FromBrowserContext(browser_context());
CHECK(profile);
if (supervised_user::AreExtensionsPermissionsEnabled(profile)) {
-@@ -514,6 +515,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
+@@ -525,6 +526,11 @@ DeveloperPrivateUpdateProfileConfigurationFunction::Run() {
->MarkNoticeAsAcknowledgedGlobally();
}
@@ -243,7 +243,7 @@ diff --git a/chrome/browser/extensions/api/webstore_private/webstore_private_api
diff --git a/chrome/browser/extensions/chrome_extension_system.cc b/chrome/browser/extensions/chrome_extension_system.cc
--- a/chrome/browser/extensions/chrome_extension_system.cc
+++ b/chrome/browser/extensions/chrome_extension_system.cc
-@@ -95,6 +95,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
+@@ -96,6 +96,7 @@ UninstallPingSender::FilterResult ShouldSendUninstallPing(
Profile* profile,
const Extension* extension,
UninstallReason reason) {
@@ -267,7 +267,7 @@ diff --git a/chrome/browser/extensions/cws_info_service_factory.cc b/chrome/brow
diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/extensions/extension_management.cc
--- a/chrome/browser/extensions/extension_management.cc
+++ b/chrome/browser/extensions/extension_management.cc
-@@ -431,6 +431,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
+@@ -436,6 +436,7 @@ bool ExtensionManagement::IsExemptFromMV2DeprecationByPolicy(
bool ExtensionManagement::IsAllowedByUnpublishedAvailabilityPolicy(
const Extension* extension) {
@@ -291,7 +291,7 @@ diff --git a/chrome/browser/extensions/extension_safety_check_utils.cc b/chrome/
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
-@@ -247,8 +247,6 @@ ExtensionService::ExtensionService(
+@@ -248,8 +248,6 @@ ExtensionService::ExtensionService(
UpgradeDetector::GetInstance()->AddObserver(this);
#endif
@@ -300,7 +300,7 @@ diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/ext
ExtensionManagementFactory::GetForBrowserContext(profile_)->AddObserver(this);
if (autoupdate_enabled) {
-@@ -763,7 +761,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
+@@ -764,7 +762,7 @@ void ExtensionService::OnExtensionManagementSettingsChanged() {
// unpublished extensions should not be enabled. This update allows
// unpublished extensions to be disabled sooner rather than waiting till the
// next regularly scheduled fetch.
@@ -374,7 +374,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
CHECK(enabled_);
if (params.ids.empty()) {
// Checking all extensions. Cancel pending DoCheckSoon() call if there's
-@@ -442,7 +454,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -450,7 +462,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
int request_id = next_request_id_++;
@@ -383,7 +383,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
if (params.ids.empty()) {
NotifyStarted();
}
-@@ -512,7 +524,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -519,7 +531,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id);
} else if (!Manifest::IsAutoUpdateableLocation(info->install_source())) {
@@ -392,7 +392,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
continue;
}
// We have to mark high-priority extensions (such as policy-forced
-@@ -522,7 +534,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -529,7 +541,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
// See https://crbug.com/904600 and https://crbug.com/965686.
const bool is_high_priority_extension_pending =
pending_extension_manager->HasHighPriorityPendingExtension();
@@ -401,7 +401,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[pending_id] =
GetExtensionUpdateData(pending_id);
update_check_params.update_info[pending_id].is_corrupt_reinstall =
-@@ -545,6 +557,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -552,6 +564,8 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
LOG(WARNING) << "Corrupt extension with id " << pending_id
<< " will be reinstalled with ExtensionDownloader.";
}
@@ -410,7 +410,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
} else {
InstallStageTracker::Get(profile_)->ReportFailure(
pending_id,
-@@ -557,13 +571,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -564,13 +578,6 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
AddToDownloader(®istry_->disabled_extensions(), pending_ids, request_id,
params.fetch_priority, &update_check_params);
ExtensionSet remotely_disabled_extensions;
@@ -424,7 +424,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
AddToDownloader(&remotely_disabled_extensions, pending_ids, request_id,
params.fetch_priority, &update_check_params);
} else {
-@@ -571,7 +578,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
+@@ -578,7 +585,7 @@ void ExtensionUpdater::CheckNow(CheckParams params) {
const Extension* extension =
registry_->GetExtensionById(id, ExtensionRegistry::EVERYTHING);
if (extension) {
@@ -433,7 +433,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
update_check_params.update_info[id] = GetExtensionUpdateData(id);
} else if (AddExtensionToDownloader(*extension, request_id,
params.fetch_priority)) {
-@@ -715,7 +722,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
+@@ -722,7 +729,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
file.extension_id, InstallStageTracker::Stage::INSTALLING);
UpdatePingData(file.extension_id, ping);
@@ -442,7 +442,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
FetchedCRXFile fetched(file, file_ownership_passed, request_ids,
std::move(callback));
-@@ -726,6 +733,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
+@@ -733,6 +740,7 @@ void ExtensionUpdater::OnExtensionDownloadFinished(
bool ExtensionUpdater::GetPingDataForExtension(const ExtensionId& id,
DownloadPingData* ping_data) {
@@ -450,7 +450,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
DCHECK(alive_);
ping_data->rollcall_days =
CalculatePingDaysForExtension(extension_prefs_->LastPingDay(id));
-@@ -845,7 +853,7 @@ bool ExtensionUpdater::CanUseUpdateService(
+@@ -852,7 +860,7 @@ bool ExtensionUpdater::CanUseUpdateService(
void ExtensionUpdater::InstallCRXFile(FetchedCRXFile crx_file) {
std::set request_ids;
@@ -459,7 +459,7 @@ diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/bro
<< crx_file.info.path.value();
// The delegate is now responsible for cleaning up the temp file at
-@@ -1054,7 +1062,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
+@@ -1061,7 +1069,7 @@ void ExtensionUpdater::NotifyIfFinished(int request_id) {
if (!request.in_progress_ids.empty() || request.awaiting_update_service) {
return; // This request is not done yet.
}
@@ -504,7 +504,7 @@ diff --git a/chrome/browser/extensions/webstore_install_helper.cc b/chrome/brows
diff --git a/chrome/browser/extensions/webstore_installer.cc b/chrome/browser/extensions/webstore_installer.cc
--- a/chrome/browser/extensions/webstore_installer.cc
+++ b/chrome/browser/extensions/webstore_installer.cc
-@@ -594,7 +594,7 @@ void WebstoreInstaller::StartDownload(
+@@ -595,7 +595,7 @@ void WebstoreInstaller::StartDownload(
traffic_annotation));
params->set_file_path(file);
params->set_initiator(render_frame_host->GetLastCommittedOrigin());
@@ -556,7 +556,7 @@ diff --git a/chrome/browser/resources/extensions/manager.ts b/chrome/browser/res
diff --git a/chrome/browser/resources/extensions/service.ts b/chrome/browser/resources/extensions/service.ts
--- a/chrome/browser/resources/extensions/service.ts
+++ b/chrome/browser/resources/extensions/service.ts
-@@ -342,6 +342,11 @@ export class Service implements ServiceInterface {
+@@ -356,6 +356,11 @@ export class Service implements ServiceInterface {
{inDeveloperMode: inDevMode});
}
@@ -1201,8 +1201,8 @@ diff --git a/extensions/browser/updater/safe_manifest_parser.cc b/extensions/bro
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
-@@ -172,4 +172,11 @@ BASE_FEATURE(kRuntimeOnMessageWebExtensionPolyfillSupport,
- "RuntimeOnMessageWebExtensionPolyfillSupport",
+@@ -182,4 +182,11 @@ BASE_FEATURE(kEnableShouldShowPromotion, base::FEATURE_DISABLED_BY_DEFAULT);
+ BASE_FEATURE(kEnableWebRequestCollapsedListeners,
base::FEATURE_DISABLED_BY_DEFAULT);
+CROMITE_FEATURE(kEnableExtensionAutoupdate,
@@ -1216,9 +1216,9 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
-@@ -287,6 +287,16 @@ BASE_DECLARE_FEATURE(kContentVerifyJobUseJobVersionForHashing);
- // during execution) the error is passed back to the sender.
- BASE_DECLARE_FEATURE(kRuntimeOnMessageWebExtensionPolyfillSupport);
+@@ -300,6 +300,16 @@ BASE_DECLARE_FEATURE(kEnableShouldShowPromotion);
+ // Enables the "collapsed listeners" strategy for webRequest lazy listeners.
+ BASE_DECLARE_FEATURE(kEnableWebRequestCollapsedListeners);
+// Activates the auto update of extensions.
+// the only data provided by default is the list of extensions.
diff --git a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
index 88636bb7..84514312 100644
--- a/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
+++ b/build/patches/Clear-CORS-Preflight-Cache-on-clearing-data.patch
@@ -41,7 +41,7 @@ diff --git a/services/network/cors/preflight_cache.h b/services/network/cors/pre
diff --git a/services/network/cors/preflight_controller.cc b/services/network/cors/preflight_controller.cc
--- a/services/network/cors/preflight_controller.cc
+++ b/services/network/cors/preflight_controller.cc
-@@ -752,6 +752,10 @@ void PreflightController::ClearCorsPreflightCache(
+@@ -755,6 +755,10 @@ void PreflightController::ClearCorsPreflightCache(
cache_.ClearCache(std::move(url_filter));
}
@@ -55,7 +55,7 @@ diff --git a/services/network/cors/preflight_controller.cc b/services/network/co
diff --git a/services/network/cors/preflight_controller.h b/services/network/cors/preflight_controller.h
--- a/services/network/cors/preflight_controller.h
+++ b/services/network/cors/preflight_controller.h
-@@ -151,6 +151,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
+@@ -152,6 +152,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) PreflightController final {
url_loader_network_service_observer,
const PreflightMode& preflight_mode);
@@ -79,7 +79,7 @@ diff --git a/services/network/cors/preflight_result.cc b/services/network/cors/p
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
-@@ -1372,6 +1372,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
+@@ -1373,6 +1373,7 @@ void NetworkContext::ClearHttpCache(base::Time start_time,
base::Time end_time,
mojom::ClearDataFilterPtr filter,
ClearHttpCacheCallback callback) {
diff --git a/build/patches/Client-hints-overrides.patch b/build/patches/Client-hints-overrides.patch
index 6c55ae48..af8007ba 100644
--- a/build/patches/Client-hints-overrides.patch
+++ b/build/patches/Client-hints-overrides.patch
@@ -63,7 +63,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
std::string brand_version =
output_version_type == blink::UserAgentBrandVersionType::kFullVersion
-@@ -698,6 +696,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service,
+@@ -693,6 +691,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(bool only_low_entropy_ch) {
}
// High entropy client hints.
@@ -270,7 +270,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
-@@ -569,6 +569,11 @@
+@@ -592,6 +592,11 @@
name: "AriaNotifyV2",
status: {"Android": "test", "Win": "test", "Mac": "test", "Linux": "test"},
},
@@ -282,7 +282,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
{
name: "AriaRowColIndexText",
status: "stable",
-@@ -976,8 +981,7 @@
+@@ -1019,8 +1024,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/patches/Close-Sessions-On-Ip-Change.patch b/build/patches/Close-Sessions-On-Ip-Change.patch
index fbce7cbc..256bbe55 100644
--- a/build/patches/Close-Sessions-On-Ip-Change.patch
+++ b/build/patches/Close-Sessions-On-Ip-Change.patch
@@ -88,7 +88,7 @@ new file mode 100644
diff --git a/net/base/features.cc b/net/base/features.cc
--- a/net/base/features.cc
+++ b/net/base/features.cc
-@@ -509,7 +509,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -511,7 +511,7 @@ BASE_FEATURE(kRelatedWebsitePartitionAPI, base::FEATURE_DISABLED_BY_DEFAULT);
// NetworkChangeNotifier::AreNetworkHandlesSupported).
#if BUILDFLAG(IS_ANDROID)
inline constexpr auto kMigrateSessionsOnNetworkChangeV2Default =
diff --git a/build/patches/Compress-libchrome-to-free-up-some-space.patch b/build/patches/Compress-libchrome-to-free-up-some-space.patch
index ef077093..f60bdcf4 100644
--- a/build/patches/Compress-libchrome-to-free-up-some-space.patch
+++ b/build/patches/Compress-libchrome-to-free-up-some-space.patch
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
--- a/chrome/android/chrome_public_apk_tmpl.gni
+++ b/chrome/android/chrome_public_apk_tmpl.gni
-@@ -677,6 +677,7 @@ template("chrome_common_apk_or_module_tmpl") {
+@@ -674,6 +674,7 @@ template("chrome_common_apk_or_module_tmpl") {
[ "//components/crash/core/app:chrome_crashpad_handler_named_as_so" ]
loadable_modules += [ "$root_out_dir/libchrome_crashpad_handler.so" ]
library_always_compress += [ "libchrome_crashpad_handler.so" ]
diff --git a/build/patches/Content-settings-infrastructure.patch b/build/patches/Content-settings-infrastructure.patch
index 0514c821..efe25dbc 100644
--- a/build/patches/Content-settings-infrastructure.patch
+++ b/build/patches/Content-settings-infrastructure.patch
@@ -24,8 +24,8 @@ Require: bromite-build-utils.patch
.../site_details_permission.html | 8 +-
.../site_settings/site_details_permission.ts | 44 ++
.../site_settings/site_settings_mixin.ts | 20 +-
+ .../site_settings/site_settings_page.ts | 30 +-
.../site_settings/site_settings_util.ts | 55 +++
- .../site_settings_page/site_settings_page.ts | 30 +-
chrome/browser/ui/BUILD.gn | 2 +
.../controls/rich_controls_container_view.h | 7 +
.../views/page_info/page_info_bubble_view.cc | 2 +-
@@ -38,16 +38,16 @@ Require: bromite-build-utils.patch
.../ui/webui/settings/site_settings_helper.cc | 46 +-
.../browser_ui/settings/android/BUILD.gn | 1 +
.../preference_spinner_single_widget.xml | 92 ++++
- .../settings/SpinnerPreference.java | 24 +
+ .../settings/SpinnerPreference.java | 25 ++
.../browser_ui/site_settings/android/BUILD.gn | 18 +
.../res/xml/site_settings_preferences.xml | 7 +
.../site_settings/AllSiteSettings.java | 5 +-
.../BromiteCustomContentSetting.java | 155 +++++++
.../BromiteCustomContentSettingImpl.java | 415 ++++++++++++++++++
...tomTriStateSiteSettingsPreferenceImpl.java | 24 +
- .../ContentSettingsResources.java | 39 +-
+ .../ContentSettingsResources.java | 32 +-
.../site_settings/SingleCategorySettings.java | 57 ++-
- .../site_settings/SingleWebsiteSettings.java | 54 ++-
+ .../site_settings/SingleWebsiteSettings.java | 50 ++-
.../site_settings/SiteSettings.java | 33 +-
.../site_settings/SiteSettingsCategory.java | 18 +-
.../site_settings/SiteSettingsDelegate.java | 2 +
@@ -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, 1972 insertions(+), 108 deletions(-)
+ 74 files changed, 1964 insertions(+), 106 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
-@@ -69,6 +69,10 @@ import org.chromium.url.GURL;
+@@ -70,6 +70,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 {
-@@ -242,7 +246,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
+@@ -239,7 +243,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
-@@ -380,6 +384,17 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
+@@ -377,6 +381,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
-@@ -353,6 +353,7 @@ build_webui("build") {
+@@ -358,6 +358,7 @@ build_webui("build") {
"privacy_sandbox/privacy_sandbox_browser_proxy.ts",
"relaunch_mixin.ts",
"reset_page/reset_browser_proxy.ts",
@@ -160,10 +160,10 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
"route.ts",
"router.ts",
"safety_hub/safety_hub_browser_proxy.ts",
-@@ -366,7 +367,6 @@ build_webui("build") {
+@@ -371,7 +372,6 @@ build_webui("build") {
"site_settings/constants.ts",
"site_settings/site_settings_mixin.ts",
- "site_settings/site_settings_prefs_browser_proxy.ts",
+ "site_settings/site_settings_browser_proxy.ts",
- "site_settings/site_settings_util.ts",
"site_settings/website_usage_browser_proxy.ts",
"time.ts",
@@ -171,7 +171,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
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 @@
+@@ -623,4 +623,5 @@
@@ -395,7 +395,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/settings_category_d
diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b/chrome/browser/resources/settings/site_settings/site_details.html
--- a/chrome/browser/resources/settings/site_settings/site_details.html
+++ b/chrome/browser/resources/settings/site_settings/site_details.html
-@@ -332,5 +332,6 @@
+@@ -334,5 +334,6 @@
label="$i18n{siteSettingsLocalNetworkAccess}">
@@ -405,7 +405,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.html b
diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/chrome/browser/resources/settings/site_settings/site_details.ts
--- a/chrome/browser/resources/settings/site_settings/site_details.ts
+++ b/chrome/browser/resources/settings/site_settings/site_details.ts
-@@ -69,8 +69,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
+@@ -71,8 +71,39 @@ export class SiteDetailsElement extends SiteDetailsElementBase {
return 'site-details';
}
@@ -449,7 +449,7 @@ diff --git a/chrome/browser/resources/settings/site_settings/site_details.ts b/c
diff --git a/chrome/browser/resources/settings/site_settings/site_details_permission.html b/chrome/browser/resources/settings/site_settings/site_details_permission.html
--- a/chrome/browser/resources/settings/site_settings/site_details_permission.html
+++ b/chrome/browser/resources/settings/site_settings/site_details_permission.html
-@@ -57,7 +57,9 @@
+@@ -58,7 +58,9 @@
@@ -13461,7 +13448,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Application version
-@@ -5536,7 +5536,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -5758,7 +5758,7 @@ To change this setting, BEGIN_LINKdelete the Chrome d
@@ -13517,7 +13504,7 @@ diff --git a/chrome/install_static/chromium_install_modes.cc b/chrome/install_st
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
-@@ -1014,7 +1014,7 @@
+@@ -1020,7 +1020,7 @@
@@ -18425,7 +18412,7 @@ i?Ib$(ofrX17!1R|`h|N%TnD<%35@j2bgPM^i2nno*_EOI
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
-@@ -1136,6 +1136,7 @@ bool AutocompleteController::ShouldRunProvider(
+@@ -1109,6 +1109,7 @@ bool AutocompleteController::ShouldRunProvider(
#if BUILDFLAG(IS_ANDROID)
if (omnibox::IsAndroidHub(input_.current_page_classification())) {
@@ -19174,7 +19161,7 @@ diff --git a/components/webui/version/resources/about_version_mobile.css b/compo
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
-@@ -571,19 +571,22 @@ void ResolveInvalidConfigurations() {
+@@ -573,19 +573,22 @@ void ResolveInvalidConfigurations() {
base::FeatureList::IsEnabled(
features::kPrivacySandboxAdsAPIsM1Override)) &&
!base::FeatureList::IsEnabled(blink::features::kFencedFrames)) {
@@ -19201,7 +19188,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Fenced frames must be enabled in order to enable local "
"unpartitioned "
<< "data access. Use --" << switches::kEnableFeatures << "="
-@@ -591,12 +594,14 @@ void ResolveInvalidConfigurations() {
+@@ -593,12 +596,14 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableFeatureFromString(
"FencedFramesLocalUnpartitionedDataAccess", false);
}
@@ -19217,7 +19204,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "Topics cannot be enabled in this configuration. Use --"
<< switches::kEnableFeatures << "="
<< network::features::kBrowsingTopics.name << " in addition.";
-@@ -604,30 +609,23 @@ void ResolveInvalidConfigurations() {
+@@ -606,30 +611,23 @@ void ResolveInvalidConfigurations() {
WebRuntimeFeatures::EnableTopicsDocumentAPI(false);
WebRuntimeFeatures::EnableTopicsImgAPI(false);
} else {
@@ -19254,7 +19241,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
<< "AttributionReporting cannot be enabled in this "
"configuration. Use --"
<< switches::kEnableFeatures << "="
-@@ -635,23 +633,25 @@ void ResolveInvalidConfigurations() {
+@@ -637,23 +635,25 @@ void ResolveInvalidConfigurations() {
<< " in addition.";
WebRuntimeFeatures::EnableAttributionReporting(false);
}
diff --git a/build/patches/Customize-selection-popup.patch b/build/patches/Customize-selection-popup.patch
index bac42722..7545ad8f 100644
--- a/build/patches/Customize-selection-popup.patch
+++ b/build/patches/Customize-selection-popup.patch
@@ -7,19 +7,63 @@ Opens tabs in foreground, Move web search to the top of items,
Web search in tab group and Enable smart text selection
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
- .../browser/ChromeActionModeHandler.java | 4 +-
- .../chrome/browser/ChromeTabbedActivity.java | 15 +-
- ...ActivityTabWebContentsDelegateAndroid.java | 10 +-
- .../compositor/layouts/LayoutManagerImpl.java | 8 ++
- .../tab/TabContextMenuItemDelegate.java | 7 +-
- .../chrome/browser/ui/RootUiCoordinator.java | 8 +-
- .../Customize-selection-popup.grdp | 34 +++++
- .../res/xml/accessibility_preferences.xml | 24 ++++
- .../selection/SelectActionMenuHelper.java | 129 ++++++++++++------
- .../selection/SmartSelectionClient.java | 4 +
- 10 files changed, 192 insertions(+), 51 deletions(-)
+ .../SamsungSelectionActionMenuDelegate.java | 7 +-
+ .../browser/ChromeActionModeHandler.java | 4 +-
+ .../chrome/browser/ChromeTabbedActivity.java | 15 +++-
+ ...ActivityTabWebContentsDelegateAndroid.java | 10 ++-
+ .../compositor/layouts/LayoutManagerImpl.java | 8 ++
+ .../tab/TabContextMenuItemDelegate.java | 7 +-
+ .../chrome/browser/ui/RootUiCoordinator.java | 8 +-
+ .../Customize-selection-popup.grdp | 34 +++++++++
+ .../AutofillSelectionMenuItemHelper.java | 4 +-
+ .../res/xml/accessibility_preferences.xml | 24 ++++++
+ .../selection/SelectActionMenuHelper.java | 20 ++---
+ .../SelectionPopupControllerImpl.java | 2 +-
+ .../selection/SmartSelectionClient.java | 4 +
+ .../browser/PendingSelectionMenu.java | 8 +-
+ .../browser/SelectionMenuItem.java | 73 ++++++++++++-------
+ .../SelectionActionMenuDelegate.java | 32 +++++---
+ 16 files changed, 194 insertions(+), 66 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Customize-selection-popup.grdp
+diff --git a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
+--- a/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
++++ b/android_webview/java/src/org/chromium/android_webview/selection/SamsungSelectionActionMenuDelegate.java
+@@ -134,7 +134,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
+ .setIcon(null)
+ .setOrderAndCategory(
+ Menu.CATEGORY_SECONDARY,
+- SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS)
++ SelectionMenuItem.ItemGroupOffset.TEXT_PROCESSING_ITEMS())
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
+ .setIntent(createManageAppsIntent())
+ .build());
+@@ -167,7 +167,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
+ .setOrderAndCategory(
+ DefaultItem.PASTE, // Show after paste.
+- SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS)
++ SelectionMenuItem.ItemGroupOffset.DEFAULT_ITEMS())
+ .setIntent(
+ getTranslationActionIntent(selectedText, translateResolveInfo))
+ .build());
+@@ -180,7 +180,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS)
+ .setOrderAndCategory(
+ Menu.FIRST, // Show as first item after primary assist item.
+- SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS)
++ SelectionMenuItem.ItemGroupOffset.ASSIST_ITEMS())
+ .setIntent(
+ createWritingToolkitIntent(selectedText, isSelectionReadOnly))
+ .build());
+@@ -239,6 +239,7 @@ public class SamsungSelectionActionMenuDelegate extends AutofillSelectionActionM
+ }
+
+ public static boolean shouldUseSamsungMenuItemOrdering() {
++ if ((true)) return false;
+ return Build.VERSION.SDK_INT <= MAXIMUM_BUILD_VERSION_CODE_SUPPORTED && isSamsungDevice();
+ }
+
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionModeHandler.java
@@ -37,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActionMod
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
-@@ -915,10 +915,17 @@ public class ChromeTabbedActivity extends ChromeActivity {
+@@ -903,10 +903,17 @@ public class ChromeTabbedActivity extends ChromeActivity {
@TabLaunchType int type,
@TabCreationState int creationState,
boolean markedForSelection) {
@@ -114,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
-@@ -390,8 +390,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+@@ -417,8 +417,13 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
public void onOpenImageInNewTab(GURL url, @Nullable Referrer referrer) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
loadUrlParams.setReferrer(referrer);
@@ -132,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextM
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
-@@ -30,6 +30,7 @@ import androidx.core.view.WindowInsetsCompat;
+@@ -33,6 +33,7 @@ import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.Callback;
import org.chromium.base.CallbackController;
import org.chromium.base.DeviceInfo;
@@ -140,7 +184,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
import org.chromium.base.TraceEvent;
import org.chromium.base.lifetime.Destroyable;
import org.chromium.base.metrics.RecordUserAction;
-@@ -910,11 +911,16 @@ public class RootUiCoordinator
+@@ -979,11 +980,16 @@ public class RootUiCoordinator
TrackerFactory.getTrackerForProfile(tab.getProfile())
.notifyEvent(EventConstants.WEB_SEARCH_PERFORMED);
@@ -197,10 +241,31 @@ new file mode 100644
+ Smart Text selection automatically augments the selected boundaries and classifies the selected text based on the context by sending selection together with its surrounding text
+
+
+diff --git a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
+--- a/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
++++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java
+@@ -39,7 +39,7 @@ public class AutofillSelectionMenuItemHelper {
+ .setGroupId(R.id.select_action_menu_delegate_items)
+ .setOrderAndCategory(
+ Menu.FIRST,
+- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
++ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS
+ | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+@@ -52,7 +52,7 @@ public class AutofillSelectionMenuItemHelper {
+ .setGroupId(R.id.select_action_menu_delegate_items)
+ .setOrderAndCategory(
+ Menu.CATEGORY_SECONDARY, // Show at end of section.
+- SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
++ SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_NEVER
+ | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
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
-@@ -74,4 +74,28 @@ found in the LICENSE file.
+@@ -79,4 +79,28 @@ found in the LICENSE file.
android:key="disable_toolbar_swipeup"
android:title="@string/disable_toolbar_swipe_up" />
@@ -232,31 +297,178 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectActionMenuHelper.java
-@@ -26,6 +26,7 @@ import androidx.core.content.ContextCompat;
- import org.chromium.base.ApiCompatibilityUtils;
- import org.chromium.base.ContextUtils;
- import org.chromium.base.Log;
-+import org.chromium.base.ContextUtils;
- import org.chromium.base.PackageManagerUtils;
- import org.chromium.base.StrictModeContext;
- import org.chromium.build.annotations.NullMarked;
-@@ -53,38 +54,84 @@ import java.util.TreeSet;
- public class SelectActionMenuHelper {
- private static final String TAG = "SelectActionMenu"; // 20 char limit.
+@@ -169,7 +169,7 @@ public class SelectActionMenuHelper {
+ return new SelectionMenuItem.Builder(primaryAction.getTitle())
+ .setId(android.R.id.textAssist)
+ .setGroupId(R.id.select_action_menu_assist_items)
+- .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS)
++ .setOrderAndCategory(0, ItemGroupOffset.ASSIST_ITEMS())
+ .setIcon(getPrimaryActionIconForClassificationResult(classificationResult, context))
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
+ .build();
+@@ -247,7 +247,7 @@ public class SelectActionMenuHelper {
+ .setGroupId(groupId)
+ .setIcon(icons == null ? null : icons.get(i))
+ .setOrderAndCategory(
+- i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS)
++ i - startIndex, ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
+ .setContentDescription(action.getContentDescription())
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
+ .build();
+@@ -296,7 +296,7 @@ public class SelectActionMenuHelper {
+ .setId(Menu.NONE)
+ .setGroupId(R.id.select_action_menu_text_processing_items)
+ .setIcon(icon)
+- .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS)
++ .setOrderAndCategory(i, ItemGroupOffset.TEXT_PROCESSING_ITEMS())
+ .setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM)
+ .setIntent(intent)
+ .build());
+@@ -341,7 +341,7 @@ public class SelectActionMenuHelper {
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModeCutDrawable)
+ .setAlphabeticShortcut(ItemKeyShortcuts.CUT)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+@@ -355,7 +355,7 @@ public class SelectActionMenuHelper {
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModeCopyDrawable)
+ .setAlphabeticShortcut(ItemKeyShortcuts.COPY)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+@@ -369,7 +369,7 @@ public class SelectActionMenuHelper {
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModePasteDrawable)
+ .setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+@@ -385,7 +385,7 @@ public class SelectActionMenuHelper {
+ .setId(R.id.select_action_menu_share)
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModeShareDrawable)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+@@ -399,7 +399,7 @@ public class SelectActionMenuHelper {
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModeSelectAllDrawable)
+ .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+@@ -412,7 +412,7 @@ public class SelectActionMenuHelper {
+ new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
+ .setId(R.id.select_action_menu_paste_as_plain_text)
+ .setGroupId(R.id.select_action_menu_default_items)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true);
+@@ -432,7 +432,7 @@ public class SelectActionMenuHelper {
+ .setId(R.id.select_action_menu_web_search)
+ .setGroupId(R.id.select_action_menu_default_items)
+ .setIconAttr(android.R.attr.actionModeWebSearchDrawable)
+- .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS)
++ .setOrderAndCategory(order, ItemGroupOffset.DEFAULT_ITEMS())
+ .setShowAsActionFlags(
+ MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
+ .setIsEnabled(true)
+diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
++++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+@@ -1113,7 +1113,7 @@ public class SelectionPopupControllerImpl extends ActionModeCallbackHelper
+ private boolean handleAssistMenuItemClick(int order) {
+ // Primary assist action is always the first action in the list so offset by 1.
+- int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS;
++ int index = 1 + order - SelectionMenuItem.ItemGroupOffset.SECONDARY_ASSIST_ITEMS();
+ if (mClassificationResult == null
+ || mClassificationResult.textClassification == null
+ || mClassificationResult.textClassification.getActions().size() <= index) {
+diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+--- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
++++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
+@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
+ import org.jni_zero.JNINamespace;
+ import org.jni_zero.NativeMethods;
+
++import org.chromium.base.ContextUtils;
+ import org.chromium.base.ObserverList;
+ import org.chromium.base.UserData;
+ import org.chromium.build.annotations.Initializer;
+@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
+ return null;
+ }
+
++ if (!ContextUtils.getAppSharedPreferences().getBoolean(
++ "selection_popup_smart_text", false)) return null;
++
+ SmartSelectionClient client =
+ assumeNonNull(
+ webContents.getOrSetUserData(
+diff --git a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
+--- a/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
++++ b/content/public/android/java/src/org/chromium/content_public/browser/PendingSelectionMenu.java
+@@ -165,13 +165,13 @@ public final class PendingSelectionMenu {
+ @VisibleForTesting
+ public @LogicalGroup int determineGroup(SelectionMenuItem item) {
+ int order = item.order;
+- if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS) {
++ if (order >= ItemGroupOffset.TEXT_PROCESSING_ITEMS()) {
+ return LogicalGroup.TEXT_PROCESSING_ITEMS;
+- } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS) {
++ } else if (order >= ItemGroupOffset.SECONDARY_ASSIST_ITEMS()) {
+ return LogicalGroup.SECONDARY_ASSIST_ITEMS;
+- } else if (order >= ItemGroupOffset.DEFAULT_ITEMS) {
++ } else if (order >= ItemGroupOffset.DEFAULT_ITEMS()) {
+ return LogicalGroup.DEFAULT_ITEMS;
+- } else if (order >= ItemGroupOffset.ASSIST_ITEMS) {
++ } else if (order >= ItemGroupOffset.ASSIST_ITEMS()) {
+ return LogicalGroup.ASSIST_ITEMS;
+ }
+ throw new IllegalStateException("Invalid order. Must be >= 0");
+diff --git a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
+--- a/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
++++ b/content/public/android/java/src/org/chromium/content_public/browser/SelectionMenuItem.java
+@@ -18,6 +18,7 @@ import androidx.annotation.IntDef;
+ import androidx.annotation.StringRes;
+ import androidx.appcompat.content.res.AppCompatResources;
+
++import org.chromium.base.ContextUtils;
+ import org.chromium.build.annotations.NullMarked;
+ import org.chromium.build.annotations.Nullable;
+
+@@ -34,18 +35,38 @@ public final class SelectionMenuItem implements Comparable {
+ * less than SECONDARY_ASSIST_ITEMS will appear in the default items section. Each section is
+ * separated by a divider in dropdown menus.
+ */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
-- GroupItemOrder.ASSIST_ITEMS,
-- GroupItemOrder.DEFAULT_ITEMS,
-- GroupItemOrder.SECONDARY_ASSIST_ITEMS,
-- GroupItemOrder.TEXT_PROCESSING_ITEMS
+- ItemGroupOffset.ASSIST_ITEMS,
+- ItemGroupOffset.DEFAULT_ITEMS,
+- ItemGroupOffset.SECONDARY_ASSIST_ITEMS,
+- ItemGroupOffset.TEXT_PROCESSING_ITEMS
- })
-- public @interface GroupItemOrder {
-- int ASSIST_ITEMS = 1;
-- int DEFAULT_ITEMS = 2;
-- int SECONDARY_ASSIST_ITEMS = 3;
-- int TEXT_PROCESSING_ITEMS = 4;
-+ private static class GroupItemOrderChromium {
+- public @interface ItemGroupOffset {
+- int ASSIST_ITEMS = 0;
+- int DEFAULT_ITEMS = 10;
+- int SECONDARY_ASSIST_ITEMS = 20;
+- int TEXT_PROCESSING_ITEMS = 30;
++ public static class ItemGroupOffset {
+ static int CHROMIUM_ASSIST_ITEMS = 1;
+ static int CHROMIUM_DEFAULT_ITEMS = 2;
+ static int CHROMIUM_SECONDARY_ASSIST_ITEMS = 3;
@@ -290,189 +502,93 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/select
+ }
}
-- @Retention(RetentionPolicy.SOURCE)
-- @IntDef({
-- DefaultItemOrder.CUT,
-- DefaultItemOrder.COPY,
-- DefaultItemOrder.PASTE,
-- DefaultItemOrder.PASTE_AS_PLAIN_TEXT,
-- DefaultItemOrder.SHARE,
-- DefaultItemOrder.SELECT_ALL,
-- DefaultItemOrder.WEB_SEARCH
-- })
-- public @interface DefaultItemOrder {
-- int CUT = 1;
-- int COPY = 2;
-- int PASTE = 3;
-- int PASTE_AS_PLAIN_TEXT = 4;
-- int SHARE = 5;
-- int SELECT_ALL = 6;
-- int WEB_SEARCH = 7;
-+ private static class DefaultItemOrderChromium {
-+ static int CHROMIUM_CUT = 1;
-+ static int CHROMIUM_COPY = 2;
-+ static int CHROMIUM_PASTE = 3;
-+ static int CHROMIUM_SHARE = 4;
-+ static int CHROMIUM_SELECT_ALL = 5;
-+ static int CHROMIUM_PASTE_AS_PLAIN_TEXT = 6;
-+ static int CHROMIUM_WEB_SEARCH = 7;
-+
-+ static int CROMITE_WEB_SEARCH = 1;
-+ static int CROMITE_CUT = 2;
-+ static int CROMITE_COPY = 3;
-+ static int CROMITE_PASTE = 4;
-+ static int CROMITE_SHARE = 5;
-+ static int CROMITE_SELECT_ALL = 6;
-+ static int CROMITE_PASTE_AS_PLAIN_TEXT = 7;
-+
-+ private static int GetValue(int a, int b) {
-+ return !ContextUtils.getAppSharedPreferences().getBoolean(
-+ "selection_popup_web_search_to_top", false)
-+ ? a : b;
-+ }
-+
-+ public static int CUT() {
-+ return GetValue(CHROMIUM_CUT, CROMITE_CUT);
-+ }
-+ public static int COPY() {
-+ return GetValue(CHROMIUM_COPY, CROMITE_COPY);
-+ }
-+ public static int PASTE() {
-+ return GetValue(CHROMIUM_PASTE, CROMITE_PASTE);
-+ }
-+ public static int SHARE() {
-+ return GetValue(CHROMIUM_SHARE, CROMITE_SHARE);
-+ }
-+ public static int SELECT_ALL() {
-+ return GetValue(CHROMIUM_SELECT_ALL, CROMITE_SELECT_ALL);
-+ }
-+ public static int PASTE_AS_PLAIN_TEXT() {
-+ return GetValue(CHROMIUM_PASTE_AS_PLAIN_TEXT, CROMITE_PASTE_AS_PLAIN_TEXT);
-+ }
-+ public static int WEB_SEARCH() {
-+ return GetValue(CHROMIUM_WEB_SEARCH, CROMITE_WEB_SEARCH);
+ private final @AttrRes int mIconAttr;
+@@ -210,25 +231,23 @@ public final class SelectionMenuItem implements Comparable {
+ * @param order the order, must be >= 0.
+ * @param category the section of the menu in which this item should appear.
+ */
+- public Builder setOrderAndCategory(int order, @ItemGroupOffset int category) {
++ public Builder setOrderAndCategory(int order, int category) {
+ if (order < 0) {
+ throw new IllegalArgumentException("Invalid order. Must be >= 0");
+ }
+ // Make sure items don't spill over into the next category.
+- mOrder =
+- switch (category) {
+- case ItemGroupOffset.ASSIST_ITEMS ->
+- Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS - 1);
+- case ItemGroupOffset.DEFAULT_ITEMS ->
+- Math.min(
+- order + category,
+- ItemGroupOffset.SECONDARY_ASSIST_ITEMS - 1);
+- case ItemGroupOffset.SECONDARY_ASSIST_ITEMS ->
+- Math.min(
+- order + category,
+- ItemGroupOffset.TEXT_PROCESSING_ITEMS - 1);
+- default -> order + category;
+- };
++ if (category == ItemGroupOffset.ASSIST_ITEMS())
++ mOrder = Math.min(order + category, ItemGroupOffset.DEFAULT_ITEMS() - 1);
++ else if (category == ItemGroupOffset.DEFAULT_ITEMS())
++ mOrder = Math.min(
++ order + category,
++ ItemGroupOffset.SECONDARY_ASSIST_ITEMS() - 1);
++ else if (category == ItemGroupOffset.SECONDARY_ASSIST_ITEMS())
++ mOrder = Math.min(
++ order + category,
++ ItemGroupOffset.TEXT_PROCESSING_ITEMS() - 1);
++ else
++ mOrder = order + category;
+ return this;
+ }
+
+diff --git a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+--- a/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
++++ b/content/public/android/java/src/org/chromium/content_public/browser/selection/SelectionActionMenuDelegate.java
+@@ -7,6 +7,7 @@ package org.chromium.content_public.browser.selection;
+ import android.content.pm.ResolveInfo;
+ import android.view.View;
+
++import org.chromium.base.ContextUtils;
+ import org.chromium.base.SelectionActionMenuClientWrapper.DefaultItem;
+ import org.chromium.base.SelectionActionMenuClientWrapper.MenuType;
+ import org.chromium.build.annotations.NullMarked;
+@@ -23,15 +24,28 @@ import java.util.List;
+ @NullMarked
+ public interface SelectionActionMenuDelegate {
+ static @DefaultItem int[] getDefaultMenuItemOrder() {
+- return new @DefaultItem int[] {
+- DefaultItem.CUT,
+- DefaultItem.COPY,
+- DefaultItem.PASTE,
+- DefaultItem.PASTE_AS_PLAIN_TEXT,
+- DefaultItem.SHARE,
+- DefaultItem.SELECT_ALL,
+- DefaultItem.WEB_SEARCH
+- };
++ if (!ContextUtils.getAppSharedPreferences().getBoolean(
++ "selection_popup_web_search_to_top", false)) {
++ return new @DefaultItem int[] {
++ DefaultItem.CUT,
++ DefaultItem.COPY,
++ DefaultItem.PASTE,
++ DefaultItem.PASTE_AS_PLAIN_TEXT,
++ DefaultItem.SHARE,
++ DefaultItem.SELECT_ALL,
++ DefaultItem.WEB_SEARCH
++ };
++ } else {
++ return new @DefaultItem int[] {
++ DefaultItem.WEB_SEARCH,
++ DefaultItem.CUT,
++ DefaultItem.COPY,
++ DefaultItem.PASTE,
++ DefaultItem.PASTE_AS_PLAIN_TEXT,
++ DefaultItem.SHARE,
++ DefaultItem.SELECT_ALL
++ };
+ }
}
- @Retention(RetentionPolicy.SOURCE)
-@@ -201,7 +248,7 @@ public class SelectActionMenuHelper {
- }
- SelectionMenuGroup primaryAssistGroup =
- new SelectionMenuGroup(
-- R.id.select_action_menu_assist_items, GroupItemOrder.ASSIST_ITEMS);
-+ R.id.select_action_menu_assist_items, GroupItemOrderChromium.ASSIST_ITEMS());
- RemoteAction primaryAction = classificationResult.textClassification.getActions().get(0);
- primaryAssistGroup.addItem(
- new SelectionMenuItem.Builder(primaryAction.getTitle())
-@@ -225,7 +272,7 @@ public class SelectActionMenuHelper {
- String selectedText) {
- SelectionMenuGroup defaultGroup =
- new SelectionMenuGroup(
-- R.id.select_action_menu_default_items, GroupItemOrder.DEFAULT_ITEMS);
-+ R.id.select_action_menu_default_items, GroupItemOrderChromium.DEFAULT_ITEMS());
- List menuItemBuilders = new ArrayList<>();
- menuItemBuilders.add(cut(delegate.canCut()));
- menuItemBuilders.add(copy(delegate.canCopy()));
-@@ -252,7 +299,7 @@ public class SelectActionMenuHelper {
- // menu items if there is selected text.
- @IdRes int groupId = selectedText.isEmpty() ? Menu.NONE : android.R.id.textAssist;
- SelectionMenuGroup secondaryAssistItems =
-- new SelectionMenuGroup(groupId, GroupItemOrder.SECONDARY_ASSIST_ITEMS);
-+ new SelectionMenuGroup(groupId, GroupItemOrderChromium.SECONDARY_ASSIST_ITEMS());
-
- if (selectedText.isEmpty() && selectionActionMenuDelegate != null) {
- List additionalMenuItems =
-@@ -311,7 +358,7 @@ public class SelectActionMenuHelper {
- SelectionMenuGroup textProcessingItems =
- new SelectionMenuGroup(
- R.id.select_action_menu_text_processing_items,
-- GroupItemOrder.TEXT_PROCESSING_ITEMS);
-+ GroupItemOrderChromium.TEXT_PROCESSING_ITEMS());
- if (isSelectionPassword || intentHandler == null) {
- addAdditionalTextProcessingItems(textProcessingItems, selectionActionMenuDelegate);
- return textProcessingItems;
-@@ -420,7 +467,7 @@ public class SelectActionMenuHelper {
- .setId(R.id.select_action_menu_cut)
- .setIconAttr(android.R.attr.actionModeCutDrawable)
- .setAlphabeticShortcut(ItemKeyShortcuts.CUT)
-- .setOrderInCategory(DefaultItemOrder.CUT)
-+ .setOrderInCategory(DefaultItemOrderChromium.CUT())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-@@ -432,7 +479,7 @@ public class SelectActionMenuHelper {
- .setId(R.id.select_action_menu_copy)
- .setIconAttr(android.R.attr.actionModeCopyDrawable)
- .setAlphabeticShortcut(ItemKeyShortcuts.COPY)
-- .setOrderInCategory(DefaultItemOrder.COPY)
-+ .setOrderInCategory(DefaultItemOrderChromium.COPY())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-@@ -444,7 +491,7 @@ public class SelectActionMenuHelper {
- .setId(R.id.select_action_menu_paste)
- .setIconAttr(android.R.attr.actionModePasteDrawable)
- .setAlphabeticShortcut(ItemKeyShortcuts.PASTE)
-- .setOrderInCategory(DefaultItemOrder.PASTE)
-+ .setOrderInCategory(DefaultItemOrderChromium.PASTE())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-@@ -458,7 +505,7 @@ public class SelectActionMenuHelper {
- return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_share))
- .setId(R.id.select_action_menu_share)
- .setIconAttr(android.R.attr.actionModeShareDrawable)
-- .setOrderInCategory(DefaultItemOrder.SHARE)
-+ .setOrderInCategory(DefaultItemOrderChromium.SHARE())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-@@ -470,7 +517,7 @@ public class SelectActionMenuHelper {
- .setId(R.id.select_action_menu_select_all)
- .setIconAttr(android.R.attr.actionModeSelectAllDrawable)
- .setAlphabeticShortcut(ItemKeyShortcuts.SELECT_ALL)
-- .setOrderInCategory(DefaultItemOrder.SELECT_ALL)
-+ .setOrderInCategory(DefaultItemOrderChromium.SELECT_ALL())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-@@ -482,7 +529,7 @@ public class SelectActionMenuHelper {
- SelectionMenuItem.Builder builder =
- new SelectionMenuItem.Builder(android.R.string.paste_as_plain_text)
- .setId(R.id.select_action_menu_paste_as_plain_text)
-- .setOrderInCategory(DefaultItemOrder.PASTE_AS_PLAIN_TEXT)
-+ .setOrderInCategory(DefaultItemOrderChromium.PASTE_AS_PLAIN_TEXT())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled);
-@@ -502,7 +549,7 @@ public class SelectActionMenuHelper {
- return new SelectionMenuItem.Builder(context.getString(R.string.actionbar_web_search))
- .setId(R.id.select_action_menu_web_search)
- .setIconAttr(android.R.attr.actionModeWebSearchDrawable)
-- .setOrderInCategory(DefaultItemOrder.WEB_SEARCH)
-+ .setOrderInCategory(DefaultItemOrderChromium.WEB_SEARCH())
- .setShowAsActionFlags(
- MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT)
- .setIsEnabled(isEnabled)
-diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
---- a/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
-+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SmartSelectionClient.java
-@@ -18,6 +18,7 @@ import org.jni_zero.CalledByNative;
- import org.jni_zero.JNINamespace;
- import org.jni_zero.NativeMethods;
-
-+import org.chromium.base.ContextUtils;
- import org.chromium.base.ObserverList;
- import org.chromium.base.UserData;
- import org.chromium.build.annotations.Initializer;
-@@ -84,6 +85,9 @@ public class SmartSelectionClient implements SelectionClient, UserData {
- return null;
- }
-
-+ if (!ContextUtils.getAppSharedPreferences().getBoolean(
-+ "selection_popup_smart_text", false)) return null;
-+
- SmartSelectionClient client =
- assumeNonNull(
- webContents.getOrSetUserData(
+ /**
--
diff --git a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
index 1dfde8d4..17f396bd 100644
--- a/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
+++ b/build/patches/Dictionary-suggestions-for-the-Omnibox.patch
@@ -23,12 +23,12 @@ diff --git a/chrome/android/java/res/layout/url_bar.xml b/chrome/android/java/re
android:textAppearance="@style/TextAppearance.SearchBoxText"
+ android:inputType="textUri"
android:hint="@string/omnibox_empty_hint"
+ android:textAlignment="viewStart"
app:layout_constraintStart_toEndOf="@id/location_bar_status"
- app:layout_constraintEnd_toStartOf="@id/url_action_container"
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
-@@ -331,8 +331,17 @@ class LocationBarMediator
+@@ -378,8 +378,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);
}
-@@ -1666,7 +1675,6 @@ class LocationBarMediator
+@@ -1798,7 +1807,6 @@ class LocationBarMediator
mUrlCoordinator.setKeyboardVisibility(true, false);
}
@@ -75,7 +75,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private boolean mPendingScroll;
private boolean mIsInCct;
-@@ -345,6 +347,28 @@ public class UrlBar extends AutocompleteEditText {
+@@ -344,6 +346,28 @@ public class UrlBar extends AutocompleteEditText {
fixupTextDirection();
mShouldSendTypingStartedEvent = focused;
diff --git a/build/patches/Disable-CSS-blink-feature-support.patch b/build/patches/Disable-CSS-blink-feature-support.patch
index 29c20441..402611e7 100644
--- a/build/patches/Disable-CSS-blink-feature-support.patch
+++ b/build/patches/Disable-CSS-blink-feature-support.patch
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
--- a/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
+++ b/third_party/blink/renderer/core/css/parser/css_supports_parser.cc
-@@ -403,7 +403,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) {
+@@ -263,7 +263,7 @@ bool CSSSupportsParser::ConsumeBlinkFeatureFn(CSSParserTokenStream& stream) {
feature_name.Value().Utf8()) &&
guard.Release()) {
stream.ConsumeWhitespace();
diff --git a/build/patches/Disable-CSSDynamicRangeLimit.patch b/build/patches/Disable-CSSDynamicRangeLimit.patch
index 5200fda9..9ff8e6e5 100644
--- a/build/patches/Disable-CSSDynamicRangeLimit.patch
+++ b/build/patches/Disable-CSSDynamicRangeLimit.patch
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1326,7 +1326,7 @@
+@@ -1398,7 +1398,7 @@
},
{
name: "CSSDynamicRangeLimit",
diff --git a/build/patches/Disable-Compose-feature.patch b/build/patches/Disable-Compose-feature.patch
index 257c473b..15c13177 100644
--- a/build/patches/Disable-Compose-feature.patch
+++ b/build/patches/Disable-Compose-feature.patch
@@ -4,50 +4,27 @@ Subject: Disable Compose feature
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
- chrome/browser/BUILD.gn | 9 +++++++--
- chrome/browser/ui/webui/settings/settings_ui.cc | 2 +-
+ chrome/browser/ui/webui/settings/settings_ui.cc | 6 ++++--
components/compose/core/browser/compose_features.cc | 2 ++
components/compose/features.gni | 2 +-
- 4 files changed, 11 insertions(+), 4 deletions(-)
+ 3 files changed, 7 insertions(+), 3 deletions(-)
-diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
---- a/chrome/browser/BUILD.gn
-+++ b/chrome/browser/BUILD.gn
-@@ -8435,6 +8435,12 @@ static_library("browser") {
- deps += [ "//components/segmentation_platform/internal:optimization_guide_segmentation_handler" ]
- }
-
-+ if (!is_android) {
-+ deps += [
-+ ":compose_optimization_guide_proto",
-+ ]
-+ }
-+
- if (enable_compose) {
- sources += [
- "compose/chrome_compose_client.cc",
-@@ -8450,7 +8456,6 @@ static_library("browser") {
- ]
-
- deps += [
-- ":compose_optimization_guide_proto",
- "//chrome/common/compose",
- "//chrome/common/compose:mojo_bindings",
- "//components/autofill/content/browser",
-@@ -8870,7 +8875,7 @@ source_set("font_pref") {
- deps = [ "//chrome/common" ]
- }
-
--if (enable_compose) {
-+if (!is_android) {
- proto_library("compose_optimization_guide_proto") {
- sources = [ "compose/proto/compose_optimization_guide.proto" ]
- cc_generator_options = "lite=true:"
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
-@@ -351,7 +351,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
- base::FeatureList::IsEnabled(features::kLinkedServicesSetting));
+@@ -20,7 +20,9 @@
+ #include "chrome/browser/browser_features.h"
+ #include "chrome/browser/browser_process.h"
+ #include "chrome/browser/commerce/shopping_service_factory.h"
+-#include "chrome/browser/compose/compose_enabling.h"
++// #if BUILDFLAG(ENABLE_COMPOSE)
++// #include "chrome/browser/compose/compose_enabling.h"
++// #endif
+ #include "chrome/browser/history_embeddings/history_embeddings_utils.h"
+ #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
+ #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
+@@ -354,7 +356,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
+ base::FeatureList::IsEnabled(permissions::features::kKeyboardLockPrompt));
#if BUILDFLAG(ENABLE_COMPOSE)
- const bool compose_enabled = ComposeEnabling::IsEnabledForProfile(profile);
diff --git a/build/patches/Disable-Compression-Dictionary-Transport.patch b/build/patches/Disable-Compression-Dictionary-Transport.patch
index ff16711d..3a1999d2 100644
--- a/build/patches/Disable-Compression-Dictionary-Transport.patch
+++ b/build/patches/Disable-Compression-Dictionary-Transport.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1467,8 +1467,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
+@@ -1447,8 +1447,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterBooleanPref(prefs::kSandboxExternalProtocolBlocked, true);
registry->RegisterBooleanPref(prefs::kSSLErrorOverrideAllowed, true);
registry->RegisterListPref(prefs::kSSLErrorOverrideAllowedForOrigins);
diff --git a/build/patches/Disable-FedCm.patch b/build/patches/Disable-FedCm.patch
index b33efa59..8e6b7889 100644
--- a/build/patches/Disable-FedCm.patch
+++ b/build/patches/Disable-FedCm.patch
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -671,7 +671,7 @@ void ContentSettingsRegistry::Init() {
+@@ -650,7 +650,7 @@ void ContentSettingsRegistry::Init() {
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
Register(ContentSettingsType::FEDERATED_IDENTITY_AUTO_REAUTHN_PERMISSION,
@@ -39,7 +39,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2143,7 +2143,7 @@
+@@ -2222,7 +2222,7 @@
{
name: "FedCm",
public: true,
diff --git a/build/patches/Disable-GSA-by-default.patch b/build/patches/Disable-GSA-by-default.patch
index 85071dd9..1b6272f8 100644
--- a/build/patches/Disable-GSA-by-default.patch
+++ b/build/patches/Disable-GSA-by-default.patch
@@ -51,10 +51,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
public static final String EXTRA_ITEM_PICKER_MAX_SELECTABLE_ITEMS =
"org.chromium.chrome.browser.extras.item_picker_max_selectable_items";
-
- private static @Nullable Pair sPendingReferrer;
- private static int sReferrerId;
- private static @Nullable String sPendingIncognitoUrl;
-@@ -566,8 +561,6 @@ public class IntentHandler {
+ public static final String EXTRA_ITEM_PICKER_ERROR =
+ "org.chromium.chrome.browser.chrome_item_picker.EXTRA_ITEM_PICKER_ERROR";
+
+@@ -569,8 +564,6 @@ public class IntentHandler {
return ExternalAppId.LINE;
} else if (PACKAGE_WHATSAPP.equals(packageName)) {
return ExternalAppId.WHATSAPP;
@@ -240,7 +240,7 @@ diff --git a/chrome/browser/ui/android/google_bottom_bar/java/src/org/chromium/c
diff --git a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
--- a/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
+++ b/chrome/browser/ui/android/pdf/java/src/org/chromium/chrome/browser/pdf/PdfCoordinator.java
-@@ -266,7 +266,7 @@ public class PdfCoordinator {
+@@ -276,7 +276,7 @@ public class PdfCoordinator {
}
@Nullable String requestAssistContent(String filename, boolean isWorkProfile) {
diff --git a/build/patches/Disable-GetInstalledRelatedApps-API.patch b/build/patches/Disable-GetInstalledRelatedApps-API.patch
index 271cc6f7..2a1ccdc1 100644
--- a/build/patches/Disable-GetInstalledRelatedApps-API.patch
+++ b/build/patches/Disable-GetInstalledRelatedApps-API.patch
@@ -58,7 +58,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2886,9 +2886,8 @@
+@@ -2952,9 +2952,8 @@
status: "stable",
},
{
diff --git a/build/patches/Disable-PrivacyGuide.patch b/build/patches/Disable-PrivacyGuide.patch
index 816a1081..17f68d94 100644
--- a/build/patches/Disable-PrivacyGuide.patch
+++ b/build/patches/Disable-PrivacyGuide.patch
@@ -22,7 +22,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui/webui/settings/settings_ui.cc
--- a/chrome/browser/ui/webui/settings/settings_ui.cc
+++ b/chrome/browser/ui/webui/settings/settings_ui.cc
-@@ -325,8 +325,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
+@@ -328,8 +328,7 @@ SettingsUI::SettingsUI(content::WebUI* web_ui)
#endif // BUILDFLAG(IS_CHROMEOS)
bool show_privacy_guide =
@@ -31,5 +31,5 @@ diff --git a/chrome/browser/ui/webui/settings/settings_ui.cc b/chrome/browser/ui
+ false;
html_source->AddBoolean("showPrivacyGuide", show_privacy_guide);
- html_source->AddBoolean("enableHandTrackingContentSetting",
+ html_source->AddBoolean(
--
diff --git a/build/patches/Disable-Real-Box.patch b/build/patches/Disable-Real-Box.patch
index fb52c17a..c62696f8 100644
--- a/build/patches/Disable-Real-Box.patch
+++ b/build/patches/Disable-Real-Box.patch
@@ -13,7 +13,7 @@ Real-box is search box in ntp
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -2417,7 +2417,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -2235,7 +2235,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry->RegisterBooleanPref(
prefs::kLensRegionSearchEnabled, true,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
@@ -21,7 +21,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
+ registry->RegisterBooleanPref(prefs::kLensDesktopNTPSearchEnabled, false);
#endif
- registry->RegisterListPref(
+ registry->RegisterBooleanPref(prefs::kDisableScreenshots, false);
diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/resources/new_tab_page/app.html
--- a/chrome/browser/resources/new_tab_page/app.html
+++ b/chrome/browser/resources/new_tab_page/app.html
@@ -40,19 +40,19 @@ diff --git a/chrome/browser/resources/new_tab_page/app.html b/chrome/browser/res
- ?can-show-secondary-side="${this.realboxCanShowSecondarySide}"
- ?compose-button-enabled="${this.composeButtonEnabled}"
- ?composebox-enabled="${this.composeboxEnabled}"
-- realbox-layout-mode="${this.realboxLayoutMode_}"
+- searchbox-layout-mode="${this.realboxLayoutMode_}"
- ?ntp-realbox-next-enabled="${this.ntpRealboxNextEnabled_}"
- ?cycling-placeholders="${this.searchboxCyclingPlaceholders_}"
-- @dropdown-visible-changed="${this.onDropdownVisibleChanged_}"
-- @searchbox-input-focus-changed="${this.onInputFocusChanged_}">
+- @searchbox-input-focus-changed="${this.onInputFocusChanged_}"
+- ?ntp-next-features-enabled="${this.ntpNextFeaturesEnabled_}">
-
${this.showComposebox_ ? html`
- &
optimization_types) {
@@ -227,6 +233,23 @@ diff --git a/chrome/browser/optimization_guide/optimization_guide_keyed_service.
}
optimization_guide::OptimizationGuideDecision
+diff --git a/chrome/browser/password_manager/password_change_delegate_impl.cc b/chrome/browser/password_manager/password_change_delegate_impl.cc
+--- a/chrome/browser/password_manager/password_change_delegate_impl.cc
++++ b/chrome/browser/password_manager/password_change_delegate_impl.cc
+@@ -397,11 +397,13 @@ void PasswordChangeDelegateImpl::StartPasswordChangeFlow() {
+ // a local ML model for field classification.
+ // TODO(452883239): Clean this up when model is downloaded on start-up for
+ // everybody.
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ if (base::FeatureList::IsEnabled(
+ password_manager::features::kDownloadModelForPasswordChange)) {
+ PasswordFieldClassificationModelHandlerFactory::GetForBrowserContext(
+ originator_->GetBrowserContext());
+ }
++#endif
+ }
+
+ void PasswordChangeDelegateImpl::OnLoginStateCheckResult(bool is_logged_in) {
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
@@ -236,13 +259,13 @@ diff --git a/chrome/browser/permissions/BUILD.gn b/chrome/browser/permissions/BU
"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_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
-@@ -472,8 +472,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors(
+@@ -481,8 +481,6 @@ ChromePermissionsClient::CreatePermissionUiSelectors(
#endif
selectors.emplace_back(std::make_unique(
Profile::FromBrowserContext(browser_context)));
@@ -273,7 +296,23 @@ diff --git a/chrome/browser/permissions/prediction_service/passage_embedder_dele
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(
+@@ -412,6 +412,7 @@ void PermissionsAiUiSelector::SelectUiToUse(
+ }
+ }
+
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ void PermissionsAiUiSelector::OnGetInnerTextForOnDeviceModel(
+ ModelExecutionData model_data,
+ ModelExecutionCallback model_execution_callback,
+@@ -459,6 +460,7 @@ void PermissionsAiUiSelector::OnGetInnerTextForOnDeviceModel(
+ InquireServerModel(model_data.features,
+ std::move(model_data.request_metadata));
+ }
++#endif
+
+ void PermissionsAiUiSelector::OnTimeout() {
+ VLOG(1) << "[CPSS] Overall timeout for prediction reached.";
+@@ -673,6 +675,7 @@ bool PermissionsAiUiSelector::ShouldHoldBack(
PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse(
permissions::RequestType request_type) {
@@ -281,24 +320,93 @@ diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_sel
const bool is_msbb_enabled = profile_->GetPrefs()->GetBoolean(
unified_consent::prefs::kUrlKeyedAnonymizedDataCollectionEnabled);
+@@ -749,6 +752,7 @@ PredictionSource PermissionsAiUiSelector::GetPredictionTypeToUse(
+ return PredictionSource::kNoCpssModel;
+ }
+
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ void PermissionsAiUiSelector::set_language_detection_observer_for_testing(
+ std::unique_ptr
+ language_detection_observer) {
+@@ -761,6 +765,7 @@ void PermissionsAiUiSelector::set_inner_text_for_testing(
+ CHECK_IS_TEST();
+ inner_text_for_testing_ = std::move(inner_text_);
+ }
++#endif
+
+ #if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ void PermissionsAiUiSelector::set_snapshot_for_testing(SkBitmap snapshot) {
+diff --git a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h
+--- a/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h
++++ b/chrome/browser/permissions/prediction_service/permissions_ai_ui_selector.h
+@@ -118,13 +118,14 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector {
+ void set_snapshot_for_testing(SkBitmap snapshot);
+ #endif
+
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ void set_inner_text_for_testing(
+ content_extraction::InnerTextResult inner_text);
+
+ void set_language_detection_observer_for_testing(
+ std::unique_ptr
+ language_detection_observer);
+-
++#endif
+ void set_callback_for_testing(DecisionMadeCallback callback) {
+ callback_ = std::move(callback);
+ }
+@@ -175,10 +176,12 @@ class PermissionsAiUiSelector : public permissions::PermissionUiSelector {
+ // later. When the text is fetched asynchronously with success,
+ // model_execution_callback will get called to continue the chain of
+ // asynchronously added input data.
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ void OnGetInnerTextForOnDeviceModel(
+ ModelExecutionData model_data,
+ ModelExecutionCallback model_execution_callback,
+ std::unique_ptr result);
++#endif
+
+ bool ShouldHoldBack(const PredictionRequestMetadata& request_metadata) const;
+
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
-@@ -13,11 +13,11 @@
- #include "chrome/browser/permissions/prediction_service/permissions_aiv1_handler.h"
+@@ -13,15 +13,16 @@
+ #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
#include "components/optimization_guide/core/delivery/optimization_guide_model_provider.h"
#include "components/permissions/features.h"
--#include "components/permissions/prediction_service/permissions_aiv3_handler.h"
--#include "components/permissions/prediction_service/permissions_aiv4_handler.h"
- #include "components/permissions/request_type.h"
++#include "components/permissions/request_type.h"
++
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ #include "components/permissions/prediction_service/permissions_aiv3_handler.h"
+ #include "components/permissions/prediction_service/permissions_aiv4_handler.h"
+-#include "components/permissions/request_type.h"
- #if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
-+#include "components/permissions/prediction_service/permissions_aiv3_handler.h"
-+#include "components/permissions/prediction_service/permissions_aiv4_handler.h"
+ #if BUILDFLAG(IS_ANDROID)
+ #include "components/download/public/background_service/download_params.h"
+ #endif
+
+-#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
#include "components/permissions/prediction_service/prediction_model_handler.h"
#endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB)
-@@ -27,7 +27,10 @@ PredictionModelHandlerProvider::PredictionModelHandlerProvider(
+@@ -31,6 +32,7 @@ using optimization_guide::proto::OptimizationTarget;
+
+ namespace {
+
++#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ inline OptimizationTarget getGeolocationAiv4OptTarget() {
+ #if BUILDFLAG(IS_ANDROID)
+ return OptimizationTarget::
+@@ -49,6 +51,7 @@ inline OptimizationTarget getNotificationsAiv4OptTarget() {
+ OPTIMIZATION_TARGET_PERMISSIONS_AIV4_NOTIFICATIONS_DESKTOP;
+ #endif
+ }
++#endif
+
+ } // namespace
+
+@@ -56,7 +59,10 @@ PredictionModelHandlerProvider::PredictionModelHandlerProvider(
OptimizationGuideKeyedService* optimization_guide,
passage_embeddings::EmbedderMetadataProvider* embedder_metadata_provider,
passage_embeddings::Embedder* passage_embedder)
@@ -313,7 +421,7 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand
diff --git a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h
--- a/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h
+++ b/chrome/browser/permissions/prediction_service/prediction_model_handler_provider.h
-@@ -59,9 +59,11 @@ class PredictionModelHandlerProvider
+@@ -55,9 +55,11 @@ class PredictionModelHandlerProvider
#endif // BUILDFLAG(BUILD_WITH_TFLITE_LIB)
private:
@@ -323,8 +431,8 @@ diff --git a/chrome/browser/permissions/prediction_service/prediction_model_hand
passage_embeddings::EmbedderMetadata metadata) override;
+#endif
- std::unique_ptr permissions_aiv1_handler_;
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ std::unique_ptr
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
@@ -382,7 +490,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
-@@ -139,3 +139,7 @@ const base::FeatureParam
+@@ -148,3 +148,7 @@ const base::FeatureParam
kSuppressesSearchPrefetchOnSlowNetworkThreshold{
&kSuppressesSearchPrefetchOnSlowNetwork,
"slow_network_threshold_for_search_prefetch", base::Milliseconds(208)};
@@ -404,10 +512,10 @@ 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
-@@ -1209,7 +1209,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -1221,7 +1221,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+ #else
policy::UserPolicySigninServiceFactory::GetInstance();
#endif
- PolicyBlocklistFactory::GetInstance();
- PredictionModelHandlerProviderFactory::GetInstance();
PredictionServiceFactory::GetInstance();
predictors::AutocompleteActionPredictorFactory::GetInstance();
@@ -426,7 +534,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin
diff --git a/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc b/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc
--- a/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc
+++ b/chrome/browser/safe_browsing/notification_content_detection/notification_content_detection_service_factory.cc
-@@ -15,6 +15,7 @@
+@@ -16,6 +16,7 @@
#include "components/safe_browsing/content/browser/notification_content_detection/notification_content_detection_service.h"
#include "components/safe_browsing/core/browser/db/database_manager.h"
#include "components/safe_browsing/core/common/features.h"
@@ -434,7 +542,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific
#include "content/public/browser/browser_context.h"
namespace safe_browsing {
-@@ -50,6 +51,7 @@ NotificationContentDetectionServiceFactory::
+@@ -51,6 +52,7 @@ NotificationContentDetectionServiceFactory::
std::unique_ptr NotificationContentDetectionServiceFactory::
BuildServiceInstanceForBrowserContext(
content::BrowserContext* context) const {
@@ -442,7 +550,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific
auto* opt_guide = OptimizationGuideKeyedServiceFactory::GetForProfile(
Profile::FromBrowserContext(context));
if (!opt_guide) {
-@@ -81,6 +83,7 @@ NotificationContentDetectionServiceFactory::
+@@ -82,6 +84,7 @@ NotificationContentDetectionServiceFactory::
content::BrowserContext* context) const {
CHECK(opt_guide);
CHECK(context);
@@ -450,7 +558,7 @@ diff --git a/chrome/browser/safe_browsing/notification_content_detection/notific
auto database_manager =
g_browser_process->safe_browsing_service()->database_manager();
scoped_refptr background_task_runner =
-@@ -88,6 +91,9 @@ NotificationContentDetectionServiceFactory::
+@@ -89,6 +92,9 @@ NotificationContentDetectionServiceFactory::
{base::MayBlock(), base::TaskPriority::BEST_EFFORT});
return std::make_unique(
opt_guide, background_task_runner, database_manager, context);
@@ -463,18 +571,18 @@ 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
-@@ -92,6 +92,7 @@ public class AndroidPrerenderManager {
+@@ -91,6 +91,7 @@ public class AndroidPrerenderManager {
* @param prerenderUrl The url to be prerendered.
*/
public void startPrerendering(GURL prerenderUrl) {
+ if ((true)) return;
- if (mNativeAndroidPrerenderManager == 0 || mWebContents == null) return;
+ if (mNativeAndroidPrerenderManager == 0 || mTab == null) return;
AndroidPrerenderManagerJni.get()
- .startPrerendering(mNativeAndroidPrerenderManager, prerenderUrl, mWebContents);
+ .startPrerendering(mNativeAndroidPrerenderManager, prerenderUrl, mTab);
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
-@@ -512,11 +512,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) {
+@@ -565,11 +565,7 @@ void ChromeAutofillClient::GetAiPageContent(GetAiPageContentCallback callback) {
}
AutofillAiManager* ChromeAutofillClient::GetAutofillAiManager() {
@@ -486,7 +594,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows
}
AutofillAiModelCache* ChromeAutofillClient::GetAutofillAiModelCache() {
-@@ -1247,18 +1243,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey(
+@@ -1401,18 +1397,7 @@ void ChromeAutofillClient::TriggerPlusAddressUserPerceptionSurvey(
optimization_guide::ModelQualityLogsUploaderService*
ChromeAutofillClient::GetMqlsUploadService() {
@@ -504,11 +612,11 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows
-#endif
}
- void ChromeAutofillClient::ShowEntitySaveOrUpdateBubble(
+ void ChromeAutofillClient::ShowEntityImportBubble(
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
-@@ -458,7 +458,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -464,7 +464,6 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
}
MixedContentSettingsTabHelper::CreateForWebContents(web_contents);
NavigationMetricsRecorder::CreateForWebContents(web_contents);
@@ -589,7 +697,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"
-@@ -28,6 +30,7 @@
+@@ -27,6 +29,7 @@
namespace {
@@ -597,7 +705,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;
-@@ -40,6 +43,7 @@ std::vector GetDependencyHeads(base::span input) {
+@@ -39,6 +42,7 @@ std::vector GetDependencyHeads(base::span input) {
? dependency_parser_model.GetDependencyHeads(input)
: std::vector();
}
@@ -605,7 +713,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc
} // namespace
-@@ -164,10 +168,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech(
+@@ -163,10 +167,13 @@ void ReadAloudAppModel::PreprocessTextForSpeech(
}
}
@@ -619,7 +727,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_aloud_app_model.cc
void ReadAloudAppModel::CalculatePhrases(
a11y::ReadAloudCurrentGranularity& granularity) {
if (!features::IsReadAnythingReadAloudPhraseHighlightingEnabled()) {
-@@ -224,19 +231,23 @@ void ReadAloudAppModel::CalculatePhrases(
+@@ -223,19 +230,23 @@ void ReadAloudAppModel::CalculatePhrases(
base::BindOnce(&ReadAloudAppModel::UpdatePhraseBoundaries,
weak_ptr_factory_.GetWeakPtr(), phrase_tokens));
}
@@ -645,7 +753,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;
-@@ -298,6 +309,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens,
+@@ -297,6 +308,7 @@ void ReadAloudAppModel::UpdatePhraseBoundaries(std::vector tokens,
current_phrase_calculation_index_ = -1;
LOG(WARNING) << "All phrases calculated!";
}
@@ -712,7 +820,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"
-@@ -1786,6 +1788,7 @@ void ReadAnythingAppController::OnConnected() {
+@@ -1794,6 +1796,7 @@ void ReadAnythingAppController::OnConnected() {
render_frame()->GetBrowserInterfaceBroker().GetInterface(
std::move(page_handler_factory_receiver));
@@ -720,7 +828,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;
-@@ -1794,6 +1797,7 @@ void ReadAnythingAppController::OnConnected() {
+@@ -1802,6 +1805,7 @@ void ReadAnythingAppController::OnConnected() {
page_handler_->GetDependencyParserModel(
base::BindOnce(&ReadAnythingAppController::UpdateDependencyParserModel,
weak_ptr_factory_.GetWeakPtr()));
@@ -728,7 +836,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr
}
void ReadAnythingAppController::OnCopy() const {
-@@ -2034,8 +2038,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() {
+@@ -2042,8 +2046,10 @@ std::u16string ReadAnythingAppController::GetCurrentTextContent() {
}
void ReadAnythingAppController::PreprocessTextForSpeech() {
@@ -739,7 +847,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr
}
void ReadAnythingAppController::MovePositionToNextGranularity() {
-@@ -2289,14 +2295,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const {
+@@ -2297,14 +2303,18 @@ bool ReadAnythingAppController::IsDocsLoadMoreButtonVisible() const {
void ReadAnythingAppController::UpdateDependencyParserModel(
base::File model_file) {
@@ -771,7 +879,7 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr
class ReadAnythingAppControllerTest;
class ReadAnythingAppControllerScreen2xDataCollectionModeTest;
-@@ -310,7 +312,9 @@ class ReadAnythingAppController
+@@ -311,7 +313,9 @@ class ReadAnythingAppController
// available.
void UpdateDependencyParserModel(base::File model_file);
@@ -781,10 +889,22 @@ diff --git a/chrome/renderer/accessibility/read_anything/read_anything_app_contr
// Called when distillation has completed.
void OnAXTreeDistilled(const ui::AXTreeID& tree_id,
+diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
+--- a/chrome/test/BUILD.gn
++++ b/chrome/test/BUILD.gn
+@@ -5798,8 +5798,6 @@ if (!is_android) {
+ "//chrome/browser/ui/exclusive_access:test_support",
+ "//chrome/browser/ui/hats",
+ "//components/safe_browsing/content/browser:safe_browsing_blocking_page",
+- "//components/safe_browsing/content/browser/notification_content_detection",
+- "//components/safe_browsing/content/browser/notification_content_detection:notifications_global_cache_list",
+ "//components/safe_browsing/content/common:file_type_policies_test_support",
+ "//components/safe_browsing/core/browser:safe_browsing_metrics_collector",
+ "//components/safe_browsing/core/browser/hashprefix_realtime:hash_realtime_service",
diff --git a/chrome/utility/BUILD.gn b/chrome/utility/BUILD.gn
--- a/chrome/utility/BUILD.gn
+++ b/chrome/utility/BUILD.gn
-@@ -66,7 +66,7 @@ static_library("utility") {
+@@ -64,7 +64,7 @@ static_library("utility") {
"//printing/buildflags",
"//services/data_decoder:lib",
"//services/network:network_service",
@@ -796,7 +916,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
-@@ -249,13 +249,6 @@ auto RunMirroringService(
+@@ -243,13 +243,6 @@ auto RunMirroringService(
std::move(receiver), content::UtilityThread::Get()->GetIOTaskRunner());
}
@@ -810,7 +930,7 @@ diff --git a/chrome/utility/services.cc b/chrome/utility/services.cc
#endif // !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(ENABLE_BROWSER_SPEECH_SERVICE)
-@@ -466,7 +459,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) {
+@@ -444,7 +437,6 @@ void RegisterMainThreadServices(mojo::ServiceFactory& services) {
#if !BUILDFLAG(IS_ANDROID)
services.Add(RunProfileImporter);
services.Add(RunMirroringService);
@@ -821,7 +941,7 @@ 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
-@@ -622,7 +622,7 @@ test("components_unittests") {
+@@ -625,7 +625,7 @@ test("components_unittests") {
"//components/one_time_tokens/core/browser:unit_tests",
"//components/page_info:unit_tests",
"//components/permissions:unit_tests",
@@ -844,7 +964,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
GeoIpCountryCode country_code;
LanguageCode current_page_language;
std::unique_ptr log_manager;
-@@ -707,6 +709,7 @@ void AutofillManager::ParseFormsAsyncCommon(
+@@ -710,6 +712,7 @@ void AutofillManager::ParseFormsAsyncCommon(
}
}
@@ -852,7 +972,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
if (!context.autofill_predictions.empty()) {
context.autofill_predictions[i].ApplyTo(form_structure->fields());
}
-@@ -714,6 +717,7 @@ void AutofillManager::ParseFormsAsyncCommon(
+@@ -717,6 +720,7 @@ void AutofillManager::ParseFormsAsyncCommon(
context.password_manager_predictions[i].ApplyTo(
form_structure->fields());
}
@@ -860,7 +980,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
if (!context.regex_predictions.empty()) {
context.regex_predictions[i].ApplyTo(form_structure->fields());
}
-@@ -955,6 +959,7 @@ void AutofillManager::LogCurrentFieldTypes(
+@@ -979,6 +983,7 @@ void AutofillManager::LogCurrentFieldTypes(
}
}
@@ -868,7 +988,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
void AutofillManager::SubscribeToMlModelChanges(
FieldClassificationModelHandler& handler) {
switch (handler.optimization_target()) {
-@@ -978,5 +983,6 @@ void AutofillManager::SubscribeToMlModelChanges(
+@@ -1002,5 +1007,6 @@ void AutofillManager::SubscribeToMlModelChanges(
NOTREACHED();
}
}
@@ -878,15 +998,15 @@ 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
-@@ -39,6 +39,7 @@
+@@ -38,6 +38,7 @@
+ #include "components/autofill/core/common/mojom/autofill_types.mojom.h"
#include "components/autofill/core/common/signatures.h"
#include "components/autofill/core/common/unique_ids.h"
- #include "components/optimization_guide/proto/models.pb.h"
+#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
#include "components/translate/core/browser/translate_driver.h"
namespace autofill {
-@@ -366,10 +367,12 @@ class AutofillManager
+@@ -368,10 +369,12 @@ class AutofillManager
// Reparses all known forms.
void ReparseKnownForms();
@@ -1063,7 +1183,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"
-@@ -131,6 +133,7 @@ using ProviderType = AutocompleteProvider::Type;
+@@ -132,6 +134,7 @@ using ProviderType = AutocompleteProvider::Type;
constexpr bool is_android = !!BUILDFLAG(IS_ANDROID);
@@ -1071,7 +1191,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 =
-@@ -239,6 +242,7 @@ void RecordTotalMatchesScored(size_t num_scored) {
+@@ -240,6 +243,7 @@ void RecordTotalMatchesScored(size_t num_scored) {
base::UmaHistogramCounts1000("Omnibox.URLScoringModelExecuted.Matches",
num_scored);
}
@@ -1120,15 +1240,15 @@ diff --git a/components/optimization_guide/core/delivery/prediction_model_downlo
api_key_(features::GetOptimizationGuideServiceAPIKey()),
get_base_model_dir_for_download_callback_(
get_base_model_dir_for_download_callback),
-@@ -136,6 +136,7 @@ PredictionModelDownloadManager::~PredictionModelDownloadManager() = default;
- void PredictionModelDownloadManager::StartDownload(
+@@ -137,6 +137,7 @@ void PredictionModelDownloadManager::StartDownload(
const GURL& download_url,
- proto::OptimizationTarget optimization_target) {
+ proto::OptimizationTarget optimization_target,
+ const std::optional& scheduling_params) {
+ if ((true)) return;
download::DownloadParams download_params;
download_params.client =
download::DownloadClient::OPTIMIZATION_GUIDE_PREDICTION_MODELS;
-@@ -293,6 +294,7 @@ bool PredictionModelDownloadManager::VerifyDownload(
+@@ -299,6 +300,7 @@ bool PredictionModelDownloadManager::VerifyDownload(
const base::FilePath& download_file_path,
const base::FilePath& base_model_dir,
bool delete_file_on_error) {
@@ -1169,7 +1289,7 @@ diff --git a/components/optimization_guide/core/hints/hints_manager.cc b/compone
switch (optimization_type_decision) {
case OptimizationTypeDecision::kAllowedByOptimizationFilter:
case OptimizationTypeDecision::kAllowedByHint:
-@@ -2040,4 +2041,5 @@ void HintsManager::RemoveFetchedEntriesByHintKeys(
+@@ -2057,4 +2058,5 @@ void HintsManager::RemoveFetchedEntriesByHintKeys(
hint_cache_->RemoveHintsForHosts(std::move(on_success), hint_keys);
}
@@ -1190,7 +1310,7 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
} // namespace
-@@ -253,8 +249,7 @@ size_t MaxHostKeyedHintCacheSize() {
+@@ -244,8 +240,7 @@ size_t MaxHostKeyedHintCacheSize() {
}
bool ShouldPersistHintsToDisk() {
@@ -1200,8 +1320,8 @@ diff --git a/components/optimization_guide/core/optimization_guide_features.cc b
}
RequestContextSet GetAllowedContextsForPersonalizedMetadata() {
-@@ -659,5 +654,10 @@ bool IsPrivacyGuideAiSettingsEnabled() {
- return base::FeatureList::IsEnabled(kPrivacyGuideAiSettings);
+@@ -579,5 +574,10 @@ bool ShouldEnableOptimizationGuideIconView() {
+ return base::FeatureList::IsEnabled(kOptimizationGuideIconView);
}
+SET_CROMITE_FEATURE_DISABLED(kOptimizationHints);
@@ -1250,24 +1370,21 @@ diff --git a/components/page_content_annotations/core/page_content_annotations_m
diff --git a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
--- a/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
+++ b/components/safe_browsing/content/browser/notification_content_detection/BUILD.gn
-@@ -43,6 +43,13 @@ source_set("notification_content_detection") {
- ]
- }
-
-+source_set("constants") {
-+ sources = [
-+ "notification_content_detection_constants.cc",
-+ "notification_content_detection_constants.h",
-+ ]
-+}
-+
- source_set("test_utils") {
- testonly = true
+@@ -23,10 +23,6 @@ source_set("notification_content_detection") {
sources = [
+ "notification_content_detection_constants.cc",
+ "notification_content_detection_constants.h",
+- "notification_content_detection_model.cc",
+- "notification_content_detection_model.h",
+- "notification_content_detection_service.cc",
+- "notification_content_detection_service.h",
+ ]
+
+ deps = [
diff --git a/content/browser/service_worker/service_worker_main_resource_loader.cc b/content/browser/service_worker/service_worker_main_resource_loader.cc
--- a/content/browser/service_worker/service_worker_main_resource_loader.cc
+++ b/content/browser/service_worker/service_worker_main_resource_loader.cc
-@@ -544,6 +544,7 @@ bool ServiceWorkerMainResourceLoader::MaybeStartAutoPreload(
+@@ -550,6 +550,7 @@ bool ServiceWorkerMainResourceLoader::MaybeStartAutoPreload(
bool ServiceWorkerMainResourceLoader::StartRaceNetworkRequest(
scoped_refptr context,
scoped_refptr version) {
@@ -1294,6 +1411,12 @@ new file mode 100644
+++ b/cromite_flags/chrome/common/chrome_features_cc/Disable-all-predictors-code.inc
@@ -0,0 +1 @@
+SET_CROMITE_FEATURE_DISABLED(kPrerenderFallbackToPreconnect);
+diff --git a/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-all-predictors-code.inc b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-all-predictors-code.inc
+new file mode 100644
+--- /dev/null
++++ b/cromite_flags/components/password_manager/core/browser/features/password_features_cc/Disable-all-predictors-code.inc
+@@ -0,0 +1 @@
++SET_CROMITE_FEATURE_DISABLED(kDownloadModelForPasswordChange);
diff --git a/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc b/cromite_flags/components/permissions/features_cc/Disable-all-predictors-code.inc
new file mode 100644
--- /dev/null
@@ -1323,6 +1446,48 @@ new file mode 100644
@@ -0,0 +1,2 @@
+SET_CROMITE_FEATURE_DISABLED(kNavigationPredictor);
+SET_CROMITE_FEATURE_DISABLED(kPreloadingHeuristicsMLModel);
+diff --git a/media/webrtc/BUILD.gn b/media/webrtc/BUILD.gn
+--- a/media/webrtc/BUILD.gn
++++ b/media/webrtc/BUILD.gn
+@@ -4,6 +4,7 @@
+
+ import("//media/media_options.gni")
+ import("//third_party/webrtc/webrtc.gni")
++import("//components/optimization_guide/features.gni")
+
+ component("webrtc") {
+ output_name = "media_webrtc"
+@@ -31,6 +32,10 @@ component("webrtc") {
+ "//third_party/webrtc_overrides:webrtc_component",
+ ]
+
++ if (!build_with_tflite_lib) {
++ deps -= [ "//components/optimization_guide/core/inference:op_resolver" ]
++ }
++
+ public_deps = [ "//third_party/tflite" ]
+ }
+
+diff --git a/media/webrtc/helpers.cc b/media/webrtc/helpers.cc
+--- a/media/webrtc/helpers.cc
++++ b/media/webrtc/helpers.cc
+@@ -14,6 +14,7 @@
+ #include "build/build_config.h"
+ #include "build/chromecast_buildflags.h"
+ #include "components/optimization_guide/core/tflite_op_resolver.h"
++#include "components/optimization_guide/machine_learning_tflite_buildflags.h"
+ #include "media/base/media_switches.h"
+ #include "media/webrtc/webrtc_features.h"
+ #include "third_party/webrtc/api/audio/audio_processing.h"
+@@ -161,7 +162,7 @@ CreateWebRtcAudioProcessingModule(
+ // Fuchsia does not use the optimization guide.
+ // Avoid linking the op resolver to keep Fuchsia binary size down.
+ // TODO(crbug.com/450466837): Investigate if this build guard can be avoided.
+-#if !BUILDFLAG(IS_FUCHSIA)
++#if !BUILDFLAG(IS_FUCHSIA) && BUILDFLAG(BUILD_WITH_TFLITE_LIB)
+ if (residual_echo_estimator_model) {
+ optimization_guide::TFLiteOpResolver op_resolver;
+ echo_estimator = webrtc::CreateNeuralResidualEchoEstimator(
diff --git a/services/on_device_model/ml/BUILD.gn b/services/on_device_model/ml/BUILD.gn
--- a/services/on_device_model/ml/BUILD.gn
+++ b/services/on_device_model/ml/BUILD.gn
@@ -1395,7 +1560,7 @@ 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
-@@ -208,22 +208,7 @@ void WebNNContextProviderImpl::CreateWebNNContext(
+@@ -236,62 +236,7 @@ void WebNNContextProviderImpl::CreateWebNNContext(
}
#if BUILDFLAG(IS_WIN)
@@ -1406,13 +1571,53 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn
- LOG(ERROR) << "[WebNN] Failed to create ONNX Runtime context: "
- << env_creation_results.error();
- } else {
+- mojom::Device device_type = options->device;
+- // Falls back to GPU if the device type is NPU but NPU is disabled.
+- if (device_type == mojom::Device::kNpu &&
+- gpu_feature_info_.IsWorkaroundEnabled(gpu::DISABLE_WEBNN_FOR_NPU)) {
+- device_type = mojom::Device::kGpu;
+- LOG(WARNING) << "[WebNN] [WARNING] NPU device is disabled to create "
+- "ONNX Runtime context. Falling back to GPU.";
+- }
+-
+- if (!task_runner->BelongsToCurrentThread()) {
+- // Re-create sequence for the new task runner. Destroying the old
+- // sequence is safe since it has no scheduled tasks yet.
+- sequence.reset();
+- sequence = std::make_unique(*scheduler_, task_runner,
+- command_buffer_id);
+-
+- scoped_trace.AddStep("Create on sequence");
+-
+- // Safe to use base::Unretained for shared_image_manager_ since it
+- // lives on the GPU service, which is guaranteed to outlive the provider
+- // and its contexts.
+- task_runner->PostTaskAndReplyWithResult(
+- FROM_HERE,
+- base::BindOnce(
+- &ort::ContextImplOrt::Create, std::move(receiver), AsWeakPtr(),
+- env_creation_results.value()->GetEpWorkarounds(device_type),
+- std::move(options), device_type,
+- std::move(write_tensor_consumer),
+- std::move(read_tensor_producer),
+- std::move(env_creation_results.value()), command_buffer_id,
+- std::move(sequence), std::move(memory_tracker_), task_runner,
+- base::Unretained(shared_image_manager_.get()),
+- main_thread_task_runner_, std::move(scoped_trace)),
+- base::BindOnce(&WebNNContextProviderImpl::OnCreateWebNNContextImpl,
+- AsWeakPtr(), std::move(callback), std::move(remote),
+- std::move(write_tensor_producer),
+- std::move(read_tensor_consumer)));
+- return;
+- }
- context_impl = base::MakeRefCounted(
-- std::move(receiver), this,
-- env_creation_results.value()->GetEpWorkarounds(options->device),
-- std::move(options), std::move(write_tensor_consumer),
+- std::move(receiver), AsWeakPtr(),
+- env_creation_results.value()->GetEpWorkarounds(device_type),
+- std::move(options), device_type, 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));
+- std::move(sequence), memory_tracker_, std::move(task_runner),
+- shared_image_manager_, main_thread_task_runner_);
- }
- } else if (dml::ShouldCreateDmlContext(*options)) {
+ if (dml::ShouldCreateDmlContext(*options)) {
@@ -1422,7 +1627,7 @@ diff --git a/services/webnn/webnn_context_provider_impl.cc b/services/webnn/webn
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
-@@ -1845,6 +1845,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget(
+@@ -1867,6 +1867,7 @@ ALWAYS_INLINE bool HTMLDocumentParser::ShouldCheckTimeBudget(
}
bool HTMLDocumentParser::ShouldSkipPreloadScan() {
@@ -1433,7 +1638,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_document_parser.cc
diff --git a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
--- a/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
+++ b/third_party/blink/renderer/core/speculation_rules/document_speculation_rules.cc
-@@ -662,6 +662,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
+@@ -664,6 +664,7 @@ void DocumentSpeculationRules::UpdateSpeculationCandidates() {
return;
}
@@ -1444,7 +1649,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
-@@ -3851,7 +3851,7 @@
+@@ -3898,7 +3898,7 @@
//
// It also has some feature params defined throughout the codebase.
name: "Prerender2",
@@ -1452,5 +1657,5 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+ status: "test",
},
{
- name: "PrerenderUntilScript",
+ // Used to allow prerender cross-origin iframes with an opt-in response
--
diff --git a/build/patches/Disable-all-promo-dialogs.patch b/build/patches/Disable-all-promo-dialogs.patch
index 73f45d83..2c8a0bae 100644
--- a/build/patches/Disable-all-promo-dialogs.patch
+++ b/build/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
-@@ -1800,6 +1800,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1772,6 +1772,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
-@@ -180,7 +180,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -183,7 +183,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kEnterpriseHardwarePlatformAPIEnabled,
false);
@@ -52,7 +52,7 @@ diff --git a/chrome/browser/ui/views/profiles/profile_picker_feature_promo_contr
diff --git a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
--- a/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
+++ b/chrome/browser/ui/views/user_education/impl/browser_feature_promo_controller_20.cc
-@@ -45,6 +45,7 @@ user_education::FeaturePromoResult
+@@ -47,6 +47,7 @@ user_education::FeaturePromoResult
BrowserFeaturePromoController20::CanShowPromoForElement(
ui::TrackedElement* anchor_element,
const user_education::UserEducationContextPtr& context) const {
diff --git a/build/patches/Disable-conversion-measurement-api.patch b/build/patches/Disable-conversion-measurement-api.patch
index 946d6405..465bfda3 100644
--- a/build/patches/Disable-conversion-measurement-api.patch
+++ b/build/patches/Disable-conversion-measurement-api.patch
@@ -16,9 +16,9 @@ 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 +-
- .../privacy_page/privacy_page_index.html | 8 -
+ .../privacy_page/privacy_page_index.html | 9 -
chrome/browser/resources/settings/route.ts | 2 +-
- .../site_settings_page/site_settings_page.ts | 1 +
+ .../site_settings/site_settings_page.ts | 1 +
.../aggregatable_trigger_config.cc | 2 +-
components/attribution_reporting/features.cc | 1 +
.../core/browser/content_settings_registry.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(+), 433 deletions(-)
+ 35 files changed, 103 insertions(+), 434 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
-@@ -1317,6 +1317,7 @@ network::mojom::AttributionSupport
+@@ -1352,6 +1352,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:
-@@ -1335,6 +1336,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
+@@ -1370,6 +1371,8 @@ bool AwContentBrowserClient::IsAttributionReportingOperationAllowed(
const url::Origin* destination_origin,
const url::Origin* reporting_origin,
bool* can_bypass) {
@@ -82,7 +82,7 @@ diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.ja
@SpeculativeLoadingAllowedFlags
private int mSpeculativeLoadingAllowedFlags =
-@@ -1784,7 +1784,7 @@ public class AwSettings {
+@@ -1788,7 +1788,7 @@ public class AwSettings {
public void setAttributionBehavior(@AttributionBehavior int behavior) {
synchronized (mAwSettingsLock) {
if (mAttributionBehavior != behavior) {
@@ -95,14 +95,14 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
@@ -39,7 +39,6 @@ by a child template that "extends" this file.
-
- {% endif %}
+
+
-
@@ -30,12 +30,12 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/browser/ui/views/toolbar/toolbar_view.cc b/chrome/browser/ui/views/toolbar/toolbar_view.cc
--- a/chrome/browser/ui/views/toolbar/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar/toolbar_view.cc
-@@ -562,7 +562,7 @@ void ToolbarView::Update(WebContents* tab) {
- }
+@@ -572,7 +572,7 @@ void ToolbarView::Update(WebContents* tab) {
- if (reload_) {
-- reload_->SetMenuEnabled(chrome::IsDebuggerAttachedToCurrentTab(browser_));
-+ reload_->SetMenuEnabled(true);
+ if (ReloadControl* reload_control = GetReloadButton(); reload_control) {
+ reload_control->SetMenuEnabled(
+- chrome::IsDebuggerAttachedToCurrentTab(browser_));
++ true);
}
}
diff --git a/build/patches/Enable-native-Android-autofill.patch b/build/patches/Enable-native-Android-autofill.patch
index 0c3a23e5..eaf1172f 100644
--- a/build/patches/Enable-native-Android-autofill.patch
+++ b/build/patches/Enable-native-Android-autofill.patch
@@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../browser/android_autofill_manager.h | 2 +
.../autofill/AutofillManagerWrapper.java | 5 +-
.../components/autofill/AutofillProvider.java | 7 ++
- .../BrowserSelectionActionMenuDelegate.java | 68 +++++++++++++++
+ .../BrowserSelectionActionMenuDelegate.java | 27 ++++++
.../browser/content_autofill_driver.cc | 11 +++
.../content/browser/content_autofill_driver.h | 10 +++
.../content_autofill_driver_factory.cc | 12 +++
@@ -45,7 +45,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../autofill/core/common/autofill_features.cc | 1 -
.../autofill/core/common/autofill_prefs.cc | 4 +-
.../autofill/core/common/autofill_prefs.h | 5 ++
- 30 files changed, 279 insertions(+), 121 deletions(-)
+ 30 files changed, 238 insertions(+), 121 deletions(-)
create mode 100644 components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -187,7 +187,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -457,20 +457,8 @@ public class MainSettings extends ChromeBaseSettingsFragment
+@@ -465,20 +465,8 @@ public class MainSettings extends ChromeBaseSettingsFragment
}
private void updateAutofillPreferences() {
@@ -213,7 +213,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSe
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.java
-@@ -117,6 +117,13 @@ import java.nio.ByteBuffer;
+@@ -120,6 +120,13 @@ import java.nio.ByteBuffer;
import java.util.Objects;
import java.util.function.Supplier;
@@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
-@@ -1132,6 +1139,11 @@ class TabImpl implements Tab {
+@@ -1269,6 +1276,11 @@ class TabImpl implements Tab {
for (TabObserver observer : mObservers) observer.onDestroyed(this);
mObservers.clear();
@@ -239,7 +239,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mUserDataHost.destroy();
mTabViewManager.destroy();
hideNativePage(false, null);
-@@ -1449,7 +1461,7 @@ class TabImpl implements Tab {
+@@ -1612,7 +1624,7 @@ class TabImpl implements Tab {
* @return iff the AutofillProvider should provide a ViewStructure when prompted.
*/
boolean providesAutofillStructure() {
@@ -248,7 +248,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
if (mProfile == null || !mProfile.isNativeInitialized()) {
return false;
}
-@@ -2253,16 +2265,21 @@ class TabImpl implements Tab {
+@@ -2378,16 +2390,21 @@ class TabImpl implements Tab {
* @return true if the the provider is available for the given WebContents.
*/
private boolean prepareAutofillProvider(WebContents newWebContents) {
@@ -276,7 +276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
// TODO: crbug.com/432447902 — Provide only an activity context and push changes.
mAutofillProvider =
new AutofillProvider(
-@@ -2272,7 +2289,16 @@ class TabImpl implements Tab {
+@@ -2397,7 +2414,16 @@ class TabImpl implements Tab {
getContext().getString(R.string.app_name));
TabImplJni.get().initializeAutofillIfNecessary(mNativeTabAndroid);
}
@@ -288,7 +288,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
+ BrowserSelectionActionMenuDelegate selectionActionMenuDelegate =
+ new BrowserSelectionActionMenuDelegate();
+ selectionActionMenuDelegate.setAutofillSelectionMenuItemHelper(
-+ new AutofillSelectionMenuItemHelper(getContext(), mAutofillProvider));
++ new AutofillSelectionMenuItemHelper(mAutofillProvider));
+ selectionController.setSelectionActionMenuDelegate(selectionActionMenuDelegate);
+
return true;
@@ -297,7 +297,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_android.cc
--- a/chrome/browser/android/tab_android.cc
+++ b/chrome/browser/android/tab_android.cc
-@@ -36,6 +36,7 @@
+@@ -38,6 +38,7 @@
#include "chrome/browser/resource_coordinator/tab_load_tracker.h"
#include "chrome/browser/sync/glue/synced_tab_delegate_android.h"
#include "chrome/browser/tab_contents/tab_util.h"
@@ -305,7 +305,7 @@ diff --git a/chrome/browser/android/tab_android.cc b/chrome/browser/android/tab_
#include "chrome/browser/ui/android/context_menu_helper.h"
#include "chrome/browser/ui/android/tab_model/tab_model.h"
#include "chrome/browser/ui/android/tab_model/tab_model_list.h"
-@@ -449,8 +450,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
+@@ -447,8 +448,7 @@ void TabAndroid::InitializeAutofillIfNecessary(JNIEnv* env) {
->MaybeInitKeyboardSuppressor();
return;
}
@@ -344,7 +344,7 @@ diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java
--- a/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java
+++ b/chrome/browser/autofill/android/java/src/org/chromium/chrome/browser/autofill/AutofillThirdPartyModeContentProvider.java
-@@ -74,6 +74,7 @@ public final class AutofillThirdPartyModeContentProvider extends ContentProvider
+@@ -75,6 +75,7 @@ public final class AutofillThirdPartyModeContentProvider extends ContentProvider
@Nullable String selection,
String @Nullable [] selectionArgs,
@Nullable String sortOrder) {
@@ -355,7 +355,7 @@ diff --git a/chrome/browser/autofill/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
-@@ -314,6 +314,12 @@ CHAR_LIMIT guidelines:
+@@ -317,6 +317,12 @@ CHAR_LIMIT guidelines:
You and Google
@@ -495,7 +495,7 @@ diff --git a/chrome/browser/ui/autofill/autofill_client_provider.h b/chrome/brow
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
-@@ -400,9 +400,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -406,9 +406,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
web_contents);
ChainedBackNavigationTracker::CreateForWebContents(web_contents);
chrome_browser_net::NetErrorTabHelper::CreateForWebContents(web_contents);
@@ -509,7 +509,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
diff --git a/components/android_autofill/browser/BUILD.gn b/components/android_autofill/browser/BUILD.gn
--- a/components/android_autofill/browser/BUILD.gn
+++ b/components/android_autofill/browser/BUILD.gn
-@@ -41,6 +41,7 @@ android_library("java") {
+@@ -42,6 +42,7 @@ android_library("java") {
"java/src/org/chromium/components/autofill/AutofillRequest.java",
"java/src/org/chromium/components/autofill/AutofillSelectionActionMenuDelegate.java",
"java/src/org/chromium/components/autofill/AutofillSelectionMenuItemHelper.java",
@@ -618,7 +618,7 @@ diff --git a/components/android_autofill/browser/java/src/org/chromium/component
new file mode 100644
--- /dev/null
+++ b/components/android_autofill/browser/java/src/org/chromium/components/autofill/BrowserSelectionActionMenuDelegate.java
-@@ -0,0 +1,68 @@
+@@ -0,0 +1,27 @@
+// Copyright 2023 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -631,7 +631,7 @@ new file mode 100644
+import androidx.annotation.NonNull;
+
+import org.chromium.base.metrics.RecordHistogram;
-+import org.chromium.components.autofill.AutofillSelectionMenuItemHelper;
++import org.chromium.components.autofill.AutofillSelectionActionMenuDelegate;
+import org.chromium.content_public.browser.SelectionMenuItem;
+import org.chromium.content_public.browser.SelectionPopupController;
+import org.chromium.content_public.browser.selection.SelectionActionMenuDelegate;
@@ -644,48 +644,7 @@ new file mode 100644
+import org.chromium.base.Log;
+
+/** Interface for customizing text selection menu items in {@link SelectionPopupController} */
-+public class BrowserSelectionActionMenuDelegate implements SelectionActionMenuDelegate {
-+ private AutofillSelectionMenuItemHelper mAutofillSelectionMenuItemHelper;
-+
-+ public BrowserSelectionActionMenuDelegate() {
-+ }
-+
-+ @Override
-+ public void modifyDefaultMenuItems(
-+ List menuItemBuilders,
-+ boolean isSelectionPassword,
-+ boolean isSelectionReadOnly,
-+ @NonNull String selectedText) {
-+ }
-+
-+ @Override
-+ public List filterTextProcessingActivities(List activities) {
-+ return activities;
-+ }
-+
-+ @NonNull
-+ @Override
-+ public List getAdditionalNonSelectionItems() {
-+ if (mAutofillSelectionMenuItemHelper != null) {
-+ return mAutofillSelectionMenuItemHelper.getAdditionalItems();
-+ }
-+ return new ArrayList<>();
-+ }
-+
-+ @NonNull
-+ @Override
-+ public List getAdditionalTextProcessingItems() {
-+ return new ArrayList<>();
-+ }
-+
-+ @Override
-+ public boolean canReuseCachedSelectionMenu() {
-+ return true;
-+ }
-+
-+ public void setAutofillSelectionMenuItemHelper(AutofillSelectionMenuItemHelper provider) {
-+ mAutofillSelectionMenuItemHelper = provider;
-+ }
++public class BrowserSelectionActionMenuDelegate extends AutofillSelectionActionMenuDelegate {
+}
diff --git a/components/autofill/content/browser/content_autofill_driver.cc b/components/autofill/content/browser/content_autofill_driver.cc
--- a/components/autofill/content/browser/content_autofill_driver.cc
@@ -745,7 +704,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver.h b/com
diff --git a/components/autofill/content/browser/content_autofill_driver_factory.cc b/components/autofill/content/browser/content_autofill_driver_factory.cc
--- a/components/autofill/content/browser/content_autofill_driver_factory.cc
+++ b/components/autofill/content/browser/content_autofill_driver_factory.cc
-@@ -24,6 +24,12 @@
+@@ -25,6 +25,12 @@
#include "content/public/browser/web_contents.h"
#include "third_party/blink/public/common/features.h"
@@ -758,7 +717,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
namespace autofill {
class ScopedAutofillManagersObservation;
-@@ -128,6 +134,12 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame(
+@@ -134,6 +140,12 @@ ContentAutofillDriver* ContentAutofillDriverFactory::DriverForFrame(
return nullptr;
}
driver = std::make_unique(render_frame_host, this);
@@ -774,7 +733,7 @@ diff --git a/components/autofill/content/browser/content_autofill_driver_factory
diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components/autofill/content/renderer/autofill_agent.cc
--- a/components/autofill/content/renderer/autofill_agent.cc
+++ b/components/autofill/content/renderer/autofill_agent.cc
-@@ -1545,14 +1545,19 @@ void AutofillAgent::ShowSuggestions(
+@@ -1547,14 +1547,19 @@ void AutofillAgent::ShowSuggestions(
password_generation_agent_->ShowPasswordGenerationSuggestions(
input_element, form_cache)) {
is_popup_possibly_visible_ = true;
@@ -797,7 +756,7 @@ diff --git a/components/autofill/content/renderer/autofill_agent.cc b/components
diff --git a/components/autofill/content/renderer/password_autofill_agent.cc b/components/autofill/content/renderer/password_autofill_agent.cc
--- a/components/autofill/content/renderer/password_autofill_agent.cc
+++ b/components/autofill/content/renderer/password_autofill_agent.cc
-@@ -858,7 +858,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
+@@ -851,7 +851,10 @@ void PasswordAutofillAgent::UpdatePasswordStateForTextChange(
void PasswordAutofillAgent::TrackAutofilledElement(
const WebFormControlElement& element) {
@@ -838,7 +797,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_driver_factor
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
-@@ -236,6 +236,8 @@ class AutofillManager
+@@ -238,6 +238,8 @@ class AutofillManager
LifecycleState new_state,
base::PassKey pass_key);
@@ -850,7 +809,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.h b/c
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.cc b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.cc
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.cc
-@@ -827,6 +827,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() {
+@@ -828,6 +828,8 @@ base::WeakPtr BrowserAutofillManager::GetWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
@@ -862,7 +821,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag
diff --git a/components/autofill/core/browser/foundations/browser_autofill_manager.h b/components/autofill/core/browser/foundations/browser_autofill_manager.h
--- a/components/autofill/core/browser/foundations/browser_autofill_manager.h
+++ b/components/autofill/core/browser/foundations/browser_autofill_manager.h
-@@ -458,6 +458,8 @@ class BrowserAutofillManager : public AutofillManager {
+@@ -460,6 +460,8 @@ class BrowserAutofillManager : public AutofillManager {
// latter check is needed because IPC messages can arrive out of order.
void UpdateInitialInteractionTimestamp(base::TimeTicks interaction_timestamp);
@@ -874,7 +833,7 @@ diff --git a/components/autofill/core/browser/foundations/browser_autofill_manag
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
-@@ -797,7 +797,6 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid,
+@@ -871,7 +871,6 @@ BASE_FEATURE(kAutofillEnableSecurityTouchEventFilteringAndroid,
// virtual view structures to third party providers.
BASE_FEATURE(kAutofillThirdPartyModeContentProvider,
base::FEATURE_ENABLED_BY_DEFAULT);
@@ -885,7 +844,7 @@ diff --git a/components/autofill/core/common/autofill_features.cc b/components/a
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc
--- a/components/autofill/core/common/autofill_prefs.cc
+++ b/components/autofill/core/common/autofill_prefs.cc
-@@ -69,6 +69,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -75,6 +75,8 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(kAutofillCreditCardFidoAuthOfferCheckboxState,
true);
#endif
@@ -894,7 +853,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
registry->RegisterIntegerPref(kAutocompleteLastVersionRetentionPolicy, 0);
registry->RegisterStringPref(kAutofillUploadEncodingSeed, "");
registry->RegisterDictionaryPref(kAutofillVoteUploadEvents);
-@@ -108,7 +110,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -114,7 +116,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
#endif // BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_ANDROID)
@@ -906,7 +865,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
diff --git a/components/autofill/core/common/autofill_prefs.h b/components/autofill/core/common/autofill_prefs.h
--- a/components/autofill/core/common/autofill_prefs.h
+++ b/components/autofill/core/common/autofill_prefs.h
-@@ -128,6 +128,11 @@ inline constexpr char kAutofillWasNameAndEmailProfileUsed[] =
+@@ -140,6 +140,11 @@ inline constexpr char kAutofillWasNameAndEmailProfileUsed[] =
// retention policy was run.
inline constexpr char kAutocompleteLastVersionRetentionPolicy[] =
"autocomplete.retention_policy_last_version";
diff --git a/build/patches/Enable-network-isolation-features.patch b/build/patches/Enable-network-isolation-features.patch
index e0f3ca12..2b91edde 100644
--- a/build/patches/Enable-network-isolation-features.patch
+++ b/build/patches/Enable-network-isolation-features.patch
@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -446,8 +446,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) {
+@@ -454,8 +454,8 @@ bool GetHttpCacheBackendResetParam(PrefService* local_state) {
experiment_parts.push_back(kDiskCacheExperimentNameNone);
// SplitCacheByIncludeCredentials experiment:
experiment_parts.push_back(credentials_field_trial
@@ -55,7 +55,7 @@ new file mode 100644
diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
--- a/net/http/http_cache.cc
+++ b/net/http/http_cache.cc
-@@ -705,7 +705,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo* request) {
+@@ -705,7 +705,7 @@ bool HttpCache::CanGenerateCacheKeyForRequest(const HttpRequestInfo& request) {
// static
// Generate a key that can be used inside the cache.
@@ -64,7 +64,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
const GURL& url,
int load_flags,
const NetworkIsolationKey& network_isolation_key,
-@@ -743,8 +743,8 @@ std::string HttpCache::GenerateCacheKey(
+@@ -744,8 +744,8 @@ std::string HttpCache::GenerateCacheKey(
const bool is_initiator_cross_site =
!net::SchemefulSite::IsSameSite(*initiator, url::Origin::Create(url));
if (is_initiator_cross_site) {
@@ -75,29 +75,30 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
}
}
isolation_key = base::StrCat(
-@@ -759,9 +759,11 @@ std::string HttpCache::GenerateCacheKey(
+@@ -764,10 +764,12 @@ std::string HttpCache::GenerateCacheKey(
// Strip out the reference, username, and password sections of the URL and
// concatenate with the credential_key, the post_key, and the network
// isolation key if we are splitting the cache.
-- return base::StringPrintf("%c/%" PRId64 "/%s%s", credential_key,
-+ auto key = base::StringPrintf("%c/%" PRId64 "/%s%s", credential_key,
- upload_data_identifier, isolation_key.c_str(),
- HttpUtil::SpecForRequest(url).c_str());
+- return base::StringPrintf(
++ auto key = base::StringPrintf(
+ "%c/%" PRId64 "/%s%s", credential_key, upload_data_identifier,
+ isolation_key.c_str(),
+ include_url ? HttpUtil::SpecForRequest(url).c_str() : "");
+ // LOG(INFO) << "---key=" << key;
+ return key;
}
// static
-@@ -784,11 +786,13 @@ HttpCache::GenerateCacheKeyForRequestWithAlternateURL(
+@@ -788,11 +790,13 @@ std::optional HttpCache::GenerateCacheKeyInternal(
const int64_t upload_data_identifier =
- request->upload_data_stream ? request->upload_data_stream->identifier()
- : int64_t(0);
+ request.upload_data_stream ? request.upload_data_stream->identifier()
+ : int64_t{0};
- return GenerateCacheKey(
+ auto key = GenerateCacheKey2(
- url, request->load_flags, request->network_isolation_key,
- upload_data_identifier, request->is_subframe_document_resource,
- request->is_main_frame_navigation, request->is_shared_resource,
- request->initiator);
+ url, request.load_flags, request.network_isolation_key,
+ upload_data_identifier, request.is_subframe_document_resource,
+ request.is_main_frame_navigation, request.is_shared_resource,
+ request.initiator, include_url);
+ if (key.empty()) return std::nullopt;
+ return key;
}
@@ -106,7 +107,7 @@ diff --git a/net/http/http_cache.cc b/net/http/http_cache.cc
diff --git a/net/http/http_cache.h b/net/http/http_cache.h
--- a/net/http/http_cache.h
+++ b/net/http/http_cache.h
-@@ -533,7 +533,7 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory {
+@@ -546,7 +546,7 @@ class NET_EXPORT HttpCache : public HttpTransactionFactory {
// Generates a cache key given the various pieces used to construct the key.
// Must not be called if a corresponding `CanGenerateCacheKeyForRequest`
// returns false.
diff --git a/build/patches/Enable-platform-aac-audio-and-h264-video.patch b/build/patches/Enable-platform-aac-audio-and-h264-video.patch
index f39aab5c..5381b2ee 100644
--- a/build/patches/Enable-platform-aac-audio-and-h264-video.patch
+++ b/build/patches/Enable-platform-aac-audio-and-h264-video.patch
@@ -13,14 +13,14 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
media/BUILD.gn | 2 ++
.../src/org/chromium/media/AudioManagerAndroid.java | 2 ++
media/base/android/media_codec_util.cc | 4 ++++
- media/base/win/mf_helpers.cc | 5 +++++
+ media/base/win/mf_helpers.cc | 4 ++++
media/filters/ffmpeg_audio_decoder.cc | 10 ++++++++++
media/filters/ffmpeg_demuxer.cc | 1 +
media/filters/ffmpeg_video_decoder.cc | 11 +++++++++++
media/filters/win/media_foundation_audio_decoder.cc | 9 +++++++++
media/gpu/windows/supported_profile_helpers.cc | 13 ++++++++++++-
media/media_options.gni | 8 ++++++++
- 11 files changed, 71 insertions(+), 1 deletion(-)
+ 11 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 cromite_flags/media/base/media_switches_cc/Enable-platform-aac-audio-and-h264-video.inc
diff --git a/cromite_flags/media/base/media_switches_cc/Enable-platform-aac-audio-and-h264-video.inc b/cromite_flags/media/base/media_switches_cc/Enable-platform-aac-audio-and-h264-video.inc
@@ -50,7 +50,7 @@ diff --git a/media/BUILD.gn b/media/BUILD.gn
diff --git a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
--- a/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
+++ b/media/base/android/java/src/org/chromium/media/AudioManagerAndroid.java
-@@ -668,6 +668,8 @@ class AudioManagerAndroid {
+@@ -669,6 +669,8 @@ class AudioManagerAndroid {
break;
}
}
@@ -70,7 +70,7 @@ diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_c
#include "media/base/android/media_codec_bridge.h"
#include "media/base/video_codecs.h"
#include "third_party/re2/src/re2/re2.h"
-@@ -107,6 +108,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) {
+@@ -103,6 +104,9 @@ std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec) {
// static
std::string MediaCodecUtil::CodecToAndroidMimeType(AudioCodec codec,
SampleFormat sample_format) {
@@ -83,15 +83,7 @@ diff --git a/media/base/android/media_codec_util.cc b/media/base/android/media_c
diff --git a/media/base/win/mf_helpers.cc b/media/base/win/mf_helpers.cc
--- a/media/base/win/mf_helpers.cc
+++ b/media/base/win/mf_helpers.cc
-@@ -28,6 +28,7 @@
- #include "gpu/command_buffer/service/shared_image/shared_image_manager.h"
- #include "gpu/command_buffer/service/shared_image/shared_image_representation.h"
- #include "gpu/ipc/common/dxgi_helpers.h"
-+#include "media/media_buildflags.h"
- #include "media/base/audio_codecs.h"
- #include "media/base/audio_decoder_config.h"
- #include "media/base/channel_layout.h"
-@@ -479,7 +480,11 @@ HRESULT GetAacAudioType(const AudioDecoderConfig& decoder_config,
+@@ -483,7 +483,11 @@ HRESULT GetAacAudioType(const AudioDecoderConfig& decoder_config,
size_t extra_size = wave_format_size - sizeof(WAVEFORMATEX);
aac_wave_format->wfx.cbSize = static_cast(extra_size);
@@ -126,7 +118,7 @@ diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
-@@ -808,6 +808,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() {
+@@ -725,6 +725,7 @@ void FFmpegDemuxerStream::InitBitstreamConverter() {
// FFmpeg doesn't understand xHE-AAC profiles yet, which can't be put in
// ADTS anyways, so skip bitstream conversion when the profile is
// unknown.
@@ -165,7 +157,7 @@ diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_
diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters/win/media_foundation_audio_decoder.cc
--- a/media/filters/win/media_foundation_audio_decoder.cc
+++ b/media/filters/win/media_foundation_audio_decoder.cc
-@@ -106,11 +106,15 @@ std::optional GetTypeInfo(
+@@ -102,11 +102,15 @@ std::optional GetTypeInfo(
#endif
#if BUILDFLAG(USE_PROPRIETARY_CODECS)
case AudioCodec::kAAC:
@@ -181,7 +173,7 @@ diff --git a/media/filters/win/media_foundation_audio_decoder.cc b/media/filters
#endif
#if BUILDFLAG(ENABLE_PLATFORM_AC4_AUDIO)
case AudioCodec::kAC4:
-@@ -332,8 +336,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) {
+@@ -328,8 +332,13 @@ void MediaFoundationAudioDecoder::Reset(base::OnceClosure reset_cb) {
}
bool MediaFoundationAudioDecoder::NeedsBitstreamConversion() const {
diff --git a/build/patches/Enable-search-engine-settings-desktop-ui.patch b/build/patches/Enable-search-engine-settings-desktop-ui.patch
index bf872cf7..3dd51ed8 100644
--- a/build/patches/Enable-search-engine-settings-desktop-ui.patch
+++ b/build/patches/Enable-search-engine-settings-desktop-ui.patch
@@ -142,7 +142,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
-@@ -2249,6 +2249,9 @@
+@@ -2297,6 +2297,9 @@
URL with %s in place of query
@@ -420,7 +420,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3718,6 +3718,9 @@ static_library("browser") {
+@@ -3713,6 +3713,9 @@ static_library("browser") {
"//components/user_scripts/android",
]
}
@@ -433,7 +433,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc b/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc
--- a/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc
+++ b/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop.cc
-@@ -366,6 +366,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop(
+@@ -370,6 +370,9 @@ void PopulateChromeWebUIFrameBindersPartsDesktop(
#endif // !BUILDFLAG(IS_CHROMEOS)
>(map);
@@ -442,7 +442,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui_parts_desktop
+#endif
RegisterWebUIControllerInterfaceBinder<
help_bubble::mojom::HelpBubbleHandlerFactory, UserEducationInternalsUI,
- settings::SettingsUI, ReadingListUI, NewTabPageUI, CustomizeChromeUI,
+ ReadingListUI, NewTabPageUI, CustomizeChromeUI, PasswordManagerUI,
diff --git a/chrome/browser/extensions/extension_util.h b/chrome/browser/extensions/extension_util.h
--- a/chrome/browser/extensions/extension_util.h
+++ b/chrome/browser/extensions/extension_util.h
@@ -872,7 +872,7 @@ diff --git a/chrome/browser/search_engines/android/java/src/org/chromium/chrome/
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -684,7 +684,11 @@ static_library("ui") {
+@@ -687,7 +687,11 @@ static_library("ui") {
deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ]
}
}
@@ -885,7 +885,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
# TODO(crbug.com/413572035): Move into build files of the actual
# modules depending on this. eg: autofill, user_education.
if (is_chrome_branded) {
-@@ -1012,6 +1016,25 @@ static_library("ui") {
+@@ -1023,6 +1027,25 @@ static_library("ui") {
"//extensions/browser:extension_action_enums",
]
}
@@ -1107,7 +1107,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
-@@ -443,4 +448,7 @@ void RegisterChromeWebUIConfigs() {
+@@ -445,4 +450,7 @@ void RegisterChromeWebUIConfigs() {
#if BUILDFLAG(ENTERPRISE_WATERMARK)
map.AddWebUIConfig(std::make_unique());
#endif
@@ -1324,7 +1324,7 @@ diff --git a/chrome/browser/ui/webui/settings/search_engines_handler.h b/chrome/
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -2586,6 +2586,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
+@@ -2743,6 +2743,8 @@ void AddSearchEnginesStrings(content::WebUIDataSource* html_source) {
{"searchEnginesQueryURL", IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL},
{"searchEnginesQueryURLExplanation",
IDS_SETTINGS_SEARCH_ENGINES_QUERY_URL_EXPLANATION},
@@ -1333,7 +1333,7 @@ diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provide
{"searchEnginesMakeDefault", IDS_SETTINGS_SEARCH_ENGINES_MAKE_DEFAULT},
{"searchEnginesActivate", IDS_SETTINGS_SEARCH_ENGINES_ACTIVATE},
{"searchEnginesDeactivate", IDS_SETTINGS_SEARCH_ENGINES_DEACTIVATE},
-@@ -3879,7 +3881,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
+@@ -4042,7 +4044,11 @@ void AddLocalizedStrings(content::WebUIDataSource* html_source,
AddSiteSettingsStrings(html_source, profile);
AddSiteDataPageStrings(html_source, profile);
AddStorageAccessStrings(html_source);
@@ -1893,7 +1893,7 @@ diff --git a/components/search_engines/search_engines_switches.cc b/components/s
diff --git a/components/search_engines/template_url.cc b/components/search_engines/template_url.cc
--- a/components/search_engines/template_url.cc
+++ b/components/search_engines/template_url.cc
-@@ -2149,6 +2149,10 @@ void TemplateURL::SetURL(const std::string& url) {
+@@ -2158,6 +2158,10 @@ void TemplateURL::SetURL(const std::string& url) {
url_ref().InvalidateCachedValues();
}
@@ -1907,7 +1907,7 @@ diff --git a/components/search_engines/template_url.cc b/components/search_engin
diff --git a/components/search_engines/template_url.h b/components/search_engines/template_url.h
--- a/components/search_engines/template_url.h
+++ b/components/search_engines/template_url.h
-@@ -1012,6 +1012,7 @@ class TemplateURL {
+@@ -1014,6 +1014,7 @@ class TemplateURL {
bool CreatedByRegulatoryProgram() const;
void SetURL(const std::string& url);
@@ -1918,7 +1918,7 @@ diff --git a/components/search_engines/template_url.h b/components/search_engine
diff --git a/components/search_engines/template_url_service.cc b/components/search_engines/template_url_service.cc
--- a/components/search_engines/template_url_service.cc
+++ b/components/search_engines/template_url_service.cc
-@@ -804,13 +804,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
+@@ -803,13 +803,15 @@ TemplateURL* TemplateURLService::AddWithOverrides(
std::unique_ptr template_url,
const std::u16string& short_name,
const std::u16string& keyword,
@@ -1935,7 +1935,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
return Add(std::move(template_url));
}
-@@ -1031,7 +1033,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
+@@ -1030,7 +1032,8 @@ void TemplateURLService::IncrementUsageCount(TemplateURL* url) {
void TemplateURLService::ResetTemplateURL(TemplateURL* url,
const std::u16string& title,
const std::u16string& keyword,
@@ -1945,7 +1945,7 @@ diff --git a/components/search_engines/template_url_service.cc b/components/sear
DCHECK(!IsCreatedByExtension(*url));
DCHECK(!keyword.empty());
DCHECK(!search_url.empty());
-@@ -1051,6 +1054,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
+@@ -1050,6 +1053,7 @@ void TemplateURLService::ResetTemplateURL(TemplateURL* url,
// The urls have changed, reset the favicon url.
data.favicon_url = GURL();
}
@@ -2335,7 +2335,7 @@ diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn
diff --git a/ui/webui/resources/images/BUILD.gn b/ui/webui/resources/images/BUILD.gn
--- a/ui/webui/resources/images/BUILD.gn
+++ b/ui/webui/resources/images/BUILD.gn
-@@ -59,7 +59,7 @@ generate_grd("build_grdp") {
+@@ -60,7 +60,7 @@ generate_grd("build_grdp") {
]
}
diff --git a/build/patches/Enable-share-intent.patch b/build/patches/Enable-share-intent.patch
index b40cf07b..0e9d3b0a 100644
--- a/build/patches/Enable-share-intent.patch
+++ b/build/patches/Enable-share-intent.patch
@@ -34,7 +34,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -588,6 +588,7 @@ chrome_java_resources = [
+@@ -597,6 +597,7 @@ chrome_java_resources = [
"java/res/layout/shopping_accessory_view_layout.xml",
"java/res/layout/status_indicator_container.xml",
"java/res/layout/suggestions_tile_view_condensed.xml",
@@ -45,7 +45,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -1007,6 +1007,7 @@ chrome_java_sources = [
+@@ -1022,6 +1022,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/signin/SigninCheckerProvider.java",
"java/src/org/chromium/chrome/browser/signin/SigninFirstRunFragment.java",
"java/src/org/chromium/chrome/browser/signin/SigninManagerImpl.java",
@@ -56,7 +56,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -260,12 +260,6 @@ by a child template that "extends" this file.
+@@ -271,12 +271,6 @@ by a child template that "extends" this file.
@@ -69,7 +69,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -344,6 +338,10 @@ by a child template that "extends" this file.
+@@ -355,6 +349,10 @@ by a child template that "extends" this file.
@@ -80,7 +80,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -380,6 +378,24 @@ by a child template that "extends" this file.
+@@ -391,6 +389,24 @@ by a child template that "extends" this file.
@@ -211,7 +211,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
/** A hash code for the URL to verify intent data hasn't been modified. */
public static final String EXTRA_DATA_HASH_CODE = "org.chromium.chrome.browser.data_hash";
-@@ -1533,6 +1536,17 @@ public class IntentHandler {
+@@ -1536,6 +1539,17 @@ public class IntentHandler {
return IntentUtils.safeGetIntExtra(intent, EXTRA_DEST_TAB_ID, Tab.INVALID_TAB_ID);
}
@@ -229,7 +229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
/**
* Creates an Intent that will launch a ChromeTabbedActivity on the new tab page. The Intent
* will be trusted and therefore able to launch Incognito tabs.
-@@ -1734,7 +1748,7 @@ public class IntentHandler {
+@@ -1737,7 +1751,7 @@ public class IntentHandler {
String headers = getExtraHeadersFromIntent(intent);
headers = maybeAddAdditionalContentHeaders(intent, url, headers);
@@ -241,7 +241,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
-@@ -48,6 +48,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
+@@ -52,6 +52,7 @@ import org.chromium.chrome.browser.notifications.NotificationPlatformBridge;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileManager;
@@ -249,7 +249,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
import org.chromium.chrome.browser.searchwidget.SearchActivity;
import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityClient;
-@@ -224,11 +225,22 @@ public class LaunchIntentDispatcher {
+@@ -229,11 +230,22 @@ public class LaunchIntentDispatcher {
String query = null;
final String action = intent.getAction();
@@ -272,7 +272,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
// Only the ChromeLauncherActivity can handle search intents. Drop the intent and abort the
// launch.
-@@ -507,8 +519,8 @@ public class LaunchIntentDispatcher {
+@@ -511,8 +523,8 @@ public class LaunchIntentDispatcher {
/*incognito*/true);
newIntent.setData(mIntent.getData());
newIntent.setPackage(applicationContext.getPackageName());
@@ -285,7 +285,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDis
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -106,6 +106,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStore;
+@@ -107,6 +107,7 @@ import org.chromium.chrome.browser.tabmodel.TabPersistentStoreImpl;
import org.chromium.chrome.browser.ui.cars.DrivingRestrictionsManager;
import org.chromium.chrome.browser.ui.hats.SurveyClientFactory;
import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
@@ -293,7 +293,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
import org.chromium.chrome.browser.usb.UsbNotificationManager;
import org.chromium.chrome.browser.util.AfterStartupTaskUtils;
import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
-@@ -719,6 +720,7 @@ public class ProcessInitializationHandler {
+@@ -730,6 +731,7 @@ public class ProcessInitializationHandler {
tasks.add(WebApkUninstallTracker::runDeferredTasks);
@@ -468,7 +468,7 @@ new file mode 100644
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -403,6 +403,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -408,6 +408,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kRelatedSearchesAllLanguage,
&kRelatedSearchesSwitch,
&kReloadTabUiResourcesIfChanged,
@@ -479,7 +479,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -573,6 +573,7 @@ public abstract class ChromeFeatureList {
+@@ -578,6 +578,7 @@ public abstract class ChromeFeatureList {
"ReadAloudIPHMenuButtonHighlightCCT";
public static final String READALOUD_PLAYBACK = "ReadAloudPlayback";
public static final String READALOUD_TAP_TO_SEEK = "ReadAloudTapToSeek";
@@ -490,7 +490,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -6089,6 +6089,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -6326,6 +6326,19 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Make sure a phone app is enabled on this device
diff --git a/build/patches/Enable-snackbar-swipe.patch b/build/patches/Enable-snackbar-swipe.patch
index c5e31df6..0efad72a 100644
--- a/build/patches/Enable-snackbar-swipe.patch
+++ b/build/patches/Enable-snackbar-swipe.patch
@@ -74,7 +74,7 @@ diff --git a/chrome/browser/ui/messages/android/java/src/org/chromium/chrome/bro
mSnackbarView = mContainerView.findViewById(R.id.snackbar);
mAnimationDuration =
mContainerView.getResources().getInteger(android.R.integer.config_mediumAnimTime);
-@@ -503,4 +523,58 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
+@@ -505,4 +525,58 @@ public class SnackbarView implements InsetObserver.WindowInsetObserver {
public @Nullable EdgeToEdgePadAdjuster getEdgeToEdgePadAdjusterForTesting() {
return mEdgeToEdgePadAdjuster;
}
diff --git a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch
index 7da4ab16..e2d7f654 100644
--- a/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch
+++ b/build/patches/Enables-deactivation-of-the-js-debugger-statement.patch
@@ -28,7 +28,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts
--- a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts
+++ b/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.ts
-@@ -183,6 +183,9 @@ export class DebuggerModel extends SDKModel {
+@@ -187,6 +187,9 @@ export class DebuggerModel extends SDKModel {
Common.Settings.Settings.instance()
.moduleSetting('disable-async-stack-traces')
.addChangeListener(this.asyncStackTracesStateChanged, this);
@@ -38,7 +38,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.
Common.Settings.Settings.instance()
.moduleSetting('breakpoints-active')
.addChangeListener(this.breakpointsActiveChanged, this);
-@@ -196,6 +199,7 @@ export class DebuggerModel extends SDKModel {
+@@ -200,6 +203,7 @@ export class DebuggerModel extends SDKModel {
Common.Settings.Settings.instance()
.moduleSetting('js-source-maps-enabled')
.addChangeListener(event => this.#sourceMapManager.setEnabled((event.data as boolean)));
@@ -46,7 +46,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/DebuggerModel.
const resourceTreeModel = (target.model(ResourceTreeModel) as ResourceTreeModel);
if (resourceTreeModel) {
-@@ -387,6 +391,11 @@ export class DebuggerModel extends SDKModel {
+@@ -391,6 +395,11 @@ export class DebuggerModel extends SDKModel {
return this.agent.invoke_setAsyncCallStackDepth({maxDepth});
}
@@ -101,7 +101,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/core/sdk/sdk-meta.ts b/
diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
--- a/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
+++ b/third_party/devtools-frontend/src/front_end/generated/InspectorBackendCommands.js
-@@ -1483,6 +1483,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume
+@@ -1481,6 +1481,10 @@ inspectorBackend.registerCommand("Debugger.resume", [{"name": "terminateOnResume
inspectorBackend.registerCommand("Debugger.searchInContent", [{"name": "scriptId", "type": "string", "optional": false, "description": "Id of the script to search in.", "typeRef": "Runtime.ScriptId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in script content.");
inspectorBackend.registerCommand("Debugger.setAsyncCallStackDepth", [{"name": "maxDepth", "type": "number", "optional": false, "description": "Maximum depth of async call stacks. Setting to `0` will effectively disable collecting async call stacks (default).", "typeRef": null}], [], "Enables or disables async call stacks tracking.");
inspectorBackend.registerCommand("Debugger.setBlackboxExecutionContexts", [{"name": "uniqueIds", "type": "array", "optional": false, "description": "Array of execution context unique ids for the debugger to ignore.", "typeRef": "string"}], [], "Replace previous blackbox execution contexts with passed ones. Forces backend to skip stepping/pausing in scripts in these execution contexts. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful.");
@@ -115,7 +115,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/InspectorBack
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol-mapping.d.ts
-@@ -5158,6 +5158,10 @@ export namespace ProtocolMapping {
+@@ -5150,6 +5150,10 @@ export namespace ProtocolMapping {
paramsType: [Protocol.Debugger.SetBlackboxExecutionContextsRequest];
returnType: void;
};
@@ -129,7 +129,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-mapp
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol-proxy-api.d.ts
-@@ -4619,6 +4619,8 @@ declare namespace ProtocolProxyApi {
+@@ -4606,6 +4606,8 @@ declare namespace ProtocolProxyApi {
*/
invoke_setBlackboxExecutionContexts(params: Protocol.Debugger.SetBlackboxExecutionContextsRequest): Promise;
@@ -141,7 +141,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol-prox
diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b/third_party/devtools-frontend/src/front_end/generated/protocol.ts
--- a/third_party/devtools-frontend/src/front_end/generated/protocol.ts
+++ b/third_party/devtools-frontend/src/front_end/generated/protocol.ts
-@@ -19935,6 +19935,10 @@ export namespace Debugger {
+@@ -19882,6 +19882,10 @@ export namespace Debugger {
uniqueIds: string[];
}
@@ -155,7 +155,7 @@ diff --git a/third_party/devtools-frontend/src/front_end/generated/protocol.ts b
diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
--- a/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
+++ b/third_party/devtools-frontend/src/third_party/blink/public/devtools_protocol/browser_protocol.json
-@@ -30279,8 +30279,17 @@
+@@ -30227,8 +30227,17 @@
"$ref": "WasmDisassemblyChunk"
}
]
@@ -175,7 +175,7 @@ diff --git a/third_party/devtools-frontend/src/third_party/blink/public/devtools
"name": "nextWasmDisassemblyChunk",
"description": "Disassemble the next chunk of lines for the module corresponding to the\nstream. If disassembly is complete, this API will invalidate the streamId\nand return an empty chunk. Any subsequent calls for the now invalid stream\nwill return errors.",
"experimental": true,
-@@ -33470,4 +33479,4 @@
+@@ -33418,4 +33427,4 @@
]
}
]
@@ -199,7 +199,7 @@ diff --git a/v8/include/js_protocol.pdl b/v8/include/js_protocol.pdl
diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h
--- a/v8/src/common/message-template.h
+++ b/v8/src/common/message-template.h
-@@ -759,6 +759,7 @@ namespace internal {
+@@ -761,6 +761,7 @@ namespace internal {
/* AggregateError */ \
T(AllPromisesRejected, "All promises were rejected") \
T(CannotDeepFreezeObject, "Cannot DeepFreeze object of type %") \
diff --git a/build/patches/Experimental-support-for-extensions-on-Android.patch b/build/patches/Experimental-support-for-extensions-on-Android.patch
index 1bf121f6..8b1b0c29 100644
--- a/build/patches/Experimental-support-for-extensions-on-Android.patch
+++ b/build/patches/Experimental-support-for-extensions-on-Android.patch
@@ -13,20 +13,19 @@ folder in case of a crash on startup.
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
android_webview/BUILD.gn | 2 +-
- base/android/device_info.cc | 6 ++-
+ base/android/device_info.cc | 8 ++-
base/android/device_info.h | 3 +-
- .../src/org/chromium/base/DeviceInfo.java | 6 ++-
+ .../src/org/chromium/base/DeviceInfo.java | 6 +-
build/BUILD.gn | 2 +-
build/config/android/rules.gni | 4 +-
- build/config/chrome_build.gni | 7 +--
+ build/config/chrome_build.gni | 7 +-
build/config/compiler/BUILD.gn | 2 +-
build/config/compiler/pgo/BUILD.gn | 2 +-
- chrome/android/BUILD.gn | 6 +--
+ chrome/android/BUILD.gn | 6 +-
chrome/android/chrome_public_apk_tmpl.gni | 2 +-
- .../java/res/layout/manage_space_activity.xml | 14 ++++-
- .../java/res/xml/developer_preferences.xml | 6 +++
+ .../java/res/layout/manage_space_activity.xml | 14 +++-
+ .../java/res/xml/developer_preferences.xml | 6 ++
.../browser/ChromeBaseAppCompatActivity.java | 2 +-
- .../chrome/browser/SwipeRefreshHandler.java | 2 +-
.../AppMenuPropertiesDelegateImpl.java | 2 +-
.../settings/AppearanceSettingsFragment.java | 2 +-
.../overlays/strip/StripLayoutUtils.java | 2 +-
@@ -35,81 +34,83 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../MediaCaptureNotificationServiceImpl.java | 8 +--
.../browser/multiwindow/MultiWindowUtils.java | 2 +-
.../ChromeSiteSettingsDelegate.java | 2 +-
- .../site_settings/ManageSpaceActivity.java | 20 +++++++
+ .../site_settings/ManageSpaceActivity.java | 20 ++++++
...InterceptNavigationDelegateClientImpl.java | 2 +-
- .../browser/tab/RequestDesktopUtils.java | 6 +--
- .../tab/TabContextMenuItemDelegate.java | 4 +-
+ .../browser/tab/RequestDesktopUtils.java | 6 +-
+ .../tab/TabContextMenuItemDelegate.java | 8 ++-
.../TabbedAppMenuPropertiesDelegate.java | 2 +-
.../tabbed_mode/TabbedRootUiCoordinator.java | 2 +-
.../chrome/browser/ui/RootUiCoordinator.java | 2 +-
- chrome/app/extensions_strings.grdp | 7 +++
+ chrome/app/extensions_strings.grdp | 7 ++
chrome/app/theme/theme_resources.grd | 4 +-
chrome/browser/BUILD.gn | 8 +--
- chrome/browser/about_flags.cc | 4 ++
+ chrome/browser/about_flags.cc | 6 +-
...chrome_selection_dropdown_menu_delegate.cc | 4 +-
- .../bookmarks/bar/BookmarkBarUtils.java | 6 +--
+ .../bookmarks/bar/BookmarkBarUtils.java | 6 +-
.../bar/BookmarkBarVisibilityProvider.java | 2 +-
chrome/browser/browser_process_impl.cc | 2 +-
- chrome/browser/chrome_browser_field_trials.cc | 54 +++++++++----------
+ chrome/browser/chrome_browser_field_trials.cc | 72 +++++++++----------
.../chrome_browser_interface_binders_webui.cc | 4 +-
.../browser/chrome_content_browser_client.cc | 4 +-
chrome/browser/devtools/BUILD.gn | 2 +-
.../chrome_download_manager_delegate.cc | 2 +-
- chrome/browser/extensions/BUILD.gn | 12 ++++-
+ chrome/browser/extensions/BUILD.gn | 12 +++-
.../chrome_extensions_api_client_android.cc | 2 +-
.../extensions/extension_management.cc | 8 ++-
.../browser/extensions/extension_management.h | 2 +-
- chrome/browser/extensions/extension_util.cc | 11 ++++
+ chrome/browser/extensions/extension_util.cc | 11 +++
.../feedback/DeviceInfoFeedbackSource.java | 2 +-
+ chrome/browser/file_system_access/BUILD.gn | 2 +-
chrome/browser/media/router/BUILD.gn | 4 +-
.../browser/media/router/discovery/BUILD.gn | 2 +-
- .../media/router/media_router_feature.cc | 10 ++--
+ .../media/router/media_router_feature.cc | 10 +--
.../media/router/media_router_feature.h | 2 +-
.../media/webrtc/webrtc_event_log_manager.cc | 4 +-
.../policy_value_and_status_aggregator.cc | 2 +-
...hrome_browser_main_extra_parts_profiles.cc | 2 +-
- .../profiles/off_the_record_profile_impl.cc | 9 +++-
+ .../profiles/off_the_record_profile_impl.cc | 9 ++-
chrome/browser/profiles/profile_destroyer.cc | 2 +-
chrome/browser/resources/BUILD.gn | 2 +-
chrome/browser/resources/discards/BUILD.gn | 2 +-
- .../resources/extensions/detail_view.css | 6 +++
+ .../resources/extensions/detail_view.css | 6 ++
.../resources/extensions/extensions.html | 8 ++-
- .../resources/extensions/item_list.css | 11 ++++
- .../resources/extensions/toolbar.html.ts | 7 ---
+ .../resources/extensions/item_list.css | 11 +++
+ .../resources/extensions/toolbar.html.ts | 7 --
...omeProvidedSharingOptionsProviderBase.java | 4 +-
- chrome/browser/startup_data.cc | 6 +--
- chrome/browser/startup_data.h | 6 +--
+ chrome/browser/startup_data.cc | 6 +-
+ chrome/browser/startup_data.h | 6 +-
.../common/task_manager_features.cc | 2 +-
- chrome/browser/ui/BUILD.gn | 6 +--
- .../browser/ui/android/context_menu_helper.cc | 6 +--
+ chrome/browser/ui/BUILD.gn | 6 +-
+ .../browser/ui/android/context_menu_helper.cc | 6 +-
.../browser/ui/android/context_menu_helper.h | 4 +-
chrome/browser/ui/android/extensions/BUILD.gn | 4 +-
- .../extensions/extension_actions_bridge.cc | 23 ++++++++
+ .../extensions/extension_actions_bridge.cc | 23 ++++++
.../extensions/extension_actions_bridge.h | 1 +
.../res/layout/extensions_menu_footer.xml | 3 +-
.../extensions/java/res/values/dimens.xml | 1 +
- .../ui/extensions/ExtensionActionsBridge.java | 6 +++
+ .../ui/extensions/ExtensionActionsBridge.java | 6 ++
.../extensions/windowing/internal/BUILD.gn | 2 +-
- .../Enable-extensions-Android.grdp | 15 ++++++
- .../Extensions-Android.grdp | 9 ++++
+ .../Enable-extensions-Android.grdp | 15 ++++
+ .../Extensions-Android.grdp | 9 +++
chrome/browser/ui/android/tab_model/BUILD.gn | 4 +-
- .../browser/ui/android/tab_model/tab_model.cc | 6 +--
+ .../browser/ui/android/tab_model/tab_model.cc | 6 +-
.../browser/ui/android/tab_model/tab_model.h | 2 +-
- .../android/tab_model/tab_model_jni_bridge.cc | 12 ++---
+ .../android/tab_model/tab_model_jni_bridge.cc | 12 ++--
.../android/tab_model/tab_model_test_helper.h | 2 +-
- .../toolbar/java/res/layout/toolbar_phone.xml | 6 +++
+ .../toolbar/java/res/layout/toolbar_phone.xml | 6 ++
.../ExtensionActionListContainer.java | 8 ++-
- .../ExtensionToolbarCoordinatorImpl.java | 10 +++-
- .../extensions/ExtensionsMenuCoordinator.java | 7 ++-
+ .../ExtensionToolbarCoordinatorImpl.java | 10 ++-
+ .../extensions/ExtensionsMenuCoordinator.java | 7 +-
.../ExtensionsMenuItemProperties.java | 5 +-
.../ExtensionsMenuItemViewBinder.java | 2 +
- .../extensions/ExtensionsMenuMediator.java | 9 +++-
+ .../extensions/ExtensionsMenuMediator.java | 9 ++-
chrome/browser/ui/browser_navigator_params.cc | 4 +-
chrome/browser/ui/browser_navigator_params.h | 4 +-
chrome/browser/ui/browser_window/BUILD.gn | 2 +-
.../ui/browser_window/internal/BUILD.gn | 2 +-
chrome/browser/ui/prefs/BUILD.gn | 4 +-
- chrome/browser/ui/prefs/prefs_tab_helper.cc | 10 ++--
+ chrome/browser/ui/prefs/prefs_tab_helper.cc | 10 +--
+ chrome/browser/ui/tab_contents/BUILD.gn | 2 +-
chrome/browser/ui/tabs/tab_list_interface.h | 4 +-
chrome/browser/ui/webid/BUILD.gn | 2 +-
.../browser/ui/webui/chrome_web_ui_configs.cc | 4 +-
@@ -119,12 +120,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
chrome/common/BUILD.gn | 2 +-
chrome/common/chrome_switches.cc | 2 +-
chrome/common/chrome_switches.h | 2 +-
- chrome/common/extensions/api/api_sources.gni | 7 +++
+ chrome/common/extensions/api/api_sources.gni | 7 ++
chrome/common/webui_url_constants.cc | 2 +-
chrome/common/webui_url_constants.h | 2 +-
- chrome/test/BUILD.gn | 14 ++---
- chrome/version.gni | 2 +-
- .../core/browser/host_content_settings_map.cc | 6 +++
+ chrome/test/BUILD.gn | 14 ++--
+ chrome/version.gni | 4 +-
+ .../core/browser/host_content_settings_map.cc | 6 ++
.../embedder_support/view/ContentView.java | 2 +-
.../browser/android/media_router_android.cc | 2 +-
.../browser/android/media_router_android.h | 2 +-
@@ -133,51 +134,56 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../components/policy/PolicyCacheUpdater.java | 2 +-
.../android/policy_cache_updater_android.cc | 4 +-
.../cloud/user_policy_signin_service_base.cc | 2 +-
+ .../configuration_policy_handler_list.cc | 2 +-
.../common/cloud/cloud_policy_constants.cc | 2 +-
+ components/policy/core/common/features.cc | 2 +-
.../service/variations_service_client.cc | 2 +-
- .../installable/installable_icon_fetcher.cc | 6 +--
+ .../installable/installable_icon_fetcher.cc | 6 +-
.../installable/installable_icon_fetcher.h | 2 +-
.../version/resources/about_version.html | 2 +-
content/browser/browser_main_loop.cc | 2 +-
.../media/video_capture_manager.cc | 4 +-
- .../media/video_capture_manager.h | 6 +--
- .../browser/ContentUiEventHandler.java | 7 +--
+ .../media/video_capture_manager.h | 6 +-
+ .../render_widget_host_view_android.cc | 2 +-
+ .../browser/ContentUiEventHandler.java | 7 +-
content/public/common/content_features.cc | 2 +-
- .../about_flags_cc/Extensions-Android.inc | 12 +++++
+ .../render_frame_media_playback_options.cc | 2 +-
+ .../about_flags_cc/Extensions-Android.inc | 12 ++++
.../about_flags_cc/Webstore-protection.inc | 8 +--
extensions/browser/BUILD.gn | 4 +-
...browser_context_keyed_service_factories.cc | 2 +-
extensions/browser/api/system_cpu/BUILD.gn | 2 +-
.../api/web_request/permission_helper.cc | 2 +-
extensions/browser/extension_frame_host.cc | 8 +++
- extensions/browser/extension_host.cc | 24 +++++++--
+ extensions/browser/extension_host.cc | 24 ++++++-
extensions/buildflags/BUILD.gn | 3 +-
extensions/buildflags/buildflags.gni | 4 +-
extensions/common/api/schema.gni | 2 +-
extensions/common/command.cc | 2 +-
- extensions/common/extension_features.cc | 8 ++-
- extensions/common/extension_features.h | 4 ++
+ extensions/common/extension_features.cc | 10 ++-
+ extensions/common/extension_features.h | 6 +-
extensions/common/features/feature.cc | 2 +-
.../renderer/bindings/api_binding_util.cc | 2 +-
gpu/config/gpu_finch_features.cc | 4 +-
- gpu/vulkan/vulkan_util.cc | 2 +-
net/features.gni | 4 +-
skia/features.gni | 2 +-
third_party/blink/common/features.cc | 2 +-
.../renderer/modules/modules_initializer.cc | 4 +-
tools/grit/grit_args.gni | 3 +-
.../cpp_bundle_generator.py | 2 +-
- .../ui/widget/PopupSpecCalculator.java | 9 +++-
+ .../ui/widget/PopupSpecCalculator.java | 9 ++-
.../ui/test/util/UiDisableIfSkipCheck.java | 2 +-
.../chromium/ui/test/util/UiRestriction.java | 2 +-
ui/base/accelerators/command.cc | 2 +-
ui/base/device_form_factor_android.cc | 2 +-
- ui/gl/features.gni | 4 +-
+ ui/gl/features.gni | 2 +-
ui/gl/gl_switches.cc | 4 +-
ui/resources/ui_resources.grd | 2 +-
ui/webui/resources/BUILD.gn | 4 +-
- .../cr_elements/cr_toolbar/cr_toolbar.css | 6 +++
- 165 files changed, 539 insertions(+), 268 deletions(-)
+ ui/webui/resources/cr_elements/BUILD.gn | 2 +-
+ .../cr_elements/cr_toolbar/cr_toolbar.css | 6 ++
+ ui/webui/resources/css/BUILD.gn | 2 +-
+ 171 files changed, 561 insertions(+), 288 deletions(-)
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Enable-extensions-Android.grdp
create mode 100644 chrome/browser/ui/android/strings/cromite_android_chrome_strings_grd/Extensions-Android.grdp
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
@@ -185,7 +191,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/BUILD.gn b/android_webview/BUILD.gn
--- a/android_webview/BUILD.gn
+++ b/android_webview/BUILD.gn
-@@ -1306,7 +1306,7 @@ declare_args() {
+@@ -1303,7 +1303,7 @@ declare_args() {
# logic more easily on an emulator, so the decision to use the arm64
# orderfile for x64 (instead of arm32) is somewhat arbitrary. We just
# needed to use some real orderfile.
@@ -213,6 +219,15 @@ diff --git a/base/android/device_info.cc b/base/android/device_info.cc
// Available only on Android T+.
int32_t vulkan_deqp_level() {
return get_device_info().vulkanDeqpLevel;
+@@ -119,7 +123,7 @@ bool is_xr() {
+ // check) as a first choice, but fall back to this if not feasible.
+ bool is_tablet() {
+ return was_launched_on_large_display() && !is_tv() && !is_automotive() &&
+- !is_desktop() && !is_xr();
++ !is_desktop_false() && !is_xr();
+ }
+
+ // This returns the cached value during initial startup. If you need this
diff --git a/base/android/device_info.h b/base/android/device_info.h
--- a/base/android/device_info.h
+++ b/base/android/device_info.h
@@ -229,7 +244,7 @@ diff --git a/base/android/device_info.h b/base/android/device_info.h
diff --git a/base/android/java/src/org/chromium/base/DeviceInfo.java b/base/android/java/src/org/chromium/base/DeviceInfo.java
--- a/base/android/java/src/org/chromium/base/DeviceInfo.java
+++ b/base/android/java/src/org/chromium/base/DeviceInfo.java
-@@ -113,10 +113,14 @@ public final class DeviceInfo {
+@@ -119,10 +119,14 @@ public final class DeviceInfo {
return getInstance().mIDeviceInfo.isFoldable;
}
@@ -260,7 +275,7 @@ diff --git a/build/BUILD.gn b/build/BUILD.gn
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
-@@ -2017,8 +2017,8 @@ if (!is_robolectric && enable_java_templates) {
+@@ -2027,8 +2027,8 @@ if (!is_robolectric && enable_java_templates) {
} else {
defines += [ "_LOGTAG_PREFIX=cr_" ]
}
@@ -274,7 +289,7 @@ diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni
--- a/build/config/chrome_build.gni
+++ b/build/config/chrome_build.gni
-@@ -26,7 +26,8 @@ declare_args() {
+@@ -31,7 +31,8 @@ declare_args() {
# Set to true to set defaults that enable features on Android that are more
# typically available on desktop.
@@ -284,7 +299,7 @@ diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni
if (is_android) {
# By default, Trichrome channels are compiled using separate package names.
-@@ -44,12 +45,12 @@ declare_args() {
+@@ -53,12 +54,12 @@ is_internal_chrome_branded = enable_src_internal && is_chrome_branded
# Ensure !is_android implies !is_high_end_android.
is_high_end_android = is_high_end_android && is_android
@@ -302,7 +317,7 @@ diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -236,7 +236,7 @@ if (is_android) {
+@@ -241,7 +241,7 @@ if (is_android) {
# logic more easily on an emulator, so the decision to use the arm64
# orderfile for x64 (instead of arm32) is somewhat arbitrary. We just
# needed to use some real orderfile.
@@ -326,7 +341,7 @@ diff --git a/build/config/compiler/pgo/BUILD.gn b/build/config/compiler/pgo/BUIL
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -969,7 +969,7 @@ if (_is_default_toolchain) {
+@@ -971,7 +971,7 @@ if (_is_default_toolchain) {
"//chrome/browser/password_entry_edit/android/internal:java",
]
@@ -335,7 +350,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
deps += [
"//chrome/browser/ui/android/extensions/windowing/internal:java",
"//chrome/browser/ui/browser_window/internal:java",
-@@ -1230,7 +1230,7 @@ if (_is_default_toolchain) {
+@@ -1235,7 +1235,7 @@ if (_is_default_toolchain) {
deps += [ "//chrome/browser/ui/android/extensions:junit" ]
}
@@ -344,7 +359,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
deps += [ "//chrome/browser/ui/browser_window/internal:junit" ]
}
}
-@@ -2435,7 +2435,7 @@ if (_is_default_toolchain) {
+@@ -2440,7 +2440,7 @@ if (_is_default_toolchain) {
"//components/ip_protection/android/android_auth_client_lib/javatests:ip_protection_auth_javatests",
]
@@ -405,7 +420,7 @@ diff --git a/chrome/android/java/res/xml/developer_preferences.xml b/chrome/andr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
-@@ -567,7 +567,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
+@@ -580,7 +580,7 @@ public class ChromeBaseAppCompatActivity extends AppCompatActivity
applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_OptOutEdgeToEdge);
}
@@ -414,22 +429,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeBaseAppCo
applySingleThemeOverlay(R.style.ThemeOverlay_BrowserUI_DesktopDensity);
}
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/SwipeRefreshHandler.java
-@@ -445,7 +445,7 @@ public class SwipeRefreshHandler extends TabWebContentsUserData
- @VisibleForTesting
- boolean isRefreshOnOverscrollSupported() {
- // TODO(https://crbug.com/422413654) Remove this after long-term fix
-- if (DeviceInfo.isDesktop()) {
-+ if (DeviceInfo.isDesktopFalse()) {
- return !DeviceInput.supportsPrecisionPointer();
- } else {
- return true;
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
-@@ -1138,7 +1138,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
+@@ -1137,7 +1137,7 @@ public abstract class AppMenuPropertiesDelegateImpl implements AppMenuProperties
&& !shouldShowReaderModePrefs(currentTab)
&& currentTab != null
&& currentTab.getWebContents() != null
@@ -441,7 +444,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/appearance/settings/AppearanceSettingsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appearance/settings/AppearanceSettingsFragment.java
-@@ -55,7 +55,7 @@ public class AppearanceSettingsFragment extends ChromeBaseSettingsFragment
+@@ -58,7 +58,7 @@ public class AppearanceSettingsFragment extends ChromeBaseSettingsFragment
// This fragment may be used on Desktop or tablets. For Desktop we use the current Profile's
// UserPrefs. For tablets, we use the local device preference.
@@ -528,19 +531,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/MediaCapt
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
-@@ -214,7 +214,7 @@ public class MultiWindowUtils implements ActivityStateListener {
+@@ -221,7 +221,7 @@ public class MultiWindowUtils implements ActivityStateListener {
return TabWindowManager.MAX_SELECTORS_S;
}
-- if (DeviceInfo.isDesktop() || XrUtils.isXrDevice()) {
-+ if (DeviceInfo.isDesktopFalse() || XrUtils.isXrDevice()) {
+- if (DeviceInfo.isDesktop() || DeviceInfo.isXr()) {
++ if (DeviceInfo.isDesktopFalse() || DeviceInfo.isXr()) {
return TabWindowManager.MAX_SELECTORS;
}
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
-@@ -173,7 +173,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
+@@ -174,7 +174,7 @@ public class ChromeSiteSettingsDelegate implements SiteSettingsDelegate {
return PermissionUtil.handTrackingNeedsAdditionalPermissions();
case SiteSettingsCategory.Type.REQUEST_DESKTOP_SITE:
// Desktop Android always requests desktop sites, so hide the category.
@@ -603,7 +606,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/site_settings/M
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateClientImpl.java
-@@ -204,7 +204,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio
+@@ -205,7 +205,7 @@ public class InterceptNavigationDelegateClientImpl implements InterceptNavigatio
// TODO(crbug.com/417047079): Replace the following desktop windowing checks with a better
// approach.
// return MultiWindowUtils.getInstance().isInMultiWindowMode(getActivity());
@@ -645,21 +648,32 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/RequestDesk
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
-@@ -282,7 +282,9 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
- public void openInOtherWindow(GURL url, @Nullable Referrer referrer, boolean incognito) {
- ChromeAsyncTabLauncher chromeAsyncTabLauncher = new ChromeAsyncTabLauncher(incognito);
+@@ -285,7 +285,9 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+ */
+ public void openInOtherWindow(GURL url, @Nullable Referrer referrer, boolean isIncognito) {
LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
- loadUrlParams.setReferrer(referrer);
-+ if (!incognito) {
++ if (!isIncognito) {
++ loadUrlParams.setReferrer(referrer);
++ }
+ if (IncognitoUtils.shouldOpenIncognitoAsWindow() && mMultiInstanceManager != null) {
+ mMultiInstanceManager.openUrlInSelectedWindow(loadUrlParams, mTab.getParentId());
+ } else {
+@@ -304,7 +306,9 @@ public class TabContextMenuItemDelegate implements ContextMenuItemDelegate {
+ public void openInAnotherWindow(GURL url, @Nullable Referrer referrer, boolean isIncognito) {
+ ChromeAsyncTabLauncher chromeAsyncTabLauncher = new ChromeAsyncTabLauncher(isIncognito);
+ LoadUrlParams loadUrlParams = new LoadUrlParams(url.getSpec());
+- loadUrlParams.setReferrer(referrer);
++ if (!isIncognito) {
+ loadUrlParams.setReferrer(referrer);
+ }
Activity activity = TabUtils.getActivity(mTab);
assumeNonNull(activity);
- Activity otherWindowActivity =
+ // null if there are no foreground window activities.
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
-@@ -779,7 +779,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
+@@ -790,7 +790,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
// PDF.
NativePage nativePage = currentTab.getNativePage();
boolean isPdfPage = nativePage != null && nativePage.isPdf();
@@ -671,22 +685,22 @@ 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/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
-@@ -1944,7 +1944,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
- return true;
+@@ -1928,7 +1928,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
} else if (id == R.id.toggle_bookmark_bar) {
+ // isActivityStateBookmarkBarCompatible already checks the flag sAndroidBookmarkBar.
if (BookmarkBarUtils.isActivityStateBookmarkBarCompatible(mActivity)) {
- if (DeviceInfo.isDesktop()) {
+ if (DeviceInfo.isDesktopCromite()) {
+ // Desktop uses the synced UserPref.
BookmarkBarUtils.toggleUserPrefsShowBookmarksBar(
mProfileSupplier.get(), /* fromKeyboardShortcut= */ true);
- } else {
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
-@@ -612,7 +612,7 @@ public class RootUiCoordinator
-
- if (ChromeFeatureList.sLockTopControlsOnLargeTabletsV2.isEnabled()) {
+@@ -682,7 +682,7 @@ public class RootUiCoordinator
+ }
+ if (BrowserControlsUtils.doSyncMinHeightWithTotalHeightV2()) {
- if (DeviceInfo.isDesktop()
+ if (DeviceInfo.isDesktopFalse()
|| BrowserControlsUtils.doSyncMinHeightWithTotalHeight(mActivity)) {
@@ -715,7 +729,7 @@ diff --git a/chrome/app/extensions_strings.grdp b/chrome/app/extensions_strings.
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
-@@ -375,7 +375,7 @@
+@@ -370,7 +370,7 @@
@@ -724,7 +738,7 @@ diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resou
-@@ -384,7 +384,7 @@
+@@ -379,7 +379,7 @@
@@ -736,7 +750,7 @@ diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resou
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -4889,7 +4889,7 @@ static_library("browser") {
+@@ -4905,7 +4905,7 @@ static_library("browser") {
}
}
@@ -745,7 +759,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
deps += [ "//chrome/browser/ui/browser_window" ]
}
-@@ -7650,7 +7650,7 @@ static_library("browser") {
+@@ -7647,7 +7647,7 @@ static_library("browser") {
deps += [ "//media/mojo/mojom:remoting" ]
}
@@ -754,7 +768,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
sources += [ "download/download_crx_util_android.cc" ]
}
-@@ -7968,7 +7968,7 @@ static_library("browser") {
+@@ -7961,7 +7961,7 @@ static_library("browser") {
# TODO(https://crbug.com/356905053): Add more dependencies here and merge this
# block with the `enable_extensions` block above.
@@ -763,7 +777,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
sources += [
# TODO(https://crbug.com/356905053): These files are temporary workarounds
# allow for a lightweight extensions runtime in desktop-android builds.
-@@ -8765,7 +8765,7 @@ static_library("browser_generated_files") {
+@@ -8724,7 +8724,7 @@ static_library("browser_generated_files") {
[ "//chrome/browser/ui/webui/new_tab_page/foo:mojo_bindings" ]
}
}
@@ -775,9 +789,9 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -367,6 +367,10 @@
+@@ -365,6 +365,10 @@
#include "extensions/common/switches.h"
- #endif // BUILDFLAG(ENABLE_EXTENSIONS)
+ #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
+#include "extensions/common/extension_features.h"
@@ -786,6 +800,15 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
#if BUILDFLAG(ENABLE_PDF)
#include "pdf/pdf_features.h"
#endif
+@@ -13561,7 +13565,7 @@ const FeatureEntry kFeatureEntries[] = {
+ FEATURE_VALUE_TYPE(
+ enterprise_signals::features::kProfileSignalsReportingEnabled)},
+
+-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ {"enable-extensions-for-corp-desktop-android",
+ flag_descriptions::kEnableExtensionsForCorpDesktopAndroidName,
+ flag_descriptions::kEnableExtensionsForCorpDesktopAndroidDescription,
diff --git a/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc b/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
--- a/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
+++ b/chrome/browser/android/selection/chrome_selection_dropdown_menu_delegate.cc
@@ -810,16 +833,16 @@ diff --git a/chrome/browser/android/selection/chrome_selection_dropdown_menu_del
diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarUtils.java
-@@ -208,7 +208,7 @@ public class BookmarkBarUtils {
- }
-
- // On Desktop, we sync with the UserPrefs, but on tablets we use a local device preference.
+@@ -209,7 +209,7 @@ public class BookmarkBarUtils {
+ // On Desktop, we sync with the UserPrefs.
+ // On tablets we use the device preference logic (policy (pref service) > local pref
+ // (shared pref) > FeatureParam).
- return DeviceInfo.isDesktop()
+ return DeviceInfo.isDesktopFalse()
? isUserPrefsShowBookmarksBarEnabled(profile)
- : isDevicePrefShowBookmarksBarEnabled();
+ : isDevicePrefShowBookmarksBarEnabled(profile);
}
-@@ -325,13 +325,13 @@ public class BookmarkBarUtils {
+@@ -427,13 +427,13 @@ public class BookmarkBarUtils {
boolean isCurrentlyVisible = isBookmarkBarVisible(context, profile);
// Record if the Bookmark Bar is visible, but not in cases of a forced feature param.
@@ -838,7 +861,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/bar/BookmarkBarVisibilityProvider.java b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
--- a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
+++ b/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/browser/bookmarks/bar/BookmarkBarVisibilityProvider.java
-@@ -91,7 +91,7 @@ public class BookmarkBarVisibilityProvider {
+@@ -92,7 +92,7 @@ public class BookmarkBarVisibilityProvider {
mProfileSupplier.addObserver(mProfileSupplierObserver);
// On tablets we use local device prefs.
@@ -850,7 +873,7 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
-@@ -337,7 +337,7 @@ void BrowserProcessImpl::Init() {
+@@ -348,7 +348,7 @@ void BrowserProcessImpl::Init() {
// TODO(devlin): Move this block out of BrowserProcessImpl to somewhere like
// //chrome/browser/initialize_extensions_browser_client, analogous to
// `EnsureExtensionsClientInitialized()` above?
@@ -863,15 +886,15 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
--- a/chrome/browser/chrome_browser_field_trials.cc
+++ b/chrome/browser/chrome_browser_field_trials.cc
@@ -124,7 +124,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
- // Update child process binding state before unbinding.
- // TODO(crbug.com/427087091): Remove when webview rollout is complete.
- feature_overrides.EnableFeature(base::features::kUpdateStateBeforeUnbinding);
+ feature_overrides.DisableFeature(features::kEyeDropper);
+ }
+ #elif BUILDFLAG(IS_ANDROID) // BUILDFLAG(IS_LINUX)
-#if BUILDFLAG(IS_DESKTOP_ANDROID)
+#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// Nota bene: Anything here is expected to be short-lived, unless deemed too
// risky to launch to non-desktop platforms. New features being added here
// should be the exception, and not the norm. Instead, you should place the
-@@ -133,8 +133,8 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
+@@ -133,13 +133,13 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// If enabled, then use desktop page webprefs for Android devices that have
// large displays, specifically tablets and desktops.
@@ -880,9 +903,15 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
+ // feature_overrides.EnableFeature(
+ // blink::features::kAndroidDesktopWebPrefsLargeDisplays);
+ // Enables the caret browsing a11y feature - can use arrow keys to navigate
+ // through web pages.
+ // TODO(crbug.com/369139090): Remove when rollout is complete
+- feature_overrides.EnableFeature(features::kAndroidCaretBrowsing);
++ // feature_overrides.EnableFeature(features::kAndroidCaretBrowsing);
+
// If enabled, render processes associated only with tabs in unfocused windows
// will be downgraded to "vis" priority, rather than remaining at "fg". This
-@@ -149,8 +149,8 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
+@@ -154,8 +154,8 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
// Enables media capture (tab+window+screen sharing).
// TODO(crbug.com/352187279): Remove when tablet rollout is complete.
@@ -893,7 +922,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
// Enable desktop tab management features.
// TODO(crbug.com/422902940): Remove when tablet rollout is complete.
-@@ -166,7 +166,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
+@@ -171,7 +171,7 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.EnableFeature(features::kRendererProcessLimitOnAndroid);
// Enable V8 optimizations for high-end Android Desktop devices.
// TODO(crbug.com/425860368): Remove when the feature is stable.
@@ -902,7 +931,7 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
// TODO(b/432367402): Use a new Android API to replace this hack with a proper
// solution.
feature_overrides.EnableFeature(features::kAndroidCaptureKeyEvents);
-@@ -175,53 +175,53 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
+@@ -180,74 +180,74 @@ void ChromeBrowserFieldTrials::RegisterFeatureOverrides(
feature_overrides.EnableFeature(features::kAndroidDevToolsFrontend);
// TODO(crbug.com/430304112): Remove when rollout is complete to all form
// factors.
@@ -914,12 +943,8 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
// implemented.
- feature_overrides.EnableFeature(
- chrome::android::kLockTopControlsOnLargeTablets);
-- feature_overrides.EnableFeature(
-- chrome::android::kLockTopControlsOnLargeTabletsV2);
+ // feature_overrides.EnableFeature(
-+ // chrome::android::kLockTopControlsOnLargeTablets);
-+ // feature_overrides.EnableFeature(
-+ // chrome::android::kLockTopControlsOnLargeTabletsV2);
++ // chrome::android::kLockTopControlsOnLargeTablets);
// Bypass the WebAudio output buffer, to reduce audio latency.
// TODO(crbug.com/436988695): Remove when the long term solution is
// implemented.
@@ -974,13 +999,46 @@ diff --git a/chrome/browser/chrome_browser_field_trials.cc b/chrome/browser/chro
- chrome::android::kAndroidPinnedTabsTabletTabStrip);
+ // feature_overrides.EnableFeature(
+ // chrome::android::kAndroidPinnedTabsTabletTabStrip);
+ // TODO(crbug.com/433879656): Remove when this feature on LFF device is
+ // stable.
+- feature_overrides.EnableFeature(features::kFluidResize);
++ // feature_overrides.EnableFeature(features::kFluidResize);
+
+ // Three flags are required for the bookmarks bar feature.
+ // TODO(crbug.com/430059235): Remove once feature is launched to 100% on all
+- // form factors.
+- feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar);
+- feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings);
+- feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor);
++ // // form factors.
++ // feature_overrides.EnableFeature(chrome::android::kAndroidBookmarkBar);
++ // feature_overrides.EnableFeature(chrome::android::kAndroidAppearanceSettings);
++ // feature_overrides.EnableFeature(chrome::android::kTopControlsRefactor);
+
+ // Enable ANGLE/Vulkan features.
+ // TODO (crbug.com//376280554): Enable these features with runtime checks
+ // instead.
+- feature_overrides.EnableFeature(::features::kSkipVulkanBlocklist);
+- feature_overrides.EnableFeature(::features::kDefaultANGLEVulkan);
+- feature_overrides.EnableFeature(::features::kVulkanFromANGLE);
+- feature_overrides.EnableFeature(::features::kDefaultPassthroughCommandDecoder);
++ // feature_overrides.EnableFeature(::features::kSkipVulkanBlocklist);
++ // feature_overrides.EnableFeature(::features::kDefaultANGLEVulkan);
++ // feature_overrides.EnableFeature(::features::kVulkanFromANGLE);
++ // feature_overrides.EnableFeature(::features::kDefaultPassthroughCommandDecoder);
+
+ // Enable site-per-process by default for desktop platforms.
+ // TODO(crbug.com/453856709): Remove when we determine how to ensure
+ // SitePerProcess is enabled for all necessary or eligible Android devices.
+- feature_overrides.EnableFeature(::features::kSitePerProcess);
++ // feature_overrides.EnableFeature(::features::kSitePerProcess);
#endif // BUILDFLAG(IS_DESKTOP_ANDROID)
// Desktop-first features which are past incubation should either end up here,
// or to a finch trial that enables it for all form factors.
diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/browser/chrome_browser_interface_binders_webui.cc
--- a/chrome/browser/chrome_browser_interface_binders_webui.cc
+++ b/chrome/browser/chrome_browser_interface_binders_webui.cc
-@@ -36,7 +36,7 @@
+@@ -40,7 +40,7 @@
#include "mojo/public/cpp/bindings/binder_map.h"
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -989,7 +1047,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
#include "chrome/browser/ui/webui/discards/discards.mojom.h"
#include "chrome/browser/ui/webui/discards/discards_ui.h"
#include "chrome/browser/ui/webui/discards/site_data.mojom.h"
-@@ -128,7 +128,7 @@ void PopulateChromeWebUIFrameBinders(
+@@ -135,7 +135,7 @@ void PopulateChromeWebUIFrameBinders(
#endif // BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -1001,7 +1059,7 @@ diff --git a/chrome/browser/chrome_browser_interface_binders_webui.cc b/chrome/b
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -4388,7 +4388,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
+@@ -4283,7 +4283,7 @@ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
// TODO(wenz): This should instead proceed with the selected certificate
// when there are matching certificates in the OS.
#if BUILDFLAG(ENABLE_EXTENSIONS) && \
@@ -1010,7 +1068,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
if (matching_certificates.empty() && nonmatching_certificates.empty()) {
extensions::ProcessMap* process_map =
extensions::ProcessMap::Get(profile);
-@@ -4578,7 +4578,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences(
+@@ -4507,7 +4507,7 @@ void ChromeContentBrowserClient::OverrideWebPreferences(
// Fill font preferences. These are not registered on Android unless we're built
// with extensions (the chrome.fontSettings API can change these).
// - http://crbug.com/308033, http://crbug.com/696364.
@@ -1034,7 +1092,7 @@ diff --git a/chrome/browser/devtools/BUILD.gn b/chrome/browser/devtools/BUILD.gn
diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrome/browser/download/chrome_download_manager_delegate.cc
--- a/chrome/browser/download/chrome_download_manager_delegate.cc
+++ b/chrome/browser/download/chrome_download_manager_delegate.cc
-@@ -708,7 +708,7 @@ bool ChromeDownloadManagerDelegate::DetermineDownloadTarget(
+@@ -742,7 +742,7 @@ bool ChromeDownloadManagerDelegate::DetermineDownloadTarget(
DownloadPathReservationTracker::FilenameConflictAction action =
kDefaultPlatformConflictAction;
#if BUILDFLAG(IS_ANDROID)
@@ -1046,7 +1104,7 @@ diff --git a/chrome/browser/download/chrome_download_manager_delegate.cc b/chrom
diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUILD.gn
--- a/chrome/browser/extensions/BUILD.gn
+++ b/chrome/browser/extensions/BUILD.gn
-@@ -1738,7 +1738,7 @@ source_set("chrome_extensions_browser_client") {
+@@ -1736,7 +1736,7 @@ source_set("chrome_extensions_browser_client") {
"//extensions/browser/updater:keepalive",
]
@@ -1055,7 +1113,7 @@ diff --git a/chrome/browser/extensions/BUILD.gn b/chrome/browser/extensions/BUIL
sources += [ "chrome_extensions_browser_client_android.cc" ]
deps += [
-@@ -1753,6 +1753,16 @@ source_set("chrome_extensions_browser_client") {
+@@ -1751,6 +1751,16 @@ source_set("chrome_extensions_browser_client") {
"//extensions/browser",
"//extensions/browser/kiosk",
]
@@ -1098,10 +1156,10 @@ diff --git a/chrome/browser/extensions/extension_management.cc b/chrome/browser/
+ return base::FeatureList::IsEnabled(
+ extensions_features::kEnableExtensionsAndroid);
+ }
- // Disable extensions only for specific domains.
- // This check keeps many tests from failing.
- std::string user_name = profile_->GetProfileUserName();
-@@ -197,7 +201,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const {
+ // If Finch has enabled extensions for corp, allow them.
+ if (base::FeatureList::IsEnabled(
+ extensions_features::kEnableExtensionsForCorpDesktopAndroid)) {
+@@ -202,7 +206,7 @@ bool ExtensionManagement::ExtensionsEnabledForDesktopAndroid() const {
ManagedInstallationMode ExtensionManagement::GetInstallationMode(
const ExtensionId& extension_id,
const std::string& update_url) {
@@ -1125,8 +1183,8 @@ diff --git a/chrome/browser/extensions/extension_management.h b/chrome/browser/e
diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extensions/extension_util.cc
--- a/chrome/browser/extensions/extension_util.cc
+++ b/chrome/browser/extensions/extension_util.cc
-@@ -56,6 +56,10 @@
- #include "chrome/browser/ui/browser.h"
+@@ -51,6 +51,10 @@
+ #include "chromeos/ash/components/file_manager/app_id.h"
#endif
+#if BUILDFLAG(IS_ANDROID)
@@ -1136,7 +1194,7 @@ diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extens
static_assert(BUILDFLAG(ENABLE_EXTENSIONS_CORE));
namespace extensions::util {
-@@ -356,6 +360,13 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -351,6 +355,13 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
bool AreExtensionsDisabled(const base::CommandLine& command_line,
content::BrowserContext* context) {
@@ -1153,15 +1211,27 @@ diff --git a/chrome/browser/extensions/extension_util.cc b/chrome/browser/extens
diff --git a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
--- a/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
+++ b/chrome/browser/feedback/android/java/src/org/chromium/chrome/browser/feedback/DeviceInfoFeedbackSource.java
-@@ -37,7 +37,7 @@ class DeviceInfoFeedbackSource implements FeedbackSource {
+@@ -36,7 +36,7 @@ class DeviceInfoFeedbackSource implements FeedbackSource {
type = TYPE_AUTO;
- } else if (XrUtils.isXrDevice()) {
+ } else if (DeviceInfo.isXr()) {
type = TYPE_XR;
- } else if (DeviceInfo.isDesktop()) {
+ } else if (DeviceInfo.isDesktopFalse()) {
type = TYPE_DESKTOP;
} else if (DeviceFormFactor.isNonMultiDisplayContextOnTablet(
ContextUtils.getApplicationContext())) {
+diff --git a/chrome/browser/file_system_access/BUILD.gn b/chrome/browser/file_system_access/BUILD.gn
+--- a/chrome/browser/file_system_access/BUILD.gn
++++ b/chrome/browser/file_system_access/BUILD.gn
+@@ -61,7 +61,7 @@ source_set("impl") {
+ deps += [ "//chrome/browser/ui/android/tab_model" ]
+ }
+
+- if (!is_android || is_desktop_android) {
++ if (!is_android || is_desktop_android_cromite) {
+ deps += [ "//chrome/browser/ui/browser_window" ]
+ }
+
diff --git a/chrome/browser/media/router/BUILD.gn b/chrome/browser/media/router/BUILD.gn
--- a/chrome/browser/media/router/BUILD.gn
+++ b/chrome/browser/media/router/BUILD.gn
@@ -1291,7 +1361,7 @@ diff --git a/chrome/browser/policy/policy_value_and_status_aggregator.cc b/chrom
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
-@@ -660,7 +660,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -663,7 +663,7 @@ void ChromeBrowserMainExtraPartsProfiles::
chromeos_extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
#endif
extensions::EnsureBrowserContextKeyedServiceFactoriesBuilt();
@@ -1303,7 +1373,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/browser/profiles/off_the_record_profile_impl.cc
--- a/chrome/browser/profiles/off_the_record_profile_impl.cc
+++ b/chrome/browser/profiles/off_the_record_profile_impl.cc
-@@ -107,6 +107,8 @@
+@@ -108,6 +108,8 @@
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "chrome/browser/extensions/extension_special_storage_policy.h"
#include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
@@ -1312,7 +1382,7 @@ diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/bro
#endif
#if BUILDFLAG(ENABLE_EXTENSIONS)
-@@ -213,7 +215,10 @@ void OffTheRecordProfileImpl::Init() {
+@@ -216,7 +218,10 @@ void OffTheRecordProfileImpl::Init() {
this, std::make_unique(profile_));
#endif
@@ -1324,7 +1394,7 @@ diff --git a/chrome/browser/profiles/off_the_record_profile_impl.cc b/chrome/bro
extensions::WebRequestEventRouter::OnOTRBrowserContextCreated(profile_, this);
#endif
-@@ -272,7 +277,7 @@ OffTheRecordProfileImpl::~OffTheRecordProfileImpl() {
+@@ -275,7 +280,7 @@ OffTheRecordProfileImpl::~OffTheRecordProfileImpl() {
SimpleKeyMap::GetInstance()->Dissociate(this);
@@ -1348,7 +1418,7 @@ diff --git a/chrome/browser/profiles/profile_destroyer.cc b/chrome/browser/profi
diff --git a/chrome/browser/resources/BUILD.gn b/chrome/browser/resources/BUILD.gn
--- a/chrome/browser/resources/BUILD.gn
+++ b/chrome/browser/resources/BUILD.gn
-@@ -124,7 +124,7 @@ group("resources") {
+@@ -125,7 +125,7 @@ group("resources") {
]
}
@@ -1544,7 +1614,7 @@ diff --git a/chrome/browser/task_manager/common/task_manager_features.cc b/chrom
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
-@@ -668,7 +668,7 @@ static_library("ui") {
+@@ -671,7 +671,7 @@ static_library("ui") {
"//v8:v8_version",
]
@@ -1553,7 +1623,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
sources += [
"browser_navigator.h",
"incognito_allowed_url.cc",
-@@ -683,7 +683,7 @@ static_library("ui") {
+@@ -686,7 +686,7 @@ static_library("ui") {
]
# Desktop-Android-only dependencies.
@@ -1562,8 +1632,8 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
sources += [ "//chrome/browser/ui/android/browser_navigator_android.cc" ]
deps += [ "//chrome/browser/ui/android/extensions/windowing/internal" ]
}
-@@ -2872,7 +2872,7 @@ static_library("ui") {
- ]
+@@ -2897,7 +2897,7 @@ static_library("ui") {
+ allow_circular_includes_from += [ "//chrome/browser/ui/wallet" ]
}
- if (is_win || is_mac || is_linux || is_chromeos || is_desktop_android) {
@@ -1791,7 +1861,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/android/tab_model/BUILD.gn b/chrome/browser/ui/android/tab_model/BUILD.gn
--- a/chrome/browser/ui/android/tab_model/BUILD.gn
+++ b/chrome/browser/ui/android/tab_model/BUILD.gn
-@@ -63,7 +63,7 @@ source_set("impl") {
+@@ -65,7 +65,7 @@ source_set("impl") {
"//ui/base:types",
]
@@ -1800,7 +1870,7 @@ diff --git a/chrome/browser/ui/android/tab_model/BUILD.gn b/chrome/browser/ui/an
deps += [
"//chrome/browser/ui/browser_window",
"//chrome/browser/ui/browser_window/internal",
-@@ -93,7 +93,7 @@ source_set("test_support") {
+@@ -95,7 +95,7 @@ source_set("test_support") {
"//chrome/browser/ui/android/tab_model",
]
@@ -1854,7 +1924,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model.h b/chrome/browser/ui
diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
--- a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
+++ b/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc
-@@ -42,7 +42,7 @@
+@@ -43,7 +43,7 @@
// "chrome/browser/ui/browser_window" is available on desktop Android, but not
// other Android builds.
@@ -1863,7 +1933,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
#include "chrome/browser/ui/browser_window/internal/android/android_browser_window.h" // nogncheck
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck
#include "chrome/browser/ui/browser_window/public/browser_window_interface_iterator.h" // nogncheck
-@@ -75,7 +75,7 @@ std::vector GetAllTabsFromHandles(
+@@ -76,7 +76,7 @@ std::vector GetAllTabsFromHandles(
return tabs;
}
@@ -1872,7 +1942,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
AndroidBrowserWindow* GetAndroidBrowserWindow(SessionID session_id) {
for (BrowserWindowInterface* window : GetAllBrowserWindowInterfaces()) {
if (window->GetSessionID() == session_id) {
-@@ -114,7 +114,7 @@ void TabModelJniBridge::AssociateWithBrowserWindow(
+@@ -115,7 +115,7 @@ void TabModelJniBridge::AssociateWithBrowserWindow(
long native_android_browser_window) {
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds. For non-desktop Android, this function should be a no-op.
@@ -1881,7 +1951,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
BrowserWindowInterface* android_browser_window =
reinterpret_cast(native_android_browser_window);
CHECK(android_browser_window != nullptr);
-@@ -151,7 +151,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting(
+@@ -152,7 +152,7 @@ void TabModelJniBridge::MoveTabToWindowForTesting(
TabAndroid* tab,
long android_browser_window_ptr,
int new_index) {
@@ -1890,7 +1960,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
SessionID destination_window_id =
reinterpret_cast(android_browser_window_ptr)
->GetSessionID();
-@@ -166,7 +166,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting(
+@@ -167,7 +167,7 @@ void TabModelJniBridge::MoveTabGroupToWindowForTesting(
const base::Token& group_id,
long android_browser_window_ptr,
int new_index) {
@@ -1899,7 +1969,7 @@ diff --git a/chrome/browser/ui/android/tab_model/tab_model_jni_bridge.cc b/chrom
SessionID destination_window_id =
reinterpret_cast(android_browser_window_ptr)
->GetSessionID();
-@@ -611,7 +611,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id,
+@@ -631,7 +631,7 @@ void TabModelJniBridge::MoveTabGroupToWindow(tab_groups::TabGroupId group_id,
ScopedJavaLocalRef TabModelJniBridge::GetActivityForWindow(
SessionID window_id) {
ScopedJavaLocalRef jactivity;
@@ -2023,7 +2093,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mContext = context;
mCurrentTabSupplier = currentTabSupplier;
mTabCreator = tabCreator;
-@@ -156,7 +158,8 @@ public class ExtensionsMenuCoordinator implements Destroyable {
+@@ -160,7 +162,8 @@ public class ExtensionsMenuCoordinator implements Destroyable {
mExtensionsMenuButton.setVisibility(visibility);
mExtensionsMenuTabSwitcherDivider.setVisibility(visibility);
},
@@ -2113,28 +2183,28 @@ diff --git a/chrome/browser/ui/browser_navigator_params.cc b/chrome/browser/ui/b
#include "chrome/browser/ui/browser_window/public/browser_window_interface.h" // nogncheck
#endif
-@@ -39,7 +39,7 @@ NavigateParams::NavigateParams(Browser* a_browser,
- : contents_to_insert(std::move(contents_to_insert)), browser(a_browser) {}
- #endif // BUILDFLAG(IS_ANDROID)
+@@ -30,7 +30,7 @@ NavigateParams::NavigateParams(std::unique_ptr contents_to_insert)
+ : contents_to_insert(std::move(contents_to_insert)) {}
+ #endif
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
- NavigateParams::NavigateParams(BrowserWindowInterface* a_bwi,
+ NavigateParams::NavigateParams(BrowserWindowInterface* a_browser,
const GURL& a_url,
ui::PageTransition a_transition)
diff --git a/chrome/browser/ui/browser_navigator_params.h b/chrome/browser/ui/browser_navigator_params.h
--- a/chrome/browser/ui/browser_navigator_params.h
+++ b/chrome/browser/ui/browser_navigator_params.h
-@@ -86,7 +86,7 @@ struct NavigateParams {
- std::unique_ptr contents_to_insert);
+@@ -77,7 +77,7 @@ struct NavigateParams {
+ std::unique_ptr contents_to_insert);
#endif
-#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID)
+#if !BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
- // TODO(http://crbug.com/443062679): Unused in WML's Navigate().
- NavigateParams(BrowserWindowInterface* a_bwi,
+ NavigateParams(BrowserWindowInterface* a_browser,
const GURL& a_url,
-@@ -274,7 +274,7 @@ struct NavigateParams {
+ ui::PageTransition a_transition);
+@@ -264,7 +264,7 @@ struct NavigateParams {
};
PathBehavior path_behavior = RESPECT;
@@ -2236,10 +2306,22 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
RegisterFontFamilyPrefs(registry, fonts_with_defaults);
registry->RegisterIntegerPref(prefs::kWebKitDefaultFontSize, 16);
+diff --git a/chrome/browser/ui/tab_contents/BUILD.gn b/chrome/browser/ui/tab_contents/BUILD.gn
+--- a/chrome/browser/ui/tab_contents/BUILD.gn
++++ b/chrome/browser/ui/tab_contents/BUILD.gn
+@@ -88,7 +88,7 @@ source_set("impl") {
+ "//chrome/browser/ui/views/side_panel",
+ ]
+ }
+- if (!is_android || is_desktop_android) {
++ if (!is_android || is_desktop_android_cromite) {
+ deps += [ "//chrome/browser/ui/browser_window" ]
+ }
+ if (enable_extensions) {
diff --git a/chrome/browser/ui/tabs/tab_list_interface.h b/chrome/browser/ui/tabs/tab_list_interface.h
--- a/chrome/browser/ui/tabs/tab_list_interface.h
+++ b/chrome/browser/ui/tabs/tab_list_interface.h
-@@ -17,7 +17,7 @@
+@@ -18,7 +18,7 @@
// BrowserWindowInterface is available on desktop Android, but not other Android
// builds.
@@ -2248,7 +2330,7 @@ diff --git a/chrome/browser/ui/tabs/tab_list_interface.h b/chrome/browser/ui/tab
class BrowserWindowInterface;
#endif
-@@ -34,7 +34,7 @@ class TabListInterface {
+@@ -35,7 +35,7 @@ class TabListInterface {
TabListInterface(const TabListInterface& other) = delete;
void operator=(const TabListInterface& other) = delete;
@@ -2272,7 +2354,7 @@ diff --git a/chrome/browser/ui/webid/BUILD.gn b/chrome/browser/ui/webid/BUILD.gn
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
-@@ -179,7 +179,7 @@
+@@ -180,7 +180,7 @@
// BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -2281,7 +2363,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/u
#include "chrome/browser/ui/webui/discards/discards_ui.h"
#endif // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) ||
// BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_DESKTOP_ANDROID)
-@@ -406,7 +406,7 @@ void RegisterChromeWebUIConfigs() {
+@@ -408,7 +408,7 @@ void RegisterChromeWebUIConfigs() {
// BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -2344,7 +2426,7 @@ diff --git a/chrome/browser/ui/webui/discards/discards_ui.cc b/chrome/browser/ui
diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
--- a/chrome/chrome_paks.gni
+++ b/chrome/chrome_paks.gni
-@@ -507,7 +507,7 @@ template("chrome_extra_paks") {
+@@ -509,7 +509,7 @@ template("chrome_extra_paks") {
deps += [ "//chrome/browser/resources/app_settings:resources" ]
}
@@ -2368,7 +2450,7 @@ diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
--- a/chrome/common/chrome_switches.cc
+++ b/chrome/common/chrome_switches.cc
-@@ -789,7 +789,7 @@ const char kMarketUrlForTesting[] = "market-url-for-testing";
+@@ -784,7 +784,7 @@ const char kMarketUrlForTesting[] = "market-url-for-testing";
const char kRequestDesktopSites[] = "request-desktop-sites";
#endif // BUILDFLAG(IS_ANDROID)
@@ -2380,7 +2462,7 @@ diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
--- a/chrome/common/chrome_switches.h
+++ b/chrome/common/chrome_switches.h
-@@ -232,7 +232,7 @@ extern const char kMarketUrlForTesting[];
+@@ -231,7 +231,7 @@ extern const char kMarketUrlForTesting[];
extern const char kRequestDesktopSites[];
#endif // BUILDFLAG(IS_ANDROID)
@@ -2392,7 +2474,7 @@ diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h
diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extensions/api/api_sources.gni
--- a/chrome/common/extensions/api/api_sources.gni
+++ b/chrome/common/extensions/api/api_sources.gni
-@@ -63,6 +63,13 @@ uncompiled_sources_ = [
+@@ -64,6 +64,13 @@ uncompiled_sources_ = [
"top_sites.json",
]
@@ -2409,7 +2491,7 @@ diff --git a/chrome/common/extensions/api/api_sources.gni b/chrome/common/extens
diff --git a/chrome/common/webui_url_constants.cc b/chrome/common/webui_url_constants.cc
--- a/chrome/common/webui_url_constants.cc
+++ b/chrome/common/webui_url_constants.cc
-@@ -201,7 +201,7 @@ base::span ChromeURLHosts() {
+@@ -204,7 +204,7 @@ base::span ChromeURLHosts() {
kChromeUIInternetDetailDialogHost,
#endif
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -2421,7 +2503,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
-@@ -558,7 +558,7 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome://internal/";
+@@ -565,7 +565,7 @@ inline constexpr char kChromeUIOsUrlAppURL[] = "chrome://internal/";
#endif // BUILDFLAG(IS_CHROMEOS)
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
@@ -2433,7 +2515,7 @@ diff --git a/chrome/common/webui_url_constants.h b/chrome/common/webui_url_const
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
-@@ -371,7 +371,7 @@ static_library("test_support") {
+@@ -367,7 +367,7 @@ static_library("test_support") {
]
}
@@ -2442,7 +2524,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
public_deps += [
"//extensions/browser:test_support",
"//extensions/common:test_support",
-@@ -488,7 +488,7 @@ static_library("test_support") {
+@@ -484,7 +484,7 @@ static_library("test_support") {
# TODO(https://crbug.com/356905053): Continue pulling more common test
# support pieces into here and eventually merge this with the
# `enable_extensions` block above.
@@ -2451,7 +2533,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
deps += [ "//chrome/renderer/extensions" ]
public_deps += [
-@@ -1535,7 +1535,7 @@ source_set("platform_browser_tests") {
+@@ -1527,7 +1527,7 @@ source_set("platform_browser_tests") {
sources += [ "../browser/enterprise/remote_commands/user_remote_commands_service_browsertest.cc" ]
}
@@ -2460,7 +2542,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
deps += [ "//chrome/browser/ui/prefs:browser_tests" ]
}
-@@ -1765,7 +1765,7 @@ source_set("platform_browser_tests") {
+@@ -1777,7 +1777,7 @@ source_set("platform_browser_tests") {
"//chrome/browser/ui/browser_window",
]
}
@@ -2469,7 +2551,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
sources +=
[ "../browser/devtools/global_confirm_info_bar_browsertest.cc" ]
}
-@@ -2049,7 +2049,7 @@ if (is_android) {
+@@ -2065,7 +2065,7 @@ if (is_android) {
extra_args = []
@@ -2478,7 +2560,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
sources +=
[ "../browser/ui/android/browser_navigator_android_browsertest.cc" ]
deps += [
-@@ -2145,7 +2145,7 @@ if (is_android) {
+@@ -2161,7 +2161,7 @@ if (is_android) {
]
}
@@ -2487,7 +2569,7 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
sources += [
# These API tests can't be part of platform_browser_tests because they
# run in interactive_ui_tests on Win/Mac/Linux.
-@@ -8038,7 +8038,7 @@ test("unit_tests") {
+@@ -8041,7 +8041,7 @@ test("unit_tests") {
deps += [ "//chrome/browser/android/extensions:android" ]
}
@@ -2499,7 +2581,16 @@ diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
diff --git a/chrome/version.gni b/chrome/version.gni
--- a/chrome/version.gni
+++ b/chrome/version.gni
-@@ -347,7 +347,7 @@ if (is_android) {
+@@ -323,7 +323,7 @@ if (is_android) {
+ # in the android_chrome_versions.txt above
+ if (_use_stable_package_name_for_trichrome) {
+ chrome_version_code = chrome_beta_version_code
+- } else if (is_desktop_android) {
++ } else if (is_desktop_android_false) {
+ chrome_version_code = chrome_desktop_version_code
+ }
+
+@@ -355,7 +355,7 @@ if (is_android) {
} else {
true_true_true_true = trichrome_64_32_version_code
}
@@ -2511,7 +2602,7 @@ diff --git a/chrome/version.gni b/chrome/version.gni
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
-@@ -330,6 +330,12 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
+@@ -329,6 +329,12 @@ HostContentSettingsMap::HostContentSettingsMap(PrefService* prefs,
RecordExceptionMetrics();
}
@@ -2636,6 +2727,18 @@ diff --git a/components/policy/core/browser/cloud/user_policy_signin_service_bas
return em::DeviceRegisterRequest::BROWSER;
} else {
return em::DeviceRegisterRequest::ANDROID_BROWSER;
+diff --git a/components/policy/core/browser/configuration_policy_handler_list.cc b/components/policy/core/browser/configuration_policy_handler_list.cc
+--- a/components/policy/core/browser/configuration_policy_handler_list.cc
++++ b/components/policy/core/browser/configuration_policy_handler_list.cc
+@@ -144,7 +144,7 @@ bool ConfigurationPolicyHandlerList::IsBlockedFuturePolicy(
+ const base::flat_set& future_policies_allowed,
+ const PolicyDetails& policy_details,
+ PolicyMap::const_reference entry) const {
+-#if BUILDFLAG(IS_DESKTOP_ANDROID)
++#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
+ if (base::FeatureList::IsEnabled(features::kFuturePoliciesOnDesktopAndroid) &&
+ policy_details.is_future) {
+ return false;
diff --git a/components/policy/core/common/cloud/cloud_policy_constants.cc b/components/policy/core/common/cloud/cloud_policy_constants.cc
--- a/components/policy/core/common/cloud/cloud_policy_constants.cc
+++ b/components/policy/core/common/cloud/cloud_policy_constants.cc
@@ -2648,6 +2751,18 @@ diff --git a/components/policy/core/common/cloud/cloud_policy_constants.cc b/com
return "google/chrome/user";
} else {
return "google/android/user";
+diff --git a/components/policy/core/common/features.cc b/components/policy/core/common/features.cc
+--- a/components/policy/core/common/features.cc
++++ b/components/policy/core/common/features.cc
+@@ -40,7 +40,7 @@ BASE_FEATURE(kSafeSitesCaptivePortalCheck, base::FEATURE_ENABLED_BY_DEFAULT);
+
+ // TODO(https://crbug.com/452666657): Remove this feature flag after launching
+ // policies to supported on Android Desktop.
+-#if BUILDFLAG(IS_DESKTOP_ANDROID)
++#if BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
+ BASE_FEATURE(kFuturePoliciesOnDesktopAndroid,
+ "FuturePoliciesOnDesktopAndroid",
+ base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/variations/service/variations_service_client.cc b/components/variations/service/variations_service_client.cc
--- a/components/variations/service/variations_service_client.cc
+++ b/components/variations/service/variations_service_client.cc
@@ -2717,7 +2832,7 @@ diff --git a/components/webui/version/resources/about_version.html b/components/
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc
--- a/content/browser/browser_main_loop.cc
+++ b/content/browser/browser_main_loop.cc
-@@ -849,7 +849,7 @@ int BrowserMainLoop::PreCreateThreads() {
+@@ -851,7 +851,7 @@ int BrowserMainLoop::PreCreateThreads() {
base::UmaHistogramBoolean("SiteIsolation.IsSitePerProcessOrStricter",
SiteIsolationPolicy::IsSitePerProcessOrStricter());
@@ -2729,7 +2844,7 @@ diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main
diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc
--- a/content/browser/renderer_host/media/video_capture_manager.cc
+++ b/content/browser/renderer_host/media/video_capture_manager.cc
-@@ -122,7 +122,7 @@ void VideoCaptureManager::RegisterListener(
+@@ -121,7 +121,7 @@ void VideoCaptureManager::RegisterListener(
DCHECK_CURRENTLY_ON(BrowserThread::IO);
DCHECK(listener);
listeners_.AddObserver(listener);
@@ -2738,7 +2853,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/cont
application_state_has_running_activities_ = true;
app_status_listener_ =
base::android::ApplicationStatusListener::New(base::BindRepeating(
-@@ -953,7 +953,7 @@ VideoCaptureManager::GetOrCreateController(
+@@ -951,7 +951,7 @@ VideoCaptureManager::GetOrCreateController(
return new_controller;
}
@@ -2750,8 +2865,8 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/cont
diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/content/browser/renderer_host/media/video_capture_manager.h
--- a/content/browser/renderer_host/media/video_capture_manager.h
+++ b/content/browser/renderer_host/media/video_capture_manager.h
-@@ -39,7 +39,7 @@
- #include "mojo/public/cpp/bindings/remote.h"
+@@ -36,7 +36,7 @@
+ #include "media/capture/video_capture_types.h"
#include "ui/gfx/native_ui_types.h"
-#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_DESKTOP_ANDROID)
@@ -2759,7 +2874,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/conte
#include "base/android/application_status_listener.h"
#endif
-@@ -217,7 +217,7 @@ class CONTENT_EXPORT VideoCaptureManager
+@@ -208,7 +208,7 @@ class CONTENT_EXPORT VideoCaptureManager
void TakePhoto(const base::UnguessableToken& session_id,
VideoCaptureDevice::TakePhotoCallback callback);
@@ -2768,7 +2883,7 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/conte
// Some devices had troubles when stopped and restarted quickly, so the device
// is only stopped when Chrome is sent to background and not when, e.g., a tab
// is hidden, see http://crbug.com/582295.
-@@ -333,7 +333,7 @@ class CONTENT_EXPORT VideoCaptureManager
+@@ -324,7 +324,7 @@ class CONTENT_EXPORT VideoCaptureManager
void ReleaseDevices();
void ResumeDevices();
@@ -2777,6 +2892,18 @@ diff --git a/content/browser/renderer_host/media/video_capture_manager.h b/conte
std::unique_ptr
app_status_listener_;
bool application_state_has_running_activities_;
+diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
+--- a/content/browser/renderer_host/render_widget_host_view_android.cc
++++ b/content/browser/renderer_host/render_widget_host_view_android.cc
+@@ -182,7 +182,7 @@ bool IsTooltipsEnabled() {
+ // Only show on desktop devices up to B due to tooltips bug b/445244223.
+ if (base::android::android_info::sdk_int() <=
+ base::android::android_info::SDK_VERSION_BAKLAVA) {
+- return base::android::device_info::is_desktop();
++ return base::android::device_info::is_desktop_false();
+ }
+
+ return true;
diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
--- a/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
+++ b/content/public/android/java/src/org/chromium/content/browser/ContentUiEventHandler.java
@@ -2797,7 +2924,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/Conten
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
-@@ -545,7 +545,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount,
+@@ -577,7 +577,7 @@ BASE_FEATURE(kLoadingPredictorLimitPreconnectSocketCount,
base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kLogJsConsoleMessages,
@@ -2806,6 +2933,18 @@ diff --git a/content/public/common/content_features.cc b/content/public/common/c
base::FEATURE_DISABLED_BY_DEFAULT
#else
base::FEATURE_ENABLED_BY_DEFAULT
+diff --git a/content/public/renderer/render_frame_media_playback_options.cc b/content/public/renderer/render_frame_media_playback_options.cc
+--- a/content/public/renderer/render_frame_media_playback_options.cc
++++ b/content/public/renderer/render_frame_media_playback_options.cc
+@@ -22,7 +22,7 @@ bool IsBackgroundMediaSuspendEnabled() {
+ if (base::FeatureList::IsEnabled(
+ features::kAndroidEnableBackgroundMediaLargeFormFactors) &&
+ (base::android::device_info::is_tablet() ||
+- base::android::device_info::is_desktop())) {
++ base::android::device_info::is_desktop_false())) {
+ // Do not suspend background media if feature is enabled AND it was launched
+ // on a large display. Feature is enabled by default except for WebView
+ return false;
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc b/cromite_flags/chrome/browser/about_flags_cc/Extensions-Android.inc
new file mode 100644
--- /dev/null
@@ -2851,8 +2990,8 @@ diff --git a/cromite_flags/chrome/browser/about_flags_cc/Webstore-protection.inc
diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn
--- a/extensions/browser/BUILD.gn
+++ b/extensions/browser/BUILD.gn
-@@ -9,7 +9,7 @@ import("//extensions/buildflags/buildflags.gni")
- import("//pdf/features.gni")
+@@ -9,7 +9,7 @@ import("//pdf/features.gni")
+ import("//rlz/buildflags/buildflags.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
-if (enable_desktop_android_extensions) {
@@ -2860,7 +2999,7 @@ diff --git a/extensions/browser/BUILD.gn b/extensions/browser/BUILD.gn
import("//build/config/android/rules.gni")
}
-@@ -1079,7 +1079,7 @@ source_set("unit_tests") {
+@@ -1094,7 +1094,7 @@ source_set("unit_tests") {
configs += [ "//build/config/compiler:no_exit_time_destructors" ]
}
@@ -3025,12 +3164,21 @@ diff --git a/extensions/common/command.cc b/extensions/common/command.cc
-#elif BUILDFLAG(IS_DESKTOP_ANDROID)
+#elif BUILDFLAG(IS_DESKTOP_ANDROID_CROMITE)
// For now, we use linux keybindings on desktop android.
- // TODO(https://crbug.com/356905053): Should this be ChromeOS keybindings?
return ui::kKeybindingPlatformLinux;
+ #else
diff --git a/extensions/common/extension_features.cc b/extensions/common/extension_features.cc
--- a/extensions/common/extension_features.cc
+++ b/extensions/common/extension_features.cc
-@@ -143,7 +143,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch,
+@@ -56,7 +56,7 @@ BASE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories,
+
+ BASE_FEATURE(kEnableWebHidInWebView, base::FEATURE_ENABLED_BY_DEFAULT);
+
+-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ // Disabled by default because on first-run we don't have a Finch seed yet, so
+ // we want to default to the safe behavior of no extensions.
+ BASE_FEATURE(kEnableExtensionsForCorpDesktopAndroid,
+@@ -150,7 +150,7 @@ BASE_FEATURE(kDisableExtensionsOnChromeUrlsSwitch,
// TODO (crbug.com/426554244): Determine if this switch should be
// removed for desktop-android builds as well.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS) && \
@@ -3039,7 +3187,7 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
base::FEATURE_ENABLED_BY_DEFAULT
#else
base::FEATURE_DISABLED_BY_DEFAULT
-@@ -179,4 +179,10 @@ CROMITE_FEATURE(kEnableExtensionAutoupdate,
+@@ -189,4 +189,10 @@ CROMITE_FEATURE(kEnableExtensionAutoupdate,
CROMITE_FEATURE(kEnableExtensionManagementToChromeStore,
"EnableExtensionToChromeStore",
base::FEATURE_DISABLED_BY_DEFAULT);
@@ -3053,7 +3201,16 @@ diff --git a/extensions/common/extension_features.cc b/extensions/common/extensi
diff --git a/extensions/common/extension_features.h b/extensions/common/extension_features.h
--- a/extensions/common/extension_features.h
+++ b/extensions/common/extension_features.h
-@@ -297,6 +297,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
+@@ -100,7 +100,7 @@ BASE_DECLARE_FEATURE(kSkipResetServiceWorkerURLLoaderFactories);
+ // embedding Chrome App to request access to Human Interface Devices.
+ BASE_DECLARE_FEATURE(kEnableWebHidInWebView);
+
+-#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS)
++#if BUILDFLAG(ENABLE_DESKTOP_ANDROID_EXTENSIONS_CROMITE)
+ // If enabled, extensions will be enabled for @google.com and @managedchrome.com
+ // users on desktop Android. Otherwise they will be blocked.
+ BASE_DECLARE_FEATURE(kEnableExtensionsForCorpDesktopAndroid);
+@@ -310,6 +310,10 @@ BASE_DECLARE_FEATURE(kEnableExtensionAutoupdate);
// Allows the installation of new extensions.
// If active, exposes all features to the chrome web store like chromium.
BASE_DECLARE_FEATURE(kEnableExtensionManagementToChromeStore);
@@ -3091,7 +3248,7 @@ diff --git a/extensions/renderer/bindings/api_binding_util.cc b/extensions/rende
diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
--- a/gpu/config/gpu_finch_features.cc
+++ b/gpu/config/gpu_finch_features.cc
-@@ -589,7 +589,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) {
+@@ -572,7 +572,7 @@ bool IsSkiaGraphiteSupportedByDevice(const base::CommandLine* command_line) {
// Desktop Android isn't ready to pick up the fieldtrial_testing_config.json
// change that enables graphite. However, it's the same platform as regular
// Android and does. Skip enabling the feature there for now.
@@ -3100,7 +3257,7 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
return false;
}
-@@ -702,7 +702,7 @@ bool ShouldEnableDrDc() {
+@@ -685,7 +685,7 @@ bool ShouldEnableDrDc() {
// Chrome on Android desktop aims to be Vulkan-only, which can result
// in crashes when enabled together with DrDc. Re-enable DrDc after
// crbug.com/380295059 is fixed if it is shown beneficial on desktop.
@@ -3109,18 +3266,6 @@ diff --git a/gpu/config/gpu_finch_features.cc b/gpu/config/gpu_finch_features.cc
return false;
}
#endif
-diff --git a/gpu/vulkan/vulkan_util.cc b/gpu/vulkan/vulkan_util.cc
---- a/gpu/vulkan/vulkan_util.cc
-+++ b/gpu/vulkan/vulkan_util.cc
-@@ -322,7 +322,7 @@ bool IsVulkanV3EnabledForAdreno(
-
- bool SkipVulkanBlocklist() {
- // Expectation is for all desktop android devices to use vulkan
-- return BUILDFLAG(IS_DESKTOP_ANDROID);
-+ return false; //BUILDFLAG(IS_DESKTOP_ANDROID_FALSE);
- }
-
- #endif
diff --git a/net/features.gni b/net/features.gni
--- a/net/features.gni
+++ b/net/features.gni
@@ -3150,7 +3295,7 @@ diff --git a/skia/features.gni b/skia/features.gni
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
-@@ -2330,7 +2330,7 @@ BASE_FEATURE(kStopInBackground,
+@@ -2386,7 +2386,7 @@ BASE_FEATURE(kStopInBackground,
// b/248036988 - Disable this for Chromecast on Android builds to prevent apps
// that play audio in the background from stopping.
#if BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CAST_ANDROID) && \
@@ -3275,8 +3420,8 @@ diff --git a/ui/base/device_form_factor_android.cc b/ui/base/device_form_factor_
diff --git a/ui/gl/features.gni b/ui/gl/features.gni
--- a/ui/gl/features.gni
+++ b/ui/gl/features.gni
-@@ -13,7 +13,7 @@ declare_args() {
- # Also controls linking Dawn dependencies in such as SPIRV-Tools/SPIRV-Cross.
+@@ -14,7 +14,7 @@ declare_args() {
+ # Vulkan Validation Layers.
use_dawn = is_apple || is_win || is_chromeos || (is_linux && !is_castos) ||
(is_android && target_cpu != "x86" && target_cpu != "x64") ||
- is_desktop_android
@@ -3284,15 +3429,6 @@ diff --git a/ui/gl/features.gni b/ui/gl/features.gni
# Should Dawn test binaries (unittests, end2end_tests, perf_tests) be built?
# Independent of use_dawn, which controls whether Dawn is used in Chromium.
-@@ -21,7 +21,7 @@ declare_args() {
-
- # desktop android devices exclusively use angle and thus should not use
- # the validating command decoder
-- enable_validating_command_decoder = is_android && !is_desktop_android
-+ enable_validating_command_decoder = is_android && !is_desktop_android_false
- }
-
- declare_args() {
diff --git a/ui/gl/gl_switches.cc b/ui/gl/gl_switches.cc
--- a/ui/gl/gl_switches.cc
+++ b/ui/gl/gl_switches.cc
@@ -3347,6 +3483,18 @@ diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
public_deps += [
"cr_components/cr_shortcut_input:build_grdp",
"cr_components/managed_footnote:build_grdp",
+diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
+--- a/ui/webui/resources/cr_elements/BUILD.gn
++++ b/ui/webui/resources/cr_elements/BUILD.gn
+@@ -36,7 +36,7 @@ build_webui("build") {
+ "cr_tabs/cr_tabs.css",
+ ]
+
+- if ((!is_ios) || is_desktop_android) {
++ if ((!is_ios) || is_desktop_android_cromite) {
+ web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ]
+
+ ts_files += [
diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
--- a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
+++ b/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css
@@ -3363,4 +3511,16 @@ diff --git a/ui/webui/resources/cr_elements/cr_toolbar/cr_toolbar.css b/ui/webui
:host([always-show-logo]) picture,
:host(:not([narrow])) picture {
display: initial;
+diff --git a/ui/webui/resources/css/BUILD.gn b/ui/webui/resources/css/BUILD.gn
+--- a/ui/webui/resources/css/BUILD.gn
++++ b/ui/webui/resources/css/BUILD.gn
+@@ -35,7 +35,7 @@ preprocess_if_expr("preprocess") {
+ in_files += [ "roboto.css" ]
+ }
+
+- if (include_polymer || is_desktop_android) {
++ if (include_polymer || is_desktop_android_cromite) {
+ in_files += [ "md_colors.css" ]
+ }
+ }
--
diff --git a/build/patches/Experimental-user-scripts-support.patch b/build/patches/Experimental-user-scripts-support.patch
index 464e8938..4a09937e 100644
--- a/build/patches/Experimental-user-scripts-support.patch
+++ b/build/patches/Experimental-user-scripts-support.patch
@@ -116,7 +116,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../user_scripts/renderer/script_context.h | 67 ++
.../user_scripts/renderer/script_injection.cc | 295 +++++++
.../user_scripts/renderer/script_injection.h | 155 ++++
- .../renderer/script_injection_manager.cc | 414 +++++++++
+ .../renderer/script_injection_manager.cc | 413 +++++++++
.../renderer/script_injection_manager.h | 100 +++
.../user_scripts/renderer/script_injector.h | 100 +++
.../user_scripts/renderer/scripts_run_info.cc | 31 +
@@ -136,7 +136,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../strings/userscripts_strings.grdp | 54 ++
.../Experimental-user-scripts-support.inc | 13 +
tools/gritsettings/resource_ids.spec | 6 +
- 109 files changed, 10494 insertions(+), 3 deletions(-)
+ 109 files changed, 10493 insertions(+), 3 deletions(-)
create mode 100644 components/user_scripts/README.md
create mode 100755 components/user_scripts/android/BUILD.gn
create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
@@ -242,7 +242,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
":chrome_base_module_resources",
":ui_locale_string_resources",
"//chrome/android/webapk/libs/common:splash_resources",
-@@ -707,6 +711,7 @@ if (_is_default_toolchain) {
+@@ -709,6 +713,7 @@ if (_is_default_toolchain) {
"//components/ukm/android:java",
"//components/url_formatter/android:url_formatter_java",
"//components/user_prefs/android:java",
@@ -250,7 +250,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/variations:variations_java",
"//components/variations/android:variations_java",
"//components/viz/service:service_java",
-@@ -1707,6 +1712,7 @@ if (_is_default_toolchain) {
+@@ -1712,6 +1717,7 @@ if (_is_default_toolchain) {
java_group("chrome_public_non_pak_assets") {
deps = [
"//chrome/android/webapk/libs/runtime_library:runtime_library_assets",
@@ -299,7 +299,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -154,6 +154,8 @@ import java.util.Date;
+@@ -157,6 +157,8 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
@@ -308,7 +308,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
/**
* Handles the initialization dependences of the browser process. This is meant to handle the
* initialization that is not tied to any particular Activity, and the logic that should only be
-@@ -658,6 +660,8 @@ public class ProcessInitializationHandler {
+@@ -667,6 +669,8 @@ public class ProcessInitializationHandler {
DefaultBrowserInfo.initBrowserFetcher();
@@ -337,7 +337,7 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3702,6 +3702,13 @@ static_library("browser") {
+@@ -3698,6 +3698,13 @@ static_library("browser") {
]
deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
}
@@ -365,7 +365,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -279,6 +279,7 @@
+@@ -283,6 +283,7 @@
#include "components/ntp_tiles/popular_sites_impl.h"
#include "components/permissions/contexts/geolocation_permission_context_android.h"
#include "components/webapps/browser/android/install_prompt_prefs.h"
@@ -373,7 +373,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
#else // BUILDFLAG(IS_ANDROID)
#include "chrome/browser/contextual_cueing/contextual_cueing_prefs.h"
#include "chrome/browser/gcm/gcm_product_util.h"
-@@ -2149,6 +2150,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -1968,6 +1969,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
registry);
omnibox::RegisterProfilePrefs(registry);
ZeroSuggestProvider::RegisterProfilePrefs(registry);
@@ -386,7 +386,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
--- a/chrome/browser/profiles/BUILD.gn
+++ b/chrome/browser/profiles/BUILD.gn
-@@ -83,6 +83,9 @@ source_set("profile") {
+@@ -84,6 +84,9 @@ source_set("profile") {
"//content/public/browser",
"//extensions/buildflags",
]
@@ -399,7 +399,7 @@ diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -599,6 +599,11 @@
+@@ -602,6 +602,11 @@
#include "chrome/browser/net/nss_service_factory.h"
#endif
@@ -411,7 +411,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
main_parts->AddParts(std::make_unique());
}
-@@ -1443,6 +1448,10 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -1457,6 +1462,10 @@ void ChromeBrowserMainExtraPartsProfiles::
#endif
WebDataServiceFactory::GetInstance();
webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
@@ -436,7 +436,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
#if BUILDFLAG(ENABLE_SESSION_SERVICE)
#include "chrome/browser/sessions/app_session_service_factory.h"
#include "chrome/browser/sessions/session_service_factory.h"
-@@ -1474,6 +1478,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
+@@ -1494,6 +1498,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
// initializing the supervised flag if necessary).
ChildAccountServiceFactory::GetForProfile(profile)->Init();
ListFamilyMembersServiceFactory::GetForProfile(profile)->Init();
@@ -524,7 +524,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"
-@@ -434,7 +437,9 @@ void RegisterChromeWebUIConfigs() {
+@@ -436,7 +439,9 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(
std::make_unique());
#endif
@@ -568,7 +568,7 @@ diff --git a/chrome/common/renderer_configuration.mojom b/chrome/common/renderer
diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
--- a/chrome/renderer/BUILD.gn
+++ b/chrome/renderer/BUILD.gn
-@@ -243,6 +243,12 @@ static_library("renderer") {
+@@ -242,6 +242,12 @@ static_library("renderer") {
deps += [ "//components/webapps/isolated_web_apps:scheme" ]
}
@@ -627,7 +627,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
#if BUILDFLAG(ENABLE_PAINT_PREVIEW)
new paint_preview::PaintPreviewRecorderImpl(render_frame);
#endif
-@@ -1448,6 +1470,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
+@@ -1449,6 +1471,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -645,7 +645,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
-@@ -1457,6 +1490,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
+@@ -1458,6 +1491,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -663,7 +663,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
}
void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
-@@ -1466,6 +1510,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
+@@ -1467,6 +1511,17 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
render_frame);
// |render_frame| might be dead by now.
#endif
@@ -714,8 +714,8 @@ diff --git a/components/components_strings.grd b/components/components_strings.g
+
+
-
diff --git a/components/user_scripts/README.md b/components/user_scripts/README.md
new file mode 100644
--- /dev/null
@@ -1773,7 +1773,7 @@ new file mode 100644
+ .withEnabled(info.ParserError == null || info.ParserError.isEmpty())
+ .build());
+
-+ ListMenu.Delegate delegate = (model) -> {
++ ListMenu.Delegate delegate = (model, view) -> {
+ int textId = model.get(ListMenuItemProperties.TITLE_ID);
+ if (textId == R.string.remove) {
+ UserScriptsBridge.RemoveScript(info.Key);
@@ -6353,7 +6353,7 @@ new file mode 100755
+
+ // Ensure the scheme matches first, since may not match this URL if
+ // the scheme is excluded.
-+ if (!MatchesScheme(test_url->scheme_piece()))
++ if (!MatchesScheme(test_url->scheme()))
+ return false;
+
+ if (match_all_urls_)
@@ -6366,7 +6366,7 @@ new file mode 100755
+
+ std::string path_for_request = test.PathForRequest();
+ if (has_inner_url) {
-+ path_for_request = base::StringPrintf("%s%s", test_url->path_piece().data(),
++ path_for_request = base::StringPrintf("%s%s", test_url->path().data(),
+ path_for_request.c_str());
+ }
+
@@ -6411,7 +6411,7 @@ new file mode 100755
+}
+
+bool URLPattern::MatchesHost(const GURL& test) const {
-+ std::string_view test_host(CanonicalizeHostForMatching(test.host_piece()));
++ std::string_view test_host(CanonicalizeHostForMatching(test.host()));
+ const std::string_view pattern_host(CanonicalizeHostForMatching(host_));
+
+ // If the hosts are exactly equal, we have a match.
@@ -9470,7 +9470,7 @@ diff --git a/components/user_scripts/renderer/script_injection_manager.cc b/comp
new file mode 100755
--- /dev/null
+++ b/components/user_scripts/renderer/script_injection_manager.cc
-@@ -0,0 +1,414 @@
+@@ -0,0 +1,413 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -9493,7 +9493,6 @@ new file mode 100755
+#include "script_injection.h"
+#include "scripts_run_info.h"
+#include "web_ui_injection_host.h"
-+#include "ipc/ipc_message_macros.h"
+#include "third_party/blink/public/platform/web_url_error.h"
+#include "third_party/blink/public/web/web_document.h"
+#include "third_party/blink/public/web/web_frame.h"
@@ -10293,7 +10292,7 @@ new file mode 100755
+ const std::set& injected_files) {
+ for (const std::unique_ptr& file : scripts) {
+ // Check if the script is already injected.
-+ if (injected_files.count(file->url().path()) == 0) {
++ if (injected_files.count(file->url().GetPath()) == 0) {
+ return true;
+ }
+ }
@@ -10390,7 +10389,7 @@ new file mode 100755
+ for (const std::unique_ptr& file : js_scripts) {
+ const GURL& script_url = file->url();
+ // Check if the script is already injected.
-+ if (executing_scripts->count(script_url.path()) != 0)
++ if (executing_scripts->count(script_url.GetPath()) != 0)
+ continue;
+
+ sources.push_back(blink::WebScriptSource(
@@ -10398,7 +10397,7 @@ new file mode 100755
+ script_url));
+
+ (*num_injected_js_scripts) += 1;
-+ executing_scripts->insert(script_url.path());
++ executing_scripts->insert(script_url.GetPath());
+ }
+
+ return sources;
@@ -10416,7 +10415,7 @@ new file mode 100755
+ const UserScript::FileList& css_scripts = script_->css_scripts();
+ sources.reserve(css_scripts.size());
+ for (const std::unique_ptr& file : script_->css_scripts()) {
-+ const std::string& stylesheet_path = file->url().path();
++ const std::string& stylesheet_path = file->url().GetPath();
+ // Check if the stylesheet is already injected.
+ if (injected_stylesheets->count(stylesheet_path) != 0)
+ continue;
@@ -11493,7 +11492,7 @@ new file mode 100644
diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
--- a/tools/gritsettings/resource_ids.spec
+++ b/tools/gritsettings/resource_ids.spec
-@@ -1216,6 +1216,12 @@
+@@ -1228,6 +1228,12 @@
"META": {"sizes": {"includes": [30],}},
"includes": [7480],
},
diff --git a/build/patches/Eyeo-Adblock-for-Cromite.patch b/build/patches/Eyeo-Adblock-for-Cromite.patch
index be8fc981..da752459 100644
--- a/build/patches/Eyeo-Adblock-for-Cromite.patch
+++ b/build/patches/Eyeo-Adblock-for-Cromite.patch
@@ -103,7 +103,7 @@ suit Cromite logic.
.../adblock/core/subscription/subscription.cc | 20 +
.../adblock/core/subscription/subscription.h | 3 +
.../subscription_collection_impl.cc | 1 +
- .../core/subscription/subscription_config.cc | 92 +-
+ .../core/subscription/subscription_config.cc | 86 +-
.../core/subscription/subscription_config.h | 6 +-
.../subscription_downloader_impl.cc | 19 +-
.../subscription_persistent_metadata.h | 1 +
@@ -131,7 +131,7 @@ suit Cromite logic.
.../renderer/core/exported/web_document.cc | 13 +-
.../blink/renderer/core/html/html_element.cc | 8 +-
.../definitions/adblock_private.d.ts | 14 +
- 126 files changed, 9336 insertions(+), 689 deletions(-)
+ 126 files changed, 9332 insertions(+), 687 deletions(-)
rename chrome/browser/adblock/android/java/res/xml/{adblock_preferences.xml => eyeo_adblock_preferences.xml} (59%)
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.html
create mode 100644 chrome/browser/resources/settings/adblock_page/adblock_page.ts
@@ -220,7 +220,7 @@ diff --git a/chrome/browser/adblock/adblock_chrome_content_browser_client.h b/ch
diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/android/BUILD.gn
--- a/chrome/browser/adblock/android/BUILD.gn
+++ b/chrome/browser/adblock/android/BUILD.gn
-@@ -113,6 +113,7 @@ android_library("adblock_ui_java") {
+@@ -34,6 +34,7 @@ android_library("adblock_ui_java") {
"//build/android:build_java",
"//chrome/browser/preferences:java",
"//chrome/browser/profiles/android:java",
@@ -228,7 +228,7 @@ diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/an
"//components/adblock/android:adblock_controller_java",
"//components/browser_ui/settings/android:java",
"//components/prefs/android:java",
-@@ -148,7 +149,7 @@ android_resources("java_ui_resources") {
+@@ -69,7 +70,7 @@ android_resources("java_ui_resources") {
"java/res/layout/adblock_custom_item_settings.xml",
"java/res/layout/adblock_filter_lists_list_item.xml",
"java/res/xml/adblock_more_options.xml",
@@ -878,7 +878,7 @@ diff --git a/chrome/browser/adblock/android/java/src/org/chromium/chrome/browser
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -6516,7 +6516,9 @@ ChromeContentBrowserClient::
+@@ -6446,7 +6446,9 @@ ChromeContentBrowserClient::
}
bool ChromeContentBrowserClient::WillInterceptWebSocket(
@@ -889,7 +889,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
if (!frame) {
return false;
-@@ -6539,9 +6541,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
+@@ -6469,9 +6471,11 @@ bool ChromeContentBrowserClient::WillInterceptWebSocket(
}
void ChromeContentBrowserClient::CreateWebSocket(
@@ -904,7 +904,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/chrome_content_browser_client.h b/chrome/browser/chrome_content_browser_client.h
--- a/chrome/browser/chrome_content_browser_client.h
+++ b/chrome/browser/chrome_content_browser_client.h
-@@ -713,11 +713,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
+@@ -727,11 +727,15 @@ class ChromeContentBrowserClient : public content::ContentBrowserClient {
CreateURLLoaderHandlerForServiceWorkerNavigationPreload(
content::FrameTreeNodeId frame_tree_node_id,
const network::ResourceRequest& resource_request) override;
@@ -1171,7 +1171,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
#include "components/autofill/core/common/autofill_prefs.h"
#include "components/bookmarks/common/bookmark_pref_names.h"
#include "components/browsing_data/core/pref_names.h"
-@@ -184,6 +185,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
+@@ -183,6 +184,19 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
}
s_allowlist = new PrefsUtil::TypedPrefMap();
@@ -1194,7 +1194,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -260,7 +260,6 @@
+@@ -261,7 +261,6 @@
#include "chrome/common/buildflags.h"
#include "chrome/common/chrome_features.h"
#include "components/adblock/content/browser/factories/adblock_request_throttle_factory.h"
@@ -1202,7 +1202,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "components/adblock/content/browser/factories/content_security_policy_injector_factory.h"
#include "components/adblock/content/browser/factories/element_hider_factory.h"
#include "components/adblock/content/browser/factories/resource_classification_runner_factory.h"
-@@ -960,7 +959,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -972,7 +971,6 @@ void ChromeBrowserMainExtraPartsProfiles::
// Makes manual testing possible.
FakeSmartCardDeviceServiceFactory::GetInstance();
#endif
@@ -1221,7 +1221,7 @@ diff --git a/chrome/browser/resources/settings/BUILD.gn b/chrome/browser/resourc
"appearance_page/appearance_fonts_page.ts",
"appearance_page/appearance_page_index.ts",
"appearance_page/appearance_page.ts",
-@@ -431,6 +432,7 @@ build_webui("build") {
+@@ -440,6 +441,7 @@ build_webui("build") {
ts_definitions = [
"//tools/typescript/definitions/autofill_private.d.ts",
"//tools/typescript/definitions/chrome_event.d.ts",
@@ -1782,17 +1782,17 @@ diff --git a/chrome/browser/resources/settings/page_visibility.ts b/chrome/brows
diff --git a/chrome/browser/resources/settings/route.ts b/chrome/browser/resources/settings/route.ts
--- a/chrome/browser/resources/settings/route.ts
+++ b/chrome/browser/resources/settings/route.ts
-@@ -226,6 +226,10 @@ function createRoutes(): SettingsRoutes {
- r.FONTS = r.APPEARANCE.createChild('/fonts');
+@@ -276,6 +276,10 @@ function createRoutes(): SettingsRoutes {
+ '/onStartup', 'onStartup', loadTimeData.getString('onStartup'));
}
+ if (visibility.adblock !== false) {
+ r.ADBLOCK = r.BASIC.createSection('/adblock', 'adblock');
+ }
+
- if (visibility.autofill !== false) {
- r.AUTOFILL = r.BASIC.createSection(
- '/autofill', 'autofill', loadTimeData.getString('autofillPageTitle'));
+ // Advanced Routes
+ r.ADVANCED = new Route('/advanced');
+
diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resources/settings/router.ts
--- a/chrome/browser/resources/settings/router.ts
+++ b/chrome/browser/resources/settings/router.ts
@@ -1807,8 +1807,8 @@ diff --git a/chrome/browser/resources/settings/router.ts b/chrome/browser/resour
diff --git a/chrome/browser/resources/settings/settings.ts b/chrome/browser/resources/settings/settings.ts
--- a/chrome/browser/resources/settings/settings.ts
+++ b/chrome/browser/resources/settings/settings.ts
-@@ -55,6 +55,7 @@ export {SettingsAppearancePageIndexElement} from './appearance_page/appearance_p
- export {HomeUrlInputElement} from './appearance_page/home_url_input.js';
+@@ -56,6 +56,7 @@ export {HomeUrlInputElement} from './appearance_page/home_url_input.js';
+ export {SettingsAutofillAiEntriesListElement} from './autofill_page/autofill_ai_entries_list.js';
export {SettingsAutofillPageElement} from './autofill_page/autofill_page.js';
export {SettingsAutofillPageIndexElement} from './autofill_page/autofill_page_index.js';
+export {SettingsAdblockPageElement} from './adblock_page/adblock_page.js';
@@ -1888,7 +1888,7 @@ diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/com
"autofillPrivate": {
"channel": "trunk",
"extension_types": ["extension", "platform_app"],
-@@ -426,13 +419,6 @@
+@@ -424,13 +417,6 @@
// "desktop_android" is not supported.
"platforms": ["chromeos", "linux", "mac", "win"]
},
@@ -2392,7 +2392,7 @@ new file mode 100644
+ GURL request_url =
+ security_interstitials::SecurityInterstitialPage::request_url();
+ std::string filter =
-+ "@@||" + request_url.host() + "^$document,popup";
++ "@@||" + request_url.GetHost() + "^$document,popup";
+
+ if (cmd == security_interstitials::CMD_DONT_PROCEED)
+ adblock_configuration->AddTemporaryCustomFilter(filter);
@@ -3740,7 +3740,7 @@ diff --git a/components/adblock/content/browser/resource_classification_runner_i
ContentType adblock_resource_type,
const SiteKey sitekey) {
+ std::vector aliases;
-+ aliases.push_back(request_url.host());
++ aliases.push_back(request_url.GetHost());
+ for (const std::string& alias : dns_aliases) {
+ aliases.push_back(alias);
+ }
@@ -12351,7 +12351,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
{"abpindo+easylist.txt", {"abpindo.txt", VALUE_EASYLIST_EN}},
{"abpvn+easylist", {"abpvn.txt", VALUE_EASYLIST_EN}},
{"bulgarian_list+easylist.",
-@@ -410,17 +429,20 @@ const std::vector& config::MaybeSplitCombinedAdblockList(
+@@ -410,11 +429,11 @@ const std::vector& config::MaybeSplitCombinedAdblockList(
{"rolist+easylist.txt", {"rolist.txt", VALUE_EASYLIST_EN}},
{"ruadlist+easylist.txt", {"ruadlist.txt", VALUE_EASYLIST_EN}},
{"turkish+easylist.txt", {"turkish.txt", VALUE_EASYLIST_EN}},
@@ -12364,13 +12364,11 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
}
+
auto path =
- base::TrimString(filter_list.path_piece(), "/", base::TRIM_LEADING);
-- if (filter_lists_map.find(path) == filter_lists_map.end()) {
-- return EMPTY_VALUE;
-+
-+ auto it = filter_lists_map->find(path);
-+ if (it == filter_lists_map->end()) {
-+ return *EMPTY_VALUE;
+ base::TrimString(filter_list.path(), "/", base::TRIM_LEADING);
+
+@@ -422,7 +441,8 @@ const std::vector& config::MaybeSplitCombinedAdblockList(
+ if (it == filter_lists_map->end()) {
+ return *EMPTY_VALUE;
}
- return filter_lists_map[path];
+
@@ -12819,7 +12817,7 @@ new file mode 100644
diff --git a/components/error_page_strings.grdp b/components/error_page_strings.grdp
--- a/components/error_page_strings.grdp
+++ b/components/error_page_strings.grdp
-@@ -266,6 +266,22 @@
+@@ -263,6 +263,22 @@
Your organization doesn’t allow you to view this site
@@ -12881,7 +12879,7 @@ diff --git a/content/browser/websockets/websocket_connector_impl.cc b/content/br
diff --git a/content/public/browser/content_browser_client.cc b/content/public/browser/content_browser_client.cc
--- a/content/public/browser/content_browser_client.cc
+++ b/content/public/browser/content_browser_client.cc
-@@ -1132,7 +1132,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory(
+@@ -1156,7 +1156,7 @@ void ContentBrowserClient::WillCreateURLLoaderFactory(
DCHECK(browser_context);
}
@@ -12890,7 +12888,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
return false;
}
-@@ -1141,9 +1141,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
+@@ -1165,9 +1165,11 @@ uint32_t ContentBrowserClient::GetWebSocketOptions(RenderFrameHost* frame) {
}
void ContentBrowserClient::CreateWebSocket(
@@ -12905,7 +12903,7 @@ diff --git a/content/public/browser/content_browser_client.cc b/content/public/b
diff --git a/content/public/browser/content_browser_client.h b/content/public/browser/content_browser_client.h
--- a/content/public/browser/content_browser_client.h
+++ b/content/public/browser/content_browser_client.h
-@@ -2126,7 +2126,7 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -2149,7 +2149,7 @@ class CONTENT_EXPORT ContentBrowserClient {
scoped_refptr navigation_response_task_runner);
// Returns true when the embedder wants to intercept a websocket connection.
@@ -12914,7 +12912,7 @@ diff --git a/content/public/browser/content_browser_client.h b/content/public/br
// Returns the WebSocket creation options.
virtual uint32_t GetWebSocketOptions(RenderFrameHost* frame);
-@@ -2148,9 +2148,11 @@ class CONTENT_EXPORT ContentBrowserClient {
+@@ -2171,9 +2171,11 @@ class CONTENT_EXPORT ContentBrowserClient {
// Always called on the UI thread and only when the Network Service is
// enabled.
virtual void CreateWebSocket(
@@ -13034,7 +13032,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_document.cc b/third_pa
diff --git a/third_party/blink/renderer/core/html/html_element.cc b/third_party/blink/renderer/core/html/html_element.cc
--- a/third_party/blink/renderer/core/html/html_element.cc
+++ b/third_party/blink/renderer/core/html/html_element.cc
-@@ -2673,13 +2673,7 @@ void HTMLElement::setSpellcheck(bool enable) {
+@@ -2642,13 +2642,7 @@ void HTMLElement::setSpellcheck(bool enable) {
}
void HTMLElement::click() {
diff --git a/build/patches/Fix-chromium-build-bugs.patch b/build/patches/Fix-chromium-build-bugs.patch
index d0135c27..c6dc7d0c 100644
--- a/build/patches/Fix-chromium-build-bugs.patch
+++ b/build/patches/Fix-chromium-build-bugs.patch
@@ -9,17 +9,18 @@ https://bugs.chromium.org/p/chromium/issues/detail?id=1491776#c10
.../navigation_predictor_metrics_document_data.h | 2 ++
chrome/browser/safe_browsing/BUILD.gn | 1 +
.../component_updater/installer_policies/BUILD.gn | 1 +
+ components/contextual_tasks/internal/BUILD.gn | 1 +
.../omnibox/browser/autocomplete_classifier.cc | 4 ++--
components/omnibox/browser/omnibox_field_trial.cc | 4 ++--
.../phishing_classifier/phishing_image_embedder.cc | 14 +++-----------
content/browser/browser_interface_binders.cc | 1 +
services/webnn/dml/graph_impl_dml.cc | 1 +
- 9 files changed, 13 insertions(+), 16 deletions(-)
+ 10 files changed, 14 insertions(+), 16 deletions(-)
diff --git a/BUILD.gn b/BUILD.gn
--- a/BUILD.gn
+++ b/BUILD.gn
-@@ -411,7 +411,6 @@ group("gn_all") {
+@@ -412,7 +412,6 @@ group("gn_all") {
"//android_webview:empty_group",
"//android_webview/test",
"//android_webview/tools/automated_ui_tests:webview_ui_test_app_test_apk",
@@ -42,7 +43,7 @@ diff --git a/chrome/browser/navigation_predictor/navigation_predictor_metrics_do
diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsing/BUILD.gn
--- a/chrome/browser/safe_browsing/BUILD.gn
+++ b/chrome/browser/safe_browsing/BUILD.gn
-@@ -300,6 +300,7 @@ static_library("safe_browsing") {
+@@ -299,6 +299,7 @@ static_library("safe_browsing") {
"//components/version_info",
"//content/public/browser",
"//services/preferences/public/mojom",
@@ -53,7 +54,7 @@ diff --git a/chrome/browser/safe_browsing/BUILD.gn b/chrome/browser/safe_browsin
diff --git a/components/component_updater/installer_policies/BUILD.gn b/components/component_updater/installer_policies/BUILD.gn
--- a/components/component_updater/installer_policies/BUILD.gn
+++ b/components/component_updater/installer_policies/BUILD.gn
-@@ -60,6 +60,7 @@ static_library("installer_policies_no_content_deps") {
+@@ -57,6 +57,7 @@ static_library("installer_policies_no_content_deps") {
"//components/update_client",
"//mojo/public/cpp/base:protobuf_support",
"//services/network/public/cpp",
@@ -61,6 +62,17 @@ diff --git a/components/component_updater/installer_policies/BUILD.gn b/componen
]
# Disallow depending on content.
+diff --git a/components/contextual_tasks/internal/BUILD.gn b/components/contextual_tasks/internal/BUILD.gn
+--- a/components/contextual_tasks/internal/BUILD.gn
++++ b/components/contextual_tasks/internal/BUILD.gn
+@@ -45,6 +45,7 @@ source_set("internal") {
+ "//net",
+ "//ui/gfx",
+ "//url",
++ "//third_party/re2",
+ ]
+ }
+
diff --git a/components/omnibox/browser/autocomplete_classifier.cc b/components/omnibox/browser/autocomplete_classifier.cc
--- a/components/omnibox/browser/autocomplete_classifier.cc
+++ b/components/omnibox/browser/autocomplete_classifier.cc
@@ -119,7 +131,7 @@ diff --git a/components/safe_browsing/content/renderer/phishing_classifier/phish
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc
--- a/content/browser/browser_interface_binders.cc
+++ b/content/browser/browser_interface_binders.cc
-@@ -356,6 +356,7 @@ void BindDateTimeChooserForFrame(
+@@ -358,6 +358,7 @@ void BindDateTimeChooserForFrame(
void BindTextSuggestionHostForFrame(
RenderFrameHost* host,
mojo::PendingReceiver receiver) {
diff --git a/build/patches/Fix-chromium-vanilla.patch b/build/patches/Fix-chromium-vanilla.patch
index 24257fed..2f703bce 100644
--- a/build/patches/Fix-chromium-vanilla.patch
+++ b/build/patches/Fix-chromium-vanilla.patch
@@ -23,7 +23,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
diff --git a/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java b/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java
--- a/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java
+++ b/components/safe_browsing/android/java/src/org/chromium/components/safe_browsing/SafeBrowsingApiBridge.java
-@@ -267,6 +267,7 @@ public final class SafeBrowsingApiBridge {
+@@ -281,6 +281,7 @@ public final class SafeBrowsingApiBridge {
@CalledByNative
private static void startUriLookupBySafeBrowsingApi(
long callbackId, String uri, int[] threatTypes, int protocol) {
diff --git a/build/patches/Fonts-fingerprinting-mitigation.patch b/build/patches/Fonts-fingerprinting-mitigation.patch
index 87b3b4ad..5fb33d53 100644
--- a/build/patches/Fonts-fingerprinting-mitigation.patch
+++ b/build/patches/Fonts-fingerprinting-mitigation.patch
@@ -120,7 +120,7 @@ diff --git a/skia/ext/skia_utils_win.h b/skia/ext/skia_utils_win.h
diff --git a/third_party/blink/public/common/features.h b/third_party/blink/public/common/features.h
--- a/third_party/blink/public/common/features.h
+++ b/third_party/blink/public/common/features.h
-@@ -243,6 +243,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int,
+@@ -246,6 +246,10 @@ BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE_PARAM(int,
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kLessAggressiveParkableString);
BLINK_COMMON_EXPORT BASE_DECLARE_FEATURE(kCombineNewWindowIPCs);
@@ -134,7 +134,7 @@ diff --git a/third_party/blink/public/common/features.h b/third_party/blink/publ
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -812,6 +812,7 @@ component("platform") {
+@@ -804,6 +804,7 @@ component("platform") {
"fonts/simple_font_data.cc",
"fonts/simple_font_data.h",
"fonts/skia/font_cache_skia.cc",
@@ -530,7 +530,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/skia/font_cache_skia.cc b
diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc
--- a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc
+++ b/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.cc
-@@ -446,6 +446,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
+@@ -441,6 +441,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
sk_sp typeface;
std::string name;
@@ -538,7 +538,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c
if (alternate_font_name == AlternateFontName::kLocalUniqueFace &&
RuntimeEnabledFeatures::FontSrcLocalMatchingEnabled()) {
-@@ -457,7 +458,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
+@@ -452,7 +453,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
return nullptr;
} else {
@@ -547,7 +547,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c
// For a family match, Windows will always give us a valid pointer here,
// even if the face name is non-existent. We have to double-check and see if
-@@ -491,7 +492,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
+@@ -486,7 +487,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
FontDescription adjusted_font_description = font_description;
adjusted_font_description.SetWeight(variant_weight);
typeface =
@@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/platform/fonts/win/font_cache_skia_win.c
if (!typeface ||
!TypefacesMatchesFamily(typeface.get(), adjusted_name)) {
return nullptr;
-@@ -503,7 +504,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
+@@ -498,7 +499,7 @@ const FontPlatformData* FontCache::CreateFontPlatformData(
FontDescription adjusted_font_description = font_description;
adjusted_font_description.SetStretch(variant_stretch);
typeface =
diff --git a/build/patches/Force-use-vpython3-for-some-scripts.patch b/build/patches/Force-use-vpython3-for-some-scripts.patch
index cf810c30..285f9486 100644
--- a/build/patches/Force-use-vpython3-for-some-scripts.patch
+++ b/build/patches/Force-use-vpython3-for-some-scripts.patch
@@ -12,17 +12,18 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
build/config/python.gni | 7 +++++-
.../generate_expired_histograms_array.gni | 7 ++++--
.../variations/field_trial_config/BUILD.gn | 4 +++-
+ third_party/blink/renderer/bindings/BUILD.gn | 5 ++++-
third_party/perfetto/gn/BUILD.gn | 5 ++++-
tools/grit/grit_rule.gni | 4 +++-
.../json_schema_compiler/json_schema_api.gni | 12 +++++++---
tools/json_to_struct/json_to_struct.gni | 4 +++-
...enerate_allowlist_from_histograms_file.gni | 5 +++--
- 9 files changed, 52 insertions(+), 18 deletions(-)
+ 10 files changed, 56 insertions(+), 19 deletions(-)
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
-@@ -610,12 +610,15 @@ template("write_build_config") {
+@@ -627,12 +627,15 @@ template("write_build_config") {
} else {
action_with_pydeps(target_name) {
forward_variables_from(invoker, [ "testonly" ])
@@ -39,7 +40,7 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/inte
"--output",
rebase_path(invoker.build_config, root_build_dir),
"--depfile",
-@@ -3018,17 +3021,18 @@ if (enable_java_templates) {
+@@ -3031,17 +3034,18 @@ if (enable_java_templates) {
}
action_with_pydeps(target_name) {
@@ -61,7 +62,7 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/inte
inputs = javac_paths_for_inputs
}
-@@ -3044,7 +3048,10 @@ if (enable_java_templates) {
+@@ -3057,7 +3061,10 @@ if (enable_java_templates) {
deps += invoker.deps
}
@@ -73,7 +74,7 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/inte
if (invoker.enable_errorprone) {
_stamp_file = "$target_out_dir/$target_name.stamp"
outputs = [ _stamp_file ]
-@@ -3242,7 +3249,8 @@ if (enable_java_templates) {
+@@ -3256,7 +3263,8 @@ if (enable_java_templates) {
}
action_with_pydeps(target_name) {
@@ -83,7 +84,7 @@ diff --git a/build/config/android/internal_rules.gni b/build/config/android/inte
depfile = "$target_gen_dir/$target_name.d"
deps = _srcjar_deps
if (defined(invoker.deps)) {
-@@ -3271,6 +3279,8 @@ if (enable_java_templates) {
+@@ -3285,6 +3293,8 @@ if (enable_java_templates) {
"$target_gen_dir/${invoker.main_target_name}/generated_java",
root_build_dir)
args = [
@@ -161,6 +162,28 @@ diff --git a/components/variations/field_trial_config/BUILD.gn b/components/vari
rebase_path(source, root_build_dir),
"--destbase=" + rebase_path(target_gen_dir, root_build_dir),
"--namespace=variations",
+diff --git a/third_party/blink/renderer/bindings/BUILD.gn b/third_party/blink/renderer/bindings/BUILD.gn
+--- a/third_party/blink/renderer/bindings/BUILD.gn
++++ b/third_party/blink/renderer/bindings/BUILD.gn
+@@ -114,7 +114,8 @@ action_with_pydeps("web_idl_database") {
+ "//tools/privacy_budget/blink_apis:*",
+ ]
+
+- script = "scripts/build_web_idl_database.py"
++ script = "//build/gn_run_binary.py"
++ original_script = "scripts/build_web_idl_database.py"
+
+ input_data_files = get_target_outputs(":web_idl_in_core") +
+ get_target_outputs(":web_idl_in_core_for_testing") +
+@@ -140,6 +141,8 @@ action_with_pydeps("web_idl_database") {
+ outputs = [ web_idl_database_filepath ]
+
+ args = [
++ rebase_path("//third_party/depot_tools/vpython3"),
++ rebase_path(original_script),
+ "--output",
+ rebase_path(web_idl_database_filepath, root_build_dir),
+ "--runtime_enabled_features",
diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
--- a/third_party/perfetto/gn/BUILD.gn
+++ b/third_party/perfetto/gn/BUILD.gn
diff --git a/build/patches/Guard-for-user-agent-reduction.patch b/build/patches/Guard-for-user-agent-reduction.patch
index 2ca0bb82..5fa27780 100644
--- a/build/patches/Guard-for-user-agent-reduction.patch
+++ b/build/patches/Guard-for-user-agent-reduction.patch
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1487,7 +1487,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
+@@ -1467,7 +1467,7 @@ void ChromeContentBrowserClient::RegisterProfilePrefs(
registry->RegisterIntegerPref(
prefs::kUserAgentReduction,
static_cast(
@@ -24,7 +24,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
-@@ -902,6 +902,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
+@@ -897,6 +897,7 @@ std::string BuildUserAgentFromProduct(const std::string& product) {
}
std::string BuildModelInfo() {
@@ -32,7 +32,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
#if BUILDFLAG(IS_ANDROID)
// Model information is not exposed on Android desktop.
if (ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_DESKTOP) {
-@@ -944,6 +945,10 @@ std::string GetAndroidOSInfo(
+@@ -939,6 +940,10 @@ std::string GetAndroidOSInfo(
IncludeAndroidModel include_android_model) {
std::string android_info_str;
@@ -46,7 +46,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -4037,9 +4037,9 @@
+@@ -4056,9 +4056,9 @@
// If enabled, the deviceModel will be reduced to "K" and the
// androidVersion will be reduced to a static "10" string in android
// User-Agent string.
@@ -59,7 +59,7 @@ diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5
},
// If enabled, the platform version in User-Agent Data will be removed.
// This feature is limited to Linux only.
-@@ -4051,15 +4051,15 @@
+@@ -4070,15 +4070,15 @@
// This User-Agent Reduction feature has been enabled starting from M101,
// but we still keep this flag for future phase tests.
{
diff --git a/build/patches/Hardening-against-incognito-mode-detection.patch b/build/patches/Hardening-against-incognito-mode-detection.patch
index db89635f..ea556f3a 100644
--- a/build/patches/Hardening-against-incognito-mode-detection.patch
+++ b/build/patches/Hardening-against-incognito-mode-detection.patch
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota/quota_manager_impl.cc
--- a/storage/browser/quota/quota_manager_impl.cc
+++ b/storage/browser/quota/quota_manager_impl.cc
-@@ -1776,7 +1776,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey(
+@@ -1777,7 +1777,7 @@ int64_t QuotaManagerImpl::GetQuotaForStorageKey(
return kNoLimit;
}
@@ -20,7 +20,7 @@ diff --git a/storage/browser/quota/quota_manager_impl.cc b/storage/browser/quota
storage_key.origin().GetURL())) {
return settings.session_only_per_storage_key_quota;
}
-@@ -2445,7 +2445,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) {
+@@ -2446,7 +2446,7 @@ void QuotaManagerImpl::SimulateStoragePressure(const url::Origin& origin_url) {
void QuotaManagerImpl::IsSimulateStoragePressureAvailable(
IsSimulateStoragePressureAvailableCallback callback) {
// We assume this is only the case in incognito. If it changes, update this.
diff --git a/build/patches/History-number-of-days-privacy-setting.patch b/build/patches/History-number-of-days-privacy-setting.patch
index 18f645db..08f864f8 100644
--- a/build/patches/History-number-of-days-privacy-setting.patch
+++ b/build/patches/History-number-of-days-privacy-setting.patch
@@ -165,7 +165,7 @@ diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chro
#include "components/embedder_support/pref_names.h"
#include "components/language/core/browser/pref_names.h"
#include "components/live_caption/pref_names.h"
-@@ -231,6 +232,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
+@@ -234,6 +235,9 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[::prefs::kSplitViewDragAndDropEnabled] =
settings_api::PrefType::kBoolean;
@@ -190,7 +190,7 @@ diff --git a/chrome/browser/history/history_service_factory.cc b/chrome/browser/
diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
--- a/chrome/browser/profiles/profile_impl.cc
+++ b/chrome/browser/profiles/profile_impl.cc
-@@ -380,6 +380,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path,
+@@ -377,6 +377,7 @@ std::unique_ptr Profile::CreateProfile(const base::FilePath& path,
void ProfileImpl::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kSavingBrowserHistoryDisabled, false);
@@ -202,8 +202,8 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.html b/
--- a/chrome/browser/resources/settings/privacy_page/privacy_page.html
+++ b/chrome/browser/resources/settings/privacy_page/privacy_page.html
@@ -76,6 +76,15 @@
- sub-label="$i18n{permissionsPageDescription}"
- on-click="onPermissionsPageClick_"
+ sub-label="$i18n{siteSettingsSublabel}"
+ on-click="onSiteSettingsLinkRowClick_"
role-description="$i18n{subpageArrowRoleDescription}">
+
+
@@ -255,7 +255,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1252,6 +1252,18 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1261,6 +1261,18 @@ Your Google account may have other forms of browsing history like searches and a
Browsing history
@@ -277,7 +277,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -2076,6 +2076,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
+@@ -2226,6 +2226,11 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
IDS_SETTINGS_SAFEBROWSING_ENHANCED_THINGS_TO_CONSIDER_BULLET_THREE},
{"safeBrowsingStandard", IDS_SETTINGS_SAFEBROWSING_STANDARD},
{"safeBrowsingStandardDesc", IDS_SETTINGS_SAFEBROWSING_STANDARD_DESC},
@@ -369,7 +369,7 @@ diff --git a/components/browser_ui/settings/android/java/res/layout/preference_s
diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
--- a/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
+++ b/components/browser_ui/settings/android/widget/java/src/org/chromium/components/browser_ui/settings/SpinnerPreference.java
-@@ -8,6 +8,7 @@ import static org.chromium.build.NullUtil.assumeNonNull;
+@@ -9,6 +9,7 @@ import static org.chromium.components.browser_ui.widget.containment.ContainmentU
import android.content.Context;
import android.content.res.TypedArray;
@@ -377,7 +377,7 @@ diff --git a/components/browser_ui/settings/android/widget/java/src/org/chromium
import android.util.AttributeSet;
import android.view.View;
import android.widget.AdapterView;
-@@ -95,6 +96,12 @@ public class SpinnerPreference extends Preference implements Preference.OnPrefer
+@@ -105,6 +106,12 @@ public class SpinnerPreference extends Preference
super.onBindViewHolder(holder);
((TextView) holder.findViewById(R.id.title)).setText(getTitle());
@@ -416,7 +416,7 @@ new file mode 100644
diff --git a/components/history/core/browser/expire_history_backend.cc b/components/history/core/browser/expire_history_backend.cc
--- a/components/history/core/browser/expire_history_backend.cc
+++ b/components/history/core/browser/expire_history_backend.cc
-@@ -390,7 +390,7 @@ const ExpiringVisitsReader*
+@@ -391,7 +391,7 @@ const ExpiringVisitsReader*
void ExpireHistoryBackend::StartExpiringOldStuff(
base::TimeDelta expiration_threshold) {
@@ -425,7 +425,7 @@ diff --git a/components/history/core/browser/expire_history_backend.cc b/compone
// Remove all readers, just in case this was method was called before.
readers_.clear();
-@@ -406,6 +406,11 @@ void ExpireHistoryBackend::StartExpiringOldStuff(
+@@ -407,6 +407,11 @@ void ExpireHistoryBackend::StartExpiringOldStuff(
ScheduleExpire();
}
@@ -437,7 +437,7 @@ diff --git a/components/history/core/browser/expire_history_backend.cc b/compone
void ExpireHistoryBackend::DeleteFaviconsIfPossible(DeleteEffects* effects) {
if (!favicon_db_)
return;
-@@ -651,6 +656,12 @@ void ExpireHistoryBackend::DoExpireIteration() {
+@@ -655,6 +660,12 @@ void ExpireHistoryBackend::DoExpireIteration() {
return;
}
@@ -476,7 +476,7 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
// The maximum number of days for which domain visit metrics are computed
// each time HistoryBackend::GetDomainDiversity() is called.
constexpr int kDomainDiversityMaxBacktrackedDays = 7;
-@@ -1338,6 +1342,19 @@ void HistoryBackend::InitImpl(
+@@ -1336,6 +1340,19 @@ void HistoryBackend::InitImpl(
expirer_.StartExpiringOldStuff(base::Days(kExpireDaysThreshold));
}
@@ -494,12 +494,12 @@ diff --git a/components/history/core/browser/history_backend.cc b/components/his
+}
+
void HistoryBackend::OnMemoryPressure(
- base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
+ base::MemoryPressureLevel memory_pressure_level) {
// TODO(sebmarchand): Check if MEMORY_PRESSURE_LEVEL_MODERATE should also be
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h
--- a/components/history/core/browser/history_backend.h
+++ b/components/history/core/browser/history_backend.h
-@@ -206,10 +206,6 @@ class HistoryBackend : public base::RefCountedThreadSafe
,
+@@ -208,10 +208,6 @@ class HistoryBackend : public base::RefCountedThreadSafe,
// Check if the transition should increment the typed_count of a visit.
static bool IsTypedIncrement(ui::PageTransition transition);
@@ -510,7 +510,7 @@ diff --git a/components/history/core/browser/history_backend.h b/components/hist
// Init must be called to complete object creation. This object can be
// constructed on any thread, but all other functions including Init() must
// be called on the history thread.
-@@ -237,6 +233,8 @@ class HistoryBackend : public base::RefCountedThreadSafe,
+@@ -239,6 +235,8 @@ class HistoryBackend : public base::RefCountedThreadSafe,
void Init(bool force_fail,
const HistoryDatabaseParams& history_database_params);
@@ -566,7 +566,7 @@ diff --git a/components/history/core/browser/history_service.cc b/components/his
void HistoryService::ScheduleDBTaskForUI(
base::OnceCallback callback) {
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-@@ -1420,6 +1450,9 @@ void HistoryService::Cleanup() {
+@@ -1436,6 +1466,9 @@ void HistoryService::Cleanup() {
return;
}
@@ -597,7 +597,7 @@ diff --git a/components/history/core/browser/history_service.h b/components/hist
// Triggers the backend to load if it hasn't already, and then returns whether
// it's finished loading.
// Note: Virtual needed for mocking.
-@@ -1169,6 +1173,10 @@ class HistoryService : public KeyedService,
+@@ -1173,6 +1177,10 @@ class HistoryService : public KeyedService,
raw_ptr local_device_info_provider_ =
nullptr;
diff --git a/build/patches/Improve-the-browser-sandbox.patch b/build/patches/Improve-the-browser-sandbox.patch
index 7ad45ee2..1ac78823 100644
--- a/build/patches/Improve-the-browser-sandbox.patch
+++ b/build/patches/Improve-the-browser-sandbox.patch
@@ -7,10 +7,10 @@ using the new flags on android
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
- .../common/features_cc/Improve-the-browser-sandbox.inc | 2 ++
- .../content_features_cc/Improve-the-browser-sandbox.inc | 1 +
- sandbox/policy/features.cc | 9 +++++++++
- 3 files changed, 12 insertions(+)
+ .../common/features_cc/Improve-the-browser-sandbox.inc | 2 ++
+ .../content_features_cc/Improve-the-browser-sandbox.inc | 1 +
+ sandbox/policy/features.cc | 8 ++++++++
+ 3 files changed, 11 insertions(+)
create mode 100644 cromite_flags/content/common/features_cc/Improve-the-browser-sandbox.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Improve-the-browser-sandbox.inc
@@ -30,11 +30,10 @@ new file mode 100644
diff --git a/sandbox/policy/features.cc b/sandbox/policy/features.cc
--- a/sandbox/policy/features.cc
+++ b/sandbox/policy/features.cc
-@@ -176,4 +176,13 @@ bool IsParallelLaunchEnabled() {
- return base::FeatureList::IsEnabled(kWinSboxParallelProcessLaunch);
+@@ -167,4 +167,12 @@ bool IsNetworkSandboxEnabled() {
+ #endif // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_FUCHSIA)
}
- #endif // BUILDFLAG(IS_WIN)
-+
+
+#if BUILDFLAG(IS_ANDROID)
+SET_CROMITE_FEATURE_ENABLED(kUseRendererProcessPolicy);
+SET_CROMITE_FEATURE_ENABLED(kRestrictRendererPoliciesInBaseline);
diff --git a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch
index 1599f42e..4dd1df61 100644
--- a/build/patches/Increase-number-of-autocomplete-matches-to-10.patch
+++ b/build/patches/Increase-number-of-autocomplete-matches-to-10.patch
@@ -13,7 +13,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/omnibox/browser/autocomplete_result.cc b/components/omnibox/browser/autocomplete_result.cc
--- a/components/omnibox/browser/autocomplete_result.cc
+++ b/components/omnibox/browser/autocomplete_result.cc
-@@ -112,10 +112,11 @@ omnibox::ChromeAimEntryPoint GetAimActionEntrypointID() {
+@@ -113,10 +113,11 @@ omnibox::ChromeAimEntryPoint GetAimActionEntrypointID() {
size_t AutocompleteResult::GetMaxMatches(
bool is_zero_suggest,
AutocompleteInput::FeaturedKeywordMode featured_keyword_mode) {
diff --git a/build/patches/Internal-firewall.patch b/build/patches/Internal-firewall.patch
index ad2c4c93..6cbb3dd9 100644
--- a/build/patches/Internal-firewall.patch
+++ b/build/patches/Internal-firewall.patch
@@ -60,7 +60,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2577,6 +2577,7 @@ static_library("browser") {
+@@ -2564,6 +2564,7 @@ static_library("browser") {
"//third_party/ungoogled:switches",
"//services/device/public/mojom",
"//services/device/public/mojom:usb",
@@ -82,7 +82,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/browser/download/android/download_controller.cc
--- a/chrome/browser/download/android/download_controller.cc
+++ b/chrome/browser/download/android/download_controller.cc
-@@ -243,6 +243,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) {
+@@ -190,6 +190,36 @@ void LogAppVerificationPromptToPrefs(download::DownloadItem* item) {
update->Append(base::TimeToValue(base::Time::Now()));
}
@@ -118,8 +118,8 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro
+
} // namespace
- static void JNI_DownloadController_OnAcquirePermissionResult(
-@@ -298,7 +328,7 @@ static void JNI_DownloadController_DownloadUrl(
+ static void JNI_DownloadController_CancelDownload(JNIEnv* env,
+@@ -224,7 +254,7 @@ static void JNI_DownloadController_DownloadUrl(
std::unique_ptr dl_params =
content::DownloadRequestUtils::CreateDownloadForWebContentsMainFrame(
web_contents, GURL(url),
@@ -131,8 +131,8 @@ diff --git a/chrome/browser/download/android/download_controller.cc b/chrome/bro
diff --git a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
--- a/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
+++ b/chrome/browser/offline_pages/android/downloads/offline_page_download_bridge.cc
-@@ -270,13 +270,43 @@ content::WebContents::Getter GetWebContentsGetter(
- web_contents->GetPrimaryMainFrame()->GetRoutingID());
+@@ -242,13 +242,43 @@ void DuplicateCheckDone(const GURL& url,
+ base::BindOnce(&OnDuplicateDialogConfirmed, std::move(callback)));
}
+const net::NetworkTrafficAnnotationTag traffic_annotation =
@@ -301,8 +301,8 @@ new file mode 100644
diff --git a/net/BUILD.gn b/net/BUILD.gn
--- a/net/BUILD.gn
+++ b/net/BUILD.gn
-@@ -1176,6 +1176,7 @@ component("net") {
- "//components/network_time/time_tracker",
+@@ -1181,6 +1181,7 @@ component("net") {
+ "//components/unexportable_keys",
"//components/network_session_configurator/common",
"//net/http:transport_security_state_generated_files",
+ "//services/firewall/public:firewall_builders",
@@ -1677,7 +1677,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
#include "services/network/brokered_client_socket_factory.h"
#include "services/network/connection_change_observer.h"
#include "services/network/cookie_manager.h"
-@@ -1856,6 +1857,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
+@@ -1857,6 +1858,9 @@ void NetworkContext::OnNewSCTAuditingReportSent() {
void NetworkContext::CreateUDPSocket(
mojo::PendingReceiver receiver,
mojo::PendingRemote listener) {
@@ -1687,7 +1687,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateUDPSocket(std::move(receiver), std::move(listener));
}
-@@ -1869,6 +1873,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
+@@ -1870,6 +1874,17 @@ void NetworkContext::CreateRestrictedUDPSocket(
bool allow_multicast,
CreateRestrictedUDPSocketCallback callback) {
// SimpleHostResolver is transitively owned by |this|.
@@ -1705,7 +1705,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateRestrictedUDPSocket(
addr, mode, traffic_annotation, std::move(params), std::move(receiver),
std::move(listener), SimpleHostResolver::Create(this), allow_multicast,
-@@ -1881,6 +1896,17 @@ void NetworkContext::CreateTCPServerSocket(
+@@ -1882,6 +1897,17 @@ void NetworkContext::CreateTCPServerSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver receiver,
CreateTCPServerSocketCallback callback) {
@@ -1723,7 +1723,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPServerSocket(
local_addr, std::move(options),
static_cast(traffic_annotation),
-@@ -1895,6 +1921,21 @@ void NetworkContext::CreateTCPConnectedSocket(
+@@ -1896,6 +1922,21 @@ void NetworkContext::CreateTCPConnectedSocket(
mojo::PendingReceiver receiver,
mojo::PendingRemote observer,
CreateTCPConnectedSocketCallback callback) {
@@ -1745,7 +1745,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPConnectedSocket(
local_addr, remote_addr_list, std::move(tcp_connected_socket_options),
static_cast(traffic_annotation),
-@@ -1906,6 +1947,20 @@ void NetworkContext::CreateTCPBoundSocket(
+@@ -1907,6 +1948,20 @@ void NetworkContext::CreateTCPBoundSocket(
const net::MutableNetworkTrafficAnnotationTag& traffic_annotation,
mojo::PendingReceiver receiver,
CreateTCPBoundSocketCallback callback) {
@@ -1766,7 +1766,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
socket_factory_->CreateTCPBoundSocket(
local_addr,
static_cast(traffic_annotation),
-@@ -1973,6 +2028,24 @@ void NetworkContext::CreateWebSocket(
+@@ -1974,6 +2029,24 @@ void NetworkContext::CreateWebSocket(
mojo::PendingRemote auth_handler,
mojo::PendingRemote header_client,
const std::optional& throttling_profile_id) {
diff --git a/build/patches/JIT-site-settings.patch b/build/patches/JIT-site-settings.patch
index 0703e066..72a148bb 100644
--- a/build/patches/JIT-site-settings.patch
+++ b/build/patches/JIT-site-settings.patch
@@ -279,7 +279,7 @@ new file mode 100644
diff --git a/components/content_settings/core/browser/content_settings_registry.cc b/components/content_settings/core/browser/content_settings_registry.cc
--- a/components/content_settings/core/browser/content_settings_registry.cc
+++ b/components/content_settings/core/browser/content_settings_registry.cc
-@@ -610,7 +610,7 @@ void ContentSettingsRegistry::Init() {
+@@ -589,7 +589,7 @@ void ContentSettingsRegistry::Init() {
PermissionSettingsInfo::EXCEPTIONS_ON_SECURE_ORIGINS_ONLY);
Register(ContentSettingsType::JAVASCRIPT_JIT, "javascript-jit",
@@ -291,7 +291,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
--- a/content/browser/renderer_host/navigation_request.cc
+++ b/content/browser/renderer_host/navigation_request.cc
-@@ -4201,12 +4201,17 @@ UrlInfo NavigationRequest::GetUrlInfo() {
+@@ -4222,12 +4222,17 @@ UrlInfo NavigationRequest::GetUrlInfo() {
// Compute the WebExposedIsolationInfo that will be bundled into UrlInfo.
auto web_exposed_isolation_info = ComputeWebExposedIsolationInfo();
@@ -313,7 +313,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3479,6 +3479,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
+@@ -3580,6 +3580,9 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
if (IsJitDisabled()) {
AppendToCommaSeparatedSwitch(
command_line, blink::switches::kJavaScriptFlags, "--jitless");
@@ -326,7 +326,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc
--- a/content/browser/site_info.cc
+++ b/content/browser/site_info.cc
-@@ -310,6 +310,13 @@ SiteInfo SiteInfo::Create(const IsolationContext& isolation_context,
+@@ -302,6 +302,13 @@ SiteInfo SiteInfo::Create(const IsolationContext& isolation_context,
is_jitless =
is_jitless || GetContentClient()->browser()->IsJitDisabledForSite(
browser_context, agent_cluster_url_or_default);
@@ -337,9 +337,9 @@ diff --git a/content/browser/site_info.cc b/content/browser/site_info.cc
+ is_jitless = false;
+ }
+ }
- are_v8_optimizations_disabled = CheckAndCacheShouldDisableV8Optimization(
+ are_v8_optimizations_disabled = CheckShouldDisableV8Optimization(
browser_context, isolation_context.browsing_instance_id(),
- url::Origin::Create(agent_cluster_url_or_default));
+ agent_cluster_url_or_default);
diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc
--- a/content/browser/url_info.cc
+++ b/content/browser/url_info.cc
@@ -351,7 +351,7 @@ diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc
is_sandboxed(init.is_sandboxed_),
unique_sandbox_id(init.unique_sandbox_id_),
storage_partition_config(init.storage_partition_config_),
-@@ -146,6 +147,11 @@ UrlInfoInit& UrlInfoInit::WithOrigin(const url::Origin& origin) {
+@@ -148,6 +149,11 @@ UrlInfoInit& UrlInfoInit::WithOrigin(const url::Origin& origin) {
return *this;
}
@@ -366,7 +366,7 @@ diff --git a/content/browser/url_info.cc b/content/browser/url_info.cc
diff --git a/content/browser/url_info.h b/content/browser/url_info.h
--- a/content/browser/url_info.h
+++ b/content/browser/url_info.h
-@@ -126,6 +126,7 @@ struct CONTENT_EXPORT UrlInfo {
+@@ -127,6 +127,7 @@ struct CONTENT_EXPORT UrlInfo {
// and origin checks that require a UrlInfo. Investigate whether there's a
// cleaner way to organize these checks. See https://crbug.com/1320402.
std::optional origin;
@@ -374,7 +374,7 @@ diff --git a/content/browser/url_info.h b/content/browser/url_info.h
// If url is being loaded in a frame that is in a origin-restricted sandboxed,
// then this flag will be true.
-@@ -187,6 +188,7 @@ class CONTENT_EXPORT UrlInfoInit {
+@@ -201,6 +202,7 @@ class CONTENT_EXPORT UrlInfoInit {
UrlInfoInit& WithCOOPSiteIsolation(bool requests_coop_isolation);
UrlInfoInit& WithCrossSitePrefetchContamination(bool contaminated);
UrlInfoInit& WithOrigin(const url::Origin& origin);
@@ -382,7 +382,7 @@ diff --git a/content/browser/url_info.h b/content/browser/url_info.h
UrlInfoInit& WithSandbox(bool is_sandboxed);
UrlInfoInit& WithUniqueSandboxId(int unique_sandbox_id);
UrlInfoInit& WithStoragePartitionConfig(
-@@ -210,6 +212,7 @@ class CONTENT_EXPORT UrlInfoInit {
+@@ -226,6 +228,7 @@ class CONTENT_EXPORT UrlInfoInit {
bool requests_coop_isolation_ = false;
bool is_prefetch_with_cross_site_contamination_ = false;
std::optional origin_;
diff --git a/build/patches/Keep-ComputePressure-disabled.patch b/build/patches/Keep-ComputePressure-disabled.patch
index bfeeed17..35b2fa60 100644
--- a/build/patches/Keep-ComputePressure-disabled.patch
+++ b/build/patches/Keep-ComputePressure-disabled.patch
@@ -10,8 +10,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -1099,11 +1099,9 @@
- status: "experimental",
+@@ -1170,11 +1170,9 @@
+ status: "stable",
},
{
- name: "ComputePressure",
diff --git a/build/patches/Keep-Manta-Service-Disabled.patch b/build/patches/Keep-Manta-Service-Disabled.patch
index 3634ea4f..587dee20 100644
--- a/build/patches/Keep-Manta-Service-Disabled.patch
+++ b/build/patches/Keep-Manta-Service-Disabled.patch
@@ -10,7 +10,7 @@ Subject: Keep Manta Service Disabled
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
--- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
+++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -1035,7 +1035,6 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -1050,7 +1050,6 @@ void ChromeBrowserMainExtraPartsProfiles::
#if !BUILDFLAG(IS_ANDROID)
ManagedConfigurationAPIFactory::GetInstance();
#endif
diff --git a/build/patches/Keep-disabled-FetchLaterAPI.patch b/build/patches/Keep-disabled-FetchLaterAPI.patch
index e130261e..9361e2f7 100644
--- a/build/patches/Keep-disabled-FetchLaterAPI.patch
+++ b/build/patches/Keep-disabled-FetchLaterAPI.patch
@@ -79,7 +79,7 @@ diff --git a/content/browser/loader/keep_alive_url_loader.cc b/content/browser/l
diff --git a/content/browser/loader/keep_alive_url_loader.h b/content/browser/loader/keep_alive_url_loader.h
--- a/content/browser/loader/keep_alive_url_loader.h
+++ b/content/browser/loader/keep_alive_url_loader.h
-@@ -429,9 +429,6 @@ class CONTENT_EXPORT KeepAliveURLLoader
+@@ -430,9 +430,6 @@ class CONTENT_EXPORT KeepAliveURLLoader
// disconnected from the remote of URLLoader in the renderer.
base::OneShotTimer disconnected_loader_timer_;
@@ -190,7 +190,7 @@ diff --git a/third_party/blink/renderer/platform/loader/child_url_loader_factory
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
-@@ -3108,7 +3108,7 @@ void ResourceFetcher::PrepareForLeakDetection() {
+@@ -3115,7 +3115,7 @@ void ResourceFetcher::PrepareForLeakDetection() {
void ResourceFetcher::StopFetchingInternal(StopFetchingTarget target) {
// TODO(toyoshim): May want to suspend scheduler while canceling loaders so
// that the cancellations below do not awake unnecessary scheduling.
@@ -202,7 +202,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -2233,8 +2233,8 @@
+@@ -2319,8 +2319,8 @@
{
// The Blink runtime-enabled feature name for the API's IDL.
// https://chromestatus.com/feature/4654499737632768
diff --git a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch
index 722d1afe..88ac492a 100644
--- a/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch
+++ b/build/patches/Keep-disabled-WebViewMediaIntegrityApi.patch
@@ -15,7 +15,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/renderer/aw_content_renderer_client.cc b/android_webview/renderer/aw_content_renderer_client.cc
--- a/android_webview/renderer/aw_content_renderer_client.cc
+++ b/android_webview/renderer/aw_content_renderer_client.cc
-@@ -207,11 +207,6 @@ void AwContentRendererClient::
+@@ -227,11 +227,6 @@ void AwContentRendererClient::
autofill::features::kAutofillSharedAutofill)) {
blink::WebRuntimeFeatures::EnableSharedAutofill(true);
}
diff --git a/build/patches/Keep-empty-tabs-between-sessions.patch b/build/patches/Keep-empty-tabs-between-sessions.patch
index 9c565cc6..73b5d368 100644
--- a/build/patches/Keep-empty-tabs-between-sessions.patch
+++ b/build/patches/Keep-empty-tabs-between-sessions.patch
@@ -5,26 +5,27 @@ Subject: Keep empty tabs between sessions
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
---
- .../browser/multiwindow/MultiWindowUtils.java | 2 +-
- .../browser/tabmodel/TabPersistentStore.java | 18 ------------------
- 2 files changed, 1 insertion(+), 19 deletions(-)
+ .../chrome/browser/multiwindow/MultiWindowUtils.java | 2 +-
+ .../browser/tabmodel/TabPersistentStoreImpl.java | 7 -------
+ .../chrome/browser/tabmodel/TabPersistenceUtils.java | 10 ----------
+ 3 files changed, 1 insertion(+), 18 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/multiwindow/MultiWindowUtils.java
-@@ -1063,7 +1063,7 @@ public class MultiWindowUtils implements ActivityStateListener {
+@@ -1088,7 +1088,7 @@ public class MultiWindowUtils implements ActivityStateListener {
int totalCount = 0;
for (TabModel model : models) {
for (Tab tab : model) {
-- if (!TabPersistentStore.shouldSkipTab(tab)) {
+- if (!TabPersistenceUtils.shouldSkipTab(tab)) {
+ if ((true)) {
totalCount++;
}
}
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStore.java
-@@ -2118,30 +2118,12 @@ public class TabPersistentStore {
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistentStoreImpl.java
+@@ -2000,13 +2000,6 @@ public class TabPersistentStoreImpl implements TabPersistentStore {
continue;
}
@@ -32,15 +33,19 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
- // If any non-active NTPs have been skipped, the serialized tab model index
- // needs to be adjusted.
- modelInfo.index = modelInfo.ids.size();
-- } else if (shouldSkipTab(tab)) {
+- } else if (TabPersistenceUtils.shouldSkipTab(tab)) {
- continue;
- }
modelInfo.ids.add(tab.getId());
modelInfo.urls.add(tab.getUrl().getSpec());
}
- return modelInfo;
- }
-
+diff --git a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java
+--- a/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java
++++ b/chrome/browser/tabmodel/android/java/src/org/chromium/chrome/browser/tabmodel/TabPersistenceUtils.java
+@@ -17,16 +17,6 @@ public class TabPersistenceUtils {
+ * @param tab The tab to check.
+ * @return True if the tab should be skipped, false otherwise.
+ */
- public static boolean shouldSkipTab(Tab tab) {
- // Don't skip the tab if it is pinned.
- if (tab.getIsPinned()) return false;
@@ -51,8 +56,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabPer
- // Only skip NTP tabs that are not in a tab group.
- return tab.getTabGroupId() == null;
- }
--
- /**
- * @return The shared pref APP_LAUNCH_LAST_KNOWN_ACTIVE_TAB_STATE. This is used when we need to
- * know the last known tab state before the active tab from the tab state is read.
+
+ private TabPersistenceUtils() {}
+ }
--
diff --git a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
index ad1ec499..73f0cbe8 100644
--- a/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
+++ b/build/patches/Keep-flag-to-allow-screenshots-in-Incognito-mode.patch
@@ -28,7 +28,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/Incog
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
-@@ -5981,10 +5981,10 @@
+@@ -6025,10 +6025,10 @@
"expiry_milestone": -1
},
{
diff --git a/build/patches/Keyboard-protection-flag.patch b/build/patches/Keyboard-protection-flag.patch
index 099b88fd..e3b77a4f 100644
--- a/build/patches/Keyboard-protection-flag.patch
+++ b/build/patches/Keyboard-protection-flag.patch
@@ -23,7 +23,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
--- a/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
+++ b/android_webview/java/src/org/chromium/android_webview/common/ProductionSupportedFlagList.java
-@@ -1004,6 +1004,11 @@ public final class ProductionSupportedFlagList {
+@@ -965,6 +965,11 @@ public final class ProductionSupportedFlagList {
+ " retried without a restart.\n"
+ " Note: WebViewUseStartupTasksLogicP2 and kWebViewStartupTasksYieldToNative"
+ " also enable the same behaviour as this flag."),
diff --git a/build/patches/Lock-Profile-Cookie-Database.patch b/build/patches/Lock-Profile-Cookie-Database.patch
index dea6fd01..e3a15d47 100644
--- a/build/patches/Lock-Profile-Cookie-Database.patch
+++ b/build/patches/Lock-Profile-Cookie-Database.patch
@@ -16,7 +16,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -1373,6 +1373,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
+@@ -1419,6 +1419,14 @@ void ProfileNetworkContextService::ConfigureNetworkContextParamsInternal(
network_context_params->file_paths->cookie_database_name =
base::FilePath(chrome::kCookieFilename);
@@ -56,7 +56,7 @@ new file mode 100644
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
-@@ -3227,7 +3227,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const {
+@@ -3247,7 +3247,7 @@ NetworkContext::MakeSessionCleanupCookieStore() const {
#if BUILDFLAG(IS_WIN)
const bool enable_exclusive_access =
@@ -68,7 +68,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
-@@ -362,6 +362,14 @@ struct NetworkContextParams {
+@@ -361,6 +361,14 @@ struct NetworkContextParams {
// If true, cookies will be stored encrypted.
bool enable_encrypted_cookies = true;
diff --git a/build/patches/Log-dangling-attributes-in-some-html-elements.patch b/build/patches/Log-dangling-attributes-in-some-html-elements.patch
index 83ce0b5b..f3fc7355 100644
--- a/build/patches/Log-dangling-attributes-in-some-html-elements.patch
+++ b/build/patches/Log-dangling-attributes-in-some-html-elements.patch
@@ -42,7 +42,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
-@@ -5092,6 +5092,14 @@ void Document::ProcessBaseElement() {
+@@ -5093,6 +5093,14 @@ void Document::ProcessBaseElement() {
KURL base_element_url;
if (href) {
String stripped_href = StripLeadingAndTrailingHTMLSpaces(*href);
@@ -57,7 +57,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
if (!stripped_href.empty())
base_element_url = KURL(FallbackBaseURL(), stripped_href);
}
-@@ -5109,6 +5117,14 @@ void Document::ProcessBaseElement() {
+@@ -5110,6 +5118,14 @@ void Document::ProcessBaseElement() {
!GetExecutionContext()->GetSecurityOrigin()->CanRequest(
base_element_url)) {
UseCounter::Count(*this, WebFeature::kBaseWithCrossOriginHref);
@@ -72,7 +72,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
}
}
-@@ -5139,6 +5155,8 @@ void Document::ProcessBaseElement() {
+@@ -5140,6 +5156,8 @@ void Document::ProcessBaseElement() {
if (target->Contains('<'))
UseCounter::Count(*this, WebFeature::kBaseWithOpenBracketInTarget);
base_target_ = *target;
@@ -84,7 +84,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc
--- a/third_party/blink/renderer/core/dom/element.cc
+++ b/third_party/blink/renderer/core/dom/element.cc
-@@ -3729,8 +3729,26 @@ void Element::StripScriptingAttributes(
+@@ -3825,8 +3825,26 @@ void Element::StripScriptingAttributes(
attribute_vector.Shrink(destination);
}
@@ -115,7 +115,7 @@ diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h
--- a/third_party/blink/renderer/core/dom/element.h
+++ b/third_party/blink/renderer/core/dom/element.h
-@@ -777,7 +777,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable {
+@@ -779,7 +779,8 @@ class CORE_EXPORT Element : public ContainerNode, public Animatable {
virtual bool HasLegalLinkAttribute(const QualifiedName&) const;
// Only called by the parser immediately after element construction.
@@ -334,7 +334,7 @@ diff --git a/third_party/blink/renderer/core/page/frame_tree.cc b/third_party/bl
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -3098,6 +3098,12 @@
+@@ -3151,6 +3151,12 @@
name: "MacDisableCtrlHomeEnd",
status: "stable",
},
diff --git a/build/patches/Logcat-crash-reports-UI.patch b/build/patches/Logcat-crash-reports-UI.patch
index 7fe71f92..b2847bda 100644
--- a/build/patches/Logcat-crash-reports-UI.patch
+++ b/build/patches/Logcat-crash-reports-UI.patch
@@ -153,7 +153,7 @@ diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -635,6 +635,7 @@ static_library("ui") {
+@@ -638,6 +638,7 @@ static_library("ui") {
"//third_party/re2",
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/zlib",
diff --git a/build/patches/Media-fingerprinting-mitigations.patch b/build/patches/Media-fingerprinting-mitigations.patch
index 3b88245a..4203452d 100644
--- a/build/patches/Media-fingerprinting-mitigations.patch
+++ b/build/patches/Media-fingerprinting-mitigations.patch
@@ -13,7 +13,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
--- a/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
+++ b/third_party/blink/renderer/modules/webcodecs/video_decoder.cc
-@@ -301,7 +301,7 @@ ScriptPromise VideoDecoder::isConfigSupported(
+@@ -299,7 +299,7 @@ ScriptPromise VideoDecoder::isConfigSupported(
auto* config_copy = CopyConfig(*config);
// Run the "Check Configuration Support" algorithm.
diff --git a/build/patches/Modify-default-preferences.patch b/build/patches/Modify-default-preferences.patch
index 87884bc8..bf047600 100644
--- a/build/patches/Modify-default-preferences.patch
+++ b/build/patches/Modify-default-preferences.patch
@@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -86,6 +86,7 @@
+@@ -87,6 +87,7 @@
#include "components/autofill/core/common/autofill_payments_features.h"
#include "components/autofill/core/common/autofill_switches.h"
#include "components/autofill/core/common/autofill_util.h"
@@ -42,7 +42,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/chrome/browser/background/extensions/background_mode_manager.cc
--- a/chrome/browser/background/extensions/background_mode_manager.cc
+++ b/chrome/browser/background/extensions/background_mode_manager.cc
-@@ -350,7 +350,7 @@ BackgroundModeManager::~BackgroundModeManager() {
+@@ -349,7 +349,7 @@ BackgroundModeManager::~BackgroundModeManager() {
// static
void BackgroundModeManager::RegisterPrefs(PrefRegistrySimple* registry) {
@@ -54,7 +54,7 @@ diff --git a/chrome/browser/background/extensions/background_mode_manager.cc b/c
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1439,7 +1439,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
+@@ -1419,7 +1419,7 @@ void ChromeContentBrowserClient::RegisterLocalStatePrefs(
void ChromeContentBrowserClient::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kDisable3DAPIs, false);
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/preloading/preloading_prefs.h b/chrome/browser/prelo
diff --git a/chrome/browser/profiles/profile.cc b/chrome/browser/profiles/profile.cc
--- a/chrome/browser/profiles/profile.cc
+++ b/chrome/browser/profiles/profile.cc
-@@ -326,7 +326,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
+@@ -328,7 +328,7 @@ const char Profile::kProfileKey[] = "__PROFILE__";
void Profile::RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(
prefs::kSearchSuggestEnabled,
@@ -102,7 +102,7 @@ diff --git a/chrome/browser/resources/settings/reset_page/reset_profile_dialog.h
diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
--- a/chrome/browser/ui/browser_ui_prefs.cc
+++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -125,10 +125,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -128,10 +128,10 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
registry->RegisterBooleanPref(
@@ -115,7 +115,7 @@ diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_u
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacement);
registry->RegisterDictionaryPref(prefs::kBrowserWindowPlacementPopup);
registry->RegisterDictionaryPref(prefs::kAppWindowPlacement);
-@@ -202,7 +202,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -205,7 +205,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
#endif
registry->RegisterBooleanPref(
@@ -245,7 +245,7 @@ diff --git a/components/content_settings/core/browser/content_settings_registry.
/*allowlisted_primary_schemes=*/{},
/*valid_settings=*/{CONTENT_SETTING_ALLOW, CONTENT_SETTING_BLOCK},
WebsiteSettingsInfo::TOP_ORIGIN_ONLY_SCOPE,
-@@ -391,7 +391,7 @@ void ContentSettingsRegistry::Init() {
+@@ -370,7 +370,7 @@ void ContentSettingsRegistry::Init() {
// TODO(crbug.com/40602007): Update this to "SECURE_ONLY" once
// DeviceOrientationEvents and DeviceMotionEvents are only fired in secure
// contexts.
@@ -281,7 +281,7 @@ diff --git a/components/payments/core/payment_prefs.cc b/components/payments/cor
diff --git a/components/safe_browsing/core/common/safe_browsing_prefs.cc b/components/safe_browsing/core/common/safe_browsing_prefs.cc
--- a/components/safe_browsing/core/common/safe_browsing_prefs.cc
+++ b/components/safe_browsing/core/common/safe_browsing_prefs.cc
-@@ -217,13 +217,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
+@@ -238,13 +238,13 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
registry->RegisterBooleanPref(
prefs::kSafeBrowsingSawInterstitialScoutReporting, false);
registry->RegisterBooleanPref(
diff --git a/build/patches/Move-navigation-bar-to-bottom.patch b/build/patches/Move-navigation-bar-to-bottom.patch
index 1bc0518a..8bcbc6a6 100644
--- a/build/patches/Move-navigation-bar-to-bottom.patch
+++ b/build/patches/Move-navigation-bar-to-bottom.patch
@@ -22,6 +22,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../tab_management/TabGroupUiProperties.java | 5 +
.../tab_management/TabGroupUiToolbarView.java | 17 ++
.../tab_management/TabGroupUiViewBinder.java | 3 +
+ .../TabListContainerViewBinder.java | 2 +-
.../tab_management/TabListCoordinator.java | 148 +++++++++++++++++-
.../TabListEmptyCoordinator.java | 17 +-
.../tab_management/TabSwitcherPaneBase.java | 9 ++
@@ -64,13 +65,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../flags/android/chrome_feature_list.cc | 3 +
.../browser/flags/ChromeFeatureList.java | 10 ++
chrome/browser/hub/internal/BUILD.gn | 5 +
- .../chrome/browser/hub/HubCoordinator.java | 8 +
+ .../chrome/browser/hub/HubCoordinator.java | 9 ++
.../chrome/browser/hub/HubManagerImpl.java | 16 +-
.../browser/hub/ReversedLinearLayout.java | 42 +++++
- .../android/res/layout/hub_layout.xml | 4 +-
+ .../android/res/layout/hub_layout.xml | 24 ++-
.../android/res/layout/hub_toolbar_layout.xml | 4 +-
chrome/browser/prefs/browser_prefs.cc | 2 +-
- .../chrome/browser/ui/appmenu/AppMenu.java | 40 ++++-
+ .../chrome/browser/ui/appmenu/AppMenu.java | 39 ++++-
.../ui/appmenu/AppMenuHandlerImpl.java | 10 ++
.../EdgeToEdgeControllerImpl.java | 1 +
.../ui/edge_to_edge/EdgeToEdgeUtils.java | 2 +
@@ -103,7 +104,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../render_widget_host_view_android.cc | 3 +
.../Move-navigation-bar-to-bottom.inc | 17 ++
.../renderer/core/frame/viewport_data.cc | 1 +
- 90 files changed, 1069 insertions(+), 88 deletions(-)
+ 91 files changed, 1084 insertions(+), 95 deletions(-)
create mode 100644 chrome/browser/hub/internal/android/java/src/org/chromium/chrome/browser/hub/ReversedLinearLayout.java
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Move-navigation-bar-to-bottom.inc
@@ -163,7 +164,7 @@ diff --git a/cc/input/browser_controls_offset_manager.cc b/cc/input/browser_cont
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
-@@ -5153,6 +5153,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) {
+@@ -5279,6 +5279,9 @@ bool LayerTreeHostImpl::AnimateBrowserControls(base::TimeTicks time) {
if (scroll_delta.IsZero())
return false;
@@ -401,6 +402,18 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
} else if (IS_MAIN_CONTENT_VISIBLE == propertyKey) {
viewHolder.toolbarView.setMainContentVisibility(model.get(IS_MAIN_CONTENT_VISIBLE));
} else if (BACKGROUND_COLOR == propertyKey) {
+diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
+--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
++++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
+@@ -157,7 +157,7 @@ class TabListContainerViewBinder {
+ .getDimensionPixelSize(R.dimen.hub_search_box_gap);
+ recyclerView.setPadding(
+ recyclerView.getPaddingLeft(),
+- paddingTop,
++ /*paddingTop*/ 0,
+ recyclerView.getPaddingRight(),
+ recyclerView.getPaddingBottom());
+ } else if (IS_NON_ZERO_Y_OFFSET == propertyKey) {
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListCoordinator.java
@@ -644,7 +657,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
mListObserver =
new ListObserver<>() {
@Override
-@@ -178,6 +184,15 @@ class TabListEmptyCoordinator {
+@@ -188,6 +194,15 @@ class TabListEmptyCoordinator {
public void attachEmptyView() {
if (mEmptyView != null && mEmptyView.getParent() == null) {
mRootView.addView(mEmptyView);
@@ -671,7 +684,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
import org.chromium.chrome.browser.hub.DisplayButtonData;
import org.chromium.chrome.browser.hub.FadeHubLayoutAnimationFactory;
import org.chromium.chrome.browser.hub.FullButtonData;
-@@ -174,6 +175,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
+@@ -177,6 +178,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
private @Nullable PaneHubController mPaneHubController;
private @Nullable Long mWaitForTabStateInitializedStartTimeMs;
private final @Nullable ObservableSupplier mXrSpaceModeObservableSupplier;
@@ -679,7 +692,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
/**
* @param context The activity context.
-@@ -473,6 +475,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
+@@ -493,6 +495,13 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
Log.d(TAG, "Geometry not ready using fallback animation.");
useFallbackAnimation = true;
}
@@ -691,8 +704,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+ }
+ }
// Ignore left offset and just ensure the width is correct. See crbug/1502437.
- initialRect.offset(-leftOffset, -initialTopOffset);
- finalRect.offset(-leftOffset, -finalTopOffset);
+ initialRect.offset(-initialLeftOffset, -initialTopOffset);
+ finalRect.offset(-finalLeftOffset, -finalTopOffset);
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
--- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
+++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSurfaceCoordinator.java
@@ -704,7 +717,7 @@ diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-@@ -700,6 +701,9 @@ public class FeedSurfaceCoordinator
+@@ -697,6 +698,9 @@ public class FeedSurfaceCoordinator
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMarginStart(margin);
layoutParams.setMarginEnd(margin);
@@ -741,12 +754,12 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
-@@ -1084,7 +1084,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
+@@ -1077,7 +1077,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
+ mRootUiCoordinator.getDataSharingTabManager(),
mRootUiCoordinator.getBottomSheetController(),
mRootUiCoordinator.getShareDelegateSupplier(),
- mXrSceneCoreSessionManagerSupplier.get(),
-- mRootUiCoordinator.getTopControlsStacker());
-+ mRootUiCoordinator.getTopControlsStacker(),
+- mXrSceneCoreSessionManagerSupplier.get());
++ mXrSceneCoreSessionManagerSupplier.get(),
+ /*browserControlsManagerSupplier*/ () -> getBrowserControlsManager());
mLayoutStateProviderSupplier.set(mLayoutManager);
}
@@ -874,7 +887,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
if (forwarder != null) forwarder.setCurrentTouchOffsetY(top);
}
-@@ -967,6 +971,9 @@ public class CompositorViewHolder extends FrameLayout
+@@ -965,6 +969,9 @@ public class CompositorViewHolder extends FrameLayout
? assumeNonNull(mApplicationBottomInsetSupplier.get())
.webContentsHeightInset
: 0;
@@ -887,10 +900,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/Comp
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChrome.java
-@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sw
+@@ -43,6 +43,7 @@ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.Sc
+ import org.chromium.components.browser_ui.widget.gesture.SwipeGestureListener.SwipeHandler;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
import org.chromium.ui.util.AccessibilityUtil;
- import org.chromium.ui.util.XrUtils;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import java.util.List;
@@ -932,7 +945,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java
-@@ -41,6 +41,7 @@ import org.chromium.ui.base.WindowAndroid;
+@@ -40,6 +40,7 @@ import org.chromium.ui.base.WindowAndroid;
import org.chromium.ui.dragdrop.DragAndDropDelegate;
import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
import org.chromium.ui.xr.scenecore.XrSceneCoreSessionManager;
@@ -940,22 +953,22 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layo
import java.util.function.Supplier;
-@@ -114,7 +115,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
+@@ -111,7 +112,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
+ DataSharingTabManager dataSharingTabManager,
BottomSheetController bottomSheetController,
Supplier shareDelegateSupplier,
- @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager,
-- TopControlsStacker topControlsStacker) {
-+ TopControlsStacker topControlsStacker,
+- @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager) {
++ @Nullable XrSceneCoreSessionManager xrSceneCoreSessionManager,
+ Supplier browserControlsManagerSupplier) {
super(
host,
contentContainer,
-@@ -153,7 +155,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
+@@ -149,7 +151,8 @@ public class LayoutManagerChromeTablet extends LayoutManagerChrome {
+ dataSharingTabManager,
bottomSheetController,
shareDelegateSupplier,
- xrSpaceModeObservableSupplier,
-- topControlsStacker);
-+ topControlsStacker,
+- xrSpaceModeObservableSupplier);
++ xrSpaceModeObservableSupplier,
+ browserControlsManagerSupplier);
addSceneOverlay(mTabStripLayoutHelperManager);
addObserver(mTabStripLayoutHelperManager.getTabSwitcherObserver());
@@ -1013,7 +1026,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutHelperManager.java
-@@ -116,6 +116,8 @@ import org.chromium.ui.interpolators.Interpolators;
+@@ -112,6 +112,8 @@ import org.chromium.ui.interpolators.Interpolators;
import org.chromium.ui.resources.ResourceManager;
import org.chromium.ui.util.ColorUtils;
import org.chromium.url.GURL;
@@ -1022,7 +1035,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
import java.util.ArrayList;
import java.util.List;
-@@ -274,12 +276,16 @@ public class StripLayoutHelperManager
+@@ -269,12 +271,16 @@ public class StripLayoutHelperManager
// Drag-Drop
private @Nullable TabStripDragHandler mTabStripDragHandler;
@@ -1039,7 +1052,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
if (mModelSelectorButton != null && mModelSelectorButton.onDown(x, y, buttons)) {
return;
}
-@@ -304,6 +310,7 @@ public class StripLayoutHelperManager
+@@ -299,6 +305,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1047,7 +1060,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
if (mModelSelectorButton != null) {
mModelSelectorButton.drag(x, y);
}
-@@ -315,6 +322,7 @@ public class StripLayoutHelperManager
+@@ -310,6 +317,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1055,7 +1068,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
long time = time();
if (mModelSelectorButton != null && mModelSelectorButton.click(x, y, buttons)) {
mModelSelectorButton.handleClick(time, buttons, modifiers);
-@@ -328,6 +336,7 @@ public class StripLayoutHelperManager
+@@ -323,6 +331,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1063,7 +1076,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
getActiveStripLayoutHelper().fling(time(), velocityX);
}
-@@ -336,6 +345,7 @@ public class StripLayoutHelperManager
+@@ -331,6 +340,7 @@ public class StripLayoutHelperManager
if (DragDropGlobalState.hasValue()) {
return;
}
@@ -1071,17 +1084,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
getActiveStripLayoutHelper().onLongPress(x, y);
}
-@@ -477,7 +487,8 @@ public class StripLayoutHelperManager
+@@ -470,7 +480,8 @@ public class StripLayoutHelperManager
+ DataSharingTabManager dataSharingTabManager,
BottomSheetController bottomSheetController,
Supplier shareDelegateSupplier,
- @Nullable ObservableSupplier xrSpaceModeObservableSupplier,
-- TopControlsStacker topControlsStacker) {
-+ TopControlsStacker topControlsStacker,
+- @Nullable ObservableSupplier xrSpaceModeObservableSupplier) {
++ @Nullable ObservableSupplier xrSpaceModeObservableSupplier,
+ Supplier browserControlsManagerSupplier) {
mContext = context;
Resources res = context.getResources();
mManagerHost = managerHost;
-@@ -597,6 +608,8 @@ public class StripLayoutHelperManager
+@@ -590,6 +601,8 @@ public class StripLayoutHelperManager
multiInstanceManager,
shareDelegateSupplier,
TabGroupListBottomSheetCoordinator::new);
@@ -1090,7 +1103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
tabHoverCardViewStub.setOnInflateListener(
(viewStub, view) -> {
-@@ -867,6 +880,10 @@ public class StripLayoutHelperManager
+@@ -856,6 +869,10 @@ public class StripLayoutHelperManager
yOffset = 0;
}
@@ -1101,7 +1114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
mTabStripTreeProvider.pushAndUpdateStrip(
this,
mLayerTitleCacheSupplier.get(),
-@@ -880,7 +897,9 @@ public class StripLayoutHelperManager
+@@ -869,7 +886,9 @@ public class StripLayoutHelperManager
mStripTransitionScrimOpacity,
getActiveStripLayoutHelper().getLeftPaddingToDraw(),
getActiveStripLayoutHelper().getRightPaddingToDraw(),
@@ -1112,7 +1125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over
return mTabStripTreeProvider;
}
-@@ -946,11 +965,21 @@ public class StripLayoutHelperManager
+@@ -935,11 +954,21 @@ public class StripLayoutHelperManager
mRightPadding,
mTopPadding);
@@ -1254,7 +1267,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/findinpage/Find
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/BrowserControlsManager.java
-@@ -54,6 +54,8 @@ import org.chromium.ui.OffsetTagConstraints;
+@@ -55,6 +55,8 @@ import org.chromium.ui.OffsetTagConstraints;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.util.TokenHolder;
@@ -1263,7 +1276,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow
/** A class that manages browser control visibility and positioning. */
@NullMarked
public class BrowserControlsManager implements ActivityStateListener, BrowserControlsSizer {
-@@ -588,6 +590,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
+@@ -616,6 +618,14 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
}
}
@@ -1278,7 +1291,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/fullscreen/Brow
@Override
public int getTopControlsMinHeight() {
return mTopControlsMinHeight;
-@@ -689,6 +699,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
+@@ -717,6 +727,8 @@ public class BrowserControlsManager implements ActivityStateListener, BrowserCon
@Override
public float getTopVisibleContentOffset() {
@@ -1341,7 +1354,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Chr
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
-@@ -125,6 +125,7 @@ import org.chromium.content_public.browser.NavigationController;
+@@ -129,6 +129,7 @@ import org.chromium.content_public.browser.NavigationController;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -1349,7 +1362,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import androidx.annotation.NonNull;
import org.chromium.chrome.browser.bookmarks.BookmarkManagerOpener;
-@@ -823,11 +824,16 @@ public class NewTabPage
+@@ -873,11 +874,16 @@ public class NewTabPage
final int topControlsDistanceToRest =
mBrowserControlsStateProvider.getContentOffset()
- mBrowserControlsStateProvider.getTopControlsHeight();
@@ -1368,7 +1381,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) {
layoutParams.topMargin = topMargin;
-@@ -843,9 +849,7 @@ public class NewTabPage
+@@ -893,9 +899,7 @@ public class NewTabPage
* strip.
*/
private int getToolbarExtraYOffset() {
@@ -1382,7 +1395,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
-@@ -13,6 +13,9 @@ import android.text.Editable;
+@@ -14,6 +14,9 @@ import android.text.Editable;
import android.util.AttributeSet;
import android.view.DragEvent;
import android.view.ViewStub;
@@ -1392,9 +1405,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
-@@ -208,7 +211,12 @@ public class NewTabPageLayout extends LinearLayout
- mFakeSearchBoxLayout = findViewById(R.id.search_box);
- mFakeSearchBoxEditText = findViewById(R.id.search_box_text);
+@@ -213,7 +216,12 @@ public class NewTabPageLayout extends LinearLayout
+ Log.i(TAG, "NewTabPageLayout.onFinishInflate before insertSiteSectionView");
+
initializeSiteSectionView();
-
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
@@ -1409,7 +1422,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsPage.java
-@@ -34,6 +34,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
+@@ -33,6 +33,7 @@ import org.chromium.components.embedder_support.util.UrlConstants;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.edge_to_edge.EdgeToEdgePadAdjuster;
@@ -1417,7 +1430,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
/**
* The native recent tabs page. Lists recently closed tabs, open windows and tabs from the user's
-@@ -118,7 +119,8 @@ public class RecentTabsPage
+@@ -117,7 +118,8 @@ public class RecentTabsPage
mView.addOnAttachStateChangeListener(this);
@@ -1427,7 +1440,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
mBrowserControlsStateProvider = browserControlsStateProvider;
mBrowserControlsStateProvider.addObserver(this);
onBottomControlsHeightChanged(
-@@ -130,14 +132,23 @@ public class RecentTabsPage
+@@ -129,14 +131,23 @@ public class RecentTabsPage
mTabStripHeightSupplier = tabStripHeightSupplier;
mView.setPadding(0, mTabStripHeightSupplier.get(), 0, 0);
@@ -1451,9 +1464,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
+ mTabStripHeightSupplier.addObserver(mTabStripHeightChangeCallback);
+ }
mEdgeToEdgeSupplier = edgeToEdgeSupplier;
- if (EdgeToEdgeUtils.isDrawKeyNativePageToEdgeEnabled()) {
- mPadAdjuster =
-@@ -365,7 +376,7 @@ public class RecentTabsPage
+ mPadAdjuster =
+ EdgeToEdgeControllerFactory.createForViewAndObserveSupplier(
+@@ -362,7 +373,7 @@ public class RecentTabsPage
if (mBrowserControlsStateProvider == null) return;
final View recentTabsRoot = mView.findViewById(R.id.recent_tabs_root);
@@ -1462,7 +1475,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsP
final int contentOffset = mBrowserControlsStateProvider.getContentOffset();
ViewGroup.MarginLayoutParams layoutParams =
(ViewGroup.MarginLayoutParams) recentTabsRoot.getLayoutParams();
-@@ -381,9 +392,17 @@ public class RecentTabsPage
+@@ -378,9 +389,17 @@ public class RecentTabsPage
// If the content offset is different from the margin, we use translationY to position the
// view in line with the content offset.
@@ -1493,7 +1506,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom
import org.chromium.chrome.browser.fullscreen.BrowserControlsManagerSupplier;
import org.chromium.chrome.browser.merchant_viewer.PageInfoStoreInfoController.StoreInfoActionHandler;
import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
-@@ -77,6 +78,7 @@ public class ChromePageInfo {
+@@ -90,6 +91,7 @@ public class ChromePageInfo {
if (stateProvider != null) {
dialogPosition =
stateProvider.getControlsPosition() == ControlsPosition.BOTTOM
@@ -1504,7 +1517,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/Chrom
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
-@@ -87,6 +87,11 @@ import org.chromium.url.GURL;
+@@ -89,6 +89,11 @@ import org.chromium.url.GURL;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -1516,7 +1529,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
import java.lang.ref.WeakReference;
/** Queries the user's default search engine and shows autocomplete suggestions. */
-@@ -303,6 +308,15 @@ public class SearchActivity extends AsyncInitializationActivity
+@@ -305,6 +310,15 @@ public class SearchActivity extends AsyncInitializationActivity
// Build the search box.
mSearchBox = contentView.findViewById(R.id.search_location_bar);
mAnchorView = contentView.findViewById(R.id.toolbar);
@@ -1599,7 +1612,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/status_indicato
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
-@@ -221,6 +221,9 @@ import org.chromium.url.GURL;
+@@ -232,6 +232,9 @@ import org.chromium.url.GURL;
import java.util.List;
import java.util.function.Supplier;
@@ -1609,8 +1622,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
/**
* Contains logic for managing the toolbar visual component. This class manages the interactions
* with the rest of the application to ensure the toolbar is always visually up to date.
-@@ -873,6 +876,17 @@ public class ToolbarManager
- mToolbarPositionSupplier, AlwaysIncognitoLinkInterceptor.isAlwaysIncognito());
+@@ -892,6 +895,17 @@ public class ToolbarManager
+ /* matchTrustedCdnUrl= */ mIsCustomTab);
mControlContainer = controlContainer;
mToolbarHairline = mControlContainer.findViewById(R.id.toolbar_hairline);
+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
@@ -1627,7 +1640,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mBookmarkModelSupplier = bookmarkModelSupplier;
mBookmarkModelSupplier.addObserver(mBookmarkModelSupplierObserver);
-@@ -1540,6 +1554,7 @@ public class ToolbarManager
+@@ -1568,6 +1582,7 @@ public class ToolbarManager
// the height won't be measured by the background image.
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1635,7 +1648,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
} else if (mLayoutChangeListener == null) {
mLayoutChangeListener =
(view,
-@@ -1553,6 +1568,7 @@ public class ToolbarManager
+@@ -1581,6 +1596,7 @@ public class ToolbarManager
oldBottom) -> {
if (mControlContainer.getBackground() == null) {
setControlContainerTopMargin(getToolbarExtraYOffset());
@@ -1643,7 +1656,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mControlContainer.removeOnLayoutChangeListener(
mLayoutChangeListener);
mLayoutChangeListener = null;
-@@ -2162,9 +2178,21 @@ public class ToolbarManager
+@@ -2206,9 +2222,21 @@ public class ToolbarManager
return ((LocationBarCoordinator) mLocationBar).getUrlBarViewRectProvider();
}
@@ -1665,8 +1678,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
+ MoveBottomBarOverTopBar();
assert mTabGroupUiOneshotSupplier == null;
assert mUndoBarThrottle != null;
- ThemeColorProvider bottomUiThemeColorProvider =
-@@ -2179,7 +2207,7 @@ public class ToolbarManager
+ assert mLayoutManager != null;
+@@ -2226,7 +2254,7 @@ public class ToolbarManager
mActivityTabProvider,
mTabModelSelector,
mActivity,
@@ -1675,7 +1688,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
mBrowserControlsSizer,
mScrimManager,
mOmniboxFocusStateSupplier,
-@@ -2206,7 +2234,7 @@ public class ToolbarManager
+@@ -2253,7 +2281,7 @@ public class ToolbarManager
mControlsVisibilityDelegate,
mFullscreenManager,
mEdgeToEdgeControllerSupplier,
@@ -1684,7 +1697,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
bottomControlsContentDelegateSupplier,
mTabObscuringHandler,
mOverlayPanelVisibilitySupplier,
-@@ -2214,7 +2242,8 @@ public class ToolbarManager
+@@ -2261,7 +2289,8 @@ public class ToolbarManager
/* readAloudRestoringSupplier= */ () -> {
final var readAloud = mReadAloudControllerSupplier.get();
return readAloud != null && readAloud.isRestoringPlayer();
@@ -1753,7 +1766,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/system/Statu
import org.chromium.chrome.browser.layouts.LayoutManager;
import org.chromium.chrome.browser.layouts.LayoutStateProvider;
import org.chromium.chrome.browser.layouts.LayoutStateProvider.LayoutStateObserver;
-@@ -530,6 +532,12 @@ public class StatusBarColorController
+@@ -537,6 +539,12 @@ public class StatusBarColorController
UiUtils.setStatusBarIconColor(root, needsDarkStatusBarIcons);
UiUtils.setStatusBarColor(window, color);
}
@@ -1924,19 +1937,19 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
#include "chrome/browser/android/webapk/webapk_features.h"
#include "chrome/browser/browser_features.h"
#include "chrome/browser/contextmenu/context_menu_features.h"
-@@ -364,6 +365,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kMvcUpdateViewWhenModelChanged,
- &kNativePageTransitionHardwareCapture,
- &kNavBarColorAnimation,
+@@ -375,6 +376,8 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+ &kNewTabPageCustomizationToolbarButton,
+ &kNewTabPageCustomizationV2,
+ &kNotificationPermissionBottomSheet,
+ &features::kMoveTopToolbarToBottom,
+ &features::kDisableToolbarSwipeUp,
&kNotificationPermissionVariant,
- &kNotificationPermissionBottomSheet,
&kNotificationTrampoline,
+ &kOfflineIndicatorV2,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -503,6 +503,10 @@ public abstract class ChromeFeatureList {
+@@ -507,6 +507,10 @@ public abstract class ChromeFeatureList {
public static final String NAV_BAR_COLOR_ANIMATION = "NavBarColorAnimation";
public static final String NEW_TAB_PAGE_CUSTOMIZATION = "NewTabPageCustomization";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_FOR_MVT = "NewTabPageCustomizationForMvt";
@@ -1947,7 +1960,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String NEW_TAB_PAGE_CUSTOMIZATION_TOOLBAR_BUTTON =
"NewTabPageCustomizationToolbarButton";
public static final String NEW_TAB_PAGE_CUSTOMIZATION_V2 = "NewTabPageCustomizationV2";
-@@ -1027,6 +1031,10 @@ public abstract class ChromeFeatureList {
+@@ -1016,6 +1020,10 @@ public abstract class ChromeFeatureList {
public static final CachedFlag sOptimizationGuidePushNotifications =
newCachedFlag(OPTIMIZATION_GUIDE_PUSH_NOTIFICATIONS, true);
public static final CachedFlag sPCctMinimumHeight = newCachedFlag(PCCT_MINIMUM_HEIGHT, true);
@@ -1958,7 +1971,7 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final CachedFlag sPaintPreviewDemo = newCachedFlag(PAINT_PREVIEW_DEMO, false);
public static final CachedFlag sPostGetMyMemoryStateToBackground =
newCachedFlag(POST_GET_MEMORY_PRESSURE_TO_BACKGROUND, true);
-@@ -1249,6 +1257,8 @@ public abstract class ChromeFeatureList {
+@@ -1248,6 +1256,8 @@ public abstract class ChromeFeatureList {
sNotificationTrampoline,
sOptimizationGuidePushNotifications,
sPCctMinimumHeight,
@@ -1999,8 +2012,8 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br
+import android.widget.LinearLayout;
import org.chromium.base.Callback;
- import org.chromium.base.metrics.RecordUserAction;
-@@ -23,6 +24,7 @@ import org.chromium.base.supplier.TransitiveObservableSupplier;
+ import org.chromium.base.DeviceInfo;
+@@ -24,6 +25,7 @@ import org.chromium.base.supplier.TransitiveObservableSupplier;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.feature_engagement.TrackerFactory;
@@ -2008,15 +2021,16 @@ diff --git a/chrome/browser/hub/internal/android/java/src/org/chromium/chrome/br
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.profiles.ProfileProvider;
import org.chromium.chrome.browser.tab.Tab;
-@@ -172,6 +174,12 @@ public class HubCoordinator implements PaneHubController, BackPressHandler {
+@@ -172,6 +174,13 @@ public class HubCoordinator implements PaneHubController, BackPressHandler {
paneManager.getFocusedPaneSupplier(),
hubColorMixer,
defaultPaneId);
-+ if (ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
++ if (!ChromeFeatureList.sMoveTopToolbarToBottom.isEnabled()) {
++ LinearLayout mainContainer = mContainerView.findViewById(R.id.hub_pane_host_container);
+ LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
-+ hubPaneHostView.getLayoutParams();
-+ params.bottomMargin = hubToolbarView.getHeight();
-+ hubPaneHostView.setLayoutParams(params);
++ mainContainer.getLayoutParams();
++ params.topMargin = 0;
++ mainContainer.setLayoutParams(params);
+ }
ObservableSupplier<@Nullable View> overlayViewSupplier =
@@ -2124,20 +2138,39 @@ new file mode 100644
diff --git a/chrome/browser/hub/internal/android/res/layout/hub_layout.xml b/chrome/browser/hub/internal/android/res/layout/hub_layout.xml
--- a/chrome/browser/hub/internal/android/res/layout/hub_layout.xml
+++ b/chrome/browser/hub/internal/android/res/layout/hub_layout.xml
-@@ -8,7 +8,7 @@ found in the LICENSE file.
+@@ -8,20 +8,28 @@ found in the LICENSE file.
android:layout_width="match_parent"
android:layout_height="match_parent">
--
+ android:layout_height="match_parent">
--
+-
+-
+
+
+-
++
++
++
++
+
@@ -2166,7 +2199,7 @@ diff --git a/chrome/browser/hub/internal/android/res/layout/hub_toolbar_layout.x
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -2463,7 +2463,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -2282,7 +2282,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
#if BUILDFLAG(IS_ANDROID)
registry->RegisterBooleanPref(prefs::kVirtualKeyboardResizesLayoutByDefault,
@@ -2186,15 +2219,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
import android.os.SystemClock;
import android.view.Gravity;
import android.view.KeyEvent;
-@@ -46,6 +47,7 @@ import org.chromium.build.annotations.NullMarked;
- import org.chromium.build.annotations.Nullable;
- import org.chromium.build.annotations.RequiresNonNull;
- import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition;
-+import org.chromium.chrome.browser.flags.ChromeFeatureList;
- import org.chromium.chrome.browser.ui.appmenu.internal.R;
- import org.chromium.components.browser_ui.styles.SemanticColorUtils;
- import org.chromium.components.browser_ui.widget.chips.ChipView;
-@@ -249,6 +251,12 @@ class AppMenu implements OnKeyListener {
+@@ -256,6 +257,12 @@ class AppMenu implements OnKeyListener {
}
mListView = contentView.findViewById(R.id.app_menu_list);
@@ -2207,7 +2232,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int footerHeight = attachFooter(footer, (ViewGroup) contentView, menuWidth);
int headerHeight = attachHeader(header, menuWidth);
-@@ -287,7 +295,7 @@ class AppMenu implements OnKeyListener {
+@@ -294,7 +301,7 @@ class AppMenu implements OnKeyListener {
Math.min(
Math.abs(mTempLocation[1] - visibleDisplayFrame.top),
Math.abs(mTempLocation[1] - visibleDisplayFrame.bottom));
@@ -2216,7 +2241,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
mInitialSizingHelper,
visibleDisplayFrame,
sizingPadding,
-@@ -305,8 +313,14 @@ class AppMenu implements OnKeyListener {
+@@ -312,8 +319,14 @@ class AppMenu implements OnKeyListener {
sizingPadding,
anchorView,
popupWidth,
@@ -2230,9 +2255,9 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
+ mPopup.setHeight(popupHeight - 1);
+ }
- try {
- mPopup.showAtLocation(
-@@ -381,11 +395,20 @@ class AppMenu implements OnKeyListener {
+ // Post the show call to handle keyboard click events.
+ if (ChromeFeatureList.sAndroidWebAppMenuButton.isEnabled()) {
+@@ -385,11 +398,20 @@ class AppMenu implements OnKeyListener {
Rect padding,
View anchorView,
int popupWidth,
@@ -2254,7 +2279,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
int[] offsets = new int[2];
// If we have a hardware menu button, locate the app menu closer to the estimated
// hardware menu button location.
-@@ -491,7 +514,7 @@ class AppMenu implements OnKeyListener {
+@@ -495,7 +517,7 @@ class AppMenu implements OnKeyListener {
}
@RequiresNonNull("mPopup")
@@ -2263,7 +2288,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
InitialSizingHelper sizingHelper,
Rect appDimensions,
Rect padding,
-@@ -509,7 +532,13 @@ class AppMenu implements OnKeyListener {
+@@ -513,7 +535,13 @@ class AppMenu implements OnKeyListener {
- footerHeight
- headerHeight
- anchorViewImpactHeight;
@@ -2278,7 +2303,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
if (mIsByPermanentButton) availableScreenSpace -= padding.top;
if (availableScreenSpace <= 0 && sExceptionReporter != null) {
String logMessage =
-@@ -546,6 +575,7 @@ class AppMenu implements OnKeyListener {
+@@ -550,6 +578,7 @@ class AppMenu implements OnKeyListener {
int menuHeight = calculateHeightForItems(heightList, canBeLastList, availableScreenSpace);
menuHeight += footerHeight + headerHeight + padding.top + padding.bottom;
mPopup.setHeight(menuHeight);
@@ -2297,7 +2322,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
import org.chromium.build.annotations.MonotonicNonNull;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
-@@ -273,7 +274,16 @@ class AppMenuHandlerImpl
+@@ -274,7 +275,16 @@ class AppMenuHandlerImpl
assert !(isByPermanentButton && startDragging);
mModelList = mDelegate.getMenuItems();
@@ -2317,7 +2342,7 @@ diff --git a/chrome/browser/ui/android/appmenu/internal/java/src/org/chromium/ch
diff --git a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
--- a/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
+++ b/chrome/browser/ui/android/edge_to_edge/internal/java/src/org/chromium/chrome/browser/ui/edge_to_edge/EdgeToEdgeControllerImpl.java
-@@ -694,6 +694,7 @@ public class EdgeToEdgeControllerImpl
+@@ -687,6 +687,7 @@ public class EdgeToEdgeControllerImpl
* the system insets due to the keyboard or the bottom controls being visible.
*/
private boolean shouldPadAdjusters() {
@@ -2336,7 +2361,7 @@ diff --git a/chrome/browser/ui/android/edge_to_edge/java/src/org/chromium/chrome
// Make sure we test SDK version before checking the Feature so Field Trials only collect
// from qualifying devices.
if (!EdgeToEdgeFieldTrialImpl.getBottomChinOverrides().isEnabledForManufacturerVersion()) {
-@@ -375,6 +376,7 @@ public class EdgeToEdgeUtils {
+@@ -362,6 +363,7 @@ public class EdgeToEdgeUtils {
*/
@Deprecated
static boolean hasTappableNavigationBar(Window window) {
@@ -2400,18 +2425,18 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarCoordinator.java
-@@ -224,6 +224,7 @@ public class LocationBarCoordinator
+@@ -232,6 +232,7 @@ public class LocationBarCoordinator
? ControlsPosition.TOP
: mBrowserControlsStateProvider.getControlsPosition(),
mDeferredIMEWindowInsetApplicationCallback::getCurrentKeyboardHeight,
+ mDeferredIMEWindowInsetApplicationCallback::getSystemBarInsetsBottom,
- bottomWindowPaddingSupplier);
+ bottomWindowPaddingSupplier,
+ locationBarDataProvider);
- mUrlBar = mLocationBarLayout.findViewById(R.id.url_bar);
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/OmniboxSuggestionsDropdownEmbedderImpl.java
-@@ -15,6 +15,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener;
+@@ -16,6 +16,7 @@ import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.view.WindowInsets;
import androidx.core.graphics.Insets;
@@ -2419,15 +2444,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import androidx.core.view.WindowInsetsCompat;
import org.chromium.base.Callback;
-@@ -25,6 +26,7 @@ import org.chromium.build.annotations.Nullable;
- import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider.ControlsPosition;
+@@ -27,6 +28,7 @@ import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider
+ import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownEmbedder;
+import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.ViewUtils;
import org.chromium.ui.base.WindowAndroid;
-@@ -49,6 +51,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -51,6 +53,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
private final boolean mForcePhoneStyleOmnibox;
private final Supplier<@ControlsPosition Integer> mControlsPositionSupplier;
private final Supplier mKeyboardHeightSupplier;
@@ -2435,15 +2460,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private final Supplier mBottomWindowPaddingSupplier;
private final Context mContext;
// Reusable int array to pass to positioning methods that operate on a two element int array.
-@@ -88,6 +91,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -92,6 +95,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@Nullable View baseChromeLayout,
Supplier<@ControlsPosition Integer> controlsPositionSupplier,
Supplier keyboardHeightSupplier,
+ Supplier systemBarInsetsBottomSupplier,
- Supplier bottomWindowPaddingSupplier) {
+ Supplier bottomWindowPaddingSupplier,
+ LocationBarDataProvider locationBarDataProvider) {
mWindowAndroid = windowAndroid;
- mAnchorView = anchorView;
-@@ -95,6 +99,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -100,6 +104,7 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mForcePhoneStyleOmnibox = forcePhoneStyleOmnibox;
mControlsPositionSupplier = controlsPositionSupplier;
mKeyboardHeightSupplier = keyboardHeightSupplier;
@@ -2451,7 +2476,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mBottomWindowPaddingSupplier = bottomWindowPaddingSupplier;
mContext = mAnchorView.getContext();
mContext.registerComponentCallbacks(this);
-@@ -115,6 +120,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -121,6 +126,11 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mOmniboxAlignmentSupplier.removeObserver(obs);
}
@@ -2463,7 +2488,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public OmniboxAlignment getCurrentAlignment() {
return assertNonNull(mOmniboxAlignmentSupplier.get());
-@@ -138,6 +148,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -152,6 +162,10 @@ class OmniboxSuggestionsDropdownEmbedderImpl
@Override
public void onDetachedFromWindow() {
@@ -2474,7 +2499,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mAnchorView.removeOnLayoutChangeListener(this);
mAlignmentView.removeOnLayoutChangeListener(this);
mAnchorView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
-@@ -234,6 +248,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -257,6 +271,9 @@ class OmniboxSuggestionsDropdownEmbedderImpl
} else {
ViewUtils.getRelativeLayoutPosition(contentView, mAnchorView, mPositionArray);
top = mPositionArray[1] + mAnchorView.getMeasuredHeight() - contentView.getPaddingTop();
@@ -2484,7 +2509,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
if (isTablet()) {
-@@ -311,6 +328,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -343,6 +360,13 @@ class OmniboxSuggestionsDropdownEmbedderImpl
height = Math.min(windowSpace, contentSpace) - top;
}
@@ -2498,7 +2523,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
// TODO(pnoland@, https://crbug.com/1416985): avoid pushing changes that are identical to
// the previous alignment value.
OmniboxAlignment omniboxAlignment =
-@@ -319,6 +343,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl
+@@ -351,6 +375,14 @@ class OmniboxSuggestionsDropdownEmbedderImpl
mOmniboxAlignmentSupplier.set(omniboxAlignment);
}
@@ -2516,7 +2541,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
-@@ -12,6 +12,7 @@ import android.view.KeyEvent;
+@@ -13,6 +13,7 @@ import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
@@ -2524,7 +2549,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import androidx.annotation.ColorInt;
import androidx.annotation.VisibleForTesting;
import androidx.core.view.ViewCompat;
-@@ -51,6 +52,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
+@@ -52,6 +53,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
import org.chromium.ui.modelutil.LazyConstructionPropertyMcp;
import org.chromium.ui.modelutil.MVCListAdapter.ModelList;
import org.chromium.ui.modelutil.PropertyModel;
@@ -2532,7 +2557,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.ArrayList;
import java.util.List;
-@@ -71,6 +73,7 @@ public class AutocompleteCoordinator
+@@ -72,6 +74,7 @@ public class AutocompleteCoordinator
private @Nullable OmniboxSuggestionsDropdown mDropdown;
private final ObserverList mScrollListenerList =
new ObserverList<>();
@@ -2540,7 +2565,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/** An observer watching for changes to the visual state of the omnibox suggestions. */
public interface OmniboxSuggestionsVisualStateObserver {
-@@ -107,6 +110,7 @@ public class AutocompleteCoordinator
+@@ -106,6 +109,7 @@ public class AutocompleteCoordinator
Context context = parent.getContext();
ModelList listItems = new ModelList();
@@ -2548,7 +2573,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
PropertyModel listModel =
new PropertyModel.Builder(SuggestionListProperties.ALL_KEYS)
.with(SuggestionListProperties.EMBEDDER, dropdownEmbedder)
-@@ -234,6 +238,18 @@ public class AutocompleteCoordinator
+@@ -231,6 +235,18 @@ public class AutocompleteCoordinator
container.findViewById(R.id.omnibox_suggestions_dropdown);
dropdown.setAdapter(mAdapter);
@@ -2570,7 +2595,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
-@@ -76,6 +76,8 @@ import org.chromium.ui.modelutil.PropertyModel;
+@@ -73,6 +73,8 @@ import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
@@ -2579,7 +2604,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import java.util.List;
import java.util.function.Supplier;
-@@ -1235,7 +1237,9 @@ class AutocompleteMediator
+@@ -1241,7 +1243,9 @@ class AutocompleteMediator
@Override
public void onSuggestionDropdownScroll() {
mSuggestionsListScrolled = true;
@@ -2593,7 +2618,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/OmniboxSuggestionsDropdown.java
-@@ -292,6 +292,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
+@@ -294,6 +294,9 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_bottom);
int paddingTop =
resources.getDimensionPixelOffset(R.dimen.omnibox_suggestion_list_padding_top);
@@ -2602,8 +2627,8 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
+ }
this.setPaddingRelative(0, paddingTop, 0, mBaseBottomPadding);
- if (OmniboxFeatures.sAsyncViewInflation.isEnabled()) {
-@@ -512,6 +515,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
+ // Disable the scrollbar since it causes the hover events happening near the
+@@ -525,6 +528,8 @@ public class OmniboxSuggestionsDropdown extends RecyclerView {
mToolbarOnTop =
!(ChromeFeatureList.sAndroidBottomToolbarV2ReverseOrderSuggestionsList.getValue()
&& toolbarPosition == ControlsPosition.BOTTOM);
@@ -2667,7 +2692,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
-@@ -1521,6 +1521,12 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1530,6 +1530,12 @@ Your Google account may have other forms of browsing history like searches and a
Force Tablet Mode
@@ -2683,7 +2708,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/android/toolbar/BUILD.gn
--- a/chrome/browser/ui/android/toolbar/BUILD.gn
+++ b/chrome/browser/ui/android/toolbar/BUILD.gn
-@@ -214,6 +214,7 @@ android_library("java") {
+@@ -216,6 +216,7 @@ android_library("java") {
"//content/public/android:content_java",
"//third_party/android_deps:material_design_java",
"//third_party/androidx:androidx_annotation_annotation_experimental_java",
@@ -2694,7 +2719,7 @@ diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/andr
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/LocationBarFocusScrimHandler.java
-@@ -17,6 +17,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
+@@ -18,6 +18,7 @@ import org.chromium.components.browser_ui.widget.scrim.ScrimProperties;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.util.ColorUtils;
@@ -2702,7 +2727,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/** Handles showing and hiding a scrim when url bar focus changes. */
@NullMarked
-@@ -62,6 +63,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener {
+@@ -63,6 +64,10 @@ public class LocationBarFocusScrimHandler implements UrlFocusChangeListener {
mContext = context;
int topMargin = tabStripHeightSupplier.get() == null ? 0 : tabStripHeightSupplier.get();
@@ -2716,7 +2741,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/ToolbarLongPressMenuHandler.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/ToolbarLongPressMenuHandler.java
-@@ -223,14 +223,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver
+@@ -219,14 +219,6 @@ public class ToolbarLongPressMenuHandler implements ConfigurationChangedObserver
@VisibleForTesting
ModelList buildMenuItems(boolean onTop) {
ModelList itemList = new ModelList();
@@ -2766,7 +2791,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/bottom/BottomControlsCoordinator.java
-@@ -33,6 +33,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
+@@ -34,6 +34,8 @@ import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
import org.chromium.ui.resources.ResourceManager;
import org.chromium.ui.resources.dynamics.ViewResourceAdapter;
import org.chromium.ui.widget.Toast;
@@ -2775,7 +2800,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import java.util.HashSet;
import java.util.Set;
-@@ -89,6 +91,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
+@@ -90,6 +92,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
* @param constraintsSupplier Used to access current constraints of the browser controls.
* @param readAloudRestoringSupplier Supplier that returns true if Read Aloud is currently
* restoring its player, e.g. after theme change.
@@ -2784,10 +2809,10 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
*/
@SuppressLint("CutPasteId") // Not actually cut and paste since it's View vs ViewGroup.
public BottomControlsCoordinator(
-@@ -104,7 +108,9 @@ public class BottomControlsCoordinator implements BackPressHandler {
+@@ -105,7 +109,9 @@ public class BottomControlsCoordinator implements BackPressHandler {
TabObscuringHandler tabObscuringHandler,
ObservableSupplier overlayPanelVisibilitySupplier,
- ObservableSupplier constraintsSupplier,
+ ObservableSupplier<@Nullable Integer> constraintsSupplier,
- Supplier readAloudRestoringSupplier) {
+ Supplier readAloudRestoringSupplier,
+ TopUiThemeColorProvider topUiThemeColorProvider,
@@ -2795,7 +2820,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mRootFrameLayout = root;
root.setConstraintsSupplier(constraintsSupplier);
PropertyModel model = new PropertyModel(BottomControlsProperties.ALL_KEYS);
-@@ -172,7 +178,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
+@@ -173,7 +179,8 @@ public class BottomControlsCoordinator implements BackPressHandler {
mMediator.setBottomControlsVisible(isVisible);
}
},
@@ -2962,7 +2987,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/ToolbarControlContainer.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarControlContainer.java
-@@ -80,6 +80,10 @@ import java.lang.annotation.RetentionPolicy;
+@@ -76,6 +76,10 @@ import java.lang.annotation.RetentionPolicy;
import java.util.function.BooleanSupplier;
import java.util.function.Supplier;
@@ -2973,7 +2998,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
/** Layout for the browser controls (omnibox, menu, tab strip, etc..). */
@NullMarked
public class ToolbarControlContainer extends OptimizedFrameLayout
-@@ -190,6 +194,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
+@@ -184,6 +188,11 @@ public class ToolbarControlContainer extends OptimizedFrameLayout
if (view != null)
((MarginLayoutParams)view.getLayoutParams()).topMargin = tab_strip_height;
}
@@ -2983,8 +3008,8 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
+ layoutParams.gravity = Gravity.START | Gravity.BOTTOM;
+ }
mToolbarContainer = findViewById(R.id.toolbar_container);
+ mToolbarLayoutHeight = getResources().getDimensionPixelSize(toolbarLayoutHeightResId);
ViewStub toolbarStub = findViewById(R.id.toolbar_stub);
- toolbarStub.setLayoutResource(toolbarLayoutId);
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayCoordinator.java
@@ -3028,7 +3053,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/TopToolbarOverlayProperties.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/TopToolbarOverlayProperties.java
-@@ -56,6 +56,12 @@ public class TopToolbarOverlayProperties {
+@@ -58,6 +58,12 @@ public class TopToolbarOverlayProperties {
public static final WritableLongPropertyKey CAPTURE_RESOURCE_ID = new WritableLongPropertyKey();
@@ -3041,7 +3066,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
public static final PropertyKey[] ALL_KEYS =
new PropertyKey[] {
ANONYMIZE,
-@@ -70,5 +76,5 @@ public class TopToolbarOverlayProperties {
+@@ -72,5 +78,5 @@ public class TopToolbarOverlayProperties {
CONTENT_OFFSET,
TOOLBAR_OFFSET_TAG,
CAPTURE_RESOURCE_ID
@@ -3085,7 +3110,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
-@@ -61,4 +61,12 @@ found in the LICENSE file.
+@@ -66,4 +66,12 @@ found in the LICENSE file.
app:featureName="disable-pull-to-refresh-effect"
app:needRestart="true" />
@@ -3101,7 +3126,7 @@ diff --git a/components/browser_ui/accessibility/android/java/res/xml/accessibil
diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
--- a/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
+++ b/components/browser_ui/accessibility/android/java/src/org/chromium/components/browser_ui/accessibility/AccessibilitySettings.java
-@@ -48,6 +48,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
+@@ -49,6 +49,11 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
private BooleanPreferenceDelegate mForceTabletUIDelegate;
static final String PREF_FORCE_TABLET_UI = "force_tablet_ui";
@@ -3113,7 +3138,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
private PageZoomPreference mPageZoomDefaultZoomPref;
private ChromeSwitchPreference mPageZoomIncludeOSAdjustment;
private ChromeSwitchPreference mPageZoomAlwaysShowPref;
-@@ -62,6 +67,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
+@@ -64,6 +69,10 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate = delegate;
}
@@ -3124,7 +3149,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
-@@ -127,6 +136,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
+@@ -129,6 +138,18 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
forceTabletUiPref.setChecked(mForceTabletUIDelegate.getValue());
forceTabletUiPref.setOnPreferenceChangeListener(this);
@@ -3143,7 +3168,7 @@ diff --git a/components/browser_ui/accessibility/android/java/src/org/chromium/c
Preference captions = findPreference(PREF_CAPTIONS);
captions.setOnPreferenceClickListener(
preference -> {
-@@ -202,6 +223,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
+@@ -217,6 +238,12 @@ public class AccessibilitySettings extends ChromeBaseSettingsFragment
mDelegate.getBrowserContextHandle(), (Integer) newValue);
} else if (PREF_PAGE_ZOOM_ALWAYS_SHOW.equals(preference.getKey())) {
PageZoomUtils.setShouldAlwaysShowZoomMenuItem((Boolean) newValue);
@@ -3203,7 +3228,7 @@ diff --git a/components/viz/common/features.cc b/components/viz/common/features.
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc
--- a/content/browser/renderer_host/render_widget_host_view_android.cc
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc
-@@ -33,6 +33,7 @@
+@@ -34,6 +34,7 @@
#include "base/task/thread_pool.h"
#include "base/threading/scoped_blocking_call.h"
#include "base/trace_event/trace_event.h"
@@ -3211,7 +3236,7 @@ diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/
#include "cc/base/math_util.h"
#include "cc/slim/layer.h"
#include "components/input/cursor_manager.h"
-@@ -939,6 +940,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
+@@ -956,6 +957,8 @@ void RenderWidgetHostViewAndroid::OnRenderFrameMetadataChangedBeforeActivation(
// factor. Thus, |top_content_offset| in CSS pixels is also in DIPs.
float top_content_offset =
metadata.top_controls_height * metadata.top_controls_shown_ratio;
diff --git a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch
index 6c63a9e9..99808903 100644
--- a/build/patches/Move-some-account-settings-back-to-privacy-settings.patch
+++ b/build/patches/Move-some-account-settings-back-to-privacy-settings.patch
@@ -108,7 +108,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
-@@ -436,6 +436,10 @@ For more settings that use data to improve your Chrome experience, go to
diff --git a/build/patches/Multi-Screen-Window-Placement-API-fix.patch b/build/patches/Multi-Screen-Window-Placement-API-fix.patch
index 3d32f403..5aee8319 100644
--- a/build/patches/Multi-Screen-Window-Placement-API-fix.patch
+++ b/build/patches/Multi-Screen-Window-Placement-API-fix.patch
@@ -7,14 +7,91 @@ granted by user
License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
- third_party/blink/renderer/core/frame/screen.cc | 2 +-
- third_party/blink/renderer/core/frame/screen.h | 4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
+ .../permissions/permission_service_impl.cc | 6 +++-
+ .../renderer_host/render_frame_host_impl.cc | 3 +-
+ .../core/frame/cached_permission_status.cc | 2 +-
+ .../core/frame/cached_permission_status.h | 1 +
+ .../blink/renderer/core/frame/screen.cc | 35 +++++++++++++++++--
+ .../blink/renderer/core/frame/screen.h | 16 +++++++++
+ 6 files changed, 58 insertions(+), 5 deletions(-)
+diff --git a/content/browser/permissions/permission_service_impl.cc b/content/browser/permissions/permission_service_impl.cc
+--- a/content/browser/permissions/permission_service_impl.cc
++++ b/content/browser/permissions/permission_service_impl.cc
+@@ -388,8 +388,12 @@ void PermissionServiceImpl::AddPageEmbeddedPermissionObserver(
+ ReceivedBadMessage();
+ return;
+ }
++ bool should_include_device_status =
++ PermissionUtil::IsDevicePermission(permission);
+ PermissionResult current_result =
+- GetCombinedPermissionAndDeviceResult(permission);
++ should_include_device_status
++ ? GetCombinedPermissionAndDeviceResult(permission)
++ : GetPermissionResultForCurrentContext(permission);
+ context_->CreateSubscription(
+ permission, origin_, current_result, PermissionResult(last_known_status),
+ /*should_include_device_status=*/true, std::move(observer));
+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
+@@ -19291,7 +19291,8 @@ RenderFrameHostImpl::GetCachedPermissionStatuses() {
+ std::to_array>(
+ {{PermissionName::VIDEO_CAPTURE, PermissionType::VIDEO_CAPTURE},
+ {PermissionName::AUDIO_CAPTURE, PermissionType::AUDIO_CAPTURE},
+- {PermissionName::GEOLOCATION, PermissionType::GEOLOCATION}});
++ {PermissionName::GEOLOCATION, PermissionType::GEOLOCATION},
++ {PermissionName::WINDOW_MANAGEMENT, PermissionType::WINDOW_MANAGEMENT}});
+
+ base::flat_map permission_map;
+ for (const auto& permission : kPermissions) {
+diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.cc b/third_party/blink/renderer/core/frame/cached_permission_status.cc
+--- a/third_party/blink/renderer/core/frame/cached_permission_status.cc
++++ b/third_party/blink/renderer/core/frame/cached_permission_status.cc
+@@ -36,7 +36,7 @@ CachedPermissionStatus::CachedPermissionStatus(LocalDOMWindow* local_dom_window)
+ permission_service_(local_dom_window),
+ permission_observer_receivers_(this, local_dom_window) {
+ CHECK(local_dom_window);
+- CHECK(RuntimeEnabledFeatures::PermissionElementEnabled(local_dom_window));
++ // CHECK(RuntimeEnabledFeatures::PermissionElementEnabled(local_dom_window)); see https://source.chromium.org/chromium/chromium/src/+/81a9e9b66a03e12cb438eef0834f5e5f7a0506ee
+ }
+
+ void CachedPermissionStatus::Trace(Visitor* visitor) const {
+diff --git a/third_party/blink/renderer/core/frame/cached_permission_status.h b/third_party/blink/renderer/core/frame/cached_permission_status.h
+--- a/third_party/blink/renderer/core/frame/cached_permission_status.h
++++ b/third_party/blink/renderer/core/frame/cached_permission_status.h
+@@ -71,6 +71,7 @@ class CORE_EXPORT CachedPermissionStatus final
+
+ private:
+ friend class HTMLPermissionElement;
++ friend class Screen;
+ friend class DocumentLoader;
+ friend class CachedPermissionStatusTest;
+
diff --git a/third_party/blink/renderer/core/frame/screen.cc b/third_party/blink/renderer/core/frame/screen.cc
--- a/third_party/blink/renderer/core/frame/screen.cc
+++ b/third_party/blink/renderer/core/frame/screen.cc
-@@ -211,7 +211,7 @@ bool Screen::isExtended() const {
+@@ -41,7 +41,18 @@
+ namespace blink {
+
+ Screen::Screen(LocalDOMWindow* window, int64_t display_id)
+- : ExecutionContextClient(window), display_id_(display_id) {}
++ : ExecutionContextClient(window), display_id_(display_id) {
++ if (DomWindow() &&
++ DomWindow()->IsFeatureEnabled(
++ network::mojom::PermissionsPolicyFeature::kWindowManagement)) {
++ auto descriptor = mojom::blink::PermissionDescriptor::New();
++ descriptor->name = mojom::blink::PermissionName::WINDOW_MANAGEMENT;
++ Vector descriptors;
++ descriptors.push_back(std::move(descriptor));
++ CachedPermissionStatus::From(DomWindow())
++ ->RegisterClient(this, std::move(descriptors));
++ }
++}
+
+ // static
+ bool Screen::AreWebExposedScreenPropertiesEqual(
+@@ -157,7 +168,7 @@ bool Screen::isExtended() const {
return false;
}
@@ -23,12 +100,39 @@ diff --git a/third_party/blink/renderer/core/frame/screen.cc b/third_party/blink
}
gfx::Rect Screen::GetRect(bool available) const {
+@@ -184,4 +195,24 @@ const display::ScreenInfo& Screen::GetScreenInfo() const {
+ return kEmptyScreenInfo;
+ }
+
++void Screen::OnPermissionStatusChange(mojom::blink::PermissionName name,
++ mojom::blink::PermissionStatus status) {
++ CHECK(name == mojom::blink::PermissionName::WINDOW_MANAGEMENT);
++ window_management_permission_granted_ =
++ status == mojom::blink::PermissionStatus::GRANTED;
++}
++
++void Screen::OnPermissionStatusInitialized(
++ CachedPermissionStatus::PermissionStatusMap map) {
++ // Window management permission is granted if the map we're given has entries,
++ // and they're all GRANTED:
++ window_management_permission_granted_ =
++ map.size() > 0U && std::ranges::all_of(map, [](const auto& status) {
++ return status.value == mojom::blink::PermissionStatus::GRANTED;
++ });
++
++ // If the permission is granted, it should be the only item in the map:
++ CHECK(!window_management_permission_granted_ || map.size() == 1U);
++}
++
+ } // namespace blink
diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/renderer/core/frame/screen.h
--- a/third_party/blink/renderer/core/frame/screen.h
+++ b/third_party/blink/renderer/core/frame/screen.h
-@@ -34,10 +34,14 @@
+@@ -32,11 +32,16 @@
+ #include "third_party/blink/renderer/core/core_export.h"
+ #include "third_party/blink/renderer/core/dom/events/event_target.h"
#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
- #include "third_party/blink/renderer/core/frame/cached_permission_status.h"
++#include "third_party/blink/renderer/core/frame/cached_permission_status.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
+#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
+#include "third_party/blink/renderer/platform/mojo/heap_mojo_remote.h"
@@ -41,4 +145,31 @@ diff --git a/third_party/blink/renderer/core/frame/screen.h b/third_party/blink/
namespace display {
struct ScreenInfo;
}
+@@ -47,6 +52,7 @@ class LocalDOMWindow;
+
+ class CORE_EXPORT Screen : public EventTarget,
+ public ExecutionContextClient,
++ public CachedPermissionStatus::Client,
+ public Supplementable {
+ DEFINE_WRAPPERTYPEINFO();
+
+@@ -89,8 +95,18 @@ class CORE_EXPORT Screen : public EventTarget,
+ gfx::Rect GetRect(bool available) const;
+ const display::ScreenInfo& GetScreenInfo() const;
+
++ // CachedPermissionStatus::Client overrides:
++ void OnPermissionStatusChange(mojom::blink::PermissionName,
++ mojom::blink::PermissionStatus) override;
++
++ void OnPermissionStatusInitialized(
++ CachedPermissionStatus::PermissionStatusMap) override;
++
+ // The internal id of the underlying display, to support multi-screen devices.
+ int64_t display_id_;
++
++ private:
++ bool window_management_permission_granted_ = false;
+ };
+
+ } // namespace blink
--
diff --git a/build/patches/Multiple-fingerprinting-mitigations.patch b/build/patches/Multiple-fingerprinting-mitigations.patch
index dc63384a..5ae14eab 100644
--- a/build/patches/Multiple-fingerprinting-mitigations.patch
+++ b/build/patches/Multiple-fingerprinting-mitigations.patch
@@ -55,7 +55,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -2557,6 +2557,7 @@ static_library("browser") {
+@@ -2545,6 +2545,7 @@ static_library("browser") {
"//services/device/public/cpp/bluetooth",
"//services/device/public/cpp/geolocation",
"//services/device/public/cpp/usb",
@@ -78,7 +78,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn
--- a/content/browser/BUILD.gn
+++ b/content/browser/BUILD.gn
-@@ -301,6 +301,7 @@ source_set("browser") {
+@@ -298,6 +298,7 @@ source_set("browser") {
"//third_party/re2",
"//third_party/snappy",
"//third_party/sqlite",
@@ -97,7 +97,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
#if BUILDFLAG(IS_ANDROID)
#include "base/android/child_process_binding_types.h"
#include "content/browser/font_unique_name_lookup/font_unique_name_lookup_service.h"
-@@ -3551,6 +3552,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3658,6 +3659,8 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kDisableBestEffortTasks,
switches::kDisableBreakpad,
switches::kDisableFileSystem,
@@ -109,7 +109,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
--- a/content/child/BUILD.gn
+++ b/content/child/BUILD.gn
-@@ -110,6 +110,7 @@ target(link_target_type, "child") {
+@@ -109,6 +109,7 @@ target(link_target_type, "child") {
"//third_party/blink/public/common:buildflags",
"//third_party/blink/public/strings",
"//third_party/ced",
@@ -120,7 +120,7 @@ diff --git a/content/child/BUILD.gn b/content/child/BUILD.gn
diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.cc
--- a/content/child/runtime_features.cc
+++ b/content/child/runtime_features.cc
-@@ -49,6 +49,8 @@
+@@ -50,6 +50,8 @@
#include "ui/native_theme/features/native_theme_features.h"
#include "ui/native_theme/native_theme.h"
@@ -129,7 +129,7 @@ diff --git a/content/child/runtime_features.cc b/content/child/runtime_features.
#if BUILDFLAG(IS_ANDROID)
#include "base/android/android_info.h"
#endif
-@@ -516,6 +518,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
+@@ -518,6 +520,10 @@ void SetRuntimeFeaturesFromCommandLine(const base::CommandLine& command_line) {
// as a last resort.
void SetCustomizedRuntimeFeaturesFromCombinedArgs(
const base::CommandLine& command_line) {
@@ -180,7 +180,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
-@@ -1087,6 +1088,16 @@ Document::Document(const DocumentInit& initializer,
+@@ -1089,6 +1090,16 @@ Document::Document(const DocumentInit& initializer,
TRACE_EVENT_WITH_FLOW0("blink", "Document::Document", TRACE_ID_LOCAL(this),
TRACE_EVENT_FLAG_FLOW_OUT);
DCHECK(agent_);
@@ -197,7 +197,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink
if (base::FeatureList::IsEnabled(features::kDelayAsyncScriptExecution) &&
features::kDelayAsyncScriptExecutionDelayByDefaultParam.Get()) {
script_runner_delayer_->Activate();
-@@ -2814,6 +2825,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
+@@ -2816,6 +2827,14 @@ void Document::UpdateStyleAndLayoutTreeForThisDocument() {
#endif
}
@@ -226,7 +226,7 @@ diff --git a/third_party/blink/renderer/core/dom/document.h b/third_party/blink/
V8VisibilityState visibilityState() const;
String visibilityStateAsString() const;
bool IsPageVisible() const;
-@@ -2795,6 +2799,9 @@ class CORE_EXPORT Document : public ContainerNode,
+@@ -2810,6 +2814,9 @@ class CORE_EXPORT Document : public ContainerNode,
base::ElapsedTimer start_time_;
@@ -260,9 +260,9 @@ diff --git a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creat
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.cc
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.cc
-@@ -106,6 +106,24 @@ const ShapeResult* ShapeWord(const TextRun& word_run, const Font& font) {
+@@ -89,6 +89,24 @@ TextMetrics::TextMetrics(const Font* font,
+ Update(font, direction, baseline, align, text, text_painter);
}
- } // namespace
+void TextMetrics::Shuffle(const double factor) {
+ // x-direction
@@ -288,7 +288,7 @@ diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.cc b/third
diff --git a/third_party/blink/renderer/core/html/canvas/text_metrics.h b/third_party/blink/renderer/core/html/canvas/text_metrics.h
--- a/third_party/blink/renderer/core/html/canvas/text_metrics.h
+++ b/third_party/blink/renderer/core/html/canvas/text_metrics.h
-@@ -111,6 +111,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
+@@ -109,6 +109,8 @@ class CORE_EXPORT TextMetrics final : public ScriptWrappable {
float x_position_;
};
@@ -377,7 +377,7 @@ diff --git a/third_party/blink/renderer/core/svg/svg_text_content_element.cc b/t
diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
--- a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
+++ b/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_context_2d.cc
-@@ -104,6 +104,10 @@
+@@ -103,6 +103,10 @@
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"
#include "ui/gfx/geometry/skia_conversions.h"
@@ -388,7 +388,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
// Including "base/time/time.h" triggers a bug in IWYU.
// https://github.com/include-what-you-use/include-what-you-use/issues/1122
// IWYU pragma: no_include "base/numerics/clamped_math.h"
-@@ -555,6 +559,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
+@@ -554,6 +558,10 @@ ImageData* BaseRenderingContext2D::getImageDataInternal(
snapshot->PaintImageForCurrentFrame().GetSkImageInfo().bounds();
DCHECK(!bounds.intersect(SkIRect::MakeXYWH(sx, sy, sw, sh)));
}
@@ -399,18 +399,14 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
}
return image_data;
-@@ -1252,13 +1260,27 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) {
+@@ -1233,9 +1241,23 @@ TextMetrics* BaseRenderingContext2D::measureText(const String& text) {
TextDirection direction =
ToTextDirection(state.GetDirection(), host, computed_style);
- return MakeGarbageCollected(
+ auto* text_metrics = MakeGarbageCollected(
font, direction, state.GetTextBaseline().AsEnum(),
- state.GetTextAlign().AsEnum(), text,
- RuntimeEnabledFeatures::CanvasTextNgEnabled(
- host->GetTopExecutionContext())
- ? &host->GetPlainTextPainter()
- : nullptr);
+ state.GetTextAlign().AsEnum(), text, host->GetPlainTextPainter());
+ // Scale text metrics if enabled
+ if (RuntimeEnabledFeatures::FingerprintingCanvasMeasureTextNoiseEnabled()) {
+ OffscreenCanvas* offscreen_canvas = HostAsOffscreenCanvas();
@@ -431,7 +427,7 @@ diff --git a/third_party/blink/renderer/modules/canvas/canvas2d/base_rendering_c
diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/renderer/platform/BUILD.gn
--- a/third_party/blink/renderer/platform/BUILD.gn
+++ b/third_party/blink/renderer/platform/BUILD.gn
-@@ -1757,7 +1757,9 @@ component("platform") {
+@@ -1753,7 +1753,9 @@ component("platform") {
"//third_party/blink/renderer:non_test_config",
]
@@ -442,7 +438,7 @@ diff --git a/third_party/blink/renderer/platform/BUILD.gn b/third_party/blink/re
allow_circular_includes_from = [
"//third_party/blink/renderer/platform/blob",
-@@ -1841,6 +1843,7 @@ component("platform") {
+@@ -1837,6 +1839,7 @@ component("platform") {
"//third_party/blink/public/strings",
"//third_party/blink/renderer/platform/wtf",
"//third_party/ced",
@@ -673,7 +669,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc
diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
--- a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
+++ b/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
-@@ -39,6 +39,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
+@@ -38,6 +38,8 @@ class PLATFORM_EXPORT StaticBitmapImage : public Image {
StaticBitmapImage(ImageOrientation orientation) : orientation_(orientation) {}
@@ -685,7 +681,7 @@ diff --git a/third_party/blink/renderer/platform/graphics/static_bitmap_image.h
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -3412,6 +3412,12 @@
+@@ -3455,6 +3455,12 @@
status: {"Mac": "test", "default": "stable"},
base_feature: "none",
},
@@ -705,10 +701,10 @@ diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include
@return readable unsigned 8-bit pointer to pixel at (x, y)
*/
const uint8_t* addr8(int x, int y) const {
-- SkASSERT((unsigned)x < (unsigned)fInfo.width());
-- SkASSERT((unsigned)y < (unsigned)fInfo.height());
-+ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width());
-+ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height());
+- SkASSERTF(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
+- SkASSERTF(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
++ SkASSERTF_RELEASE(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
++ SkASSERTF_RELEASE(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
return (const uint8_t*)((const char*)this->addr8() + (size_t)y * fRowBytes + (x << 0));
}
@@ -716,10 +712,10 @@ diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include
@return readable unsigned 16-bit pointer to pixel at (x, y)
*/
const uint16_t* addr16(int x, int y) const {
-- SkASSERT((unsigned)x < (unsigned)fInfo.width());
-- SkASSERT((unsigned)y < (unsigned)fInfo.height());
-+ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width());
-+ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height());
+- SkASSERTF(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
+- SkASSERTF(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
++ SkASSERTF_RELEASE(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
++ SkASSERTF_RELEASE(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
return (const uint16_t*)((const char*)this->addr16() + (size_t)y * fRowBytes + (x << 1));
}
@@ -727,10 +723,10 @@ diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include
@return readable unsigned 32-bit pointer to pixel at (x, y)
*/
const uint32_t* addr32(int x, int y) const {
-- SkASSERT((unsigned)x < (unsigned)fInfo.width());
-- SkASSERT((unsigned)y < (unsigned)fInfo.height());
-+ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width());
-+ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height());
+- SkASSERTF(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
+- SkASSERTF(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
++ SkASSERTF_RELEASE(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
++ SkASSERTF_RELEASE(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
return (const uint32_t*)((const char*)this->addr32() + (size_t)y * fRowBytes + (x << 2));
}
@@ -738,10 +734,10 @@ diff --git a/third_party/skia/include/core/SkPixmap.h b/third_party/skia/include
@return readable unsigned 64-bit pointer to pixel at (x, y)
*/
const uint64_t* addr64(int x, int y) const {
-- SkASSERT((unsigned)x < (unsigned)fInfo.width());
-- SkASSERT((unsigned)y < (unsigned)fInfo.height());
-+ SkASSERT_RELEASE((unsigned)x < (unsigned)fInfo.width());
-+ SkASSERT_RELEASE((unsigned)y < (unsigned)fInfo.height());
+- SkASSERTF(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
+- SkASSERTF(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
++ SkASSERTF_RELEASE(x >= 0 && x < this->width(), "x=%d; width=%d\n", x, fInfo.width());
++ SkASSERTF_RELEASE(y >= 0 && y < this->height(), "y=%d; height=%d\n", y, fInfo.height());
return (const uint64_t*)((const char*)this->addr64() + (size_t)y * fRowBytes + (x << 3));
}
diff --git a/build/patches/Never-treat-Proguard-warnings-as-errors.patch b/build/patches/Never-treat-Proguard-warnings-as-errors.patch
index 2df536fc..3fd1bd95 100644
--- a/build/patches/Never-treat-Proguard-warnings-as-errors.patch
+++ b/build/patches/Never-treat-Proguard-warnings-as-errors.patch
@@ -9,7 +9,7 @@ Subject: Never treat Proguard warnings as errors
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
-@@ -1288,9 +1288,9 @@ if (enable_java_templates) {
+@@ -1302,9 +1302,9 @@ if (enable_java_templates) {
_source_file_template,
"--proguard-configs=@FileArg($_rebased_build_config:proguard_all_configs)",
]
diff --git a/build/patches/OpenSearch-miscellaneous.patch b/build/patches/OpenSearch-miscellaneous.patch
index b4092a31..ed1f8630 100644
--- a/build/patches/OpenSearch-miscellaneous.patch
+++ b/build/patches/OpenSearch-miscellaneous.patch
@@ -76,7 +76,7 @@ diff --git a/chrome/browser/ui/search_engines/search_engine_tab_helper.cc b/chro
+ // elements and update TemplateURL to look for keywords using the path.
// See http://b/issue?id=863583.
- if (!(url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme)) ||
-- (url.path().length() > 1)) {
+- (url.GetPath().length() > 1)) {
+ if (!(url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme))) {
+ LOG(INFO) << "OpenSearch: invalid scheme for entry " << entry->GetURL();
return std::u16string();
@@ -176,7 +176,7 @@ diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/c
#include "base/metrics/histogram_macros.h"
#include "base/no_destructor.h"
#include "base/strings/string_number_conversions.h"
-@@ -263,6 +264,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() {
+@@ -276,6 +277,7 @@ void ChromeRenderFrameObserver::DidFinishLoad() {
GURL osdd_url = frame->GetDocument().OpenSearchDescriptionURL();
if (!osdd_url.is_empty()) {
@@ -321,7 +321,7 @@ diff --git a/components/search_engines/template_url_service.h b/components/searc
// regardless of |url| if the default search provider is managed by policy or
// controlled by an extension.
bool CanMakeDefault(const TemplateURL* url) const;
-@@ -778,9 +781,6 @@ class TemplateURLService final : public WebDataServiceConsumer,
+@@ -781,9 +784,6 @@ class TemplateURLService final : public WebDataServiceConsumer,
// SetKeywordSearchTermsForURL is invoked.
void UpdateKeywordSearchTermsForURL(const URLVisitedDetails& details);
diff --git a/build/patches/Override-Navigator-Language.patch b/build/patches/Override-Navigator-Language.patch
index c8e7bcf6..30668761 100644
--- a/build/patches/Override-Navigator-Language.patch
+++ b/build/patches/Override-Navigator-Language.patch
@@ -69,7 +69,7 @@ diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content
#include "components/metrics/single_sample_metrics.h"
#include "components/services/storage/privileged/mojom/indexed_db_control.mojom.h"
#include "components/services/storage/public/cpp/buckets/bucket_id.h"
-@@ -3461,8 +3462,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
+@@ -3562,8 +3563,11 @@ void RenderProcessHostImpl::AppendRendererCommandLine(
PropagateBrowserCommandLineToRenderer(browser_command_line, command_line);
// Pass on the browser locale.
diff --git a/build/patches/Partition-Blink-memory-cache.patch b/build/patches/Partition-Blink-memory-cache.patch
index 776fb62c..9d134474 100644
--- a/build/patches/Partition-Blink-memory-cache.patch
+++ b/build/patches/Partition-Blink-memory-cache.patch
@@ -41,7 +41,7 @@ diff --git a/third_party/blink/renderer/core/html/parser/html_srcset_parser.cc b
diff --git a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
--- a/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_network_agent.cc
-@@ -2676,7 +2676,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document,
+@@ -2747,7 +2747,7 @@ bool InspectorNetworkAgent::FetchResourceContent(Document* document,
if (!cached_resource) {
cached_resource = MemoryCache::Get()->ResourceForURL(
url, document->Fetcher()->GetCacheIdentifier(
@@ -78,7 +78,7 @@ diff --git a/third_party/blink/renderer/core/loader/image_loader.cc b/third_part
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
--- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc
-@@ -295,7 +295,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map,
+@@ -343,7 +343,7 @@ void MemoryCache::RemoveInternal(ResourceMap* resource_map,
}
bool MemoryCache::Contains(const Resource* resource) const {
@@ -87,7 +87,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
return false;
const auto resource_maps_it =
-@@ -311,13 +311,9 @@ bool MemoryCache::Contains(const Resource* resource) const {
+@@ -359,13 +359,9 @@ bool MemoryCache::Contains(const Resource* resource) const {
return resource == resources_it->value->GetResource();
}
@@ -105,7 +105,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.cc b/
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
--- a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
+++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache.h
-@@ -122,10 +122,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected,
+@@ -124,10 +124,7 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected,
// Do not use this method outside test purposes.
// A resourfe URL is not enough to do a correct MemoryCache lookup, and
// relying on the method would likely yield wrong results.
@@ -116,8 +116,8 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t
void Add(Resource*);
void Remove(Resource*);
-@@ -168,6 +165,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected,
- base::MemoryPressureListener::MemoryPressureLevel) override;
+@@ -173,6 +170,8 @@ class PLATFORM_EXPORT MemoryCache final : public GarbageCollected,
+ void OnUpdateMemoryLimit() override;
private:
+ HeapVector> ResourcesForURL(const KURL&) const;
@@ -128,7 +128,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache.h b/t
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
-@@ -1025,7 +1025,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData(
+@@ -1032,7 +1032,8 @@ Resource* ResourceFetcher::CreateResourceForStaticData(
const String cache_identifier =
GetCacheIdentifier(factory.GetType(), url,
@@ -138,7 +138,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
// Most off-main-thread resource fetches use Resource::kRaw and don't reach
// this point, but off-main-thread module fetches might.
-@@ -1459,7 +1460,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params,
+@@ -1466,7 +1467,8 @@ Resource* ResourceFetcher::RequestResource(FetchParameters& params,
} else if (IsMainThread()) {
const String cache_identifier = GetCacheIdentifier(
resource_type, params.GetResourceRequest().Url(),
@@ -148,7 +148,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
resource =
MemoryCache::Get()->ResourceForURL(params.Url(), cache_identifier);
-@@ -1783,7 +1785,8 @@ Resource* ResourceFetcher::CreateResourceForLoading(
+@@ -1790,7 +1792,8 @@ Resource* ResourceFetcher::CreateResourceForLoading(
const ResourceFactory& factory) {
const String cache_identifier =
GetCacheIdentifier(factory.GetType(), params.GetResourceRequest().Url(),
@@ -158,7 +158,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
DCHECK(!IsMainThread() || params.IsStaleRevalidation() ||
!MemoryCache::Get()->ResourceForURL(params.GetResourceRequest().Url(),
cache_identifier));
-@@ -2923,11 +2926,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() {
+@@ -2930,11 +2933,47 @@ void ResourceFetcher::UpdateImagePrioritiesAndSpeculativeDecodes() {
}
String ResourceFetcher::GetCacheIdentifier(const KURL& url,
@@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
}
// Requests that can be satisfied via `archive_` (i.e. MHTML) or
-@@ -2942,12 +2981,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url,
+@@ -2949,12 +2988,13 @@ String ResourceFetcher::GetCacheIdentifier(const KURL& url,
return bundle->GetCacheIdentifier();
}
@@ -227,7 +227,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
// For SVG resource documents, use the SVG-specific cache identifier when the
// feature is enabled and a cache identifier is available from the fetch
// context.
-@@ -2960,7 +3000,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type,
+@@ -2967,7 +3007,7 @@ String ResourceFetcher::GetCacheIdentifier(ResourceType type,
}
// Fallback to the standard cache identifier logic.
@@ -261,7 +261,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
-@@ -4892,7 +4892,7 @@
+@@ -4902,7 +4902,7 @@
},
{
name: "SvgPartitionSVGDocumentResourcesInMemoryCache",
diff --git a/build/patches/Partition-HSTS-cache-by-NAK.patch b/build/patches/Partition-HSTS-cache-by-NAK.patch
index 4e15b21a..69f89c2b 100644
--- a/build/patches/Partition-HSTS-cache-by-NAK.patch
+++ b/build/patches/Partition-HSTS-cache-by-NAK.patch
@@ -32,12 +32,12 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/ssl/https_upgrades_interceptor.cc b/chrome/browser/ssl/https_upgrades_interceptor.cc
--- a/chrome/browser/ssl/https_upgrades_interceptor.cc
+++ b/chrome/browser/ssl/https_upgrades_interceptor.cc
-@@ -414,6 +414,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
+@@ -415,6 +415,7 @@ void HttpsUpgradesInterceptor::MaybeCreateLoader(
CHECK(tentative_resource_request.trusted_params);
network_context->IsHSTSActiveForHost(
+ tentative_resource_request.trusted_params->isolation_info.network_anonymization_key(),
- tentative_resource_request.url.host(),
+ tentative_resource_request.url.GetHost(),
tentative_resource_request.trusted_params->isolation_info
.IsOutermostMainFrameRequest(),
diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
@@ -716,12 +716,12 @@ diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
}
void SpdySession::EnqueueStreamWrite(
-@@ -3101,7 +3103,8 @@ void SpdySession::OnAltSvc(
+@@ -3102,7 +3104,8 @@ void SpdySession::OnAltSvc(
return;
}
if (!CanPool(transport_security_state_, ssl_info, *ssl_config_service_,
-- host_port_pair().host(), gurl.host_piece())) {
-+ host_port_pair().host(), gurl.host_piece(),
+- host_port_pair().host(), gurl.host())) {
++ host_port_pair().host(), gurl.host(),
+ spdy_session_key_.network_anonymization_key())) {
return;
}
@@ -771,15 +771,15 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
request->context()->transport_security_state()) {
upgrade_decision = hsts->GetSSLUpgradeDecision(
+ request->isolation_info().network_anonymization_key(),
- url.host(),
+ url.GetHost(),
/*is_top_level_nav=*/
request->isolation_info().IsOutermostMainFrameRequest(),
@@ -1278,7 +1279,7 @@ void URLRequestHttpJob::ProcessStrictTransportSecurityHeader() {
std::optional value;
if ((value =
headers->EnumerateHeader(nullptr, "Strict-Transport-Security"))) {
-- security_state->AddHSTSHeader(request_info_.url.host(), *value);
-+ security_state->AddHSTSHeader(request_info_.network_anonymization_key, request_info_.url.host(), *value);
+- security_state->AddHSTSHeader(request_info_.url.GetHost(), *value);
++ security_state->AddHSTSHeader(request_info_.network_anonymization_key, request_info_.url.GetHost(), *value);
}
}
@@ -787,15 +787,15 @@ diff --git a/net/url_request/url_request_http_job.cc b/net/url_request/url_reque
TransportSecurityState* state = context->transport_security_state();
NotifySSLCertificateError(
result, transaction_->GetResponseInfo()->ssl_info,
-- state->ShouldSSLErrorsBeFatal(request_info_.url.host()) &&
-+ state->ShouldSSLErrorsBeFatal(request_->isolation_info().network_anonymization_key(), request_info_.url.host()) &&
+- state->ShouldSSLErrorsBeFatal(request_info_.url.GetHost()) &&
++ state->ShouldSSLErrorsBeFatal(request_->isolation_info().network_anonymization_key(), request_info_.url.GetHost()) &&
result != ERR_CERT_KNOWN_INTERCEPTION_BLOCKED);
} else if (result == ERR_SSL_CLIENT_AUTH_CERT_NEEDED) {
NotifyCertificateRequested(
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
-@@ -2089,6 +2089,7 @@ void NetworkContext::CreateHostResolver(
+@@ -2095,6 +2095,7 @@ void NetworkContext::CreateHostResolver(
void NetworkContext::VerifyCertInternal(
const scoped_refptr& certificate,
const net::HostPortPair& host_port,
@@ -803,7 +803,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
const std::string& ocsp_result,
const std::string& sct_list,
CTVerificationMode ct_verification_mode,
-@@ -2100,6 +2101,7 @@ void NetworkContext::VerifyCertInternal(
+@@ -2106,6 +2107,7 @@ void NetworkContext::VerifyCertInternal(
pending_cert_verify->result = std::make_unique();
pending_cert_verify->certificate = certificate;
pending_cert_verify->host_port = host_port;
@@ -811,7 +811,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
net::CertVerifier* cert_verifier =
g_cert_verifier_for_testing ? g_cert_verifier_for_testing
: url_request_context_->cert_verifier();
-@@ -2130,20 +2132,22 @@ void NetworkContext::VerifyCertInternal(
+@@ -2136,20 +2138,22 @@ void NetworkContext::VerifyCertInternal(
void NetworkContext::VerifyCert(
const scoped_refptr& certificate,
const net::HostPortPair& host_port,
@@ -836,7 +836,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
CTVerificationMode::kSignedExchange, std::move(callback));
}
-@@ -2184,17 +2188,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
+@@ -2190,17 +2194,19 @@ void NetworkContext::SetCorsOriginAccessListsForOrigin(
std::move(callback).Run();
}
@@ -859,7 +859,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
bool is_top_level_nav,
IsHSTSActiveForHostCallback callback) {
net::TransportSecurityState* security_state =
-@@ -2206,10 +2212,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
+@@ -2212,10 +2218,10 @@ void NetworkContext::IsHSTSActiveForHost(const std::string& host,
}
std::move(callback).Run(
@@ -872,7 +872,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
GetHSTSStateCallback callback) {
base::Value::Dict result;
-@@ -2247,10 +2253,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
+@@ -2253,10 +2259,10 @@ void NetworkContext::GetHSTSState(const std::string& domain,
net::TransportSecurityState::STSState dynamic_sts_state;
net::TransportSecurityState::PKPState dynamic_pkp_state;
bool found_sts_dynamic = transport_security_state->GetDynamicSTSState(
@@ -885,7 +885,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
if (found_sts_dynamic) {
result.Set("dynamic_upgrade_mode",
static_cast(dynamic_sts_state.upgrade_mode));
-@@ -2288,6 +2294,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
+@@ -2294,6 +2300,7 @@ void NetworkContext::GetHSTSState(const std::string& domain,
}
void NetworkContext::DeleteDynamicDataForHost(
@@ -893,7 +893,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
const std::string& host,
DeleteDynamicDataForHostCallback callback) {
net::TransportSecurityState* transport_security_state =
-@@ -2298,7 +2305,7 @@ void NetworkContext::DeleteDynamicDataForHost(
+@@ -2304,7 +2311,7 @@ void NetworkContext::DeleteDynamicDataForHost(
}
std::move(callback).Run(
@@ -902,7 +902,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
}
void NetworkContext::EnableStaticKeyPinningForTesting(
-@@ -2353,7 +2360,7 @@ void NetworkContext::PreconnectSockets(
+@@ -2359,7 +2366,7 @@ void NetworkContext::PreconnectSockets(
DCHECK(!require_network_anonymization_key_ ||
!network_anonymization_key.IsEmpty());
@@ -911,7 +911,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
// |PreconnectSockets| may receive arguments from the renderer, which is not
// guaranteed to validate them.
-@@ -3197,7 +3204,9 @@ void NetworkContext::OnConnectionError() {
+@@ -3217,7 +3224,9 @@ void NetworkContext::OnConnectionError() {
}
}
@@ -922,15 +922,15 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
// TODO(lilyhoughton) This needs to be gotten rid of once explicit
// construction with a URLRequestContext is no longer supported.
-@@ -3223,6 +3232,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) {
+@@ -3243,6 +3252,7 @@ GURL NetworkContext::GetHSTSRedirectForPreconnect(const GURL& original_url) {
// top-level navigation so we need to disallow HSTS upgrades for every
// preconnect.
if (!url_request_context_->transport_security_state()->ShouldUpgradeToSSL(
+ network_anonymization_key,
- original_url.host(), /*is_top_level_nav=*/false)) {
+ original_url.GetHost(), /*is_top_level_nav=*/false)) {
RecordHSTSPreconnectUpgradeReason(
HSTSRedirectUpgradeReason::kNotUpgradedNoHSTSPin);
-@@ -3276,7 +3286,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) {
+@@ -3304,7 +3314,8 @@ void NetworkContext::OnVerifyCertComplete(uint64_t cert_verify_id, int result) {
url_request_context_->transport_security_state()->CheckPublicKeyPins(
pending_cert_verify->host_port.host(),
pending_cert_verify->result->is_issued_by_known_root,
@@ -943,7 +943,7 @@ diff --git a/services/network/network_context.cc b/services/network/network_cont
diff --git a/services/network/network_context.h b/services/network/network_context.h
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
-@@ -430,12 +430,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -432,12 +432,14 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
mojo::PendingReceiver receiver) override;
void VerifyCert(const scoped_refptr& certificate,
const net::HostPortPair& host_port,
@@ -958,7 +958,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
const std::string& ocsp_result,
const std::string& sct_list,
VerifyCertCallback callback) override;
-@@ -444,16 +446,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -446,16 +448,18 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
const std::string& hostname,
const scoped_refptr& tls_certificate,
Verify2QwacCertBindingCallback callback) override;
@@ -980,7 +980,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
const std::string& host,
DeleteDynamicDataForHostCallback callback) override;
void SetCorsOriginAccessListsForOrigin(
-@@ -811,7 +815,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -817,7 +821,8 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
mojo::PendingRemote cookie_observer,
net::FirstPartySetMetadata first_party_set_metadata);
@@ -990,7 +990,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
#if BUILDFLAG(IS_P2P_ENABLED)
void DestroySocketManager(P2PSocketManager* socket_manager);
-@@ -823,6 +828,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -829,6 +834,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
void VerifyCertInternal(
const scoped_refptr& certificate,
const net::HostPortPair& host_port,
@@ -998,7 +998,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
const std::string& ocsp_result,
const std::string& sct_list,
CTVerificationMode ct_verification_mode,
-@@ -1008,6 +1014,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
+@@ -1014,6 +1020,7 @@ class COMPONENT_EXPORT(NETWORK_SERVICE) NetworkContext
VerifyCertCallback callback;
scoped_refptr certificate;
net::HostPortPair host_port;
@@ -1009,7 +1009,7 @@ diff --git a/services/network/network_context.h b/services/network/network_conte
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
-@@ -1631,6 +1631,7 @@ interface NetworkContext {
+@@ -1635,6 +1635,7 @@ interface NetworkContext {
// Checks the given certificate against the CertVerifier and CTVerifier.
VerifyCert(X509Certificate certificate,
HostPortPair host_port,
@@ -1017,7 +1017,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
string ocsp_response,
string sct_list)
=> (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed);
-@@ -1639,6 +1640,7 @@ interface NetworkContext {
+@@ -1643,6 +1644,7 @@ interface NetworkContext {
// This implementation is specific for use by Signed Exchange.
VerifyCertForSignedExchange(X509Certificate certificate,
HostPortPair host_port,
@@ -1025,7 +1025,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
string ocsp_response,
string sct_list)
=> (int32 error_code, CertVerifyResult cv_result, bool pkp_bypassed);
-@@ -1652,18 +1654,18 @@ interface NetworkContext {
+@@ -1656,18 +1658,18 @@ interface NetworkContext {
// Adds explicitly-specified data as if it was processed from an
// HSTS header. Used by tests and implementation of chrome://net-internals.
@@ -1047,7 +1047,7 @@ diff --git a/services/network/public/mojom/network_context.mojom b/services/netw
// Sets allowed and blocked origins respectively for the URLLoaderFactory
// consumers to access beyond the same-origin policy. The list is managed per
-@@ -1682,7 +1684,7 @@ interface NetworkContext {
+@@ -1686,7 +1688,7 @@ interface NetworkContext {
// Deletes any dynamic data stored for |host| from the transport
// security state. Returns true iff an entry was deleted.
// See net::TransportSecurityState::DeleteDynamicDataForHost for more detail.
diff --git a/build/patches/Partition-blobs-by-top-frame-URL.patch b/build/patches/Partition-blobs-by-top-frame-URL.patch
index dd2f7879..984fdb01 100644
--- a/build/patches/Partition-blobs-by-top-frame-URL.patch
+++ b/build/patches/Partition-blobs-by-top-frame-URL.patch
@@ -23,7 +23,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
--- a/content/browser/renderer_host/render_frame_host_impl.cc
+++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -13000,6 +13000,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL(
+@@ -13150,6 +13150,8 @@ void RenderFrameHostImpl::ReportBlockingCrossPartitionBlobURL(
}
bool RenderFrameHostImpl::IsFullCookieAccessAllowed() {
diff --git a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch
index 08ce9b77..98d0e7b1 100644
--- a/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch
+++ b/build/patches/Partitioning-all-cookies-by-top-frame-domain.patch
@@ -11,37 +11,37 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
---
.../browser/chrome_content_browser_client.cc | 2 +-
.../extensions/api/cookies/cookies_helpers.cc | 4 ++
- .../net/profile_network_context_service.cc | 12 ++--
+ .../net/profile_network_context_service.cc | 12 +++---
.../privacy_sandbox_settings_delegate.cc | 1 +
- ...storage_access_grant_permission_context.cc | 13 +++++
+ ...storage_access_grant_permission_context.cc | 13 ++++++
.../experiment/experiment_manager_impl.cc | 1 +
.../strings/android/site_settings.grdp | 4 +-
.../core/browser/cookie_settings.cc | 4 +-
- .../core/common/cookie_settings_base.cc | 57 +------------------
+ .../core/common/cookie_settings_base.cc | 42 +------------------
...ioning-all-cookies-by-top-frame-domain.inc | 4 ++
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
- ...ioning-all-cookies-by-top-frame-domain.inc | 15 +++++
+ ...ioning-all-cookies-by-top-frame-domain.inc | 15 +++++++
...ioning-all-cookies-by-top-frame-domain.inc | 1 +
- net/cookies/canonical_cookie.cc | 5 --
+ net/cookies/canonical_cookie.cc | 5 ---
net/cookies/cookie_deletion_info.cc | 3 +-
net/cookies/cookie_monster.cc | 1 +
net/cookies/cookie_util.cc | 1 +
net/cookies/cookie_util.h | 4 +-
- net/cookies/parsed_cookie.h | 6 +-
- .../sqlite/sqlite_persistent_cookie_store.cc | 8 +++
+ net/cookies/parsed_cookie.h | 6 ++-
+ .../sqlite/sqlite_persistent_cookie_store.cc | 8 ++++
net/url_request/url_request.cc | 3 +-
- net/url_request/url_request_http_job.cc | 11 ++--
- services/network/cookie_settings.cc | 6 +-
+ net/url_request/url_request_http_job.cc | 11 ++---
+ services/network/cookie_settings.cc | 6 +--
services/network/cors/cors_url_loader.cc | 1 +
- services/network/restricted_cookie_manager.cc | 6 ++
+ services/network/restricted_cookie_manager.cc | 6 +++
services/network/url_loader.cc | 1 +
.../modules/cookie_store/cookie_init.idl | 2 +-
- .../modules/cookie_store/cookie_store.cc | 3 +
+ .../modules/cookie_store/cookie_store.cc | 3 ++
.../cookie_store_delete_options.idl | 2 +-
ui/webui/webui_allowlist.cc | 1 +
url/url_features.cc | 1 +
- 32 files changed, 94 insertions(+), 91 deletions(-)
+ 32 files changed, 94 insertions(+), 76 deletions(-)
create mode 100644 cromite_flags/components/content_settings/core/common/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/components/permissions/features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
create mode 100644 cromite_flags/content/public/common/content_features_cc/Partitioning-all-cookies-by-top-frame-domain.inc
@@ -51,7 +51,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -3771,7 +3771,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
+@@ -3664,7 +3664,7 @@ bool ChromeContentBrowserClient::IsFullCookieAccessAllowed(
scoped_refptr cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
if (!cookie_settings) {
@@ -63,7 +63,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/browser/extensions/api/cookies/cookies_helpers.cc
--- a/chrome/browser/extensions/api/cookies/cookies_helpers.cc
+++ b/chrome/browser/extensions/api/cookies/cookies_helpers.cc
-@@ -365,6 +365,10 @@ ToNetCookiePartitionKey(
+@@ -363,6 +363,10 @@ ToNetCookiePartitionKey(
bool CookieMatchesPartitionKeyCollection(
const net::CookiePartitionKeyCollection& cookie_partition_key_collection,
const net::CanonicalCookie& cookie) {
@@ -77,7 +77,7 @@ diff --git a/chrome/browser/extensions/api/cookies/cookies_helpers.cc b/chrome/b
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -1107,16 +1107,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
+@@ -1152,16 +1152,16 @@ ProfileNetworkContextService::CreateCookieManagerParams(
// UI to interact with SameSite cookies on accounts.google.com, which is used
// for displaying a list of available accounts on the NTP
// (chrome://new-tab-page), etc.
@@ -164,7 +164,7 @@ diff --git a/components/browser_ui/strings/android/site_settings.grdp b/componen
Third-party cookies are blocked
-@@ -670,7 +670,7 @@
+@@ -685,7 +685,7 @@
A site you visit can embed content from other sites, for example, images, ads, and text. Cookies set by these other sites are called third-party cookies.
@@ -184,7 +184,7 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
if (url.is_empty() || first_party_url.is_empty()) {
return;
}
-@@ -398,8 +399,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
+@@ -390,8 +391,7 @@ bool CookieSettings::ShouldBlockThirdPartyCookiesInternal() const {
}
bool CookieSettings::MitigationsEnabledFor3pcdInternal() const {
@@ -197,11 +197,11 @@ diff --git a/components/content_settings/core/browser/cookie_settings.cc b/compo
diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/components/content_settings/core/common/cookie_settings_base.cc
--- a/components/content_settings/core/common/cookie_settings_base.cc
+++ b/components/content_settings/core/common/cookie_settings_base.cc
-@@ -668,18 +668,6 @@ CookieSettingsBase::DecideAccess(const GURL& url,
+@@ -610,48 +610,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
ThirdPartyCookieAllowMechanism::kAllowByGlobalSetting};
}
-- if (IsThirdPartyCookiesAllowedScheme(first_party_url.scheme())) {
+- if (IsThirdPartyCookiesAllowedScheme(first_party_url.GetScheme())) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowByScheme};
- }
-
@@ -216,10 +216,13 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
if (IsAllowedByStorageAccessGrant(url, first_party_url, overrides)) {
return AllowAllCookies{
ThirdPartyCookieAllowMechanism::kAllowByStorageAccess,
-@@ -690,54 +678,11 @@ CookieSettingsBase::DecideAccess(const GURL& url,
- ThirdPartyCookieAllowMechanism::kAllowBySandboxValue};
+ AllowedByStorageAccessType::kStorageAccessOnly};
}
-
+- if (IsAllowedBySandboxValue(url, first_party_url, overrides)) {
+- return AllowAllCookies{
+- ThirdPartyCookieAllowMechanism::kAllowBySandboxValue};
+- }
+-
- if (IsAllowedBy3pcdHeuristicsGrantsSettings(url, first_party_url,
- overrides)) {
- return AllowAllCookies{
@@ -240,38 +243,20 @@ diff --git a/components/content_settings/core/common/cookie_settings_base.cc b/c
- return AllowAllCookies{TpcdMetadataSourceToAllowMechanism(
- tpcd_metadata_info.info.metadata.tpcd_metadata_rule_source())};
- }
--
+
if (is_explicit_setting) {
return AllowAllCookies{
- ThirdPartyCookieAllowMechanism::kAllowByExplicitSetting};
- }
-
-- // 3PCD 1P and 3P DTs
-- // New registrations are not supported for the deprecation trials, but the
-- // tokens are still valid until they expire.
-- // TODO(https://crbug.com/364917750): Remove this check once the trials are no
-- // longer relevant.
-- if (IsAllowedByTopLevel3pcdTrialSettings(first_party_url, overrides)) {
-- return AllowAllCookies{
-- ThirdPartyCookieAllowMechanism::kAllowByTopLevel3PCD};
-- }
+@@ -663,9 +626,6 @@ CookieSettingsBase::DecideAccess(const GURL& url,
+ // tokens are still valid until they expire.
+ // TODO(https://crbug.com/364917750): Remove this check once the trial are no
+ // longer relevant.
- if (IsAllowedBy3pcdTrialSettings(url, first_party_url, overrides)) {
- return AllowAllCookies{ThirdPartyCookieAllowMechanism::kAllowBy3PCD};
- }
--
-- // Check for a TRACKING_PROTECTION exception, which should also disable 3PCB.
-- if (IsAllowedWithMetadata tp_info =
-- IsAllowedByTrackingProtectionSetting(url, first_party_url);
-- tp_info.allowed) {
-- setting_info = std::move(tp_info.info);
-- return AllowAllCookies{
-- ThirdPartyCookieAllowMechanism::kAllowByTrackingProtectionException};
-- }
--
+
return AllowPartitionedCookies{};
}
-
-@@ -767,7 +712,7 @@ CookieSettingsBase::GetCookieSettingInternal(
+@@ -696,7 +656,7 @@ CookieSettingsBase::GetCookieSettingInternal(
}
return CookieSettingWithMetadata{/*cookie_setting=*/CONTENT_SETTING_ALLOW,
/*allow_partitioned_cookies=*/true,
@@ -369,7 +354,7 @@ diff --git a/net/cookies/cookie_monster.cc b/net/cookies/cookie_monster.cc
diff --git a/net/cookies/cookie_util.cc b/net/cookies/cookie_util.cc
--- a/net/cookies/cookie_util.cc
+++ b/net/cookies/cookie_util.cc
-@@ -828,6 +828,7 @@ bool IsCookiePartitionedValid(const GURL& url,
+@@ -827,6 +827,7 @@ bool IsCookiePartitionedValid(const GURL& url,
bool secure,
bool is_partitioned,
bool partition_has_nonce) {
@@ -492,8 +477,8 @@ diff --git a/services/network/cookie_settings.cc b/services/network/cookie_setti
+ return cookie.SameSite() == net::CookieSameSite::NO_RESTRICTION;
}
-
-@@ -124,8 +123,7 @@ bool IsOriginOpaqueHttpOrHttps(
+ bool IsValidType(ContentSettingsType type) {
+@@ -122,8 +121,7 @@ bool IsOriginOpaqueHttpOrHttps(
// static
bool CookieSettings::IsCookieAllowed(const net::CanonicalCookie& cookie,
const CookieSettingWithMetadata& setting) {
@@ -517,7 +502,7 @@ diff --git a/services/network/cors/cors_url_loader.cc b/services/network/cors/co
diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
--- a/services/network/restricted_cookie_manager.cc
+++ b/services/network/restricted_cookie_manager.cc
-@@ -984,6 +984,12 @@ void RestrictedCookieManager::SetCookieFromString(
+@@ -985,6 +985,12 @@ void RestrictedCookieManager::SetCookieFromString(
shared_memory_region = GetAndPrepareSharedMemoryRegion(url);
}
@@ -533,7 +518,7 @@ diff --git a/services/network/restricted_cookie_manager.cc b/services/network/re
diff --git a/services/network/url_loader.cc b/services/network/url_loader.cc
--- a/services/network/url_loader.cc
+++ b/services/network/url_loader.cc
-@@ -2578,6 +2578,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
+@@ -2594,6 +2594,7 @@ bool URLLoader::ShouldSetLoadWithStorageAccess() const {
auto determine_storage_access_load_outcome =
[&]() -> net::cookie_util::ActivateStorageAccessLoadOutcome {
diff --git a/build/patches/Private-network-access-content-settings.patch b/build/patches/Private-network-access-content-settings.patch
index 4afecaa9..03b17945 100644
--- a/build/patches/Private-network-access-content-settings.patch
+++ b/build/patches/Private-network-access-content-settings.patch
@@ -25,7 +25,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -1368,6 +1368,31 @@ bool IsDefaultSearchEngine(Profile* profile, const GURL& url) {
+@@ -4126,6 +4126,31 @@ bool ShouldPromptOnMultipleMatchingCertificates(const Profile* profile) {
return false;
}
@@ -56,8 +56,8 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
+}
} // namespace
- // static
-@@ -7710,12 +7735,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride
+ base::OnceClosure ChromeContentBrowserClient::SelectClientCertificate(
+@@ -7665,12 +7690,17 @@ content::ContentBrowserClient::PrivateNetworkRequestPolicyOverride
ChromeContentBrowserClient::ShouldOverridePrivateNetworkRequestPolicy(
content::BrowserContext* browser_context,
const url::Origin& origin) {
diff --git a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch
index 34f3c3d0..260cd7d2 100644
--- a/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch
+++ b/build/patches/PublicKeyCredential-fingerprinting-mitigations.patch
@@ -13,7 +13,7 @@ the Windows platform
diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/browser/webauth/authenticator_common_impl.cc
--- a/content/browser/webauth/authenticator_common_impl.cc
+++ b/content/browser/webauth/authenticator_common_impl.cc
-@@ -1898,6 +1898,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities(
+@@ -1920,6 +1920,7 @@ void AuthenticatorCommonImpl::GetClientCapabilities(
base::FeatureList::IsEnabled(device::kWebAuthnPasskeyUpgrade)));
IsHybridTransportSupported(
@@ -21,7 +21,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow
base::BindOnce(&MakeCapability, client_capabilities::kHybridTransport)
.Then(barrier_callback));
-@@ -1925,11 +1926,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities(
+@@ -1947,11 +1948,25 @@ void AuthenticatorCommonImpl::GetClientCapabilities(
}
void AuthenticatorCommonImpl::IsHybridTransportSupported(
@@ -47,7 +47,7 @@ diff --git a/content/browser/webauth/authenticator_common_impl.cc b/content/brow
device::BluetoothAdapterFactory::Get()->GetAdapter(
base::BindOnce([](scoped_refptr adapter) {
-@@ -1975,6 +1990,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck(
+@@ -1997,6 +2012,13 @@ void AuthenticatorCommonImpl::ContinueIsUvpaaAfterOverrideCheck(
IsUserVerifyingPlatformAuthenticatorAvailableCallback callback,
bool is_get_client_capabilities_call,
std::optional is_uvpaa_override) {
diff --git a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
index 11fa5e58..95d54d76 100644
--- a/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
+++ b/build/patches/Re-introduce-modal-dialog-flag-to-close-all-tabs.patch
@@ -45,18 +45,18 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -252,6 +252,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+@@ -259,6 +259,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kAsyncNotificationManagerForDownload,
&kAutomotiveBackButtonBarStreamline,
&kAuxiliarySearchDonation,
+ &kCloseAllTabsModalDialog,
- &kBatchTabRestore,
+ &kAuxiliarySearchHistoryDonation,
&kBlockIntentsWhileLocked,
&kBookmarkPaneAndroid,
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
-@@ -363,6 +363,7 @@ public abstract class ChromeFeatureList {
+@@ -367,6 +367,7 @@ public abstract class ChromeFeatureList {
"ClearBrowsingDataAndroidSurvey";
public static final String CLEAR_INSTANCE_INFO_WHEN_CLOSED_INTENTIONALLY =
"ClearInstanceInfoWhenClosedIntentionally";
diff --git a/build/patches/Re-introduce-override_build_timestamp.patch b/build/patches/Re-introduce-override_build_timestamp.patch
index d618d06b..d280d5d6 100644
--- a/build/patches/Re-introduce-override_build_timestamp.patch
+++ b/build/patches/Re-introduce-override_build_timestamp.patch
@@ -16,7 +16,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/base/BUILD.gn b/base/BUILD.gn
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
-@@ -4377,8 +4377,12 @@ if (current_toolchain == default_toolchain) {
+@@ -4395,8 +4395,12 @@ if (current_toolchain == default_toolchain) {
outputs = [ _build_date_header_internal ]
args = [
rebase_path(_build_date_header_internal, root_build_dir),
@@ -33,7 +33,7 @@ diff --git a/base/BUILD.gn b/base/BUILD.gn
diff --git a/build_overrides/build.gni b/build_overrides/build.gni
--- a/build_overrides/build.gni
+++ b/build_overrides/build.gni
-@@ -46,6 +46,11 @@ declare_args() {
+@@ -45,6 +45,11 @@ declare_args() {
# //third_party/robolectric .
limit_android_deps = false
diff --git a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
index 9d365e9d..2d2ec0f9 100644
--- a/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
+++ b/build/patches/Remove-HTTP-referrals-in-cross-origin-navigation.patch
@@ -44,7 +44,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -652,6 +652,8 @@ chrome_java_resources = [
+@@ -664,6 +664,8 @@ chrome_java_resources = [
"java/res/xml/personalize_google_services_preferences.xml",
"java/res/xml/incognito_preferences.xml",
"java/res/xml/privacy_preferences.xml",
@@ -56,10 +56,10 @@ 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
-@@ -941,6 +941,8 @@ chrome_java_sources = [
+@@ -950,6 +950,8 @@ chrome_java_sources = [
+ "java/src/org/chromium/chrome/browser/privacy_sandbox/ChromeTrackingProtectionDelegate.java",
+ "java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandbox3pcdRollbackMessageController.java",
"java/src/org/chromium/chrome/browser/privacy_sandbox/PrivacySandboxSurveyController.java",
- "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarController.java",
- "java/src/org/chromium/chrome/browser/privacy_sandbox/TrackingProtectionSnackbarLimiter.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/RefererSettingsFragment.java",
+ "java/src/org/chromium/chrome/browser/privacy/settings/RadioButtonGroupRefererSettings.java",
"java/src/org/chromium/chrome/browser/provider/BaseColumns.java",
@@ -395,7 +395,7 @@ new file mode 100644
diff --git a/chrome/browser/extensions/api/settings_private/prefs_util.cc b/chrome/browser/extensions/api/settings_private/prefs_util.cc
--- a/chrome/browser/extensions/api/settings_private/prefs_util.cc
+++ b/chrome/browser/extensions/api/settings_private/prefs_util.cc
-@@ -235,6 +235,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
+@@ -238,6 +238,11 @@ const PrefsUtil::TypedPrefMap& PrefsUtil::GetAllowlistedKeys() {
(*s_allowlist)[::prefs::kExpireDaysThreshold] =
settings_api::PrefType::kNumber;
@@ -504,7 +504,7 @@ diff --git a/chrome/browser/resources/settings/privacy_page/privacy_page.ts b/ch
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1080,6 +1080,30 @@ For more settings that use data to improve your Chrome experience, go to
@@ -562,7 +562,7 @@ diff --git a/chrome/browser/ui/prefs/prefs_tab_helper.cc b/chrome/browser/ui/pre
diff --git a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
--- a/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
+++ b/chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
-@@ -2081,6 +2081,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
+@@ -2231,6 +2231,10 @@ void AddPrivacyStrings(content::WebUIDataSource* html_source,
{"dayHistory", IDS_SETTINGS_DAY_HISTORY_DESCRIPTION},
{"daysHistory", IDS_SETTINGS_DAYS_HISTORY_DESCRIPTION},
{"foreverHistory", IDS_SETTINGS_FOREVER_HISTORY_DESCRIPTION},
diff --git a/build/patches/Remove-binary-blob-integrations.patch b/build/patches/Remove-binary-blob-integrations.patch
index 50a4f2d7..10e6e61b 100644
--- a/build/patches/Remove-binary-blob-integrations.patch
+++ b/build/patches/Remove-binary-blob-integrations.patch
@@ -86,6 +86,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
components/module_installer/android/BUILD.gn | 4 -
components/omnibox/common/BUILD.gn | 1 -
.../components/omnibox/OmniboxFeatures.java | 8 -
+ .../android/backend/common/BUILD.gn | 2 -
+ .../backend/OneTimeTokensMetricsRecorder.java | 16 -
.../android/backend/sms/BUILD.gn | 3 -
.../sms/AndroidSmsOtpFetchReceiverBridge.java | 8 +-
components/signin/public/android/BUILD.gn | 3 -
@@ -93,8 +95,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../webauthn/ConditionalUiState.java | 15 +
.../webauthn/Fido2CredentialRequest.java | 107 +--
.../webauthn/GmsCoreGetCredentialsHelper.java | 78 +-
- .../components/webauthn/GmsCoreUtils.java | 31 +-
- .../webauthn/IdentityCredentialsHelper.java | 78 +-
+ .../components/webauthn/GmsCoreUtils.java | 74 +-
+ .../webauthn/IdentityCredentialsHelper.java | 119 +--
.../webauthn/WebauthnModeProvider.java | 15 -
.../cred_man/CredManMetricsHelper.java | 17 +-
.../push_messaging/push_messaging_manager.cc | 2 +-
@@ -104,13 +106,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
services/BUILD.gn | 10 -
services/device/geolocation/BUILD.gn | 4 -
services/shape_detection/BUILD.gn | 2 -
- third_party/android_deps/BUILD.gn | 11 +-
- third_party/android_deps/autorolled/BUILD.gn | 799 ------------------
+ third_party/android_deps/BUILD.gn | 11 -
+ third_party/android_deps/autorolled/BUILD.gn | 797 ------------------
.../preconditions/javatests/BUILD.gn | 1 -
- .../gms/ChromiumPlayServicesAvailability.java | 10 +-
+ .../gms/ChromiumPlayServicesAvailability.java | 17 +-
third_party/androidx/customizations.gni | 14 +-
third_party/cardboard/BUILD.gn | 4 -
- 86 files changed, 121 insertions(+), 2613 deletions(-)
+ 88 files changed, 139 insertions(+), 2702 deletions(-)
create mode 100644 components/webauthn/android/java/src/org/chromium/components/webauthn/ConditionalUiState.java
diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -138,7 +140,7 @@ diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
-@@ -187,9 +187,7 @@ if (is_android) {
+@@ -203,9 +203,7 @@ if (is_android) {
# google_play_services_package contains the path where individual client
# targets (e.g. google_play_services_base_java) are located.
@@ -166,8 +168,8 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
- "$google_play_services_package:google_play_services_tasks_java",
"//base:content_uri_utils_java",
"//base:flagged_apis_java",
- "//base:service_loader_java",
-@@ -749,12 +741,21 @@ if (_is_default_toolchain) {
+ "//base:process_launcher_java",
+@@ -751,12 +743,21 @@ if (_is_default_toolchain) {
"//services/shape_detection:shape_detection_java",
"//services/shape_detection/public/mojom:mojom_java",
"//skia/public/mojom:mojom_java",
@@ -192,7 +194,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/android_deps:protobuf_lite_runtime_java",
"//third_party/android_media:android_media_java",
"//third_party/android_swipe_refresh:android_swipe_refresh_java",
-@@ -1984,7 +1985,6 @@ if (_is_default_toolchain) {
+@@ -1989,7 +1990,6 @@ if (_is_default_toolchain) {
]
deps = [
":chrome_java",
@@ -200,7 +202,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//build/android:build_java",
-@@ -2095,7 +2095,6 @@ if (_is_default_toolchain) {
+@@ -2100,7 +2100,6 @@ if (_is_default_toolchain) {
# is in a DFM.
android_library("base_module_java") {
sources = [
@@ -208,7 +210,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/app/TrichromeZygotePreload.java",
"java/src/org/chromium/chrome/browser/ChromeBackgroundService.java",
"java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
-@@ -2113,8 +2112,6 @@ if (_is_default_toolchain) {
+@@ -2118,8 +2117,6 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatContentProvider.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -217,7 +219,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"java/src/org/chromium/chrome/browser/base/SplitCompatIntentService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
"java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
-@@ -2141,15 +2138,10 @@ if (_is_default_toolchain) {
+@@ -2146,15 +2143,10 @@ if (_is_default_toolchain) {
"java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
"java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
"java/src/org/chromium/chrome/browser/provider/PageContentProvider.java",
@@ -233,7 +235,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//base:base_java",
"//chrome/browser/autofill/android:third_party_provider_java",
"//chrome/browser/download/android:file_provider_java",
-@@ -2164,7 +2156,6 @@ if (_is_default_toolchain) {
+@@ -2169,7 +2161,6 @@ if (_is_default_toolchain) {
"//components/media_router/browser/android:cast_options_provider_java",
"//components/minidump_uploader:minidump_uploader_java",
"//components/module_installer/android:module_installer_java",
@@ -241,14 +243,14 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//third_party/androidx:androidx_annotation_annotation_java",
"//third_party/androidx:androidx_collection_collection_java",
"//third_party/jni_zero:jni_zero_java",
-@@ -2184,7 +2175,6 @@ if (_is_default_toolchain) {
+@@ -2189,7 +2180,6 @@ if (_is_default_toolchain) {
# Deps to pull services into base module.
# TODO(crbug.com/40148088): Consider moving these to the chrome module to
# reduce base dex size.
- "$google_play_services_package:google_play_services_cast_framework_java",
+ "//base:service_loader_java",
"//chrome/android/modules/on_demand:provider_java",
"//components/background_task_scheduler:background_task_scheduler_java",
- "//components/payments/content/android:service_java",
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -260,7 +262,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
"java/src/org/chromium/chrome/browser/ChromeInactivityTracker.java",
"java/src/org/chromium/chrome/browser/ChromeKeyboardVisibilityDelegate.java",
-@@ -968,10 +967,6 @@ chrome_java_sources = [
+@@ -977,10 +976,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/segmentation_platform/SignalAccumulator.java",
"java/src/org/chromium/chrome/browser/segmentation_platform/TabGroupingActionProvider.java",
"java/src/org/chromium/chrome/browser/selection/ChromeSelectionDropdownMenuDelegate.java",
@@ -274,7 +276,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -140,19 +140,14 @@ by a child template that "extends" this file.
+@@ -151,19 +151,14 @@ by a child template that "extends" this file.
@@ -294,7 +296,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -800,16 +795,6 @@ by a child template that "extends" this file.
+@@ -811,16 +806,6 @@ by a child template that "extends" this file.
@@ -311,7 +313,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
@@ -338,7 +340,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -1036,15 +1001,6 @@ by a child template that "extends" this file.
+@@ -1047,15 +1012,6 @@ by a child template that "extends" this file.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE"/>
@@ -354,7 +356,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -1353,12 +1309,6 @@ by a child template that "extends" this file.
+@@ -1364,12 +1320,6 @@ by a child template that "extends" this file.
{% endif %}
@@ -730,7 +732,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
-@@ -506,13 +504,6 @@ public class PasswordManagerHelper {
+@@ -502,13 +500,6 @@ public class PasswordManagerHelper {
// If the exception is not a Chrome-defined one, it means that the call failed at the
// API call level. It could have either failed with a known ApiException or because of a
// different error (e.g. a different exception thrown by the implementation of the API).
@@ -800,7 +802,7 @@ diff --git a/chrome/browser/safe_browsing/notification_telemetry/notification_te
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
-@@ -130,8 +130,6 @@ static_library("ui") {
+@@ -128,8 +128,6 @@ static_library("ui") {
"webui/flags/flags_ui.h",
"webui/flags/flags_ui_handler.cc",
"webui/flags/flags_ui_handler.h",
@@ -820,7 +822,7 @@ diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
-@@ -170,8 +170,6 @@ android_library("java") {
+@@ -172,8 +172,6 @@ android_library("java") {
deps = [
":java_resources",
@@ -829,7 +831,7 @@ diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/andr
"//base:base_java",
"//base/version_info/android:version_constants_java",
"//build/android:build_java",
-@@ -514,8 +512,6 @@ robolectric_library("junit") {
+@@ -521,8 +519,6 @@ robolectric_library("junit") {
deps = [
":java",
":java_resources",
@@ -857,7 +859,7 @@ diff --git a/chrome/browser/ui/android/signin/java/src/org/chromium/chrome/brows
diff --git a/chrome/browser/ui/webui/chrome_web_ui_configs.cc b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
--- a/chrome/browser/ui/webui/chrome_web_ui_configs.cc
+++ b/chrome/browser/ui/webui/chrome_web_ui_configs.cc
-@@ -240,7 +240,6 @@ void RegisterChromeWebUIConfigs() {
+@@ -241,7 +241,6 @@ void RegisterChromeWebUIConfigs() {
map.AddWebUIConfig(std::make_unique());
map.AddWebUIConfig(std::make_unique());
map.AddWebUIConfig(std::make_unique());
@@ -1207,7 +1209,7 @@ diff --git a/chrome/browser/webid/android/java/src/org/chromium/chrome/browser/w
diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
--- a/chrome/test/android/BUILD.gn
+++ b/chrome/test/android/BUILD.gn
-@@ -372,8 +372,6 @@ android_library("chrome_java_integration_test_support") {
+@@ -373,8 +373,6 @@ android_library("chrome_java_integration_test_support") {
deps = [
":chrome_java_test_support_common",
@@ -1219,7 +1221,7 @@ diff --git a/chrome/test/android/BUILD.gn b/chrome/test/android/BUILD.gn
diff --git a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
--- a/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
+++ b/components/external_intents/android/java/src/org/chromium/components/external_intents/ExternalNavigationHandler.java
-@@ -2682,14 +2682,6 @@ public class ExternalNavigationHandler {
+@@ -2858,14 +2858,6 @@ public class ExternalNavigationHandler {
* @return Whether the given intent is going to open an Instant App.
*/
private static boolean isIntentToInstantApp(Intent intent) {
@@ -3152,7 +3154,7 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/
import org.chromium.base.BaseSwitches;
import org.chromium.base.CommandLine;
import org.chromium.base.ContextUtils;
-@@ -171,12 +169,6 @@ public class OmniboxFeatures {
+@@ -174,12 +172,6 @@ public class OmniboxFeatures {
"geolocation_request_min_update_interval_millis",
(int) (9 * DateUtils.MINUTE_IN_MILLIS));
@@ -3165,6 +3167,57 @@ diff --git a/components/omnibox/common/android/java/src/org/chromium/components/
public static final IntCachedFeatureParam sTouchDownTriggerMaxPrefetchesPerSession =
newIntParam(
sTouchDownTriggerForPrefetch,
+diff --git a/components/one_time_tokens/android/backend/common/BUILD.gn b/components/one_time_tokens/android/backend/common/BUILD.gn
+--- a/components/one_time_tokens/android/backend/common/BUILD.gn
++++ b/components/one_time_tokens/android/backend/common/BUILD.gn
+@@ -11,7 +11,6 @@ android_library("java") {
+ "java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java",
+ ]
+ deps = [
+- "$google_play_services_package:google_play_services_basement_java",
+ "//base:base_java",
+ "//build/android:build_java",
+ "//third_party/androidx:androidx_annotation_annotation_java",
+@@ -23,7 +22,6 @@ robolectric_library("junit") {
+ sources = [ "java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorderTest.java" ]
+ deps = [
+ ":java",
+- "$google_play_services_package:google_play_services_basement_java",
+ "//base:base_java",
+ "//base:base_java_test_support",
+ "//base:base_junit_test_support",
+diff --git a/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java b/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
+--- a/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
++++ b/components/one_time_tokens/android/backend/common/java/src/org/chromium/components/one_time_tokens/backend/OneTimeTokensMetricsRecorder.java
+@@ -6,9 +6,6 @@ package org.chromium.components.one_time_tokens.backend;
+
+ import android.os.SystemClock;
+
+-import com.google.android.gms.common.api.ApiException;
+-import com.google.android.gms.common.api.CommonStatusCodes;
+-
+ import org.chromium.base.metrics.RecordHistogram;
+ import org.chromium.build.annotations.NullMarked;
+ import org.chromium.build.annotations.Nullable;
+@@ -62,18 +59,5 @@ public class OneTimeTokensMetricsRecorder {
+ }
+
+ private void reportErrorMetrics(Exception exception) {
+- if (exception instanceof OneTimeTokensBackendException backendException) {
+- RecordHistogram.recordEnumeratedHistogram(
+- getHistogramName(ERROR_CODE_METRIC_NAME),
+- backendException.getErrorCode(),
+- OneTimeTokensBackendErrorCode.MAX_VALUE);
+- return;
+- }
+-
+- int errorCode = CommonStatusCodes.ERROR;
+- if (exception instanceof ApiException apiException) {
+- errorCode = apiException.getStatusCode();
+- }
+- RecordHistogram.recordSparseHistogram(getHistogramName(API_ERROR_METRIC_NAME), errorCode);
+ }
+ }
diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/components/one_time_tokens/android/backend/sms/BUILD.gn
--- a/components/one_time_tokens/android/backend/sms/BUILD.gn
+++ b/components/one_time_tokens/android/backend/sms/BUILD.gn
@@ -3175,16 +3228,16 @@ diff --git a/components/one_time_tokens/android/backend/sms/BUILD.gn b/component
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
"//build/android:build_java",
- "//components/one_time_tokens/android/backend/sms:sms_otp_fetching_interface_java",
-@@ -69,7 +68,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
+ "//components/one_time_tokens/android/backend/common:java",
+@@ -70,7 +69,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
deps = [
":java",
":sms_otp_fetching_interface_java",
- "$google_play_services_package:google_play_services_basement_java",
"//base:base_java",
+ "//base:base_java_test_support",
"//base:base_junit_test_support",
- "//third_party/junit",
-@@ -78,7 +76,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
+@@ -81,7 +79,6 @@ robolectric_binary("one_time_tokens_junit_tests") {
android_library("sms_otp_fetching_interface_java") {
deps = [
@@ -3240,7 +3293,7 @@ diff --git a/components/signin/public/android/BUILD.gn b/components/signin/publi
diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/BUILD.gn
--- a/components/webauthn/android/BUILD.gn
+++ b/components/webauthn/android/BUILD.gn
-@@ -41,8 +41,6 @@ android_library("java") {
+@@ -42,8 +42,6 @@ android_library("java") {
"java/src/org/chromium/components/webauthn/Barrier.java",
"java/src/org/chromium/components/webauthn/CreateConfirmationUiDelegate.java",
"java/src/org/chromium/components/webauthn/Fido2Api.java",
@@ -3249,7 +3302,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
"java/src/org/chromium/components/webauthn/Fido2CredentialRequest.java",
"java/src/org/chromium/components/webauthn/FidoIntentSender.java",
"java/src/org/chromium/components/webauthn/GetCredentialResponseCallback.java",
-@@ -73,11 +71,11 @@ android_library("java") {
+@@ -74,11 +72,11 @@ android_library("java") {
"java/src/org/chromium/components/webauthn/cred_man/GpmCredManRequestDecorator.java",
]
@@ -3265,7 +3318,7 @@ diff --git a/components/webauthn/android/BUILD.gn b/components/webauthn/android/
"//base:base_java",
"//base:service_loader_java",
"//base/version_info/android:version_constants_java",
-@@ -223,8 +221,6 @@ robolectric_library("junit") {
+@@ -225,8 +223,6 @@ robolectric_library("junit") {
deps = [
":java",
":test_support_java",
@@ -3306,7 +3359,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
import org.jni_zero.JNINamespace;
import org.jni_zero.NativeMethods;
-@@ -48,7 +46,6 @@ import org.chromium.blink.mojom.ResidentKeyRequirement;
+@@ -49,7 +47,6 @@ import org.chromium.blink.mojom.ResidentKeyRequirement;
import org.chromium.blink_public.common.BlinkFeatures;
import org.chromium.build.annotations.NullMarked;
import org.chromium.build.annotations.Nullable;
@@ -3314,7 +3367,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
import org.chromium.components.webauthn.cred_man.CredManHelper;
import org.chromium.components.webauthn.cred_man.CredManSupportProvider;
import org.chromium.content_public.browser.ClientDataJson;
-@@ -132,12 +129,7 @@ public class Fido2CredentialRequest
+@@ -133,12 +130,7 @@ public class Fido2CredentialRequest
*/
public Fido2CredentialRequest(AuthenticationContextProvider authenticationContextProvider) {
mAuthenticationContextProvider = authenticationContextProvider;
@@ -3328,7 +3381,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
mPlayServicesAvailable = playServicesAvailable;
mCredManHelper =
new CredManHelper(mAuthenticationContextProvider, this, mPlayServicesAvailable);
-@@ -334,22 +326,6 @@ public class Fido2CredentialRequest
+@@ -335,22 +327,6 @@ public class Fido2CredentialRequest
returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR);
return;
}
@@ -3351,7 +3404,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
return;
}
int result =
-@@ -397,23 +373,6 @@ public class Fido2CredentialRequest
+@@ -398,23 +374,6 @@ public class Fido2CredentialRequest
returnErrorAndResetCallback(AuthenticatorStatus.UNKNOWN_ERROR);
return;
}
@@ -3375,7 +3428,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
-@@ -785,32 +744,6 @@ public class Fido2CredentialRequest
+@@ -784,32 +743,6 @@ public class Fido2CredentialRequest
callback.onIsUserVerifyingPlatformAuthenticatorAvailableResponse(false);
return;
}
@@ -3407,8 +3460,8 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- });
}
- public void handleGetMatchingCredentialIdsRequest(
-@@ -1139,16 +1072,6 @@ public class Fido2CredentialRequest
+ public void handleReportRequest(
+@@ -1166,16 +1099,6 @@ public class Fido2CredentialRequest
if (options.mediation == Mediation.CONDITIONAL) {
mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
}
@@ -3425,7 +3478,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
private void handleNonCredentialReturn(GetCredentialOptions options, Integer reason) {
-@@ -1192,34 +1115,6 @@ public class Fido2CredentialRequest
+@@ -1219,34 +1142,6 @@ public class Fido2CredentialRequest
return;
}
mCancellableUiState = CancellableUiState.REQUEST_SENT_TO_PLATFORM;
@@ -3565,7 +3618,17 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/GmsCoreUtils.java
-@@ -9,28 +9,13 @@ import org.chromium.build.annotations.NullMarked;
+@@ -4,9 +4,6 @@
+
+ package org.chromium.components.webauthn;
+
+-import com.google.android.gms.tasks.OnFailureListener;
+-import com.google.android.gms.tasks.OnSuccessListener;
+-
+ import org.chromium.base.PackageUtils;
+ import org.chromium.base.task.PostTask;
+ import org.chromium.base.task.TaskTraits;
+@@ -14,28 +11,13 @@ import org.chromium.build.annotations.NullMarked;
@NullMarked
public class GmsCoreUtils {
@@ -3596,7 +3659,7 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
/**
-@@ -39,25 +24,21 @@ public class GmsCoreUtils {
+@@ -44,26 +26,22 @@ public class GmsCoreUtils {
* version.
*/
public static boolean isGetMatchingCredentialIdsSupported() {
@@ -3625,11 +3688,63 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- sGmsCorePackageVersion = version;
+ return false;
}
+
+ /**
+@@ -71,30 +49,30 @@ public class GmsCoreUtils {
+ * inner callback's invocation to the UI thread to avoid contention over state. Intent callbacks
+ * can be run on a different thread from the one on which they were originally invoked.
+ */
+- public static OnSuccessListener wrapSuccessCallback(OnSuccessListener callback) {
+- return (result) -> {
+- PostTask.runOrPostTask(
+- TaskTraits.UI_USER_VISIBLE,
+- () -> {
+- callback.onSuccess(result);
+- });
+- };
+- }
++ // public static OnSuccessListener wrapSuccessCallback(OnSuccessListener callback) {
++ // return (result) -> {
++ // PostTask.runOrPostTask(
++ // TaskTraits.UI_USER_VISIBLE,
++ // () -> {
++ // callback.onSuccess(result);
++ // });
++ // };
++ // }
+
+ /**
+ * Returns a FailureListener callback that wraps another FailureListener callback, but posts the
+ * inner callback's invocation to the UI thread to avoid contention over state. Intent callbacks
+ * can be run on a different thread from the one on which they were originally invoked.
+ */
+- public static OnFailureListener wrapFailureCallback(OnFailureListener callback) {
+- // Post callbacks to UI thread to avoid contention over state, since this can be called
+- // on a different thread than was originally used to invoke the Intent.
+- return (e) -> {
+- PostTask.runOrPostTask(
+- TaskTraits.UI_USER_VISIBLE,
+- () -> {
+- callback.onFailure(e);
+- });
+- };
+- }
++ // public static OnFailureListener wrapFailureCallback(OnFailureListener callback) {
++ // // Post callbacks to UI thread to avoid contention over state, since this can be called
++ // // on a different thread than was originally used to invoke the Intent.
++ // return (e) -> {
++ // PostTask.runOrPostTask(
++ // TaskTraits.UI_USER_VISIBLE,
++ // () -> {
++ // callback.onFailure(e);
++ // });
++ // };
++ // }
}
diff --git a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
--- a/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
+++ b/components/webauthn/android/java/src/org/chromium/components/webauthn/IdentityCredentialsHelper.java
-@@ -12,11 +12,6 @@ import android.os.Bundle;
+@@ -12,12 +12,6 @@ import android.os.Bundle;
import androidx.annotation.VisibleForTesting;
@@ -3637,11 +3752,12 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
-import com.google.android.gms.identitycredentials.CreateCredentialRequest;
-import com.google.android.gms.identitycredentials.IdentityCredentialClient;
-import com.google.android.gms.identitycredentials.IdentityCredentialManager;
+-import com.google.android.gms.identitycredentials.SignalCredentialStateRequest;
-
import org.jni_zero.JNINamespace;
import org.chromium.blink.mojom.AuthenticatorStatus;
-@@ -54,50 +49,8 @@ public class IdentityCredentialsHelper {
+@@ -56,53 +50,8 @@ public class IdentityCredentialsHelper {
MakeCredentialResponseCallback responseCallback,
ErrorCallback errorCallback) {
log(TAG, "handleConditionalCreateRequest");
@@ -3651,15 +3767,18 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
- assertNonNull(mAuthenticationContextProvider.getContext()));
- client.createCredential(buildConditionalCreateRequest(options, origin, clientDataHash))
- .addOnSuccessListener(
-- (handle) ->
-- onConditionalCreateSuccess(
-- clientDataJson,
-- options,
-- responseCallback,
-- errorCallback,
-- handle))
+- GmsCoreUtils.wrapSuccessCallback(
+- (handle) ->
+- onConditionalCreateSuccess(
+- clientDataJson,
+- options,
+- responseCallback,
+- errorCallback,
+- handle)))
- .addOnFailureListener(
-- (exception) -> onConditionalCreateFailure(errorCallback, exception));
+- GmsCoreUtils.wrapFailureCallback(
+- (exception) ->
+- onConditionalCreateFailure(errorCallback, exception)));
- } catch (Exception e) {
- logError(TAG, "CreateCredential failed ", e);
- errorCallback.onResult(
@@ -3694,10 +3813,49 @@ diff --git a/components/webauthn/android/java/src/org/chromium/components/webaut
}
private void onConditionalCreateFailure(ErrorCallback errorCallback, Exception e) {
-@@ -117,31 +70,4 @@ public class IdentityCredentialsHelper {
- CRED_MAN_PREFIX + "BUNDLE_KEY_CLIENT_DATA_HASH", clientDataHash);
- return credentialData;
+@@ -125,70 +74,6 @@ public class IdentityCredentialsHelper {
+
+ // Dispatches a Report request.
+ public void handleReportRequest(PublicKeyCredentialReportOptions options, String origin) {
+- log(TAG, "handleReportRequest");
+- try {
+- IdentityCredentialClient client =
+- IdentityCredentialManager.Companion.getClient(
+- assertNonNull(mAuthenticationContextProvider.getContext()));
+- client.signalCredentialState(buildSignalCredentialStateRequest(options, origin))
+- .addOnSuccessListener(
+- GmsCoreUtils.wrapSuccessCallback(
+- (handle) ->
+- log(TAG, "Signal API request completed successfully")))
+- .addOnFailureListener(
+- GmsCoreUtils.wrapFailureCallback(
+- (e) -> logError(TAG, "Signal API Report request failed ", e)));
+- } catch (Exception e) {
+- logError(TAG, "handleReportRequest failed ", e);
+- return;
+- }
}
+
+- @VisibleForTesting
+- public SignalCredentialStateRequest buildSignalCredentialStateRequest(
+- PublicKeyCredentialReportOptions options, String origin) {
+- String type;
+- if (options.unknownCredentialId != null) {
+- type = CRED_MAN_PREFIX + "SIGNAL_UNKNOWN_CREDENTIAL_STATE_REQUEST_TYPE";
+- } else if (options.allAcceptedCredentials != null) {
+- type = CRED_MAN_PREFIX + "SIGNAL_ALL_ACCEPTED_CREDENTIALS_REQUEST_TYPE";
+- } else {
+- assert (options.currentUserDetails != null);
+- type = CRED_MAN_PREFIX + "SIGNAL_CURRENT_USER_DETAILS_STATE_REQUEST_TYPE";
+- }
+-
+- String requestJson =
+- Fido2CredentialRequestJni.get().reportOptionsToJson(options.serialize());
+- Bundle requestDataBundle = new Bundle();
+- requestDataBundle.putCharSequence(CRED_MAN_PREFIX + "signal_request_json_key", requestJson);
+-
+- return new SignalCredentialStateRequest(type, origin, requestDataBundle);
+- }
-
- @VisibleForTesting
- public CreateCredentialRequest buildConditionalCreateRequest(
@@ -3806,7 +3964,7 @@ diff --git a/content/browser/push_messaging/push_messaging_manager.cc b/content/
diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
--- a/content/public/android/BUILD.gn
+++ b/content/public/android/BUILD.gn
-@@ -168,10 +168,6 @@ android_library("content_full_java") {
+@@ -169,10 +169,6 @@ android_library("content_full_java") {
":content_java_resources",
":content_main_dex_java",
":content_util_java",
@@ -3815,12 +3973,12 @@ diff --git a/content/public/android/BUILD.gn b/content/public/android/BUILD.gn
- "$google_play_services_package:google_play_services_basement_java",
- "$google_play_services_package:google_play_services_tasks_java",
"//base:base_java",
+ "//base:flagged_apis_java",
"//base:process_launcher_java",
- "//base:service_loader_java",
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn
--- a/content/test/BUILD.gn
+++ b/content/test/BUILD.gn
-@@ -3775,10 +3775,6 @@ if (is_android) {
+@@ -3802,10 +3802,6 @@ if (is_android) {
testonly = true
sources = content_java_sources_needing_jni
deps = [
@@ -3847,7 +4005,7 @@ diff --git a/device/BUILD.gn b/device/BUILD.gn
diff --git a/services/BUILD.gn b/services/BUILD.gn
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
-@@ -168,12 +168,6 @@ if (is_android) {
+@@ -163,12 +163,6 @@ if (is_android) {
"shape_detection/android/junit/src/org/chromium/shape_detection/BitmapUtilsTest.java",
]
deps = [
@@ -3860,7 +4018,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
"//base:base_java",
"//base:base_java_test_support",
"//base:base_junit_test_support",
-@@ -205,10 +199,6 @@ if (is_android) {
+@@ -200,10 +194,6 @@ if (is_android) {
"shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java",
]
deps = [
@@ -3874,7 +4032,7 @@ diff --git a/services/BUILD.gn b/services/BUILD.gn
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn
--- a/services/device/geolocation/BUILD.gn
+++ b/services/device/geolocation/BUILD.gn
-@@ -159,10 +159,6 @@ if (is_android) {
+@@ -160,10 +160,6 @@ if (is_android) {
deps = [
":geolocation_jni_headers",
@@ -3900,17 +4058,15 @@ diff --git a/services/shape_detection/BUILD.gn b/services/shape_detection/BUILD.
diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.gn
--- a/third_party/android_deps/BUILD.gn
+++ b/third_party/android_deps/BUILD.gn
-@@ -82,22 +82,13 @@ if (!limit_android_deps) {
-
- android_library("chromium_play_services_availability_java") {
- sources = [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
-- deps = [ "$google_play_services_package:google_play_services_base_java" ]
-+ deps = [ ]
- }
-
- robolectric_library("chromium_play_services_availability_shadows_java") {
- sources = [ "util/org/chromium/gms/shadows/ShadowChromiumPlayServicesAvailability.java" ]
- deps = [ ":chromium_play_services_availability_java" ]
+@@ -91,21 +91,10 @@ if (!limit_android_deps) {
+ sources =
+ [ "util/org/chromium/gms/ChromiumPlayServicesAvailability.java" ]
+ deps = [
+- "$google_play_services_package:google_play_services_base_java",
+- "$google_play_services_package:google_play_services_basement_java",
+ "//base:resetters_java",
+ ]
+ }
}
-
- java_group("playcore_java") {
@@ -3927,14 +4083,14 @@ diff --git a/third_party/android_deps/BUILD.gn b/third_party/android_deps/BUILD.
diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_deps/autorolled/BUILD.gn
--- a/third_party/android_deps/autorolled/BUILD.gn
+++ b/third_party/android_deps/autorolled/BUILD.gn
-@@ -130,313 +130,6 @@ template("define_autorolled_targets") {
+@@ -133,311 +133,6 @@ template("define_autorolled_targets") {
]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth-21.4.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth/play-services-auth.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth/com_google_android_gms_play_services_auth.info"
- enable_bytecode_checks = false
- deps = [
@@ -3953,7 +4109,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_api_phone_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone-18.2.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_api_phone/play-services-auth-api-phone.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_api_phone/com_google_android_gms_play_services_auth_api_phone.info"
- enable_bytecode_checks = false
- deps = [
@@ -3970,7 +4126,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_base_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base-18.3.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_base/play-services-auth-base.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_base/com_google_android_gms_play_services_auth_base.info"
- enable_bytecode_checks = false
- deps = [
@@ -3986,7 +4142,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_auth_blockstore_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore-16.4.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_auth_blockstore/play-services-auth-blockstore.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_auth_blockstore/com_google_android_gms_play_services_auth_blockstore.info"
- enable_bytecode_checks = false
- deps = [
@@ -4001,7 +4157,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_base_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base-18.8.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_base/play-services-base.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_base/com_google_android_gms_play_services_base.info"
- enable_bytecode_checks = false
- deps = [
@@ -4017,7 +4173,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_basement_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement-18.8.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_basement/play-services-basement.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_basement/com_google_android_gms_play_services_basement.info"
- enable_bytecode_checks = false
- deps = [
@@ -4036,15 +4192,13 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
- # https://crbug.com/989505
- jar_excluded_patterns += [ "META-INF/proguard/*" ]
-- input_jars_paths =
-- [ "$android_sdk/optional/org.apache.http.legacy.jar" ]
- }
- }
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast-22.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast/play-services-cast.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast/com_google_android_gms_play_services_cast.info"
- enable_bytecode_checks = false
- deps = [
@@ -4062,7 +4216,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cast_framework_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework-22.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cast_framework/play-services-cast-framework.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cast_framework/com_google_android_gms_play_services_cast_framework.info"
- enable_bytecode_checks = false
- deps = [
@@ -4073,7 +4227,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- "//third_party/android_deps:google_android_datatransport_transport_api_java",
- "//third_party/android_deps:google_android_datatransport_transport_backend_cct_java",
- "//third_party/android_deps:google_android_datatransport_transport_runtime_java",
-- "//third_party/android_deps:guava_android_java",
+- "//third_party/android_deps:guava_java",
- "//third_party/androidx:androidx_appcompat_appcompat_java",
- "//third_party/androidx:androidx_collection_collection_java",
- "//third_party/androidx:androidx_concurrent_concurrent_futures_java",
@@ -4090,7 +4244,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_fido_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido-21.2.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_fido/play-services-fido.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_fido/com_google_android_gms_play_services_fido.info"
- enable_bytecode_checks = false
- deps = [
@@ -4106,7 +4260,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_gcm_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm-17.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_gcm/play-services-gcm.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_gcm/com_google_android_gms_play_services_gcm.info"
- enable_bytecode_checks = false
- deps = [
@@ -4124,7 +4278,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_identity_credentials_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials-16.0.0-alpha08.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_identity_credentials/play-services-identity-credentials.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_identity_credentials/com_google_android_gms_play_services_identity_credentials.info"
- enable_bytecode_checks = false
- deps = [
@@ -4139,7 +4293,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_iid_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid-17.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_iid/play-services-iid.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_iid/com_google_android_gms_play_services_iid.info"
- enable_bytecode_checks = false
- deps = [
@@ -4156,7 +4310,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_instantapps_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps-18.2.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_instantapps/play-services-instantapps.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_instantapps/com_google_android_gms_play_services_instantapps.info"
- enable_bytecode_checks = false
- deps = [
@@ -4170,7 +4324,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_location_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location-21.3.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_location/play-services-location.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_location/com_google_android_gms_play_services_location.info"
- enable_bytecode_checks = false
- deps = [
@@ -4187,7 +4341,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_tasks_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks-18.4.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_tasks/play-services-tasks.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_tasks/com_google_android_gms_play_services_tasks.info"
- enable_bytecode_checks = false
- deps = [
@@ -4199,7 +4353,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision-20.1.3.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision/play-services-vision.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision/com_google_android_gms_play_services_vision.info"
- enable_bytecode_checks = false
- deps = [
@@ -4213,7 +4367,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_vision_common_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common-19.1.3.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_vision_common/play-services-vision-common.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_vision_common/com_google_android_gms_play_services_vision_common.info"
- enable_bytecode_checks = false
- deps = [
@@ -4229,7 +4383,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt(
- "com_google_android_libraries_identity_googleid_googleid_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid-1.1.1.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_libraries_identity_googleid_googleid/googleid.aar"
- info_path = "autorolled/committed/libs/com_google_android_libraries_identity_googleid_googleid/com_google_android_libraries_identity_googleid_googleid.info"
- enable_bytecode_checks = false
- deps = [
@@ -4241,14 +4395,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
if (!defined(material_design_target)) {
android_aar_prebuilt("com_google_android_material_material_java") {
-@@ -485,24 +178,6 @@ template("define_autorolled_targets") {
+@@ -487,24 +182,6 @@ template("define_autorolled_targets") {
}
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (!defined(playcore_target)) {
- android_aar_prebuilt("com_google_android_play_feature_delivery_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery-2.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_play_feature_delivery/feature-delivery.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_feature_delivery/com_google_android_play_feature_delivery.info"
- enable_bytecode_checks = false
-
@@ -4265,15 +4419,15 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
android_aar_prebuilt("com_google_ar_impress_java") {
- aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress-0.0.5.aar"
-@@ -549,38 +224,6 @@ template("define_autorolled_targets") {
+ aar_path = "autorolled/cipd/libs/com_google_ar_impress/impress.aar"
+@@ -551,38 +228,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:com_google_errorprone_error_prone_annotations_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_messaging_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging-25.0.1.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_messaging/firebase-messaging.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_messaging/com_google_firebase_firebase_messaging.info"
- enable_bytecode_checks = false
- deps = [
@@ -4305,14 +4459,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
if (!defined(android_proto_runtime)) {
java_prebuilt("com_google_protobuf_protobuf_javalite_java") {
-@@ -889,190 +532,6 @@ template("define_autorolled_targets") {
+@@ -928,190 +573,6 @@ template("define_autorolled_targets") {
]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_android_datatransport_transport_api_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api-3.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_api/transport-api.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_api/com_google_android_datatransport_transport_api.info"
- enable_bytecode_checks = false
-
@@ -4330,7 +4484,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_backend_cct_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct-3.1.9.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_backend_cct/transport-backend-cct.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_backend_cct/com_google_android_datatransport_transport_backend_cct.info"
- enable_bytecode_checks = false
-
@@ -4354,7 +4508,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_android_datatransport_transport_runtime_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime-3.1.9.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_datatransport_transport_runtime/transport-runtime.aar"
- info_path = "autorolled/committed/libs/com_google_android_datatransport_transport_runtime/com_google_android_datatransport_transport_runtime.info"
- enable_bytecode_checks = false
-
@@ -4377,7 +4531,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_clearcut_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut-17.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_clearcut/play-services-clearcut.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_clearcut/com_google_android_gms_play_services_clearcut.info"
- enable_bytecode_checks = false
-
@@ -4400,7 +4554,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_cloud_messaging_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging-17.2.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_cloud_messaging/play-services-cloud-messaging.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_cloud_messaging/com_google_android_gms_play_services_cloud_messaging.info"
- enable_bytecode_checks = false
-
@@ -4420,7 +4574,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_flags_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags-18.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_flags/play-services-flags.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_flags/com_google_android_gms_play_services_flags.info"
- enable_bytecode_checks = false
-
@@ -4440,7 +4594,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_phenotype_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype-17.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_phenotype/play-services-phenotype.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_phenotype/com_google_android_gms_play_services_phenotype.info"
- enable_bytecode_checks = false
-
@@ -4462,7 +4616,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_play_services_stats_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats-17.0.2.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_gms_play_services_stats/play-services-stats.aar"
- info_path = "autorolled/committed/libs/com_google_android_gms_play_services_stats/com_google_android_gms_play_services_stats.info"
- enable_bytecode_checks = false
-
@@ -4481,7 +4635,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- android_aar_prebuilt("com_google_android_play_core_common_java") {
-- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common-2.0.3.aar"
+- aar_path = "autorolled/cipd/libs/com_google_android_play_core_common/core-common.aar"
- info_path = "autorolled/committed/libs/com_google_android_play_core_common/com_google_android_play_core_common.info"
- enable_bytecode_checks = false
-
@@ -4495,15 +4649,15 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
-
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt("com_google_auto_value_auto_value_annotations_java") {
- jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations-1.11.0.jar"
-@@ -1089,242 +548,6 @@ template("define_autorolled_targets") {
+ jar_path = "autorolled/cipd/libs/com_google_auto_value_auto_value_annotations/auto-value-annotations.jar"
+@@ -1128,242 +589,6 @@ template("define_autorolled_targets") {
testonly = true
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_annotations_java") {
-- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations-17.0.0.jar"
+- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_annotations/firebase-annotations.jar"
- output_name = "com_google_firebase_firebase_annotations"
- supports_android = true
- requires_android = true
@@ -4522,7 +4676,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_common_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_common/firebase-common-22.0.1.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_common/firebase-common.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_common/com_google_firebase_firebase_common.info"
- enable_bytecode_checks = false
-
@@ -4549,7 +4703,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_components_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_components/firebase-components-19.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_components/firebase-components.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_components/com_google_firebase_firebase_components.info"
- enable_bytecode_checks = false
-
@@ -4570,7 +4724,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_datatransport_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport-18.2.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_datatransport/firebase-datatransport.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_datatransport/com_google_firebase_firebase_datatransport.info"
- enable_bytecode_checks = false
-
@@ -4592,7 +4746,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_java") {
-- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders-17.0.0.jar"
+- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders/firebase-encoders.jar"
- output_name = "com_google_firebase_firebase_encoders"
- supports_android = true
- requires_android = true
@@ -4611,7 +4765,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_encoders_json_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json-18.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_json/firebase-encoders-json.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_encoders_json/com_google_firebase_firebase_encoders_json.info"
- enable_bytecode_checks = false
-
@@ -4631,7 +4785,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- java_prebuilt("google_firebase_firebase_encoders_proto_java") {
-- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto-16.0.0.jar"
+- jar_path = "autorolled/cipd/libs/com_google_firebase_firebase_encoders_proto/firebase-encoders-proto.jar"
- output_name = "com_google_firebase_firebase_encoders_proto"
- supports_android = true
- requires_android = true
@@ -4653,7 +4807,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_iid_interop_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop-17.1.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_iid_interop/firebase-iid-interop.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_iid_interop/com_google_firebase_firebase_iid_interop.info"
- enable_bytecode_checks = false
-
@@ -4673,7 +4827,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt("google_firebase_firebase_installations_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations/firebase-installations-18.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations/firebase-installations.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_installations/com_google_firebase_firebase_installations.info"
- enable_bytecode_checks = false
-
@@ -4698,7 +4852,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_installations_interop_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop-17.1.1.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_installations_interop/firebase-installations-interop.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_installations_interop/com_google_firebase_firebase_installations_interop.info"
- enable_bytecode_checks = false
-
@@ -4719,7 +4873,7 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
- if (google_play_services_package == "//third_party/android_deps") {
- android_aar_prebuilt(
- "google_firebase_firebase_measurement_connector_java") {
-- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector-19.0.0.aar"
+- aar_path = "autorolled/cipd/libs/com_google_firebase_firebase_measurement_connector/firebase-measurement-connector.aar"
- info_path = "autorolled/committed/libs/com_google_firebase_firebase_measurement_connector/com_google_firebase_firebase_measurement_connector.info"
- enable_bytecode_checks = false
-
@@ -4739,14 +4893,14 @@ diff --git a/third_party/android_deps/autorolled/BUILD.gn b/third_party/android_
# This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
java_prebuilt(
"com_google_testparameterinjector_test_parameter_injector_java") {
-@@ -1533,28 +756,6 @@ template("define_autorolled_targets") {
+@@ -1940,28 +1165,6 @@ template("define_autorolled_targets") {
deps = [ "//third_party/android_deps:org_jetbrains_kotlinx_kotlinx_coroutines_core_jvm_java" ]
}
- # This is generated, do not edit. Update BuildConfigGenerator.groovy instead.
- java_prebuilt(
- "org_jetbrains_kotlinx_kotlinx_coroutines_play_services_java") {
-- jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services-1.9.0.jar"
+- jar_path = "autorolled/cipd/libs/org_jetbrains_kotlinx_kotlinx_coroutines_play_services/kotlinx-coroutines-play-services.jar"
- output_name = "org_jetbrains_kotlinx_kotlinx_coroutines_play_services"
- supports_android = true
- requires_android = true
@@ -4790,12 +4944,15 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices
-import com.google.android.gms.common.GoogleApiAvailability;
-
import org.chromium.build.annotations.NullMarked;
-
- // Refer to go/doubledown-play-services#new-apis for more detail.
-@@ -33,9 +30,7 @@ public final class ChromiumPlayServicesAvailability {
+ import org.chromium.build.annotations.Nullable;
+ import org.chromium.base.ResettersForTesting;
+@@ -42,12 +39,7 @@ public final class ChromiumPlayServicesAvailability {
* PM/UX.
*/
public static boolean isGooglePlayServicesAvailable(final Context context) {
+- if (sIsAvailableForTesting != null) {
+- return sIsAvailableForTesting;
+- }
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER)
- == ConnectionResult.SUCCESS;
@@ -4803,14 +4960,17 @@ diff --git a/third_party/android_deps/util/org/chromium/gms/ChromiumPlayServices
}
/**
-@@ -53,7 +48,6 @@ public final class ChromiumPlayServicesAvailability {
+@@ -64,11 +56,4 @@ public final class ChromiumPlayServicesAvailability {
+ * the user to update GMS Core or fail with exception." If in doubt, please consult with your
* PM/UX.
*/
- public static int getGooglePlayServicesConnectionResult(final Context context) {
+- public static int getGooglePlayServicesConnectionResult(final Context context) {
+- if (sIsAvailableForTesting != null) {
+- return sIsAvailableForTesting ? ConnectionResult.SUCCESS : ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED;
+- }
- return GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(
- context, GMS_VERSION_NUMBER);
-+ return 16; // API_UNAVAILABLE
- }
+- }
}
diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/customizations.gni
--- a/third_party/androidx/customizations.gni
@@ -4824,7 +4984,7 @@ diff --git a/third_party/androidx/customizations.gni b/third_party/androidx/cust
_androidx_prebuilt(target_name) {
forward_variables_from(invoker, "*")
target_type = "android_aar_prebuilt"
-@@ -177,6 +177,18 @@ template("androidx_android_aar_prebuilt") {
+@@ -172,6 +172,18 @@ template("androidx_android_aar_prebuilt") {
}
}
diff --git a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch
index 5f08e3eb..5e209d20 100644
--- a/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch
+++ b/build/patches/Remove-blocklisted-URLs-upon-bookmark-creation.patch
@@ -23,15 +23,15 @@ diff --git a/chrome/browser/bookmarks/android/java/src/org/chromium/chrome/brows
/**
* Helper class for managing the UI flow for bookmarking the active tab and kicking off the backend.
* Shows a snackbar if a new bookmark was added. If the bookmark already exists, kicks off edit
-@@ -36,6 +42,7 @@ public class TabBookmarker {
- private final Supplier mSnackbarManagerSupplier;
+@@ -37,6 +43,7 @@ public class TabBookmarker {
private final BookmarkManagerOpener mBookmarkManagerOpener;
private final Supplier mPriceDropNotificationManagerSupplier;
+ private final Supplier mBookmarkBarVisibilitySupplier;
+ private MostVisitedSites mMostVisitedSites;
/**
* Constructor.
-@@ -119,6 +126,13 @@ public class TabBookmarker {
+@@ -122,6 +129,13 @@ public class TabBookmarker {
return;
}
diff --git a/build/patches/Remove-detection-of-captive-portals.patch b/build/patches/Remove-detection-of-captive-portals.patch
index c754a078..4a6b5683 100644
--- a/build/patches/Remove-detection-of-captive-portals.patch
+++ b/build/patches/Remove-detection-of-captive-portals.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/net/profile_network_context_service.cc b/chrome/browser/net/profile_network_context_service.cc
--- a/chrome/browser/net/profile_network_context_service.cc
+++ b/chrome/browser/net/profile_network_context_service.cc
-@@ -599,7 +599,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams(
+@@ -619,7 +619,7 @@ void ProfileNetworkContextService::ConfigureNetworkContextParams(
void ProfileNetworkContextService::RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) {
registry->RegisterBooleanPref(embedder_support::kAlternateErrorPagesEnabled,
diff --git a/build/patches/Remove-help-menu-item.patch b/build/patches/Remove-help-menu-item.patch
index cdaa261d..329f5f83 100644
--- a/build/patches/Remove-help-menu-item.patch
+++ b/build/patches/Remove-help-menu-item.patch
@@ -26,10 +26,10 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/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
-@@ -1134,9 +1134,6 @@ public class KeyboardShortcuts {
- currentTab.goForward();
+@@ -1172,9 +1172,6 @@ public class KeyboardShortcuts {
+ return true;
}
- return true;
+ return false;
- case KeyboardShortcutsSemanticMeaning.OPEN_HELP:
- menuOrKeyboardActionController.onMenuOrKeyboardAction(R.id.help_id, false);
- return true;
@@ -39,7 +39,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/KeyboardShortcu
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -2544,15 +2544,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -2603,15 +2603,6 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
final Tab currentTab = getActivityTab();
@@ -58,7 +58,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/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
-@@ -137,6 +137,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
+@@ -138,6 +138,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_and_feedback);
@@ -91,7 +91,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browsing_data/C
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabActivity.java
-@@ -1153,7 +1153,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
+@@ -1173,7 +1173,6 @@ public abstract class BaseCustomTabActivity extends ChromeActivity {
// Disable creating new tabs, bookmark, print, help, focus_url, etc.
if (id == R.id.focus_url_bar
|| id == R.id.all_bookmarks_menu_id
@@ -113,7 +113,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -701,6 +701,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -765,6 +765,7 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
help.setIcon(
TraceEventVectorDrawableCompat.create(
getResources(), R.drawable.ic_help_and_feedback, getTheme()));
@@ -135,7 +135,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/G
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/ManageSyncSettings.java
-@@ -318,6 +318,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
+@@ -311,6 +311,7 @@ public class ManageSyncSettings extends ChromeBaseSettingsFragment
MenuItem help =
menu.add(Menu.NONE, R.id.menu_id_targeted_help, Menu.NONE, R.string.menu_help);
help.setIcon(R.drawable.ic_help_and_feedback);
@@ -146,7 +146,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/M
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedAppMenuPropertiesDelegate.java
-@@ -399,7 +399,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
+@@ -407,7 +407,7 @@ public class TabbedAppMenuPropertiesDelegate extends AppMenuPropertiesDelegateIm
}
// Help
diff --git a/build/patches/Remove-segmentation-platform.patch b/build/patches/Remove-segmentation-platform.patch
index b02d30cb..0a955948 100644
--- a/build/patches/Remove-segmentation-platform.patch
+++ b/build/patches/Remove-segmentation-platform.patch
@@ -47,7 +47,7 @@ diff --git a/chrome/browser/segmentation_platform/chrome_browser_main_extra_part
diff --git a/components/segmentation_platform/public/features.cc b/components/segmentation_platform/public/features.cc
--- a/components/segmentation_platform/public/features.cc
+++ b/components/segmentation_platform/public/features.cc
-@@ -281,4 +281,7 @@ constexpr base::FeatureParam kNewFeatures{&kAndroidTipsNotifications,
+@@ -291,4 +291,7 @@ constexpr base::FeatureParam kNewFeatures{&kAndroidTipsNotifications,
"new_features",
/*default_value=*/false};
diff --git a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
index 533a60cd..0f9a6d7d 100644
--- a/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
+++ b/build/patches/Remove-support-for-device-memory-and-cpu-recovery.patch
@@ -10,11 +10,11 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../browser/blob/blob_memory_controller.cc | 20 ++++++++++---------
.../browser/quota/quota_device_info_helper.cc | 17 ++++++++++++++--
.../approximated_device_memory.cc | 7 ++++++-
- .../frame/navigator_concurrent_hardware.cc | 20 ++++++-------------
+ .../frame/navigator_concurrent_hardware.cc | 8 ++++++--
.../measure_memory_controller.cc | 5 +++++
.../blink/renderer/core/timing/memory_info.cc | 14 ++++++++++---
.../core/timing/window_performance.cc | 2 +-
- 10 files changed, 66 insertions(+), 30 deletions(-)
+ 10 files changed, 66 insertions(+), 18 deletions(-)
create mode 100644 cromite_flags/third_party/blink/common/features_cc/Remove-support-for-device-memory-and-cpu-recovery.inc
create mode 100644 cromite_flags/third_party/blink/common/features_h/Remove-support-for-device-memory-and-cpu-recovery.inc
@@ -82,7 +82,7 @@ diff --git a/storage/browser/blob/blob_memory_controller.cc b/storage/browser/bl
- : base::SysInfo::AmountOfPhysicalMemory().InBytesUnsigned();
+ : approximated_device_memory_gb_.InBytesUnsigned();
if (disk_enabled && CreateBlobDirectory(storage_dir) == base::File::FILE_OK)
-- disk_size = base::SysInfo::AmountOfTotalDiskSpace(storage_dir);
+- disk_size = base::SysInfo::AmountOfTotalDiskSpace(storage_dir).value_or(-1);
+ disk_size = approximated_device_disk_size;
BlobStorageLimits limits;
@@ -124,7 +124,7 @@ diff --git a/storage/browser/quota/quota_device_info_helper.cc b/storage/browser
int64_t QuotaDeviceInfoHelper::AmountOfTotalDiskSpace(
const base::FilePath& path) const {
-- int64_t disk_space = base::SysInfo::AmountOfTotalDiskSpace(path);
+- int64_t disk_space = base::SysInfo::AmountOfTotalDiskSpace(path).value_or(-1);
+ int64_t disk_space = approximated_device_disk_size;
UMA_HISTOGRAM_BOOLEAN("Quota.TotalDiskSpaceIsZero", disk_space <= 0);
return disk_space;
@@ -162,30 +162,17 @@ diff --git a/third_party/blink/common/device_memory/approximated_device_memory.c
diff --git a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
--- a/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
+++ b/third_party/blink/renderer/core/frame/navigator_concurrent_hardware.cc
-@@ -3,26 +3,18 @@
+@@ -3,13 +3,17 @@
// found in the LICENSE file.
#include "third_party/blink/renderer/core/frame/navigator_concurrent_hardware.h"
-
+#include "build/build_config.h"
#include "base/system/sys_info.h"
- #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
namespace blink {
--namespace {
--
--// TODO(435582603): Hard-coding this to a common value is a reasonable start,
--// but it likely makes sense to vary the hard-coded number by platform and
--// form-factor in order to maintain plausibility over time.
--constexpr unsigned kReducedHardwareConcurrencyValue = 8u;
--
--} // namespace
--
unsigned NavigatorConcurrentHardware::hardwareConcurrency() const {
-- if (RuntimeEnabledFeatures::ReduceHardwareConcurrencyEnabled()) {
-- return kReducedHardwareConcurrencyValue;
-- }
- return static_cast(base::SysInfo::NumberOfProcessors());
+#if BUILDFLAG(IS_ANDROID)
+ return static_cast(4);
diff --git a/build/patches/Remove-voice-recognition-integration.patch b/build/patches/Remove-voice-recognition-integration.patch
index 466d492e..feaa38dc 100644
--- a/build/patches/Remove-voice-recognition-integration.patch
+++ b/build/patches/Remove-voice-recognition-integration.patch
@@ -24,12 +24,13 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
.../suggestions/AutocompleteMediator.java | 10 ---
.../omnibox/voice/VoiceRecognitionUtil.java | 1 +
chrome/browser/ui/android/toolbar/BUILD.gn | 1 -
- 20 files changed, 10 insertions(+), 260 deletions(-)
+ .../toolbar/VoiceToolbarButtonController.java | 1 +
+ 21 files changed, 11 insertions(+), 260 deletions(-)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/BaseCustomTabRootUiCoordinator.java
-@@ -496,7 +496,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
+@@ -492,7 +492,7 @@ public class BaseCustomTabRootUiCoordinator extends RootUiCoordinator {
mIntentDataProvider.get(),
AppCompatResources.getDrawable(mActivity, R.drawable.ic_open_in_new_white_24dp),
mOpenInBrowserRunnable,
@@ -41,15 +42,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
-@@ -75,7 +75,6 @@ import org.chromium.chrome.browser.ntp_customization.NtpCustomizationUtils;
- import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordinator;
+@@ -79,7 +79,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi
+ import org.chromium.chrome.browser.ntp_customization.theme.BackgroundImageInfo;
import org.chromium.chrome.browser.omnibox.OmniboxFocusReason;
import org.chromium.chrome.browser.omnibox.OmniboxStub;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.readaloud.ReadAloudController;
-@@ -138,7 +137,6 @@ public class NewTabPage
+@@ -142,7 +141,6 @@ public class NewTabPage
TemplateUrlServiceObserver,
BrowserControlsStateProvider.Observer,
FeedSurfaceDelegate,
@@ -57,7 +58,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
ModuleDelegateHost {
private static final String TAG = "NewTabPage";
-@@ -172,7 +170,6 @@ public class NewTabPage
+@@ -176,7 +174,6 @@ public class NewTabPage
protected boolean mIsDefaultSearchEngineGoogle;
protected @Nullable OmniboxStub mOmniboxStub;
@@ -65,7 +66,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
// The timestamp at which the constructor was called.
protected final long mConstructedTimeNs;
-@@ -385,8 +382,7 @@ public class NewTabPage
+@@ -390,8 +387,7 @@ public class NewTabPage
@Override
public boolean isVoiceSearchEnabled() {
@@ -75,7 +76,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
}
@Override
-@@ -394,24 +390,6 @@ public class NewTabPage
+@@ -399,24 +395,6 @@ public class NewTabPage
if (mIsDestroyed) return;
FeedReliabilityLogger feedReliabilityLogger =
mFeedSurfaceProvider.getReliabilityLogger();
@@ -100,7 +101,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
}
@Override
-@@ -1001,12 +979,6 @@ public class NewTabPage
+@@ -1055,12 +1033,6 @@ public class NewTabPage
mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger);
}
}
@@ -113,7 +114,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
}
/**
-@@ -1025,11 +997,6 @@ public class NewTabPage
+@@ -1079,11 +1051,6 @@ public class NewTabPage
}
}
@@ -125,7 +126,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
/** Adds an observer to be notified on most visited tile clicks. */
public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) {
mMostVisitedTileClickObservers.addObserver(observer);
-@@ -1115,9 +1082,6 @@ public class NewTabPage
+@@ -1169,9 +1136,6 @@ public class NewTabPage
mOmniboxStub.removeUrlFocusChangeListener(feedReliabilityLogger);
}
mFeedSurfaceProvider.destroy();
@@ -138,10 +139,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/SearchBoxMediator.java
-@@ -92,7 +92,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver {
+@@ -91,7 +91,6 @@ class SearchBoxMediator implements DestroyObserver, NativeInitObserver {
+ mModel.set(SearchBoxProperties.VOICE_SEARCH_DRAWABLE, drawable);
- ColorStateList colorStateList =
- ThemeUtils.getThemedToolbarIconTint(mContext, BrandedColorScheme.APP_DEFAULT);
+ ColorStateList colorStateList = NtpCustomizationUtils.getSearchBoxIconColorTint(mContext);
- mModel.set(SearchBoxProperties.VOICE_SEARCH_COLOR_STATE_LIST, colorStateList);
}
@@ -149,17 +150,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/search/Sear
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java
-@@ -69,7 +69,6 @@ import org.chromium.chrome.browser.rlz.RevenueStats;
- import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
- import org.chromium.chrome.browser.tab.Tab;
+@@ -70,7 +70,6 @@ import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
+ import org.chromium.chrome.browser.tab.TabFavicon;
import org.chromium.chrome.browser.tabmodel.TabModelSelector;
+ import org.chromium.chrome.browser.tabwindow.TabWindowInfo;
-import org.chromium.chrome.browser.toolbar.VoiceToolbarButtonController;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
import org.chromium.chrome.browser.ui.native_page.NativePage;
@@ -332,7 +331,7 @@ public class SearchActivity extends AsyncInitializationActivity
+ this::bringTabGroupToFront,
/*omniboxUma*/ (url, transition, isNtp) -> {},
- TabWindowManagerSingleton::getInstance,
/* bookmarkState= */ (url) -> false,
- VoiceToolbarButtonController::isToolbarMicEnabled,
+ /* isToolbarMicEnabled */ () -> false,
@@ -194,7 +195,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/Se
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -996,7 +996,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -980,7 +980,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
mTabBookmarkerSupplier,
mBookmarkModelSupplier,
mActivityTabProvider,
@@ -202,11 +203,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
+ () -> {},
groupSuggestionsButtonControllerSupplier,
mTabModelSelectorSupplier,
- mModalDialogManagerSupplier);
+ mModalDialogManagerSupplier,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
-@@ -109,7 +109,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub;
+@@ -119,7 +119,6 @@ import org.chromium.chrome.browser.omnibox.OmniboxStub;
import org.chromium.chrome.browser.omnibox.OverrideUrlLoadingDelegateImpl;
import org.chromium.chrome.browser.omnibox.UrlFocusChangeListener;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener;
@@ -214,7 +215,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/Toolbar
import org.chromium.chrome.browser.page_info.ChromePageInfo;
import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
import org.chromium.chrome.browser.preferences.ChromeSharedPreferences;
-@@ -3177,10 +3176,6 @@ public class ToolbarManager
+@@ -3266,10 +3265,6 @@ public class ToolbarManager
return mLocationBar.getOmniboxStub();
}
@@ -314,15 +315,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/AdaptiveTool
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordinator.java
-@@ -107,7 +107,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi
+@@ -117,7 +117,6 @@ import org.chromium.chrome.browser.ntp_customization.edge_to_edge.TopInsetCoordi
+ import org.chromium.chrome.browser.omnibox.OmniboxActionDelegateImpl;
import org.chromium.chrome.browser.omnibox.OmniboxFocusReason;
import org.chromium.chrome.browser.omnibox.geo.GeolocationHeader;
- import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionDelegateImpl;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.paint_preview.DemoPaintPreview;
import org.chromium.chrome.browser.password_manager.ManagePasswordsReferrer;
import org.chromium.chrome.browser.password_manager.PasswordManagerLauncher;
-@@ -308,7 +307,6 @@ public class RootUiCoordinator
+@@ -325,7 +324,6 @@ public class RootUiCoordinator
private LayoutManagerImpl mLayoutManager;
protected OneshotSupplier mIntentMetadataOneshotSupplier;
protected OneshotSupplierImpl mPromoShownOneshotSupplier = new OneshotSupplierImpl<>();
@@ -330,17 +331,17 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
private MediaCaptureOverlayController mCaptureController;
private @Nullable ScrollCaptureManager mScrollCaptureManager;
protected final ActivityLifecycleDispatcher mActivityLifecycleDispatcher;
-@@ -708,9 +706,6 @@ public class RootUiCoordinator
+@@ -778,9 +776,6 @@ public class RootUiCoordinator
}
if (mToolbarManager != null) {
- if (mMicStateObserver != null && mToolbarManager.getVoiceRecognitionHandler() != null) {
- mToolbarManager.getVoiceRecognitionHandler().removeObserver(mMicStateObserver);
- }
- mTopControlsStacker.removeControl(mToolbarContainer);
mToolbarManager.destroy();
mToolbarManager = null;
-@@ -1672,23 +1667,10 @@ public class RootUiCoordinator
+ }
+@@ -1746,23 +1741,10 @@ public class RootUiCoordinator
if (!mSupportsAppMenuSupplier.getAsBoolean()) {
mToolbarManager.getToolbar().disableMenuButton();
}
@@ -367,7 +368,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
diff --git a/chrome/browser/ui/android/omnibox/BUILD.gn b/chrome/browser/ui/android/omnibox/BUILD.gn
--- a/chrome/browser/ui/android/omnibox/BUILD.gn
+++ b/chrome/browser/ui/android/omnibox/BUILD.gn
-@@ -160,7 +160,6 @@ android_library("java") {
+@@ -162,7 +162,6 @@ android_library("java") {
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionView.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewBinder.java",
"java/src/org/chromium/chrome/browser/omnibox/suggestions/tail/TailSuggestionViewProperties.java",
@@ -384,9 +385,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.tab.Tab;
+ import org.chromium.components.browser_ui.accessibility.PageZoomUtils;
- /** Container that holds the {@link UrlBar} and SSL state related with the current {@link Tab}. */
-@@ -76,11 +75,6 @@ public interface LocationBar {
+@@ -77,11 +76,6 @@ public interface LocationBar {
*/
View getSecurityIconView();
@@ -401,7 +402,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/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
-@@ -48,7 +48,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams;
+@@ -50,7 +50,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsDropdownScrollListener;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxSuggestionsVisualState;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
@@ -409,7 +410,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.search_engines.TemplateUrlServiceFactory;
import org.chromium.chrome.browser.share.ShareDelegate;
-@@ -526,12 +525,6 @@ public class LocationBarCoordinator
+@@ -560,12 +559,6 @@ public class LocationBarCoordinator
return mLocationBarLayout.getSecurityIconView();
}
@@ -422,7 +423,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public @Nullable OmniboxStub getOmniboxStub() {
return mLocationBarMediator;
-@@ -695,7 +688,7 @@ public class LocationBarCoordinator
+@@ -729,7 +722,7 @@ public class LocationBarCoordinator
public void startAutocompletePrefetch() {
if (!mNativeInitialized) return;
mAutocompleteCoordinator.prefetchZeroSuggestResults(
@@ -431,7 +432,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
/**
-@@ -861,11 +854,6 @@ public class LocationBarCoordinator
+@@ -895,11 +888,6 @@ public class LocationBarCoordinator
// End tablet-specific methods.
@@ -454,7 +455,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.components.browser_ui.widget.CompositeTouchDelegate;
import org.chromium.components.embedder_support.util.UrlUtilities;
import org.chromium.ui.base.DeviceFormFactor;
-@@ -449,11 +448,6 @@ public class LocationBarLayout extends ConstraintLayout {
+@@ -458,11 +457,6 @@ public class LocationBarLayout extends ConstraintLayout {
mSearchEngineUtils = searchEngineUtils;
}
@@ -469,7 +470,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/LocationBarMediator.java
-@@ -66,7 +66,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
+@@ -67,7 +67,6 @@ import org.chromium.chrome.browser.omnibox.status.StatusCoordinator;
import org.chromium.chrome.browser.omnibox.styles.OmniboxResourceProvider;
import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator;
import org.chromium.chrome.browser.omnibox.suggestions.OmniboxLoadUrlParams;
@@ -477,7 +478,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesSettingsBridge;
import org.chromium.chrome.browser.prefetch.settings.PreloadPagesState;
import org.chromium.chrome.browser.profiles.Profile;
-@@ -114,8 +113,6 @@ import java.util.function.Supplier;
+@@ -117,8 +116,6 @@ import java.util.function.Supplier;
class LocationBarMediator
implements LocationBarDataProvider.Observer,
OmniboxStub,
@@ -486,7 +487,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
UrlBarDelegate,
OnKeyListener,
ComponentCallbacks,
-@@ -174,7 +171,6 @@ class LocationBarMediator
+@@ -177,7 +174,6 @@ class LocationBarMediator
};
private final LocationBarLayout mLocationBarLayout;
@@ -494,7 +495,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
private final LocationBarDataProvider mLocationBarDataProvider;
private final @Nullable BrowserControlsStateProvider mBrowserControlsStateProvider;
private final LocationBarEmbedderUiOverrides mEmbedderUiOverrides;
-@@ -256,8 +252,6 @@ class LocationBarMediator
+@@ -266,8 +262,6 @@ class LocationBarMediator
mEmbedderUiOverrides = embedderUiOverrides;
mOverrideUrlLoadingDelegate = overrideUrlLoadingDelegate;
mLocaleManager = localeManager;
@@ -503,7 +504,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mProfileSupplier = profileSupplier;
mProfileSupplier.addObserver(mCallbackController.makeCancelable(this::setProfile));
mTemplateUrlServiceSupplier = templateUrlServiceSupplier;
-@@ -312,9 +306,6 @@ class LocationBarMediator
+@@ -356,9 +350,6 @@ class LocationBarMediator
mStatusCoordinator = null;
mAutocompleteCoordinator = null;
mUrlCoordinator = null;
@@ -513,7 +514,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
mLocationBarDataProvider.removeObserver(this);
mDeferredNativeRunnables.clear();
mUrlFocusChangeListeners.clear();
-@@ -451,11 +442,6 @@ class LocationBarMediator
+@@ -500,11 +491,6 @@ class LocationBarMediator
mLocationBarLayout.setUnfocusedWidth(unfocusedWidth);
}
@@ -525,7 +526,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/* package */ void setLensControllerForTesting(LensController lensController) {
mLensController = lensController;
}
-@@ -763,10 +749,6 @@ class LocationBarMediator
+@@ -811,10 +797,6 @@ class LocationBarMediator
// Hide keyboard before launch voice search to avoid keyboard action announcement in
// TalkBack to be picked up by voice search.
mUrlCoordinator.setKeyboardVisibility(false, false);
@@ -536,7 +537,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
}
/** package */
-@@ -1345,10 +1327,7 @@ class LocationBarMediator
+@@ -1459,10 +1441,7 @@ class LocationBarMediator
}
if (shouldShowDeleteButton()) return false;
@@ -548,15 +549,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
return false;
}
boolean isToolbarMicEnabled = mIsToolbarMicEnabledSupplier.getAsBoolean();
-@@ -1366,6 +1345,7 @@ class LocationBarMediator
+@@ -1480,6 +1459,7 @@ class LocationBarMediator
@VisibleForTesting
boolean shouldShowLensButton() {
+ if ((true)) return false;
- if (mNavigationFulfillmentTypeSupplier.get() != NavigationFulfillmentType.DEFAULT) {
+ if (mAutocompleteRequestTypeSupplier.get() != AutocompleteRequestType.SEARCH) {
return false;
}
-@@ -1656,11 +1636,6 @@ class LocationBarMediator
+@@ -1788,11 +1768,6 @@ class LocationBarMediator
}
}
@@ -568,7 +569,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
@Override
public void addUrlFocusChangeListener(UrlFocusChangeListener listener) {
mUrlFocusChangeListeners.addObserver(listener);
-@@ -1676,31 +1651,13 @@ class LocationBarMediator
+@@ -1808,31 +1783,13 @@ class LocationBarMediator
return mUrlHasFocus;
}
@@ -602,7 +603,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
public void setSearchQuery(String query) {
if (TextUtils.isEmpty(query)) return;
-@@ -1723,20 +1680,6 @@ class LocationBarMediator
+@@ -1855,20 +1812,6 @@ class LocationBarMediator
mUrlCoordinator.setKeyboardVisibility(true, false);
}
@@ -657,9 +658,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.OmniboxMetrics;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler.VoiceResult;
import org.chromium.chrome.browser.profiles.Profile;
- import org.chromium.chrome.browser.tab.Tab;
import org.chromium.components.omnibox.AutocompleteInput;
-@@ -333,25 +332,6 @@ public class AutocompleteController {
+ import org.chromium.components.omnibox.AutocompleteMatch;
+@@ -331,25 +330,6 @@ public class AutocompleteController {
mNativeController, match.getNativeObjectRef(), matchIndex, webContents);
}
@@ -685,9 +686,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
/**
* Updates searchbox stats parameters on the selected match that we will navigate to and
* returns the updated URL.
-@@ -471,11 +451,6 @@ public class AutocompleteController {
- Tab getMatchingTabForSuggestion(
- long nativeAutocompleteControllerAndroid, long nativeAutocompleteMatch);
+@@ -453,11 +433,6 @@ public class AutocompleteController {
+ long nativeAutocompleteMatch,
+ long elapsedTimeSinceInputChange);
- void setVoiceMatches(
- long nativeAutocompleteControllerAndroid,
@@ -700,7 +701,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteCoordinator.java
-@@ -33,7 +33,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On
+@@ -35,7 +35,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteController.On
import org.chromium.chrome.browser.omnibox.suggestions.SuggestionListViewBinder.SuggestionListViewHolder;
import org.chromium.chrome.browser.omnibox.suggestions.base.BaseSuggestionViewBinder;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
@@ -708,7 +709,7 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
-@@ -308,13 +307,6 @@ public class AutocompleteCoordinator
+@@ -305,13 +304,6 @@ public class AutocompleteCoordinator
}
}
@@ -725,15 +726,15 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
-@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteCoordinator.O
- import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.AutocompleteLoadCallback;
+@@ -45,7 +45,6 @@ import org.chromium.chrome.browser.omnibox.suggestions.AutocompleteDelegate.Auto
import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionFactoryImpl;
+ import org.chromium.chrome.browser.omnibox.suggestions.action.OmniboxActionInSuggest;
import org.chromium.chrome.browser.omnibox.suggestions.basic.BasicSuggestionProcessor.BookmarkState;
-import org.chromium.chrome.browser.omnibox.voice.VoiceRecognitionHandler;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.chrome.browser.share.ShareDelegate;
import org.chromium.chrome.browser.tab.Tab;
-@@ -510,15 +509,6 @@ class AutocompleteMediator
+@@ -519,15 +518,6 @@ class AutocompleteMediator
mShouldPreventOmniboxAutocomplete = prevent;
}
@@ -771,4 +772,15 @@ diff --git a/chrome/browser/ui/android/toolbar/BUILD.gn b/chrome/browser/ui/andr
"java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveButtonActionMenuCoordinator.java",
"java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBehavior.java",
"java/src/org/chromium/chrome/browser/toolbar/adaptive/AdaptiveToolbarBridge.java",
+diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/VoiceToolbarButtonController.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/VoiceToolbarButtonController.java
+--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/VoiceToolbarButtonController.java
++++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/VoiceToolbarButtonController.java
+@@ -134,6 +134,7 @@ public class VoiceToolbarButtonController extends BaseButtonDataProvider {
+
+ /** Returns whether the feature flags allow showing the mic icon in the toolbar. */
+ public static boolean isToolbarMicEnabled() {
++ if ((true)) return false;
+ if (!FeatureList.isInitialized()) return false;
+ return AdaptiveToolbarFeatures.isCustomizationEnabled();
+ }
--
diff --git a/build/patches/Remove-window-name-on-cross-origin-navigation.patch b/build/patches/Remove-window-name-on-cross-origin-navigation.patch
index 2e8db53d..b62abfee 100644
--- a/build/patches/Remove-window-name-on-cross-origin-navigation.patch
+++ b/build/patches/Remove-window-name-on-cross-origin-navigation.patch
@@ -34,7 +34,7 @@ new file mode 100644
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
-@@ -2989,7 +2989,8 @@ void DocumentLoader::CommitNavigation() {
+@@ -2976,7 +2976,8 @@ void DocumentLoader::CommitNavigation() {
// that the name would be nulled and if the name is accessed after we will
// fire a UseCounter. If we decide to move forward with this change, we'd
// actually clean the name here.
@@ -44,7 +44,7 @@ diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_p
frame_->Tree().ExperimentalSetNulledName();
}
-@@ -3000,6 +3001,7 @@ void DocumentLoader::CommitNavigation() {
+@@ -2987,6 +2988,7 @@ void DocumentLoader::CommitNavigation() {
// TODO(shuuran): CrossSiteCrossBrowsingContextGroupSetNulledName will just
// record the fact that the name would be nulled and if the name is accessed
// after we will fire a UseCounter.
diff --git a/build/patches/Restore-LastTabStandingTracker.patch b/build/patches/Restore-LastTabStandingTracker.patch
index 602dee0f..4416526b 100644
--- a/build/patches/Restore-LastTabStandingTracker.patch
+++ b/build/patches/Restore-LastTabStandingTracker.patch
@@ -27,7 +27,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -1625,6 +1625,16 @@ static_library("browser") {
+@@ -1588,6 +1588,16 @@ static_library("browser") {
"webdata_services/web_data_service_factory.cc",
]
@@ -391,7 +391,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
#include "chrome/browser/permissions/notifications_engagement_service_factory.h"
#include "chrome/browser/permissions/one_time_permissions_tracker_factory.h"
#include "chrome/browser/permissions/origin_keyed_permission_action_service_factory.h"
-@@ -1122,6 +1123,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -1132,6 +1133,7 @@ void ChromeBrowserMainExtraPartsProfiles::
#if BUILDFLAG(BUILD_WITH_TFLITE_LIB)
OnDeviceTailModelServiceFactory::GetInstance();
#endif
@@ -402,7 +402,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
-@@ -51,6 +51,7 @@
+@@ -50,6 +50,7 @@
#include "chrome/browser/page_info/page_info_features.h"
#include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h"
#include "chrome/browser/password_manager/chrome_password_manager_client.h"
@@ -410,7 +410,7 @@ diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
#include "chrome/browser/permissions/one_time_permissions_tracker_helper.h"
#include "chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.h"
#include "chrome/browser/predictors/loading_predictor_factory.h"
-@@ -444,6 +445,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
+@@ -450,6 +451,7 @@ void TabHelpers::AttachTabHelpers(WebContents* web_contents) {
HistoryEmbeddingsTabHelper::CreateForWebContents(web_contents);
HttpsOnlyModeTabHelper::CreateForWebContents(web_contents);
webapps::InstallableManager::CreateForWebContents(web_contents);
diff --git a/build/patches/Restore-Search-Ready-Omnibox-flag.patch b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
index fc884bbc..873e128c 100644
--- a/build/patches/Restore-Search-Ready-Omnibox-flag.patch
+++ b/build/patches/Restore-Search-Ready-Omnibox-flag.patch
@@ -11,11 +11,11 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
chrome/browser/flags/android/chrome_feature_list.cc | 1 +
.../chrome/browser/flags/ChromeFeatureList.java | 1 +
- .../DropdownItemViewInfoListBuilder.java | 9 ++++++++-
+ .../DropdownItemViewInfoListBuilder.java | 8 +++++++-
.../restore-Search-Ready-Omnibox-flag.inc | 13 +++++++++++++
.../restore-Search-Ready-Omnibox-flag.inc | 3 +++
.../restore-Search-Ready-Omnibox-flag.inc | 1 +
- 6 files changed, 27 insertions(+), 1 deletion(-)
+ 6 files changed, 26 insertions(+), 1 deletion(-)
create mode 100644 cromite_flags/chrome/browser/about_flags_cc/restore-Search-Ready-Omnibox-flag.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_cc/restore-Search-Ready-Omnibox-flag.inc
create mode 100644 cromite_flags/chrome/browser/flags/android/chrome_feature_list_h/restore-Search-Ready-Omnibox-flag.inc
@@ -23,8 +23,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -394,6 +394,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kReadAloudIPHMenuButtonHighlightCCT,
+@@ -399,6 +399,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+ &kReadAloudTapToSeek,
&kRecordSuppressionMetrics,
&kReengagementNotification,
+ &kSearchReadyOmniboxFeature,
@@ -34,7 +34,7 @@ diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browse
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -489,6 +489,7 @@ public abstract class ChromeFeatureList {
+@@ -495,6 +495,7 @@ public abstract class ChromeFeatureList {
public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP =
"MitigateLegacySearchEnginePromoOverlap";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
@@ -45,23 +45,15 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
--- a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
+++ b/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/browser/omnibox/suggestions/DropdownItemViewInfoListBuilder.java
-@@ -9,6 +9,7 @@ import android.text.TextUtils;
-
- import androidx.annotation.VisibleForTesting;
-
-+import org.chromium.chrome.browser.flags.ChromeFeatureList;
- import org.chromium.build.annotations.Initializer;
- import org.chromium.build.annotations.NullMarked;
- import org.chromium.build.annotations.Nullable;
-@@ -55,6 +56,7 @@ class DropdownItemViewInfoListBuilder {
- private Optional mImageSupplier;
+@@ -57,6 +57,7 @@ class DropdownItemViewInfoListBuilder {
+ private @Nullable OmniboxImageSupplier mImageSupplier;
private final BookmarkState mBookmarkState;
- private final Supplier<@ControlsPosition Integer> mToolbarPositionSupplier;
+ private final ObservableSupplier<@ControlsPosition Integer> mToolbarPositionSupplier;
+ private EditUrlSuggestionProcessor mEditUrlSuggestionProcessor;
DropdownItemViewInfoListBuilder(
Supplier<@Nullable Tab> tabSupplier,
-@@ -109,10 +111,12 @@ class DropdownItemViewInfoListBuilder {
+@@ -109,10 +110,12 @@ class DropdownItemViewInfoListBuilder {
mGroupSeparatorProcessor = new GroupSeparatorProcessor(uiContext.context);
mHeaderProcessor = new HeaderProcessor(uiContext.context);
@@ -75,9 +67,9 @@ diff --git a/chrome/browser/ui/android/omnibox/java/src/org/chromium/chrome/brow
registerSuggestionProcessor(new TailSuggestionProcessor(uiContext));
registerSuggestionProcessor(new MostVisitedTilesProcessor(uiContext));
if (OmniboxFeatures.sAndroidHubSearchTabGroups.isEnabled()) {
-@@ -192,6 +196,9 @@ class DropdownItemViewInfoListBuilder {
- mHeaderProcessor.onNativeInitialized();
- mImageSupplier.ifPresent(s -> s.onNativeInitialized());
+@@ -200,6 +203,9 @@ class DropdownItemViewInfoListBuilder {
+ mImageSupplier.onNativeInitialized();
+ }
+ if (ChromeFeatureList.isEnabled(ChromeFeatureList.SEARCH_READY_OMNIBOX) == false) {
+ mPriorityOrderedSuggestionProcessors.remove(mEditUrlSuggestionProcessor);
diff --git a/build/patches/Restore-Simplified-NTP-launch.patch b/build/patches/Restore-Simplified-NTP-launch.patch
index edc03b17..de6629c1 100644
--- a/build/patches/Restore-Simplified-NTP-launch.patch
+++ b/build/patches/Restore-Simplified-NTP-launch.patch
@@ -67,7 +67,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
-@@ -53,6 +53,11 @@ chrome_java_resources = [
+@@ -55,6 +55,11 @@ chrome_java_resources = [
"java/res/drawable-hdpi/ic_exit_to_app_white_24dp.png",
"java/res/drawable-hdpi/ic_file_download_white_24dp.png",
"java/res/drawable-hdpi/ic_link_grey600_36dp.png",
@@ -79,7 +79,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/drawable-hdpi/ic_phone_googblue_36dp.png",
"java/res/drawable-hdpi/ic_photo_camera.png",
"java/res/drawable-hdpi/ic_place_googblue_36dp.png",
-@@ -538,6 +543,7 @@ chrome_java_resources = [
+@@ -547,6 +552,7 @@ chrome_java_resources = [
"java/res/layout/manage_sync_settings_bottom_bar.xml",
"java/res/layout/material_tooltip.xml",
"java/res/layout/multiline_spinner_item.xml",
@@ -87,7 +87,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
"java/res/layout/mv_tiles_layout.xml",
"java/res/layout/navigation_bubble.xml",
"java/res/layout/navigation_sheet.xml",
-@@ -547,8 +553,10 @@ chrome_java_resources = [
+@@ -556,8 +562,10 @@ chrome_java_resources = [
"java/res/layout/new_custom_tab_toolbar.xml",
"java/res/layout/new_tab_page_incognito.xml",
"java/res/layout/new_tab_page_layout.xml",
@@ -101,7 +101,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
-@@ -617,6 +617,7 @@ chrome_java_sources = [
+@@ -623,6 +623,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/feedback/FeedFeedbackCollector.java",
"java/src/org/chromium/chrome/browser/feedback/HelpAndFeedbackLauncherImpl.java",
"java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java",
@@ -109,7 +109,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
"java/src/org/chromium/chrome/browser/findinpage/FindToolbar.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarManager.java",
"java/src/org/chromium/chrome/browser/findinpage/FindToolbarObserver.java",
-@@ -1031,6 +1032,7 @@ chrome_java_sources = [
+@@ -1046,6 +1047,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/suggestions/mostvisited/MostVisitedSitesMetadataUtils.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesCoordinator.java",
"java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesLayout.java",
@@ -575,12 +575,12 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -3482,7 +3482,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
- mTopInsetCoordinatorSupplier,
+@@ -3458,7 +3458,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
getStartupMetricsTracker(),
mRootUiCoordinator.getExclusiveAccessManager(),
-- mBackPressManager);
-+ mBackPressManager,
+ mBackPressManager,
+- mMultiInstanceManager);
++ mMultiInstanceManager,
+ mBookmarkManagerOpenerSupplier);
}
return mTabDelegateFactory;
@@ -596,7 +596,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.contextmenu.ChromeContextMenuPopulator;
-@@ -55,6 +56,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
+@@ -56,6 +57,8 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
import java.util.List;
import java.util.function.Supplier;
@@ -605,7 +605,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
/**
* {@link TabDelegateFactory} class to be used in all {@link Tab} instances owned by a {@link
* ChromeTabbedActivity}.
-@@ -88,6 +91,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
+@@ -89,6 +92,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
private final ObservableSupplier mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
private final @Nullable ExclusiveAccessManager mExclusiveAccessManager;
@@ -613,31 +613,31 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
+
private @Nullable NativePageFactory mNativePageFactory;
private final BackPressManager mBackPressManager;
-
-@@ -119,7 +124,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- ObservableSupplier topInsetCoordinatorSupplier,
+ private final MultiInstanceManager mMultiInstanceManager;
+@@ -122,7 +127,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
StartupMetricsTracker startupMetricsTracker,
@Nullable ExclusiveAccessManager exclusiveAccessManager,
-- BackPressManager backPressManager) {
-+ BackPressManager backPressManager,
+ BackPressManager backPressManager,
+- MultiInstanceManager multiInstanceManager) {
++ MultiInstanceManager multiInstanceManager,
+ @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) {
mActivity = activity;
mAppBrowserControlsVisibilityDelegate = appBrowserControlsVisibilityDelegate;
mShareDelegateSupplier = shareDelegateSupplier;
-@@ -148,6 +154,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- mStartupMetricsTracker = startupMetricsTracker;
+@@ -152,6 +158,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mExclusiveAccessManager = exclusiveAccessManager;
mBackPressManager = backPressManager;
+ mMultiInstanceManager = multiInstanceManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
@Override
-@@ -218,7 +225,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
- mEdgeToEdgeControllerSupplier,
+@@ -224,7 +231,8 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
mTopInsetCoordinatorSupplier,
mStartupMetricsTracker,
-- mBackPressManager);
-+ mBackPressManager,
+ mBackPressManager,
+- mMultiInstanceManager);
++ mMultiInstanceManager,
+ mBookmarkManagerOpenerSupplier);
}
return mNativePageFactory.createNativePage(url, candidatePage, tab, pdfInfo);
@@ -730,7 +730,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
-@@ -95,6 +97,7 @@ public class NativePageFactory {
+@@ -96,6 +98,7 @@ public class NativePageFactory {
private final ObservableSupplier mEdgeToEdgeControllerSupplier;
private final ObservableSupplier mTopInsetCoordinatorSupplier;
private final StartupMetricsTracker mStartupMetricsTracker;
@@ -738,38 +738,38 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
private @Nullable NewTabPageCreationTracker mNewTabPageCreationTracker;
private @Nullable NativePageBuilder mNativePageBuilder;
-@@ -119,7 +122,8 @@ public class NativePageFactory {
- ObservableSupplier edgeToEdgeControllerSupplier,
+@@ -122,7 +125,8 @@ public class NativePageFactory {
ObservableSupplier topInsetCoordinatorSupplier,
StartupMetricsTracker startupMetricsTracker,
-- BackPressManager backPressManager) {
-+ BackPressManager backPressManager,
+ BackPressManager backPressManager,
+- MultiInstanceManager multiInstanceManager) {
++ MultiInstanceManager multiInstanceManager,
+ @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) {
mActivity = activity;
mBottomSheetController = sheetController;
mBrowserControlsManager = browserControlsManager;
-@@ -138,6 +142,7 @@ public class NativePageFactory {
- mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier;
+@@ -142,6 +146,7 @@ public class NativePageFactory {
mStartupMetricsTracker = startupMetricsTracker;
mBackPressManager = backPressManager;
+ mMultiInstanceManager = multiInstanceManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
private NativePageBuilder getBuilder() {
-@@ -162,7 +167,8 @@ public class NativePageFactory {
- mEdgeToEdgeControllerSupplier,
+@@ -167,7 +172,8 @@ public class NativePageFactory {
mTopInsetCoordinatorSupplier,
mStartupMetricsTracker,
-- mBackPressManager);
-+ mBackPressManager,
+ mBackPressManager,
+- mMultiInstanceManager);
++ mMultiInstanceManager,
+ mBookmarkManagerOpenerSupplier);
}
return mNativePageBuilder;
}
-@@ -196,9 +202,10 @@ public class NativePageFactory {
- private final ObservableSupplier mTopInsetCoordinatorSupplier;
+@@ -202,9 +208,10 @@ public class NativePageFactory {
private final StartupMetricsTracker mStartupMetricsTracker;
private final BackPressManager mBackPressManager;
+ private final MultiInstanceManager mMultiInstanceManager;
+ private final ObservableSupplier mBookmarkManagerOpenerSupplier;
public NativePageBuilder(
@@ -778,30 +778,30 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
Supplier newTabPageCreationTracker,
BottomSheetController sheetController,
BrowserControlsManager browserControlsManager,
-@@ -216,7 +223,8 @@ public class NativePageFactory {
- ObservableSupplier edgeToEdgeControllerSupplier,
+@@ -223,7 +230,8 @@ public class NativePageFactory {
ObservableSupplier topInsetCoordinatorSupplier,
StartupMetricsTracker startupMetricsTracker,
-- BackPressManager backPressManager) {
-+ BackPressManager backPressManager,
+ BackPressManager backPressManager,
+- MultiInstanceManager multiInstanceManager) {
++ MultiInstanceManager multiInstanceManager,
+ @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) {
mActivity = activity;
mNewTabPageCreationTracker = newTabPageCreationTracker;
mBottomSheetController = sheetController;
-@@ -236,6 +244,7 @@ public class NativePageFactory {
- mTopInsetCoordinatorSupplier = topInsetCoordinatorSupplier;
+@@ -244,6 +252,7 @@ public class NativePageFactory {
mStartupMetricsTracker = startupMetricsTracker;
mBackPressManager = backPressManager;
+ mMultiInstanceManager = multiInstanceManager;
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
}
protected NativePage buildNewTabPage(Tab tab, String url) {
-@@ -273,7 +282,8 @@ public class NativePageFactory {
- mModuleRegistrySupplier,
+@@ -282,7 +291,8 @@ public class NativePageFactory {
mEdgeToEdgeControllerSupplier,
mTopInsetCoordinatorSupplier,
-- mStartupMetricsTracker);
-+ mStartupMetricsTracker,
+ mStartupMetricsTracker,
+- mMultiInstanceManager);
++ mMultiInstanceManager,
+ mBookmarkManagerOpenerSupplier);
}
@@ -809,7 +809,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/native_page/NativePageNavigationDelegateImpl.java
-@@ -28,7 +28,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition;
+@@ -29,7 +29,7 @@ import org.chromium.ui.mojom.WindowOpenDisposition;
/** {@link NativePageNavigationDelegate} implementation. */
@NullMarked
public class NativePageNavigationDelegateImpl implements NativePageNavigationDelegate {
@@ -821,7 +821,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
-@@ -126,6 +126,9 @@ import org.chromium.ui.base.DeviceFormFactor;
+@@ -130,6 +130,9 @@ import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.WindowAndroid;
import org.chromium.url.GURL;
@@ -831,29 +831,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
import java.util.List;
import java.util.function.Supplier;
-@@ -502,7 +505,8 @@ public class NewTabPage
- OneshotSupplier moduleRegistrySupplier,
+@@ -510,7 +513,8 @@ public class NewTabPage
ObservableSupplier edgeToEdgeControllerSupplier,
ObservableSupplier topInsetCoordinatorSupplier,
-- StartupMetricsTracker startupMetricsTracker) {
-+ StartupMetricsTracker startupMetricsTracker,
+ StartupMetricsTracker startupMetricsTracker,
+- MultiInstanceManager multiInstanceManager) {
++ MultiInstanceManager multiInstanceManager,
+ @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) {
mConstructedTimeNs = System.nanoTime();
TraceEvent.begin(TAG);
-@@ -526,7 +530,7 @@ public class NewTabPage
-
- SuggestionsNavigationDelegate navigationDelegate =
- new SuggestionsNavigationDelegate(
-- activity, profile, nativePageHost, tabModelSelector, mTab);
-+ activity, profile, nativePageHost, tabModelSelector, mTab, bookmarkManagerOpenerSupplier);
+@@ -539,7 +543,7 @@ public class NewTabPage
+ nativePageHost,
+ tabModelSelector,
+ mTab,
+- multiInstanceManager);
++ multiInstanceManager, bookmarkManagerOpenerSupplier);
mNewTabPageManager =
new NewTabPageManagerImpl(
navigationDelegate, profile, nativePageHost, snackbarManager);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
-@@ -12,6 +12,7 @@ import android.graphics.Rect;
+@@ -13,6 +13,7 @@ import android.graphics.Rect;
import android.text.Editable;
import android.util.AttributeSet;
import android.view.DragEvent;
@@ -861,7 +861,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewStub;
-@@ -40,6 +41,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
+@@ -41,6 +42,7 @@ import org.chromium.chrome.browser.feed.FeedSurfaceScrollDelegate;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.incognito.IncognitoUtils;
import org.chromium.chrome.browser.lens.LensEntryPoint;
@@ -869,15 +869,15 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
import org.chromium.chrome.browser.lens.LensMetrics;
import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
import org.chromium.chrome.browser.logo.LogoBridge.Logo;
-@@ -58,6 +60,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
+@@ -60,6 +62,7 @@ import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesCoordinator;
import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesLayout;
import org.chromium.chrome.browser.suggestions.tile.TileGroup;
import org.chromium.chrome.browser.suggestions.tile.TileGroup.Delegate;
+import org.chromium.chrome.browser.suggestions.tile.MostVisitedTilesGridLayout;
import org.chromium.chrome.browser.tab_ui.InvalidationAwareThumbnailProvider;
import org.chromium.chrome.browser.ui.native_page.TouchEnabledDelegate;
- import org.chromium.chrome.browser.util.BrowserUiUtils;
-@@ -104,6 +107,8 @@ public class NewTabPageLayout extends LinearLayout
+ import org.chromium.chrome.browser.ui.signin.signin_promo.NtpSigninPromoCoordinator;
+@@ -111,6 +114,8 @@ public class NewTabPageLayout extends LinearLayout
private @Nullable DisplayStyleObserver mDisplayStyleObserver;
private CallbackController mCallbackController = new CallbackController();
@@ -886,7 +886,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
/**
* Whether the tiles shown in the layout have finished loading.
* With {@link #mHasShownView}, it's one of the 2 flags used to track initialisation progress.
-@@ -116,7 +121,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -123,7 +128,7 @@ public class NewTabPageLayout extends LinearLayout
*/
private boolean mHasShownView;
@@ -895,7 +895,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mSearchProviderIsGoogle;
private boolean mShowingNonStandardGoogleLogo;
private boolean mIsOmniboxMobileParityUpdateV2Enabled;
-@@ -124,7 +129,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -131,7 +136,7 @@ public class NewTabPageLayout extends LinearLayout
private boolean mInitialized;
private float mUrlFocusChangePercent;
@@ -904,7 +904,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
private boolean mIsViewMoving;
/** Flag used to request some layout changes after the next layout pass is completed. */
-@@ -299,6 +304,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -305,6 +310,7 @@ public class NewTabPageLayout extends LinearLayout
initializeMostVisitedTilesCoordinator(
mProfile, lifecycleDispatcher, tileGroupDelegate, touchEnabledDelegate);
initializeDseIconView(shouldShowDseIcon());
@@ -912,7 +912,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
initializeSearchBoxTextView();
initializeVoiceSearchButton();
initializeLensButton();
-@@ -686,8 +692,8 @@ public class NewTabPageLayout extends LinearLayout
+@@ -730,8 +736,8 @@ public class NewTabPageLayout extends LinearLayout
private void calculateTabletMvtWidth(int totalWidth) {
if (mMvTilesContainerLayout.getVisibility() == GONE) return;
@@ -923,7 +923,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
updateMvtOnTablet();
}
-@@ -737,7 +743,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -781,7 +787,7 @@ public class NewTabPageLayout extends LinearLayout
&& mInitialized) {
return;
}
@@ -932,7 +932,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
mSearchProviderIsGoogle = isGoogle;
if (!mSearchProviderIsGoogle) {
-@@ -786,6 +792,7 @@ public class NewTabPageLayout extends LinearLayout
+@@ -830,6 +836,7 @@ public class NewTabPageLayout extends LinearLayout
* @param disable Whether to disable the animations.
*/
void setUrlFocusAnimationsDisabled(boolean disable) {
@@ -940,7 +940,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageL
if (disable == mDisableUrlFocusChangeAnimations) return;
mDisableUrlFocusChangeAnimations = disable;
if (!disable) onUrlFocusAnimationChanged();
-@@ -1188,6 +1195,22 @@ public class NewTabPageLayout extends LinearLayout
+@@ -1232,6 +1239,22 @@ public class NewTabPageLayout extends LinearLayout
return mMostVisitedTilesCoordinator;
}
@@ -978,7 +978,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/SuggestionsNavigationDelegate.java
-@@ -23,17 +23,42 @@ import org.chromium.ui.base.PageTransition;
+@@ -24,18 +24,43 @@ import org.chromium.ui.base.PageTransition;
import org.chromium.ui.mojom.WindowOpenDisposition;
import org.chromium.url.GURL;
@@ -1001,10 +1001,11 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/Sug
Profile profile,
NativePageHost host,
TabModelSelector tabModelSelector,
-- Tab tab) {
-+ Tab tab,
+ Tab tab,
+- MultiInstanceManager multiInstanceManager) {
++ MultiInstanceManager multiInstanceManager,
+ @NonNull ObservableSupplier bookmarkManagerOpenerSupplier) {
- super(activity, profile, host, tabModelSelector, tab);
+ super(activity, profile, host, tabModelSelector, tab, multiInstanceManager);
+ mBookmarkManagerOpenerSupplier = bookmarkManagerOpenerSupplier;
+ }
+
@@ -1337,8 +1338,8 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/suggestions/tile/MostVisitedTilesMediator.java
-@@ -44,7 +44,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
-
+@@ -46,7 +46,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+ private final Context mContext;
private final Resources mResources;
private final UiConfig mUiConfig;
- private final MostVisitedTilesLayout mMvTilesLayout;
@@ -1346,16 +1347,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
private final PropertyModel mModel;
private final boolean mIsTablet;
private final int mTileViewLandscapePadding;
-@@ -67,7 +67,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -69,7 +69,7 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
public MostVisitedTilesMediator(
- Resources resources,
+ Context context,
UiConfig uiConfig,
- MostVisitedTilesLayout mvTilesLayout,
+ MostVisitedTilesGridLayout mvTilesLayout,
TileRenderer renderer,
PropertyModel propertyModel,
boolean isTablet,
-@@ -211,12 +211,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -214,12 +214,10 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
@Override
public void onCustomTileCreation(Tile tile) {
@@ -1368,7 +1369,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/suggestions/til
}
public void onConfigurationChanged() {
-@@ -326,7 +324,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
+@@ -329,7 +327,5 @@ public class MostVisitedTilesMediator implements TileGroup.Observer {
double firstTileScore = mTileGroup.getSuggestionScore(firstTile.getUrl());
if (firstTileScore < MVT_CUSTOMIZATION_IPH_TILE_SCORE_THRESHOULD) return;
@@ -1515,18 +1516,18 @@ diff --git a/chrome/browser/engagement/important_sites_util.cc b/chrome/browser/
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -349,6 +349,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kIncognitoThemeOverlayTesting,
+@@ -352,6 +352,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kInstanceSwitcherV2,
&kKeyboardEscBackNavigation,
+ &kLegacyTabStateDeprecation,
+ &kSimplifiedNTP,
&kLensOnQuickActionSearchWidget,
+ &kLoadAllTabsAtStartup,
&kLoadNativeEarly,
- &kMagicStackAndroid,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
--- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
+++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -490,6 +490,7 @@ public abstract class ChromeFeatureList {
+@@ -496,6 +496,7 @@ public abstract class ChromeFeatureList {
public static final String MITIGATE_LEGACY_SEARCH_ENGINE_PROMO_OVERLAP =
"MitigateLegacySearchEnginePromoOverlap";
public static final String MOST_VISITED_TILES_CUSTOMIZATION = "MostVisitedTilesCustomization";
@@ -1534,10 +1535,10 @@ diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/f
public static final String SEARCH_READY_OMNIBOX = "SearchReadyOmnibox";
public static final String MOST_VISITED_TILES_RESELECT = "MostVisitedTilesReselect";
public static final String MULTI_INSTANCE_APPLICATION_STATUS_CLEANUP =
-@@ -980,7 +981,7 @@ public abstract class ChromeFeatureList {
- // TODO(https://crbug.com/438970923): Remove the use of BuildConfig by 2025 EoY.
+@@ -969,7 +970,7 @@ public abstract class ChromeFeatureList {
+ newCachedFlag(LOCK_BACK_PRESS_HANDLER_AT_START, true);
public static final CachedFlag sLockTopControlsOnLargeTabletsV2 =
- newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, BuildConfig.IS_DESKTOP_ANDROID);
+ newCachedFlag(LOCK_TOP_CONTROLS_ON_LARGE_TABLETS_V2, false);
- public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, true);
+ public static final CachedFlag sMagicStackAndroid = newCachedFlag(MAGIC_STACK_ANDROID, false);
public static final CachedFlag sMaliciousApkDownloadCheck =
@@ -1557,7 +1558,7 @@ diff --git a/chrome/browser/segmentation_platform/android/java/src/org/chromium/
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3908,6 +3908,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -3965,6 +3965,12 @@ To change this setting, BEGIN_LINKdelete the Chrome d
Recent tabs
@@ -1567,8 +1568,8 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
+
+ Your most visited pages will appear here
+
-
- Item removed
+
+ This site won't be shown again
diff --git a/components/history/core/browser/top_sites_constants.h b/components/history/core/browser/top_sites_constants.h
--- a/components/history/core/browser/top_sites_constants.h
@@ -1597,7 +1598,7 @@ diff --git a/components/ntp_tiles/custom_links_store.cc b/components/ntp_tiles/c
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
-@@ -219,6 +219,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED);
+@@ -207,6 +207,7 @@ BASE_FEATURE(kRemoveSearchReadyOmnibox, DISABLED);
BASE_FEATURE(kDefaultTypedNavigationsToHttps,
"OmniboxDefaultTypedNavigationsToHttps",
enable_if(IS_IOS));
@@ -1605,7 +1606,7 @@ diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/
// Override the delay to create a spare renderer when the omnibox is focused
// on Android.
-@@ -305,6 +306,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
+@@ -293,6 +294,7 @@ BASE_FEATURE(kOmniboxMobileParityUpdate, ENABLED);
// Updates various NTP/Omnibox assets and descriptions for visual alignment on
// Android and iOS, V2.
BASE_FEATURE(kOmniboxMobileParityUpdateV2, ENABLED);
diff --git a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
index d2b582b9..1fe605af 100644
--- a/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
+++ b/build/patches/Restore-adaptive-button-in-top-toolbar-customization.patch
@@ -87,7 +87,7 @@ diff --git a/chrome/browser/segmentation_platform/segmentation_platform_config.c
diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
--- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
+++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4963,6 +4963,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
+@@ -5034,6 +5034,9 @@ To change this setting, BEGIN_LINKdelete the Chrome d
View
diff --git a/build/patches/Restore-chrome-password-store.patch b/build/patches/Restore-chrome-password-store.patch
index 4d0a4d7e..0eb5ba1f 100644
--- a/build/patches/Restore-chrome-password-store.patch
+++ b/build/patches/Restore-chrome-password-store.patch
@@ -16,6 +16,8 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
...e_password_preferences_action_bar_menu.xml | 36 +
chrome/android/java/res/values/dimens.xml | 6 +
.../android/java/res/xml/main_preferences.xml | 3 +-
+ .../AutofillPaymentMethodsFragment.java | 1 +
+ .../settings/AutofillProfilesFragment.java | 1 +
.../settings/PasswordSettings.java | 697 ++++++++++++++++++
.../settings/FragmentDependencyProvider.java | 5 +
.../chrome/browser/settings/MainSettings.java | 12 -
@@ -84,7 +86,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
.../core/common/password_manager_pref_names.h | 2 -
components/sync/service/sync_prefs.cc | 2 +-
.../Restore-chrome-password-store.inc | 1 +
- 76 files changed, 5536 insertions(+), 71 deletions(-)
+ 78 files changed, 5538 insertions(+), 71 deletions(-)
create mode 100644 chrome/android/java/res/layout/password_no_result.xml
create mode 100644 chrome/android/java/res/menu/save_password_preferences_action_bar_menu.xml
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
@@ -130,7 +132,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
-@@ -803,6 +803,10 @@ if (_is_default_toolchain) {
+@@ -806,6 +806,10 @@ if (_is_default_toolchain) {
"//url/mojom:url_mojom_origin_java",
]
@@ -141,7 +143,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
deps += feed_deps
srcjar_deps = [
-@@ -946,6 +950,10 @@ if (_is_default_toolchain) {
+@@ -948,6 +952,10 @@ if (_is_default_toolchain) {
"//components/visited_url_ranking/internal:internal_java",
]
@@ -155,7 +157,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
-@@ -643,3 +643,8 @@ chrome_java_resources = [
+@@ -655,3 +655,8 @@ chrome_java_resources = [
"java/res/xml/tracing_preferences.xml",
"java/res/xml/unified_account_settings_preferences.xml",
]
@@ -167,7 +169,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -875,6 +875,7 @@ chrome_java_sources = [
+@@ -886,6 +886,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerDialogViewBinder.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerErrorMessageHelperBridge.java",
"java/src/org/chromium/chrome/browser/password_manager/PasswordManagerLauncher.java",
@@ -178,7 +180,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -455,10 +455,9 @@ by a child template that "extends" this file.
+@@ -466,10 +466,9 @@ by a child template that "extends" this file.
@@ -301,6 +303,28 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
android:key="passwords"
android:order="12"
android:title="@string/password_manager_settings_title"/>
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillPaymentMethodsFragment.java
+@@ -839,6 +839,7 @@ public class AutofillPaymentMethodsFragment extends ChromeBaseSettingsFragment
+ }
+
+ private boolean disabledSettingsInThirdPartyMode() {
++ if ((true)) return false;
+ return (AutofillClientProviderUtils.getAndroidAutofillFrameworkAvailability(
+ UserPrefs.get(getProfile()))
+ == AndroidAutofillAvailabilityStatus.AVAILABLE)
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/settings/AutofillProfilesFragment.java
+@@ -442,6 +442,7 @@ public class AutofillProfilesFragment extends ChromeBaseSettingsFragment
+ }
+
+ private boolean disabledSettingsInThirdPartyMode() {
++ if ((true)) return false;
+ return AutofillClientProviderUtils.getAndroidAutofillFrameworkAvailability(
+ UserPrefs.get(getProfile()))
+ == AndroidAutofillAvailabilityStatus.AVAILABLE
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
new file mode 100644
--- /dev/null
@@ -1028,7 +1052,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Fragme
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -481,18 +481,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
+@@ -489,18 +489,6 @@ public class MainSettings extends ChromeBaseSettingsFragment
preference ->
SettingsNavigationHelper.showAutofillProfileSettings(
getActivity()));
@@ -1066,7 +1090,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
case SettingsFragment.GOOGLE_SERVICES:
case SettingsFragment.MANAGE_SYNC:
case SettingsFragment.FINANCIAL_ACCOUNTS:
-@@ -109,6 +111,8 @@ public class SettingsNavigationImpl implements SettingsNavigation {
+@@ -127,6 +129,8 @@ public class SettingsNavigationImpl implements SettingsNavigation {
return SiteSettings.class;
case SettingsFragment.ACCESSIBILITY:
return AccessibilitySettings.class;
@@ -1078,7 +1102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3369,6 +3369,13 @@ static_library("browser") {
+@@ -3353,6 +3353,13 @@ static_library("browser") {
"touch_to_fill/password_manager/touch_to_fill_controller_webauthn_delegate.h",
]
@@ -2965,7 +2989,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
import org.chromium.components.browser_ui.settings.SettingsCustomTabLauncher;
import org.chromium.components.sync.SyncService;
import org.chromium.ui.modaldialog.ModalDialogManager;
-@@ -173,6 +174,7 @@ public class PasswordManagerHelper {
+@@ -172,6 +173,7 @@ public class PasswordManagerHelper {
Context context,
Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier,
SettingsCustomTabLauncher settingsCustomTabLauncher) {
@@ -2973,7 +2997,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
// Automotive doesn't support the export flow.
if (!DeviceInfo.isAutomotive()
&& LoginDbDeprecationUtilBridge.hasPasswordsInCsv(mProfile)) {
-@@ -180,16 +182,6 @@ public class PasswordManagerHelper {
+@@ -179,16 +181,6 @@ public class PasswordManagerHelper {
return true;
}
@@ -2990,7 +3014,7 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
return false;
}
-@@ -417,6 +409,11 @@ public class PasswordManagerHelper {
+@@ -413,6 +405,11 @@ public class PasswordManagerHelper {
Supplier<@Nullable ModalDialogManager> modalDialogManagerSupplier,
Context context,
@Nullable String account) {
@@ -5997,7 +6021,7 @@ diff --git a/chrome/browser/password_manager/password_manager_settings_service_f
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -3064,13 +3064,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
+@@ -2815,13 +2815,6 @@ void MigrateObsoleteProfilePrefs(PrefService* profile_prefs,
profile_prefs->ClearPref(kObsoletePasswordsUseUPMLocalAndSeparateStores);
profile_prefs->ClearPref(kObsoleteEmptyProfileStoreLoginDatabase);
profile_prefs->ClearPref(kObsoleteUpmAutoExportCsvNeedsDeletion);
@@ -6014,7 +6038,7 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/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
-@@ -682,7 +682,7 @@ For more settings that use data to improve your Chrome experience, go to
@@ -6023,7 +6047,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
Password saving is turned on by your administrator
-@@ -782,6 +782,127 @@ For more settings that use data to improve your Chrome experience, go to
@@ -6168,9 +6192,9 @@ new file mode 100644
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
-@@ -786,6 +786,7 @@ BASE_FEATURE(kAutofillDeepLinkAutofillOptions,
+@@ -860,6 +860,7 @@ BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipRedesign,
// TODO: crbug.com/385172647 - Clean up after the feature is launched.
- BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipRedesign,
+ BASE_FEATURE(kAutofillEnableKeyboardAccessoryChipWidthAdjustment,
base::FEATURE_DISABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kAutofillDeepLinkAutofillOptions);
@@ -6231,7 +6255,7 @@ diff --git a/components/password_manager/core/browser/import/password_importer.c
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc
--- a/components/password_manager/core/browser/password_manager.cc
+++ b/components/password_manager/core/browser/password_manager.cc
-@@ -598,9 +598,7 @@ void PasswordManager::RegisterProfilePrefs(
+@@ -615,9 +615,7 @@ void PasswordManager::RegisterProfilePrefs(
registry->RegisterIntegerPref(prefs::kTotalPasswordsAvailableForProfile, 0);
registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForAccount, 0);
registry->RegisterIntegerPref(prefs::kPasswordRemovalReasonForProfile, 0);
@@ -6279,7 +6303,7 @@ diff --git a/components/password_manager/core/browser/password_manager_constants
diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/components/password_manager/core/browser/password_store/BUILD.gn
--- a/components/password_manager/core/browser/password_store/BUILD.gn
+++ b/components/password_manager/core/browser/password_store/BUILD.gn
-@@ -75,6 +75,19 @@ source_set("password_store_impl") {
+@@ -72,6 +72,19 @@ source_set("password_store_impl") {
"android_backend_error.h",
"password_data_type_controller_delegate_android.cc",
"password_data_type_controller_delegate_android.h",
@@ -6302,7 +6326,7 @@ diff --git a/components/password_manager/core/browser/password_store/BUILD.gn b/
diff --git a/components/password_manager/core/browser/password_store/login_database_posix.cc b/components/password_manager/core/browser/password_store/login_database_posix.cc
--- a/components/password_manager/core/browser/password_store/login_database_posix.cc
+++ b/components/password_manager/core/browser/password_store/login_database_posix.cc
-@@ -44,7 +44,7 @@ EncryptionResult LoginDatabase::DecryptedString(
+@@ -42,7 +42,7 @@ EncryptionResult LoginDatabase::DecryptedString(
const std::string& cipher_text,
std::u16string* plain_text) const {
#if !BUILDFLAG(IS_FUCHSIA)
@@ -6311,10 +6335,10 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab
// On ChromeOS, we have a mix of obfuscated and plain-text
// passwords. Obfuscated passwords always start with "v10", therefore anything
// else is plain-text.
-@@ -66,7 +66,7 @@ EncryptionResult LoginDatabase::DecryptedString(
+@@ -63,7 +63,7 @@ EncryptionResult LoginDatabase::DecryptedString(
+
bool decryption_success =
- encryptor_ ? encryptor_->DecryptString16(cipher_text, plain_text)
- : OSCrypt::DecryptString16(cipher_text, plain_text);
+ encryptor_ && encryptor_->DecryptString16(cipher_text, plain_text);
-#if BUILDFLAG(IS_CHROMEOS)
+#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
// If decryption failed, we assume it was because the value was actually a
@@ -6323,7 +6347,7 @@ diff --git a/components/password_manager/core/browser/password_store/login_datab
diff --git a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
--- a/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
+++ b/components/password_manager/core/browser/password_store/password_store_built_in_backend.cc
-@@ -154,6 +154,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
+@@ -150,6 +150,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
DCHECK(helper_);
affiliated_match_helper_ = affiliated_match_helper;
@@ -6331,7 +6355,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
// To ensure that groups of the kClearUndecryptablePasswords will stay
// balanced, after the cleanup is done an additional flag check is needed.
// Users won't reach the flag the normal way since the LoginDB is working
-@@ -162,6 +163,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
+@@ -158,6 +159,7 @@ void PasswordStoreBuiltInBackend::InitBackend(
if (pref_service_->GetBoolean(prefs::kClearingUndecryptablePasswords)) {
base::FeatureList::IsEnabled(features::kClearUndecryptablePasswords);
}
@@ -6339,7 +6363,7 @@ diff --git a/components/password_manager/core/browser/password_store/password_st
background_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&LoginDatabaseAsyncHelper::CreateSyncBackend,
-@@ -450,11 +452,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
+@@ -434,11 +436,15 @@ void PasswordStoreBuiltInBackend::OnEncryptorReceived(
weak_ptr_factory_.GetWeakPtr()))
.Then(std::move(remote_form_changes_received));
diff --git a/build/patches/Restore-classic-new-tab-page.patch b/build/patches/Restore-classic-new-tab-page.patch
index 97fc2545..597fe35e 100644
--- a/build/patches/Restore-classic-new-tab-page.patch
+++ b/build/patches/Restore-classic-new-tab-page.patch
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
--- a/chrome/browser/search/search.cc
+++ b/chrome/browser/search/search.cc
-@@ -96,17 +96,6 @@ enum NewTabURLState {
+@@ -95,17 +95,6 @@ enum NewTabURLState {
NEW_TAB_URL_MAX
};
@@ -28,7 +28,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
bool IsMatchingServiceWorker(const GURL& my_url, const GURL& document_url) {
// The origin should match.
if (!MatchesOrigin(my_url, document_url)) {
-@@ -143,20 +132,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) {
+@@ -142,20 +131,6 @@ bool IsNTPOrRelatedURLHelper(const GURL& url, Profile* profile) {
IsMatchingServiceWorker(url, new_tab_url));
}
@@ -49,7 +49,7 @@ diff --git a/chrome/browser/search/search.cc b/chrome/browser/search/search.cc
// Used to look up the URL to use for the New Tab page. Also tracks how we
// arrived at that URL so it can be logged with UMA.
struct NewTabURLDetails {
-@@ -179,33 +154,8 @@ struct NewTabURLDetails {
+@@ -178,33 +153,8 @@ struct NewTabURLDetails {
const GURL local_url(default_is_google
? chrome::kChromeUINewTabPageURL
: chrome::kChromeUINewTabPageThirdPartyURL);
diff --git a/build/patches/Restore-offline-indicator-v2-flag.patch b/build/patches/Restore-offline-indicator-v2-flag.patch
index 5aabe246..5ba4bcac 100644
--- a/build/patches/Restore-offline-indicator-v2-flag.patch
+++ b/build/patches/Restore-offline-indicator-v2-flag.patch
@@ -92,7 +92,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/in
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -1396,7 +1396,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1372,7 +1372,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
private void initStatusIndicatorCoordinator(LayoutManagerImpl layoutManager) {
// TODO(crbug.com/40112282): Disable on tablets for now as we need to do one or two extra
// things for tablets.
@@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
return;
}
-@@ -1430,6 +1431,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -1406,6 +1407,11 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
hubManager.setStatusIndicatorHeight(mStatusIndicatorHeight);
});
@@ -117,25 +117,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -367,6 +367,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kNotificationPermissionVariant,
+@@ -377,6 +377,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
&kNotificationPermissionBottomSheet,
+ &kNotificationPermissionVariant,
&kNotificationTrampoline,
+ &kOfflineIndicatorV2,
- &kTinkerTankBottomSheet,
- &kPageAnnotationsService,
- &kPageContentProvider,
+ &kOmahaMinSdkVersionAndroid,
+ &kOmniboxAutofocusOnIncognitoNtp,
+ &kPCCTMinimumHeight,
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
-@@ -511,6 +511,7 @@ public abstract class ChromeFeatureList {
+@@ -514,6 +514,7 @@ public abstract class ChromeFeatureList {
"NotificationPermissionBottomSheet";
public static final String NOTIFICATION_PERMISSION_VARIANT = "NotificationPermissionVariant";
public static final String NOTIFICATION_TRAMPOLINE = "NotificationTrampoline";
+ public static final String OFFLINE_INDICATOR_V2 = "OfflineIndicatorV2";
public static final String OMAHA_MIN_SDK_VERSION_ANDROID = "OmahaMinSdkVersionAndroid";
- public static final String OMNIBOX_CACHE_SUGGESTION_RESOURCES =
- "OmniboxCacheSuggestionResources";
+ public static final String OMNIBOX_AUTOFOCUS_ON_INCOGNITO_NTP =
+ "OmniboxAutofocusOnIncognitoNtp";
diff --git a/cromite_flags/chrome/browser/about_flags_cc/Restore-offline-indicator-v2-flag.inc b/cromite_flags/chrome/browser/about_flags_cc/Restore-offline-indicator-v2-flag.inc
new file mode 100644
--- /dev/null
diff --git a/build/patches/Revert-Permit-blocking-of-view-source.patch b/build/patches/Revert-Permit-blocking-of-view-source.patch
index 08a2d8c4..15a06c0c 100644
--- a/build/patches/Revert-Permit-blocking-of-view-source.patch
+++ b/build/patches/Revert-Permit-blocking-of-view-source.patch
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/policy/content/policy_blocklist_navigation_throttle.cc b/components/policy/content/policy_blocklist_navigation_throttle.cc
--- a/components/policy/content/policy_blocklist_navigation_throttle.cc
+++ b/components/policy/content/policy_blocklist_navigation_throttle.cc
-@@ -56,6 +56,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() =
+@@ -59,6 +59,7 @@ PolicyBlocklistNavigationThrottle::~PolicyBlocklistNavigationThrottle() =
default;
bool PolicyBlocklistNavigationThrottle::IsBlockedViewSourceNavigation() {
diff --git a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
index 55e9c4ab..8ddf934e 100644
--- a/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
+++ b/build/patches/Revert-flags-remove-disable-pull-to-refresh-effect.patch
@@ -21,7 +21,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
-@@ -2457,6 +2457,10 @@
+@@ -2513,6 +2513,10 @@
"yangsharon@google.com", "alexmos@google.com", "creis@google.com" ],
"expiry_milestone": 150
},
@@ -49,7 +49,7 @@ 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
-@@ -45,4 +45,10 @@ found in the LICENSE file.
+@@ -50,4 +50,10 @@ found in the LICENSE file.
android:key="image_descriptions"
android:title="@string/image_descriptions_settings_title" />
@@ -113,7 +113,7 @@ diff --git a/ui/android/overscroll_refresh.cc b/ui/android/overscroll_refresh.cc
top_at_scroll_start_(true),
bottom_at_scroll_start_(false),
overflow_y_hidden_(false),
-@@ -95,7 +96,7 @@ void OverscrollRefresh::OnOverscrolled(const cc::OverscrollBehavior& behavior,
+@@ -99,7 +100,7 @@ void OverscrollRefresh::OnOverscrolled(const cc::OverscrollBehavior& behavior,
}
// Pull-to-refresh. Check overscroll-behavior-y
if (ydelta > 0) {
@@ -125,7 +125,7 @@ diff --git a/ui/android/overscroll_refresh.cc b/ui/android/overscroll_refresh.cc
diff --git a/ui/android/overscroll_refresh.h b/ui/android/overscroll_refresh.h
--- a/ui/android/overscroll_refresh.h
+++ b/ui/android/overscroll_refresh.h
-@@ -47,7 +47,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh {
+@@ -48,7 +48,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh {
static constexpr int kDefaultNavigationEdgeWidth = 24;
// LINT.ThenChange(//ui/android/java/src/org/chromium/ui/OverscrollRefreshHandler.java:kDefaultNavigationEdgeWidth)
@@ -134,7 +134,7 @@ diff --git a/ui/android/overscroll_refresh.h b/ui/android/overscroll_refresh.h
OverscrollRefresh(const OverscrollRefresh&) = delete;
OverscrollRefresh& operator=(const OverscrollRefresh&) = delete;
-@@ -105,6 +105,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh {
+@@ -107,6 +107,7 @@ class UI_ANDROID_EXPORT OverscrollRefresh {
bool scrolled_to_top_;
bool scrolled_to_bottom_;
diff --git a/build/patches/Revert-removal-of-execution-context-address-space.patch b/build/patches/Revert-removal-of-execution-context-address-space.patch
index a66f8a45..0eb9d9ce 100644
--- a/build/patches/Revert-removal-of-execution-context-address-space.patch
+++ b/build/patches/Revert-removal-of-execution-context-address-space.patch
@@ -92,7 +92,7 @@ diff --git a/third_party/blink/renderer/core/execution_context/execution_context
#include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h"
#include "third_party/blink/public/common/fingerprinting_protection/noise_token.h"
#include "third_party/blink/public/common/tokens/tokens.h"
-@@ -393,6 +394,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable,
+@@ -386,6 +387,9 @@ class CORE_EXPORT ExecutionContext : public Supplementable,
const String& message = g_empty_string,
const String& source_file = g_empty_string) const {}
@@ -116,7 +116,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_shared_worker_impl.cc
diff --git a/third_party/blink/renderer/core/frame/policy_container.cc b/third_party/blink/renderer/core/frame/policy_container.cc
--- a/third_party/blink/renderer/core/frame/policy_container.cc
+++ b/third_party/blink/renderer/core/frame/policy_container.cc
-@@ -59,12 +59,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
+@@ -60,12 +60,22 @@ network::mojom::blink::ReferrerPolicy PolicyContainer::GetReferrerPolicy()
return policies_->referrer_policy;
}
@@ -391,7 +391,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
const Vector* inherited_trial_features,
const base::UnguessableToken& parent_devtools_token,
std::unique_ptr worker_settings,
-@@ -78,6 +79,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
+@@ -80,6 +81,7 @@ GlobalScopeCreationParams::GlobalScopeCreationParams(
starter_https_state(starter_https_state),
worker_clients(worker_clients),
content_settings_client(std::move(content_settings_client)),
@@ -410,7 +410,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
#include "services/network/public/mojom/referrer_policy.mojom-blink-forward.h"
#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
-@@ -64,6 +65,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
+@@ -65,6 +66,7 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
HttpsState starter_https_state,
WorkerClients*,
std::unique_ptr,
@@ -418,7 +418,7 @@ diff --git a/third_party/blink/renderer/core/workers/global_scope_creation_param
const Vector* inherited_trial_features,
const base::UnguessableToken& parent_devtools_token,
std::unique_ptr,
-@@ -187,6 +189,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
+@@ -190,6 +192,11 @@ struct CORE_EXPORT GlobalScopeCreationParams final {
std::unique_ptr content_settings_client;
@@ -618,7 +618,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_classic_script_loade
--- a/third_party/blink/renderer/core/workers/worker_classic_script_loader.h
+++ b/third_party/blink/renderer/core/workers/worker_classic_script_loader.h
@@ -32,6 +32,7 @@
- #include "base/memory/scoped_refptr.h"
+
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/network/public/mojom/fetch_api.mojom-blink-forward.h"
+#include "services/network/public/mojom/ip_address_space.mojom-blink-forward.h"
@@ -655,7 +655,7 @@ diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/thi
#include "third_party/blink/public/common/tokens/tokens.h"
#include "third_party/blink/public/mojom/loader/code_cache.mojom-blink-forward.h"
#include "third_party/blink/public/mojom/script/script_type.mojom-blink-forward.h"
-@@ -174,6 +175,7 @@ class CORE_EXPORT WorkerGlobalScope
+@@ -177,6 +178,7 @@ class CORE_EXPORT WorkerGlobalScope
virtual void Initialize(
const KURL& response_url,
network::mojom::ReferrerPolicy response_referrer_policy,
@@ -732,7 +732,7 @@ diff --git a/third_party/blink/renderer/modules/csspaint/paint_worklet_global_sc
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
-@@ -213,7 +213,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
+@@ -220,7 +220,9 @@ void WebEmbeddedWorkerImpl::StartWorkerThread(
Vector(),
network::mojom::ReferrerPolicy::kDefault, starter_origin.get(),
starter_secure_context, starter_https_state, nullptr /* worker_clients */,
diff --git a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
index a695120a..43358795 100644
--- a/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
+++ b/build/patches/Revert-remove-allowscript-content-setting-secondary-url.patch
@@ -196,7 +196,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
#include "third_party/blink/renderer/bindings/core/v8/binding_security.h"
#include "third_party/blink/renderer/bindings/core/v8/capture_source_location.h"
#include "third_party/blink/renderer/bindings/core/v8/isolated_world_csp.h"
-@@ -506,7 +507,10 @@ bool LocalDOMWindow::CanExecuteScripts(
+@@ -501,7 +502,10 @@ bool LocalDOMWindow::CanExecuteScripts(
}
return false;
}
@@ -211,7 +211,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -4163,19 +4163,6 @@ bool LocalFrame::IsSameOrigin() {
+@@ -4146,19 +4146,6 @@ bool LocalFrame::IsSameOrigin() {
return security_origin->IsSameOriginWith(top_security_origin);
}
@@ -234,7 +234,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -934,12 +934,6 @@ class CORE_EXPORT LocalFrame final
+@@ -930,12 +930,6 @@ class CORE_EXPORT LocalFrame final
return *v8_local_compile_hints_producer_;
}
@@ -264,7 +264,7 @@ diff --git a/third_party/blink/renderer/core/html/html_meta_element.cc b/third_p
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.cc b/third_party/blink/renderer/core/loader/base_fetch_context.cc
--- a/third_party/blink/renderer/core/loader/base_fetch_context.cc
+++ b/third_party/blink/renderer/core/loader/base_fetch_context.cc
-@@ -273,7 +273,7 @@ BaseFetchContext::CanRequestInternal(
+@@ -274,7 +274,7 @@ BaseFetchContext::CanRequestInternal(
}
if (type == ResourceType::kScript) {
diff --git a/build/patches/Set-caret-blink-interval-to-default.patch b/build/patches/Set-caret-blink-interval-to-default.patch
index 56a4c855..75acbd50 100644
--- a/build/patches/Set-caret-blink-interval-to-default.patch
+++ b/build/patches/Set-caret-blink-interval-to-default.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_party/blink/renderer/core/exported/web_view_impl.cc
--- a/third_party/blink/renderer/core/exported/web_view_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_view_impl.cc
-@@ -3606,9 +3606,7 @@ void WebViewImpl::UpdateRendererPreferences(
+@@ -3617,9 +3617,7 @@ void WebViewImpl::UpdateRendererPreferences(
UpdateFontRenderingFromRendererPrefs();
blink::SetCaretBlinkInterval(
diff --git a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
index e5069fef..93f974ff 100644
--- a/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
+++ b/build/patches/Set-the-screen-frame-rate-to-60-Hz.patch
@@ -31,7 +31,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/cc/base/features.cc b/cc/base/features.cc
--- a/cc/base/features.cc
+++ b/cc/base/features.cc
-@@ -138,7 +138,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -135,7 +135,7 @@ BASE_FEATURE(kPreventDuplicateImageDecodes, base::FEATURE_DISABLED_BY_DEFAULT);
BASE_FEATURE(kInitImageDecodeLastUseTime, base::FEATURE_ENABLED_BY_DEFAULT);
@@ -40,7 +40,7 @@ diff --git a/cc/base/features.cc b/cc/base/features.cc
BASE_FEATURE(kBoostFrameRateForUrgentMainFrame,
base::FEATURE_DISABLED_BY_DEFAULT);
-@@ -166,6 +166,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
+@@ -163,6 +163,7 @@ BASE_FEATURE(kViewTransitionFloorTransform, base::FEATURE_ENABLED_BY_DEFAULT);
BASE_FEATURE(kRenderThrottleFrameRate, base::FEATURE_ENABLED_BY_DEFAULT);
const base::FeatureParam kRenderThrottledFrameIntervalHz{
&kRenderThrottleFrameRate, "render-throttled-frame-interval-hz", 30};
@@ -101,7 +101,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
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
-@@ -12030,9 +12030,9 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -12117,9 +12117,9 @@ const FeatureEntry kFeatureEntries[] = {
FEATURE_VALUE_TYPE(::features::kBlockRootWindowAccessibleNameChangeEvent)},
#endif // BUILDFLAG(IS_MAC)
@@ -112,20 +112,20 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
+ // flag_descriptions::kThrottleMainTo60HzDescription, kOsAll,
+ // FEATURE_VALUE_TYPE(features::kThrottleMainFrameTo60Hz)},
- {"client-side-detection-brand-and-page-intent",
- flag_descriptions::kClientSideDetectionBrandAndIntentForScamDetectionName,
+ #if BUILDFLAG(IS_ANDROID)
+ {"client-side-detection-send-intelligent-scan-info-android",
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
-@@ -53,6 +53,7 @@
+@@ -52,6 +52,7 @@
+ #include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/config/chromebox_for_meetings/buildflags.h" // PLATFORM_CFM
- #include "chrome/browser/preloading/search_preload/search_preload_features.h"
+#include "cc/base/features.h"
#include "chrome/browser/after_startup_task_utils.h"
#include "chrome/browser/ai/ai_manager.h"
#include "chrome/browser/app_mode/app_mode_utils.h"
-@@ -304,6 +305,7 @@
+@@ -303,6 +304,7 @@
#include "components/variations/variations_associated_data.h"
#include "components/variations/variations_switches.h"
#include "components/version_info/version_info.h"
@@ -133,7 +133,7 @@ diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/ch
#include "components/webapps/common/web_app_id.h"
#include "components/webui/chrome_urls/pref_names.h"
#include "content/public/browser/attribution_data_model.h"
-@@ -2852,6 +2854,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
+@@ -2720,6 +2722,15 @@ void ChromeContentBrowserClient::AppendExtraCommandLineSwitches(
command_line->AppendSwitchASCII(ash::switches::kHomedir, homedir.value());
#endif
@@ -185,7 +185,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
namespace viz {
-@@ -239,7 +240,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource(
+@@ -250,7 +251,10 @@ BackToBackBeginFrameSource::BackToBackBeginFrameSource(
time_source_->SetClient(this);
// The time_source_ ticks immediately, so we SetActive(true) for a single
// tick when we need it, and keep it as SetActive(false) otherwise.
@@ -197,7 +197,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
}
BackToBackBeginFrameSource::~BackToBackBeginFrameSource() = default;
-@@ -297,6 +301,14 @@ void BackToBackBeginFrameSource::OnTimerTick() {
+@@ -308,6 +312,14 @@ void BackToBackBeginFrameSource::OnTimerTick() {
}
base::TimeTicks frame_time = time_source_->LastTickTime();
base::TimeDelta interval = max_vrr_interval_.value_or(vsync_interval_);
@@ -215,7 +215,7 @@ diff --git a/components/viz/common/frame_sinks/begin_frame_source.cc b/component
diff --git a/components/viz/common/frame_sinks/begin_frame_source.h b/components/viz/common/frame_sinks/begin_frame_source.h
--- a/components/viz/common/frame_sinks/begin_frame_source.h
+++ b/components/viz/common/frame_sinks/begin_frame_source.h
-@@ -321,6 +321,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource
+@@ -339,6 +339,7 @@ class VIZ_COMMON_EXPORT BackToBackBeginFrameSource
pending_begin_frame_observers_;
uint64_t next_sequence_number_;
base::TimeDelta vsync_interval_ = BeginFrameArgs::DefaultInterval();
@@ -310,7 +310,7 @@ diff --git a/components/viz/service/frame_sinks/external_begin_frame_source_andr
diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
--- a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
+++ b/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
-@@ -20,6 +20,7 @@
+@@ -21,6 +21,7 @@
#include "base/time/time.h"
#include "base/tracing/protos/chrome_track_event.pbzero.h"
#include "build/build_config.h"
@@ -318,7 +318,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.
#include "components/viz/common/features.h"
#include "components/viz/common/frame_sinks/begin_frame_source.h"
#include "components/viz/service/display/display.h"
-@@ -752,7 +753,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
+@@ -753,7 +754,10 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
result);
interval = interval_and_compat.first;
gfx::SurfaceControlFrameRateCompatibility compat = interval_and_compat.second;
@@ -330,7 +330,7 @@ diff --git a/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.
if (decided_display_interval_ == interval &&
decided_display_frame_rate_compat_ == compat) {
return;
-@@ -774,7 +778,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
+@@ -775,7 +779,9 @@ void RootCompositorFrameSinkImpl::FrameIntervalDeciderResultCallback(
return interval.interval;
}),
result);
diff --git a/build/patches/Show-NTP-at-startup.patch b/build/patches/Show-NTP-at-startup.patch
index a1af195b..9c4411da 100644
--- a/build/patches/Show-NTP-at-startup.patch
+++ b/build/patches/Show-NTP-at-startup.patch
@@ -103,7 +103,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeInactivit
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -3108,6 +3108,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
+@@ -3083,6 +3083,8 @@ public class ChromeTabbedActivity extends ChromeActivity {
mInactivityTracker =
new ChromeInactivityTracker(
ChromePreferenceKeys.TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF);
@@ -158,7 +158,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tasks/ReturnToC
diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
--- a/chrome/app/settings_strings.grdp
+++ b/chrome/app/settings_strings.grdp
-@@ -971,7 +971,7 @@
+@@ -992,7 +992,7 @@
Open a specific page or set of pages
@@ -170,14 +170,14 @@ diff --git a/chrome/app/settings_strings.grdp b/chrome/app/settings_strings.grdp
diff --git a/chrome/browser/flags/android/chrome_feature_list.cc b/chrome/browser/flags/android/chrome_feature_list.cc
--- a/chrome/browser/flags/android/chrome_feature_list.cc
+++ b/chrome/browser/flags/android/chrome_feature_list.cc
-@@ -418,6 +418,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
- &kSearchInCCTAlternateTapHandlingIfEnabledByEmbedder,
+@@ -423,6 +423,7 @@ const base::Feature* const kFeaturesExposedToJava[] = {
+ &kSearchInCCTIfEnabledByEmbedder,
&kSearchResumptionModuleAndroid,
&kSettingsMultiColumn,
+ &kShowNtpAtStartupAndroid,
&kSettingsSingleActivity,
&kShareCustomActionsInCCT,
- &kShowCloseAllIncognitoTabsButton,
+ &kShortCircuitUnfocusAnimation,
diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/cromite/sShowNtpAtStartupAndroid.java
new file mode 100644
--- /dev/null
@@ -219,7 +219,7 @@ new file mode 100644
diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc
--- a/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc
+++ b/chrome/browser/performance_manager/policies/background_tab_loading_policy.cc
-@@ -386,6 +386,7 @@ base::Value::Dict BackgroundTabLoadingPolicy::DescribeSystemNodeData(
+@@ -395,6 +395,7 @@ base::Value::Dict BackgroundTabLoadingPolicy::DescribeSystemNodeData(
bool BackgroundTabLoadingPolicy::ShouldLoad(
const PageNodeToLoadData& page_node_data) {
@@ -227,7 +227,7 @@ diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_
if (tab_loads_started_ < min_tabs_to_load_) {
return true;
}
-@@ -587,6 +588,7 @@ void BackgroundTabLoadingPolicy::MaybeLoadSomeTabs() {
+@@ -596,6 +597,7 @@ void BackgroundTabLoadingPolicy::MaybeLoadSomeTabs() {
// Continue to load tabs while possible. This is in a loop with a
// recalculation of GetMaxNewTabLoads() as reentrancy can cause conditions
// to change as each tab load is initiated.
@@ -238,7 +238,7 @@ diff --git a/chrome/browser/performance_manager/policies/background_tab_loading_
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
-@@ -915,6 +915,8 @@ public final class ChromePreferenceKeys {
+@@ -940,6 +940,8 @@ public final class ChromePreferenceKeys {
public static final String TABBED_ACTIVITY_LAST_BACKGROUNDED_TIME_MS_PREF =
"ChromeTabbedActivity.BackgroundTimeMs";
@@ -310,7 +310,7 @@ diff --git a/chrome/browser/sessions/session_restore.cc b/chrome/browser/session
diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab_loader.cc
--- a/chrome/browser/sessions/tab_loader.cc
+++ b/chrome/browser/sessions/tab_loader.cc
-@@ -51,7 +51,7 @@ struct ScoredTabComparator {
+@@ -52,7 +52,7 @@ struct ScoredTabComparator {
};
// Testing seams.
@@ -319,7 +319,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab
base::RepeatingCallback* g_construction_callback = nullptr;
// Determines if the given browser (can be null) is closing.
-@@ -384,7 +384,7 @@ void TabLoader::OnMemoryPressure(
+@@ -375,7 +375,7 @@ void TabLoader::OnMemoryPressure(
bool TabLoader::ShouldStopLoadingTabs() const {
DCHECK(reentry_depth_ > 0); // This can only be called internally.
@@ -328,7 +328,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab
scheduled_to_load_count_ >= g_max_loaded_tab_count_for_testing) {
return true;
}
-@@ -426,7 +426,7 @@ size_t TabLoader::GetMaxNewTabLoads() const {
+@@ -417,7 +417,7 @@ size_t TabLoader::GetMaxNewTabLoads() const {
tabs_to_load = std::min(tabs_to_load, tabs_to_load_.size());
// Finally, enforce testing tab load limits.
@@ -337,7 +337,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab
size_t tabs_remaining_for_testing =
g_max_loaded_tab_count_for_testing - scheduled_to_load_count_;
tabs_to_load = std::min(tabs_to_load, tabs_remaining_for_testing);
-@@ -784,6 +784,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) {
+@@ -775,6 +775,7 @@ void TabLoader::MoveToSortedPosition(TabVector::iterator it) {
}
size_t TabLoader::MaxSimultaneousLoads() const {
@@ -348,7 +348,7 @@ diff --git a/chrome/browser/sessions/tab_loader.cc b/chrome/browser/sessions/tab
diff --git a/chrome/browser/sessions/tab_loader.h b/chrome/browser/sessions/tab_loader.h
--- a/chrome/browser/sessions/tab_loader.h
+++ b/chrome/browser/sessions/tab_loader.h
-@@ -279,7 +279,7 @@ class TabLoader : public base::RefCounted,
+@@ -282,7 +282,7 @@ class TabLoader : public base::RefCounted,
// This is monotonically increasing, and can never exceed the combined number
// of tabs passed into this TabLoader via StartLoading(). This is only used in
// order to support a combined maximum total number of tab loads for testing.
diff --git a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
index 289ad7f7..a31b5bff 100644
--- a/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
+++ b/build/patches/Show-site-settings-for-cookies-javascript-and-ads.patch
@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
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
-@@ -635,6 +635,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
+@@ -643,6 +643,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
setUpSoundPreference(preference);
} else if (type == ContentSettingsType.JAVASCRIPT) {
setUpJavascriptPreference(preference);
@@ -24,7 +24,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
} else if (type == ContentSettingsType.GEOLOCATION) {
setUpLocationPreference(preference);
} else if (type == ContentSettingsType.GEOLOCATION_WITH_OPTIONS) {
-@@ -1166,17 +1168,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
+@@ -1172,17 +1174,8 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
private void setUpAdsInformationalBanner() {
// Add the informational banner which shows at the top of the UI if ad blocking is
// activated on this site.
@@ -42,7 +42,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
@RequiresNonNull({"mSite"})
-@@ -1496,12 +1489,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
+@@ -1528,12 +1521,13 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
@ContentSetting
@Nullable Integer currentValue =
mSite.getContentSetting(browserContextHandle, ContentSettingsType.JAVASCRIPT);
@@ -62,7 +62,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
}
// Not possible to embargo JAVASCRIPT.
setupContentSettingsPreference(
-@@ -1511,6 +1505,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
+@@ -1543,6 +1537,29 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
isOneTime(ContentSettingsType.JAVASCRIPT));
}
@@ -92,7 +92,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
/**
* Updates the ads list preference based on whether the site is a candidate for blocking. This
* has some custom behavior. 1. If the site is a candidate and has activation, the permission
-@@ -1528,9 +1545,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
+@@ -1560,9 +1577,7 @@ public class SingleWebsiteSettings extends BaseSiteSettingsFragment
}
// If the ad blocker is activated, then this site will have ads blocked unless there is an
// explicit permission disallowing the blocking.
diff --git a/build/patches/Site-setting-for-images.patch b/build/patches/Site-setting-for-images.patch
index e37d9734..7bcc26d8 100644
--- a/build/patches/Site-setting-for-images.patch
+++ b/build/patches/Site-setting-for-images.patch
@@ -324,7 +324,7 @@ diff --git a/third_party/blink/public/platform/web_content_settings_client.h b/t
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -4150,19 +4150,6 @@ bool LocalFrame::IsSameOrigin() {
+@@ -4133,19 +4133,6 @@ bool LocalFrame::IsSameOrigin() {
return security_origin->IsSameOriginWith(top_security_origin);
}
@@ -347,7 +347,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/blink/renderer/core/frame/local_frame.h
--- a/third_party/blink/renderer/core/frame/local_frame.h
+++ b/third_party/blink/renderer/core/frame/local_frame.h
-@@ -933,12 +933,6 @@ class CORE_EXPORT LocalFrame final
+@@ -929,12 +929,6 @@ class CORE_EXPORT LocalFrame final
return *v8_local_compile_hints_producer_;
}
@@ -454,7 +454,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/fetch_context.h b/
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
--- a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
-@@ -830,6 +830,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init)
+@@ -831,6 +831,7 @@ ResourceFetcher::ResourceFetcher(const ResourceFetcherInit& init)
blob_registry_remote_(init.context_lifecycle_notifier),
context_lifecycle_notifier_(init.context_lifecycle_notifier),
auto_load_images_(true),
@@ -462,7 +462,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
allow_stale_resources_(false),
image_fetched_(false) {
InstanceCounters::IncrementCounter(InstanceCounters::kResourceFetcherCounter);
-@@ -1994,7 +1995,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused(
+@@ -2001,7 +2002,7 @@ bool ResourceFetcher::IsImageResourceDisallowedToBeReused(
return false;
}
@@ -471,7 +471,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.c
}
ResourceFetcher::RevalidationPolicy
-@@ -2239,8 +2240,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) {
+@@ -2246,8 +2247,20 @@ void ResourceFetcher::SetAutoLoadImages(bool enable) {
ReloadImagesIfNotDeferred();
}
@@ -504,7 +504,7 @@ diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h
FetchContext& Context() const;
void ClearContext();
-@@ -712,6 +713,7 @@ class PLATFORM_EXPORT ResourceFetcher
+@@ -716,6 +717,7 @@ class PLATFORM_EXPORT ResourceFetcher
bool is_in_request_resource_ = false;
bool auto_load_images_ : 1;
diff --git a/build/patches/Switch-to-fstack-protector-strong.patch b/build/patches/Switch-to-fstack-protector-strong.patch
index f9d53595..4eb74d5d 100644
--- a/build/patches/Switch-to-fstack-protector-strong.patch
+++ b/build/patches/Switch-to-fstack-protector-strong.patch
@@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -443,7 +443,7 @@ config("compiler") {
+@@ -455,7 +455,7 @@ config("compiler") {
} else if (is_posix || is_fuchsia) {
if (current_os != "aix") {
# Not available on aix.
diff --git a/build/patches/Temp-disable-UseContextSnapshot.patch b/build/patches/Temp-disable-UseContextSnapshot.patch
index 37fc5b0a..2805adfc 100644
--- a/build/patches/Temp-disable-UseContextSnapshot.patch
+++ b/build/patches/Temp-disable-UseContextSnapshot.patch
@@ -12,7 +12,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/content/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
-@@ -1085,6 +1085,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT);
+@@ -1098,6 +1098,7 @@ BASE_FEATURE(kUnrestrictedSharedArrayBuffer, base::FEATURE_DISABLED_BY_DEFAULT);
#if BUILDFLAG(IS_ANDROID) && BUILDFLAG(INCLUDE_BOTH_V8_SNAPSHOTS)
// If enabled, blink's context snapshot is used rather than the v8 snapshot.
BASE_FEATURE(kUseContextSnapshot, base::FEATURE_ENABLED_BY_DEFAULT);
diff --git a/build/patches/Temp-disable-experimental-web-platform-features.patch b/build/patches/Temp-disable-experimental-web-platform-features.patch
index c2d65593..72020124 100644
--- a/build/patches/Temp-disable-experimental-web-platform-features.patch
+++ b/build/patches/Temp-disable-experimental-web-platform-features.patch
@@ -9,7 +9,7 @@ Subject: Temp disable experimental-web-platform-features
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
-@@ -5260,10 +5260,10 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -5459,10 +5459,10 @@ const FeatureEntry kFeatureEntries[] = {
{"enable-gpu-rasterization", flag_descriptions::kGpuRasterizationName,
flag_descriptions::kGpuRasterizationDescription, kOsAll,
MULTI_VALUE_TYPE(kEnableGpuRasterizationChoices)},
diff --git a/build/patches/Temp-disable-predictive-back-gesture.patch b/build/patches/Temp-disable-predictive-back-gesture.patch
index e325a51e..9edcb260 100644
--- a/build/patches/Temp-disable-predictive-back-gesture.patch
+++ b/build/patches/Temp-disable-predictive-back-gesture.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -207,7 +207,7 @@ by a child template that "extends" this file.
+@@ -218,7 +218,7 @@ by a child template that "extends" this file.
android:networkSecurityConfig="@xml/network_security_config"
android:allowAudioPlaybackCapture="false"
android:appComponentFactory="org.chromium.chrome.browser.base.SplitCompatAppComponentFactory"
diff --git a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch
index 21c1ba75..886e8275 100644
--- a/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch
+++ b/build/patches/Temp-guard-FileSystemAccessPersistentPermissions.patch
@@ -10,7 +10,7 @@ Subject: Temp guard FileSystemAccessPersistentPermissions
diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
--- a/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
+++ b/chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
-@@ -489,7 +489,7 @@ bool ShouldBlockAccessToPath(
+@@ -512,7 +512,7 @@ bool ShouldBlockAccessToPath(
auto should_block_with_rule = [&](const base::FilePath& block_path,
BlockType block_type) -> bool {
if (path == block_path || path.IsParent(block_path)) {
@@ -19,7 +19,7 @@ diff --git a/chrome/browser/file_system_access/chrome_file_system_access_permiss
<< " because it is a parent of " << block_path;
return true;
}
-@@ -538,7 +538,7 @@ bool ShouldBlockAccessToPath(
+@@ -561,7 +561,7 @@ bool ShouldBlockAccessToPath(
}
// The nearest ancestor blocks access to its children, so block access.
diff --git a/build/patches/Timezone-customization.patch b/build/patches/Timezone-customization.patch
index dd2895ba..79643342 100644
--- a/build/patches/Timezone-customization.patch
+++ b/build/patches/Timezone-customization.patch
@@ -386,8 +386,8 @@ new file mode 100755
diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
--- a/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
+++ b/components/browser_ui/site_settings/android/java/src/org/chromium/components/browser_ui/site_settings/WebsitePreferenceBridge.java
-@@ -509,6 +509,14 @@ public class WebsitePreferenceBridge {
- return WebsitePreferenceBridgeJni.get().toHostOnlyPattern(pattern);
+@@ -521,6 +521,14 @@ public class WebsitePreferenceBridge {
+ .recordHeuristicActionForTesting(browserContextHandle, origin, type, action);
}
+ public static String getCustomTimezone(BrowserContextHandle browserContextHandle) {
@@ -401,7 +401,7 @@ diff --git a/components/browser_ui/site_settings/android/java/src/org/chromium/c
@NativeMethods
public interface Natives {
boolean isNotificationEmbargoedForOrigin(
-@@ -671,5 +679,7 @@ public class WebsitePreferenceBridge {
+@@ -689,5 +697,7 @@ public class WebsitePreferenceBridge {
String toDomainWildcardPattern(String pattern);
String toHostOnlyPattern(String pattern);
@@ -565,7 +565,7 @@ new file mode 100644
diff --git a/components/browser_ui/site_settings/android/website_preference_bridge.cc b/components/browser_ui/site_settings/android/website_preference_bridge.cc
--- a/components/browser_ui/site_settings/android/website_preference_bridge.cc
+++ b/components/browser_ui/site_settings/android/website_preference_bridge.cc
-@@ -1285,3 +1285,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(
+@@ -1351,3 +1351,19 @@ JNI_WebsitePreferenceBridge_ToHostOnlyPattern(
ContentSettingsPattern::FromString(pattern_string));
return ConvertUTF8ToJavaString(env, host_only_pattern.ToString());
}
@@ -661,7 +661,7 @@ new file mode 100644
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
-@@ -98,6 +98,8 @@ void PrefProvider::RegisterProfilePrefs(
+@@ -99,6 +99,8 @@ void PrefProvider::RegisterProfilePrefs(
info->GetPrefRegistrationFlags());
}
@@ -670,7 +670,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
// Obsolete prefs ----------------------------------------------------------
// These prefs have been removed, but need to be registered so they can
-@@ -177,6 +179,10 @@ PrefProvider::PrefProvider(PrefService* prefs,
+@@ -178,6 +180,10 @@ PrefProvider::PrefProvider(PrefService* prefs,
event_args->set_number_of_exceptions(
num_exceptions); // PrefProvider::PrefProvider.
});
@@ -681,7 +681,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
}
PrefProvider::~PrefProvider() {
-@@ -528,4 +534,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) {
+@@ -508,4 +514,14 @@ void PrefProvider::SetClockForTesting(const base::Clock* clock) {
}
}
@@ -699,7 +699,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
diff --git a/components/content_settings/core/browser/content_settings_pref_provider.h b/components/content_settings/core/browser/content_settings_pref_provider.h
--- a/components/content_settings/core/browser/content_settings_pref_provider.h
+++ b/components/content_settings/core/browser/content_settings_pref_provider.h
-@@ -92,6 +92,9 @@ class PrefProvider : public UserModifiableProvider {
+@@ -82,6 +82,9 @@ class PrefProvider : public UserModifiableProvider {
ContentSettingsPref* GetPref(ContentSettingsType type) const;
@@ -709,7 +709,7 @@ diff --git a/components/content_settings/core/browser/content_settings_pref_prov
private:
friend class DeadlockCheckerObserver; // For testing.
-@@ -143,6 +146,7 @@ class PrefProvider : public UserModifiableProvider {
+@@ -130,6 +133,7 @@ class PrefProvider : public UserModifiableProvider {
base::ThreadChecker thread_checker_;
raw_ptr clock_;
@@ -735,7 +735,7 @@ diff --git a/components/content_settings/core/browser/content_settings_utils.cc
diff --git a/components/content_settings/core/browser/host_content_settings_map.cc b/components/content_settings/core/browser/host_content_settings_map.cc
--- a/components/content_settings/core/browser/host_content_settings_map.cc
+++ b/components/content_settings/core/browser/host_content_settings_map.cc
-@@ -754,6 +754,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) {
+@@ -750,6 +750,14 @@ void HostContentSettingsMap::SetClockForTesting(const base::Clock* clock) {
}
}
@@ -773,7 +773,7 @@ new file mode 100644
diff --git a/components/content_settings/core/common/content_settings.h b/components/content_settings/core/common/content_settings.h
--- a/components/content_settings/core/common/content_settings.h
+++ b/components/content_settings/core/common/content_settings.h
-@@ -132,6 +132,7 @@ struct RendererContentSettingRules {
+@@ -131,6 +131,7 @@ struct RendererContentSettingRules {
bool operator==(const RendererContentSettingRules& other) const;
ContentSettingsForOneType mixed_content_rules;
diff --git a/build/patches/Use-64-bit-WebView-processes.patch b/build/patches/Use-64-bit-WebView-processes.patch
index 0410c719..4076a016 100644
--- a/build/patches/Use-64-bit-WebView-processes.patch
+++ b/build/patches/Use-64-bit-WebView-processes.patch
@@ -28,7 +28,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/nonembedded/java/AndroidManifest.xml b/android_webview/nonembedded/java/AndroidManifest.xml
--- a/android_webview/nonembedded/java/AndroidManifest.xml
+++ b/android_webview/nonembedded/java/AndroidManifest.xml
-@@ -38,9 +38,6 @@ by a child template that "extends" this file.
+@@ -40,9 +40,6 @@ by a child template that "extends" this file.
android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview"
android:name="{{ application_name|default('org.chromium.android_webview.nonembedded.WebViewApkApplication') }}"
android:multiArch="true"
diff --git a/build/patches/Use-browser-navigation-handler.patch b/build/patches/Use-browser-navigation-handler.patch
index 3ea359c4..2fa3faff 100644
--- a/build/patches/Use-browser-navigation-handler.patch
+++ b/build/patches/Use-browser-navigation-handler.patch
@@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi
import static org.chromium.chrome.browser.gesturenav.GestureNavigationProperties.EDGE;
import android.app.Activity;
-@@ -290,7 +290,11 @@ class NavigationHandler implements TouchEventObserver {
+@@ -291,7 +291,11 @@ class NavigationHandler implements TouchEventObserver {
boolean forward = isForward();
@@ -152,7 +152,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Navi
mModel.set(EDGE, mInitiatingEdge);
if (canNavigate(forward)) {
// Correct swipe, reset mIncorrectEdgeSwipeCount.
-@@ -528,12 +532,14 @@ class NavigationHandler implements TouchEventObserver {
+@@ -529,12 +533,14 @@ class NavigationHandler implements TouchEventObserver {
}
private boolean isForward() {
@@ -227,7 +227,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gesturenav/Side
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -85,6 +85,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus;
+@@ -86,6 +86,7 @@ import org.chromium.chrome.browser.firstrun.FirstRunStatus;
import org.chromium.chrome.browser.flags.ActivityType;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.flags.ChromeSwitches;
@@ -235,7 +235,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
import org.chromium.chrome.browser.fullscreen.BrowserControlsManager;
import org.chromium.chrome.browser.fullscreen.FullscreenManager;
import org.chromium.chrome.browser.gesturenav.BackActionDelegate;
-@@ -826,7 +827,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -824,7 +825,8 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
@Override
public void onInflationComplete() {
mCoordinator = mActivity.findViewById(R.id.coordinator);
@@ -303,7 +303,7 @@ 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
-@@ -104,4 +104,13 @@ found in the LICENSE file.
+@@ -109,4 +109,13 @@ found in the LICENSE file.
android:summary="@string/selection_popup_smart_text_summary"
android:title="@string/selection_popup_smart_text_title" />
diff --git a/build/patches/Use-list-mode-for-tab-switcher.patch b/build/patches/Use-list-mode-for-tab-switcher.patch
index f1718a26..51fe705d 100644
--- a/build/patches/Use-list-mode-for-tab-switcher.patch
+++ b/build/patches/Use-list-mode-for-tab-switcher.patch
@@ -159,7 +159,7 @@ diff --git a/chrome/android/features/tab_ui/java/res/values/dimens.xml b/chrome/
52dp
-@@ -108,6 +112,7 @@ found in the LICENSE file.
+@@ -107,6 +111,7 @@ found in the LICENSE file.
3dp
8dp
24dp
@@ -212,8 +212,8 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
+import org.chromium.chrome.browser.tab_ui.TabCardThemeUtil;
import org.chromium.chrome.browser.tabmodel.TabClosingSource;
import org.chromium.chrome.browser.tabmodel.TabClosureParamsUtils;
- import org.chromium.chrome.browser.tabmodel.TabGroupModelFilter;
-@@ -908,6 +909,13 @@ public class TabGridDialogMediator
+ import org.chromium.chrome.browser.tabmodel.TabCreatorUtil;
+@@ -909,6 +910,13 @@ public class TabGridDialogMediator
TabGridDialogProperties.DIALOG_UNGROUP_BAR_HOVERED_TEXT_COLOR,
ungroupBarHoveredTextColor);
mModel.set(TabGridDialogProperties.IS_INCOGNITO, isIncognito);
@@ -298,7 +298,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListContainerViewBinder.java
-@@ -153,14 +153,27 @@ class TabListContainerViewBinder {
+@@ -211,14 +211,27 @@ class TabListContainerViewBinder {
}
if (width <= 0 || height <= 0) return 0;
@@ -439,7 +439,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListEditorCoordinator.java
-@@ -365,7 +365,7 @@ class TabListEditorCoordinator {
+@@ -364,7 +364,7 @@ public class TabListEditorCoordinator {
mDisplayGroups = displayGroups;
mTabActionState = initialTabActionState;
mTabContentManager = tabContentManager;
@@ -463,7 +463,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
-@@ -2531,8 +2531,26 @@ class TabListMediator implements TabListNotificationHandler {
+@@ -2555,8 +2555,26 @@ class TabListMediator implements TabListNotificationHandler {
private void updateFaviconForTab(
PropertyModel model, Tab tab, @Nullable Bitmap icon, @Nullable GURL iconUrl) {
if (mActionsOnAllRelatedTabs && isTabInTabGroup(tab)) {
@@ -981,7 +981,7 @@ new file mode 100644
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherPaneBase.java
-@@ -316,7 +316,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
+@@ -333,7 +333,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
|| isFullSpaceModeOnAndroidXr;
@Nullable Tab tab = getCurrentTab();
@@ -990,7 +990,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
return FadeHubLayoutAnimationFactory.createFadeInAnimatorProvider(
hubContainerView, HUB_LAYOUT_FADE_DURATION_MS, mOnToolbarAlphaChange);
} else if (isFullSpaceModeOnAndroidXr && getTabListMode() == TabListMode.GRID) {
-@@ -345,7 +345,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
+@@ -362,7 +362,7 @@ public abstract class TabSwitcherPaneBase implements Pane, TabSwitcher, TabSwitc
HubContainerView hubContainerView) {
assert !DeviceFormFactor.isNonMultiDisplayContextOnTablet(hubContainerView.getContext());
Tab tab = getCurrentTab();
@@ -1041,7 +1041,7 @@ diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser
diff --git a/chrome/android/features/tab_ui/tab_management_java_sources.gni b/chrome/android/features/tab_ui/tab_management_java_sources.gni
--- a/chrome/android/features/tab_ui/tab_management_java_sources.gni
+++ b/chrome/android/features/tab_ui/tab_management_java_sources.gni
-@@ -186,6 +186,8 @@ internal_tab_management_java_sources = [
+@@ -187,6 +187,8 @@ internal_tab_management_java_sources = [
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListNotificationHandler.java",
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListOnScrollListener.java",
"//chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListRecyclerView.java",
@@ -1069,7 +1069,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -189,6 +189,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
+@@ -190,6 +190,7 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
import org.chromium.chrome.browser.tabmodel.TabModelUtils;
import org.chromium.chrome.browser.task_manager.TaskManager;
import org.chromium.chrome.browser.task_manager.TaskManagerFactory;
@@ -1077,7 +1077,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
import org.chromium.chrome.browser.theme.ThemeModuleUtils;
import org.chromium.chrome.browser.tinker_tank.TinkerTankDelegate;
import org.chromium.chrome.browser.toolbar.ControlContainer;
-@@ -659,8 +660,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -668,8 +669,8 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
new TabContentManager(
this,
mBrowserControlsManagerSupplier.get(),
@@ -1432,7 +1432,7 @@ new file mode 100644
diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabListFaviconProvider.java b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabListFaviconProvider.java
--- a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabListFaviconProvider.java
+++ b/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/tab_ui/TabListFaviconProvider.java
-@@ -36,6 +36,8 @@ import org.chromium.url.GURL;
+@@ -35,6 +35,8 @@ import org.chromium.url.GURL;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -1441,7 +1441,7 @@ diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/
import java.util.Objects;
/** Provider for processed favicons in Tab list. */
-@@ -133,6 +135,28 @@ public class TabListFaviconProvider {
+@@ -132,6 +134,28 @@ public class TabListFaviconProvider {
}
}
@@ -1470,7 +1470,7 @@ diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/
@IntDef({
StaticTabFaviconType.UNKNOWN,
StaticTabFaviconType.ROUNDED_GLOBE,
-@@ -253,6 +277,8 @@ public class TabListFaviconProvider {
+@@ -252,6 +276,8 @@ public class TabListFaviconProvider {
private static LazyTabFaviconResolver sRoundedGlobeFavicon;
private static LazyTabFaviconResolver sRoundedGlobeFaviconForStrip;
private static LazyTabFaviconResolver sRoundedGlobeFaviconIncognito;
@@ -1479,7 +1479,7 @@ diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/
/** These icons may fail to load. See crbug.com/324996488. */
private static LazyTabFaviconResolver sRoundedChromeFavicon;
-@@ -424,6 +450,51 @@ public class TabListFaviconProvider {
+@@ -423,6 +449,51 @@ public class TabListFaviconProvider {
};
}
@@ -1531,7 +1531,7 @@ diff --git a/chrome/browser/tab_ui/android/java/src/org/chromium/chrome/browser/
/** Returns the rounded Chrome favicon to use for native or internal pages. */
public TabFavicon getRoundedChromeFavicon(boolean isIncognito) {
if (mIsTabStrip) {
-@@ -788,6 +859,46 @@ public class TabListFaviconProvider {
+@@ -785,6 +856,46 @@ public class TabListFaviconProvider {
StaticTabFaviconType.ROUNDED_CHROME_INCOGNITO);
});
}
@@ -1686,7 +1686,7 @@ new file mode 100644
diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
--- a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
+++ b/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
-@@ -51,6 +51,7 @@ import org.chromium.build.annotations.NullUnmarked;
+@@ -60,6 +60,7 @@ import org.chromium.build.annotations.NullUnmarked;
import org.chromium.build.annotations.Nullable;
import org.chromium.chrome.browser.flags.ChromeFeatureList;
import org.chromium.chrome.browser.omnibox.LocationBar;
@@ -1694,7 +1694,7 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable;
import org.chromium.chrome.browser.omnibox.LocationBarBackgroundDrawable.HairlineBehavior;
import org.chromium.chrome.browser.omnibox.LocationBarCoordinator;
-@@ -1808,7 +1809,7 @@ public class ToolbarPhone extends ToolbarLayout
+@@ -1835,7 +1836,7 @@ public class ToolbarPhone extends ToolbarLayout
// On entering the tab switcher, set the focusability of the url bar to be false. This will
// occur at the start of the enter event, and will later be reset to true upon finishing the
// exit event.
@@ -1703,13 +1703,13 @@ diff --git a/chrome/browser/ui/android/toolbar/java/src/org/chromium/chrome/brow
mLocationBar.setUrlBarFocusable(false);
}
-@@ -2029,7 +2030,8 @@ public class ToolbarPhone extends ToolbarLayout
-
- updateBackground(hasFocus);
- updateLocationBarForNtp(mVisualState, urlHasFocus());
-- getTabSwitcherButtonCoordinator().getContainerView().setClickable(!hasFocus);
+@@ -2063,7 +2064,8 @@ public class ToolbarPhone extends ToolbarLayout
+ ToggleTabStackButtonCoordinator tabSwitcherButtonCoordinator =
+ getTabSwitcherButtonCoordinator();
+ assumeNonNull(tabSwitcherButtonCoordinator);
+- tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus);
+ if (!sTabSwitcherListMode.getInstance().isEnabled())
-+ getTabSwitcherButtonCoordinator().getContainerView().setClickable(!hasFocus);
++ tabSwitcherButtonCoordinator.getContainerView().setClickable(!hasFocus);
mHomeButtonDisplay.setClickable(!hasFocus);
triggerUrlFocusAnimation(hasFocus);
}
diff --git a/build/patches/User-agent-customization.patch b/build/patches/User-agent-customization.patch
index b17dc8cc..1de68144 100644
--- a/build/patches/User-agent-customization.patch
+++ b/build/patches/User-agent-customization.patch
@@ -56,7 +56,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/browser/aw_content_browser_client.cc b/android_webview/browser/aw_content_browser_client.cc
--- a/android_webview/browser/aw_content_browser_client.cc
+++ b/android_webview/browser/aw_content_browser_client.cc
-@@ -197,7 +197,7 @@ base::WeakPtr GetAsyncCheckTracker(
+@@ -201,7 +201,7 @@ base::WeakPtr GetAsyncCheckTracker(
} // anonymous namespace
std::string GetProduct() {
@@ -92,7 +92,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -653,6 +653,8 @@ chrome_java_resources = [
+@@ -665,6 +665,8 @@ chrome_java_resources = [
"java/res/xml/search_widget_info.xml",
"java/res/xml/tracing_preferences.xml",
"java/res/xml/unified_account_settings_preferences.xml",
@@ -104,7 +104,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -908,6 +908,7 @@ chrome_java_sources = [
+@@ -919,6 +919,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
"java/src/org/chromium/chrome/browser/payments/ui/LineItem.java",
"java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
@@ -271,7 +271,7 @@ new file mode 100644
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
--- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -2716,6 +2716,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
+@@ -2776,6 +2776,7 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
TabUtils.switchUserAgent(
currentTab,
usingDesktopUserAgent,
@@ -580,7 +580,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
import org.chromium.components.dom_distiller.core.DomDistillerUrlUtils;
import org.chromium.components.embedder_support.contextmenu.ContextMenuPopulatorFactory;
import org.chromium.components.embedder_support.util.UrlConstants;
-@@ -124,6 +127,9 @@ import org.chromium.chrome.browser.preferences.Pref;
+@@ -127,6 +130,9 @@ import org.chromium.chrome.browser.preferences.Pref;
import org.chromium.chrome.browser.profiles.ProfileManager;
import org.chromium.components.user_prefs.UserPrefs;
@@ -590,7 +590,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
/**
* Implementation of the interface {@link Tab}. Contains and manages a {@link ContentView}. This
* class is not intended to be extended.
-@@ -2196,9 +2202,6 @@ class TabImpl implements Tab {
+@@ -2318,9 +2324,6 @@ class TabImpl implements Tab {
}
if (mWebContents != null) {
@@ -600,7 +600,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
mWebContents.getNavigationController().loadIfNecessary();
}
mIsBeingRestored = true;
-@@ -2594,6 +2597,11 @@ class TabImpl implements Tab {
+@@ -2720,6 +2723,11 @@ class TabImpl implements Tab {
url = webContents.getVisibleUrl();
}
@@ -612,7 +612,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
boolean shouldRequestDesktopSite =
RequestDesktopUtils.shouldOverrideDesktopSite(mProfile, url, getContext());
-@@ -2623,7 +2631,7 @@ class TabImpl implements Tab {
+@@ -2749,7 +2757,7 @@ class TabImpl implements Tab {
}
boolean usingDesktopUserAgent =
getWebContents().getNavigationController().getUseDesktopUserAgent();
@@ -621,7 +621,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabImpl.jav
}
/** Sets the TabLaunchType for tabs launched with an unset launch type. */
-@@ -2771,6 +2779,54 @@ class TabImpl implements Tab {
+@@ -2899,6 +2907,54 @@ class TabImpl implements Tab {
/* allowDialog= */ false);
}
@@ -922,7 +922,7 @@ diff --git a/chrome/browser/android/preferences/privacy_preferences_manager_impl
diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
--- a/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
+++ b/chrome/browser/content_settings/request_desktop_site_web_contents_observer_android.cc
-@@ -10,6 +10,7 @@
+@@ -16,6 +16,7 @@
#include "chrome/browser/flags/android/chrome_feature_list.h"
#include "chrome/browser/preferences/android/chrome_shared_preferences.h"
#include "chrome/browser/profiles/profile.h"
@@ -930,7 +930,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
#include "chrome/common/chrome_switches.h"
#include "components/content_settings/core/common/content_settings_utils.h"
#include "components/content_settings/core/common/pref_names.h"
-@@ -37,6 +38,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
+@@ -45,6 +46,7 @@ RequestDesktopSiteWebContentsObserverAndroid::
host_content_settings_map_ =
HostContentSettingsMapFactory::GetForProfile(profile);
pref_service_ = profile->GetPrefs();
@@ -938,7 +938,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
}
RequestDesktopSiteWebContentsObserverAndroid::
-@@ -51,6 +53,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
+@@ -59,6 +61,15 @@ void RequestDesktopSiteWebContentsObserverAndroid::DidStartNavigation(
return;
}
@@ -965,10 +965,10 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
#include "components/content_settings/core/browser/host_content_settings_map.h"
#include "content/public/browser/web_contents_observer.h"
#include "content/public/browser/web_contents_user_data.h"
-@@ -37,6 +38,7 @@ class RequestDesktopSiteWebContentsObserverAndroid
-
- scoped_refptr host_content_settings_map_;
- raw_ptr pref_service_ = nullptr;
+@@ -40,6 +41,7 @@ class RequestDesktopSiteWebContentsObserverAndroid
+ bool ShouldAllowOnExternalDisplay(bool is_global_setting);
+ raw_ptr host_content_settings_map_;
+ raw_ptr pref_service_;
+ raw_ptr tab_android_ = nullptr;
// The display size threshold in inches for enabling desktop user agent on
@@ -976,7 +976,7 @@ diff --git a/chrome/browser/content_settings/request_desktop_site_web_contents_o
diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
+++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeys.java
-@@ -1212,8 +1212,6 @@ public final class ChromePreferenceKeys {
+@@ -1243,8 +1243,6 @@ public final class ChromePreferenceKeys {
SIGNIN_PROMO_NTP_LAST_SHOWN_TIME,
SYNC_PROMO_TOTAL_SHOW_COUNT,
SEARCH_RESUMPTION_MODULE_COLLAPSE_ON_NTP,
@@ -1006,7 +1006,7 @@ diff --git a/chrome/browser/privacy/settings/java/src/org/chromium/chrome/browse
diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
--- a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
+++ b/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.java
-@@ -373,6 +373,8 @@ public interface Tab extends TabLifecycle {
+@@ -388,6 +388,8 @@ public interface Tab extends TabLifecycle {
/** Goes to the navigation entry after the current one. */
void goForward();
@@ -1018,7 +1018,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/Tab.jav
diff --git a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
--- a/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
+++ b/chrome/browser/tabwindow/android/java/src/org/chromium/chrome/browser/tabwindow/TabWindowManager.java
-@@ -165,6 +165,8 @@ public interface TabWindowManager {
+@@ -174,6 +174,8 @@ public interface TabWindowManager {
@Nullable List getGroupedTabsByWindow(
@WindowId int windowId, Token tabGroupId, boolean isIncognito);
@@ -1269,7 +1269,7 @@ diff --git a/content/browser/renderer_host/navigation_controller_android.h b/con
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3707,6 +3707,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3815,6 +3815,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
#if BUILDFLAG(IS_CHROMEOS)
switches::kSchedulerBoostUrgent,
#endif
@@ -1288,7 +1288,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
#include "base/check_op.h"
#include "base/command_line.h"
#include "base/containers/contains.h"
-@@ -2451,8 +2452,6 @@ void WebContentsImpl::SetUserAgentOverride(
+@@ -2449,8 +2450,6 @@ void WebContentsImpl::SetUserAgentOverride(
OPTIONAL_TRACE_EVENT2("content", "WebContentsImpl::SetUserAgentOverride",
"ua_override", ua_override.ua_string_override,
"override_in_new_tabs", override_in_new_tabs);
@@ -1297,7 +1297,7 @@ diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser
if (GetUserAgentOverride() == ua_override) {
return;
-@@ -3764,6 +3763,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
+@@ -3818,6 +3817,9 @@ const blink::web_pref::WebPreferences WebContentsImpl::ComputeWebPreferences(
#else
prefs.viewport_meta_enabled = false;
#endif
@@ -1318,7 +1318,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
params.getInitiatorOrigin(),
params.getHasUserGesture(),
params.getShouldClearHistoryList(),
-@@ -436,7 +437,7 @@ import org.chromium.url.Origin;
+@@ -445,7 +446,7 @@ import org.chromium.url.Origin;
@Nullable String dataUrlAsString,
boolean canLoadLocalResources,
boolean isRendererInitiated,
@@ -1330,7 +1330,7 @@ diff --git a/content/public/android/java/src/org/chromium/content/browser/frameh
diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
--- a/content/renderer/render_thread_impl.cc
+++ b/content/renderer/render_thread_impl.cc
-@@ -858,7 +858,6 @@ void RenderThreadImpl::InitializeRenderer(
+@@ -850,7 +850,6 @@ void RenderThreadImpl::InitializeRenderer(
uint64_t trace_id) {
TRACE_EVENT("navigation", "RenderThreadImpl::InitializeRenderer",
perfetto::TerminatingFlow::Global(trace_id));
diff --git a/build/patches/Viewport-Protection-flag.patch b/build/patches/Viewport-Protection-flag.patch
index 77caa368..764f21d3 100644
--- a/build/patches/Viewport-Protection-flag.patch
+++ b/build/patches/Viewport-Protection-flag.patch
@@ -282,7 +282,7 @@ diff --git a/third_party/blink/public/common/widget/device_emulation_params.h b/
diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_party/blink/renderer/core/css/css_properties.json5
--- a/third_party/blink/renderer/core/css/css_properties.json5
+++ b/third_party/blink/renderer/core/css/css_properties.json5
-@@ -4349,6 +4349,7 @@
+@@ -4343,6 +4343,7 @@
},
{
name: "opacity",
@@ -290,7 +290,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa
property_methods: ["ParseSingleValue", "CSSValueFromComputedStyleInternal"],
interpolable: true,
compositable: true,
-@@ -4356,7 +4357,6 @@
+@@ -4350,7 +4351,6 @@
field_template: "primitive",
default_value: "1.0",
type_name: "float",
@@ -301,7 +301,7 @@ diff --git a/third_party/blink/renderer/core/css/css_properties.json5 b/third_pa
diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/blink/renderer/core/css/media_values.cc
--- a/third_party/blink/renderer/core/css/media_values.cc
+++ b/third_party/blink/renderer/core/css/media_values.cc
-@@ -207,7 +207,7 @@ bool MediaValues::CalculateStrictMode(LocalFrame* frame) {
+@@ -193,7 +193,7 @@ bool MediaValues::CalculateStrictMode(LocalFrame* frame) {
}
float MediaValues::CalculateDevicePixelRatio(LocalFrame* frame) {
@@ -313,7 +313,7 @@ diff --git a/third_party/blink/renderer/core/css/media_values.cc b/third_party/b
diff --git a/third_party/blink/renderer/core/css/resolver/style_resolver.cc b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
--- a/third_party/blink/renderer/core/css/resolver/style_resolver.cc
+++ b/third_party/blink/renderer/core/css/resolver/style_resolver.cc
-@@ -2365,7 +2365,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const {
+@@ -2350,7 +2350,12 @@ ComputedStyleBuilder StyleResolver::InitialStyleBuilderForElement() const {
ComputedStyleBuilder builder = CreateComputedStyleBuilder();
builder.SetRtlOrdering(GetDocument().VisuallyOrdered() ? EOrder::kVisual
: EOrder::kLogical);
@@ -411,7 +411,7 @@ diff --git a/third_party/blink/renderer/core/exported/web_view_impl.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_party/blink/renderer/core/frame/local_dom_window.cc
--- a/third_party/blink/renderer/core/frame/local_dom_window.cc
+++ b/third_party/blink/renderer/core/frame/local_dom_window.cc
-@@ -1620,7 +1620,12 @@ int LocalDOMWindow::outerHeight() const {
+@@ -1606,7 +1606,12 @@ int LocalDOMWindow::outerHeight() const {
if (frame->IsInFencedFrameTree()) {
return innerHeight();
}
@@ -425,7 +425,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
-@@ -1645,7 +1650,12 @@ int LocalDOMWindow::outerWidth() const {
+@@ -1631,7 +1636,12 @@ int LocalDOMWindow::outerWidth() const {
if (frame->IsInFencedFrameTree()) {
return innerWidth();
}
@@ -439,7 +439,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
Page* page = frame->GetPage();
if (!page)
return 0;
-@@ -1849,7 +1859,8 @@ double LocalDOMWindow::devicePixelRatio() const {
+@@ -1827,7 +1837,8 @@ double LocalDOMWindow::devicePixelRatio() const {
if (!GetFrame())
return 0.0;
@@ -449,7 +449,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
}
ScriptPromise LocalDOMWindow::scrollBy(ScriptState* script_state,
-@@ -2492,6 +2503,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
+@@ -2469,6 +2480,23 @@ DOMWindow* LocalDOMWindow::open(v8::Isolate* isolate,
if (!completed_url.IsEmpty() || result.new_window)
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -473,7 +473,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
// TODO(japhet): window-open-noopener.html?_top and several tests in
// html/browsers/windows/browsing-context-names/ appear to require that
// the special case target names (_top, _parent, _self) ignore opener
-@@ -2543,6 +2571,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
+@@ -2520,6 +2548,15 @@ DOMWindow* LocalDOMWindow::openPictureInPictureWindow(
DCHECK(result.new_window);
result.frame->Navigate(frame_request, WebFrameLoadType::kStandard);
@@ -492,7 +492,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_dom_window.cc b/third_p
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -1671,6 +1671,10 @@ void LocalFrame::RestoreScrollOffsets() {
+@@ -1674,6 +1674,10 @@ void LocalFrame::RestoreScrollOffsets() {
saved_scroll_offsets_ = nullptr;
}
@@ -503,7 +503,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
void LocalFrame::SetLayoutZoomFactor(float factor) {
SetZoomFactors(factor, text_zoom_factor_, css_zoom_factor_);
}
-@@ -1857,12 +1861,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() {
+@@ -1860,12 +1864,16 @@ mojom::blink::DevicePostureType LocalFrame::GetDevicePosture() {
return mojo_handler_->GetDevicePosture();
}
@@ -522,7 +522,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/
return ratio;
}
-@@ -3448,6 +3456,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) {
+@@ -3451,6 +3459,11 @@ void LocalFrame::SetScaleFactor(float scale_factor) {
DCHECK(!GetDocument() || !GetDocument()->Printing());
DCHECK(IsMainFrame());
@@ -556,7 +556,7 @@ diff --git a/third_party/blink/renderer/core/frame/local_frame.h b/third_party/b
// Informs the local root's document and its local descendant subtree that a
// media query value changed.
-@@ -1095,6 +1096,7 @@ class CORE_EXPORT LocalFrame final
+@@ -1091,6 +1092,7 @@ class CORE_EXPORT LocalFrame final
unsigned did_run_detach_impl_ : 1 = false;
float layout_zoom_factor_;
@@ -662,7 +662,7 @@ diff --git a/third_party/blink/renderer/core/frame/screen_metrics_emulator.h b/t
diff --git a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
--- a/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
+++ b/third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
-@@ -1952,6 +1952,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
+@@ -1946,6 +1946,15 @@ void WebFrameWidgetImpl::ApplyVisualPropertiesSizing(
if (DeviceEmulator() && widget_base_ && !widget_base_->WillBeDestroyed()) {
DeviceEmulator()->UpdateVisualProperties(visual_properties);
@@ -749,7 +749,7 @@ diff --git a/third_party/blink/renderer/core/page/page.cc b/third_party/blink/re
namespace blink {
namespace {
-@@ -1309,7 +1316,96 @@ void Page::UpdateAcceleratedCompositingSettings() {
+@@ -1313,7 +1320,96 @@ void Page::UpdateAcceleratedCompositingSettings() {
}
}
@@ -875,7 +875,7 @@ diff --git a/third_party/blink/renderer/core/page/page.h b/third_party/blink/ren
diff --git a/third_party/blink/renderer/core/style/computed_style.h b/third_party/blink/renderer/core/style/computed_style.h
--- a/third_party/blink/renderer/core/style/computed_style.h
+++ b/third_party/blink/renderer/core/style/computed_style.h
-@@ -2026,6 +2026,12 @@ class ComputedStyle final : public ComputedStyleBase {
+@@ -2025,6 +2025,12 @@ class ComputedStyle final : public ComputedStyleBase {
IsRunningBackdropFilterAnimationOnCompositor();
}
diff --git a/build/patches/WIN-enable-pdf-plugin.patch b/build/patches/WIN-enable-pdf-plugin.patch
index 81115575..163d3642 100644
--- a/build/patches/WIN-enable-pdf-plugin.patch
+++ b/build/patches/WIN-enable-pdf-plugin.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc
--- a/third_party/blink/renderer/core/frame/local_frame.cc
+++ b/third_party/blink/renderer/core/frame/local_frame.cc
-@@ -2374,7 +2374,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings()
+@@ -2377,7 +2377,9 @@ const mojom::RendererContentSettingsPtr& LocalFrame::GetContentSettings()
}
PluginData* LocalFrame::GetPluginData() const {
diff --git a/build/patches/Warning-message-for-unsupported-hardware-aes.patch b/build/patches/Warning-message-for-unsupported-hardware-aes.patch
index 855f8ee0..af6b89a5 100644
--- a/build/patches/Warning-message-for-unsupported-hardware-aes.patch
+++ b/build/patches/Warning-message-for-unsupported-hardware-aes.patch
@@ -51,7 +51,7 @@ diff --git a/base/base_switches.h b/base/base_switches.h
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
-@@ -430,6 +430,7 @@ if (is_win) {
+@@ -429,6 +429,7 @@ if (is_win) {
"//components/webapps/isolated_web_apps:scheme",
"//content/public/app",
"//crypto",
@@ -59,7 +59,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
"//headless:headless_non_renderer",
"//headless:headless_shell_browser_lib",
"//net:net_resources",
-@@ -1640,6 +1641,8 @@ if (is_android) {
+@@ -1635,6 +1636,8 @@ if (is_android) {
"//chrome/common/profiler",
"//chrome/gpu",
"//chrome/renderer",
@@ -97,7 +97,7 @@ diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegat
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
-@@ -7252,6 +7252,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
+@@ -7263,6 +7263,10 @@ Keep your key file in a safe place. You will need it to create new versions of y
You are using an unsupported feature flag: $1SignedHTTPExchange. Stability and security will suffer.
@@ -111,7 +111,7 @@ diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources
diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/startup/bad_flags_prompt.cc
--- a/chrome/browser/ui/startup/bad_flags_prompt.cc
+++ b/chrome/browser/ui/startup/bad_flags_prompt.cc
-@@ -259,6 +259,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) {
+@@ -293,6 +293,15 @@ void ShowBadFlagsPrompt(content::WebContents* web_contents) {
return;
}
}
@@ -130,7 +130,7 @@ diff --git a/chrome/browser/ui/startup/bad_flags_prompt.cc b/chrome/browser/ui/s
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
-@@ -3712,6 +3712,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
+@@ -3820,6 +3820,7 @@ void RenderProcessHostImpl::PropagateBrowserCommandLineToRenderer(
switches::kSchedulerBoostUrgent,
#endif
switches::kDesktopModeViewportMetaEnabled,
diff --git a/build/patches/Welcome-screen.patch b/build/patches/Welcome-screen.patch
index 23dd40b5..c1441cb6 100644
--- a/build/patches/Welcome-screen.patch
+++ b/build/patches/Welcome-screen.patch
@@ -31,7 +31,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
--- a/chrome/android/chrome_java_resources.gni
+++ b/chrome/android/chrome_java_resources.gni
-@@ -517,6 +517,7 @@ chrome_java_resources = [
+@@ -526,6 +526,7 @@ chrome_java_resources = [
"java/res/layout/find_in_page.xml",
"java/res/layout/find_toolbar.xml",
"java/res/layout/fre_tos_privacy_disclaimer.xml",
@@ -42,7 +42,7 @@ diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_ja
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
-@@ -640,6 +640,8 @@ chrome_java_sources = [
+@@ -646,6 +646,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/firstrun/LightweightFirstRunActivity.java",
"java/src/org/chromium/chrome/browser/firstrun/SkipTosDialogPolicyListener.java",
"java/src/org/chromium/chrome/browser/firstrun/TosDialogBehaviorSharedPrefInvalidator.java",
@@ -240,7 +240,7 @@ diff --git a/chrome/android/java/res/values/dimens.xml b/chrome/android/java/res
diff --git a/chrome/android/java/res/values/styles.xml b/chrome/android/java/res/values/styles.xml
--- a/chrome/android/java/res/values/styles.xml
+++ b/chrome/android/java/res/values/styles.xml
-@@ -337,6 +337,30 @@ found in the LICENSE file.
+@@ -342,6 +342,30 @@ found in the LICENSE file.
- 1
diff --git a/build/patches/add-browser-policy.patch b/build/patches/add-browser-policy.patch
index 10161400..e72df3d9 100644
--- a/build/patches/add-browser-policy.patch
+++ b/build/patches/add-browser-policy.patch
@@ -131,7 +131,7 @@ diff --git a/base/win/win_util.cc b/base/win/win_util.cc
diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/AndroidManifest.xml
--- a/chrome/android/java/AndroidManifest.xml
+++ b/chrome/android/java/AndroidManifest.xml
-@@ -82,9 +82,7 @@ by a child template that "extends" this file.
+@@ -84,9 +84,7 @@ by a child template that "extends" this file.
@@ -141,7 +141,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -101,7 +99,6 @@ by a child template that "extends" this file.
+@@ -112,7 +110,6 @@ by a child template that "extends" this file.
resizeTo, moveBy}|).
-->
@@ -149,7 +149,7 @@ diff --git a/chrome/android/java/AndroidManifest.xml b/chrome/android/java/Andro
-@@ -148,7 +145,6 @@ by a child template that "extends" this file.
+@@ -159,7 +156,6 @@ by a child template that "extends" this file.
@@ -228,7 +228,7 @@ diff --git a/chrome/browser/policy/chrome_browser_policy_connector.cc b/chrome/b
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
--- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
+++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
-@@ -2488,9 +2488,9 @@ bool AreFuturePoliciesEnabledByDefault() {
+@@ -2499,9 +2499,9 @@ bool AreFuturePoliciesEnabledByDefault() {
if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType)) {
return true;
}
@@ -241,7 +241,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
}
} // namespace
-@@ -3320,7 +3320,10 @@ std::unique_ptr BuildHandlerList(
+@@ -3334,7 +3334,10 @@ std::unique_ptr BuildHandlerList(
key::kExtensionInstallCloudPolicyChecksEnabled,
extensions::pref_names::kExtensionInstallCloudPolicyChecksEnabled,
base::Value::Type::BOOLEAN));
@@ -338,7 +338,7 @@ diff --git a/chrome/browser/signin/bound_session_credentials/throttled_gaia_auth
diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/signin/chrome_signin_client.cc
--- a/chrome/browser/signin/chrome_signin_client.cc
+++ b/chrome/browser/signin/chrome_signin_client.cc
-@@ -265,7 +265,9 @@ void ChromeSigninClient::DoFinalInit() {
+@@ -266,7 +266,9 @@ void ChromeSigninClient::DoFinalInit() {
bool ChromeSigninClient::ProfileAllowsSigninCookies(Profile* profile) {
scoped_refptr cookie_settings =
CookieSettingsFactory::GetForProfile(profile);
@@ -349,7 +349,7 @@ diff --git a/chrome/browser/signin/chrome_signin_client.cc b/chrome/browser/sign
}
PrefService* ChromeSigninClient::GetPrefs() {
-@@ -386,6 +388,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
+@@ -387,6 +389,9 @@ bool ChromeSigninClient::AreNetworkCallsDelayed() {
}
void ChromeSigninClient::DelayNetworkCall(base::OnceClosure callback) {
@@ -371,7 +371,7 @@ diff --git a/chrome/browser/signin/dice_response_handler.cc b/chrome/browser/sig
"Signin.DiceTokenBindingOutcome";
// Used for UMA. Do not reorder, append new values at the end.
-@@ -387,8 +387,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader(
+@@ -386,8 +386,10 @@ void DiceResponseHandler::ProcessDiceSignoutHeader(
// - If there is a policy restriction on removing the primary account.
bool invalidate_only_primary_account =
identity_manager_->HasPrimaryAccount(signin::ConsentLevel::kSync) ||
@@ -532,7 +532,7 @@ diff --git a/chrome/browser/ui/webui/policy/policy_ui_handler.h b/chrome/browser
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
-@@ -383,7 +383,7 @@
+@@ -386,7 +386,7 @@
@@ -601,7 +601,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
} // namespace
BASE_FEATURE(kCommerceAllowLocalImages, base::FEATURE_DISABLED_BY_DEFAULT);
-@@ -293,16 +243,15 @@ const base::FeatureParam kRevertIconOnFailure{
+@@ -282,16 +232,15 @@ const base::FeatureParam kRevertIconOnFailure{
&kShoppingList, kRevertIconOnFailureParam, false};
bool IsPartnerMerchant(const GURL& url) {
@@ -621,7 +621,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
}
bool IsCartDiscountFeatureEnabled() {
-@@ -354,6 +303,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature,
+@@ -343,6 +292,7 @@ bool IsEnabledForCountryAndLocale(const base::Feature& feature,
bool IsRegionLockedFeatureEnabled(const base::Feature& feature,
const std::string& country_code,
const std::string& locale) {
@@ -629,7 +629,7 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
auto* feature_list = base::FeatureList::GetInstance();
// If the feature has a server-side config, this check will ensure that
-@@ -386,6 +336,7 @@ base::TimeDelta GetDiscountFetchDelay() {
+@@ -375,6 +325,7 @@ base::TimeDelta GetDiscountFetchDelay() {
}
bool IsNoDiscountMerchant(const GURL& url) {
@@ -637,8 +637,8 @@ diff --git a/components/commerce/core/commerce_feature_list.cc b/components/comm
auto* pattern_from_component =
commerce_heuristics::CommerceHeuristicsData::GetInstance()
.GetNoDiscountMerchantPattern();
-@@ -397,4 +348,6 @@ bool IsNoDiscountMerchant(const GURL& url) {
- return RE2::PartialMatch(url.host_piece(), *pattern_from_component);
+@@ -386,4 +337,6 @@ bool IsNoDiscountMerchant(const GURL& url) {
+ return RE2::PartialMatch(url.host(), *pattern_from_component);
}
#endif
+
@@ -999,8 +999,8 @@ diff --git a/components/search/ntp_features.cc b/components/search/ntp_features.
BASE_FEATURE(kNtpChromeCartModule, base::FEATURE_ENABLED_BY_DEFAULT);
+SET_CROMITE_FEATURE_DISABLED(kNtpChromeCartModule);
- #if !defined(OFFICIAL_BUILD)
- // If enabled, dummy modules will be shown.
+ // If enabled, customization of Chrome will be promoted on the NTP.
+ BASE_FEATURE(kNtpCustomizeChromeAutoOpen, base::FEATURE_DISABLED_BY_DEFAULT);
diff --git a/components/signin/features.gni b/components/signin/features.gni
--- a/components/signin/features.gni
+++ b/components/signin/features.gni
@@ -1025,7 +1025,7 @@ diff --git a/components/signin/internal/identity_manager/gaia_cookie_manager_ser
DCHECK(!cookie_listener_receiver_.is_bound());
network::mojom::CookieManager* cookie_manager =
-@@ -846,6 +848,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished(
+@@ -859,6 +861,8 @@ void GaiaCookieManagerService::OnSetAccountsFinished(
}
void GaiaCookieManagerService::HandleNextRequest() {
diff --git a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch
index a4b79efc..3ac09edc 100644
--- a/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch
+++ b/build/patches/allow-the-download-of-clang-for-windows-crossbuild.patch
@@ -23,7 +23,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
"""
import sys
-@@ -251,7 +253,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir):
+@@ -261,7 +263,7 @@ def DownloadAndUnpackClangWinRuntime(output_dir):
def UpdatePackage(package_name,
@@ -32,7 +32,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
preserve_gcs_signature,
dir=LLVM_BUILD_DIR):
stamp_file = None
-@@ -285,6 +287,8 @@ def UpdatePackage(package_name,
+@@ -295,6 +297,8 @@ def UpdatePackage(package_name,
target_os = env.get('target_os', target_os)
except:
pass
@@ -41,7 +41,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
if os.path.exists(OLD_STAMP_FILE):
# Delete the old stamp file so it doesn't look like an old version of clang
-@@ -302,7 +306,7 @@ def UpdatePackage(package_name,
+@@ -312,7 +316,7 @@ def UpdatePackage(package_name,
# Updating the main clang package nukes the output dir. Any other packages
# need to be updated *after* the clang package.
@@ -50,7 +50,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
RmTree(dir)
DownloadAndUnpackPackage(package_file, dir, host_os)
-@@ -350,6 +354,8 @@ def main():
+@@ -360,6 +364,8 @@ def main():
parser.add_argument('--print-clang-version', action='store_true',
help=('Print current clang release version (e.g. 9.0.0) '
'and exit.'))
@@ -59,7 +59,7 @@ diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py
parser.add_argument('--preserve-gcs-signature',
action='store_true',
help='By default, this script removes gcs hash files '
-@@ -392,7 +398,7 @@ def main():
+@@ -402,7 +408,7 @@ def main():
print('--llvm-force-head-revision can only be used for --print-revision')
return 1
diff --git a/build/patches/autofill-miscellaneous.patch b/build/patches/autofill-miscellaneous.patch
index 17a56fa3..55550176 100644
--- a/build/patches/autofill-miscellaneous.patch
+++ b/build/patches/autofill-miscellaneous.patch
@@ -41,7 +41,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AutofillOptions
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc
--- a/chrome/browser/password_manager/chrome_password_manager_client.cc
+++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
-@@ -1093,10 +1093,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() {
+@@ -1126,10 +1126,6 @@ ChromePasswordManagerClient::GetHttpAuthManager() {
autofill::AutofillCrowdsourcingManager*
ChromePasswordManagerClient::GetAutofillCrowdsourcingManager() {
@@ -55,7 +55,7 @@ diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
--- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
-@@ -403,15 +403,6 @@ ChromeAutofillClient::GetURLLoaderFactory() {
+@@ -456,15 +456,6 @@ ChromeAutofillClient::GetURLLoaderFactory() {
->GetURLLoaderFactoryForBrowserProcess();
}
@@ -74,7 +74,7 @@ diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/brows
diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.h b/chrome/browser/ui/autofill/chrome_autofill_client.h
--- a/chrome/browser/ui/autofill/chrome_autofill_client.h
+++ b/chrome/browser/ui/autofill/chrome_autofill_client.h
-@@ -112,7 +112,6 @@ class ChromeAutofillClient : public ContentAutofillClient,
+@@ -115,7 +115,6 @@ class ChromeAutofillClient : public ContentAutofillClient,
version_info::Channel GetChannel() const final;
bool IsOffTheRecord() const final;
scoped_refptr GetURLLoaderFactory() final;
@@ -112,8 +112,8 @@ diff --git a/components/android_autofill/browser/android_autofill_client.h b/com
scoped_refptr GetURLLoaderFactory() final;
- autofill::AutofillCrowdsourcingManager& GetCrowdsourcingManager() final;
autofill::VotesUploader& GetVotesUploader() override;
+ bool HasPersonalDataManager() const final;
autofill::PersonalDataManager& GetPersonalDataManager() final;
- autofill::ValuablesDataManager* GetValuablesDataManager() override;
diff --git a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc
--- a/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc
+++ b/components/autofill/core/browser/crowdsourcing/autofill_crowdsourcing_manager.cc
@@ -232,7 +232,7 @@ diff --git a/components/autofill/core/browser/crowdsourcing/votes_uploader.cc b/
diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/components/autofill/core/browser/foundations/autofill_client.h
--- a/components/autofill/core/browser/foundations/autofill_client.h
+++ b/components/autofill/core/browser/foundations/autofill_client.h
-@@ -315,10 +315,6 @@ class AutofillClient {
+@@ -321,10 +321,6 @@ class AutofillClient {
// Returns the VotesUploader.
virtual VotesUploader& GetVotesUploader() = 0;
@@ -240,13 +240,13 @@ diff --git a/components/autofill/core/browser/foundations/autofill_client.h b/co
- // Autofill server.
- virtual AutofillCrowdsourcingManager& GetCrowdsourcingManager() = 0;
-
- // Gets the PersonalDataManager instance associated with the original Chrome
- // profile.
- // To distinguish between (non-)incognito mode when deciding to persist data,
+ // Returns whether the client has a PersonalDataManager.
+ //
+ // TODO(crbug.cm/455121491) This is a temporary fix to avoid crashes when
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
-@@ -305,17 +305,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) {
+@@ -306,17 +306,6 @@ void AutofillManager::OnFormsParsed(const std::vector& forms) {
if (base::FeatureList::IsEnabled(features::test::kShowDomNodeIDs)) {
driver().ExposeDomNodeIdsInAllFrames();
}
@@ -258,7 +258,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
- // server response is processed, to ensure server predictions are not lost.
- client().GetCrowdsourcingManager().StartQueryRequest(
- queryable_forms, driver().GetIsolationInfo(),
-- AfterParsingFinishes(base::BindOnce(
+- AfterParsingFinishesDeprecated(base::BindOnce(
- &AutofillManager::OnLoadedServerPredictions, GetWeakPtr())));
- }
}
@@ -267,7 +267,7 @@ diff --git a/components/autofill/core/browser/foundations/autofill_manager.cc b/
diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
--- a/components/autofill/core/common/autofill_features.cc
+++ b/components/autofill/core/common/autofill_features.cc
-@@ -933,6 +933,8 @@ BASE_FEATURE(kAutofillUnionTypesSingleTypeInAutofillInformation,
+@@ -1007,6 +1007,8 @@ BASE_FEATURE(kAutofillUnionTypesSingleTypeInAutofillInformation,
// to be launched.
BASE_FEATURE(kAutofillUploadThrottling, base::FEATURE_ENABLED_BY_DEFAULT);
@@ -288,7 +288,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterIntegerPref(
kAutofillLastVersionDeduped, 0,
-@@ -43,10 +43,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -49,10 +49,10 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
kAutofillHasSeenIban, false,
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
@@ -301,7 +301,7 @@ diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/auto
user_prefs::PrefRegistrySyncable::SYNCABLE_PREF);
registry->RegisterBooleanPref(
kAutofillPaymentCardBenefits, true,
-@@ -98,7 +98,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -104,7 +104,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) {
#endif
// Deprecated prefs registered for migration.
diff --git a/build/patches/bromite-build-utils.patch b/build/patches/bromite-build-utils.patch
index c67291a7..4762378a 100644
--- a/build/patches/bromite-build-utils.patch
+++ b/build/patches/bromite-build-utils.patch
@@ -41,24 +41,24 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu
single_line_comment_re = re.compile(r'\s*//\s*([^\n]*)')
multi_line_comment_start_re = re.compile(r'\s*/\*')
enum_line_re = re.compile(r'^\s*(\w+)(\s*\=\s*([^,\n]+))?,?')
-@@ -236,7 +237,7 @@ class HeaderParser:
+@@ -230,7 +231,7 @@ class HeaderParser:
enum_single_line_re = re.compile(
r'^\s*(?:\[cpp.*\])?\s*enum.*{(?P.*)}.*$')
- def __init__(self, lines, path=''):
+ def __init__(self, lines, options, path=''):
- self._lines = lines
+ self._lines = java_cpp_utils.PreprocessIfBlocks(lines)
self._path = path
self._enum_definitions = []
-@@ -257,6 +258,7 @@ class HeaderParser:
+@@ -240,6 +241,7 @@ class HeaderParser:
self._generator_directives = DirectiveSet()
self._multi_line_generator_directive = None
self._current_enum_entry = ''
+ self._options = options
- def _ShouldIgnoreLine(self):
- return self._in_preprocessor_block and not all(self._in_buildflag_android)
-@@ -303,6 +305,24 @@ class HeaderParser:
+ def _ApplyGeneratorDirectives(self):
+ self._generator_directives.UpdateDefinition(self._current_definition)
+@@ -266,6 +268,24 @@ class HeaderParser:
raise Exception('Multi-line comments in enums are not supported in ' +
self._path)
@@ -83,7 +83,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu
enum_comment = HeaderParser.single_line_comment_re.match(line)
if enum_comment:
comment = enum_comment.groups()[0]
-@@ -404,9 +424,9 @@ class HeaderParser:
+@@ -367,9 +387,9 @@ class HeaderParser:
self._ParseSingleLineEnum(single_line_enum.group('enum_entries'))
@@ -95,7 +95,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu
if not enum_definitions:
raise Exception('No enums found in %s\n'
'Did you forget prefixing enums with '
-@@ -419,9 +439,9 @@ def DoGenerate(source_paths):
+@@ -382,9 +402,9 @@ def DoGenerate(source_paths):
yield output_path, output
@@ -107,7 +107,7 @@ diff --git a/build/android/gyp/java_cpp_enum.py b/build/android/gyp/java_cpp_enu
def GenerateOutput(source_path, enum_definition):
-@@ -507,11 +527,16 @@ def DoMain(argv):
+@@ -470,11 +490,16 @@ def DoMain(argv):
nargs='+',
help='Path to at least one input file.')
@@ -424,7 +424,7 @@ new file mode 100644
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn
--- a/build/config/BUILDCONFIG.gn
+++ b/build/config/BUILDCONFIG.gn
-@@ -835,3 +835,5 @@ if (is_component_build) {
+@@ -834,3 +834,5 @@ if (is_component_build) {
set_defaults("component") {
configs = default_component_configs
}
diff --git a/build/patches/disable-WebView-variations-support.patch b/build/patches/disable-WebView-variations-support.patch
index 1f71c2f4..a470dbdf 100644
--- a/build/patches/disable-WebView-variations-support.patch
+++ b/build/patches/disable-WebView-variations-support.patch
@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
-@@ -620,13 +620,6 @@ public class WebViewChromiumAwInit {
+@@ -667,13 +667,6 @@ public class WebViewChromiumAwInit {
}
AwBrowserProcess.configureChildProcessLauncher();
@@ -29,7 +29,7 @@ diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewC
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
--- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
-@@ -676,10 +676,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
+@@ -687,10 +687,6 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
// This must happen after pref value has been read and SafeMode setup has completed.
setupStartupTaskExperiments(androidXConfig);
diff --git a/build/patches/disable-appending-variations-header.patch b/build/patches/disable-appending-variations-header.patch
index 0395130c..461c58d7 100644
--- a/build/patches/disable-appending-variations-header.patch
+++ b/build/patches/disable-appending-variations-header.patch
@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/components/variations/net/variations_http_headers.cc b/components/variations/net/variations_http_headers.cc
--- a/components/variations/net/variations_http_headers.cc
+++ b/components/variations/net/variations_http_headers.cc
-@@ -120,10 +120,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) {
+@@ -119,10 +119,7 @@ URLValidationResult GetUrlValidationResult(const GURL& url) {
// Also, logs the result of validating |url| in histograms, one of which ends in
// |suffix|.
bool ShouldAppendVariationsHeader(const GURL& url, const std::string& suffix) {
diff --git a/build/patches/do-not-block-build-incompatible-profiles.patch b/build/patches/do-not-block-build-incompatible-profiles.patch
index ddccbac7..31b9f2a7 100644
--- a/build/patches/do-not-block-build-incompatible-profiles.patch
+++ b/build/patches/do-not-block-build-incompatible-profiles.patch
@@ -10,7 +10,7 @@ License: GPL-2.0-or-later - https://spdx.org/licenses/GPL-2.0-or-later.html
diff --git a/v8/BUILD.gn b/v8/BUILD.gn
--- a/v8/BUILD.gn
+++ b/v8/BUILD.gn
-@@ -2618,7 +2618,7 @@ template("run_mksnapshot") {
+@@ -2619,7 +2619,7 @@ template("run_mksnapshot") {
# Replace this with --warn-about-builtin-profile-data to see the full
# list of builtins with incompatible profiles.
diff --git a/build/patches/enable-ftrivial-auto-var-init-zero.patch b/build/patches/enable-ftrivial-auto-var-init-zero.patch
index 26c5d0a4..475345ef 100644
--- a/build/patches/enable-ftrivial-auto-var-init-zero.patch
+++ b/build/patches/enable-ftrivial-auto-var-init-zero.patch
@@ -11,7 +11,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
-@@ -459,6 +459,10 @@ config("compiler") {
+@@ -471,6 +471,10 @@ config("compiler") {
cflags += [ "-fwrapv" ]
}
diff --git a/build/patches/eyeo-133.0.6943.49-android_api.patch b/build/patches/eyeo-133.0.6943.49-android_api.patch
index f9c9399a..a690a4e4 100644
--- a/build/patches/eyeo-133.0.6943.49-android_api.patch
+++ b/build/patches/eyeo-133.0.6943.49-android_api.patch
@@ -6,7 +6,7 @@ Based on Chromium 133.0.6943.49
Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
---
- chrome/android/BUILD.gn | 13 +
+ chrome/android/BUILD.gn | 12 +
chrome/android/chrome_java_sources.gni | 4 +
.../browser/adblock/TabIdTranslator.java | 36 ++
chrome/browser/BUILD.gn | 4 +
@@ -46,7 +46,7 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module
.../adblock/TestVerificationUtils.java | 220 +++++++
...esource_classification_notifier_android.cc | 163 +++++
...resource_classification_notifier_android.h | 72 +++
- 40 files changed, 5610 insertions(+)
+ 40 files changed, 5609 insertions(+)
create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java
create mode 100644 chrome/browser/android/adblock/tab_id_translator_jni.cc
create mode 100644 components/adblock/android/BUILD.gn
@@ -97,7 +97,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
import("//build/config/android/config.gni")
import("//build/config/cronet/config.gni")
-@@ -555,6 +558,7 @@ if (_is_default_toolchain) {
+@@ -556,6 +559,7 @@ if (_is_default_toolchain) {
"//chrome/browser/xsurface:java",
"//chrome/browser/xsurface_provider:dependency_provider_impl_java",
"//chrome/browser/xsurface_provider:java",
@@ -105,15 +105,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/android_autofill/browser:features_java",
"//components/android_autofill/browser:java",
"//components/autofill/android:autofill_features_java",
-@@ -1407,6 +1411,7 @@ if (_is_default_toolchain) {
- "javatests:chrome_test_java_org.chromium.chrome.browser.toolbar",
- "javatests:chrome_test_java_org.chromium.chrome.browser.webapps",
- "javatests:chrome_test_java_various",
-+ "//chrome/browser/adblock/android:adblock_java_tests",
- "//chrome/browser/android/browserservices/verification:javatests",
- "//chrome/browser/android/httpclient:javatests",
- "//chrome/browser/android/metrics:ukm_javatests",
-@@ -1477,6 +1482,7 @@ if (_is_default_toolchain) {
+@@ -1482,6 +1486,7 @@ if (_is_default_toolchain) {
"//chrome/test/data/translate/",
"//chrome/test/data/webauthn/",
"//chrome/test/media_router/resources/",
@@ -121,7 +113,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
"//components/test/data/autofill/",
"//components/test/data/payments/",
"//content/test/data/browsing_data/",
-@@ -3277,6 +3283,12 @@ if (_is_default_toolchain) {
+@@ -3285,6 +3290,12 @@ if (_is_default_toolchain) {
sources += [ "java/src/org/chromium/chrome/browser/media/MediaCapturePickerDialogBridge.java" ]
}
@@ -134,7 +126,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
# Used for testing only, should not be shipped to end users.
if (enable_offline_pages_harness) {
sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
-@@ -3368,6 +3380,7 @@ if (_is_default_toolchain) {
+@@ -3377,6 +3388,7 @@ if (_is_default_toolchain) {
"//chrome/browser/ui/plus_addresses/android:jni_headers",
"//chrome/browser/util:jni_headers",
"//chrome/browser/webauthn/android:jni_headers",
@@ -155,9 +147,9 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
import("//content/public/common/features.gni")
-@@ -57,6 +60,7 @@ chrome_java_sources = [
- "java/src/org/chromium/chrome/browser/accessibility/PageZoomIphController.java",
+@@ -58,6 +61,7 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/accessibility/settings/AccessibilitySettingsBridge.java",
+ "java/src/org/chromium/chrome/browser/accessibility/settings/CaretBrowsingDialog.java",
"java/src/org/chromium/chrome/browser/accessibility/settings/ChromeAccessibilitySettingsDelegate.java",
+ "java/src/org/chromium/chrome/browser/adblock/TabIdTranslator.java",
"java/src/org/chromium/chrome/browser/ai/AiAssistantService.java",
@@ -207,7 +199,7 @@ new file mode 100644
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
-@@ -3397,6 +3397,10 @@ static_library("browser") {
+@@ -3380,6 +3380,10 @@ static_library("browser") {
]
deps += [ "//chrome/browser/password_entry_edit/android" ]
@@ -267,7 +259,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
-@@ -1039,6 +1039,12 @@ static_library("ui") {
+@@ -1050,6 +1050,12 @@ static_library("ui") {
deps += [
"//components/themes:ntp_background_proto",
]
diff --git a/build/patches/eyeo-133.0.6943.49-android_settings.patch b/build/patches/eyeo-133.0.6943.49-android_settings.patch
index 1d0c46b5..a0919cfb 100644
--- a/build/patches/eyeo-133.0.6943.49-android_settings.patch
+++ b/build/patches/eyeo-133.0.6943.49-android_settings.patch
@@ -40,7 +40,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API
.../settings/AdblockFilterListsFragment.java | 57 ++++
.../settings/AdblockMoreOptionsFragment.java | 34 +++
.../settings/AdblockSettingsFragment.java | 162 ++++++++++++
- .../adblock/AdblockFilterFragmentTest.java | 129 +++++++++
.../translations/adblock_strings_af.xtb | 4 +
.../translations/adblock_strings_am.xtb | 13 +
.../translations/adblock_strings_ar.xtb | 13 +
@@ -121,7 +120,8 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API
.../translations/adblock_strings_zh-HK.xtb | 4 +
.../translations/adblock_strings_zh-TW.xtb | 13 +
.../translations/adblock_strings_zu.xtb | 4 +
- 115 files changed, 2349 insertions(+)
+ 114 files changed, 2220 insertions(+)
+ create mode 100644 chrome/browser/adblock/android/BUILD.gn
create mode 100644 chrome/browser/adblock/android/README.md
create mode 100644 chrome/browser/adblock/android/adblock_strings.grd
create mode 100644 chrome/browser/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png
@@ -153,7 +153,6 @@ Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API
create mode 100644 chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockFilterListsFragment.java
create mode 100644 chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockMoreOptionsFragment.java
create mode 100644 chrome/browser/adblock/android/java/src/org/chromium/chrome/browser/adblock/settings/AdblockSettingsFragment.java
- create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java
create mode 100644 chrome/browser/adblock/android/translations/adblock_strings_af.xtb
create mode 100644 chrome/browser/adblock/android/translations/adblock_strings_am.xtb
create mode 100644 chrome/browser/adblock/android/translations/adblock_strings_ar.xtb
@@ -249,7 +248,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
if (enable_extensions_core) {
deps += [ "//chrome/browser/ui/android/extensions:java_resources" ]
}
-@@ -815,6 +819,10 @@ if (_is_default_toolchain) {
+@@ -818,6 +822,10 @@ if (_is_default_toolchain) {
"//chrome/browser/password_entry_edit:public_java",
]
@@ -286,36 +285,26 @@ diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/j
.
+
-+ deps += [
-+ "//components/messages/android:java",
-+ "//third_party/mockito:mockito_java",
-+ ]
-+
-+ ### Android UI module end
-
- deps += [
- "//base:base_java",
-@@ -76,4 +88,77 @@ android_library("adblock_java_tests") {
- "//url:gurl_java",
- ]
-
-+ ### Android UI module start
-+ deps += [ ":adblock_ui_java" ]
-+
-+ ### Android UI module end
-+}
++import("//build/config/android/rules.gni")
++import("//build/config/locales.gni")
++import("//third_party/jni_zero/jni_zero.gni")
++import("//tools/grit/grit_rule.gni")
+
+### Android UI module start
+android_library("adblock_ui_java") {
@@ -383,7 +372,7 @@ diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/an
+ process_file_template(
+ android_bundle_locales_as_resources,
+ [ "values-{{source_name_part}}/adblock_strings.xml" ])
- }
++}
+### Android UI module end
diff --git a/chrome/browser/adblock/android/README.md b/chrome/browser/adblock/android/README.md
new file mode 100644
@@ -2178,140 +2167,6 @@ new file mode 100644
+ synchronizePreferences();
+ }
+}
-diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java
-new file mode 100644
---- /dev/null
-+++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java
-@@ -0,0 +1,129 @@
-+/*
-+ * This file is part of eyeo Chromium SDK,
-+ * Copyright (C) 2006-present eyeo GmbH
-+ *
-+ * eyeo Chromium SDK is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 3 as
-+ * published by the Free Software Foundation.
-+ *
-+ * eyeo Chromium SDK is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with eyeo Chromium SDK. If not, see .
-+ */
-+
-+package org.chromium.chrome.browser.adblock;
-+
-+import static org.mockito.Mockito.when;
-+
-+import android.util.Pair;
-+import android.view.View;
-+import android.widget.CheckBox;
-+
-+import androidx.test.filters.SmallTest;
-+
-+import org.junit.Assert;
-+import org.junit.Before;
-+import org.junit.Rule;
-+import org.junit.Test;
-+import org.junit.runner.RunWith;
-+import org.mockito.Mock;
-+import org.mockito.MockitoAnnotations;
-+
-+import org.chromium.base.ThreadUtils;
-+import org.chromium.base.test.util.ApplicationTestUtils;
-+import org.chromium.base.test.util.CommandLineFlags;
-+import org.chromium.base.test.util.Feature;
-+import org.chromium.chrome.browser.adblock.settings.AdblockFilterListsFragment;
-+import org.chromium.chrome.browser.flags.ChromeSwitches;
-+import org.chromium.chrome.browser.settings.SettingsActivityTestRule;
-+import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
-+import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
-+import org.chromium.components.adblock.AdblockController;
-+import org.chromium.components.adblock.AdblockController.Subscription;
-+
-+import java.net.MalformedURLException;
-+import java.net.URL;
-+import java.util.Arrays;
-+import java.util.HashMap;
-+import java.util.Map;
-+
-+@RunWith(ChromeJUnit4ClassRunner.class)
-+@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE})
-+public class AdblockFilterFragmentTest {
-+ @Mock private AdblockController mAdblockControllerMock;
-+
-+ @Rule
-+ public final ChromeTabbedActivityTestRule mActivityTestRule =
-+ new ChromeTabbedActivityTestRule();
-+
-+ @Rule
-+ public SettingsActivityTestRule mTestRule =
-+ new SettingsActivityTestRule<>(AdblockFilterListsFragment.class);
-+
-+ @Before
-+ public void setUp() throws Exception {
-+ MockitoAnnotations.initMocks(this);
-+ mActivityTestRule.startMainActivityOnBlankPage();
-+ mTestRule.startSettingsActivity();
-+ ApplicationTestUtils.finishActivity(mTestRule.getActivity());
-+ }
-+
-+ @Test
-+ @SmallTest
-+ @Feature({"adblock"})
-+ public void testLanguageFiltersNotEmpty() {
-+ mTestRule.startSettingsActivity();
-+ final AdblockFilterListsFragment fragment = mTestRule.getFragment();
-+ Assert.assertNotNull(fragment);
-+ Assert.assertNotEquals(0, fragment.getListView().getCount());
-+ }
-+
-+ @Test
-+ @SmallTest
-+ @Feature({"adblock"})
-+ public void testAutoInstalledFilterListsCheckbox() throws MalformedURLException {
-+ AdblockController.setInstanceForTesting(mAdblockControllerMock);
-+ final String autoInstalledUrl = "https://auto_installed.com";
-+ final String manuallyInstalledUrl = "https://manually_installed.com";
-+ final String recommendedUrl = "https://some_recommendation.com";
-+ final Subscription autoInstalled =
-+ new Subscription(new URL(autoInstalledUrl), "auto", "", new String[] {}, true);
-+ final Subscription manuallyInstalled =
-+ new Subscription(
-+ new URL(manuallyInstalledUrl), "manual", "", new String[] {}, false);
-+ final Subscription recommended =
-+ new Subscription(
-+ new URL(recommendedUrl), "recommended", "", new String[] {}, false);
-+ when(mAdblockControllerMock.getRecommendedSubscriptions())
-+ .thenReturn(Arrays.asList(autoInstalled, manuallyInstalled, recommended));
-+ when(mAdblockControllerMock.getInstalledSubscriptions())
-+ .thenReturn(Arrays.asList(autoInstalled, manuallyInstalled));
-+ mTestRule.startSettingsActivity();
-+ final AdblockFilterListsFragment fragment = mTestRule.getFragment();
-+ Assert.assertNotNull(fragment);
-+ Assert.assertEquals(3, fragment.getListView().getCount());
-+
-+ ThreadUtils.runOnUiThreadBlocking(
-+ () -> {
-+ // Map: filter list URL => Pair(checkbox marked, checkbox enabled)
-+ final Map> expectations = new HashMap<>();
-+ expectations.put(autoInstalledUrl, new Pair<>(true, false));
-+ expectations.put(manuallyInstalledUrl, new Pair<>(true, true));
-+ expectations.put(recommendedUrl, new Pair<>(false, true));
-+ for (int i = 0; i < fragment.getListView().getCount(); i++) {
-+ final View view = fragment.getListView().getChildAt(i);
-+ final CheckBox checkBox = view.findViewById(R.id.checkbox);
-+ Assert.assertEquals(
-+ expectations.get(view.getTag().toString()).first,
-+ checkBox.isChecked());
-+ Assert.assertEquals(
-+ expectations.get(view.getTag().toString()).second,
-+ checkBox.isEnabled());
-+ }
-+ });
-+ }
-+}
diff --git a/chrome/browser/adblock/android/translations/adblock_strings_af.xtb b/chrome/browser/adblock/android/translations/adblock_strings_af.xtb
new file mode 100644
--- /dev/null
diff --git a/build/patches/eyeo-133.0.6943.49-base.patch b/build/patches/eyeo-133.0.6943.49-base.patch
index 20e6f1c5..16ee8852 100644
--- a/build/patches/eyeo-133.0.6943.49-base.patch
+++ b/build/patches/eyeo-133.0.6943.49-base.patch
@@ -65,7 +65,7 @@ Based on Chromium 133.0.6943.49
.../browser/frame_hierarchy_builder.cc | 137 ++
.../content/browser/frame_hierarchy_builder.h | 66 +
.../content/browser/frame_opener_info.cc | 37 +
- .../content/browser/frame_opener_info.h | 46 +
+ .../content/browser/frame_opener_info.h | 45 +
.../adblock/content/browser/mojom/BUILD.gn | 22 +
.../browser/mojom/adblock_internals.mojom | 22 +
.../content/browser/page_view_stats.cc | 291 ++++
@@ -263,7 +263,7 @@ Based on Chromium 133.0.6943.49
.../subscription/subscription_collection.h | 98 ++
.../subscription_collection_impl.cc | 382 +++++
.../subscription_collection_impl.h | 98 ++
- .../core/subscription/subscription_config.cc | 426 +++++
+ .../core/subscription/subscription_config.cc | 428 +++++
.../core/subscription/subscription_config.h | 131 ++
.../subscription/subscription_downloader.h | 60 +
.../subscription_downloader_impl.cc | 279 ++++
@@ -365,7 +365,7 @@ Based on Chromium 133.0.6943.49
tools/eyeo/update_git_grafts.py | 138 ++
tools/gritsettings/resource_ids.spec | 12 +
.../histograms/metadata/extensions/enums.xml | 8 +-
- 361 files changed, 48837 insertions(+), 9 deletions(-)
+ 361 files changed, 48838 insertions(+), 9 deletions(-)
create mode 100644 components/adblock/BUILD.gn
create mode 100644 components/adblock/CHANGELOG.md
create mode 100644 components/adblock/LICENSE
@@ -700,7 +700,7 @@ Based on Chromium 133.0.6943.49
diff --git a/DEPS b/DEPS
--- a/DEPS
+++ b/DEPS
-@@ -292,6 +292,7 @@ vars = {
+@@ -295,6 +295,7 @@ vars = {
'download_libvpx_testdata': False,
'android_git': 'https://android.googlesource.com',
@@ -708,7 +708,7 @@ diff --git a/DEPS b/DEPS
'aomedia_git': 'https://aomedia.googlesource.com',
'boringssl_git': 'https://boringssl.googlesource.com',
'chrome_git': 'https://chrome-internal.googlesource.com',
-@@ -535,6 +536,11 @@ vars = {
+@@ -538,6 +539,11 @@ vars = {
# and whatever else without interference from each other.
'clusterfuzz_data_revision':'392cb8a05c3db5963d09b615987fe5fcb081088e',
@@ -719,8 +719,8 @@ diff --git a/DEPS b/DEPS
+
# If you change this, also update the libc++ revision in
# //buildtools/deps_revisions.gni.
- 'libcxx_revision': 'b77132b512d5411f8393fd3decb3abaeaf1d3ec8',
-@@ -1623,6 +1629,10 @@ deps = {
+ 'libcxx_revision': '8cd54f6b0741cdef08299711668e6b25fef26406',
+@@ -1626,6 +1632,10 @@ deps = {
'condition': 'checkout_android and checkout_src_internal',
},
@@ -729,7 +729,7 @@ diff --git a/DEPS b/DEPS
+ },
+
'src/docs/website': {
- 'url': Var('chromium_git') + '/website.git' + '@' + '3913dbd6fdde06b914d0e1119fcc884f8115e4f8',
+ 'url': Var('chromium_git') + '/website.git' + '@' + '2acb551cf58ff3b6e6a093fe36deb8c625046900',
},
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
@@ -796,7 +796,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri
namespace ash {
class LoginEventRecorder;
class StartupCustomizationDocument;
-@@ -656,6 +663,8 @@ class BASE_EXPORT ScopedAllowBlocking {
+@@ -657,6 +664,8 @@ class BASE_EXPORT ScopedAllowBlocking {
friend class ::BrowserStateDirectoryBuilder;
#endif
@@ -808,7 +808,7 @@ diff --git a/base/threading/thread_restrictions.h b/base/threading/thread_restri
diff --git a/base/trace_event/builtin_categories.h b/base/trace_event/builtin_categories.h
--- a/base/trace_event/builtin_categories.h
+++ b/base/trace_event/builtin_categories.h
-@@ -136,6 +136,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
+@@ -139,6 +139,7 @@ PERFETTO_DEFINE_CATEGORIES_IN_NAMESPACE_WITH_ATTRS(
"Traces for the extension file (content) verification process at "
"//extensions/browser/content_verifier.").SetTags("debug"),
perfetto::Category("explore_sites"),
@@ -827,7 +827,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"//components/affiliations/core/browser:unit_tests",
"//components/aggregation_service:unit_tests",
"//components/apdu:unit_tests",
-@@ -982,6 +983,7 @@ test("components_unittests") {
+@@ -986,6 +987,7 @@ test("components_unittests") {
repack("components_tests_pak") {
sources = [
@@ -835,7 +835,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"$root_gen_dir/components/arc/input_overlay_resources.pak",
"$root_gen_dir/components/autofill/core/browser/geo/autofill_address_rewriter_resources.pak",
"$root_gen_dir/components/components_resources.pak",
-@@ -1000,6 +1002,7 @@ repack("components_tests_pak") {
+@@ -1004,6 +1006,7 @@ repack("components_tests_pak") {
# TODO(b/207518736): Input overlay resources will be changed to proto soon,
# thus not going to move this resource pak to under ash.
"//chromeos/ash/experiences/arc/input_overlay/resources:resources_grit",
@@ -843,7 +843,7 @@ diff --git a/components/BUILD.gn b/components/BUILD.gn
"//components/autofill/core/browser:autofill_address_rewriter_resources",
"//components/metrics:server_urls_grd",
"//components/omnibox/resources:omnibox_pedal_synonyms",
-@@ -1105,6 +1108,7 @@ if (use_blink) {
+@@ -1109,6 +1112,7 @@ if (use_blink) {
deps = [
"//base",
"//base/test:test_support",
@@ -8499,7 +8499,7 @@ diff --git a/components/adblock/content/browser/frame_opener_info.h b/components
new file mode 100644
--- /dev/null
+++ b/components/adblock/content/browser/frame_opener_info.h
-@@ -0,0 +1,46 @@
+@@ -0,0 +1,45 @@
+/*
+ * This file is part of eyeo Chromium SDK,
+ * Copyright (C) 2006-present eyeo GmbH
@@ -8536,8 +8536,7 @@ new file mode 100644
+ private:
+ explicit FrameOpenerInfo(content::WebContents* contents);
+
-+ content::GlobalRenderFrameHostId render_frame_host_id_ =
-+ content::GlobalRenderFrameHostId{MSG_ROUTING_NONE, MSG_ROUTING_NONE};
++ content::GlobalRenderFrameHostId render_frame_host_id_;
+
+ friend WebContentsUserData;
+ WEB_CONTENTS_USER_DATA_KEY_DECL();
@@ -33045,9 +33044,9 @@ new file mode 100644
+ DVLOG(1) << "[eyeo] Found site key header, public key: " << public_key
+ << ", signature: " << signature;
+
-+ auto path_with_query = url.path();
++ auto path_with_query = url.GetPath();
+ if (url.has_query()) {
-+ path_with_query += "?" + url.query();
++ path_with_query += "?" + url.GetQuery();
+ }
+ DLOG(INFO) << "[eyeo] Calling IsSitekeySignatureValid(publicKey, signature, "
+ "uri, host,"
@@ -33055,7 +33054,7 @@ new file mode 100644
+ << public_key << ", " << signature << ", " << path_with_query
+ << ", " << url.host() << ", " << user_agent << ")";
+
-+ std::string data = path_with_query + '\0' + url.host() + '\0' + user_agent;
++ std::string data = path_with_query + '\0' + url.GetHost() + '\0' + user_agent;
+ if (IsSitekeySignatureValid(public_key, signature, data) &&
+ !request_url.is_empty() && request_url.is_valid() &&
+ !site_key.value().empty()) {
@@ -34517,7 +34516,7 @@ new file mode 100644
+
+bool IsThirdParty(const GURL& url, const std::string& domain) {
+ return !net::registry_controlled_domains::SameDomainOrHost(
-+ url, GURL(url.scheme() + "://" + domain),
++ url, GURL(url.GetScheme() + "://" + domain),
+ net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES);
+}
+
@@ -34796,7 +34795,7 @@ new file mode 100644
+InstalledSubscriptionImpl::GetElemhideData(const GURL& url,
+ bool domain_specific) const {
+ ContentFiltersData result;
-+ const std::string domain(base::ToLowerASCII(url.host_piece()));
++ const std::string domain(base::ToLowerASCII(url.host()));
+ if (!domain_specific) {
+ result.elemhide_exceptions =
+ GetSelectorsForDomain(
@@ -34826,7 +34825,7 @@ new file mode 100644
+
+InstalledSubscription::ContentFiltersData
+InstalledSubscriptionImpl::GetElemhideEmulationData(const GURL& url) const {
-+ const std::string domain(base::ToLowerASCII(url.host_piece()));
++ const std::string domain(base::ToLowerASCII(url.host()));
+ ContentFiltersData result;
+ DomainSplitter domain_splitter(domain);
+ while (auto subdomain = domain_splitter.FindNextSubdomain()) {
@@ -35331,7 +35330,7 @@ new file mode 100644
+ // Strip the scheme and the separator, to get to the host part of the URL.
+ candidate = candidate.substr(distance_to_host);
+ }
-+ return candidate.empty() || candidate == url.host_piece() ||
++ return candidate.empty() || candidate == url.host() ||
+ (base::EndsWith(candidate, ".") &&
+ candidate.find_first_of("/") == std::string_view::npos);
+}
@@ -36716,8 +36715,8 @@ new file mode 100644
+
+std::string DocumentDomain(const GURL& request_url,
+ const std::vector& frame_hierarchy) {
-+ return frame_hierarchy.empty() ? request_url.host()
-+ : frame_hierarchy[0].host();
++ return frame_hierarchy.empty() ? request_url.GetHost()
++ : frame_hierarchy[0].GetHost();
+}
+
+InstalledSubscription::ContentFiltersData MaybeReduceSelectors(
@@ -36775,8 +36774,8 @@ new file mode 100644
+ for (auto it = frame_hierarchy.begin(); it < frame_hierarchy.end(); ++it) {
+ const GURL& current_url = *it;
+ const std::string& current_domain = std::next(it) != frame_hierarchy.end()
-+ ? std::next(it)->host()
-+ : current_url.host();
++ ? std::next(it)->GetHost()
++ : current_url.GetHost();
+ if (subscription->HasSpecialFilter(filter_type, current_url, current_domain,
+ sitekey)) {
+ return true;
@@ -37177,7 +37176,7 @@ diff --git a/components/adblock/core/subscription/subscription_config.cc b/compo
new file mode 100644
--- /dev/null
+++ b/components/adblock/core/subscription/subscription_config.cc
-@@ -0,0 +1,426 @@
+@@ -0,0 +1,428 @@
+/*
+ * This file is part of eyeo Chromium SDK,
+ * Copyright (C) 2006-present eyeo GmbH
@@ -37596,9 +37595,11 @@ new file mode 100644
+ return EMPTY_VALUE;
+ }
+ auto path =
-+ base::TrimString(filter_list.path_piece(), "/", base::TRIM_LEADING);
-+ if (filter_lists_map.find(path) == filter_lists_map.end()) {
-+ return EMPTY_VALUE;
++ base::TrimString(filter_list.path(), "/", base::TRIM_LEADING);
++
++ auto it = filter_lists_map->find(path);
++ if (it == filter_lists_map->end()) {
++ return *EMPTY_VALUE;
+ }
+ return filter_lists_map[path];
+}
@@ -50243,7 +50244,7 @@ diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/brow
#include "content/browser/loader/navigation_url_loader_impl.h"
#include