From: Your Name Date: Wed, 12 Oct 2022 09:19:46 +0000 Subject: WIN ADDTO Experimental user scripts support --- chrome/browser/BUILD.gn | 12 +++++++----- chrome/browser/about_flags.cc | 2 ++ chrome/browser/prefs/browser_prefs.cc | 2 ++ chrome/browser/profiles/BUILD.gn | 4 +++- ...chrome_browser_main_extra_parts_profiles.cc | 4 ++++ chrome/browser/profiles/profile_manager.cc | 4 ++++ chrome/browser/profiles/renderer_updater.cc | 11 ++++++++++- chrome/browser/profiles/renderer_updater.h | 2 ++ .../webui/chrome_web_ui_controller_factory.cc | 2 ++ chrome/renderer/BUILD.gn | 7 ++++++- .../renderer/chrome_content_renderer_client.cc | 18 ++++++++++++++++++ .../renderer/chrome_render_thread_observer.cc | 2 ++ 12 files changed, 62 insertions(+), 8 deletions(-) diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn @@ -3528,11 +3528,13 @@ static_library("browser") { ] deps += [ "//chrome/android/modules/dev_ui/provider:native" ] } - deps += [ - "//components/user_scripts/common", - "//components/user_scripts/browser", - "//components/user_scripts/android", - ] + if (is_android) { + deps += [ + "//components/user_scripts/common", + "//components/user_scripts/browser", + "//components/user_scripts/android", + ] + } } else { #!is_android sources += [ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc @@ -8124,9 +8124,11 @@ const FeatureEntry kFeatureEntries[] = { FEATURE_VALUE_TYPE(ash::features::kClipboardHistoryReorder)}, #endif // BUILDFLAG(IS_CHROMEOS_ASH) +#if BUILDFLAG(IS_ANDROID) {"enable-userscripts-log", flag_descriptions::kEnableLoggingUserScriptsName, flag_descriptions::kEnableLoggingUserScriptsDescription, kOsDesktop | kOsAndroid, FEATURE_VALUE_TYPE(user_scripts::features::kEnableLoggingUserScripts)}, +#endif #if BUILDFLAG(IS_WIN) {"enable-media-foundation-video-capture", 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 @@ -1533,7 +1533,9 @@ void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry, translate::TranslatePrefs::RegisterProfilePrefs(registry); omnibox::RegisterProfilePrefs(registry); ZeroSuggestProvider::RegisterProfilePrefs(registry); +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsPrefs::RegisterProfilePrefs(registry); +#endif #if BUILDFLAG(ENABLE_SESSION_SERVICE) RegisterSessionServiceLogProfilePrefs(registry); diff --git a/chrome/browser/profiles/BUILD.gn b/chrome/browser/profiles/BUILD.gn --- a/chrome/browser/profiles/BUILD.gn +++ b/chrome/browser/profiles/BUILD.gn @@ -57,10 +57,12 @@ source_set("profile") { "//components/profile_metrics", "//components/sync/service", "//components/variations", - "//components/user_scripts/browser", "//content/public/browser", "//extensions/buildflags", ] + if (is_android) { + deps += [ "//components/user_scripts/browser" ] + } if (enable_extensions) { deps += [ "//extensions/browser" ] } 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 @@ -450,7 +450,9 @@ #include "chrome/browser/net/nss_service_factory.h" #endif +#if BUILDFLAG(IS_ANDROID) #include "components/user_scripts/browser/userscripts_browser_client.h" +#endif namespace chrome { @@ -1040,7 +1042,9 @@ void ChromeBrowserMainExtraPartsProfiles:: #endif WebDataServiceFactory::GetInstance(); webrtc_event_logging::WebRtcEventLogManagerKeyedServiceFactory::GetInstance(); +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsBrowserClient::GetInstance(); +#endif } void ChromeBrowserMainExtraPartsProfiles::PreProfileInit() { 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 @@ -106,7 +106,9 @@ #include "extensions/common/manifest.h" #endif +#if BUILDFLAG(IS_ANDROID) #include "components/user_scripts/browser/userscripts_browser_client.h" +#endif #if BUILDFLAG(ENABLE_SESSION_SERVICE) #include "chrome/browser/sessions/app_session_service_factory.h" @@ -1491,11 +1493,13 @@ void ProfileManager::DoFinalInitForServices(Profile* profile, #endif +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsBrowserClient* userscript_client = user_scripts::UserScriptsBrowserClient::GetInstance(); if (userscript_client) { userscript_client->SetProfile(profile); } +#endif #if BUILDFLAG(ENABLE_SUPERVISED_USERS) // Initialization needs to happen after extension system initialization (for diff --git a/chrome/browser/profiles/renderer_updater.cc b/chrome/browser/profiles/renderer_updater.cc --- a/chrome/browser/profiles/renderer_updater.cc +++ b/chrome/browser/profiles/renderer_updater.cc @@ -78,7 +78,9 @@ RendererUpdater::RendererUpdater(Profile* profile) force_youtube_restrict_.Init(policy::policy_prefs::kForceYouTubeRestrict, pref_service); allowed_domains_for_apps_.Init(prefs::kAllowedDomainsForApps, pref_service); +#if BUILDFLAG(IS_ANDROID) activate_userscripts_.Init(user_scripts::prefs::kUserScriptsEnabled, pref_service); +#endif pref_change_registrar_.Init(pref_service); pref_change_registrar_.Add( @@ -93,10 +95,12 @@ RendererUpdater::RendererUpdater(Profile* profile) prefs::kAllowedDomainsForApps, base::BindRepeating(&RendererUpdater::UpdateAllRenderers, base::Unretained(this))); +#if BUILDFLAG(IS_ANDROID) pref_change_registrar_.Add( user_scripts::prefs::kUserScriptsEnabled, base::BindRepeating(&RendererUpdater::UpdateAllRenderers, base::Unretained(this))); +#endif } RendererUpdater::~RendererUpdater() { @@ -250,5 +254,10 @@ chrome::mojom::DynamicParamsPtr RendererUpdater::CreateRendererDynamicParams() #endif force_google_safesearch_.GetValue(), force_youtube_restrict_.GetValue(), allowed_domains_for_apps_.GetValue(), - activate_userscripts_.GetValue()); +#if BUILDFLAG(IS_ANDROID) + activate_userscripts_.GetValue() +#else + false +#endif + ); } diff --git a/chrome/browser/profiles/renderer_updater.h b/chrome/browser/profiles/renderer_updater.h --- a/chrome/browser/profiles/renderer_updater.h +++ b/chrome/browser/profiles/renderer_updater.h @@ -108,7 +108,9 @@ class RendererUpdater : public KeyedService, // Prefs that we sync to the renderers. BooleanPrefMember force_google_safesearch_; +#if BUILDFLAG(IS_ANDROID) BooleanPrefMember activate_userscripts_; +#endif IntegerPrefMember force_youtube_restrict_; StringPrefMember allowed_domains_for_apps_; }; 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 @@ -519,8 +519,10 @@ WebUIFactoryFunction GetWebUIFactoryFunction(WebUI* web_ui, return &NewWebUI; if (url.host_piece() == chrome::kChromeUIVersionHost) return &NewWebUI; +#if BUILDFLAG(IS_ANDROID) if (url.host_piece() == user_scripts::kChromeUIUserScriptsHost) return &NewWebUI; +#endif #if !BUILDFLAG(IS_ANDROID) #if !BUILDFLAG(IS_CHROMEOS) diff --git a/chrome/renderer/BUILD.gn b/chrome/renderer/BUILD.gn --- a/chrome/renderer/BUILD.gn +++ b/chrome/renderer/BUILD.gn @@ -153,7 +153,6 @@ static_library("renderer") { "//components/content_capture/common", "//components/content_capture/renderer", "//components/content_settings/common:mojom", - "//components/user_scripts/renderer", "//components/content_settings/renderer", "//components/continuous_search/renderer", "//components/dom_distiller/content/renderer", @@ -231,6 +230,12 @@ static_library("renderer") { "//v8", ] + if (is_android) { + deps += [ + "//components/user_scripts/renderer", + ] + } + data_deps = [ "//tools/v8_context_snapshot" ] configs += [ "//build/config/compiler:wexit_time_destructors" ] 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 @@ -252,8 +252,10 @@ #include "chrome/renderer/media/chrome_key_systems.h" #endif +#if BUILDFLAG(IS_ANDROID) #include "components/user_scripts/common/user_scripts_features.h" #include "components/user_scripts/renderer/user_scripts_renderer_client.h" +#endif using autofill::AutofillAgent; using autofill::PasswordAutofillAgent; @@ -431,11 +433,13 @@ void ChromeContentRendererClient::RenderThreadStarted() { WebString::FromASCII(extensions::kExtensionScheme)); #endif +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsRendererClient* userscript_client = user_scripts::UserScriptsRendererClient::GetInstance(); if (userscript_client) { userscript_client->RenderThreadStarted(GetChromeObserver()); } +#endif #if BUILDFLAG(ENABLE_SPELLCHECK) if (!spellcheck_) @@ -605,12 +609,14 @@ void ChromeContentRendererClient::RenderFrameCreated( render_frame, registry); #endif +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsRendererClient* userscript_client = user_scripts::UserScriptsRendererClient::GetInstance(); if (userscript_client) { userscript_client->RenderFrameCreated( render_frame, registry); } +#endif #if BUILDFLAG(ENABLE_PPAPI) new PepperHelper(render_frame); @@ -1610,6 +1616,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentStart( render_frame); // |render_frame| might be dead by now. +#endif +#if BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(ENABLE_EXTENSIONS) static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = @@ -1618,6 +1627,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentStart( userscript_client->RunScriptsAtDocumentStart( render_frame); } +#endif } void ChromeContentRendererClient::RunScriptsAtDocumentEnd( @@ -1626,6 +1636,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentEnd( render_frame); // |render_frame| might be dead by now. +#endif +#if BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(ENABLE_EXTENSIONS) static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = @@ -1634,6 +1647,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentEnd( userscript_client->RunScriptsAtDocumentEnd( render_frame); } +#endif } void ChromeContentRendererClient::RunScriptsAtDocumentIdle( @@ -1642,6 +1656,9 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( ChromeExtensionsRendererClient::GetInstance()->RunScriptsAtDocumentIdle( render_frame); // |render_frame| might be dead by now. +#endif +#if BUILDFLAG(IS_ANDROID) +#if BUILDFLAG(ENABLE_EXTENSIONS) static_assert(false, "Compiler error: extensions cannot be enabled with user scripts"); #endif user_scripts::UserScriptsRendererClient* userscript_client = @@ -1650,6 +1667,7 @@ void ChromeContentRendererClient::RunScriptsAtDocumentIdle( userscript_client->RunScriptsAtDocumentIdle( render_frame); } +#endif } void ChromeContentRendererClient:: diff --git a/chrome/renderer/chrome_render_thread_observer.cc b/chrome/renderer/chrome_render_thread_observer.cc --- a/chrome/renderer/chrome_render_thread_observer.cc +++ b/chrome/renderer/chrome_render_thread_observer.cc @@ -219,7 +219,9 @@ void ChromeRenderThreadObserver::SetConfiguration( chrome::mojom::DynamicParamsPtr params) { base::AutoLock lock(dynamic_params_lock_); dynamic_params_ = std::move(params); +#if BUILDFLAG(IS_ANDROID) user_scripts::UserScriptsRendererClient::GetInstance()->ConfigurationUpdated(); +#endif } void ChromeRenderThreadObserver::OnRendererConfigurationAssociatedRequest( -- 2.25.1