scripts: build-chromium: Update to 114.0.5735.58

* Patches from https://github.com/GrapheneOS/Vanadium/tree/b21c91bbd95369d2922607a33168491c9103794f/patches

Change-Id: Ief13f0b0287385a2fa4b7824f02675095b62953e
diff --git a/build-chromium/build-chromium.sh b/build-chromium/build-chromium.sh
index 261274a..4127355 100755
--- a/build-chromium/build-chromium.sh
+++ b/build-chromium/build-chromium.sh
@@ -2,8 +2,8 @@
 
 set -e
 
-chromium_version="110.0.5481.61"
-chromium_code="5481061"
+chromium_version="114.0.5735.58"
+chromium_code="573505800"
 clean=0
 gsync=0
 supported_archs=(arm64 x64)
diff --git a/build-chromium/patches/0002-use-64-bit-WebView-processes.patch b/build-chromium/patches/0002-use-64-bit-WebView-processes.patch
index c7c5d9e..716a27a 100644
--- a/build-chromium/patches/0002-use-64-bit-WebView-processes.patch
+++ b/build-chromium/patches/0002-use-64-bit-WebView-processes.patch
@@ -1,21 +1,23 @@
-From af0cb17d5e484c7b9dd89062e2de6a76ec310c10 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 26 Jan 2017 01:30:12 -0500
 Subject: [PATCH] use 64-bit WebView processes
 
 ---
- android_webview/nonembedded/java/AndroidManifest.xml | 1 -
- 1 file changed, 1 deletion(-)
+ android_webview/nonembedded/java/AndroidManifest.xml | 3 ---
+ 1 file changed, 3 deletions(-)
 
 diff --git a/android_webview/nonembedded/java/AndroidManifest.xml b/android_webview/nonembedded/java/AndroidManifest.xml
-index a6ec0a7d6391c..ce806a2233dde 100644
+index 6f4d2015c8685..2640f3f722a96 100644
 --- a/android_webview/nonembedded/java/AndroidManifest.xml
 +++ b/android_webview/nonembedded/java/AndroidManifest.xml
-@@ -37,7 +37,6 @@ by a child template that "extends" this file.
+@@ -40,9 +40,6 @@ by a child template that "extends" this file.
                   android:icon="@{{manifest_package|default('com.android.webview')}}:drawable/icon_webview"
                   android:name="{{ application_name|default('org.chromium.android_webview.nonembedded.WebViewApkApplication') }}"
                   android:multiArch="true"
--                 {{ use32bitAbi|default('android:use32bitAbi="true"') }}
+-                 {% if force_32_bit is defined and force_32_bit == 'true' %}
+-                 android:use32bitAbi="true"
+-                 {% endif %}
                   android:extractNativeLibs="false">
          {# This part is shared between stand-alone WebView and Monochrome #}
          {% macro common(manifest_package, webview_lib) %}
diff --git a/build-chromium/patches/0013-remove-Help-feedback-menu-entry.patch b/build-chromium/patches/0013-remove-Help-feedback-menu-entry.patch
index 7e7df32..f506ae0 100644
--- a/build-chromium/patches/0013-remove-Help-feedback-menu-entry.patch
+++ b/build-chromium/patches/0013-remove-Help-feedback-menu-entry.patch
@@ -1,4 +1,4 @@
-From 2312c16024f3202c7951c8a5d2983010f566192a Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 15 Apr 2021 02:14:37 -0400
 Subject: [PATCH] remove Help & feedback menu entry
@@ -8,15 +8,15 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-index 8719c7a507ca3..b7b867ca4fd1e 100644
+index 60b0dc69ce868..950c70bd9d161 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/app/appmenu/AppMenuPropertiesDelegateImpl.java
-@@ -553,6 +553,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
+@@ -546,6 +546,8 @@ public class AppMenuPropertiesDelegateImpl implements AppMenuPropertiesDelegate
          menu.findItem(R.id.reader_mode_prefs_id)
                  .setVisible(isCurrentTabNotNull && shouldShowReaderModePrefs(currentTab));
  
 +        menu.findItem(R.id.help_id).setVisible(false);
 +
-         // Only display the Enter VR button if VR Shell Dev environment is enabled.
-         menu.findItem(R.id.enter_vr_id).setVisible(isCurrentTabNotNull && shouldShowEnterVr());
+         updateManagedByMenuItem(menu, currentTab);
+     }
  
diff --git a/build-chromium/patches/0014-hide-passwords.google.com-link-when-not-supported.patch b/build-chromium/patches/0014-hide-passwords.google.com-link-when-not-supported.patch
index d4c732d..f57c299 100644
--- a/build-chromium/patches/0014-hide-passwords.google.com-link-when-not-supported.patch
+++ b/build-chromium/patches/0014-hide-passwords.google.com-link-when-not-supported.patch
@@ -1,4 +1,4 @@
-From 18f4aa9cfe152d29b92bdf6489b41b8258187e3d Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Sun, 13 Aug 2017 19:33:04 -0400
 Subject: [PATCH] hide passwords.google.com link when not supported
@@ -8,10 +8,10 @@
  1 file changed, 4 insertions(+)
 
 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
-index 2c7b85cf3f3f6..9d61328d925d8 100644
+index 59418af6c90f6..a95af908191e4 100644
 --- 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
-@@ -39,6 +39,7 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
+@@ -40,6 +40,7 @@ import org.chromium.chrome.browser.password_manager.PasswordManagerHelper;
  import org.chromium.chrome.browser.preferences.Pref;
  import org.chromium.chrome.browser.profiles.Profile;
  import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
@@ -19,11 +19,11 @@
  import org.chromium.chrome.browser.settings.SettingsLauncherImpl;
  import org.chromium.chrome.browser.sync.SyncService;
  import org.chromium.chrome.browser.sync.settings.SyncSettingsUtils;
-@@ -595,6 +596,9 @@ public class PasswordSettings extends PreferenceFragmentCompat
+@@ -597,6 +598,9 @@ public class PasswordSettings extends PreferenceFragmentCompat
          if (mSearchQuery != null && !mNoPasswords) {
              return; // Don't add the Manage Account link if there is a search going on.
          }
