Carmelo Messina 4 anni fa
parent
commit
0bddacb961

+ 44 - 0
build/patches/add-support-for-ISupportHelpAndFeedback.patch

@@ -0,0 +1,44 @@
+From: uazo <uazo@users.noreply.github.com>
+Date: Wed, 21 Apr 2021 15:24:55 +0000
+Subject: Add support for ISupportHelpAndFeedback
+
+---
+ .../chrome/browser/settings/SettingsActivity.java      | 10 +++++++---
+ .../components/browser_ui/settings/SettingsUtils.java  |  4 ++++
+ 2 files changed, 11 insertions(+), 3 deletions(-)
+
+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
+@@ -277,9 +277,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
+             finish();
+             return true;
+         } else if (item.getItemId() == R.id.menu_id_general_help) {
+-            HelpAndFeedbackLauncherImpl.getInstance().show(this,
+-                    getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
+-                    null);
++            if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
++                ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
++            } else {
++                HelpAndFeedbackLauncherImpl.getInstance().show(this,
++                        getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
++                        null);
++            }
+             return true;
+         }
+         return super.onOptionsItemSelected(item);
+diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
++++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+@@ -163,4 +163,8 @@ public class SettingsUtils {
+             StrictMode.setThreadPolicy(oldPolicy);
+         }
+     }
++
++    public interface ISupportHelpAndFeedback {
++        void onHelpAndFeebackPressed();
++    }
+ }
+-- 
+2.17.1
+

+ 101 - 0
build/patches/add-support-for-prefs-addon.patch

@@ -0,0 +1,101 @@
+From: uazo <uazo@users.noreply.github.com>
+Date: Wed, 21 Apr 2021 15:24:04 +0000
+Subject: Add support for prefs addon
+
+---
+ .../chrome/browser/settings/MainSettings.java |  7 ++++
+ chrome/android/proguard/main.flags            |  7 ++++
+ .../browser_ui/settings/SettingsUtils.java    | 37 +++++++++++++++++++
+ 3 files changed, 51 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
+--- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
++++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
+@@ -120,6 +120,8 @@ public class MainSettings extends PreferenceFragmentCompat
+             findPreference(PREF_PRIVACY).setTitle(R.string.prefs_privacy_security);
+         }
+ 
++        createBromitePreferences();
++
+         cachePreferences();
+ 
+         updatePasswordsPreference();
+@@ -274,4 +276,9 @@ public class MainSettings extends PreferenceFragmentCompat
+             }
+         };
+     }
++
++    private void createBromitePreferences() {
++        SettingsUtils.inflatePrefsAddon(this, "main_preferences_addon_",
++            R.xml.class.getFields());
++    }
+ }
+diff --git a/chrome/android/proguard/main.flags b/chrome/android/proguard/main.flags
+--- a/chrome/android/proguard/main.flags
++++ b/chrome/android/proguard/main.flags
+@@ -63,3 +63,10 @@
+ -keep,allowobfuscation public class ** extends org.chromium.chrome.browser.base.SplitCompat*$Impl {
+   public <init>();
+ }
++
++# Keep fields name for all R.xml
++# used in SettingsUtils.java
++# components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings
++-keepclassmembers class **.R$xml* {
++    public static <fields>;
++}
+diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+--- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
++++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
+@@ -24,6 +24,12 @@ import androidx.preference.PreferenceFragmentCompat;
+ 
+ import org.chromium.base.ApiCompatibilityUtils;
+ 
++import org.chromium.base.Log;
++import androidx.preference.PreferenceScreen;
++import androidx.preference.PreferenceManager;
++import android.content.res.Resources;
++import java.lang.reflect.Field;
++
+ /**
+  * A helper class for Settings.
+  */
+@@ -126,4 +132,35 @@ public class SettingsUtils {
+         ImageView imageButton = (ImageView) button;
+         return imageButton.getDrawable() == parentMenu.getOverflowIcon();
+     }
++
++    public static PreferenceScreen inflatePrefsAddon(PreferenceFragmentCompat preferenceFragment,
++                                                     String name,
++                                                     Field[] fields) {
++        Resources resources = preferenceFragment.getResources();
++
++        for(int count=0; count < fields.length; count++) {
++            String assetName = fields[count].getName();
++            if (assetName.startsWith(name)) {
++                try {
++                    int resId = fields[count].getInt(null);
++                    return SettingsUtils.inflatePreferencesFromResource(preferenceFragment, resId);
++                } catch (IllegalAccessException e) {}
++            }
++        }
++        return null;
++    }
++
++    public static PreferenceScreen inflatePreferencesFromResource(
++            PreferenceFragmentCompat preferenceFragment, @XmlRes int preferencesResId) {
++        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
++        try {
++            PreferenceManager preferenceManager = preferenceFragment.getPreferenceManager();
++            final PreferenceScreen xmlRoot = preferenceManager.inflateFromResource(
++                preferenceFragment.getContext(),
++                preferencesResId, preferenceFragment.getPreferenceScreen());
++            return xmlRoot;
++        } finally {
++            StrictMode.setThreadPolicy(oldPolicy);
++        }
++    }
+ }
+-- 
+2.17.1
+

