瀏覽代碼

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
 Disable-safe-browsing.patch
 Disable-all-promo-dialogs.patch
+Remove-signin-and-sync-integrations.patch
 Disable-update-scheduler.patch
 Add-English-only-search-engine.patch
 Add-DuckDuckGo-Lite-search-engine.patch
@@ -68,7 +69,6 @@ autofill-miscellaneous.patch
 Enable-native-Android-autofill.patch
 first_run-deactivate-autoupdate-globally.patch
 translate-disable-fetching-of-languages-from-server.patch
-Remove-signin-and-sync-integrations.patch
 kill-Vision.patch
 kill-Location-fall-back-to-system.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
 --- 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
-@@ -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_PRIVACY_SANDBOX = "privacy_sandbox";
 +    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/org/chromium/chrome/browser/ActivityTabProvider.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/PrivacyPreferencesManagerImpl.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.TabOpenType;
  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();
  
          // 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.ModuleFactoryOverrides;
  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(
                      "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.download.home.DownloadPage;
  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) {
          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
 --- a/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,
              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
 --- a/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.signin.SyncConsentActivityLauncherImpl;
  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.SnackbarManager;
  import org.chromium.chrome.browser.ui.messages.snackbar.SnackbarManager.SnackbarManageable;
  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) {
              ((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
 --- 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
-@@ -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.modaldialog.ModalDialogManager;
  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.
-@@ -501,7 +503,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
+@@ -499,7 +501,7 @@ public class TabbedRootUiCoordinator extends RootUiCoordinator {
                      mAppMenuCoordinator == null ? null : mAppMenuCoordinator.getAppMenuHandler();
              mEmptyBackgroundViewWrapper =
                      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
 --- a/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.">
          Clears history from all synced devices.
        </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.browser_controls.BrowserControlsStateProvider;
  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}.
   */
  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 Supplier<ShareDelegate> mShareDelegateSupplier;
      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;
  
@@ -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.bookmarks.BookmarkPage;
  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.
   */
  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 BrowserControlsManager mBrowserControlsManager;
      private final Supplier<Tab> mCurrentTabSupplier;
-@@ -71,7 +72,7 @@ public class NativePageFactory {
+@@ -73,7 +74,7 @@ public class NativePageFactory {
  
      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 BrowserControlsManager browserControlsManager,
              @NonNull Supplier<Tab> currentTabSupplier,
-@@ -119,7 +120,7 @@ public class NativePageFactory {
+@@ -124,7 +125,7 @@ public class NativePageFactory {
  
      @VisibleForTesting
      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 Supplier<NewTabPageUma> mUma;
          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 CrowButtonDelegate mCrowButtonDelegate;
  
 -        public NativePageBuilder(Activity activity, Supplier<NewTabPageUma> uma,
 +        public NativePageBuilder(ChromeActivity activity, Supplier<NewTabPageUma> uma,
                  BottomSheetController sheetController,
                  BrowserControlsManager browserControlsManager, Supplier<Tab> currentTabSupplier,
                  Supplier<SnackbarManager> snackbarManagerSupplier,
-@@ -169,7 +170,7 @@ public class NativePageFactory {
+@@ -177,7 +178,7 @@ public class NativePageFactory {
          protected NativePage buildBookmarksPage(Tab tab) {
              return new BookmarkPage(mActivity.getComponentName(), mSnackbarManagerSupplier.get(),
                      mTabModelSelector.isIncognitoSelected(),
@@ -717,7 +717,7 @@ diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
    configs += [
      "//build/config/compiler:wexit_time_destructors",
      "//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_impl.cc",
        "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.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",
        "banners/app_banner_manager_desktop.cc",
        "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
 --- 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
-@@ -85,6 +85,9 @@ public class PrivacySettings
+@@ -81,6 +81,9 @@ public class PrivacySettings
      private ViewGroup mDialogContainer;
      private BottomSheetController mBottomSheetController;
  
@@ -135,8 +135,8 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
          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";
@@ -145,7 +145,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          String key = preference.getKey();
-@@ -195,6 +201,14 @@ public class PrivacySettings
+@@ -164,6 +170,14 @@ public class PrivacySettings
          } else if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .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;
      }
-@@ -217,6 +231,16 @@ public class PrivacySettings
+@@ -186,6 +200,16 @@ public class PrivacySettings
              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
 --- a/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.">
           Show original
        </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
 --- a/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.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
   * 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) {
              getCurrentTabModel().closeTab(currentTab, true, false, true);
              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.ChromeApplicationImpl;
  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;
          }
  
@@ -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
 --- a/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]">
          Dark theme
        </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
 --- a/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();
  #endif
    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.LayoutManagerChrome;
  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(),
                      () -> getTabModelSelector().closeAllTabs(), /*isIncognito=*/false);
              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) {
              // Close only incognito tabs
              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);
      }
  

+ 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
 --- a/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);
              }
              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.Log;
  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 =
                      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.browser.feedback.HelpAndFeedbackLauncherImpl;
  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_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 IncognitoLockSettings mIncognitoLockSettings;
      private ViewGroup mDialogContainer;
-@@ -159,7 +164,11 @@ public class PrivacySettings
+@@ -128,7 +133,11 @@ public class PrivacySettings
      @Override
      public boolean onPreferenceChange(Preference preference, Object newValue) {
          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())
                      .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
          } 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()));
          }
  
@@ -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
 --- a/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.">
          IMAGE
        </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
 --- a/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.settings.FragmentSettingsLauncher;
  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.widget.displaystyle.UiConfig;
  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();
              return true;
          } 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_opener_policy_reporter.cc   | 16 +++++++---------
  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 ++
  ...content_switch_dependent_feature_overrides.cc |  1 +
  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 +++---
  .../renderer/core/frame/reporting_context.cc     |  9 +++++++++
  .../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
 --- 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
 --- a/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)