-+        if (!IdentityServicesProvider.get().getSigninManager(Profile.getLastUsedRegularProfile()).isSigninSupported()) {
++        if (!IdentityServicesProvider.get().getSigninManager(Profile.getLastUsedRegularProfile()).isSigninSupported(false)) {
 +            return;
 +        }
          if (getPreferenceScreen().findPreference(PREF_KEY_MANAGE_ACCOUNT_LINK) != null) {
diff --git a/build-chromium/patches/0015-disable-first-run-welcome-page.patch b/build-chromium/patches/0015-disable-first-run-welcome-page.patch
index 3e66229..2e23abf 100644
--- a/build-chromium/patches/0015-disable-first-run-welcome-page.patch
+++ b/build-chromium/patches/0015-disable-first-run-welcome-page.patch
@@ -1,4 +1,4 @@
-From ab6d8cab9e387b11c102f874ad0e9800bff11196 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: csagan5 <32685696+csagan5@users.noreply.github.com>
 Date: Sun, 26 Nov 2017 22:51:43 +0100
 Subject: [PATCH] disable first run welcome page
@@ -9,10 +9,10 @@
  2 files changed, 5 insertions(+), 4 deletions(-)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
-index 8e32e791835ad..8c4063623324b 100644
+index 1ed0ad476b512..fb390474ccaf0 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunUtils.java
-@@ -43,15 +43,12 @@ public class FirstRunUtils {
+@@ -44,15 +44,12 @@ public class FirstRunUtils {
          boolean javaPrefValue =
                  javaPrefs.readBoolean(ChromePreferenceKeys.FIRST_RUN_CACHED_TOS_ACCEPTED, false);
          boolean nativePrefValue = isFirstRunEulaAccepted();
diff --git a/build-chromium/patches/0022-disable-metrics-by-default.patch b/build-chromium/patches/0022-disable-metrics-by-default.patch
index 7661158..de1ade0 100644
--- a/build-chromium/patches/0022-disable-metrics-by-default.patch
+++ b/build-chromium/patches/0022-disable-metrics-by-default.patch
@@ -1,4 +1,4 @@
-From 4fa667470fbf7d4519dcd37a6f995443ffc46dc1 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 24 Nov 2016 11:41:00 -0500
 Subject: [PATCH] disable metrics by default
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 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
-index 487be0e02d26e..7d30473f6bca2 100644
+index db91b908462b1..8d8c8302a58d8 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/firstrun/FirstRunActivityBase.java
-@@ -49,7 +49,7 @@ public abstract class FirstRunActivityBase extends AsyncInitializationActivity {
+@@ -55,7 +55,7 @@ public abstract class FirstRunActivityBase
      static final String SHOW_SEARCH_ENGINE_PAGE = "ShowSearchEnginePage";
      static final String SHOW_SYNC_CONSENT_PAGE = "ShowSyncConsent";
  
diff --git a/build-chromium/patches/0024-disable-showing-popular-sites-by-default.patch b/build-chromium/patches/0024-disable-showing-popular-sites-by-default.patch
index 19a33e9..9dea892 100644
--- a/build-chromium/patches/0024-disable-showing-popular-sites-by-default.patch
+++ b/build-chromium/patches/0024-disable-showing-popular-sites-by-default.patch
@@ -1,4 +1,4 @@
-From 0a70c6c84a098d0a65df590f9bda22213af7d782 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Tue, 6 Mar 2018 00:27:41 -0500
 Subject: [PATCH] disable showing popular sites by default
@@ -8,10 +8,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/components/ntp_tiles/features.cc b/components/ntp_tiles/features.cc
-index 8b29a14102ba0..48df4146cd5d0 100644
+index 26049117ac858..87bc57efba5a9 100644
 --- a/components/ntp_tiles/features.cc
 +++ b/components/ntp_tiles/features.cc
-@@ -18,7 +18,7 @@ const char kIOSPopularSitesExcludePopularAppsParam[] =
+@@ -15,7 +15,7 @@ const char kPopularSitesFieldTrialName[] = "NTPPopularSites";
  
  BASE_FEATURE(kPopularSitesBakedInContentFeature,
               "NTPPopularSitesBakedInContent",
@@ -20,12 +20,12 @@
  
  BASE_FEATURE(kNtpMostLikelyFaviconsFromServerFeature,
               "NTPMostLikelyFaviconsFromServer",
-@@ -26,7 +26,7 @@ BASE_FEATURE(kNtpMostLikelyFaviconsFromServerFeature,
+@@ -23,7 +23,7 @@ BASE_FEATURE(kNtpMostLikelyFaviconsFromServerFeature,
  
  BASE_FEATURE(kUsePopularSitesSuggestions,
               "UsePopularSitesSuggestions",
 -             base::FEATURE_ENABLED_BY_DEFAULT);
 +             base::FEATURE_DISABLED_BY_DEFAULT);
  
- BASE_FEATURE(kIOSPopularSitesImprovedSuggestions,
-              "IOSPopularSitesImprovedSuggestions",
+ BASE_FEATURE(kNewTabPageRetention,
+              "IOSNewTabPageRetention",
diff --git a/build-chromium/patches/0025-disable-article-suggestions-feature-by-default.patch b/build-chromium/patches/0025-disable-article-suggestions-feature-by-default.patch
index d453fae..1e1ee71 100644
--- a/build-chromium/patches/0025-disable-article-suggestions-feature-by-default.patch
+++ b/build-chromium/patches/0025-disable-article-suggestions-feature-by-default.patch
@@ -1,12 +1,11 @@
-From ff6cc8f6f97030e03a49e2b3246a158c5b0f2fc3 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 8 Mar 2018 22:43:12 -0500
 Subject: [PATCH] disable article suggestions feature by default
 
 ---
  components/feed/core/shared_prefs/pref_names.cc | 4 ++--
- components/ntp_snippets/features.cc             | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/components/feed/core/shared_prefs/pref_names.cc b/components/feed/core/shared_prefs/pref_names.cc
 index e239b42b31ef3..5a5e881272c22 100644
@@ -23,16 +22,3 @@
    registry->RegisterIntegerPref(kVideoPreviewsType, 1);
  }
  
-diff --git a/components/ntp_snippets/features.cc b/components/ntp_snippets/features.cc
-index 7d146cd35fd4c..7bc431d6bcacb 100644
---- a/components/ntp_snippets/features.cc
-+++ b/components/ntp_snippets/features.cc
-@@ -40,7 +40,7 @@ const base::Feature* const kAllFeatures[] = {
- 
- BASE_FEATURE(kArticleSuggestionsFeature,
-              "NTPArticleSuggestions",
--             base::FEATURE_ENABLED_BY_DEFAULT);
-+             base::FEATURE_DISABLED_BY_DEFAULT);
- 
- BASE_FEATURE(kRemoteSuggestionsEmulateM58FetchingSchedule,
-              "RemoteSuggestionsEmulateM58FetchingSchedule",
diff --git a/build-chromium/patches/0026-disable-content-feed-suggestions-by-default.patch b/build-chromium/patches/0026-disable-content-feed-suggestions-by-default.patch
index 4a40236..5070e69 100644
--- a/build-chromium/patches/0026-disable-content-feed-suggestions-by-default.patch
+++ b/build-chromium/patches/0026-disable-content-feed-suggestions-by-default.patch
@@ -1,4 +1,4 @@
-From e10113e64e72b4526c3eb2c6b1e8572777298bdb Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Sun, 22 Mar 2020 01:23:48 -0400
 Subject: [PATCH] disable content feed suggestions by default
@@ -9,10 +9,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-index 0df2f2ea769c7..b86d470296810 100644
+index 957ccbd940466..73954ddc3e289 100644
 --- a/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
 +++ b/chrome/browser/flags/android/java/src/org/chromium/chrome/browser/flags/ChromeFeatureList.java
-@@ -661,7 +661,7 @@ public abstract class ChromeFeatureList {
+@@ -623,7 +623,7 @@ public abstract class ChromeFeatureList {
              new CachedFlag(INCOGNITO_REAUTHENTICATION_FOR_ANDROID, false);
      public static final CachedFlag sInstanceSwitcher = new CachedFlag(INSTANCE_SWITCHER, true);
      public static final CachedFlag sInstantStart = new CachedFlag(INSTANT_START, false);
@@ -20,9 +20,9 @@
 +    public static final CachedFlag sInterestFeedV2 = new CachedFlag(INTEREST_FEED_V2, false);
      public static final CachedFlag sLensCameraAssistedSearch =
              new CachedFlag(LENS_CAMERA_ASSISTED_SEARCH, true);
-     public static final CachedFlag sNewWindowAppMenu = new CachedFlag(NEW_WINDOW_APP_MENU, true);
+     public static final CachedFlag sOmahaMinSdkVersionAndroid =
 diff --git a/components/feed/feed_feature_list.cc b/components/feed/feed_feature_list.cc
-index 2d91c53f94dac..df7e569c24cf0 100644
+index a8b36a9ace946..93f8bc7a9af6e 100644
 --- a/components/feed/feed_feature_list.cc
 +++ b/components/feed/feed_feature_list.cc
 @@ -24,7 +24,7 @@ BASE_FEATURE(kInterestFeedContentSuggestions,
diff --git a/build-chromium/patches/0031-disable-payment-support-by-default.patch b/build-chromium/patches/0031-disable-payment-support-by-default.patch
index 5678101..d379f50 100644
--- a/build-chromium/patches/0031-disable-payment-support-by-default.patch
+++ b/build-chromium/patches/0031-disable-payment-support-by-default.patch
@@ -1,4 +1,4 @@
-From e33cb62e6f6dd46e9c942198a84391137e9071d2 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Tue, 18 Jun 2019 22:28:53 -0400
 Subject: [PATCH] disable payment support by default
diff --git a/build-chromium/patches/0032-disable-media-router-media-remoting-by-default.patch b/build-chromium/patches/0032-disable-media-router-media-remoting-by-default.patch
index eabd52e..afbdb9c 100644
--- a/build-chromium/patches/0032-disable-media-router-media-remoting-by-default.patch
+++ b/build-chromium/patches/0032-disable-media-router-media-remoting-by-default.patch
@@ -1,4 +1,4 @@
-From 5f059a77358a3a183f608698927cc6261db803ae Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 4 Jul 2019 18:11:27 -0400
 Subject: [PATCH] disable media router media remoting by default
@@ -8,15 +8,15 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
-index 516be25ee310a..38e705e3004ea 100644
+index 559346224f01f..5edf3836908d6 100644
 --- a/chrome/browser/media/router/media_router_feature.cc
 +++ b/chrome/browser/media/router/media_router_feature.cc
-@@ -131,7 +131,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
+@@ -147,7 +147,7 @@ void RegisterProfilePrefs(PrefRegistrySimple* registry) {
    registry->RegisterStringPref(prefs::kMediaRouterReceiverIdHashToken, "",
                                 PrefRegistry::PUBLIC);
    registry->RegisterBooleanPref(
 -      media_router::prefs::kMediaRouterMediaRemotingEnabled, true);
 +      media_router::prefs::kMediaRouterMediaRemotingEnabled, false);
-   registry->RegisterListPref(
-       media_router::prefs::kMediaRouterTabMirroringSources);
    registry->RegisterBooleanPref(
+       media_router::prefs::kMediaRouterShowCastSessionsStartedByOtherDevices,
+       true);
diff --git a/build-chromium/patches/0033-disable-media-router-by-default.patch b/build-chromium/patches/0033-disable-media-router-by-default.patch
index 7bcfdcc..8d1d4d5 100644
--- a/build-chromium/patches/0033-disable-media-router-by-default.patch
+++ b/build-chromium/patches/0033-disable-media-router-by-default.patch
@@ -1,4 +1,4 @@
-From 9a0d437c62db2b7068d61a70359a44e6af48765a Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Thu, 4 Jul 2019 19:08:52 -0400
 Subject: [PATCH] disable media router by default
@@ -9,10 +9,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc
-index 38e705e3004ea..3f9ce1554fc50 100644
+index 5edf3836908d6..bdb5b72179a79 100644
 --- a/chrome/browser/media/router/media_router_feature.cc
 +++ b/chrome/browser/media/router/media_router_feature.cc
-@@ -118,7 +118,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
+@@ -134,7 +134,7 @@ bool MediaRouterEnabled(content::BrowserContext* context) {
      pref_values.insert(std::make_pair(context, allowed));
      return allowed;
    }
@@ -22,10 +22,10 @@
  
  #if !BUILDFLAG(IS_ANDROID)
 diff --git a/chrome/browser/profiles/profile_impl.cc b/chrome/browser/profiles/profile_impl.cc
-index 0e17f238a710c..20d3f78c175a7 100644
+index 57d728da590da..82000864b70f8 100644
 --- a/chrome/browser/profiles/profile_impl.cc
 +++ b/chrome/browser/profiles/profile_impl.cc
-@@ -412,7 +412,7 @@ void ProfileImpl::RegisterProfilePrefs(
+@@ -419,7 +419,7 @@ void ProfileImpl::RegisterProfilePrefs(
  #endif
  
    registry->RegisterBooleanPref(prefs::kForceEphemeralProfiles, false);
diff --git a/build-chromium/patches/0034-disable-offering-translations-by-default.patch b/build-chromium/patches/0034-disable-offering-translations-by-default.patch
index d35d094..b9e5751 100644
--- a/build-chromium/patches/0034-disable-offering-translations-by-default.patch
+++ b/build-chromium/patches/0034-disable-offering-translations-by-default.patch
@@ -1,4 +1,4 @@
-From 707df56cdff5b02f61f9ad4e392a850cace66116 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Fri, 12 Jul 2019 03:58:01 -0400
 Subject: [PATCH] disable offering translations by default
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/chrome/browser/ui/browser_ui_prefs.cc b/chrome/browser/ui/browser_ui_prefs.cc
-index df3225597d7e0..ef3cec3ceab16 100644
+index 16ab8096b4048..05e24c9c3fc21 100644
 --- a/chrome/browser/ui/browser_ui_prefs.cc
 +++ b/chrome/browser/ui/browser_ui_prefs.cc
-@@ -77,7 +77,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
+@@ -75,7 +75,7 @@ void RegisterBrowserUserPrefs(user_prefs::PrefRegistrySyncable* registry) {
    registry->RegisterBooleanPref(prefs::kWebAppCreateInAppsMenu, true);
    registry->RegisterBooleanPref(prefs::kWebAppCreateInQuickLaunchBar, true);
    registry->RegisterBooleanPref(
diff --git a/build-chromium/patches/0035-disable-browser-sign-in-feature-by-default.patch b/build-chromium/patches/0035-disable-browser-sign-in-feature-by-default.patch
index bef3743..48d4e9b 100644
--- a/build-chromium/patches/0035-disable-browser-sign-in-feature-by-default.patch
+++ b/build-chromium/patches/0035-disable-browser-sign-in-feature-by-default.patch
@@ -1,4 +1,4 @@
-From db0bd608ca032ae6681bc3b38abdb86a1282a42e Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Fri, 12 Jul 2019 04:23:18 -0400
 Subject: [PATCH] disable browser sign in feature by default
@@ -9,10 +9,10 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/chrome/browser/signin/account_consistency_mode_manager.cc b/chrome/browser/signin/account_consistency_mode_manager.cc
-index b1c0447353c0d..edd57dcffe4c5 100644
+index a7853cc014069..67acb94246580 100644
 --- a/chrome/browser/signin/account_consistency_mode_manager.cc
 +++ b/chrome/browser/signin/account_consistency_mode_manager.cc
-@@ -112,7 +112,7 @@ AccountConsistencyModeManager::~AccountConsistencyModeManager() {}
+@@ -119,7 +119,7 @@ AccountConsistencyModeManager::~AccountConsistencyModeManager() {}
  // static
  void AccountConsistencyModeManager::RegisterProfilePrefs(
      user_prefs::PrefRegistrySyncable* registry) {
@@ -22,10 +22,10 @@
  
  // static
 diff --git a/components/signin/internal/identity_manager/primary_account_manager.cc b/components/signin/internal/identity_manager/primary_account_manager.cc
-index ec3ea7dcd2c5d..f161a885416f4 100644
+index 1558c2342710e..9581eb7db57f1 100644
 --- a/components/signin/internal/identity_manager/primary_account_manager.cc
 +++ b/components/signin/internal/identity_manager/primary_account_manager.cc
-@@ -88,7 +88,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) {
+@@ -148,7 +148,7 @@ void PrimaryAccountManager::RegisterProfilePrefs(PrefRegistrySimple* registry) {
    registry->RegisterBooleanPref(prefs::kGoogleServicesConsentedToSync, false);
    registry->RegisterBooleanPref(prefs::kAutologinEnabled, true);
    registry->RegisterListPref(prefs::kReverseAutologinRejectedEmailList);
diff --git a/build-chromium/patches/0046-disable-autofill-server-communication-by-default.patch b/build-chromium/patches/0046-disable-autofill-server-communication-by-default.patch
index 06d8c0a..6794d01 100644
--- a/build-chromium/patches/0046-disable-autofill-server-communication-by-default.patch
+++ b/build-chromium/patches/0046-disable-autofill-server-communication-by-default.patch
@@ -1,4 +1,4 @@
-From 9d64864a32451739e848d4adf361392722c9ded3 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Tue, 1 Dec 2020 00:56:57 -0500
 Subject: [PATCH] disable autofill server communication by default
@@ -8,15 +8,15 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/components/autofill/core/common/autofill_features.cc b/components/autofill/core/common/autofill_features.cc
-index af6d86f76eb9a..52e41bf79037a 100644
+index 2eebd38e9f948..2246179592da9 100644
 --- a/components/autofill/core/common/autofill_features.cc
 +++ b/components/autofill/core/common/autofill_features.cc
-@@ -449,7 +449,7 @@ const base::FeatureParam<int> kAutofillServerBehaviorsParam{
+@@ -710,7 +710,7 @@ BASE_FEATURE(kAutofillLogToTerminal,
  // i.e., https://other.autofill.server:port/tbproxy/af/
  BASE_FEATURE(kAutofillServerCommunication,
               "AutofillServerCommunication",
 -             base::FEATURE_ENABLED_BY_DEFAULT);
 +             base::FEATURE_DISABLED_BY_DEFAULT);
  
- // Controls whether Autofill may fill across origins as part of the
- // AutofillAcrossIframes experiment.
+ // Controls attaching the autofill type predictions to their respective
+ // element in the DOM.
diff --git a/build-chromium/patches/0047-disable-component-updater-pings-by-default.patch b/build-chromium/patches/0047-disable-component-updater-pings-by-default.patch
index fdfe662..597092e 100644
--- a/build-chromium/patches/0047-disable-component-updater-pings-by-default.patch
+++ b/build-chromium/patches/0047-disable-component-updater-pings-by-default.patch
@@ -1,4 +1,4 @@
-From 88d38521b311607d25e54472404c93db01950b2d Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Fri, 27 Nov 2020 03:56:29 -0500
 Subject: [PATCH] disable component updater pings by default
diff --git a/build-chromium/patches/0056-Consolidate-java-sources-added-at-android-specific-c.patch b/build-chromium/patches/0056-Consolidate-java-sources-added-at-android-specific-c.patch
new file mode 100644
index 0000000..9d7f184
--- /dev/null
+++ b/build-chromium/patches/0056-Consolidate-java-sources-added-at-android-specific-c.patch
@@ -0,0 +1,44 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Mon, 13 Mar 2023 08:41:43 +0000
+Subject: [PATCH] Consolidate java sources added at android-specific chrome
+ layer
+
+---
+ chrome/android/chrome_ext_java_sources.gni | 6 ++++++
+ chrome/android/java_sources.gni            | 2 ++
+ 2 files changed, 8 insertions(+)
+ create mode 100644 chrome/android/chrome_ext_java_sources.gni
+
+diff --git a/chrome/android/chrome_ext_java_sources.gni b/chrome/android/chrome_ext_java_sources.gni
+new file mode 100644
+index 0000000000000..fe72e9b1d3abb
+--- /dev/null
++++ b/chrome/android/chrome_ext_java_sources.gni
+@@ -0,0 +1,6 @@
++# Copyright 2023 GrapheneOS
++# Use of this source code is governed by a GPLv2 only-style license that can be
++# found in the LICENSE file.
++
++chrome_ext_java_sources = [
++]
+diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
+index a5f30237c3bfa..727142fc4e8f5 100644
+--- a/chrome/android/java_sources.gni
++++ b/chrome/android/java_sources.gni
+@@ -3,6 +3,7 @@
+ # found in the LICENSE file.
+ 
+ import("//build/config/android/config.gni")
++import("//chrome/android/chrome_ext_java_sources.gni")
+ import("//chrome/android/chrome_java_sources.gni")
+ import("//chrome/android/chrome_junit_test_java_sources.gni")
+ import("//chrome/android/chrome_test_java_sources.gni")
+@@ -24,6 +25,7 @@ import("//components/feed/features.gni")
+ import("//components/offline_pages/buildflags/features.gni")
+ import("//device/vr/buildflags/buildflags.gni")
+ 
++chrome_java_sources += chrome_ext_java_sources
+ # Only used for testing, should not be shipped to end users.
+ if (enable_offline_pages_harness) {
+   chrome_java_sources += [ "java/src/org/chromium/chrome/browser/offlinepages/evaluation/OfflinePageEvaluationBridge.java" ]
diff --git a/build-chromium/patches/0057-Consolidate-resources-added-at-android-specific-chro.patch b/build-chromium/patches/0057-Consolidate-resources-added-at-android-specific-chro.patch
new file mode 100644
index 0000000..b38dbe7
--- /dev/null
+++ b/build-chromium/patches/0057-Consolidate-resources-added-at-android-specific-chro.patch
@@ -0,0 +1,39 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Mon, 13 Mar 2023 08:46:00 +0000
+Subject: [PATCH] Consolidate resources added at android-specific chrome layer
+
+---
+ chrome/android/chrome_ext_java_resources.gni | 6 ++++++
+ chrome/android/chrome_java_resources.gni     | 5 ++++-
+ 2 files changed, 10 insertions(+), 1 deletion(-)
+ create mode 100644 chrome/android/chrome_ext_java_resources.gni
+
+diff --git a/chrome/android/chrome_ext_java_resources.gni b/chrome/android/chrome_ext_java_resources.gni
+new file mode 100644
+index 0000000000000..9980a7c5f6d84
+--- /dev/null
++++ b/chrome/android/chrome_ext_java_resources.gni
+@@ -0,0 +1,6 @@
++# Copyright 2023 GrapheneOS
++# Use of this source code is governed by a GPLv2 only-style license that can be
++# found in the LICENSE file.
++
++chrome_ext_java_resources = [
++]
+diff --git a/chrome/android/chrome_java_resources.gni b/chrome/android/chrome_java_resources.gni
+index f245de7d3a597..c2ce0b39d17f2 100644
+--- a/chrome/android/chrome_java_resources.gni
++++ b/chrome/android/chrome_java_resources.gni
+@@ -7,7 +7,10 @@
+ # (for f in $(find java/res/*/ -type f); do echo '  "'$f'",'; done; echo ']') >> chrome_java_resources.gni
+ # git cl format
+ 
+-chrome_java_resources = [
++import ("//chrome/android/chrome_ext_java_resources.gni")
++
++chrome_java_resources = chrome_ext_java_resources
++chrome_java_resources += [
+   "java/res/anim/accelerate_quart.xml",
+   "java/res/anim/activity_close_exit.xml",
+   "java/res/anim/activity_open_enter.xml",
diff --git a/build-chromium/patches/0059-Utility-class-for-adding-shared-preference-keys.patch b/build-chromium/patches/0059-Utility-class-for-adding-shared-preference-keys.patch
new file mode 100644
index 0000000..8673da5
--- /dev/null
+++ b/build-chromium/patches/0059-Utility-class-for-adding-shared-preference-keys.patch
@@ -0,0 +1,199 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Mon, 13 Mar 2023 10:29:53 +0000
+Subject: [PATCH] Utility class for adding shared preference keys
+
+---
+ chrome/browser/preferences/BUILD.gn           |   3 +
+ .../ChromePreferenceKeyChecker.java           |   4 +
+ .../browser/preferences/SharedPrefsUtils.java | 152 ++++++++++++++++++
+ 3 files changed, 159 insertions(+)
+ create mode 100644 chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPrefsUtils.java
+
+diff --git a/chrome/browser/preferences/BUILD.gn b/chrome/browser/preferences/BUILD.gn
+index c3038943a893b..e2a45f2c23b95 100644
+--- a/chrome/browser/preferences/BUILD.gn
++++ b/chrome/browser/preferences/BUILD.gn
+@@ -15,6 +15,9 @@ android_library("java") {
+     "android/java/src/org/chromium/chrome/browser/preferences/PrefChangeRegistrar.java",
+     "android/java/src/org/chromium/chrome/browser/preferences/SharedPreferencesManager.java",
+   ]
++  sources += [
++    "android/java/src/org/chromium/chrome/browser/preferences/SharedPrefsUtils.java",
++  ]
+   deps = [
+     "//base:base_java",
+     "//base:jni_java",
+diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeyChecker.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeyChecker.java
+index 21e3be5ba9f77..915ee8be3def7 100644
+--- a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeyChecker.java
++++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/ChromePreferenceKeyChecker.java
+@@ -75,6 +75,10 @@ class ChromePreferenceKeyChecker extends BaseChromePreferenceKeyChecker {
+      * @return Whether |key| is in use.
+      */
+     private boolean isKeyInUse(String key) {
++        if (SharedPrefsUtils.isKeyInUse(key)) {
++            return true;
++        }
++
+         // For non-dynamic legacy keys, a simple map check is enough.
+         if (mLegacyFormatKeys.contains(key)) {
+             return true;
+diff --git a/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPrefsUtils.java b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPrefsUtils.java
+new file mode 100644
+index 0000000000000..ceec302c0a9d6
+--- /dev/null
++++ b/chrome/browser/preferences/android/java/src/org/chromium/chrome/browser/preferences/SharedPrefsUtils.java
+@@ -0,0 +1,152 @@
++package org.chromium.chrome.browser.preferences;
++
++import org.chromium.build.annotations.CheckDiscard;
++
++import java.util.Arrays;
++
++/**
++ * Wrapper utility class for both (Base)ChromePreferenceKeys and SharedPreferencesManager,
++ * which also serves as storage of added PreferenceKeys.
++ */
++public final class SharedPrefsUtils {
++
++    public static class BoolSharedPref {
++        private final String key;
++        private boolean defValue;
++
++        BoolSharedPref(String key, boolean defValue) {
++            this.key = key;
++            this.defValue = defValue;
++        }
++
++        public String getKey() { return key; }
++
++        public boolean get() {
++            return getSharedPrefManager().readBoolean(key, defValue);
++        }
++
++        public void put(boolean newValue) {
++            getSharedPrefManager().writeBoolean(key, newValue);
++        }
++
++        public boolean putSync(boolean newValue) {
++            return getSharedPrefManager().writeBooleanSync(key, newValue);
++        }
++    }
++
++    public static class IntSharedPref {
++        private final String key;
++        private int defValue;
++        private int[] validValues;
++
++        IntSharedPref(String key, int defValue) {
++            this.key = key;
++            this.defValue = defValue;
++        }
++
++        IntSharedPref(String key, int defValue, int[] validValues) {
++            this.key = key;
++            this.defValue = defValue;
++            this.validValues = validValues;
++        }
++
++        public String getKey() { return key; }
++
++        public int get() {
++            return getSharedPrefManager().readInt(key, defValue);
++        }
++
++        public boolean validateValue(int val) {
++            if (validValues == null) {
++                return true;
++            }
++            // don't do sort() + bsearch() of validValues array, it's expected to have a small number of entries
++            for (int validValue : validValues) {
++                if (val == validValue) {
++                    return true;
++                }
++            }
++            return false;
++        }
++
++        public void put(int newValue) {
++            if (!validateValue(newValue)) {
++                return;
++            }
++            getSharedPrefManager().writeInt(key, newValue);
++        }
++
++        public boolean putSync(int newValue) {
++            if (!validateValue(newValue)) {
++                return false;
++            }
++            return getSharedPrefManager().writeIntSync(key, newValue);
++        }
++    }
++
++    public static class StringSharedPref {
++        private final String key;
++        private String defValue;
++        private String[] validValues;
++
++        StringSharedPref(String key, String defValue) {
++            this.key = key;
++            this.defValue = defValue;
++        }
++
++        StringSharedPref(String key, String defValue, String[] validValues) {
++            this.key = key;
++            this.defValue = defValue;
++            this.validValues = validValues;
++        }
++
++        public String getKey() { return key; }
++
++        public String get() {
++            return getSharedPrefManager().readString(key, defValue);
++        }
++
++        public boolean validateValue(String val) {
++            if (validValues == null) {
++                return true;
++            }
++            // don't do sort() + bsearch() of validValues array, it's expected to have a small number of entries
++            for (String validValue : validValues) {
++                if (val == validValue) {
++                    return true;
++                }
++            }
++            return false;
++        }
++
++        public void put(String newValue) {
++            if (!validateValue(newValue)) {
++                return;
++            }
++            getSharedPrefManager().writeString(key, newValue);
++        }
++
++        public boolean putSync(String newValue) {
++            if (!validateValue(newValue)) {
++                return false;
++            }
++            return getSharedPrefManager().writeStringSync(key, newValue);
++        }
++    }
++
++    // Stores SharedPreferences keys and its default value
++    public static class SharedPrefsExt {
++    }
++
++    static SharedPreferencesManager getSharedPrefManager() {
++        return SharedPreferencesManager.getInstance();
++    }
++
++    @CheckDiscard("Validation is performed in tests and in debug builds.")
++    static boolean isKeyInUse(String key) {
++        // clang-format off
++        return Arrays.asList(
++        ).contains(key);
++        // clang-format on
++    }
++}
diff --git a/build-chromium/patches/0060-Helper-class-for-modifying-preferences-at-chrome-lay.patch b/build-chromium/patches/0060-Helper-class-for-modifying-preferences-at-chrome-lay.patch
new file mode 100644
index 0000000..327f847
--- /dev/null
+++ b/build-chromium/patches/0060-Helper-class-for-modifying-preferences-at-chrome-lay.patch
@@ -0,0 +1,98 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Tue, 11 Apr 2023 07:14:45 +0000
+Subject: [PATCH] Helper class for modifying preferences at chrome layer
+
+---
+ chrome/android/chrome_ext_java_sources.gni    |  1 +
+ .../browser/settings/SettingsExtUtils.java    | 71 +++++++++++++++++++
+ 2 files changed, 72 insertions(+)
+ create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java
+
+diff --git a/chrome/android/chrome_ext_java_sources.gni b/chrome/android/chrome_ext_java_sources.gni
+index fe72e9b1d3abb..b3a489f124aa8 100644
+--- a/chrome/android/chrome_ext_java_sources.gni
++++ b/chrome/android/chrome_ext_java_sources.gni
+@@ -3,4 +3,5 @@
+ # found in the LICENSE file.
+ 
+ chrome_ext_java_sources = [
++  "java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java",
+ ]
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java
+new file mode 100644
+index 0000000000000..c9907624c4fc1
+--- /dev/null
++++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java
+@@ -0,0 +1,71 @@
++// Copyright 2023 GrapheneOS
++// Use of this source code is governed by a GPLv2-style license that can be
++// found in the LICENSE file.
++
++package org.chromium.chrome.browser.settings;
++
++import androidx.annotation.NonNull;
++import androidx.annotation.Nullable;
++import androidx.preference.Preference;
++import androidx.preference.PreferenceFragmentCompat;
++import androidx.preference.SwitchPreferenceCompat;
++
++import org.chromium.base.ThreadUtils;
++
++public class SettingsExtUtils {
++
++    public static void safelyUpdatePreference(
++        @Nullable Preference preference,
++        @Nullable String newSummary
++    ) {
++        if (preference == null) return;
++        safelyUpdatePreferenceCommon(preference, newSummary);
++    }
++
++
++    public static void safelyUpdateSwitchPreference(
++        @Nullable SwitchPreferenceCompat switchPref,
++        @Nullable String newSummary,
++        boolean newValue
++    ) {
++        if (switchPref == null) return;
++        safelyUpdatePreferenceCommon(switchPref, newSummary);
++        safelyUpdatePreferenceChecked(switchPref, newSummary, newValue);
++    }
++
++    private static void safelyUpdatePreferenceCommon(
++        @NonNull Preference preference,
++        @Nullable String newSummary
++    ) {
++        ThreadUtils.checkUiThread();
++        if (newSummary != null) {
++            preference.setSummary(newSummary);
++        }
++    }
++
++    private static void safelyUpdatePreferenceChecked(
++        @NonNull SwitchPreferenceCompat switchPref,
++        @Nullable String nativeKey,
++        boolean checked
++    ) {
++        switchPref.setChecked(checked);
++    }
++
++    public static void safelyRemovePreference(
++        @NonNull PreferenceFragmentCompat prefFragment,
++        @NonNull String key
++    ) {
++        Preference preference = prefFragment.findPreference(key);
++        safelyRemovePreference(prefFragment, preference);
++    }
++
++    public static void safelyRemovePreference(
++        @NonNull PreferenceFragmentCompat prefFragment,
++        @Nullable Preference preference
++    ) {
++        ThreadUtils.checkUiThread();
++        if (preference != null) {
++            prefFragment.getPreferenceScreen().removePreference(preference);
++        }
++    }
++}
diff --git a/build-chromium/patches/0061-Utility-class-for-modifying-preferences-at-Privacy-s.patch b/build-chromium/patches/0061-Utility-class-for-modifying-preferences-at-Privacy-s.patch
new file mode 100644
index 0000000..ec1b603
--- /dev/null
+++ b/build-chromium/patches/0061-Utility-class-for-modifying-preferences-at-Privacy-s.patch
@@ -0,0 +1,154 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Tue, 11 Apr 2023 07:55:52 +0000
+Subject: [PATCH] Utility class for modifying preferences at Privacy section
+
+---
+ chrome/android/chrome_ext_java_resources.gni  |  1 +
+ chrome/android/chrome_ext_java_sources.gni    |  1 +
+ .../java/res/xml/privacy_preferences_ext.xml  |  9 +++
+ .../privacy/settings/PrivacySettings.java     |  6 ++
+ .../privacy/settings/PrivacySettingsExt.java  | 67 +++++++++++++++++++
+ 5 files changed, 84 insertions(+)
+ create mode 100644 chrome/android/java/res/xml/privacy_preferences_ext.xml
+ create mode 100644 chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
+
+diff --git a/chrome/android/chrome_ext_java_resources.gni b/chrome/android/chrome_ext_java_resources.gni
+index 9980a7c5f6d84..164ef483d5a44 100644
+--- a/chrome/android/chrome_ext_java_resources.gni
++++ b/chrome/android/chrome_ext_java_resources.gni
+@@ -3,4 +3,5 @@
+ # found in the LICENSE file.
+ 
+ chrome_ext_java_resources = [
++  "java/res/xml/privacy_preferences_ext.xml",
+ ]
+diff --git a/chrome/android/chrome_ext_java_sources.gni b/chrome/android/chrome_ext_java_sources.gni
+index b3a489f124aa8..d580fb6e83875 100644
+--- a/chrome/android/chrome_ext_java_sources.gni
++++ b/chrome/android/chrome_ext_java_sources.gni
+@@ -4,4 +4,5 @@
+ 
+ chrome_ext_java_sources = [
+   "java/src/org/chromium/chrome/browser/settings/SettingsExtUtils.java",
++  "java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java",
+ ]
+diff --git a/chrome/android/java/res/xml/privacy_preferences_ext.xml b/chrome/android/java/res/xml/privacy_preferences_ext.xml
+new file mode 100644
+index 0000000000000..a352cd657b1b9
+--- /dev/null
++++ b/chrome/android/java/res/xml/privacy_preferences_ext.xml
+@@ -0,0 +1,9 @@
++<!--
++Copyright 2023 GrapheneOS
++Use of this source code is governed by a GPLv2 only-style license
++that can be found in the LICENSE file.
++-->
++<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
++    xmlns:app="http://schemas.android.com/apk/res-auto">
++</PreferenceScreen>
++
+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
+index a9da397ba2eaf..26218b5511044 100644
+--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettings.java
+@@ -93,6 +93,8 @@ public class PrivacySettings extends PreferenceFragmentCompat
+             SettingsUtils.addPreferencesFromResource(this, R.xml.privacy_preferences);
+         }
+ 
++        PrivacySettingsExt.initializePreferences(this);
++
+         Preference sandboxPreference = findPreference(PREF_PRIVACY_SANDBOX);
+         if (PrivacySandboxBridge.isPrivacySandboxRestricted()
+                 && !PrivacySandboxBridge.isRestrictedNoticeEnabled()) {
+@@ -185,6 +187,8 @@ public class PrivacySettings extends PreferenceFragmentCompat
+                     SingleCategorySettings.EXTRA_TITLE, thirdPartyCookies.getTitle().toString());
+         }
+ 
++        PrivacySettingsExt.removeUnwantedPreferences(this);
++
+         updatePreferences();
+     }
+ 
+@@ -299,6 +303,8 @@ public class PrivacySettings extends PreferenceFragmentCompat
+                     UserPrefs.get(mProfile).getInteger(COOKIE_CONTROLS_MODE)));
+         }
+ 
++        PrivacySettingsExt.updatePreferences(this);
++
+         updatePrivacyGuidePreferenceTitle();
+     }
+ 
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
+new file mode 100644
+index 0000000000000..00a65cf922353
+--- /dev/null
++++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
+@@ -0,0 +1,67 @@
++// Copyright 2023 GrapheneOS
++// Use of this source code is governed by a GPLv2-style license that can be
++// found in the LICENSE file.
++
++package org.chromium.chrome.browser.privacy.settings;
++
++import androidx.annotation.NonNull;
++import androidx.preference.Preference;
++import androidx.preference.PreferenceFragmentCompat;
++import androidx.preference.SwitchPreferenceCompat;
++
++import org.chromium.base.ThreadUtils;
++import org.chromium.chrome.R;
++import org.chromium.chrome.browser.flags.ChromeFeatureList;
++import org.chromium.chrome.browser.preferences.Pref;
++import org.chromium.chrome.browser.preferences.SharedPrefsUtils.SharedPrefsExt;
++import org.chromium.chrome.browser.profiles.Profile;
++import org.chromium.chrome.browser.settings.ChromeManagedPreferenceDelegate;
++import org.chromium.chrome.browser.settings.SettingsExtUtils;
++import org.chromium.components.browser_ui.settings.ChromeBasePreference;
++import org.chromium.components.browser_ui.settings.ChromeSwitchPreference;
++import org.chromium.components.browser_ui.settings.SettingsUtils;
++import org.chromium.components.prefs.PrefService;
++import org.chromium.components.user_prefs.UserPrefs;
++
++final class PrivacySettingsExt {
++
++    private static final Preference.OnPreferenceChangeListener LISTENER =
++        (pref, val) -> {
++            PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
++            if (pref == null) {
++                return false;
++            }
++            String key = pref.getKey();
++            return true;
++        };
++
++    private static final ChromeManagedPreferenceDelegate DELEGATE =
++        pref -> {
++            PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
++            if (pref == null) {
++                return false;
++            }
++            String key = pref.getKey();
++            return false;
++        };
++
++    static void removeUnwantedPreferences(@NonNull PreferenceFragmentCompat prefFragment) {
++        ThreadUtils.checkUiThread();
++    }
++
++    static void initializePreferences(@NonNull PreferenceFragmentCompat prefFragment) {
++        ThreadUtils.checkUiThread();
++        // This is such that privacy preferences are added at Privacy Section in newer UI,
++        // and mostly kept on previous order at older UI.
++        int PRIVACY_PREFERENCES_ORDER =
++                ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) ? 2 : 6;
++        int SECURITY_PREFERENCES_ORDER =
++                ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) ? 2 : 9999;
++        SettingsUtils.addPreferencesFromResource(prefFragment, R.xml.privacy_preferences_ext);
++    }
++
++    static void updatePreferences(@NonNull PreferenceFragmentCompat prefFragment) {
++        ThreadUtils.checkUiThread();
++        PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
++    }
++}
diff --git a/build-chromium/patches/0056-remove-translate-offer-preference.patch b/build-chromium/patches/0062-remove-translate-offer-preference.patch
similarity index 93%
rename from build-chromium/patches/0056-remove-translate-offer-preference.patch
rename to build-chromium/patches/0062-remove-translate-offer-preference.patch
index 8c74736..7392be5 100644
--- a/build-chromium/patches/0056-remove-translate-offer-preference.patch
+++ b/build-chromium/patches/0062-remove-translate-offer-preference.patch
@@ -1,4 +1,4 @@
-From c1796c09be4c7411ed40b5cb2f627c3a695ece99 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Fri, 2 Aug 2019 21:11:17 -0400
 Subject: [PATCH] remove translate offer preference
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 20 deletions(-)
 
 diff --git a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
-index 2c8af6ded3ed0..4b45cb935d198 100644
+index 3d35cb516928f..4689ed7213cd7 100644
 --- a/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
 +++ b/chrome/browser/language/android/java/src/org/chromium/chrome/browser/language/settings/LanguageSettings.java
-@@ -101,26 +101,7 @@ public class LanguageSettings extends PreferenceFragmentCompat
+@@ -109,26 +109,7 @@ public class LanguageSettings extends PreferenceFragmentCompat
                  (ContentLanguagesPreference) findPreference(PREFERRED_LANGUAGES_KEY);
          mLanguageListPref.registerActivityLauncher(this);
  
diff --git a/build-chromium/patches/0064-add-trichrome-browser-apk-targets.patch b/build-chromium/patches/0064-add-trichrome-browser-apk-targets.patch
deleted file mode 100644
index 8059495..0000000
--- a/build-chromium/patches/0064-add-trichrome-browser-apk-targets.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 945374555c5f26e4a22f6d304fed73ddc3774201 Mon Sep 17 00:00:00 2001
-From: Daniel Micay <danielmicay@gmail.com>
-Date: Thu, 27 May 2021 07:30:02 -0400
-Subject: [PATCH] add trichrome browser apk targets
-
----
- chrome/android/BUILD.gn | 41 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 41 insertions(+)
-
-diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
-index 64e1be0d0514f..bf94b55cd44cb 100644
---- a/chrome/android/BUILD.gn
-+++ b/chrome/android/BUILD.gn
-@@ -2366,6 +2366,10 @@ if (current_toolchain == default_toolchain) {
-     is_trichrome = true
-     is_bundle_module = true
-   }
-+  resource_packaging("trichrome_chrome_apk_pak_assets") {
-+    is_monochrome = false
-+    is_trichrome = true
-+  }
- 
-   # Java libraries that go into each public chrome APK and base module. The chrome
-   # JNI registration is generated based on this target.
-@@ -2953,6 +2957,43 @@ if (current_toolchain == default_toolchain) {
-       }
-     }
-   }
-+ 
-+monochrome_public_apk_or_module_tmpl("trichrome_chrome_apk") {
-+  version_code = trichrome_version_code
-+  version_name = chrome_version_name
-+  apk_name = "TrichromeChrome"
-+  target_type = "android_apk"
-+  use_trichrome_library = true
-+  static_library_provider = ":trichrome_library_apk"
-+  if (android_64bit_target_cpu) {
-+    is_64_bit_browser = false
-+    include_64_bit_webview = true
-+  }
-+}
-+
-+if (android_64bit_target_cpu) {
-+  monochrome_public_apk_or_module_tmpl("trichrome_chrome_64_32_apk") {
-+    version_code = trichrome_version_code
-+    version_name = chrome_version_name
-+    apk_name = "TrichromeChrome6432"
-+    target_type = "android_apk"
-+    use_trichrome_library = true
-+    static_library_provider = ":trichrome_library_64_32_apk"
-+    is_64_bit_browser = true
-+    include_32_bit_webview = true
-+  }
-+
-+  monochrome_public_apk_or_module_tmpl("trichrome_chrome_64_apk") {
-+    version_code = trichrome_version_code
-+    version_name = chrome_version_name
-+    apk_name = "TrichromeChrome64"
-+    target_type = "android_apk"
-+    use_trichrome_library = true
-+    static_library_provider = ":trichrome_library_64_apk"
-+    is_64_bit_browser = true
-+    include_32_bit_webview = false
-+  }
-+}
- 
-   chrome_public_unit_test_apk_manifest =
-       "$root_gen_dir/chrome_public_unit_test_apk_manifest/AndroidManifest.xml"
diff --git a/build-chromium/patches/0065-Move-search-suggestions-back-to-privacy-section.patch b/build-chromium/patches/0065-Move-search-suggestions-back-to-privacy-section.patch
deleted file mode 100644
index 22ed99a..0000000
--- a/build-chromium/patches/0065-Move-search-suggestions-back-to-privacy-section.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 73135590d42bc5c6dfe6bbad4ac7f78d1d70f3c7 Mon Sep 17 00:00:00 2001
-From: fgei <fgei@gmail.com>
-Date: Fri, 20 Aug 2021 16:13:42 +0000
-Subject: [PATCH] Move search suggestions back to privacy section.
-
----
- .../java/res/xml/privacy_preferences.xml       |  5 +++++
- .../privacy/settings/PrivacySettings.java      | 18 +++++++++++++++++-
- 2 files changed, 22 insertions(+), 1 deletion(-)
-
-diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml
-index e7c1075834bfc..4761252eb94f0 100644
---- a/chrome/android/java/res/xml/privacy_preferences.xml
-+++ b/chrome/android/java/res/xml/privacy_preferences.xml
-@@ -28,6 +28,11 @@ found in the LICENSE file.
-         android:key="https_first_mode"
-         android:title="@string/settings_https_first_mode_title"
-         android:summary="@string/settings_https_first_mode_summary"/>
-+    <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
-+        android:key="search_suggestions"
-+        android:title="@string/autocomplete_searches_and_urls_title"
-+        android:summary="@string/autocomplete_searches_and_urls_summary"
-+        android:persistent="false"/>
-      <org.chromium.chrome.browser.incognito.reauth.IncognitoReauthSettingSwitchPreference
-         android:key="incognito_lock"
-         android:title="@string/settings_incognito_tab_lock_title"
-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
-index da126b63a3d93..79c75cba0cdfb 100644
---- 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
-@@ -60,6 +60,7 @@ public class PrivacySettings
-     private static final String PREF_PRELOAD_PAGES = "preload_pages";
-     private static final String PREF_HTTPS_FIRST_MODE = "https_first_mode";
-     private static final String PREF_SECURE_DNS = "secure_dns";
-+    private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
-     private static final String PREF_USAGE_STATS = "usage_stats_reporting";
-     private static final String PREF_DO_NOT_TRACK = "do_not_track";
-     private static final String PREF_SAFE_BROWSING = "safe_browsing";
-@@ -129,6 +130,11 @@ public class PrivacySettings
- 
-         mManagedPreferenceDelegate = createManagedPreferenceDelegate();
- 
-+        ChromeSwitchPreference searchSuggestionsPref =
-+                (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
-+        searchSuggestionsPref.setOnPreferenceChangeListener(this);
-+        searchSuggestionsPref.setManagedPreferenceDelegate(mManagedPreferenceDelegate);
-+
-         ChromeSwitchPreference canMakePaymentPref =
-                 (ChromeSwitchPreference) findPreference(PREF_CAN_MAKE_PAYMENT);
-         canMakePaymentPref.setOnPreferenceChangeListener(this);
-@@ -186,7 +192,10 @@ public class PrivacySettings
-     @Override
-     public boolean onPreferenceChange(Preference preference, Object newValue) {
-         String key = preference.getKey();
--        if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
-+        if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
-+            UserPrefs.get(Profile.getLastUsedRegularProfile())
-+                    .setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) newValue);
-+        } else if (PREF_CAN_MAKE_PAYMENT.equals(key)) {
-             UserPrefs.get(Profile.getLastUsedRegularProfile())
-                     .setBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED, (boolean) newValue);
-         } else if (PREF_HTTPS_FIRST_MODE.equals(key)) {
-@@ -214,6 +223,13 @@ public class PrivacySettings
-             canMakePaymentPref.setChecked(prefService.getBoolean(Pref.CAN_MAKE_PAYMENT_ENABLED));
-         }
- 
-+        ChromeSwitchPreference searchSuggestionsPref =
-+                (ChromeSwitchPreference) findPreference(PREF_SEARCH_SUGGESTIONS);
-+        if (searchSuggestionsPref != null) {
-+            searchSuggestionsPref.setChecked(prefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED));
-+        }
-+
-+
-         Preference doNotTrackPref = findPreference(PREF_DO_NOT_TRACK);
-         if (doNotTrackPref != null) {
-             doNotTrackPref.setSummary(prefService.getBoolean(Pref.ENABLE_DO_NOT_TRACK)
diff --git a/build-chromium/patches/0060-disable-Omaha-update-check-support.patch b/build-chromium/patches/0066-disable-Omaha-update-check-support.patch
similarity index 88%
rename from build-chromium/patches/0060-disable-Omaha-update-check-support.patch
rename to build-chromium/patches/0066-disable-Omaha-update-check-support.patch
index 5b61b7a..8f017c3 100644
--- a/build-chromium/patches/0060-disable-Omaha-update-check-support.patch
+++ b/build-chromium/patches/0066-disable-Omaha-update-check-support.patch
@@ -1,4 +1,4 @@
-From 0a1a5dd407b128536a022e9889b6e0c8e4a0e6a8 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Wed, 18 Nov 2020 19:13:27 -0500
 Subject: [PATCH] disable Omaha update check support
@@ -9,7 +9,7 @@
  2 files changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
-index 31c90fc5f7675..b3ee632ddf7dd 100644
+index 81108fdc4f5e9..9e57118fbf0f9 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/OmahaBase.java
 @@ -157,7 +157,7 @@ public class OmahaBase {
@@ -22,10 +22,10 @@
  
      /**
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
-index 56e5121a40de1..32ca8d7e4d54b 100644
+index bf9c4eef05cf0..2e2129cd3383b 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/omaha/VersionNumberGetter.java
-@@ -47,7 +47,7 @@ public class VersionNumberGetter {
+@@ -51,7 +51,7 @@ public class VersionNumberGetter {
      private static VersionNumberGetter sInstanceForTests;
  
      /** If false, OmahaClient will never report that a newer version is available. */
diff --git a/build-chromium/patches/0062-remove-safety-check-menu.patch b/build-chromium/patches/0068-remove-safety-check-menu.patch
similarity index 80%
rename from build-chromium/patches/0062-remove-safety-check-menu.patch
rename to build-chromium/patches/0068-remove-safety-check-menu.patch
index 06a2b00..fb73cc3 100644
--- a/build-chromium/patches/0062-remove-safety-check-menu.patch
+++ b/build-chromium/patches/0068-remove-safety-check-menu.patch
@@ -1,4 +1,4 @@
-From a3092a526b2d16a3eefcdcfe9b336ea593fe862c Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Tue, 25 May 2021 16:43:39 -0400
 Subject: [PATCH] remove safety check menu
@@ -8,11 +8,11 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-index c72bed9714299..bd097737d5a34 100644
+index 16879dbc752cc..0f8e31e160cbb 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -216,6 +216,8 @@ public class MainSettings extends PreferenceFragmentCompat
-             TemplateUrlServiceFactory.get().load();
+@@ -209,6 +209,8 @@ public class MainSettings extends PreferenceFragmentCompat
+             templateUrlService.load();
          }
  
 +        getPreferenceScreen().removePreference(findPreference(PREF_SAFETY_CHECK));
diff --git a/build-chromium/patches/0070-add-trichrome-browser-apk-targets.patch b/build-chromium/patches/0070-add-trichrome-browser-apk-targets.patch
new file mode 100644
index 0000000..854ee7f
--- /dev/null
+++ b/build-chromium/patches/0070-add-trichrome-browser-apk-targets.patch
@@ -0,0 +1,76 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Daniel Micay <danielmicay@gmail.com>
+Date: Thu, 27 May 2021 07:30:02 -0400
+Subject: [PATCH] add trichrome browser apk targets
+
+---
+ chrome/android/BUILD.gn                   | 35 +++++++++++++++++++++++
+ chrome/android/chrome_public_apk_tmpl.gni |  2 ++
+ 2 files changed, 37 insertions(+)
+
+diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
+index 70023630d6839..ad40428bf989b 100644
+--- a/chrome/android/BUILD.gn
++++ b/chrome/android/BUILD.gn
+@@ -2181,6 +2181,10 @@ if (current_toolchain == default_toolchain) {
+     is_trichrome = true
+     is_bundle_module = true
+   }
++  resource_packaging("trichrome_chrome_apk_pak_assets") {
++    is_monochrome = false
++    is_trichrome = true
++  }
+ 
+   # Java libraries that go into each public chrome APK and base module. The chrome
+   # JNI registration is generated based on this target.
+@@ -2537,6 +2541,37 @@ if (current_toolchain == default_toolchain) {
+       }
+     }
+   }
++ 
++  chrome_public_apk_or_module_tmpl("trichrome_chrome_apk") {
++    apk_name = "TrichromeChrome"
++    is_trichrome = true
++    target_type = "android_apk"
++    static_library_provider = ":trichrome_library_apk"
++    if (android_64bit_target_cpu) {
++      is_64_bit_browser = false
++      include_64_bit_webview = true
++    }
++  }
++  
++  if (android_64bit_target_cpu) {
++    chrome_public_apk_or_module_tmpl("trichrome_chrome_64_32_apk") {
++      apk_name = "TrichromeChrome6432"
++      is_trichrome = true
++      target_type = "android_apk"
++      static_library_provider = ":trichrome_library_64_32_apk"
++      is_64_bit_browser = true
++      include_32_bit_webview = true
++    }
++  
++    chrome_public_apk_or_module_tmpl("trichrome_chrome_64_apk") {
++      apk_name = "TrichromeChrome64"
++      is_trichrome = true
++      target_type = "android_apk"
++      static_library_provider = ":trichrome_library_64_apk"
++      is_64_bit_browser = true
++      include_32_bit_webview = false
++    }
++  }
+ 
+   # As compared to chrome_public_test_apk, this target contains only unit tests
+   # that require on device capabilities. These tests are smaller, more tightly
+diff --git a/chrome/android/chrome_public_apk_tmpl.gni b/chrome/android/chrome_public_apk_tmpl.gni
+index eeb286b07aae6..a27651ee9644c 100644
+--- a/chrome/android/chrome_public_apk_tmpl.gni
++++ b/chrome/android/chrome_public_apk_tmpl.gni
+@@ -453,6 +453,8 @@ template("chrome_common_apk_or_module_tmpl") {
+       deps += [ "//chrome/android:chrome_bundle_module_pak_assets" ]
+     } else if (_is_monochrome) {
+       deps += [ "//chrome/android:monochrome_apk_pak_assets" ]
++    } else if (_is_trichrome) {
++      deps += [ "//chrome/android:trichrome_chrome_apk_pak_assets" ]
+     } else {
+       assert(!_is_trichrome)
+       deps += [ "//chrome/android:chrome_apk_pak_assets" ]
diff --git a/build-chromium/patches/0071-Move-search-suggestions-back-to-privacy-section.patch b/build-chromium/patches/0071-Move-search-suggestions-back-to-privacy-section.patch
new file mode 100644
index 0000000..96dbbd1
--- /dev/null
+++ b/build-chromium/patches/0071-Move-search-suggestions-back-to-privacy-section.patch
@@ -0,0 +1,81 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: fgei <fgei@gmail.com>
+Date: Fri, 20 Aug 2021 16:13:42 +0000
+Subject: [PATCH] Move search suggestions back to privacy section.
+
+---
+ .../java/res/xml/privacy_preferences_ext.xml  |  5 +++++
+ .../privacy/settings/PrivacySettingsExt.java  | 20 +++++++++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/chrome/android/java/res/xml/privacy_preferences_ext.xml b/chrome/android/java/res/xml/privacy_preferences_ext.xml
+index a352cd657b1b9..01e8c8217afed 100644
+--- a/chrome/android/java/res/xml/privacy_preferences_ext.xml
++++ b/chrome/android/java/res/xml/privacy_preferences_ext.xml
+@@ -5,5 +5,10 @@ that can be found in the LICENSE file.
+ -->
+ <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+     xmlns:app="http://schemas.android.com/apk/res-auto">
++    <org.chromium.components.browser_ui.settings.ChromeSwitchPreference
++        android:key="search_suggestions"
++        android:title="@string/improve_search_suggestions_title"
++        android:summary="@string/improve_search_suggestions_summary"
++        android:persistent="false"/>
+ </PreferenceScreen>
+ 
+diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
+index 00a65cf922353..d627ead5ee9d0 100644
+--- a/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/privacy/settings/PrivacySettingsExt.java
+@@ -25,6 +25,8 @@ import org.chromium.components.user_prefs.UserPrefs;
+ 
+ final class PrivacySettingsExt {
+ 
++    private static final String PREF_SEARCH_SUGGESTIONS = "search_suggestions";
++
+     private static final Preference.OnPreferenceChangeListener LISTENER =
+         (pref, val) -> {
+             PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
+@@ -32,6 +34,9 @@ final class PrivacySettingsExt {
+                 return false;
+             }
+             String key = pref.getKey();
++            if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
++                prefService.setBoolean(Pref.SEARCH_SUGGEST_ENABLED, (boolean) val);
++            }
+             return true;
+         };
+ 
+@@ -42,6 +47,9 @@ final class PrivacySettingsExt {
+                 return false;
+             }
+             String key = pref.getKey();
++            if (PREF_SEARCH_SUGGESTIONS.equals(key)) {
++                return prefService.isManagedPreference(Pref.SEARCH_SUGGEST_ENABLED);
++            }
+             return false;
+         };
+ 
+@@ -58,10 +66,22 @@ final class PrivacySettingsExt {
+         int SECURITY_PREFERENCES_ORDER =
+                 ChromeFeatureList.isEnabled(ChromeFeatureList.PRIVACY_SANDBOX_SETTINGS_4) ? 2 : 9999;
+         SettingsUtils.addPreferencesFromResource(prefFragment, R.xml.privacy_preferences_ext);
++        ChromeSwitchPreference searchSuggestionsPref =
++                (ChromeSwitchPreference) prefFragment.findPreference(PREF_SEARCH_SUGGESTIONS);
++        if (searchSuggestionsPref != null) {
++            searchSuggestionsPref.setOrder(PRIVACY_PREFERENCES_ORDER);
++            searchSuggestionsPref.setOnPreferenceChangeListener(LISTENER);
++            searchSuggestionsPref.setManagedPreferenceDelegate(DELEGATE);
++        }
+     }
+ 
+     static void updatePreferences(@NonNull PreferenceFragmentCompat prefFragment) {
+         ThreadUtils.checkUiThread();
+         PrefService prefService = UserPrefs.get(Profile.getLastUsedRegularProfile());
++        ChromeSwitchPreference searchSuggestionsPref =
++                (ChromeSwitchPreference) prefFragment.findPreference(PREF_SEARCH_SUGGESTIONS);
++        SettingsExtUtils.safelyUpdateSwitchPreference(/* switchPref */ searchSuggestionsPref,
++                /* newSummary*/ null,
++                /* newCheckedValue*/ prefService.getBoolean(Pref.SEARCH_SUGGEST_ENABLED));
+     }
+ }
diff --git a/build-chromium/patches/0068-remove-unwanted-sync-and-services-link.patch b/build-chromium/patches/0074-remove-unwanted-sync-and-services-link.patch
similarity index 86%
rename from build-chromium/patches/0068-remove-unwanted-sync-and-services-link.patch
rename to build-chromium/patches/0074-remove-unwanted-sync-and-services-link.patch
index 13b204a..889b032 100644
--- a/build-chromium/patches/0068-remove-unwanted-sync-and-services-link.patch
+++ b/build-chromium/patches/0074-remove-unwanted-sync-and-services-link.patch
@@ -1,4 +1,4 @@
-From 47c466ba2e1e4b2a4e1feaf28fe09c038dc25797 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Sat, 7 Aug 2021 15:01:54 -0400
 Subject: [PATCH] remove unwanted sync and services link
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+), 2 deletions(-)
 
 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
-index 79c75cba0cdfb..06c0b8ba3c941 100644
+index 26218b5511044..fe8df089a3c76 100644
 --- 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
-@@ -151,8 +151,7 @@ public class PrivacySettings
+@@ -176,8 +176,7 @@ public class PrivacySettings extends PreferenceFragmentCompat
          Preference secureDnsPref = findPreference(PREF_SECURE_DNS);
          secureDnsPref.setVisible(SecureDnsSettings.isUiEnabled());
  
diff --git a/build-chromium/patches/0069-remove-unwanted-account-and-services-section.patch b/build-chromium/patches/0075-remove-unwanted-account-and-services-section.patch
similarity index 86%
rename from build-chromium/patches/0069-remove-unwanted-account-and-services-section.patch
rename to build-chromium/patches/0075-remove-unwanted-account-and-services-section.patch
index 8789ec0..1f07739 100644
--- a/build-chromium/patches/0069-remove-unwanted-account-and-services-section.patch
+++ b/build-chromium/patches/0075-remove-unwanted-account-and-services-section.patch
@@ -1,4 +1,4 @@
-From 4cc93048a5b325e7076de379bf8027e3890be240 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: fgei <fgei@gmail.com>
 Date: Fri, 20 Aug 2021 16:13:42 +0000
 Subject: [PATCH] remove unwanted account and services section
@@ -8,10 +8,10 @@
  1 file changed, 2 insertions(+)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-index bd097737d5a34..cd202add8cba2 100644
+index 0f8e31e160cbb..17088c8d6c9df 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -217,6 +217,8 @@ public class MainSettings extends PreferenceFragmentCompat
+@@ -210,6 +210,8 @@ public class MainSettings extends PreferenceFragmentCompat
          }
  
          getPreferenceScreen().removePreference(findPreference(PREF_SAFETY_CHECK));
diff --git a/build-chromium/patches/0070-Hide-Sign-In-preference-when-disallowed.patch b/build-chromium/patches/0076-Hide-Sign-In-preference-when-disallowed.patch
similarity index 83%
rename from build-chromium/patches/0070-Hide-Sign-In-preference-when-disallowed.patch
rename to build-chromium/patches/0076-Hide-Sign-In-preference-when-disallowed.patch
index 0ffef32..f1fc87b 100644
--- a/build-chromium/patches/0070-Hide-Sign-In-preference-when-disallowed.patch
+++ b/build-chromium/patches/0076-Hide-Sign-In-preference-when-disallowed.patch
@@ -1,4 +1,4 @@
-From 49cc7a5a936a8f83195ec0fb15adaf56bd77a56c Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: fgei <fgei@gmail.com>
 Date: Sun, 29 Aug 2021 19:31:00 +0000
 Subject: [PATCH] Hide Sign In preference when disallowed
@@ -8,10 +8,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java
-index 5112a89b1070b..478b3463347ba 100644
+index 2e52171a9acd9..66bed04ba16c3 100644
 --- a/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/sync/settings/SignInPreference.java
-@@ -149,6 +149,7 @@ public class SignInPreference
+@@ -151,6 +151,7 @@ public class SignInPreference
      }
  
      private void setupSigninDisallowed() {
diff --git a/build-chromium/patches/0071-disable-using-Play-services-fonts.patch b/build-chromium/patches/0077-disable-using-Play-services-fonts.patch
similarity index 95%
rename from build-chromium/patches/0071-disable-using-Play-services-fonts.patch
rename to build-chromium/patches/0077-disable-using-Play-services-fonts.patch
index 1ce9fdf..011049e 100644
--- a/build-chromium/patches/0071-disable-using-Play-services-fonts.patch
+++ b/build-chromium/patches/0077-disable-using-Play-services-fonts.patch
@@ -1,4 +1,4 @@
-From 49a8fc62a0542e91b7daa0bb92c266182d6b7d6c Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Daniel Micay <danielmicay@gmail.com>
 Date: Wed, 1 Sep 2021 02:09:14 -0400
 Subject: [PATCH] disable using Play services fonts
diff --git a/build-chromium/patches/0101-Remove-not-applicable-additional-terms-of-services.patch b/build-chromium/patches/0101-Remove-not-applicable-additional-terms-of-services.patch
new file mode 100644
index 0000000..fab57da
--- /dev/null
+++ b/build-chromium/patches/0101-Remove-not-applicable-additional-terms-of-services.patch
@@ -0,0 +1,24 @@
+From e9360634eaf19876f1d0a9d4c76a429cff88d4ff Mon Sep 17 00:00:00 2001
+From: quh4gko8 <88831734+quh4gko8@users.noreply.github.com>
+Date: Wed, 19 Apr 2023 13:16:49 +0000
+Subject: [PATCH] Remove not applicable additional terms of services
+
+---
+ chrome/android/java/res/xml/legal_information_preferences.xml | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/chrome/android/java/res/xml/legal_information_preferences.xml b/chrome/android/java/res/xml/legal_information_preferences.xml
+index 32067c19d4f7a..e386dc0765491 100644
+--- a/chrome/android/java/res/xml/legal_information_preferences.xml
++++ b/chrome/android/java/res/xml/legal_information_preferences.xml
+@@ -16,10 +16,6 @@ found in the LICENSE file.
+         android:key="google_terms_of_service"
+         android:title="@string/google_terms_of_service_title"
+         app:url="@string/google_terms_of_service_url" />
+-    <org.chromium.chrome.browser.about_settings.HyperlinkPreference
+-        android:key="chrome_additional_terms_of_service"
+-        android:title="@string/chrome_additional_terms_of_service_title"
+-        app:url="@string/chrome_additional_terms_of_service_url" />
+     <org.chromium.chrome.browser.about_settings.HyperlinkPreference
+         android:key="privacy_policy"
+         android:title="@string/privacy_policy_title"