+ 43 - 156
build/patches/experimental-user-scripts-support.patch

@@ -1,15 +1,15 @@
 From: uazo <uazo@users.noreply.github.com>
 Date: Sat, 20 Mar 2021 09:37:12 +0000
 Subject: Experimental user scripts support preview
+needs
+add-support-for-ISupportHelpAndFeedback.patch
+add-support-for-prefs-addon.patch
 
 ---
  chrome/android/BUILD.gn                       |   4 +
  .../chrome/browser/AfterStartupTaskUtils.java |   2 +
  .../browser/download/DownloadUtils.java       |   6 +
- .../chrome/browser/settings/MainSettings.java |   7 +
- .../browser/settings/SettingsActivity.java    |  10 +-
  chrome/android/java_sources.gni               |   3 +
- chrome/android/proguard/main.flags            |   7 +
  chrome/browser/BUILD.gn                       |   5 +
  chrome/browser/about_flags.cc                 |   9 +
  chrome/browser/flag_descriptions.cc           |  10 +
@@ -21,7 +21,6 @@ Subject: Experimental user scripts support preview
  chrome/chrome_paks.gni                        |   2 +
  chrome/renderer/BUILD.gn                      |   1 +
  .../chrome_content_renderer_client.cc         |  33 +
- .../browser_ui/settings/SettingsUtils.java    |  41 +
  components/components_strings.grd             |   1 +
  components/user_scripts/android/BUILD.gn      |  82 ++
  .../java/res/layout/accept_script_item.xml    |  74 ++
@@ -111,7 +110,7 @@ Subject: Experimental user scripts support preview
  .../renderer/web_ui_injection_host.h          |  28 +
  .../strings/userscripts_strings.grdp          |  50 ++
  tools/gritsettings/resource_ids.spec          |   6 +
- 108 files changed, 9309 insertions(+), 3 deletions(-)
+ 104 files changed, 9247 insertions(+)
  create mode 100755 components/user_scripts/android/BUILD.gn
  create mode 100644 components/user_scripts/android/java/res/layout/accept_script_item.xml
  create mode 100644 components/user_scripts/android/java/res/layout/accept_script_list.xml
@@ -203,9 +202,9 @@ Subject: Experimental user scripts support preview
 diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
 --- a/chrome/android/BUILD.gn
 +++ b/chrome/android/BUILD.gn
