فهرست منبع

Fixed linking issues

csagan5 3 سال پیش
والد
کامیت
b21c08de2f
42فایلهای تغییر یافته به همراه465 افزوده شده و 661 حذف شده
  1. 1 1
      build/LASTCHANGE
  2. 1 1
      build/RELEASE
  3. 1 1
      build/RELEASE_COMMIT
  4. 1 1
      build/bromite_patches_list.txt
  5. 2 2
      build/patches/Add-a-proxy-configuration-page.patch
  6. 11 11
      build/patches/Add-an-always-incognito-mode.patch
  7. 10 10
      build/patches/Add-bookmark-import-export-actions.patch
  8. 6 6
      build/patches/Add-custom-tab-intents-privacy-option.patch
  9. 4 4
      build/patches/Add-exit-menu-item.patch
  10. 1 1
      build/patches/Add-lifetime-options-for-permissions.patch
  11. 2 2
      build/patches/Add-menu-item-to-bookmark-all-tabs.patch
  12. 1 1
      build/patches/Add-menu-item-to-view-source.patch
  13. 5 5
      build/patches/Add-option-to-not-persist-tabs-across-sessions.patch
  14. 2 2
      build/patches/Add-support-for-ISupportHelpAndFeedback.patch
  15. 8 10
      build/patches/Allow-building-without-enable_reporting.patch
  16. 18 5
      build/patches/Automated-domain-substitution.patch
  17. 1 1
      build/patches/Bromite-AdBlockUpdaterService.patch
  18. 1 1
      build/patches/Bromite-auto-updater.patch
  19. 5 20
      build/patches/Disable-AGSA-by-default.patch
  20. 4 4
      build/patches/Disable-FLoC-and-privacy-sandbox.patch
  21. 1 1
      build/patches/Disable-media-router-and-remoting-by-default.patch
  22. 7 7
      build/patches/Disable-safe-browsing.patch
  23. 8 19
      build/patches/Disable-safety-check.patch
  24. 1 1
      build/patches/Disable-third-party-origin-trials.patch
  25. 2 2
      build/patches/DoH-improvements.patch
  26. 14 15
      build/patches/Enable-native-Android-autofill.patch
  27. 2 2
      build/patches/Enable-share-intent.patch
  28. 6 6
      build/patches/Experimental-user-scripts-support.patch
  29. 9 9
      build/patches/History-number-of-days-privacy-setting.patch
  30. 3 3
      build/patches/Move-navigation-bar-to-bottom.patch
  31. 6 6
      build/patches/Move-some-account-settings-back-to-privacy-settings.patch
  32. 1 1
      build/patches/Multiple-fingerprinting-mitigations.patch
  33. 1 1
      build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch
  34. 19 42
      build/patches/Remove-binary-blob-integrations.patch
  35. 28 27
      build/patches/Remove-contextual-search-manager.patch
  36. 1 1
      build/patches/Remove-help-menu-item.patch
  37. 1 1
      build/patches/Remove-offline-measurement-background-task.patch
  38. 6 20
      build/patches/Remove-price-shopping-commerce-integrations.patch
  39. 202 366
      build/patches/Remove-signin-and-sync-integrations.patch
  40. 10 10
      build/patches/Remove-voice-recognition-integration.patch
  41. 2 2
      build/patches/User-agent-customization.patch
  42. 50 30
      build/patches/Welcome-screen.patch

+ 1 - 1
build/LASTCHANGE

@@ -1 +1 @@
-2b74f7c8269b43e04063b651ab995b67f56387c2-
+1ab0cee259c250b41b2adb8e3a7fabc967f5b762-

+ 1 - 1
build/RELEASE

@@ -1 +1 @@
-103.0.5060.47
+103.0.5060.115

+ 1 - 1
build/RELEASE_COMMIT

@@ -1 +1 @@
-a293a5dd3009f4017a8c4422a69f3eb9b3056776
+3764ccd59b9f1ec1d98138dd253bb0eb08887649

+ 1 - 1
build/bromite_patches_list.txt

@@ -30,6 +30,7 @@ ungoogled-chromium-Disable-Gaia.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
 ungoogled-chromium-Disable-Network-Time-Tracker.patch
 Disable-safe-browsing.patch
 Disable-safe-browsing.patch
 Disable-all-promo-dialogs.patch
 Disable-all-promo-dialogs.patch
+Remove-signin-and-sync-integrations.patch
 Disable-update-scheduler.patch
 Disable-update-scheduler.patch
 Add-English-only-search-engine.patch
 Add-English-only-search-engine.patch
 Add-DuckDuckGo-Lite-search-engine.patch
 Add-DuckDuckGo-Lite-search-engine.patch
@@ -68,7 +69,6 @@ autofill-miscellaneous.patch
 Enable-native-Android-autofill.patch
 Enable-native-Android-autofill.patch
 first_run-deactivate-autoupdate-globally.patch
 first_run-deactivate-autoupdate-globally.patch
 translate-disable-fetching-of-languages-from-server.patch
 translate-disable-fetching-of-languages-from-server.patch
-Remove-signin-and-sync-integrations.patch
 kill-Vision.patch
 kill-Vision.patch
 kill-Location-fall-back-to-system.patch
 kill-Location-fall-back-to-system.patch
 kill-Auth.patch
 kill-Auth.patch

+ 2 - 2
build/patches/Add-a-proxy-configuration-page.patch

@@ -72,8 +72,8 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -61,6 +61,7 @@ public class PrivacySettings
-     private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
+@@ -57,6 +57,7 @@ public class PrivacySettings
+     private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
      private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
 +    private static final String PREF_PROXY_OPTIONS = "proxy";
 +    private static final String PREF_PROXY_OPTIONS = "proxy";

+ 11 - 11
build/patches/Add-an-always-incognito-mode.patch

@@ -111,7 +111,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
    "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
    "java/src/com/google/android/apps/chrome/appwidget/bookmarks/BookmarkThumbnailWidgetProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityTabProvider.java",
    "java/src/org/chromium/chrome/browser/ActivityUtils.java",
    "java/src/org/chromium/chrome/browser/ActivityUtils.java",
-@@ -960,6 +961,7 @@ chrome_java_sources = [
+@@ -959,6 +960,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/IncognitoLockSettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacyPreferencesManagerImpl.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
    "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java",
@@ -245,7 +245,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
  import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
  import org.chromium.chrome.browser.IntentHandler.TabOpenType;
  import org.chromium.chrome.browser.IntentHandler.TabOpenType;
  import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
  import org.chromium.chrome.browser.accessibility_tab_switcher.OverviewListLayout;
-@@ -1818,8 +1819,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1812,8 +1813,9 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          Bundle savedInstanceState = getSavedInstanceState();
          Bundle savedInstanceState = getSavedInstanceState();
  
  
          // We determine the model as soon as possible so every systems get initialized coherently.
          // We determine the model as soon as possible so every systems get initialized coherently.
@@ -268,7 +268,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
  import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
  import org.chromium.chrome.browser.dependency_injection.ModuleFactoryOverrides;
  import org.chromium.chrome.browser.device.DeviceClassManager;
  import org.chromium.chrome.browser.device.DeviceClassManager;
-@@ -1979,6 +1980,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1903,6 +1904,9 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              throw new IllegalStateException(
              throw new IllegalStateException(
                      "Attempting to access TabCreator before initialization");
                      "Attempting to access TabCreator before initialization");
          }
          }
@@ -630,7 +630,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
  import org.chromium.chrome.browser.app.ChromeActivity;
  import org.chromium.chrome.browser.app.ChromeActivity;
  import org.chromium.chrome.browser.app.download.home.DownloadPage;
  import org.chromium.chrome.browser.app.download.home.DownloadPage;
  import org.chromium.chrome.browser.bookmarks.BookmarkPage;
  import org.chromium.chrome.browser.bookmarks.BookmarkPage;