-   // 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(
        /*type=*/"crash", /*group=*/"default", last_committed_url_,
        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 +-
  ...roid_chrome_autofill_assistant_strings.grd |    2 +-
  .../autofill_assistant_onboarding_fetcher.cc  |    2 +-
+ .../browser/headless/client_headless.cc       |    2 +-
  .../browser/service/server_url_fetcher.cc     |    2 +-
  .../safe_browsing_triggered_popup_blocker.h   |    4 +-
  .../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 +-
  ...weblayer_security_blocking_page_factory.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
 --- a/PRESUBMIT.py
@@ -12888,6 +12889,18 @@ diff --git a/components/autofill_assistant/browser/autofill_assistant_onboarding
  
  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
 --- a/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
 --- a/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 =
        "Subresource requests whose URLs contain embedded credentials (e.g. "
        "`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.";
    parent->AddMessageToConsole(blink::mojom::ConsoleMessageLevel::kWarning,
                                console_message);
-@@ -5533,7 +5533,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck(
+@@ -5539,7 +5539,7 @@ void NavigationRequest::RecordDownloadUseCountersPrePolicyCheck(
          base::StringPrintf(
              "Navigating a cross-origin opener to a download (%s) is "
              "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
 --- a/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": {
      "enable_ats": true,
      "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
 --- a/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
      # 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
 --- a/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/PermissionUpdateRequester.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
 --- a/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/UpdateMenuItemHelper.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
 ---
  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/app/ChromeActivity.java    | 28 -------------------
  .../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 +-
  chrome/browser/ui/android/omnibox/BUILD.gn    |  2 --
  .../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
 --- 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_resources",
      "//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: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/image_descriptions: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/flags: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.init.ChromeStartupDelegate;
  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
 --- a/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
 --- a/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
 --- 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
-@@ -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_SYNC_AND_SERVICES_LINK = "sync_and_services_link";
      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_PROXY_OPTIONS = "proxy";
      private static final String PREF_PRIVACY_REVIEW = "privacy_review";
      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);
          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);
          if (!ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_REVIEW)) {
              getPreferenceScreen().removePreference(privacyReviewPreference);
-@@ -264,12 +248,6 @@ public class PrivacySettings
+@@ -233,12 +217,6 @@ public class PrivacySettings
              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
 --- a/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
  
    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.h",
        "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_crx_util.cc",
        "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.h",
        "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_proto",
      "//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/services/screen_ai/buildflags/buildflags.h"
  #include "device/vr/buildflags/buildflags.h"
-@@ -193,9 +191,6 @@ void RegisterComponentsForUpdate() {
+@@ -192,9 +190,6 @@ void RegisterComponentsForUpdate() {
  
    MaybeRegisterPKIMetadataComponent(cus);
  
@@ -791,7 +791,7 @@ diff --git a/chrome/browser/component_updater/registration.cc b/chrome/browser/c
  #if BUILDFLAG(IS_CHROMEOS_ASH)
    RegisterSmartDimComponent(cus);
    RegisterAppProvisioningComponent(cus);
-@@ -218,8 +213,6 @@ void RegisterComponentsForUpdate() {
+@@ -216,8 +211,6 @@ void RegisterComponentsForUpdate() {
  
    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) {}
  
  }  // 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;
  }
  
@@ -1082,7 +1082,7 @@ diff --git a/chrome/browser/download/download_item_model.cc b/chrome/browser/dow
  DownloadFileType::DangerLevel DownloadItemModel::GetDangerLevel() const {
    const DownloadItemModelData* data = DownloadItemModelData::Get(download_);
    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_);
    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
  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
        // exclude extensions.
        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/chrome_java_sources.gni                    | 1 -
  .../browser/app/omnibox/OmniboxPedalDelegateImpl.java     | 8 --------
- .../chrome/browser/settings/SettingsActivity.java         | 6 ------
+ .../chrome/browser/settings/SettingsActivity.java         | 2 --
  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
 --- 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/segmentation_platform:factory_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:preferences_junit_tests",
      "//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/share: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/safe_browsing/android:java",
      "//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
 --- a/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/SafeBrowsingReferringAppBridge.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
 --- a/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.profiles.Profile;
  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.SafetyCheckUpdatesDelegateImpl;
  import org.chromium.chrome.browser.search_engines.settings.SearchEngineSettings;
  import org.chromium.chrome.browser.site_settings.ChromeSiteSettingsDelegate;
  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
 --- a/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/reading_list/android",
        "//chrome/browser/safe_browsing/android:safe_browsing_enums",
 -      "//chrome/browser/safety_check/android",
        "//chrome/browser/share/android:jni_headers",
        "//chrome/browser/share/core/crow:crow_configuration",
-       "//chrome/browser/tab:jni_headers",
+       "//chrome/browser/signin/services/android:jni_headers",
 --
 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
 --- a/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(
      const std::vector<std::string>& trials) {
    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
 --- a/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")) {
          // The user has "Enabled" selected.
          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")) {
          // The user has "Disabled" selected.
          local_state_->SetString(prefs::kDnsOverHttpsMode,
-@@ -338,22 +338,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
+@@ -341,22 +341,7 @@ SecureDnsConfig StubResolverConfigReader::GetAndUpdateConfiguration(
      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 +-
  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 ++++
  chrome/browser/BUILD.gn                       |  8 ++
  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.h        | 10 +--
  .../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 +-
  .../browser/content_autofill_driver_factory.h |  1 +
  .../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 +
  .../embedder_support/view/ContentView.java    | 46 +++++++++++
  .../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
 --- 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
 --- a/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_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
 --- 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
-@@ -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.util.Locale;
  
@@ -80,13 +80,12 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
   */
  public class PasswordSettings extends PreferenceFragmentCompat
          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,
              TrustedVaultBannerState.OPTED_IN})
      @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 =
              "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_EXCEPTIONS = "exceptions";
      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 Preference mLinkPref;
      private ChromeSwitchPreference mSavePasswordsSwitch;
@@ -108,7 +107,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private ChromeSwitchPreference mAutoSignInSwitch;
      private ChromeBasePreference mCheckPasswords;
      private ChromeBasePreference mTrustedVaultBanner;
-@@ -299,6 +313,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -293,6 +306,7 @@ public class PasswordSettings extends PreferenceFragmentCompat
          }
  
          createSavePasswordsSwitch();
@@ -116,7 +115,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
          createAutoSignInCheckbox();
          if (mPasswordCheck != null) {
              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));
      }
  