-@@ -235,6 +235,9 @@ android_resources("chrome_app_java_resources") {
-     "//third_party/android_deps:androidx_recyclerview_recyclerview_java",
-     "//third_party/android_deps:material_design_java",
+@@ -236,6 +236,9 @@ android_resources("chrome_app_java_resources") {
+     "//third_party/androidx:androidx_preference_preference_java",
+     "//third_party/androidx:androidx_recyclerview_recyclerview_java",
    ]
 +
 +  # insert into chrome_app_java_resources
@@ -213,7 +212,7 @@ diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
  }
  
  if (enable_vr) {
-@@ -454,6 +457,7 @@ android_library("chrome_java") {
+@@ -465,6 +468,7 @@ android_library("chrome_java") {
      "//components/translate/core/common:translate_infobar_event_enum_java",
      "//components/url_formatter/android:url_formatter_java",
      "//components/user_prefs/android:java",
@@ -243,7 +242,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/AfterStartupTas
 diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
 +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadUtils.java
-@@ -63,6 +63,7 @@ import org.chromium.content_public.browser.BrowserStartupController;
+@@ -62,6 +62,7 @@ import org.chromium.content_public.browser.BrowserStartupController;
  import org.chromium.content_public.browser.LoadUrlParams;
  import org.chromium.ui.base.DeviceFormFactor;
  import org.chromium.ui.widget.Toast;
@@ -263,52 +262,10 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/Downlo
          // Check if Chrome should open the file itself.
          if (service.isDownloadOpenableInBrowser(isOffTheRecord, mimeType)) {
              // Share URIs use the content:// scheme when able, which looks bad when displayed
-diff --git a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
---- a/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-+++ b/chrome/android/java/src/org/chromium/chrome/browser/settings/MainSettings.java
-@@ -120,6 +120,8 @@ public class MainSettings extends PreferenceFragmentCompat
-             findPreference(PREF_PRIVACY).setTitle(R.string.prefs_privacy_security);
-         }
- 
-+        createBromitePreferences();
-+
-         cachePreferences();
- 
-         updatePasswordsPreference();
-@@ -274,4 +276,9 @@ public class MainSettings extends PreferenceFragmentCompat
-             }
-         };
-     }
-+
-+    private void createBromitePreferences() {
-+        SettingsUtils.inflatePrefsAddon(this, "main_preferences_addon_",
-+            R.xml.class.getFields());
-+    }
- }
-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
-@@ -274,9 +274,13 @@ public class SettingsActivity extends ChromeBaseAppCompatActivity
-             finish();
-             return true;
-         } else if (item.getItemId() == R.id.menu_id_general_help) {
--            HelpAndFeedbackLauncherImpl.getInstance().show(this,
--                    getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
--                    null);
-+            if (mainFragment instanceof SettingsUtils.ISupportHelpAndFeedback) {
-+                ((SettingsUtils.ISupportHelpAndFeedback)mainFragment).onHelpAndFeebackPressed();
-+            } else {
-+                HelpAndFeedbackLauncherImpl.getInstance().show(this,
-+                        getString(R.string.help_context_settings), Profile.getLastUsedRegularProfile(),
-+                        null);
-+            }
-             return true;
-         }
-         return super.onOptionsItemSelected(item);
 diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
 --- a/chrome/android/java_sources.gni
 +++ b/chrome/android/java_sources.gni
-@@ -19,6 +19,7 @@ import("//components/feed/features.gni")
+@@ -20,6 +20,7 @@ import("//components/feed/features.gni")
  import("//components/offline_pages/buildflags/features.gni")
  import("//components/omnibox/browser/test_java_sources.gni")
  import("//device/vr/buildflags/buildflags.gni")
@@ -316,30 +273,16 @@ diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni
  
  chrome_java_sources += public_autofill_assistant_java_sources
  
-@@ -51,3 +52,5 @@ if (enable_arcore) {
+@@ -53,3 +54,5 @@ if (enable_arcore) {
      "java/src/org/chromium/chrome/browser/vr/ArDelegateImpl.java",
    ]
  }
 +
 +chrome_java_sources += userscripts_java_sources
-diff --git a/chrome/android/proguard/main.flags b/chrome/android/proguard/main.flags
---- a/chrome/android/proguard/main.flags
-+++ b/chrome/android/proguard/main.flags
-@@ -63,3 +63,10 @@
- -keep,allowobfuscation public class ** extends org.chromium.chrome.browser.base.SplitCompat*$Impl {
-   public <init>();
- }
-+
-+# Keep fields name for all R.xml
-+# used in SettingsUtils.java
-+# components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings
-+-keepclassmembers class **.R$xml* {
-+    public static <fields>;
-+}
 diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
 --- a/chrome/browser/BUILD.gn
 +++ b/chrome/browser/BUILD.gn