-@@ -243,7 +244,8 @@ public class NativePageFactory {
+@@ -251,7 +252,8 @@ public class NativePageFactory {
              String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
              String url, NativePage candidatePage, Tab tab, boolean isIncognito) {
          NativePage page;
          NativePage page;
  
  
@@ -643,7 +643,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
-@@ -99,7 +99,8 @@ public class RecentTabsManager implements SyncService.SyncStateChangedListener,
+@@ -83,7 +83,8 @@ public class RecentTabsManager implements AccountsChangeObserver {
       */
       */
      public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
      public RecentTabsManager(Tab tab, TabModelSelector tabModelSelector, Profile profile,
              Context context, Runnable showHistoryManager) {
              Context context, Runnable showHistoryManager) {
@@ -821,15 +821,15 @@ 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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -65,6 +65,7 @@ import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
+@@ -63,6 +63,7 @@ import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
+ import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
  import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
  import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
- import org.chromium.chrome.browser.signin.SyncConsentActivityLauncherImpl;
  import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
  import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
 +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
 +import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
  import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
  import org.chromium.components.browser_ui.accessibility.AccessibilitySettings;
-@@ -259,6 +260,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -257,6 +258,9 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
          if (fragment instanceof AdPersonalizationRemovedFragment) {
          if (fragment instanceof AdPersonalizationRemovedFragment) {
              ((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager());
              ((AdPersonalizationRemovedFragment) fragment).setSnackbarManager(getSnackbarManager());
          }
          }
@@ -952,7 +952,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/tab_restore
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
 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
 --- 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
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/TabbedRootUiCoordinator.java
-@@ -125,6 +125,8 @@ import org.chromium.ui.base.DeviceFormFactor;
+@@ -123,6 +123,8 @@ import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.base.IntentRequestTracker;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  import org.chromium.ui.modaldialog.ModalDialogManager;
  import org.chromium.ui.util.TokenHolder;
  import org.chromium.ui.util.TokenHolder;
@@ -961,7 +961,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
  
  
  /**
  /**
   * A {@link RootUiCoordinator} variant that controls tabbed-mode specific UI.
   * A {@link RootUiCoordinator} variant that controls tabbed-mode specific UI.
-@@ -501,7 +503,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -499,7 +501,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
                      mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
                      mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
              mEmptyBackgroundViewWrapper =
              mEmptyBackgroundViewWrapper =
                      new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(),
                      new EmptyBackgroundViewWrapper(mTabModelSelectorSupplier.get(),
@@ -1647,7 +1647,7 @@ diff --git a/chrome/browser/ui/android/native_page/java/src/org/chromium/chrome/
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1161,6 +1161,37 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1143,6 +1143,37 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
        <message name="IDS_CLEAR_BROWSING_HISTORY_SUMMARY_SYNCED_NO_LINK" desc="A text for the basic tab explaining browsing history for users with history sync. This version is shown when the link to MyActivity is displayed separately.">
          Clears history from all synced devices.
          Clears history from all synced devices.
        </message>
        </message>

+ 10 - 10
build/patches/Add-bookmark-import-export-actions.patch

@@ -93,7 +93,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
  import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
  import org.chromium.chrome.browser.app.tab_activity_glue.ActivityTabWebContentsDelegateAndroid;
  import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
  import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
  import org.chromium.chrome.browser.compositor.CompositorViewHolder;
  import org.chromium.chrome.browser.compositor.CompositorViewHolder;
-@@ -46,7 +47,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
+@@ -47,7 +48,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager;
   * {@link ChromeTabbedActivity}.
   * {@link ChromeTabbedActivity}.
   */
   */
  public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
  public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
@@ -102,7 +102,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/TabbedModeTabDe
      private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
      private final BrowserControlsVisibilityDelegate mAppBrowserControlsVisibilityDelegate;
      private final Supplier<ShareDelegate> mShareDelegateSupplier;
      private final Supplier<ShareDelegate> mShareDelegateSupplier;
      private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
      private final Supplier<EphemeralTabCoordinator> mEphemeralTabCoordinatorSupplier;
-@@ -72,7 +73,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
+@@ -74,7 +75,7 @@ public class TabbedModeTabDelegateFactory implements TabDelegateFactory {
  
  
      private NativePageFactory mNativePageFactory;
      private NativePageFactory mNativePageFactory;
  
  
@@ -655,7 +655,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
  import org.chromium.chrome.browser.app.download.home.DownloadPage;
  import org.chromium.chrome.browser.app.download.home.DownloadPage;
  import org.chromium.chrome.browser.bookmarks.BookmarkPage;
  import org.chromium.chrome.browser.bookmarks.BookmarkPage;
  import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
  import org.chromium.chrome.browser.browser_controls.BrowserControlsMarginSupplier;
-@@ -54,7 +55,7 @@ import org.chromium.ui.util.ColorUtils;
+@@ -55,7 +56,7 @@ import org.chromium.ui.util.ColorUtils;
   * Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
   * Creates NativePage objects to show chrome-native:// URLs using the native Android view system.
   */
   */
  public class NativePageFactory {
  public class NativePageFactory {
@@ -664,7 +664,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
      private final BottomSheetController mBottomSheetController;
      private final BottomSheetController mBottomSheetController;
      private final BrowserControlsManager mBrowserControlsManager;
      private final BrowserControlsManager mBrowserControlsManager;
      private final Supplier<Tab> mCurrentTabSupplier;
      private final Supplier<Tab> mCurrentTabSupplier;
-@@ -71,7 +72,7 @@ public class NativePageFactory {
+@@ -73,7 +74,7 @@ public class NativePageFactory {
  
  
      private NativePageBuilder mNativePageBuilder;
      private NativePageBuilder mNativePageBuilder;
  
  
@@ -673,7 +673,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
              @NonNull BottomSheetController sheetController,
              @NonNull BottomSheetController sheetController,
              @NonNull BrowserControlsManager browserControlsManager,
              @NonNull BrowserControlsManager browserControlsManager,
              @NonNull Supplier<Tab> currentTabSupplier,
              @NonNull Supplier<Tab> currentTabSupplier,
-@@ -119,7 +120,7 @@ public class NativePageFactory {
+@@ -124,7 +125,7 @@ public class NativePageFactory {
  
  
      @VisibleForTesting
      @VisibleForTesting
      static class NativePageBuilder {
      static class NativePageBuilder {
@@ -682,16 +682,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/native_page/Nat
          private final BottomSheetController mBottomSheetController;
          private final BottomSheetController mBottomSheetController;
          private final Supplier<NewTabPageUma> mUma;
          private final Supplier<NewTabPageUma> mUma;
          private final BrowserControlsManager mBrowserControlsManager;
          private final BrowserControlsManager mBrowserControlsManager;
-@@ -132,7 +133,7 @@ public class NativePageFactory {
-         private final JankTracker mJankTracker;
+@@ -138,7 +139,7 @@ public class NativePageFactory {
          private final Supplier<Toolbar> mToolbarSupplier;
          private final Supplier<Toolbar> mToolbarSupplier;
+         private final CrowButtonDelegate mCrowButtonDelegate;
  
  
 -        public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
 -        public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
 +        public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
 +        public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
                  BottomSheetController sheetController,
                  BottomSheetController sheetController,
                  BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
                  BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
                  Supplier<SnackbarManager> snackbarManagerSupplier,
                  Supplier<SnackbarManager> snackbarManagerSupplier,
-@@ -169,7 +170,7 @@ public class NativePageFactory {
+@@ -177,7 +178,7 @@ public class NativePageFactory {
          protected NativePage buildBookmarksPage(Tab tab) {
          protected NativePage buildBookmarksPage(Tab tab) {
              return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
              return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
                      mTabModelSelector.isIncognitoSelected(),
                      mTabModelSelector.isIncognitoSelected(),
@@ -717,7 +717,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
    configs += [
    configs += [
      "//build/config/compiler:wexit_time_destructors",
      "//build/config/compiler:wexit_time_destructors",
      "//build/config:precompiled_headers",
      "//build/config:precompiled_headers",
-@@ -3024,6 +3031,8 @@ static_library("browser") {
+@@ -3021,6 +3028,8 @@ static_library("browser") {
        "autofill/manual_filling_controller.h",
        "autofill/manual_filling_controller.h",
        "autofill/manual_filling_controller_impl.cc",
        "autofill/manual_filling_controller_impl.cc",
        "autofill/manual_filling_controller_impl.h",
        "autofill/manual_filling_controller_impl.h",
@@ -726,7 +726,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "autofill/manual_filling_utils.cc",
        "autofill/manual_filling_utils.cc",
        "autofill/manual_filling_utils.h",
        "autofill/manual_filling_utils.h",
        "autofill/manual_filling_view_interface.h",
        "autofill/manual_filling_view_interface.h",
-@@ -3666,8 +3675,6 @@ static_library("browser") {
+@@ -3658,8 +3667,6 @@ static_library("browser") {
        "badging/badge_manager_factory.h",
        "badging/badge_manager_factory.h",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.cc",
        "banners/app_banner_manager_desktop.h",
        "banners/app_banner_manager_desktop.h",

+ 6 - 6
build/patches/Add-custom-tab-intents-privacy-option.patch

@@ -125,7 +125,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Inco
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -85,6 +85,9 @@ public class PrivacySettings
+@@ -81,6 +81,9 @@ public class PrivacySettings
      private ViewGroup mDialogContainer;
      private ViewGroup mDialogContainer;
      private BottomSheetController mBottomSheetController;
      private BottomSheetController mBottomSheetController;
  
  
@@ -135,8 +135,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      @Override
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
          PrivacyPreferencesManagerImpl privacyPrefManager =
          PrivacyPreferencesManagerImpl privacyPrefManager =
-@@ -179,6 +182,9 @@ public class PrivacySettings
-                 new SpanApplier.SpanInfo("<link2>", "</link2>", servicesLink));
+@@ -148,6 +151,9 @@ public class PrivacySettings
+         updatePreferences();
      }
      }
  
  
 +    public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
 +    public static final String PREF_ALLOW_CUSTOM_TAB_INTENTS = "allow_custom_tab_intents";
@@ -145,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          String key = preference.getKey();
          String key = preference.getKey();
-@@ -195,6 +201,14 @@ public class PrivacySettings
+@@ -164,6 +170,14 @@ public class PrivacySettings
          } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
          } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
              UserPrefs.get(Profile.getLastUsedRegularProfile())
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
                      .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
@@ -160,7 +160,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          }
          }
          return true;
          return true;
      }
      }
-@@ -217,6 +231,16 @@ public class PrivacySettings
+@@ -186,6 +200,16 @@ public class PrivacySettings
              canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
              canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
          }
          }
  
  
@@ -196,7 +196,7 @@ diff --git a/chrome/browser/tab/java/src/org/chromium/chrome/browser/tab/TabAsso
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4687,6 +4687,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4669,6 +4669,21 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
        <message name="IDS_NEAR_OOM_REDUCTION_DECLINE" desc="The text of the button letting the user decline the browser's intervention, so that the page can be reloaded.">
           Show original
           Show original
        </message>
        </message>

+ 4 - 4
build/patches/Add-exit-menu-item.patch

@@ -59,7 +59,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ApplicationLife
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -216,6 +216,8 @@ import java.util.HashSet;
+@@ -213,6 +213,8 @@ import java.util.HashSet;
  import java.util.List;
  import java.util.List;
  import java.util.Locale;
  import java.util.Locale;
  
  
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  /**
  /**
   * This is the main activity for ChromeMobile when not running in document mode.  All the tabs
   * This is the main activity for ChromeMobile when not running in document mode.  All the tabs
   * are accessible via a chrome specific tab switching UI.
   * are accessible via a chrome specific tab switching UI.
-@@ -2110,6 +2112,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2097,6 +2099,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          } else if (id == R.id.close_tab) {
          } else if (id == R.id.close_tab) {
              getCurrentTabModel().closeTab(currentTab, true, false, true);
              getCurrentTabModel().closeTab(currentTab, true, false, true);
              RecordUserAction.record("MobileTabClosed");
              RecordUserAction.record("MobileTabClosed");
@@ -88,7 +88,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.ChromeActivitySessionTracker;
  import org.chromium.chrome.browser.ChromeActivitySessionTracker;
  import org.chromium.chrome.browser.ChromeApplicationImpl;
  import org.chromium.chrome.browser.ChromeApplicationImpl;
  import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
  import org.chromium.chrome.browser.ChromeKeyboardVisibilityDelegate;
-@@ -2471,6 +2472,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2395,6 +2396,11 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              return true;
              return true;
          }
          }
  
  
@@ -119,7 +119,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ChromeLife
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -3425,6 +3425,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3407,6 +3407,9 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
        <message name="IDS_MENU_AUTO_DARK_WEB_CONTENTS" desc="Menu item in Chrome's overflow/options menu. When Chrome's browser UI is set to dark theme and this option is checked, sites will have a dark theme automatically applied as well. [CHAR_LIMIT=24]">
          Dark theme
          Dark theme
        </message>
        </message>

+ 1 - 1
build/patches/Add-lifetime-options-for-permissions.patch

@@ -186,7 +186,7 @@ diff --git a/chrome/browser/permissions/last_tab_standing_tracker_factory.cc b/c
 diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 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
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -363,10 +363,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -378,10 +378,7 @@ void ChromeBrowserMainExtraPartsProfiles::
    InstantServiceFactory::GetInstance();
    InstantServiceFactory::GetInstance();
  #endif
  #endif
    LanguageModelManagerFactory::GetInstance();
    LanguageModelManagerFactory::GetInstance();

+ 2 - 2
build/patches/Add-menu-item-to-bookmark-all-tabs.patch

@@ -63,7 +63,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.chrome.browser.compositor.layouts.Layout;
  import org.chromium.chrome.browser.compositor.layouts.Layout;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
  import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
-@@ -2105,6 +2107,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2111,6 +2113,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
                      () -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
                      () -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
              RecordUserAction.record("MobileMenuCloseAllTabs");
              RecordUserAction.record("MobileMenuCloseAllTabs");
@@ -72,7 +72,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
          } else if (id == R.id.close_all_incognito_tabs_menu_id) {
          } else if (id == R.id.close_all_incognito_tabs_menu_id) {
              // Close only incognito tabs
              // Close only incognito tabs
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
              CloseAllTabsDialog.show(this, getModalDialogManagerSupplier(),
-@@ -2157,6 +2161,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2163,6 +2167,28 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
          mTabModalHandler.onOmniboxFocusChanged(hasFocus);
      }
      }
  
  

+ 1 - 1
build/patches/Add-menu-item-to-view-source.patch

@@ -42,7 +42,7 @@ diff --git a/chrome/android/java/res/menu/main_menu.xml b/chrome/android/java/re
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -2131,6 +2131,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2137,6 +2137,8 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
                  NewTabPageUma.recordAction(NewTabPageUma.ACTION_OPENED_DOWNLOADS_MANAGER);
              }
              }
              RecordUserAction.record("MobileMenuDownloadManager");
              RecordUserAction.record("MobileMenuDownloadManager");

+ 5 - 5
build/patches/Add-option-to-not-persist-tabs-across-sessions.patch

@@ -36,7 +36,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
  import org.chromium.base.IntentUtils;
  import org.chromium.base.IntentUtils;
  import org.chromium.base.Log;
  import org.chromium.base.Log;
  import org.chromium.base.MemoryPressureListener;
  import org.chromium.base.MemoryPressureListener;
-@@ -1241,8 +1242,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1235,8 +1236,10 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
              boolean hadCipherData =
              boolean hadCipherData =
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
                      CipherFactory.getInstance().restoreFromBundle(getSavedInstanceState());
  
  
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  import org.chromium.chrome.R;
  import org.chromium.chrome.R;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.feedback.HelpAndFeedbackLauncherImpl;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
  import org.chromium.chrome.browser.flags.ChromeFeatureList;
-@@ -61,6 +64,8 @@ public class PrivacySettings
+@@ -57,6 +60,8 @@ public class PrivacySettings
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
  
  
@@ -77,7 +77,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private IncognitoLockSettings mIncognitoLockSettings;
      private IncognitoLockSettings mIncognitoLockSettings;
      private ViewGroup mDialogContainer;
      private ViewGroup mDialogContainer;
-@@ -159,7 +164,11 @@ public class PrivacySettings
+@@ -128,7 +133,11 @@ public class PrivacySettings
      @Override
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          String key = preference.getKey();
          String key = preference.getKey();
@@ -90,7 +90,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
              UserPrefs.get(Profile.getLastUsedRegularProfile())
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
                      .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
-@@ -200,6 +209,11 @@ public class PrivacySettings
+@@ -169,6 +178,11 @@ public class PrivacySettings
                      PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
                      PreloadPagesSettingsFragment.getPreloadPagesSummaryString(getContext()));
          }
          }
  
  
@@ -105,7 +105,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
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -4375,6 +4375,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -4357,6 +4357,12 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
        <message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
        <message name="IDS_CONTEXTMENU_IMAGE_TITLE" desc="The title of a context menu tab when the item pressed contains more than one type. This indicates that all the actions are related to the image.">
          IMAGE
          IMAGE
        </message>
        </message>

+ 2 - 2
build/patches/Add-support-for-ISupportHelpAndFeedback.patch

@@ -12,7 +12,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -73,6 +73,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
+@@ -72,6 +72,7 @@ import org.chromium.components.browser_ui.bottomsheet.BottomSheetControllerFacto
  import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
  import org.chromium.components.browser_ui.modaldialog.AppModalPresenter;
  import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
  import org.chromium.components.browser_ui.settings.FragmentSettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
@@ -20,7 +20,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/Settin
  import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
  import org.chromium.components.browser_ui.site_settings.SiteSettingsPreferenceFragment;
  import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
  import org.chromium.components.browser_ui.widget.displaystyle.UiConfig;
  import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer;
  import org.chromium.components.browser_ui.widget.displaystyle.ViewResizer;
-@@ -338,9 +339,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+@@ -337,9 +338,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
              finish();
              finish();
              return true;
              return true;
          } else if (item.getItemId() == R.id.menu_id_general_help) {
          } else if (item.getItemId() == R.id.menu_id_general_help) {

+ 8 - 10
build/patches/Allow-building-without-enable_reporting.patch

@@ -8,7 +8,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../net/cross_origin_embedder_policy_reporter.cc |  4 +++-
  .../net/cross_origin_embedder_policy_reporter.cc |  4 +++-
  .../net/cross_origin_opener_policy_reporter.cc   | 16 +++++++---------
  .../net/cross_origin_opener_policy_reporter.cc   | 16 +++++++---------
  content/browser/net/reporting_service_proxy.cc   |  3 +++
  content/browser/net/reporting_service_proxy.cc   |  3 +++
- .../renderer_host/render_frame_host_impl.cc      |  4 +++-
+ .../renderer_host/render_frame_host_impl.cc      |  2 ++
  .../web_package/signed_exchange_reporter.cc      |  2 ++
  .../web_package/signed_exchange_reporter.cc      |  2 ++
  ...content_switch_dependent_feature_overrides.cc |  1 +
  ...content_switch_dependent_feature_overrides.cc |  1 +
  net/reporting/reporting_service.cc               |  6 ++++++
  net/reporting/reporting_service.cc               |  6 ++++++
@@ -19,7 +19,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../blink/renderer/core/frame/local_frame.h      |  6 +++---
  .../blink/renderer/core/frame/local_frame.h      |  6 +++---
  .../renderer/core/frame/reporting_context.cc     |  9 +++++++++
  .../renderer/core/frame/reporting_context.cc     |  9 +++++++++
  .../renderer/core/frame/reporting_context.h      |  7 +++++--
  .../renderer/core/frame/reporting_context.h      |  7 +++++--
- 15 files changed, 51 insertions(+), 19 deletions(-)
+ 15 files changed, 50 insertions(+), 18 deletions(-)
 
 
 diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
 diff --git a/content/browser/devtools/protocol/network_handler.cc b/content/browser/devtools/protocol/network_handler.cc
 --- a/content/browser/devtools/protocol/network_handler.cc
 --- a/content/browser/devtools/protocol/network_handler.cc
@@ -175,16 +175,14 @@ diff --git a/content/browser/net/reporting_service_proxy.cc b/content/browser/ne
 diff --git a/content/browser/renderer_host/render_frame_host_impl.cc b/content/browser/renderer_host/render_frame_host_impl.cc
 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
 --- a/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
 +++ b/content/browser/renderer_host/render_frame_host_impl.cc
-@@ -11500,7 +11500,8 @@ void RenderFrameHostImpl::OnSameDocumentCommitProcessed(
+@@ -11437,6 +11437,7 @@ void RenderFrameHostImpl::TakeNewDocumentPropertiesFromNavigation(
+   early_hints_manager_ = navigation_request->TakeEarlyHintsManager();
  
  
- void RenderFrameHostImpl::MaybeGenerateCrashReport(
-     base::TerminationStatus status,
--    int exit_code) {
-+    int exit_code) { // disabled in Bromite
+   // Only take some properties if this is not the synchronous initial
 +#if BUILDFLAG(ENABLE_REPORTING)
 +#if BUILDFLAG(ENABLE_REPORTING)
-   // TODO(1301987): Remove this once the investigation is done.
-   VLOG(0) << "RenderFrameHostImpl::MaybeGenerateCrashReport url = "
-           << last_committed_url_ << ", status = " << status
+   // `about:blank` navigation, because the values set at construction time
+   // should remain unmodified.
+   if (!navigation_request->IsWaitingToCommit()) {
 @@ -11555,6 +11556,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
 @@ -11555,6 +11556,7 @@ void RenderFrameHostImpl::MaybeGenerateCrashReport(
        /*type=*/"crash", /*group=*/"default", last_committed_url_,
        /*type=*/"crash", /*group=*/"default", last_committed_url_,
        GetReportingSource(), isolation_info_.network_isolation_key(),
        GetReportingSource(), isolation_info_.network_isolation_key(),

+ 18 - 5
build/patches/Automated-domain-substitution.patch

@@ -539,6 +539,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../browser/payments/payments_service_url.cc  |   10 +-
  .../browser/payments/payments_service_url.cc  |   10 +-
  ...roid_chrome_autofill_assistant_strings.grd |    2 +-
  ...roid_chrome_autofill_assistant_strings.grd |    2 +-
  .../autofill_assistant_onboarding_fetcher.cc  |    2 +-
  .../autofill_assistant_onboarding_fetcher.cc  |    2 +-
+ .../browser/headless/client_headless.cc       |    2 +-
  .../browser/service/server_url_fetcher.cc     |    2 +-
  .../browser/service/server_url_fetcher.cc     |    2 +-
  .../safe_browsing_triggered_popup_blocker.h   |    4 +-
  .../safe_browsing_triggered_popup_blocker.h   |    4 +-
  .../core/breadcrumb_manager_tab_helper.cc     |    2 +-
  .../core/breadcrumb_manager_tab_helper.cc     |    2 +-
@@ -1728,7 +1729,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  url/third_party/mozilla/LICENSE.txt           |    4 +-
  url/third_party/mozilla/LICENSE.txt           |    4 +-
  ...weblayer_security_blocking_page_factory.cc |    2 +-
  ...weblayer_security_blocking_page_factory.cc |    2 +-
  weblayer/shell/app/shell_main_params.cc       |    2 +-
  weblayer/shell/app/shell_main_params.cc       |    2 +-
- 1724 files changed, 5258 insertions(+), 5258 deletions(-)
+ 1725 files changed, 5259 insertions(+), 5259 deletions(-)
 
 
 diff --git a/PRESUBMIT.py b/PRESUBMIT.py
 diff --git a/PRESUBMIT.py b/PRESUBMIT.py
 --- a/PRESUBMIT.py
 --- a/PRESUBMIT.py
@@ -12888,6 +12889,18 @@ diff --git a/components/autofill_assistant/browser/autofill_assistant_onboarding
  
  
  constexpr int kMaxDownloadSizeInBytes = 10 * 1024;
  constexpr int kMaxDownloadSizeInBytes = 10 * 1024;
  
  
+diff --git a/components/autofill_assistant/browser/headless/client_headless.cc b/components/autofill_assistant/browser/headless/client_headless.cc
+--- a/components/autofill_assistant/browser/headless/client_headless.cc
++++ b/components/autofill_assistant/browser/headless/client_headless.cc
+@@ -37,7 +37,7 @@
+ 
+ namespace autofill_assistant {
+ 
+-const char kOAuth2Scope[] = "https://www.googleapis.com/auth/userinfo.profile";
++const char kOAuth2Scope[] = "https://www.9oo91eapis.qjz9zk/auth/userinfo.profile";
+ const char kConsumerName[] = "autofill_assistant";
+ 
+ ClientHeadless::ClientHeadless(
 diff --git a/components/autofill_assistant/browser/service/server_url_fetcher.cc b/components/autofill_assistant/browser/service/server_url_fetcher.cc
 diff --git a/components/autofill_assistant/browser/service/server_url_fetcher.cc b/components/autofill_assistant/browser/service/server_url_fetcher.cc
 --- a/components/autofill_assistant/browser/service/server_url_fetcher.cc
 --- a/components/autofill_assistant/browser/service/server_url_fetcher.cc
 +++ b/components/autofill_assistant/browser/service/server_url_fetcher.cc
 +++ b/components/autofill_assistant/browser/service/server_url_fetcher.cc
@@ -28699,7 +28712,7 @@ diff --git a/content/browser/portal/portal_navigation_throttle.cc b/content/brow
 diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
 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
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -5319,7 +5319,7 @@ NavigationRequest::CheckCredentialedSubresource() const {
+@@ -5325,7 +5325,7 @@ NavigationRequest::CheckCredentialedSubresource() const {
    const char* console_message =
    const char* console_message =
        "Subresource requests whose URLs contain embedded credentials (e.g. "
        "Subresource requests whose URLs contain embedded credentials (e.g. "
        "`https://user:pass@host/`) are blocked. See "
        "`https://user:pass@host/`) are blocked. See "
@@ -28708,7 +28721,7 @@ diff --git a/content/browser/renderer_host/navigation_request.cc b/content/brows
        "details.";
        "details.";
    parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
    parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
                                console_message);
                                console_message);
-@@ -5533,7 +5533,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck(
+@@ -5539,7 +5539,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck(
          base::StringPrintf(
          base::StringPrintf(
              "Navigating a cross-origin opener to a download (%s) is "
              "Navigating a cross-origin opener to a download (%s) is "
              "deprecated, see "
              "deprecated, see "
@@ -29947,7 +29960,7 @@ diff --git a/infra/config/generated/builders/try/android_compile_x86_dbg/propert
 diff --git a/infra/config/generated/builders/try/android_cronet/properties.json b/infra/config/generated/builders/try/android_cronet/properties.json
 diff --git a/infra/config/generated/builders/try/android_cronet/properties.json b/infra/config/generated/builders/try/android_cronet/properties.json
 --- a/infra/config/generated/builders/try/android_cronet/properties.json
 --- a/infra/config/generated/builders/try/android_cronet/properties.json
 +++ b/infra/config/generated/builders/try/android_cronet/properties.json
 +++ b/infra/config/generated/builders/try/android_cronet/properties.json
-@@ -2,7 +2,7 @@
+@@ -50,7 +50,7 @@
    "$build/goma": {
    "$build/goma": {
      "enable_ats": true,
      "enable_ats": true,
      "rpc_extra_params": "?prod",
      "rpc_extra_params": "?prod",
@@ -45309,7 +45322,7 @@ diff --git a/tools/mb/mb.py b/tools/mb/mb.py
 diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
 diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl
 --- a/tools/mb/mb_config.pyl
 --- a/tools/mb/mb_config.pyl
 +++ b/tools/mb/mb_config.pyl
 +++ b/tools/mb/mb_config.pyl
-@@ -4149,11 +4149,11 @@
+@@ -4150,11 +4150,11 @@
  
  
      # Used to pass the list of files to instrument for coverage to the compile
      # Used to pass the list of files to instrument for coverage to the compile
      # wrapper. See:
      # wrapper. See:

+ 1 - 1
build/patches/Bromite-AdBlockUpdaterService.patch

@@ -80,7 +80,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
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -889,6 +889,8 @@ chrome_java_sources = [
+@@ -896,6 +896,8 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionSettingsBridge.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
    "java/src/org/chromium/chrome/browser/permissions/PermissionUpdateRequester.java",
    "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",
    "java/src/org/chromium/chrome/browser/photo_picker/DecoderServiceImpl.java",

+ 1 - 1
build/patches/Bromite-auto-updater.patch

@@ -61,7 +61,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
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -798,6 +798,9 @@ chrome_java_sources = [
+@@ -799,6 +799,9 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateConfigs.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateMenuItemHelper.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",
    "java/src/org/chromium/chrome/browser/omaha/UpdateStatusProvider.java",

+ 5 - 20
build/patches/Disable-AGSA-by-default.patch

@@ -5,7 +5,7 @@ Subject: Disable AGSA by default
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
  chrome/android/BUILD.gn                       |  3 --
  chrome/android/BUILD.gn                       |  3 --
- .../org/chromium/chrome/browser/AppHooks.java |  9 ------
+ .../org/chromium/chrome/browser/AppHooks.java |  1 -
  .../chrome/browser/IntentHandler.java         |  5 ----
  .../chrome/browser/IntentHandler.java         |  5 ----
  .../chrome/browser/app/ChromeActivity.java    | 28 -------------------
  .../chrome/browser/app/ChromeActivity.java    | 28 -------------------
  .../ChromeContextMenuPopulator.java           |  7 -----
  .../ChromeContextMenuPopulator.java           |  7 -----
@@ -17,7 +17,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../browser/flags/CachedFeatureFlags.java     |  2 +-
  .../browser/flags/CachedFeatureFlags.java     |  2 +-
  chrome/browser/ui/android/omnibox/BUILD.gn    |  2 --
  chrome/browser/ui/android/omnibox/BUILD.gn    |  2 --
  .../browser/omnibox/LocationBarMediator.java  |  1 -
  .../browser/omnibox/LocationBarMediator.java  |  1 -
- 13 files changed, 3 insertions(+), 86 deletions(-)
+ 13 files changed, 3 insertions(+), 78 deletions(-)
 
 
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
@@ -30,7 +30,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java_resources",
      "//chrome/browser/history_clusters:java_resources",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_descriptions:java",
-@@ -970,7 +969,6 @@ junit_binary("chrome_junit_tests") {
+@@ -973,7 +972,6 @@ junit_binary("chrome_junit_tests") {
      "//chrome/browser/flags:flags_junit_tests",
      "//chrome/browser/flags:flags_junit_tests",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/fullscreen/android:java",
      "//chrome/browser/fullscreen/android:java",
@@ -38,7 +38,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/history_clusters:java",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_descriptions:java",
      "//chrome/browser/image_editor/public:java",
      "//chrome/browser/image_editor/public:java",
-@@ -1363,7 +1361,6 @@ android_library("chrome_test_java") {
+@@ -1366,7 +1364,6 @@ android_library("chrome_test_java") {
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/first_run/android:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/flags:java",
      "//chrome/browser/fullscreen/android:java",
      "//chrome/browser/fullscreen/android:java",
@@ -57,21 +57,6 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b
  import org.chromium.chrome.browser.historyreport.AppIndexingReporter;
  import org.chromium.chrome.browser.historyreport.AppIndexingReporter;
  import org.chromium.chrome.browser.init.ChromeStartupDelegate;
  import org.chromium.chrome.browser.init.ChromeStartupDelegate;
  import org.chromium.chrome.browser.init.ProcessInitializationHandler;
  import org.chromium.chrome.browser.init.ProcessInitializationHandler;
-@@ -125,14 +124,6 @@ public abstract class AppHooks {
-         return new FeedbackReporter() {};
-     }
- 
--    /**
--     * @return An instance of {@link GSAHelper} that handles the start point of chrome's integration
--     *         with GSA.
--     */
--    public GSAHelper createGsaHelper() {
--        return new GSAHelper();
--    }
--
-     /**
-      * Returns a new instance of HelpAndFeedbackLauncher.
-      */
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -219,7 +204,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Cust
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -371,14 +371,6 @@ public class ProcessInitializationHandler {
+@@ -369,14 +369,6 @@ public class ProcessInitializationHandler {
              }
              }
          });
          });
  
  

+ 4 - 4
build/patches/Disable-FLoC-and-privacy-sandbox.patch

@@ -38,15 +38,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -65,7 +65,6 @@ public class PrivacySettings
+@@ -61,7 +61,6 @@ public class PrivacySettings
+     private static final String PREF_SECURE_DNS = "secure_dns";
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
      private static final String PREF_DO_NOT_TRACK = "do_not_track";
-     private static final String PREF_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
      private static final String PREF_CLEAR_BROWSING_DATA = "clear_browsing_data";
 -    private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
 -    private static final String PREF_PRIVACY_SANDBOX = "privacy_sandbox";
      private static final String PREF_PROXY_OPTIONS = "proxy";
      private static final String PREF_PROXY_OPTIONS = "proxy";
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
      private static final String PREF_INCOGNITO_LOCK = "incognito_lock";
-@@ -95,21 +94,6 @@ public class PrivacySettings
+@@ -91,21 +90,6 @@ public class PrivacySettings
          SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
          SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
          getActivity().setTitle(R.string.prefs_privacy_security);
          getActivity().setTitle(R.string.prefs_privacy_security);
  
  
@@ -68,7 +68,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          Preference privacyReviewPreference = findPreference(PREF_PRIVACY_REVIEW);
          Preference privacyReviewPreference = findPreference(PREF_PRIVACY_REVIEW);
          if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
          if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
              getPreferenceScreen().removePreference(privacyReviewPreference);
              getPreferenceScreen().removePreference(privacyReviewPreference);
-@@ -264,12 +248,6 @@ public class PrivacySettings
+@@ -233,12 +217,6 @@ public class PrivacySettings
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
              secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext()));
          }
          }
  
  

+ 1 - 1
build/patches/Disable-media-router-and-remoting-by-default.patch

@@ -66,7 +66,7 @@ diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browse
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -409,7 +409,7 @@ void ProfileImpl::RegisterProfilePrefs(
+@@ -412,7 +412,7 @@ void ProfileImpl::RegisterProfilePrefs(
  #endif
  #endif
  
  
    registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
    registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);

+ 7 - 7
build/patches/Disable-safe-browsing.patch

@@ -350,7 +350,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "safe_browsing/android/password_reuse_controller_android.cc",
        "safe_browsing/android/password_reuse_controller_android.cc",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/password_reuse_controller_android.h",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.cc",
-@@ -3791,8 +3767,6 @@ static_library("browser") {
+@@ -3790,8 +3766,6 @@ static_library("browser") {
        "download/download_commands.h",
        "download/download_commands.h",
        "download/download_crx_util.cc",
        "download/download_crx_util.cc",
        "download/download_crx_util.h",
        "download/download_crx_util.h",
@@ -359,7 +359,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "download/download_dir_policy_handler.cc",
        "download/download_dir_policy_handler.cc",
        "download/download_dir_policy_handler.h",
        "download/download_dir_policy_handler.h",
        "download/download_dir_util.cc",
        "download/download_dir_util.cc",
-@@ -7866,8 +7840,6 @@ static_library("test_support") {
+@@ -7865,8 +7839,6 @@ static_library("test_support") {
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_macros",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:status_proto",
      "//components/reporting/util:task_runner_context",
      "//components/reporting/util:task_runner_context",
@@ -781,7 +781,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #include "components/nacl/common/buildflags.h"
  #include "components/nacl/common/buildflags.h"
  #include "components/services/screen_ai/buildflags/buildflags.h"
  #include "components/services/screen_ai/buildflags/buildflags.h"
  #include "device/vr/buildflags/buildflags.h"
  #include "device/vr/buildflags/buildflags.h"
-@@ -193,9 +191,6 @@ void RegisterComponentsForUpdate() {
+@@ -192,9 +190,6 @@ void RegisterComponentsForUpdate() {
  
  
    MaybeRegisterPKIMetadataComponent(cus);
    MaybeRegisterPKIMetadataComponent(cus);
  
  
@@ -791,7 +791,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #if BUILDFLAG(IS_CHROMEOS_ASH)
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    RegisterSmartDimComponent(cus);
    RegisterSmartDimComponent(cus);
    RegisterAppProvisioningComponent(cus);
    RegisterAppProvisioningComponent(cus);
-@@ -218,8 +213,6 @@ void RegisterComponentsForUpdate() {
+@@ -216,8 +211,6 @@ void RegisterComponentsForUpdate() {
  
  
    RegisterAutofillStatesComponent(cus, g_browser_process->local_state());
    RegisterAutofillStatesComponent(cus, g_browser_process->local_state());
  
  
@@ -1074,7 +1074,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow
        is_being_revived_(false) {}
        is_being_revived_(false) {}
  
  
  }  // namespace
  }  // namespace
-@@ -413,6 +423,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) {
+@@ -410,6 +420,7 @@ void DownloadItemModel::SetShouldPreferOpeningInBrowser(bool preference) {
    data->should_prefer_opening_in_browser_ = preference;
    data->should_prefer_opening_in_browser_ = preference;
  }
  }
  
  
@@ -1082,7 +1082,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow
  DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
  DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
    const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
    const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
    return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS;
    return data ? data->danger_level_ : DownloadFileType::NOT_DANGEROUS;
-@@ -423,6 +434,7 @@ void DownloadItemModel::SetDangerLevel(
+@@ -420,6 +431,7 @@ void DownloadItemModel::SetDangerLevel(
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    DownloadItemModelData* data = DownloadItemModelData::GetOrCreate(download_);
    data->danger_level_ = danger_level;
    data->danger_level_ = danger_level;
  }
  }
@@ -1090,7 +1090,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow
  
  
  download::DownloadItem::MixedContentStatus
  download::DownloadItem::MixedContentStatus
  DownloadItemModel::GetMixedContentStatus() const {
  DownloadItemModel::GetMixedContentStatus() const {
-@@ -639,9 +651,6 @@ bool DownloadItemModel::IsCommandEnabled(
+@@ -636,9 +648,6 @@ bool DownloadItemModel::IsCommandEnabled(
        // filename. Don't base an "Always open" decision based on it. Also
        // filename. Don't base an "Always open" decision based on it. Also
        // exclude extensions.
        // exclude extensions.
        return download_->CanOpenDownload() &&
        return download_->CanOpenDownload() &&

+ 8 - 19
build/patches/Disable-safety-check.patch

@@ -7,9 +7,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  chrome/android/BUILD.gn                                   | 5 -----
  chrome/android/BUILD.gn                                   | 5 -----
  chrome/android/chrome_java_sources.gni                    | 1 -
  chrome/android/chrome_java_sources.gni                    | 1 -
  .../browser/app/omnibox/OmniboxPedalDelegateImpl.java     | 8 --------
  .../browser/app/omnibox/OmniboxPedalDelegateImpl.java     | 8 --------
- .../chrome/browser/settings/SettingsActivity.java         | 6 ------
+ .../chrome/browser/settings/SettingsActivity.java         | 2 --
  chrome/browser/BUILD.gn                                   | 1 -
  chrome/browser/BUILD.gn                                   | 1 -
- 5 files changed, 21 deletions(-)
+ 5 files changed, 17 deletions(-)
 
 
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
@@ -22,7 +22,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/segmentation_platform:factory_java",
      "//chrome/browser/segmentation_platform:factory_java",
      "//chrome/browser/selection/android:java",
      "//chrome/browser/selection/android:java",
-@@ -1000,8 +999,6 @@ junit_binary("chrome_junit_tests") {
+@@ -1002,8 +1001,6 @@ junit_binary("chrome_junit_tests") {
      "//chrome/browser/preferences:java",
      "//chrome/browser/preferences:java",
      "//chrome/browser/preferences:preferences_junit_tests",
      "//chrome/browser/preferences:preferences_junit_tests",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/profiles/android:java",
@@ -31,7 +31,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/search_engines/android:java",
      "//chrome/browser/share:java",
      "//chrome/browser/share:java",
      "//chrome/browser/tab:java",
      "//chrome/browser/tab:java",
-@@ -1404,8 +1401,6 @@ android_library("chrome_test_java") {
+@@ -1407,8 +1404,6 @@ android_library("chrome_test_java") {
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/profiles/android:java",
      "//chrome/browser/safe_browsing/android:java",
      "//chrome/browser/safe_browsing/android:java",
      "//chrome/browser/safe_browsing/android:javatests",
      "//chrome/browser/safe_browsing/android:javatests",
@@ -43,7 +43,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -925,7 +925,6 @@ chrome_java_sources = [
+@@ -932,7 +932,6 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingPasswordReuseDialogBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingReferringAppBridge.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
    "java/src/org/chromium/chrome/browser/safe_browsing/SafeBrowsingSettingsLauncher.java",
@@ -86,36 +86,25 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/omnibox/Omn
 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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsActivity.java
-@@ -59,9 +59,6 @@ import org.chromium.chrome.browser.privacy_sandbox.FlocSettingsFragment;
+@@ -59,8 +59,6 @@ import org.chromium.chrome.browser.privacy_sandbox.FlocSettingsFragment;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment;
  import org.chromium.chrome.browser.privacy_sandbox.PrivacySandboxSettingsFragment;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
  import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
--import org.chromium.chrome.browser.safety_check.SafetyCheckCoordinator;
 -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
 -import org.chromium.chrome.browser.safety_check.SafetyCheckSettingsFragment;
 -import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
 -import org.chromium.chrome.browser.safety_check.SafetyCheckUpdatesDelegateImpl;
  import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
  import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
  import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
  import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
  import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
  import org.chromium.chrome.browser.ui.messages.snackbar.INeedSnackbarManager;
-@@ -379,9 +376,6 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
-             fragmentHelpAndFeedbackLauncher.setHelpAndFeedbackLauncher(
-                     HelpAndFeedbackLauncherImpl.getInstance());
-         }
--        if (fragment instanceof SafetyCheckSettingsFragment) {
--           // not supported
--        }
-         if (fragment instanceof PasswordCheckFragmentView) {
-             PasswordCheckComponentUiFactory.create((PasswordCheckFragmentView) fragment,
-                     HelpAndFeedbackLauncherImpl.getInstance(), mSettingsLauncher,
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3281,7 +3281,6 @@ static_library("browser") {
+@@ -3400,7 +3400,6 @@ static_library("browser") {
        "//chrome/browser/privacy_sandbox/android:jni_headers",
        "//chrome/browser/privacy_sandbox/android:jni_headers",
        "//chrome/browser/reading_list/android",
        "//chrome/browser/reading_list/android",
        "//chrome/browser/safe_browsing/android:safe_browsing_enums",
        "//chrome/browser/safe_browsing/android:safe_browsing_enums",
 -      "//chrome/browser/safety_check/android",
 -      "//chrome/browser/safety_check/android",
        "//chrome/browser/share/android:jni_headers",
        "//chrome/browser/share/android:jni_headers",
        "//chrome/browser/share/core/crow:crow_configuration",
        "//chrome/browser/share/core/crow:crow_configuration",
-       "//chrome/browser/tab:jni_headers",
+       "//chrome/browser/signin/services/android:jni_headers",
 --
 --
 2.25.1
 2.25.1

+ 1 - 1
build/patches/Disable-third-party-origin-trials.patch

@@ -60,7 +60,7 @@ diff --git a/components/embedder_support/origin_trials/origin_trial_policy_impl.
 diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc
 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
 --- a/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
 +++ b/content/browser/renderer_host/navigation_request.cc
-@@ -7022,7 +7022,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() {
+@@ -7028,7 +7028,6 @@ void NavigationRequest::RestartBackForwardCachedNavigationImpl() {
  void NavigationRequest::ForceEnableOriginTrials(
  void NavigationRequest::ForceEnableOriginTrials(
      const std::vector<std::string>& trials) {
      const std::vector<std::string>& trials) {
    DCHECK(!HasCommitted());
    DCHECK(!HasCommitted());

+ 2 - 2
build/patches/DoH-improvements.patch

@@ -15,7 +15,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
 diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/net/stub_resolver_config_reader.cc
 --- a/chrome/browser/net/stub_resolver_config_reader.cc
 --- a/chrome/browser/net/stub_resolver_config_reader.cc
 +++ b/chrome/browser/net/stub_resolver_config_reader.cc
 +++ b/chrome/browser/net/stub_resolver_config_reader.cc
-@@ -155,7 +155,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
+@@ -156,7 +156,7 @@ StubResolverConfigReader::StubResolverConfigReader(PrefService* local_state,
        if (entries.count("dns-over-https@1")) {
        if (entries.count("dns-over-https@1")) {
          // The user has "Enabled" selected.
          // The user has "Enabled" selected.
          local_state_->SetString(prefs::kDnsOverHttpsMode,
          local_state_->SetString(prefs::kDnsOverHttpsMode,
@@ -24,7 +24,7 @@ diff --git a/chrome/browser/net/stub_resolver_config_reader.cc b/chrome/browser/
        } else if (entries.count("dns-over-https@2")) {
        } else if (entries.count("dns-over-https@2")) {
          // The user has "Disabled" selected.
          // The user has "Disabled" selected.
          local_state_->SetString(prefs::kDnsOverHttpsMode,
          local_state_->SetString(prefs::kDnsOverHttpsMode,
-@@ -338,22 +338,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
+@@ -341,22 +341,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
      check_parental_controls = false;
      check_parental_controls = false;
    }
    }
  
  

+ 14 - 15
build/patches/Enable-native-Android-autofill.patch

@@ -17,8 +17,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
  android_webview/browser/aw_contents.cc        |  2 +-
  android_webview/browser/aw_contents.cc        |  2 +-
  chrome/android/BUILD.gn                       |  1 +
  chrome/android/BUILD.gn                       |  1 +
- .../settings/PasswordSettings.java            | 82 ++++++++++++++++++-
- .../chromium/chrome/browser/tab/TabImpl.java  | 50 +++++++++++
+ .../settings/PasswordSettings.java            | 81 ++++++++++++++++++-
+ .../chromium/chrome/browser/tab/TabImpl.java  | 50 ++++++++++++
  .../browser/tab/TabViewAndroidDelegate.java   | 14 ++++
  .../browser/tab/TabViewAndroidDelegate.java   | 14 ++++
  chrome/browser/BUILD.gn                       |  8 ++
  chrome/browser/BUILD.gn                       |  8 ++
  chrome/browser/android/tab_android.cc         | 23 ++++++
  chrome/browser/android/tab_android.cc         | 23 ++++++
@@ -29,7 +29,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../browser/android_autofill_manager.cc       |  2 +-
  .../browser/android_autofill_manager.cc       |  2 +-
  .../browser/android_autofill_manager.h        | 10 +--
  .../browser/android_autofill_manager.h        | 10 +--
  .../browser/content_autofill_driver.cc        | 29 +++++++
  .../browser/content_autofill_driver.cc        | 29 +++++++
- .../content/browser/content_autofill_driver.h |  9 +-
+ .../content/browser/content_autofill_driver.h |  9 ++-
  .../content_autofill_driver_factory.cc        |  7 +-
  .../content_autofill_driver_factory.cc        |  7 +-
  .../browser/content_autofill_driver_factory.h |  1 +
  .../browser/content_autofill_driver_factory.h |  1 +
  .../renderer/password_autofill_agent.cc       |  5 +-
  .../renderer/password_autofill_agent.cc       |  5 +-
@@ -37,7 +37,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../autofill/core/common/autofill_prefs.h     |  2 +
  .../autofill/core/common/autofill_prefs.h     |  2 +
  .../embedder_support/view/ContentView.java    | 46 +++++++++++
  .../embedder_support/view/ContentView.java    | 46 +++++++++++
  .../chromium/ui/base/ViewAndroidDelegate.java |  8 ++
  .../chromium/ui/base/ViewAndroidDelegate.java |  8 ++
- 22 files changed, 311 insertions(+), 13 deletions(-)
+ 22 files changed, 310 insertions(+), 13 deletions(-)
 
 
 diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
 diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw_contents.cc
 --- a/android_webview/browser/aw_contents.cc
 --- a/android_webview/browser/aw_contents.cc
@@ -54,7 +54,7 @@ diff --git a/android_webview/browser/aw_contents.cc b/android_webview/browser/aw
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -464,6 +464,7 @@ android_library("chrome_java") {
+@@ -459,6 +459,7 @@ android_library("chrome_java") {
      "//components/autofill_assistant/android:public_dependencies_java",
      "//components/autofill_assistant/android:public_dependencies_java",
      "//components/autofill_assistant/android:public_java",
      "//components/autofill_assistant/android:public_java",
      "//components/autofill_assistant/browser:proto_java",
      "//components/autofill_assistant/browser:proto_java",
@@ -65,7 +65,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 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
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
 --- 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
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
-@@ -57,13 +57,19 @@ import java.lang.annotation.Retention;
+@@ -55,13 +55,18 @@ import java.lang.annotation.Retention;
  import java.lang.annotation.RetentionPolicy;
  import java.lang.annotation.RetentionPolicy;
  import java.util.Locale;
  import java.util.Locale;
  
  
@@ -80,13 +80,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
   */
   */
  public class PasswordSettings extends PreferenceFragmentCompat
  public class PasswordSettings extends PreferenceFragmentCompat
          implements PasswordManagerHandler.PasswordListObserver,
          implements PasswordManagerHandler.PasswordListObserver,
--                   Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener {
-+                   Preference.OnPreferenceClickListener, SyncService.SyncStateChangedListener,
-+                   INeedSnackbarManager {
+-                   Preference.OnPreferenceClickListener {
++                   Preference.OnPreferenceClickListener, INeedSnackbarManager {
      @IntDef({TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN,
      @IntDef({TrustedVaultBannerState.NOT_SHOWN, TrustedVaultBannerState.OFFER_OPT_IN,
              TrustedVaultBannerState.OPTED_IN})
              TrustedVaultBannerState.OPTED_IN})
      @Retention(RetentionPolicy.SOURCE)
      @Retention(RetentionPolicy.SOURCE)
-@@ -92,6 +98,12 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -90,6 +95,12 @@ public class PasswordSettings extends PreferenceFragmentCompat
      public static final String PASSWORD_EXPORT_EVENT_HISTOGRAM =
      public static final String PASSWORD_EXPORT_EVENT_HISTOGRAM =
              "PasswordManager.PasswordExport.Event";
              "PasswordManager.PasswordExport.Event";
  
  
@@ -99,7 +98,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
      private static final String PREF_KEY_CATEGORY_SAVED_PASSWORDS = "saved_passwords";
      private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
      private static final String PREF_KEY_CATEGORY_EXCEPTIONS = "exceptions";
      private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
      private static final String PREF_KEY_SAVED_PASSWORDS_NO_TEXT = "saved_passwords_no_text";
-@@ -121,6 +133,8 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -119,6 +130,8 @@ public class PasswordSettings extends PreferenceFragmentCompat
      private String mSearchQuery;
      private String mSearchQuery;
      private Preference mLinkPref;
      private Preference mLinkPref;
      private ChromeSwitchPreference mSavePasswordsSwitch;
      private ChromeSwitchPreference mSavePasswordsSwitch;
@@ -108,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private ChromeSwitchPreference mAutoSignInSwitch;
      private ChromeSwitchPreference mAutoSignInSwitch;
      private ChromeBasePreference mCheckPasswords;
      private ChromeBasePreference mCheckPasswords;
      private ChromeBasePreference mTrustedVaultBanner;
      private ChromeBasePreference mTrustedVaultBanner;
-@@ -299,6 +313,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -293,6 +306,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
          }
          }
  
  
          createSavePasswordsSwitch();
          createSavePasswordsSwitch();
@@ -116,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
          createAutoSignInCheckbox();
          createAutoSignInCheckbox();
          if (mPasswordCheck != null) {
          if (mPasswordCheck != null) {
              createCheckPasswords();
              createCheckPasswords();
-@@ -539,6 +554,71 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -530,6 +544,71 @@ public class PasswordSettings extends PreferenceFragmentCompat
                  getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
                  getPrefService().getBoolean(Pref.CREDENTIALS_ENABLE_SERVICE));
      }
      }
  
  
@@ -314,7 +313,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabViewAndr
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2433,6 +2433,14 @@ static_library("browser") {
+@@ -2432,6 +2432,14 @@ static_library("browser") {
      "//ui/web_dialogs",
      "//ui/web_dialogs",
      "//ui/webui",
      "//ui/webui",
    ]
    ]
@@ -394,7 +393,7 @@ diff --git a/chrome/browser/android/tab_web_contents_delegate_android.cc b/chrom
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -620,6 +620,12 @@ CHAR_LIMIT guidelines:
+@@ -602,6 +602,12 @@ CHAR_LIMIT guidelines:
        <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
        <message name="IDS_PASSWORD_SETTINGS_SAVE_PASSWORDS" desc="Title for the checkbox toggling whether passwords are saved or not. [CHAR_LIMIT=32]">
          Save passwords
          Save passwords
        </message>
        </message>

+ 2 - 2
build/patches/Enable-share-intent.patch

@@ -41,7 +41,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
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -947,6 +947,7 @@ chrome_java_sources = [
+@@ -954,6 +954,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMessageHandler.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardMetrics.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
    "java/src/org/chromium/chrome/browser/sharing/shared_clipboard/SharedClipboardShareActivity.java",
@@ -176,7 +176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
  import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
  import org.chromium.chrome.browser.tab.state.ShoppingPersistedTabData;
  import org.chromium.chrome.browser.tasks.tab_management.PriceTrackingUtilities;
  import org.chromium.chrome.browser.tasks.tab_management.PriceTrackingUtilities;
  import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
  import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
-@@ -427,6 +428,8 @@ public class ProcessInitializationHandler {
+@@ -425,6 +426,8 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(
          deferredStartupHandler.addDeferredTask(
                  () -> IncognitoTabLauncher.updateComponentEnabledState());
                  () -> IncognitoTabLauncher.updateComponentEnabledState());
  
  

+ 6 - 6
build/patches/Experimental-user-scripts-support.patch

@@ -241,7 +241,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  }
  }
  
  
  if (enable_vr) {
  if (enable_vr) {
-@@ -553,6 +557,7 @@ android_library("chrome_java") {
+@@ -554,6 +558,7 @@ android_library("chrome_java") {
      "//components/ukm/android:java",
      "//components/ukm/android:java",
      "//components/url_formatter/android:url_formatter_java",
      "//components/url_formatter/android:url_formatter_java",
      "//components/user_prefs/android:java",
      "//components/user_prefs/android:java",
@@ -290,7 +290,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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
-@@ -124,6 +124,8 @@ import java.util.Date;
+@@ -122,6 +122,8 @@ import java.util.Date;
  import java.util.List;
  import java.util.List;
  import java.util.Locale;
  import java.util.Locale;
  
  
@@ -299,7 +299,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
   * 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
   * initialization that is not tied to any particular Activity, and the logic that should only be
-@@ -320,6 +322,7 @@ public class ProcessInitializationHandler {
+@@ -318,6 +320,7 @@ public class ProcessInitializationHandler {
  
  
                  DefaultBrowserInfo.initBrowserFetcher();
                  DefaultBrowserInfo.initBrowserFetcher();
  
  
@@ -327,7 +327,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
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3422,6 +3422,11 @@ static_library("browser") {
+@@ -3545,6 +3545,11 @@ static_library("browser") {
        ]
        ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
      }
      }
@@ -435,7 +435,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
 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
 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
-@@ -233,6 +233,8 @@
+@@ -241,6 +241,8 @@
  #include "chrome/browser/ui/cocoa/screentime/screentime_features.h"
  #include "chrome/browser/ui/cocoa/screentime/screentime_features.h"
  #endif
  #endif
  
  
@@ -444,7 +444,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
  namespace chrome {
  namespace chrome {
  
  
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
-@@ -557,6 +559,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -574,6 +576,7 @@ void ChromeBrowserMainExtraPartsProfiles::
  #endif
  #endif
    WebDataServiceFactory::GetInstance();
    WebDataServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
    webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();

+ 9 - 9
build/patches/History-number-of-days-privacy-setting.patch

@@ -49,15 +49,15 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.sync.settings.GoogleServicesSettings;
- import org.chromium.chrome.browser.sync.settings.ManageSyncSettings;
+@@ -36,6 +36,7 @@ import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
+ import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
  import org.chromium.components.browser_ui.bottomsheet.BottomSheetController;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
 +import org.chromium.components.browser_ui.settings.SpinnerPreference;
 +import org.chromium.components.browser_ui.settings.SpinnerPreference;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  import org.chromium.components.browser_ui.settings.SettingsUtils;
  import org.chromium.components.browser_ui.settings.SettingsUtils;
-@@ -53,6 +54,9 @@ import androidx.preference.PreferenceCategory;
+@@ -50,6 +51,9 @@ import androidx.preference.PreferenceCategory;
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  
  
@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  /**
  /**
   * Fragment to keep track of the all the privacy related preferences.
   * Fragment to keep track of the all the privacy related preferences.
   */
   */
-@@ -87,6 +91,8 @@ public class PrivacySettings
+@@ -83,6 +87,8 @@ public class PrivacySettings
      private ChromeSwitchPreference allowCustomTabIntentsPref;
      private ChromeSwitchPreference allowCustomTabIntentsPref;
      private ChromeSwitchPreference openExternalLinksPref;
      private ChromeSwitchPreference openExternalLinksPref;
  
  
@@ -76,9 +76,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      @Override
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
          PrivacyPreferencesManagerImpl privacyPrefManager =
          PrivacyPreferencesManagerImpl privacyPrefManager =
-@@ -139,6 +145,40 @@ public class PrivacySettings
-         Preference syncAndServicesLink = findPreference(PREF_SYNC_AND_SERVICES_LINK);
-         syncAndServicesLink.setSummary(buildSyncAndServicesLink());
+@@ -132,6 +138,40 @@ public class PrivacySettings
+         Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
+         secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
  
  
 +        // set up history expire days threshold preference
 +        // set up history expire days threshold preference
 +        List<TimeFrequencySpinnerOption> options = new ArrayList<>();
 +        List<TimeFrequencySpinnerOption> options = new ArrayList<>();
@@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          updatePreferences();
          updatePreferences();
      }
      }
  
  
-@@ -262,6 +302,29 @@ public class PrivacySettings
+@@ -231,6 +271,29 @@ public class PrivacySettings
          };
          };
      }
      }
  
  
@@ -184,7 +184,7 @@ diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/p
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -1107,6 +1107,18 @@ Your Google account may have other forms of browsing history like searches and a
+@@ -1089,6 +1089,18 @@ Your Google account may have other forms of browsing history like searches and a
        <message name="IDS_CLEAR_HISTORY_TITLE" desc="Title for Clear History in Clear Browsing Data dialog">
        <message name="IDS_CLEAR_HISTORY_TITLE" desc="Title for Clear History in Clear Browsing Data dialog">
          Browsing history
          Browsing history
        </message>
        </message>

+ 3 - 3
build/patches/Move-navigation-bar-to-bottom.patch

@@ -1019,7 +1019,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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
-@@ -92,6 +92,8 @@ import org.chromium.content_public.browser.NavigationEntry;
+@@ -93,6 +93,8 @@ import org.chromium.content_public.browser.NavigationEntry;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.base.WindowAndroid;
  import org.chromium.ui.base.WindowAndroid;
  import org.chromium.ui.mojom.WindowOpenDisposition;
  import org.chromium.ui.mojom.WindowOpenDisposition;
@@ -1028,7 +1028,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
  
  
  import java.util.List;
  import java.util.List;
  
  
-@@ -529,10 +531,15 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -533,10 +535,15 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          // + topControlsDistanceToRest| will give the margin for the current animation frame.
          // + topControlsDistanceToRest| will give the margin for the current animation frame.
          final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset()
          final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset()
                  - mBrowserControlsStateProvider.getTopControlsHeight();
                  - mBrowserControlsStateProvider.getTopControlsHeight();
@@ -1046,7 +1046,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
  
  
          if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) {
          if (topMargin != layoutParams.topMargin || bottomMargin != layoutParams.bottomMargin) {
              layoutParams.topMargin = topMargin;
              layoutParams.topMargin = topMargin;
-@@ -555,7 +562,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -559,7 +566,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
       *         strip.
       *         strip.
       */
       */
      private int getToolbarExtraYOffset() {
      private int getToolbarExtraYOffset() {

+ 6 - 6
build/patches/Move-some-account-settings-back-to-privacy-settings.patch

@@ -37,7 +37,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -48,6 +48,12 @@ import org.chromium.components.user_prefs.UserPrefs;
+@@ -45,6 +45,12 @@ import org.chromium.components.user_prefs.UserPrefs;
  import org.chromium.ui.text.NoUnderlineClickableSpan;
  import org.chromium.ui.text.NoUnderlineClickableSpan;
  import org.chromium.ui.text.SpanApplier;
  import org.chromium.ui.text.SpanApplier;
  
  
@@ -50,7 +50,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  /**
  /**
   * Fragment to keep track of the all the privacy related preferences.
   * Fragment to keep track of the all the privacy related preferences.
   */
   */
-@@ -67,6 +73,16 @@ public class PrivacySettings
+@@ -63,6 +69,16 @@ public class PrivacySettings
  
  
      private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
      private static final String PREF_CLOSE_TABS_ON_EXIT = "close_tabs_on_exit";
  
  
@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private IncognitoLockSettings mIncognitoLockSettings;
      private IncognitoLockSettings mIncognitoLockSettings;
      private ViewGroup mDialogContainer;
      private ViewGroup mDialogContainer;
-@@ -116,6 +132,16 @@ public class PrivacySettings
+@@ -112,6 +128,16 @@ public class PrivacySettings
  
  
          mManagedPreferenceDelegate = createManagedPreferenceDelegate();
          mManagedPreferenceDelegate = createManagedPreferenceDelegate();
  
  
@@ -84,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          ChromeSwitchPreference canMakePaymentPref =
          ChromeSwitchPreference canMakePaymentPref =
                  (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
                  (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
          canMakePaymentPref.setOnPreferenceChangeListener(this);
          canMakePaymentPref.setOnPreferenceChangeListener(this);
-@@ -175,6 +201,9 @@ public class PrivacySettings
+@@ -144,6 +170,9 @@ public class PrivacySettings
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
              UserPrefs.get(Profile.getLastUsedRegularProfile())
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
                      .setBoolean(Pref.HTTPS_ONLY_MODE_ENABLED, (boolean) newValue);
@@ -94,7 +94,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          }
          }
          return true;
          return true;
      }
      }
-@@ -189,7 +218,7 @@ public class PrivacySettings
+@@ -158,7 +187,7 @@ public class PrivacySettings
       * Updates the preferences.
       * Updates the preferences.
       */
       */
      public void updatePreferences() {
      public void updatePreferences() {
@@ -106,7 +106,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -463,6 +463,10 @@ CHAR_LIMIT guidelines:
+@@ -445,6 +445,10 @@ CHAR_LIMIT guidelines:
          No statistics or crash reports are sent to Google
          No statistics or crash reports are sent to Google
        </message>
        </message>
  
  

+ 1 - 1
build/patches/Multiple-fingerprinting-mitigations.patch

@@ -57,7 +57,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
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2360,6 +2360,7 @@ static_library("browser") {
+@@ -2359,6 +2359,7 @@ static_library("browser") {
      "//services/device/public/cpp:device_features",
      "//services/device/public/cpp:device_features",
      "//services/device/public/cpp/serial:switches",
      "//services/device/public/cpp/serial:switches",
      "//services/device/public/cpp/usb",
      "//services/device/public/cpp/usb",

+ 1 - 1
build/patches/Offer-builtin-autocomplete-for-chrome-flags.patch

@@ -10,7 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
 +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
-@@ -265,6 +265,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
+@@ -271,6 +271,8 @@ std::vector<std::u16string> ChromeAutocompleteProviderClient::GetBuiltinURLs() {
  std::vector<std::u16string>
  std::vector<std::u16string>
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    std::vector<std::u16string> builtins_to_provide;
    std::vector<std::u16string> builtins_to_provide;

+ 19 - 42
build/patches/Remove-binary-blob-integrations.patch

@@ -49,7 +49,6 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../browser/password_manager/android/BUILD.gn |   2 -
  .../browser/password_manager/android/BUILD.gn |   2 -
  .../PasswordManagerAndroidBackendUtil.java    |  31 +-
  .../PasswordManagerAndroidBackendUtil.java    |  31 +-
  .../PasswordSettingsUpdaterBridge.java        |  11 -
  .../PasswordSettingsUpdaterBridge.java        |  11 -
- ...PasswordStoreAndroidBackendBridgeImpl.java |   5 -
  ...swordSyncControllerDelegateBridgeImpl.java |   7 -
  ...swordSyncControllerDelegateBridgeImpl.java |   7 -
  .../push_messaging_service_factory.cc         |   8 +-
  .../push_messaging_service_factory.cc         |   8 +-
  chrome/browser/resources/settings/route.ts    |   2 -
  chrome/browser/resources/settings/route.ts    |   2 -
@@ -109,7 +108,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  third_party/android_deps/BUILD.gn             | 540 +-----------------
  third_party/android_deps/BUILD.gn             | 540 +-----------------
  .../preconditions/javatests/BUILD.gn          |   1 -
  .../preconditions/javatests/BUILD.gn          |   1 -
  .../gms/ChromiumPlayServicesAvailability.java |  10 +-
  .../gms/ChromiumPlayServicesAvailability.java |  10 +-
- 85 files changed, 83 insertions(+), 1999 deletions(-)
+ 84 files changed, 83 insertions(+), 1994 deletions(-)
 
 
 diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
 diff --git a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected b/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
 --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
 --- a/android_webview/expectations/system_webview_bundle.AndroidManifest.expected
@@ -151,7 +150,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//cc:cc_java",
      "//cc:cc_java",
      "//chrome/android/features/keyboard_accessory:public_java",
      "//chrome/android/features/keyboard_accessory:public_java",
      "//chrome/android/features/start_surface:java_resources",
      "//chrome/android/features/start_surface:java_resources",
-@@ -604,8 +596,19 @@ android_library("chrome_java") {
+@@ -605,8 +597,19 @@ android_library("chrome_java") {
      "//services/shape_detection:shape_detection_java",
      "//services/shape_detection:shape_detection_java",
      "//services/shape_detection/public/mojom:mojom_java",
      "//services/shape_detection/public/mojom:mojom_java",
      "//skia/public/mojom:mojom_java",
      "//skia/public/mojom:mojom_java",
@@ -172,7 +171,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
      "//third_party/android_deps:com_google_code_findbugs_jsr305_java",
      "//third_party/android_deps:com_google_guava_listenablefuture_java",
      "//third_party/android_deps:com_google_guava_listenablefuture_java",
      "//third_party/android_deps:dagger_java",
      "//third_party/android_deps:dagger_java",
-@@ -932,10 +935,6 @@ junit_binary("chrome_junit_tests") {
+@@ -935,10 +938,6 @@ junit_binary("chrome_junit_tests") {
      ":chrome_jni_headers",
      ":chrome_jni_headers",
      ":chrome_public_android_manifest",
      ":chrome_public_android_manifest",
      ":delegate_public_impl_java",
      ":delegate_public_impl_java",
@@ -183,7 +182,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java_test_support",
      "//base:base_java_test_support",
      "//base:base_junit_test_support",
      "//base:base_junit_test_support",
      "//base/test:test_support_java",
      "//base/test:test_support_java",
-@@ -1334,13 +1333,6 @@ android_library("chrome_test_java") {
+@@ -1337,13 +1336,6 @@ android_library("chrome_test_java") {
      ":chrome_test_util_java",
      ":chrome_test_util_java",
      ":chrome_test_util_jni",
      ":chrome_test_util_jni",
      ":delegate_public_impl_java",
      ":delegate_public_impl_java",
@@ -197,7 +196,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java_test_support",
      "//base:base_java_test_support",
      "//base/test:test_support_java",
      "//base/test:test_support_java",
      "//build/android:build_java",
      "//build/android:build_java",
-@@ -2403,7 +2395,6 @@ android_library("browser_java_test_support") {
+@@ -2405,7 +2397,6 @@ android_library("browser_java_test_support") {
    ]
    ]
    deps = [
    deps = [
      ":chrome_java",
      ":chrome_java",
@@ -205,7 +204,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java",
      "//base:base_java_test_support",
      "//base:base_java_test_support",
      "//base:jni_java",
      "//base:jni_java",
-@@ -2553,9 +2544,7 @@ android_library("base_monochrome_module_java") {
+@@ -2555,9 +2546,7 @@ android_library("base_monochrome_module_java") {
  # is in a DFM.
  # is in a DFM.
  android_library("base_module_java") {
  android_library("base_module_java") {
    sources = [
    sources = [
@@ -215,7 +214,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
      "java/src/org/chromium/chrome/browser/ChromeBackupAgent.java",
      "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
      "java/src/org/chromium/chrome/browser/DeferredStartupHandler.java",
      "java/src/org/chromium/chrome/browser/app/bluetooth/BluetoothNotificationService.java",
      "java/src/org/chromium/chrome/browser/app/bluetooth/BluetoothNotificationService.java",
-@@ -2567,8 +2556,6 @@ android_library("base_module_java") {
+@@ -2569,8 +2558,6 @@ android_library("base_module_java") {
      "java/src/org/chromium/chrome/browser/base/SplitCompatBackupAgent.java",
      "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/SplitCompatContentProvider.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatCustomTabsService.java",
@@ -224,7 +223,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/SplitCompatIntentService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatJobService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
      "java/src/org/chromium/chrome/browser/base/SplitCompatMinidumpUploadJobService.java",
-@@ -2593,17 +2580,11 @@ android_library("base_module_java") {
+@@ -2595,17 +2582,11 @@ android_library("base_module_java") {
      "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
      "java/src/org/chromium/chrome/browser/photo_picker/DecoderService.java",
      "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
      "java/src/org/chromium/chrome/browser/prerender/ChromePrerenderService.java",
      "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
      "java/src/org/chromium/chrome/browser/provider/ChromeBrowserProvider.java",
@@ -242,7 +241,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java",
      "//base:jni_java",
      "//base:jni_java",
      "//build/android:build_java",
      "//build/android:build_java",
-@@ -2618,7 +2599,6 @@ android_library("base_module_java") {
+@@ -2620,7 +2601,6 @@ android_library("base_module_java") {
      "//components/media_router/browser/android:cast_options_provider_java",
      "//components/media_router/browser/android:cast_options_provider_java",
      "//components/minidump_uploader:minidump_uploader_java",
      "//components/minidump_uploader:minidump_uploader_java",
      "//components/module_installer/android:module_installer_java",
      "//components/module_installer/android:module_installer_java",
@@ -250,7 +249,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_annotation_annotation_java",
      "//third_party/androidx:androidx_collection_collection_java",
      "//third_party/androidx:androidx_collection_collection_java",
      "//ui/android:ui_no_recycler_view_java",
      "//ui/android:ui_no_recycler_view_java",
-@@ -2638,7 +2618,6 @@ android_library("base_module_java") {
+@@ -2640,7 +2620,6 @@ android_library("base_module_java") {
      # Deps to pull services into base module.
      # Deps to pull services into base module.
      # TODO(crbug.com/1126301): Consider moving these to the chrome module to
      # TODO(crbug.com/1126301): Consider moving these to the chrome module to
      # reduce base dex size.
      # reduce base dex size.
@@ -269,7 +268,7 @@ diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java
    "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupAgentImpl.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
    "java/src/org/chromium/chrome/browser/ChromeBackupWatcher.java",
    "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
    "java/src/org/chromium/chrome/browser/ChromeBaseAppCompatActivity.java",
-@@ -929,10 +928,6 @@ chrome_java_sources = [
+@@ -936,10 +935,6 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java",
    "java/src/org/chromium/chrome/browser/searchwidget/SearchBoxDataProvider.java",
    "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
    "java/src/org/chromium/chrome/browser/searchwidget/SearchType.java",
    "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
    "java/src/org/chromium/chrome/browser/searchwidget/SearchWidgetProvider.java",
@@ -445,7 +444,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AppHooks.java b
  import org.chromium.base.ContextUtils;
  import org.chromium.base.ContextUtils;
  import org.chromium.base.annotations.CalledByNative;
  import org.chromium.base.annotations.CalledByNative;
  import org.chromium.chrome.browser.customtabs.CustomTabsConnection;
  import org.chromium.chrome.browser.customtabs.CustomTabsConnection;
-@@ -248,16 +245,7 @@ public abstract class AppHooks {
+@@ -240,16 +237,7 @@ public abstract class AppHooks {
       * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
       * same as {@link GoogleApiAvailability#isGooglePlayServicesAvailable()}.
       */
       */
      public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
      public int isGoogleApiAvailableWithMinApkVersion(int minApkVersion) {
@@ -882,7 +881,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/UpdateSta
 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
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
 --- 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
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/password_manager/settings/PasswordSettings.java
-@@ -140,7 +140,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -139,7 +139,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
      private boolean mSearchRecorded;
      private boolean mSearchRecorded;
      private Menu mMenu;
      private Menu mMenu;
  
  
@@ -890,7 +889,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private @ManagePasswordsReferrer int mManagePasswordsReferrer;
      private @ManagePasswordsReferrer int mManagePasswordsReferrer;
  
  
      /**
      /**
-@@ -203,7 +202,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -202,7 +201,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
      @Override
      @Override
      public void onCreate(Bundle savedInstanceState) {
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          super.onCreate(savedInstanceState);
@@ -898,7 +897,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
          computeTrustedVaultBannerState();
          computeTrustedVaultBannerState();
      }
      }
  
  
-@@ -309,9 +307,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -308,9 +306,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
          createSavePasswordsSwitch();
          createSavePasswordsSwitch();
          createEnableAndroidAutofillSwitch();
          createEnableAndroidAutofillSwitch();
          createAutoSignInCheckbox();
          createAutoSignInCheckbox();
@@ -908,7 +907,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
  
  
          if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) {
          if (mTrustedVaultBannerState == TrustedVaultBannerState.OPTED_IN) {
              createTrustedVaultBanner(R.string.android_trusted_vault_banner_sub_label_opted_in,
              createTrustedVaultBanner(R.string.android_trusted_vault_banner_sub_label_opted_in,
-@@ -486,10 +481,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -485,10 +480,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
          // by the system.
          // by the system.
          if (getActivity().isFinishing()) {
          if (getActivity().isFinishing()) {
              PasswordManagerHandlerProvider.getInstance().removeObserver(this);
              PasswordManagerHandlerProvider.getInstance().removeObserver(this);
@@ -942,7 +941,7 @@ diff --git a/chrome/android/modules/chrome_feature_modules.gni b/chrome/android/
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -6784,8 +6784,6 @@ static_library("browser") {
+@@ -6916,8 +6916,6 @@ static_library("browser") {
        "offline_pages/offliner_helper.h",
        "offline_pages/offliner_helper.h",
        "offline_pages/offliner_user_data.cc",
        "offline_pages/offliner_user_data.cc",
        "offline_pages/offliner_user_data.h",
        "offline_pages/offliner_user_data.h",
@@ -1085,7 +1084,7 @@ diff --git a/chrome/browser/offline_pages/prefetch/prefetch_service_factory.cc b
 diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn
 diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/password_manager/android/BUILD.gn
 --- a/chrome/browser/password_manager/android/BUILD.gn
 --- a/chrome/browser/password_manager/android/BUILD.gn
 +++ b/chrome/browser/password_manager/android/BUILD.gn
 +++ b/chrome/browser/password_manager/android/BUILD.gn
-@@ -81,7 +81,6 @@ android_library("java") {
+@@ -84,7 +84,6 @@ android_library("java") {
      ":android_backend_java_enums",
      ":android_backend_java_enums",
      ":java_resources",
      ":java_resources",
      ":settings_interface_java",
      ":settings_interface_java",
@@ -1093,7 +1092,7 @@ diff --git a/chrome/browser/password_manager/android/BUILD.gn b/chrome/browser/p
      "//base:base_java",
      "//base:base_java",
      "//base:jni_java",
      "//base:jni_java",
      "//build/android:build_java",
      "//build/android:build_java",
-@@ -172,7 +171,6 @@ junit_binary("password_manager_junit_tests") {
+@@ -179,7 +178,6 @@ junit_binary("password_manager_junit_tests") {
      ":java",
      ":java",
      ":public_impl_java",
      ":public_impl_java",
      ":settings_interface_java",
      ":settings_interface_java",
@@ -1194,28 +1193,6 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
          PasswordSettingsUpdaterBridgeJni.get().onFailedSettingChange(
          PasswordSettingsUpdaterBridgeJni.get().onFailedSettingChange(
                  mNativeSettingsUpdaterBridge, setting, error, apiErrorCode);
                  mNativeSettingsUpdaterBridge, setting, error, apiErrorCode);
      }
      }
-diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
---- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
-+++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordStoreAndroidBackendBridgeImpl.java
-@@ -6,7 +6,6 @@ package org.chromium.chrome.browser.password_manager;
- 
- import android.accounts.Account;
- 
--import com.google.android.gms.common.api.ResolvableApiException;
- import com.google.common.base.Optional;
- 
- import org.chromium.base.annotations.CalledByNative;
-@@ -113,10 +112,6 @@ class PasswordStoreAndroidBackendBridgeImpl {
-         int error = PasswordManagerAndroidBackendUtil.getBackendError(exception);
-         int apiErrorCode = PasswordManagerAndroidBackendUtil.getApiErrorCode(exception);
- 
--        if (exception instanceof ResolvableApiException) {
--            PasswordManagerAndroidBackendUtil.handleResolvableApiException(
--                    (ResolvableApiException) exception);
--        }
-         PasswordStoreAndroidBackendBridgeImplJni.get().onError(
-                 mNativeBackendBridge, jobId, error, apiErrorCode);
-     }
 diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
 diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
 --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
 --- a/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
 +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java
 +++ b/chrome/browser/password_manager/android/java/src/org/chromium/chrome/browser/password_manager/PasswordSyncControllerDelegateBridgeImpl.java

+ 28 - 27
build/patches/Remove-contextual-search-manager.patch

@@ -94,7 +94,7 @@ diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -493,7 +493,6 @@ android_library("chrome_java") {
+@@ -488,7 +488,6 @@ android_library("chrome_java") {
      "//components/content_capture/android:java",
      "//components/content_capture/android:java",
      "//components/content_settings/android:content_settings_enums_java",
      "//components/content_settings/android:content_settings_enums_java",
      "//components/content_settings/android:java",
      "//components/content_settings/android:java",
@@ -102,18 +102,19 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//components/crash/android:java",
      "//components/crash/android:java",
      "//components/dom_distiller/content/browser/android:dom_distiller_content_java",
      "//components/dom_distiller/content/browser/android:dom_distiller_content_java",
      "//components/dom_distiller/core/android:dom_distiller_core_java",
      "//components/dom_distiller/core/android:dom_distiller_core_java",
-@@ -659,10 +658,8 @@ android_library("chrome_java") {
+@@ -654,11 +653,9 @@ android_library("chrome_java") {
      ":chrome_strict_mode_switch",
      ":chrome_strict_mode_switch",
      ":resource_id_javagen",
      ":resource_id_javagen",
      ":vr_build_config",
      ":vr_build_config",
 -    "//chrome:assist_ranker_prediction_enum_javagen",
 -    "//chrome:assist_ranker_prediction_enum_javagen",
      "//chrome:instant_apps_reasons_enum_javagen",
      "//chrome:instant_apps_reasons_enum_javagen",
      "//chrome:offline_pages_enum_javagen",
      "//chrome:offline_pages_enum_javagen",
+     "//chrome:partner_bookmarks_javagen",
 -    "//chrome:quick_action_category_enum_javagen",
 -    "//chrome:quick_action_category_enum_javagen",
      "//chrome:supervised_user_url_filter_enum_javagen",
      "//chrome:supervised_user_url_filter_enum_javagen",
      "//chrome/browser:screenshot_mode_enum",
      "//chrome/browser:screenshot_mode_enum",
      "//chrome/browser:sharing_dialog_type_generated_enum",
      "//chrome/browser:sharing_dialog_type_generated_enum",
-@@ -3869,17 +3866,12 @@ generate_jni("chrome_jni_headers") {
+@@ -3851,17 +3848,12 @@ generate_jni("chrome_jni_headers") {
      "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java",
      "java/src/org/chromium/chrome/browser/compositor/LayerTitleCache.java",
      "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java",
      "java/src/org/chromium/chrome/browser/compositor/bottombar/OverlayPanelContent.java",
      "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java",
      "java/src/org/chromium/chrome/browser/compositor/layouts/content/TabContentManager.java",
@@ -820,7 +821,7 @@ deleted file mode 100644
 diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
 diff --git a/chrome/android/java/res/xml/google_services_preferences.xml b/chrome/android/java/res/xml/google_services_preferences.xml
 --- a/chrome/android/java/res/xml/google_services_preferences.xml
 --- a/chrome/android/java/res/xml/google_services_preferences.xml
 +++ b/chrome/android/java/res/xml/google_services_preferences.xml
 +++ b/chrome/android/java/res/xml/google_services_preferences.xml
-@@ -45,8 +45,4 @@
+@@ -40,8 +40,4 @@
          android:summary="@string/prefs_autofill_assistant_summary"
          android:summary="@string/prefs_autofill_assistant_summary"
          android:fragment="org.chromium.chrome.browser.autofill_assistant.AutofillAssistantPreferenceFragment"
          android:fragment="org.chromium.chrome.browser.autofill_assistant.AutofillAssistantPreferenceFragment"
          app:isPreferenceVisible="false"/>
          app:isPreferenceVisible="false"/>
@@ -846,7 +847,7 @@ diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/androi
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
-@@ -1657,7 +1657,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -1651,7 +1651,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
      protected RootUiCoordinator createRootUiCoordinator() {
      protected RootUiCoordinator createRootUiCoordinator() {
          return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
          return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
                  getShareDelegateSupplier(), getActivityTabProvider(), mTabModelProfileSupplier,
                  getShareDelegateSupplier(), getActivityTabProvider(), mTabModelProfileSupplier,
@@ -855,7 +856,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
                  getTabModelSelectorSupplier(), mStartSurfaceSupplier,
                  getTabModelSelectorSupplier(), mStartSurfaceSupplier,
                  mIntentMetadataOneshotSupplier, mLayoutStateProviderSupplier,
                  mIntentMetadataOneshotSupplier, mLayoutStateProviderSupplier,
                  mStartSurfaceParentTabSupplier, getBrowserControlsManager(), getWindowAndroid(),
                  mStartSurfaceParentTabSupplier, getBrowserControlsManager(), getWindowAndroid(),
-@@ -2701,7 +2701,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
+@@ -2688,7 +2688,7 @@ public class ChromeTabbedActivity extends ChromeActivity<ChromeActivityComponent
          // TODO(crbug.com/1157310): Transition this::method refs to dedicated suppliers.
          // TODO(crbug.com/1157310): Transition this::method refs to dedicated suppliers.
          mTabModalHandler = new TabModalLifetimeHandler(this, getLifecycleDispatcher(), manager,
          mTabModalHandler = new TabModalLifetimeHandler(this, getLifecycleDispatcher(), manager,
                  this::getAppBrowserControlsVisibilityDelegate, this::getTabObscuringHandler,
                  this::getAppBrowserControlsVisibilityDelegate, this::getTabObscuringHandler,
@@ -877,7 +878,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityCommonsModule;
  import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
  import org.chromium.chrome.browser.AlwaysIncognitoLinkInterceptor;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
  import org.chromium.chrome.browser.dependency_injection.ChromeActivityComponent;
-@@ -262,7 +259,7 @@ import java.util.function.Consumer;
+@@ -258,7 +255,7 @@ import java.util.function.Consumer;
   */
   */
  public abstract class ChromeActivity<C extends ChromeActivityComponent>
  public abstract class ChromeActivity<C extends ChromeActivityComponent>
          extends AsyncInitializationActivity
          extends AsyncInitializationActivity
@@ -886,7 +887,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
                     SnackbarManageable, SceneChangeObserver,
                     SnackbarManageable, SceneChangeObserver,
                     StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker,
                     StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker,
                     MenuOrKeyboardActionController, CompositorViewHolder.Initializer,
                     MenuOrKeyboardActionController, CompositorViewHolder.Initializer,
-@@ -327,8 +324,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -320,8 +317,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
              new ObservableSupplierImpl<>();
              new ObservableSupplierImpl<>();
      protected final UnownedUserDataSupplier<InsetObserverView> mInsetObserverViewSupplier =
      protected final UnownedUserDataSupplier<InsetObserverView> mInsetObserverViewSupplier =
              new InsetObserverViewSupplier();
              new InsetObserverViewSupplier();
@@ -895,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  
  
      private SnackbarManager mSnackbarManager;
      private SnackbarManager mSnackbarManager;
  
  
-@@ -517,7 +512,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -510,7 +505,7 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          // clang-format off
          // clang-format off
          return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
          return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
                  getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
                  getActivityTabProvider(), mTabModelProfileSupplier, mBookmarkBridgeSupplier,
@@ -904,7 +905,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
                  new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(),
                  new OneshotSupplierImpl<>(), new OneshotSupplierImpl<>(),
                  new OneshotSupplierImpl<>(),
                  new OneshotSupplierImpl<>(),
                  () -> null, mBrowserControlsManagerSupplier.get(), getWindowAndroid(),
                  () -> null, mBrowserControlsManagerSupplier.get(), getWindowAndroid(),
-@@ -950,14 +945,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -943,14 +938,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          mCompositorViewHolderSupplier.get().onNativeLibraryReady(
          mCompositorViewHolderSupplier.get().onNativeLibraryReady(
                  getWindowAndroid(), getTabContentManager());
                  getWindowAndroid(), getTabContentManager());
  
  
@@ -919,7 +920,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
          TraceEvent.end("ChromeActivity:CompositorInitialization");
          TraceEvent.end("ChromeActivity:CompositorInitialization");
      }
      }
  
  
-@@ -1506,11 +1493,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -1430,11 +1417,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
      @SuppressLint("NewApi")
      @SuppressLint("NewApi")
      @Override
      @Override
      protected final void onDestroy() {
      protected final void onDestroy() {
@@ -931,7 +932,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
          if (mSnackbarManager != null) {
          if (mSnackbarManager != null) {
              SnackbarManagerProvider.detach(mSnackbarManager);
              SnackbarManagerProvider.detach(mSnackbarManager);
          }
          }
-@@ -2109,13 +2091,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2033,13 +2015,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          return mCompositorViewHolderSupplier.get();
          return mCompositorViewHolderSupplier.get();
      }
      }
  
  
@@ -945,7 +946,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
      /**
      /**
       * Exits the fullscreen mode, if any. Does nothing if no fullscreen is present.
       * Exits the fullscreen mode, if any. Does nothing if no fullscreen is present.
       * @return Whether the fullscreen mode is currently showing.
       * @return Whether the fullscreen mode is currently showing.
-@@ -2158,15 +2133,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2082,15 +2057,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          }
          }
  
  
          mActivityTabProvider.setLayoutStateProvider(layoutManager);
          mActivityTabProvider.setLayoutStateProvider(layoutManager);
@@ -961,7 +962,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
      }
      }
  
  
      /**
      /**
-@@ -2407,18 +2373,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2331,18 +2297,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
          return webContents != null ? SelectionPopupController.fromWebContents(webContents) : null;
          return webContents != null ? SelectionPopupController.fromWebContents(webContents) : null;
      }
      }
  
  
@@ -1056,7 +1057,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/Base
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabActivity.java
-@@ -191,12 +191,6 @@ public class CustomTabActivity extends BaseCustomTabActivity {
+@@ -188,12 +188,6 @@ public class CustomTabActivity extends BaseCustomTabActivity {
                  mIntentDataProvider.getSession(), webContents);
                  mIntentDataProvider.getSession(), webContents);
      }
      }
  
  
@@ -1167,7 +1168,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/modaldialog/Tab
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -50,7 +50,6 @@ import org.chromium.ui.text.SpanApplier;
+@@ -47,7 +47,6 @@ import org.chromium.ui.text.SpanApplier;
  
  
  import androidx.annotation.Nullable;
  import androidx.annotation.Nullable;
  import androidx.preference.PreferenceCategory;
  import androidx.preference.PreferenceCategory;
@@ -1175,7 +1176,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
  
  
-@@ -76,9 +75,7 @@ public class PrivacySettings
+@@ -72,9 +71,7 @@ public class PrivacySettings
      // moved from SyncAndServicesSettings.java
      // moved from SyncAndServicesSettings.java
      private static final String PREF_SERVICES_CATEGORY = "services_category";
      private static final String PREF_SERVICES_CATEGORY = "services_category";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
      private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
@@ -1185,7 +1186,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private final SharedPreferencesManager mSharedPreferencesManager =
      private final SharedPreferencesManager mSharedPreferencesManager =
              SharedPreferencesManager.getInstance();
              SharedPreferencesManager.getInstance();
      private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
      private final PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
-@@ -136,12 +133,6 @@ public class PrivacySettings
+@@ -132,12 +129,6 @@ public class PrivacySettings
          mSearchSuggestions.setOnPreferenceChangeListener(this);
          mSearchSuggestions.setOnPreferenceChangeListener(this);
          mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
          mSearchSuggestions.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
  
  
@@ -1228,7 +1229,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
  import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator;
  import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator;
  import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator.HeightObserver;
  import org.chromium.chrome.browser.continuous_search.ContinuousSearchContainerCoordinator.HeightObserver;
  import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils;
  import org.chromium.chrome.browser.feature_guide.notifications.FeatureNotificationUtils;
-@@ -255,7 +254,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -253,7 +252,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
              @NonNull ActivityTabProvider tabProvider,
              @NonNull ActivityTabProvider tabProvider,
              @NonNull ObservableSupplier<Profile> profileSupplier,
              @NonNull ObservableSupplier<Profile> profileSupplier,
              @NonNull ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
              @NonNull ObservableSupplier<BookmarkBridge> bookmarkBridgeSupplier,
@@ -1237,7 +1238,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabbed_mode/Tab
              @NonNull ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
              @NonNull ObservableSupplier<TabModelSelector> tabModelSelectorSupplier,
              @NonNull OneshotSupplier<StartSurface> startSurfaceSupplier,
              @NonNull OneshotSupplier<StartSurface> startSurfaceSupplier,
              @NonNull OneshotSupplier<ToolbarIntentMetadata> intentMetadataOneshotSupplier,
              @NonNull OneshotSupplier<ToolbarIntentMetadata> intentMetadataOneshotSupplier,
-@@ -288,7 +287,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -286,7 +285,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
              OneshotSupplier<TabReparentingController> tabReparentingControllerSupplier,
              OneshotSupplier<TabReparentingController> tabReparentingControllerSupplier,
              boolean initializeUiWithIncognitoColors) {
              boolean initializeUiWithIncognitoColors) {
          super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider,
          super(activity, onOmniboxFocusChangedListener, shareDelegateSupplier, tabProvider,
@@ -1382,7 +1383,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ui/RootUiCoordi
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -2068,9 +2068,6 @@ static_library("browser") {
+@@ -2067,9 +2067,6 @@ static_library("browser") {
      "//components/content_settings/core/browser",
      "//components/content_settings/core/browser",
      "//components/content_settings/core/common",
      "//components/content_settings/core/common",
      "//components/contextual_search:buildflags",
      "//components/contextual_search:buildflags",
@@ -1392,7 +1393,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
      "//components/continuous_search/browser",
      "//components/continuous_search/browser",
      "//components/continuous_search/common/public/mojom",
      "//components/continuous_search/common/public/mojom",
      "//components/cookie_config",
      "//components/cookie_config",
-@@ -2666,8 +2663,6 @@ static_library("browser") {
+@@ -2665,8 +2662,6 @@ static_library("browser") {
        "android/compositor/decoration_title.h",
        "android/compositor/decoration_title.h",
        "android/compositor/layer/content_layer.cc",
        "android/compositor/layer/content_layer.cc",
        "android/compositor/layer/content_layer.h",
        "android/compositor/layer/content_layer.h",
@@ -1401,7 +1402,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "android/compositor/layer/layer.h",
        "android/compositor/layer/layer.h",
        "android/compositor/layer/overlay_panel_layer.cc",
        "android/compositor/layer/overlay_panel_layer.cc",
        "android/compositor/layer/overlay_panel_layer.h",
        "android/compositor/layer/overlay_panel_layer.h",
-@@ -2688,8 +2683,6 @@ static_library("browser") {
+@@ -2687,8 +2682,6 @@ static_library("browser") {
        "android/compositor/resources/resource_factory.cc",
        "android/compositor/resources/resource_factory.cc",
        "android/compositor/resources/toolbar_resource.cc",
        "android/compositor/resources/toolbar_resource.cc",
        "android/compositor/resources/toolbar_resource.h",
        "android/compositor/resources/toolbar_resource.h",
@@ -1410,7 +1411,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "android/compositor/scene_layer/continuous_search_scene_layer.cc",
        "android/compositor/scene_layer/continuous_search_scene_layer.cc",
        "android/compositor/scene_layer/continuous_search_scene_layer.h",
        "android/compositor/scene_layer/continuous_search_scene_layer.h",
        "android/compositor/scene_layer/overscroll_scene_layer.cc",
        "android/compositor/scene_layer/overscroll_scene_layer.cc",
-@@ -2714,26 +2707,6 @@ static_library("browser") {
+@@ -2713,26 +2706,6 @@ static_library("browser") {
        "android/content/content_utils.cc",
        "android/content/content_utils.cc",
        "android/context_menu/context_menu_native_delegate_impl.cc",
        "android/context_menu/context_menu_native_delegate_impl.cc",
        "android/context_menu/context_menu_native_delegate_impl.h",
        "android/context_menu/context_menu_native_delegate_impl.h",
@@ -1437,7 +1438,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
        "android/cookies/cookies_fetcher_util.cc",
        "android/cookies/cookies_fetcher_util.cc",
        "android/customtabs/client_data_header_web_contents_observer.cc",
        "android/customtabs/client_data_header_web_contents_observer.cc",
        "android/customtabs/client_data_header_web_contents_observer.h",
        "android/customtabs/client_data_header_web_contents_observer.h",
-@@ -3315,8 +3288,6 @@ static_library("browser") {
+@@ -3312,8 +3285,6 @@ static_library("browser") {
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.h",
        "safe_browsing/android/safe_browsing_referring_app_bridge_android.h",
        "safe_browsing/android/safe_browsing_settings_launcher_android.cc",
        "safe_browsing/android/safe_browsing_settings_launcher_android.cc",
        "safe_browsing/android/safe_browsing_settings_launcher_android.h",
        "safe_browsing/android/safe_browsing_settings_launcher_android.h",
@@ -1545,7 +1546,7 @@ diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc
 diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 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
 --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
 +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd
-@@ -819,49 +819,6 @@ CHAR_LIMIT guidelines:
+@@ -801,49 +801,6 @@ CHAR_LIMIT guidelines:
        <message name="IDS_PREFS_PRIVACY_SECURITY" desc="Title for the Privacy and Security preferences. [CHAR_LIMIT=32]">
        <message name="IDS_PREFS_PRIVACY_SECURITY" desc="Title for the Privacy and Security preferences. [CHAR_LIMIT=32]">
          Privacy and security
          Privacy and security
        </message>
        </message>
@@ -1595,7 +1596,7 @@ diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chro
        <message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
        <message name="IDS_DO_NOT_TRACK_TITLE" desc="Title for 'Do Not Track' preference">
          “Do Not Track”
          “Do Not Track”
        </message>
        </message>
-@@ -3932,41 +3889,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
+@@ -3914,41 +3871,6 @@ To change this setting, <ph name="BEGIN_LINK">&lt;resetlink&gt;</ph>reset sync<p
          Tabs
          Tabs
        </message>
        </message>
  
  

+ 1 - 1
build/patches/Remove-help-menu-item.patch

@@ -40,7 +40,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
 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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActivity.java
-@@ -2484,16 +2484,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
+@@ -2408,16 +2408,6 @@ public abstract class ChromeActivity<C extends ChromeActivityComponent>
  
  
          final Tab currentTab = getActivityTab();
          final Tab currentTab = getActivityTab();
  
  

+ 1 - 1
build/patches/Remove-offline-measurement-background-task.patch

@@ -18,7 +18,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
  import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory;
  import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
-@@ -446,8 +445,6 @@ public class ProcessInitializationHandler {
+@@ -444,8 +443,6 @@ public class ProcessInitializationHandler {
                  () -> VideoTutorialShareHelper.saveUrlsToSharedPrefs());
                  () -> VideoTutorialShareHelper.saveUrlsToSharedPrefs());
          deferredStartupHandler.addDeferredTask(
          deferredStartupHandler.addDeferredTask(
                  () -> TosDialogBehaviorSharedPrefInvalidator.refreshSharedPreferenceIfTosSkipped());
                  () -> TosDialogBehaviorSharedPrefInvalidator.refreshSharedPreferenceIfTosSkipped());

+ 6 - 20
build/patches/Remove-price-shopping-commerce-integrations.patch

@@ -32,9 +32,8 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
  .../ToolbarButtonInProductHelpController.java |  26 ----
  .../ToolbarButtonInProductHelpController.java |  26 ----
  .../chrome/browser/ui/RootUiCoordinator.java  |  14 --
  .../chrome/browser/ui/RootUiCoordinator.java  |  14 --
  chrome/android/java_sources.gni               |   8 -
  chrome/android/java_sources.gni               |   8 -
- chrome/browser/BUILD.gn                       |   3 -
  chrome/browser/persisted_state_db/BUILD.gn    |   1 -
  chrome/browser/persisted_state_db/BUILD.gn    |   1 -
- 30 files changed, 17 insertions(+), 784 deletions(-)
+ 29 files changed, 17 insertions(+), 781 deletions(-)
 
 
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
@@ -59,7 +58,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/consent_auditor/android:java",
      "//chrome/browser/consent_auditor/android:java",
      "//chrome/browser/contextmenu:java",
      "//chrome/browser/contextmenu:java",
      "//chrome/browser/continuous_search:java",
      "//chrome/browser/continuous_search:java",
-@@ -726,15 +720,6 @@ android_library("chrome_java") {
+@@ -728,15 +722,6 @@ android_library("chrome_java") {
    sources += share_java_sources
    sources += share_java_sources
    deps += share_java_deps
    deps += share_java_deps
  
  
@@ -75,7 +74,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
    if (enable_basic_printing) {
    if (enable_basic_printing) {
      deps += [ "//printing:printing_java" ]
      deps += [ "//printing:printing_java" ]
    }
    }
-@@ -814,8 +799,6 @@ group("jni_headers") {
+@@ -817,8 +802,6 @@ group("jni_headers") {
      "//chrome/browser/android/browserservices/metrics:jni_headers",
      "//chrome/browser/android/browserservices/metrics:jni_headers",
      "//chrome/browser/android/browserservices/verification:jni_headers",
      "//chrome/browser/android/browserservices/verification:jni_headers",
      "//chrome/browser/commerce/merchant_viewer/android:jni_headers",
      "//chrome/browser/commerce/merchant_viewer/android:jni_headers",
@@ -84,7 +83,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/contextmenu:jni_headers",
      "//chrome/browser/contextmenu:jni_headers",
      "//chrome/browser/download/android:jni_headers",
      "//chrome/browser/download/android:jni_headers",
      "//chrome/browser/enterprise/util:jni_headers",
      "//chrome/browser/enterprise/util:jni_headers",
-@@ -967,7 +950,6 @@ junit_binary("chrome_junit_tests") {
+@@ -970,7 +953,6 @@ junit_binary("chrome_junit_tests") {
      "//chrome/browser/browser_controls/android:java",
      "//chrome/browser/browser_controls/android:java",
      "//chrome/browser/browser_controls/android:junit",
      "//chrome/browser/browser_controls/android:junit",
      "//chrome/browser/commerce/merchant_viewer/android:junit",
      "//chrome/browser/commerce/merchant_viewer/android:junit",
@@ -92,7 +91,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//chrome/browser/contextmenu:java",
      "//chrome/browser/contextmenu:java",
      "//chrome/browser/continuous_search:junit",
      "//chrome/browser/continuous_search:junit",
      "//chrome/browser/continuous_search/internal:junit",
      "//chrome/browser/continuous_search/internal:junit",
-@@ -1651,8 +1633,6 @@ android_library("chrome_test_java") {
+@@ -1654,8 +1636,6 @@ android_library("chrome_test_java") {
  
  
    deps += feed_test_deps
    deps += feed_test_deps
  
  
@@ -1288,7 +1287,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/Bookm
      }
      }
  
  
      /**
      /**
-@@ -244,17 +232,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
+@@ -239,17 +227,6 @@ class BookmarkItemsAdapter extends DragReorderableListAdapter<BookmarkListEntry>
                  return createViewHolderHelper(parent, R.layout.bookmark_folder_row);
                  return createViewHolderHelper(parent, R.layout.bookmark_folder_row);
              case ViewType.BOOKMARK:
              case ViewType.BOOKMARK:
                  return createViewHolderHelper(parent, R.layout.bookmark_item_row);
                  return createViewHolderHelper(parent, R.layout.bookmark_item_row);
@@ -1746,19 +1745,6 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
  chrome_test_java_sources += commerce_merchant_viewer_java_test_sources
  chrome_test_java_sources += commerce_merchant_viewer_java_test_sources
  
  
  if (enable_arcore) {
  if (enable_arcore) {
-diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
---- a/chrome/browser/BUILD.gn
-+++ b/chrome/browser/BUILD.gn
-@@ -3246,9 +3246,6 @@ static_library("browser") {
-       "//chrome/browser/commerce/merchant_viewer:merchant_signal_db_content_proto",
-       "//chrome/browser/commerce/merchant_viewer:merchant_viewer_data_manager",
-       "//chrome/browser/commerce/merchant_viewer/android:jni_headers",
--      "//chrome/browser/commerce/subscriptions:commerce_subscription_db",
--      "//chrome/browser/commerce/subscriptions:commerce_subscription_db_content_proto",
--      "//chrome/browser/commerce/subscriptions/android:jni_headers",
-       "//chrome/browser/consent_auditor/android:jni_headers",
-       "//chrome/browser/content_creation/notes/internal/android:jni_headers",
-       "//chrome/browser/content_creation/reactions/internal/android:jni_headers",
 diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persisted_state_db/BUILD.gn
 diff --git a/chrome/browser/persisted_state_db/BUILD.gn b/chrome/browser/persisted_state_db/BUILD.gn
 --- a/chrome/browser/persisted_state_db/BUILD.gn
 --- a/chrome/browser/persisted_state_db/BUILD.gn
 +++ b/chrome/browser/persisted_state_db/BUILD.gn
 +++ b/chrome/browser/persisted_state_db/BUILD.gn

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 202 - 366
build/patches/Remove-signin-and-sync-integrations.patch


+ 10 - 10
build/patches/Remove-voice-recognition-integration.patch

@@ -81,7 +81,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessIni
  import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory;
  import org.chromium.chrome.browser.optimization_guide.OptimizationGuideBridgeFactory;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
-@@ -450,10 +449,6 @@ public class ProcessInitializationHandler {
+@@ -448,10 +447,6 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(
          deferredStartupHandler.addDeferredTask(
                  () -> OfflineMeasurementsBackgroundTask.clearPersistedDataFromPrefs());
                  () -> OfflineMeasurementsBackgroundTask.clearPersistedDataFromPrefs());
          deferredStartupHandler.addDeferredTask(() -> QueryTileUtils.isQueryTilesEnabledOnNTP());
          deferredStartupHandler.addDeferredTask(() -> QueryTileUtils.isQueryTilesEnabledOnNTP());
@@ -139,7 +139,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
  import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
  import org.chromium.chrome.browser.privacy.settings.PrivacyPreferencesManagerImpl;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.profiles.ProfileKey;
  import org.chromium.chrome.browser.profiles.ProfileKey;
-@@ -101,8 +100,7 @@ import java.util.List;
+@@ -102,8 +101,7 @@ import java.util.List;
   */
   */
  public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvider,
  public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvider,
                                     TemplateUrlServiceObserver,
                                     TemplateUrlServiceObserver,
@@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      private static final String TAG = "NewTabPage";
      private static final String TAG = "NewTabPage";
  
  
      // Key for the scroll position data that may be stored in a navigation entry.
      // Key for the scroll position data that may be stored in a navigation entry.
-@@ -132,7 +130,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -133,7 +131,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
      protected boolean mSearchProviderHasLogo;
      protected boolean mSearchProviderHasLogo;
  
  
      protected OmniboxStub mOmniboxStub;
      protected OmniboxStub mOmniboxStub;
@@ -157,7 +157,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
  
  
      // The timestamp at which the constructor was called.
      // The timestamp at which the constructor was called.
      protected final long mConstructedTimeNs;
      protected final long mConstructedTimeNs;
-@@ -208,8 +205,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -209,8 +206,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
  
  
          @Override
          @Override
          public boolean isVoiceSearchEnabled() {
          public boolean isVoiceSearchEnabled() {
@@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
          }
          }
  
  
          @Override
          @Override
-@@ -218,21 +214,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -219,21 +215,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
              if (VrModuleProvider.getDelegate().isInVr()) return;
              if (VrModuleProvider.getDelegate().isInVr()) return;
              FeedReliabilityLogger feedReliabilityLogger =
              FeedReliabilityLogger feedReliabilityLogger =
                      mFeedSurfaceProvider.getReliabilityLogger();
                      mFeedSurfaceProvider.getReliabilityLogger();
@@ -189,7 +189,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
          }
          }
  
  
          @Override
          @Override
-@@ -705,12 +686,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -709,12 +690,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
                  mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger);
                  mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger);
              }
              }
          }
          }
@@ -202,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      }
      }
  
  
      @Override
      @Override
-@@ -721,11 +696,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -725,11 +700,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          }
          }
      }
      }
  
  
@@ -214,7 +214,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. */
      /** Adds an observer to be notified on most visited tile clicks. */
      public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) {
      public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver observer) {
          mMostVisitedTileClickObservers.addObserver(observer);
          mMostVisitedTileClickObservers.addObserver(observer);
-@@ -745,9 +715,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -749,9 +719,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          RecordUserAction.record("MobileNTPShown");
          RecordUserAction.record("MobileNTPShown");
          mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE);
          mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE);
          SuggestionsMetrics.recordSurfaceVisible();
          SuggestionsMetrics.recordSurfaceVisible();
@@ -224,7 +224,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      }
      }
  
  
      /** Records UMA for the NTP being hidden and the time spent on it. */
      /** Records UMA for the NTP being hidden and the time spent on it. */
-@@ -756,7 +723,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -760,7 +727,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          RecordHistogram.recordMediumTimesHistogram("NewTabPage.TimeSpent",
          RecordHistogram.recordMediumTimesHistogram("NewTabPage.TimeSpent",
                  (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND);
                  (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND);
          SuggestionsMetrics.recordSurfaceHidden();
          SuggestionsMetrics.recordSurfaceHidden();
@@ -232,7 +232,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      }
      }
  
  
      /**
      /**
-@@ -855,9 +821,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -859,9 +825,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          }
          }
          mFeedSurfaceProvider.destroy();
          mFeedSurfaceProvider.destroy();
          mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager);
          mTab.getWindowAndroid().removeContextMenuCloseListener(mContextMenuManager);

+ 2 - 2
build/patches/User-agent-customization.patch

@@ -83,7 +83,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
 diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 --- a/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
 +++ b/chrome/android/chrome_java_sources.gni
-@@ -877,6 +877,7 @@ chrome_java_sources = [
+@@ -884,6 +884,7 @@ chrome_java_sources = [
    "java/src/org/chromium/chrome/browser/payments/ui/DimmingDialog.java",
    "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/LineItem.java",
    "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
    "java/src/org/chromium/chrome/browser/payments/ui/PaymentAppComparator.java",
@@ -1090,7 +1090,7 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd
    return content::GetReducedUserAgent(
    return content::GetReducedUserAgent(
        base::CommandLine::ForCurrentProcess()->HasSwitch(
        base::CommandLine::ForCurrentProcess()->HasSwitch(
            switches::kUseMobileUserAgent),
            switches::kUseMobileUserAgent),
-@@ -553,6 +560,10 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service) {
+@@ -563,6 +570,10 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service) {
            policy::policy_prefs::kUserAgentClientHintsGREASEUpdateEnabled);
            policy::policy_prefs::kUserAgentClientHintsGREASEUpdateEnabled);
      ua_options.force_major_to_minor = GetMajorToMinorFromPrefs(pref_service);
      ua_options.force_major_to_minor = GetMajorToMinorFromPrefs(pref_service);
    }
    }

+ 50 - 30
build/patches/Welcome-screen.patch

@@ -7,13 +7,14 @@ Allow toggling automatic updates
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
 ---
 ---
  .../android/java/res/layout/fre_tosanduma.xml |   4 +-
  .../android/java/res/layout/fre_tosanduma.xml |   4 +-
+ .../firstrun/ChildAccountStatusSupplier.java  |  14 +-
  .../browser/firstrun/FirstRunActivity.java    |  40 +----
  .../browser/firstrun/FirstRunActivity.java    |  40 +----
- .../firstrun/FirstRunActivityBase.java        |  17 --
+ .../firstrun/FirstRunActivityBase.java        |  11 +-
  .../firstrun/FirstRunFlowSequencer.java       |  57 ++----
  .../firstrun/FirstRunFlowSequencer.java       |  57 ++----
  .../browser/firstrun/FirstRunUtils.java       |  13 +-
  .../browser/firstrun/FirstRunUtils.java       |  13 +-
  .../firstrun/ToSAndUMAFirstRunFragment.java   | 163 +++++-------------
  .../firstrun/ToSAndUMAFirstRunFragment.java   | 163 +++++-------------
  .../strings/android_chrome_strings.grd        |  27 ++-
  .../strings/android_chrome_strings.grd        |  27 ++-
- 7 files changed, 87 insertions(+), 234 deletions(-)
+ 8 files changed, 89 insertions(+), 240 deletions(-)
 
 
 diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
 diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/java/res/layout/fre_tosanduma.xml
 --- a/chrome/android/java/res/layout/fre_tosanduma.xml
 --- a/chrome/android/java/res/layout/fre_tosanduma.xml
@@ -32,6 +33,38 @@ diff --git a/chrome/android/java/res/layout/fre_tosanduma.xml b/chrome/android/j
                          android:paddingStart="@dimen/fre_tos_checkbox_padding"
                          android:paddingStart="@dimen/fre_tos_checkbox_padding"
                          android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
                          android:textAppearance="@style/TextAppearance.TextMedium.Primary" />
                  </LinearLayout>
                  </LinearLayout>
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
+--- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/ChildAccountStatusSupplier.java
+@@ -12,8 +12,6 @@ import org.chromium.base.Callback;
+ import org.chromium.base.metrics.RecordHistogram;
+ import org.chromium.base.supplier.OneshotSupplier;
+ import org.chromium.base.supplier.OneshotSupplierImpl;
+-import org.chromium.components.signin.AccountManagerFacade;
+-import org.chromium.components.signin.AccountUtils;
+ 
+ /**
+  * Fetches the child account status to be used by other FRE components.
+@@ -40,18 +38,8 @@ public class ChildAccountStatusSupplier implements OneshotSupplier<Boolean> {
+      *         {@link ChildAccountStatusSupplier} will ignore app restrictions and rely solely on
+      *         {@link AccountManagerFacade}.
+      */
+-    public ChildAccountStatusSupplier(AccountManagerFacade accountManagerFacade,
+-            @Nullable FirstRunAppRestrictionInfo appRestrictionInfo) {
++    public ChildAccountStatusSupplier() {
+         mChildAccountStatusStartTime = SystemClock.elapsedRealtime();
+-
+-        if (appRestrictionInfo != null) {
+-            appRestrictionInfo.getHasAppRestriction(this::onAppRestrictionDetected);
+-        }
+-
+-        accountManagerFacade.getAccounts().then(accounts -> {
+-            AccountUtils.checkChildAccountStatus(accountManagerFacade, accounts,
+-                    (isChild, account) -> onChildAccountStatusReady(isChild));
+-        });
+     }
+ 
+     @Override
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivity.java
@@ -134,16 +167,16 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
-@@ -58,8 +58,6 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
-     private final long mStartTime;
-     private long mNativeInitializedTime;
+@@ -24,8 +24,6 @@ import org.chromium.chrome.browser.metrics.UmaUtils;
+ import org.chromium.chrome.browser.policy.PolicyServiceFactory;
+ import org.chromium.chrome.browser.profiles.ProfileManagerUtils;
+ import org.chromium.components.policy.PolicyService;
+-import org.chromium.components.signin.AccountManagerFacade;
+-import org.chromium.components.signin.AccountManagerFacadeProvider;
  
  
--    private ChildAccountStatusSupplier mChildAccountStatusSupplier;
--
-     public FirstRunActivityBase() {
-         mFirstRunAppRestrictionInfo = FirstRunAppRestrictionInfo.takeMaybeInitialized();
-         mPolicyServiceSupplier = new OneshotSupplierImpl<>();
-@@ -83,14 +81,6 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
+ /** Base class for First Run Experience. */
+ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
+@@ -83,14 +81,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
      @Override
      @Override
      @CallSuper
      @CallSuper
      public void triggerLayoutInflation() {
      public void triggerLayoutInflation() {
@@ -155,23 +188,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
 -            mChildAccountStatusSupplier =
 -            mChildAccountStatusSupplier =
 -                    new ChildAccountStatusSupplier(accountManagerFacade, null);
 -                    new ChildAccountStatusSupplier(accountManagerFacade, null);
 -        }
 -        }
++        mChildAccountStatusSupplier = new ChildAccountStatusSupplier();
      }
      }
  
  
      // Activity:
      // Activity:
-@@ -196,13 +186,6 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
-         return mPolicyLoadListener;
-     }
- 
--    /**
--     * Returns the supplier that supplies child account status.
--     */
--    public OneshotSupplier<Boolean> getChildAccountStatusSupplier() {
--        return mChildAccountStatusSupplier;
--    }
--
-     /**
-      * If the first run activity was triggered by a custom tab, notify app associated with
-      * custom tab whether first run was completed.
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunFlowSequencer.java
@@ -230,7 +250,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
          }
          }
  
  
          /** @return true if first use hints should be skipped. */
          /** @return true if first use hints should be skipped. */
-@@ -146,12 +117,8 @@ public abstract class FirstRunFlowSequencer  {
+@@ -148,12 +119,8 @@ public abstract class FirstRunFlowSequencer  {
       *                                  method.
       *                                  method.
       */
       */
      void start() {
      void start() {
@@ -245,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
      }
      }
  
  
      @VisibleForTesting
      @VisibleForTesting
-@@ -177,7 +144,6 @@ public abstract class FirstRunFlowSequencer  {
+@@ -185,7 +152,6 @@ public abstract class FirstRunFlowSequencer  {
          mIsFlowKnown = true;
          mIsFlowKnown = true;
  
  
          Bundle freProperties = new Bundle();
          Bundle freProperties = new Bundle();
@@ -253,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
  
  
          onFlowIsKnown(freProperties);
          onFlowIsKnown(freProperties);
      }
      }
-@@ -188,8 +154,8 @@ public abstract class FirstRunFlowSequencer  {
+@@ -196,8 +162,8 @@ public abstract class FirstRunFlowSequencer  {
       * @param freProperties Resulting FRE properties bundle.
       * @param freProperties Resulting FRE properties bundle.
       */
       */
      public void updateFirstRunProperties(Bundle freProperties) {
      public void updateFirstRunProperties(Bundle freProperties) {
@@ -264,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
          freProperties.putBoolean(
          freProperties.putBoolean(
                  FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
                  FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
      }
      }
-@@ -248,6 +214,7 @@ public abstract class FirstRunFlowSequencer  {
+@@ -256,6 +222,7 @@ public abstract class FirstRunFlowSequencer  {
                          || FirstRunStatus.getLightweightFirstRunFlowComplete())) {
                          || FirstRunStatus.getLightweightFirstRunFlowComplete())) {
              return false;
              return false;
          }
          }
@@ -272,7 +292,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
          return true;
          return true;
      }
      }
  
  
-@@ -295,15 +262,21 @@ public abstract class FirstRunFlowSequencer  {
+@@ -303,15 +270,21 @@ public abstract class FirstRunFlowSequencer  {
                  freIntent =
                  freIntent =
                          VrModuleProvider.getIntentDelegate().setupVrFreIntent(caller, freIntent);
                          VrModuleProvider.getIntentDelegate().setupVrFreIntent(caller, freIntent);
                  // We cannot access Chrome right now, e.g. because the VR module is not installed.
                  // We cannot access Chrome right now, e.g. because the VR module is not installed.

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است