@@ -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
 --- a/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/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
 --- a/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]">
          Save passwords
        </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
 --- a/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/SharedClipboardMetrics.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.tasks.tab_management.PriceTrackingUtilities;
  import org.chromium.chrome.browser.ui.searchactivityutils.SearchActivityPreferencesManager;
-@@ -427,6 +428,8 @@ public class ProcessInitializationHandler {
+@@ -425,6 +426,8 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(
                  () -> 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) {
-@@ -553,6 +557,7 @@ android_library("chrome_java") {
+@@ -554,6 +558,7 @@ android_library("chrome_java") {
      "//components/ukm/android:java",
      "//components/url_formatter/android:url_formatter_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
 --- a/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.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
   * 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();
  
@@ -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
 --- a/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" ]
      }
@@ -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
 --- a/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"
  #endif
  
@@ -444,7 +444,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
  namespace chrome {
  
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
-@@ -557,6 +559,7 @@ void ChromeBrowserMainExtraPartsProfiles::
+@@ -574,6 +576,7 @@ void ChromeBrowserMainExtraPartsProfiles::
  #endif
    WebDataServiceFactory::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
 --- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
-@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.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.settings.ChromeSwitchPreference;
 +import org.chromium.components.browser_ui.settings.SpinnerPreference;
  import org.chromium.components.browser_ui.settings.ManagedPreferenceDelegate;
  import org.chromium.components.browser_ui.settings.SettingsLauncher;
  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.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.
   */
-@@ -87,6 +91,8 @@ public class PrivacySettings
+@@ -83,6 +87,8 @@ public class PrivacySettings
      private ChromeSwitchPreference allowCustomTabIntentsPref;
      private ChromeSwitchPreference openExternalLinksPref;
  
@@ -76,9 +76,9 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      @Override
      public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
          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
 +        List<TimeFrequencySpinnerOption> options = new ArrayList<>();
@@ -117,7 +117,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          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
 --- a/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">
          Browsing history
        </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
 --- a/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.WindowAndroid;
  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;
  
-@@ -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.
          final int topControlsDistanceToRest = mBrowserControlsStateProvider.getContentOffset()
                  - 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) {
              layoutParams.topMargin = topMargin;
-@@ -555,7 +562,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -559,7 +566,7 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
       *         strip.
       */
      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
 --- 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
-@@ -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.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.
   */
-@@ -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";
  
@@ -67,7 +67,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
      private ManagedPreferenceDelegate mManagedPreferenceDelegate;
      private IncognitoLockSettings mIncognitoLockSettings;
      private ViewGroup mDialogContainer;
-@@ -116,6 +132,16 @@ public class PrivacySettings
+@@ -112,6 +128,16 @@ public class PrivacySettings
  
          mManagedPreferenceDelegate = createManagedPreferenceDelegate();
  
@@ -84,7 +84,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting
          ChromeSwitchPreference canMakePaymentPref =
                  (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
          canMakePaymentPref.setOnPreferenceChangeListener(this);
-@@ -175,6 +201,9 @@ public class PrivacySettings
+@@ -144,6 +170,9 @@ public class PrivacySettings
          } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
              UserPrefs.get(Profile.getLastUsedRegularProfile())
                      .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;
      }
-@@ -189,7 +218,7 @@ public class PrivacySettings
+@@ -158,7 +187,7 @@ public class PrivacySettings
       * Updates the preferences.
       */
      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
 --- a/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
        </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
 --- a/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/serial:switches",
      "//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
 --- a/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>
  ChromeAutocompleteProviderClient::GetBuiltinsToProvideAsUserTypes() {
    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 -
  .../PasswordManagerAndroidBackendUtil.java    |  31 +-
  .../PasswordSettingsUpdaterBridge.java        |  11 -
- ...PasswordStoreAndroidBackendBridgeImpl.java |   5 -
  ...swordSyncControllerDelegateBridgeImpl.java |   7 -
  .../push_messaging_service_factory.cc         |   8 +-
  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 +-----------------
  .../preconditions/javatests/BUILD.gn          |   1 -
  .../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
 --- 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",
      "//chrome/android/features/keyboard_accessory:public_java",
      "//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/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_guava_listenablefuture_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_public_android_manifest",
      ":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_junit_test_support",
      "//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_jni",
      ":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/test:test_support_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 = [
      ":chrome_java",
@@ -205,7 +204,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
      "//base:base_java",
      "//base:base_java_test_support",
      "//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.
  android_library("base_module_java") {
    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/DeferredStartupHandler.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/SplitCompatContentProvider.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/SplitCompatJobService.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/prerender/ChromePrerenderService.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:jni_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/minidump_uploader:minidump_uploader_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_collection_collection_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.
      # TODO(crbug.com/1126301): Consider moving these to the chrome module to
      # 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/ChromeBackupWatcher.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/SearchType.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.annotations.CalledByNative;
  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()}.
       */
      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
 --- 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
-@@ -140,7 +140,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -139,7 +139,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
      private boolean mSearchRecorded;
      private Menu mMenu;
  
@@ -890,7 +889,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
      private @ManagePasswordsReferrer int mManagePasswordsReferrer;
  
      /**
-@@ -203,7 +202,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -202,7 +201,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
@@ -898,7 +897,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
          computeTrustedVaultBannerState();
      }
  
-@@ -309,9 +307,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -308,9 +306,6 @@ public class PasswordSettings extends PreferenceFragmentCompat
          createSavePasswordsSwitch();
          createEnableAndroidAutofillSwitch();
          createAutoSignInCheckbox();
@@ -908,7 +907,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/password_manage
  
          if (mTrustedVaultBannerState == TrustedVaultBannerState.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.
          if (getActivity().isFinishing()) {
              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
 --- a/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_user_data.cc",
        "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
 --- a/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",
      ":java_resources",
      ":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:jni_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",
      ":public_impl_java",
      ":settings_interface_java",
@@ -1194,28 +1193,6 @@ diff --git a/chrome/browser/password_manager/android/java/src/org/chromium/chrom
          PasswordSettingsUpdaterBridgeJni.get().onFailedSettingChange(
                  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
 --- 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

+ 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
 --- a/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_settings/android:content_settings_enums_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/dom_distiller/content/browser/android:dom_distiller_content_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",
      ":resource_id_javagen",
      ":vr_build_config",
 -    "//chrome:assist_ranker_prediction_enum_javagen",
      "//chrome:instant_apps_reasons_enum_javagen",
      "//chrome:offline_pages_enum_javagen",
+     "//chrome:partner_bookmarks_javagen",
 -    "//chrome:quick_action_category_enum_javagen",
      "//chrome:supervised_user_url_filter_enum_javagen",
      "//chrome/browser:screenshot_mode_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/bottombar/OverlayPanelContent.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
 --- a/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:fragment="org.chromium.chrome.browser.autofill_assistant.AutofillAssistantPreferenceFragment"
          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
 --- a/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() {
          return new TabbedRootUiCoordinator(this, this::onOmniboxFocusChanged,
                  getShareDelegateSupplier(), getActivityTabProvider(), mTabModelProfileSupplier,
@@ -855,7 +856,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedAct
                  getTabModelSelectorSupplier(), mStartSurfaceSupplier,
                  mIntentMetadataOneshotSupplier, mLayoutStateProviderSupplier,
                  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.
          mTabModalHandler = new TabModalLifetimeHandler(this, getLifecycleDispatcher(), manager,
                  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.AlwaysIncognitoLinkInterceptor;
  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>
          extends AsyncInitializationActivity
@@ -886,7 +887,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
                     SnackbarManageable, SceneChangeObserver,
                     StatusBarColorController.StatusBarColorProvider, AppMenuDelegate, AppMenuBlocker,
                     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<>();
      protected final UnownedUserDataSupplier<InsetObserverView> mInsetObserverViewSupplier =
              new InsetObserverViewSupplier();
@@ -895,7 +896,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
  
      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
          return new RootUiCoordinator(this, null, getShareDelegateSupplier(),
                  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<>(),
                  () -> 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(
                  getWindowAndroid(), getTabContentManager());
  
@@ -919,7 +920,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
          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")
      @Override
      protected final void onDestroy() {
@@ -931,7 +932,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/ChromeActiv
          if (mSnackbarManager != null) {
              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();
      }
  
@@ -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.
       * @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);
@@ -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;
      }
  
@@ -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
 --- a/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);
      }
  
@@ -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
 --- 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
-@@ -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.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.components.browser_ui.settings.ChromeSwitchPreference;
  
-@@ -76,9 +75,7 @@ public class PrivacySettings
+@@ -72,9 +71,7 @@ public class PrivacySettings
      // moved from SyncAndServicesSettings.java
      private static final String PREF_SERVICES_CATEGORY = "services_category";
      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 =
              SharedPreferencesManager.getInstance();
      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.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.HeightObserver;
  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 ObservableSupplier<Profile> profileSupplier,
              @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 OneshotSupplier<StartSurface> startSurfaceSupplier,
              @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,
              boolean initializeUiWithIncognitoColors) {
          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
 --- a/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/common",
      "//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/common/public/mojom",
      "//components/cookie_config",
-@@ -2666,8 +2663,6 @@ static_library("browser") {
+@@ -2665,8 +2662,6 @@ static_library("browser") {
        "android/compositor/decoration_title.h",
        "android/compositor/layer/content_layer.cc",
        "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/overlay_panel_layer.cc",
        "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/toolbar_resource.cc",
        "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.h",
        "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/context_menu/context_menu_native_delegate_impl.cc",
        "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/customtabs/client_data_header_web_contents_observer.cc",
        "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_settings_launcher_android.cc",
        "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
 --- a/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]">
          Privacy and security
        </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">
          “Do Not Track”
        </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
        </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
 --- a/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();
  

+ 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.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
-@@ -446,8 +445,6 @@ public class ProcessInitializationHandler {
+@@ -444,8 +443,6 @@ public class ProcessInitializationHandler {
                  () -> VideoTutorialShareHelper.saveUrlsToSharedPrefs());
          deferredStartupHandler.addDeferredTask(
                  () -> 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 ----
  .../chrome/browser/ui/RootUiCoordinator.java  |  14 --
  chrome/android/java_sources.gni               |   8 -
- chrome/browser/BUILD.gn                       |   3 -
  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
 --- 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/contextmenu: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
    deps += share_java_deps
  
@@ -75,7 +74,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
    if (enable_basic_printing) {
      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/verification: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/download/android: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: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/continuous_search: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
  
@@ -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);
              case ViewType.BOOKMARK:
                  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
  
  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
 --- a/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.partnercustomizations.PartnerBrowserCustomizations;
  import org.chromium.chrome.browser.photo_picker.DecoderService;
-@@ -450,10 +449,6 @@ public class ProcessInitializationHandler {
+@@ -448,10 +447,6 @@ public class ProcessInitializationHandler {
          deferredStartupHandler.addDeferredTask(
                  () -> OfflineMeasurementsBackgroundTask.clearPersistedDataFromPrefs());
          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.profiles.Profile;
  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,
                                     TemplateUrlServiceObserver,
@@ -149,7 +149,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      private static final String TAG = "NewTabPage";
  
      // 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 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.
      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
          public boolean isVoiceSearchEnabled() {
@@ -167,7 +167,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
          }
  
          @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;
              FeedReliabilityLogger feedReliabilityLogger =
                      mFeedSurfaceProvider.getReliabilityLogger();
@@ -189,7 +189,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
          }
  
          @Override
-@@ -705,12 +686,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -709,12 +690,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
                  mOmniboxStub.addUrlFocusChangeListener(feedReliabilityLogger);
              }
          }
@@ -202,7 +202,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.
      }
  
      @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. */
      public void addMostVisitedTileClickObserver(MostVisitedTileClickObserver 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");
          mJankTracker.startTrackingScenario(JankScenario.NEW_TAB_PAGE);
          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. */
-@@ -756,7 +723,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
+@@ -760,7 +727,6 @@ public class NewTabPage implements NativePage, InvalidationAwareThumbnailProvide
          RecordHistogram.recordMediumTimesHistogram("NewTabPage.TimeSpent",
                  (System.nanoTime() - mLastShownTimeNs) / TimeUtils.NANOSECONDS_PER_MILLISECOND);
          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();
          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
 --- a/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/LineItem.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(
        base::CommandLine::ForCurrentProcess()->HasSwitch(
            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);
      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
 ---
  .../android/java/res/layout/fre_tosanduma.xml |   4 +-
+ .../firstrun/ChildAccountStatusSupplier.java  |  14 +-
  .../browser/firstrun/FirstRunActivity.java    |  40 +----
- .../firstrun/FirstRunActivityBase.java        |  17 --
+ .../firstrun/FirstRunActivityBase.java        |  11 +-
  .../firstrun/FirstRunFlowSequencer.java       |  57 ++----
  .../browser/firstrun/FirstRunUtils.java       |  13 +-
  .../firstrun/ToSAndUMAFirstRunFragment.java   | 163 +++++-------------
  .../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
 --- 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:textAppearance="@style/TextAppearance.TextMedium.Primary" />
                  </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
 --- a/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
 --- a/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
      @CallSuper
      public void triggerLayoutInflation() {
@@ -155,23 +188,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
 -            mChildAccountStatusSupplier =
 -                    new ChildAccountStatusSupplier(accountManagerFacade, null);
 -        }
++        mChildAccountStatusSupplier = new ChildAccountStatusSupplier();
      }
  
      // 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
 --- a/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. */
-@@ -146,12 +117,8 @@ public abstract class FirstRunFlowSequencer  {
+@@ -148,12 +119,8 @@ public abstract class FirstRunFlowSequencer  {
       *                                  method.
       */
      void start() {
@@ -245,7 +265,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
      }
  
      @VisibleForTesting
-@@ -177,7 +144,6 @@ public abstract class FirstRunFlowSequencer  {
+@@ -185,7 +152,6 @@ public abstract class FirstRunFlowSequencer  {
          mIsFlowKnown = true;
  
          Bundle freProperties = new Bundle();
@@ -253,7 +273,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
  
          onFlowIsKnown(freProperties);
      }
-@@ -188,8 +154,8 @@ public abstract class FirstRunFlowSequencer  {
+@@ -196,8 +162,8 @@ public abstract class FirstRunFlowSequencer  {
       * @param freProperties Resulting FRE properties bundle.
       */
      public void updateFirstRunProperties(Bundle freProperties) {
@@ -264,7 +284,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
          freProperties.putBoolean(
                  FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
      }
-@@ -248,6 +214,7 @@ public abstract class FirstRunFlowSequencer  {
+@@ -256,6 +222,7 @@ public abstract class FirstRunFlowSequencer  {
                          || FirstRunStatus.getLightweightFirstRunFlowComplete())) {
              return false;
          }
@@ -272,7 +292,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstR
          return true;
      }
  
-@@ -295,15 +262,21 @@ public abstract class FirstRunFlowSequencer  {
+@@ -303,15 +270,21 @@ public abstract class FirstRunFlowSequencer  {
                  freIntent =
                          VrModuleProvider.getIntentDelegate().setupVrFreIntent(caller, freIntent);
                  // We cannot access Chrome right now, e.g. because the VR module is not installed.

部分文件因文件數量過多而無法顯示