-@@ -3371,6 +3371,11 @@ static_library("browser") {
+@@ -3377,6 +3377,11 @@ static_library("browser") {
        ]
        deps += [ "//chrome/android/modules/dev_ui/provider:native" ]
      }
@@ -362,7 +305,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
  #include "components/version_info/version_info.h"
  #include "components/viz/common/features.h"
  #include "components/viz/common/switches.h"
-@@ -6390,6 +6391,14 @@ const FeatureEntry kFeatureEntries[] = {
+@@ -6502,6 +6503,14 @@ const FeatureEntry kFeatureEntries[] = {
       FEATURE_VALUE_TYPE(features::kUserDataSnapshot)},
  #endif
  
@@ -380,7 +323,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
 diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
 --- a/chrome/browser/flag_descriptions.cc
 +++ b/chrome/browser/flag_descriptions.cc
-@@ -4899,6 +4899,16 @@ const char kUserDataSnapshotDescription[] =
+@@ -5094,6 +5094,16 @@ const char kUserDataSnapshotDescription[] =
      "update and restoring them after a version rollback.";
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  
@@ -400,7 +343,7 @@ diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descripti
 diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
 --- a/chrome/browser/flag_descriptions.h
 +++ b/chrome/browser/flag_descriptions.h
-@@ -2872,6 +2872,11 @@ extern const char kUserDataSnapshotName[];
+@@ -2995,6 +2995,11 @@ extern const char kUserDataSnapshotName[];
  extern const char kUserDataSnapshotDescription[];
  #endif  // !defined(OS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
  
@@ -415,7 +358,7 @@ diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptio
 diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
 --- a/chrome/browser/prefs/browser_prefs.cc
 +++ b/chrome/browser/prefs/browser_prefs.cc
-@@ -228,6 +228,7 @@
+@@ -227,6 +227,7 @@
  #include "components/ntp_tiles/popular_sites_impl.h"
  #include "components/permissions/contexts/geolocation_permission_context_android.h"
  #include "components/query_tiles/tile_service_prefs.h"
@@ -423,18 +366,18 @@ diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browse
  #else  // defined(OS_ANDROID)
  #include "chrome/browser/accessibility/caption_controller.h"
  #include "chrome/browser/cart/cart_service.h"
-@@ -913,6 +914,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
+@@ -969,6 +970,7 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry,
    translate::TranslatePrefs::RegisterProfilePrefs(registry);
    omnibox::RegisterProfilePrefs(registry);
    ZeroSuggestProvider::RegisterProfilePrefs(registry);
 +  user_scripts::UserScriptsPrefs::RegisterProfilePrefs(registry);
  
- #if BUILDFLAG(ENABLE_EXTENSIONS)
-   ExtensionWebUI::RegisterProfilePrefs(registry);
+ #if BUILDFLAG(ENABLE_SESSION_SERVICE)
+   RegisterSessionServiceLogProfilePrefs(registry);
 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
-@@ -198,6 +198,8 @@
+@@ -200,6 +200,8 @@
  #include "chrome/browser/lacros/cert_db_initializer_factory.h"
  #endif
  
@@ -443,10 +386,10 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
  namespace chrome {
  
  void AddProfilesExtraParts(ChromeBrowserMainParts* main_parts) {
-@@ -452,6 +454,7 @@ void ChromeBrowserMainExtraPartsProfiles::
-   CartServiceFactory::GetInstance();
-   ProfileProtoDBFactory<cart_db::ChromeCartContentProto>::GetInstance();
+@@ -460,6 +462,7 @@ void ChromeBrowserMainExtraPartsProfiles::
  #endif
+   WebDataServiceFactory::GetInstance();
+   webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance();
 +  user_scripts::UserScriptsBrowserClient::GetInstance();
  }
  
@@ -454,7 +397,7 @@ diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
 diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profiles/profile_manager.cc
 --- a/chrome/browser/profiles/profile_manager.cc
 +++ b/chrome/browser/profiles/profile_manager.cc
-@@ -111,6 +111,8 @@
+@@ -112,6 +112,8 @@
  #include "extensions/common/manifest.h"
  #endif
  
@@ -463,7 +406,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
  #if BUILDFLAG(ENABLE_SESSION_SERVICE)
  #include "chrome/browser/sessions/session_service_factory.h"
  #endif
-@@ -1434,6 +1436,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
+@@ -1465,6 +1467,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile,
    }
  
  #endif
@@ -480,7 +423,7 @@ diff --git a/chrome/browser/profiles/profile_manager.cc b/chrome/browser/profile
 diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 --- a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
 +++ b/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc
-@@ -95,6 +95,7 @@
+@@ -84,6 +84,7 @@
  #include "components/security_interstitials/content/urls.h"
  #include "components/signin/public/base/signin_buildflags.h"
  #include "components/site_engagement/content/site_engagement_service.h"
@@ -488,7 +431,7 @@ diff --git a/chrome/browser/ui/webui/chrome_web_ui_controller_factory.cc b/chrom
  #include "content/public/browser/web_contents.h"
  #include "content/public/browser/web_ui.h"
  #include "content/public/common/content_client.h"
-@@ -578,6 +579,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
+@@ -588,6 +589,8 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui,
      return &NewWebUI<UserActionsUI>;
    if (url.host_piece() == chrome::kChromeUIVersionHost)
      return &NewWebUI<VersionUI>;
@@ -519,7 +462,7 @@ diff --git a/chrome/chrome_paks.gni b/chrome/chrome_paks.gni
 diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
 --- a/chrome/renderer/BUILD.gn
 +++ b/chrome/renderer/BUILD.gn
-@@ -162,6 +162,7 @@ static_library("renderer") {
+@@ -163,6 +163,7 @@ static_library("renderer") {
      "//components/contextual_search/content:renderer",
      "//components/data_reduction_proxy/core/common",
      "//components/dom_distiller/content/renderer",
@@ -530,16 +473,16 @@ diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn
 diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
 --- a/chrome/renderer/chrome_content_renderer_client.cc
 +++ b/chrome/renderer/chrome_content_renderer_client.cc
-@@ -166,6 +166,8 @@
- 
- #if defined(OS_ANDROID)
+@@ -168,6 +168,8 @@
  #include "chrome/renderer/sandbox_status_extension_android.h"
+ #include "components/continuous_search/renderer/search_result_extractor_impl.h"  // nogncheck
+ #include "components/embedder_support/android/common/url_constants.h"
 +#include "components/user_scripts/common/user_scripts_features.h"
 +#include "components/user_scripts/renderer/user_scripts_renderer_client.h"
  #else
+ #include "chrome/renderer/cart/commerce_hint_agent.h"
  #include "chrome/renderer/media/chrome_speech_recognition_client.h"
- #include "chrome/renderer/searchbox/searchbox.h"
-@@ -361,6 +363,12 @@ void ChromeContentRendererClient::RenderThreadStarted() {
+@@ -363,6 +365,12 @@ void ChromeContentRendererClient::RenderThreadStarted() {
    ChromeExtensionsRendererClient::GetInstance()->RenderThreadStarted();
  #endif
  
@@ -552,7 +495,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  #if BUILDFLAG(ENABLE_SPELLCHECK)
    if (!spellcheck_)
      InitSpellCheck();
-@@ -497,6 +505,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
+@@ -493,6 +501,13 @@ void ChromeContentRendererClient::RenderFrameCreated(
        render_frame, registry);
  #endif
  
@@ -566,7 +509,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  #if BUILDFLAG(ENABLE_PLUGINS)
    new PepperHelper(render_frame);
  #endif
-@@ -1470,6 +1485,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
+@@ -1455,6 +1470,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart(
        render_frame);
    // |render_frame| might be dead by now.
  #endif
@@ -579,7 +522,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  
  void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
-@@ -1479,6 +1500,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
+@@ -1464,6 +1485,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd(
        render_frame);
    // |render_frame| might be dead by now.
  #endif
@@ -592,7 +535,7 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  
  void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
-@@ -1488,6 +1515,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
+@@ -1473,6 +1500,12 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle(
        render_frame);
    // |render_frame| might be dead by now.
  #endif
@@ -605,66 +548,10 @@ diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer
  }
  
  void ChromeContentRendererClient::
-diff --git a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
---- a/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
-+++ b/components/browser_ui/settings/android/java/src/org/chromium/components/browser_ui/settings/SettingsUtils.java
-@@ -24,6 +24,12 @@ import androidx.preference.PreferenceFragmentCompat;
- 
- import org.chromium.base.ApiCompatibilityUtils;
- 
-+import org.chromium.base.Log;
-+import androidx.preference.PreferenceScreen;
-+import androidx.preference.PreferenceManager;
-+import android.content.res.Resources;
-+import java.lang.reflect.Field;
-+
- /**
-  * A helper class for Settings.
-  */
-@@ -126,4 +132,39 @@ public class SettingsUtils {
-         ImageView imageButton = (ImageView) button;
-         return imageButton.getDrawable() == parentMenu.getOverflowIcon();
-     }
-+
-+    public static PreferenceScreen inflatePrefsAddon(PreferenceFragmentCompat preferenceFragment,
-+                                                     String name,
-+                                                     Field[] fields) {
-+        Resources resources = preferenceFragment.getResources();
-+
-+        for(int count=0; count < fields.length; count++) {
-+            String assetName = fields[count].getName();
-+            if (assetName.startsWith(name)) {
-+                try {
-+                    int resId = fields[count].getInt(null);
-+                    return SettingsUtils.inflatePreferencesFromResource(preferenceFragment, resId);
-+                } catch (IllegalAccessException e) {}
-+            }
-+        }
-+        return null;
-+    }
-+
-+    public static PreferenceScreen inflatePreferencesFromResource(
-+            PreferenceFragmentCompat preferenceFragment, @XmlRes int preferencesResId) {
-+        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-+        try {
-+            PreferenceManager preferenceManager = preferenceFragment.getPreferenceManager();
-+            final PreferenceScreen xmlRoot = preferenceManager.inflateFromResource(
-+                preferenceFragment.getContext(),
-+                preferencesResId, preferenceFragment.getPreferenceScreen());
-+            return xmlRoot;
-+        } finally {
-+            StrictMode.setThreadPolicy(oldPolicy);
-+        }
-+    }
-+
-+    public interface ISupportHelpAndFeedback {
-+        void onHelpAndFeebackPressed();
-+    }
- }
 diff --git a/components/components_strings.grd b/components/components_strings.grd
 --- a/components/components_strings.grd
 +++ b/components/components_strings.grd
-@@ -321,6 +321,7 @@
+@@ -327,6 +327,7 @@
        <part file="undo_strings.grdp" />
        <part file="version_ui_strings.grdp" />
        <part file="webapps_strings.grdp" />
@@ -736,9 +623,9 @@ new file mode 100755
 +    "//content/public/android:content_java",
 +    "//components/prefs/android:java",
 +    "//third_party/android_deps:android_support_v7_appcompat_java",
-+    "//third_party/android_deps:androidx_annotation_annotation_java",
-+    "//third_party/android_deps:androidx_appcompat_appcompat_resources_java",
-+    "//third_party/android_deps:androidx_preference_preference_java",
++    "//third_party/androidx:androidx_annotation_annotation_java",
++    "//third_party/androidx:androidx_appcompat_appcompat_resources_java",
++    "//third_party/androidx:androidx_preference_preference_java",
 +    "//ui/android:ui_java",
 +  ]
 +  resources_package = "org.chromium.components.user_scripts"
@@ -3887,7 +3774,7 @@ new file mode 100644
 +
 +    bool IsEnabled();
 +    void SetEnabled(bool enabled);
-+   
++
 +    void StartupTryout(int number);
 +    int GetCurrentStartupTryout();
 +
@@ -10281,7 +10168,7 @@ new file mode 100755
 diff --git a/tools/gritsettings/resource_ids.spec b/tools/gritsettings/resource_ids.spec
 --- a/tools/gritsettings/resource_ids.spec
 +++ b/tools/gritsettings/resource_ids.spec
-@@ -428,6 +428,12 @@
+@@ -464,6 +464,12 @@
    "components/autofill/core/browser/autofill_address_rewriter_resources.grd":{
      "includes": [2880]
    },