0

extensions: Show static UI elements on chrome://extensions on desktop android

* Compile extensions_ui.cc
* Register ExtensionsUIConfig
* Include extension resources in PAK
* Include translated strings used in new code
* Some non-trivial dependencies are faked to keep the change small

Bug: 385988433
Test: Open chrome://extensions and confirm the page is rendered.

Change-Id: I49918007871c747ea98eef29fcc4dda834214224
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6193990
Reviewed-by: John Lee <johntlee@chromium.org>
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Commit-Queue: Keigo Oka <oka@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1421188}
This commit is contained in:
Keigo Oka
2025-02-17 17:50:57 -08:00
committed by Chromium LUCI CQ
parent d5e9bde4ba
commit 6301765fc1
23 changed files with 188 additions and 127 deletions

@@ -805,7 +805,7 @@ Chromium is unable to recover your settings.
Google API keys are missing. Some functionality of Chromium will be disabled. Google API keys are missing. Some functionality of Chromium will be disabled.
</message> </message>
<if expr="enable_extensions"> <if expr="enable_extensions_core">
<!-- Extension installed bubble --> <!-- Extension installed bubble -->
<message name="IDS_EXTENSION_INSTALLED_HEADING" desc="Title of the extension-installed bubble. Instructs that the extension was installed."> <message name="IDS_EXTENSION_INSTALLED_HEADING" desc="Title of the extension-installed bubble. Instructs that the extension was installed.">
<ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> has been added to Chromium <ph name="EXTENSION_NAME">$1<ex>Gmail Checker</ex></ph> has been added to Chromium

@@ -326,7 +326,7 @@ are declared in tools/grit/grit_args.gni.
</if> </if>
<!-- MD Extensions specific strings --> <!-- MD Extensions specific strings -->
<if expr="enable_extensions"> <if expr="enable_extensions_core">
<part file="extensions_strings.grdp" /> <part file="extensions_strings.grdp" />
</if> </if>
@@ -500,8 +500,8 @@ are declared in tools/grit/grit_args.gni.
<message name="IDS_DISABLE" desc="Used for Disable on buttons"> <message name="IDS_DISABLE" desc="Used for Disable on buttons">
Disable Disable
</message> </message>
<!-- Search strings are only used in webui, so no mobile. --> <!-- Search strings are only used in webui. These aren't needed on android unless are enabled. -->
<if expr="not is_android"> <if expr="not is_android or enable_extensions_core">
<message name="IDS_SEARCH_CLEARED" desc="Message announced to screenreader users when search is cleared."> <message name="IDS_SEARCH_CLEARED" desc="Message announced to screenreader users when search is cleared.">
Search cleared Search cleared
</message> </message>
@@ -12671,8 +12671,8 @@ Check your passwords anytime in <ph name="GOOGLE_PASSWORD_MANAGER">$1<ex>Google
<!-- Settings related strings not specific to chrome://settings. <!-- Settings related strings not specific to chrome://settings.
(Settings specific strings are in settings_strings.grdp). (Settings specific strings are in settings_strings.grdp).
Android uses native UI for settings --> Not necessary on Android that uses native UI in settings unless extensions are enabled. -->
<if expr="not is_android"> <if expr="not is_android or enable_extensions_core">
<message name="IDS_TOOLBAR_INFORM_SET_HOME_PAGE" desc="The confirmation message when dropping a link on the Home toolbar button"> <message name="IDS_TOOLBAR_INFORM_SET_HOME_PAGE" desc="The confirmation message when dropping a link on the Home toolbar button">
Your home page has been set. Your home page has been set.
</message> </message>

@@ -221,9 +221,11 @@
<include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" /> <include name="IDR_PREF_HASH_SEED_BIN" file="resources\settings\internal\pref_hash_seed.bin" type="BINDATA" />
<include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" /> <include name="IDR_ADDITIONAL_MODULE_IDS" file="${additional_modules_list_file}" use_base_dir="false" type="BINDATA" />
</if> </if>
<if expr="not is_android"> <if expr="not is_android or enable_extensions_core">
<!-- Page not available for guest. --> <!-- Page not available for guest. -->
<include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" /> <include name="IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML" file="resources\page_not_available_for_guest\app.html" type="BINDATA" />
</if>
<if expr="not is_android">
<include name="IDR_IME_WINDOW_CLOSE" file="resources\input_ime\ime_window_close.png" type="BINDATA" /> <include name="IDR_IME_WINDOW_CLOSE" file="resources\input_ime\ime_window_close.png" type="BINDATA" />
<include name="IDR_IME_WINDOW_CLOSE_C" file="resources\input_ime\ime_window_close_click.png" type="BINDATA" /> <include name="IDR_IME_WINDOW_CLOSE_C" file="resources\input_ime\ime_window_close_click.png" type="BINDATA" />
<include name="IDR_IME_WINDOW_CLOSE_H" file="resources\input_ime\ime_window_close_hover.png" type="BINDATA" /> <include name="IDR_IME_WINDOW_CLOSE_H" file="resources\input_ime\ime_window_close_hover.png" type="BINDATA" />

@@ -76,6 +76,8 @@ source_set("extensions") {
"forced_extensions/install_stage_tracker_factory.h", "forced_extensions/install_stage_tracker_factory.h",
"load_error_reporter.cc", "load_error_reporter.cc",
"load_error_reporter.h", "load_error_reporter.h",
"permissions_url_constants.cc",
"permissions_url_constants.h",
"policy_handlers.cc", "policy_handlers.cc",
"policy_handlers.h", "policy_handlers.h",
"window_controller.cc", "window_controller.cc",
@@ -605,8 +607,6 @@ source_set("extensions") {
"permissions/site_permissions_helper.h", "permissions/site_permissions_helper.h",
"permissions_based_management_policy_provider.cc", "permissions_based_management_policy_provider.cc",
"permissions_based_management_policy_provider.h", "permissions_based_management_policy_provider.h",
"permissions_url_constants.cc",
"permissions_url_constants.h",
"pref_mapping.cc", "pref_mapping.cc",
"pref_mapping.h", "pref_mapping.h",
"pref_transformer_interface.h", "pref_transformer_interface.h",

@@ -135,7 +135,7 @@ group("resources") {
public_deps += [ "tab_strip:resources" ] public_deps += [ "tab_strip:resources" ]
} }
if (enable_extensions) { if (enable_extensions_core) {
public_deps += [ "extensions:resources" ] public_deps += [ "extensions:resources" ]
} }

@@ -6,7 +6,7 @@ import("//build/config/chromeos/ui_mode.gni")
import("//extensions/buildflags/buildflags.gni") import("//extensions/buildflags/buildflags.gni")
import("//ui/webui/resources/tools/build_webui.gni") import("//ui/webui/resources/tools/build_webui.gni")
assert(enable_extensions, "enable extensions check failed") assert(enable_extensions_core, "enable extensions check failed")
build_webui("build") { build_webui("build") {
grd_prefix = "extensions" grd_prefix = "extensions"

@@ -1401,10 +1401,6 @@ static_library("ui") {
"webui/extension_control_handler.h", "webui/extension_control_handler.h",
"webui/extensions/extensions_internals_source.cc", "webui/extensions/extensions_internals_source.cc",
"webui/extensions/extensions_internals_source.h", "webui/extensions/extensions_internals_source.h",
"webui/extensions/extensions_ui.cc",
"webui/extensions/extensions_ui.h",
"webui/favicon_source.cc",
"webui/favicon_source.h",
"webui/feedback/feedback_dialog.cc", "webui/feedback/feedback_dialog.cc",
"webui/feedback/feedback_dialog.h", "webui/feedback/feedback_dialog.h",
"webui/feedback/feedback_handler.cc", "webui/feedback/feedback_handler.cc",
@@ -1426,8 +1422,6 @@ static_library("ui") {
"webui/history_clusters/history_clusters_handler.h", "webui/history_clusters/history_clusters_handler.h",
"webui/inspect/inspect_ui.cc", "webui/inspect/inspect_ui.cc",
"webui/inspect/inspect_ui.h", "webui/inspect/inspect_ui.h",
"webui/managed_ui_handler.cc",
"webui/managed_ui_handler.h",
"webui/management/management_ui.cc", "webui/management/management_ui.cc",
"webui/management/management_ui.h", "webui/management/management_ui.h",
"webui/management/management_ui_constants.cc", "webui/management/management_ui_constants.cc",
@@ -1475,8 +1469,6 @@ static_library("ui") {
"webui/on_device_internals/on_device_internals_page_handler.h", "webui/on_device_internals/on_device_internals_page_handler.h",
"webui/on_device_internals/on_device_internals_ui.cc", "webui/on_device_internals/on_device_internals_ui.cc",
"webui/on_device_internals/on_device_internals_ui.h", "webui/on_device_internals/on_device_internals_ui.h",
"webui/page_not_available_for_guest/page_not_available_for_guest_ui.cc",
"webui/page_not_available_for_guest/page_not_available_for_guest_ui.h",
"webui/password_manager/password_manager_ui.cc", "webui/password_manager/password_manager_ui.cc",
"webui/password_manager/password_manager_ui.h", "webui/password_manager/password_manager_ui.h",
"webui/password_manager/promo_card.cc", "webui/password_manager/promo_card.cc",
@@ -1485,8 +1477,6 @@ static_library("ui") {
"webui/password_manager/promo_cards_handler.h", "webui/password_manager/promo_cards_handler.h",
"webui/password_manager/sync_handler.cc", "webui/password_manager/sync_handler.cc",
"webui/password_manager/sync_handler.h", "webui/password_manager/sync_handler.h",
"webui/plural_string_handler.cc",
"webui/plural_string_handler.h",
"webui/policy_indicator_localized_strings_provider.cc", "webui/policy_indicator_localized_strings_provider.cc",
"webui/policy_indicator_localized_strings_provider.h", "webui/policy_indicator_localized_strings_provider.h",
"webui/privacy_sandbox/privacy_sandbox_dialog_handler.cc", "webui/privacy_sandbox/privacy_sandbox_dialog_handler.cc",
@@ -5275,6 +5265,18 @@ static_library("ui") {
} }
if (enable_extensions_core) { if (enable_extensions_core) {
sources += [
"webui/extensions/extensions_ui.cc",
"webui/extensions/extensions_ui.h",
"webui/favicon_source.cc",
"webui/favicon_source.h",
"webui/managed_ui_handler.cc",
"webui/managed_ui_handler.h",
"webui/page_not_available_for_guest/page_not_available_for_guest_ui.cc",
"webui/page_not_available_for_guest/page_not_available_for_guest_ui.h",
"webui/plural_string_handler.cc",
"webui/plural_string_handler.h",
]
deps += [ "//chrome/browser/extensions" ] deps += [ "//chrome/browser/extensions" ]
allow_circular_includes_from += [ "//chrome/browser/extensions" ] allow_circular_includes_from += [ "//chrome/browser/extensions" ]
} }
@@ -5686,6 +5688,9 @@ static_library("ui_public_dependencies") {
"//mojo/public/cpp/bindings", "//mojo/public/cpp/bindings",
"//ui/webui/resources", "//ui/webui/resources",
] ]
if (enable_extensions_core) {
public_deps += [ "//extensions/browser" ]
}
if (!is_android) { if (!is_android) {
public_deps += [ public_deps += [
"//build:branding_buildflags", "//build:branding_buildflags",

@@ -116,9 +116,9 @@
#include "chrome/browser/ui/webui/webapks/webapks_ui.h" #include "chrome/browser/ui/webui/webapks/webapks_ui.h"
#endif // !BUILDFLAG(IS_ANDROID) #endif // !BUILDFLAG(IS_ANDROID)
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#include "chrome/browser/ui/webui/extensions/extensions_ui.h" #include "chrome/browser/ui/webui/extensions/extensions_ui.h"
#endif // !BUILDFLAG(ENABLE_EXTENSIONS) #endif // !BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#if BUILDFLAG(ENABLE_PRINT_PREVIEW) #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
#include "chrome/browser/ui/webui/print_preview/print_preview_ui.h" #include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
@@ -323,9 +323,9 @@ void RegisterChromeWebUIConfigs() {
#endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
// BUILDFLAG(IS_OPENBSD) // BUILDFLAG(IS_OPENBSD)
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
map.AddWebUIConfig(std::make_unique<extensions::ExtensionsUIConfig>()); map.AddWebUIConfig(std::make_unique<extensions::ExtensionsUIConfig>());
#endif // !BUILDFLAG(ENABLE_EXTENSIONS) #endif // !BUILDFLAG(ENABLE_EXTENSIONS_CORE)
#if BUILDFLAG(ENABLE_PRINT_PREVIEW) #if BUILDFLAG(ENABLE_PRINT_PREVIEW)
map.AddWebUIConfig(std::make_unique<printing::PrintPreviewUIConfig>()); map.AddWebUIConfig(std::make_unique<printing::PrintPreviewUIConfig>());

@@ -395,7 +395,15 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
{"safetyCheckExtensionThreeDotDetails", {"safetyCheckExtensionThreeDotDetails",
IDS_EXTENSIONS_SC_THREEDOT_DETAILS}, IDS_EXTENSIONS_SC_THREEDOT_DETAILS},
{"safetyCheckRemoveAll", IDS_EXTENSIONS_SC_REMOVE_ALL}, {"safetyCheckRemoveAll", IDS_EXTENSIONS_SC_REMOVE_ALL},
// TODO(crbug.com/391777809): Make the message available on desktop android
// without adding unused strings.
#if BUILDFLAG(IS_ANDROID)
{"safetyHubHeader", IDS_OK /* placeholder to avoid crash */},
#else
{"safetyHubHeader", IDS_SETTINGS_SAFETY_HUB}, {"safetyHubHeader", IDS_SETTINGS_SAFETY_HUB},
#endif
{"safetyCheckRemoveButtonA11yLabel", {"safetyCheckRemoveButtonA11yLabel",
IDS_EXTENSIONS_SC_REMOVE_BUTTON_A11Y_LABEL}, IDS_EXTENSIONS_SC_REMOVE_BUTTON_A11Y_LABEL},
{"safetyCheckOptionMenuA11yLabel", {"safetyCheckOptionMenuA11yLabel",
@@ -471,6 +479,11 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
"safetyHubThreeDotDetails", "safetyHubThreeDotDetails",
base::FeatureList::IsEnabled(features::kSafetyHubThreeDotDetails)); base::FeatureList::IsEnabled(features::kSafetyHubThreeDotDetails));
// TODO(crbug.com/392777363): Clean these up with non-placeholder values.
#if BUILDFLAG(IS_ANDROID)
source->AddInteger("MV2ExperimentStage", 0);
source->AddBoolean("MV2DeprecationNoticeDismissed", true);
#else
// MV2 deprecation. // MV2 deprecation.
auto* mv2_experiment_manager = ManifestV2ExperimentManager::Get(profile); auto* mv2_experiment_manager = ManifestV2ExperimentManager::Get(profile);
MV2ExperimentStage experiment_stage = MV2ExperimentStage experiment_stage =
@@ -479,6 +492,7 @@ content::WebUIDataSource* CreateAndAddExtensionsSource(Profile* profile,
source->AddBoolean( source->AddBoolean(
"MV2DeprecationNoticeDismissed", "MV2DeprecationNoticeDismissed",
mv2_experiment_manager->DidUserAcknowledgeNoticeGlobally()); mv2_experiment_manager->DidUserAcknowledgeNoticeGlobally());
#endif
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
source->AddString( source->AddString(

@@ -15,8 +15,6 @@
#include "chrome/browser/favicon/history_ui_favicon_request_handler_factory.h" #include "chrome/browser/favicon/history_ui_favicon_request_handler_factory.h"
#include "chrome/browser/history/top_sites_factory.h" #include "chrome/browser/history/top_sites_factory.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/search/instant_service.h"
#include "chrome/browser/ui/webui/webui_util_desktop.h"
#include "chrome/common/url_constants.h" #include "chrome/common/url_constants.h"
#include "chrome/common/webui_url_constants.h" #include "chrome/common/webui_url_constants.h"
#include "components/favicon/core/history_ui_favicon_request_handler.h" #include "components/favicon/core/history_ui_favicon_request_handler.h"
@@ -36,6 +34,11 @@
#include "ui/resources/grit/ui_resources.h" #include "ui/resources/grit/ui_resources.h"
#include "url/gurl.h" #include "url/gurl.h"
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/search/instant_service.h"
#include "chrome/browser/ui/webui/webui_util_desktop.h"
#endif // !BUILDFLAG(IS_ANDROID)
namespace { namespace {
// Generous cap to guard against out-of-memory issues. // Generous cap to guard against out-of-memory issues.
@@ -213,17 +216,23 @@ bool FaviconSource::ShouldServiceRequest(
const GURL& url, const GURL& url,
content::BrowserContext* browser_context, content::BrowserContext* browser_context,
int render_process_id) { int render_process_id) {
#if !BUILDFLAG(IS_ANDROID)
if (url.SchemeIs(chrome::kChromeSearchScheme)) { if (url.SchemeIs(chrome::kChromeSearchScheme)) {
return InstantService::ShouldServiceRequest(url, browser_context, return InstantService::ShouldServiceRequest(url, browser_context,
render_process_id); render_process_id);
} }
#endif
return URLDataSource::ShouldServiceRequest(url, browser_context, return URLDataSource::ShouldServiceRequest(url, browser_context,
render_process_id); render_process_id);
} }
ui::NativeTheme* FaviconSource::GetNativeTheme( ui::NativeTheme* FaviconSource::GetNativeTheme(
const content::WebContents::Getter& wc_getter) { const content::WebContents::Getter& wc_getter) {
#if BUILDFLAG(IS_ANDROID)
return ui::NativeTheme::GetInstanceForNativeUi();
#else
return webui::GetNativeThemeDeprecated(wc_getter.Run()); return webui::GetNativeThemeDeprecated(wc_getter.Run());
#endif
} }
void FaviconSource::OnFaviconDataAvailable( void FaviconSource::OnFaviconDataAvailable(

@@ -113,9 +113,11 @@ void ManagedUIHandler::RemoveObservers() {
base::Value::Dict ManagedUIHandler::GetDataSourceUpdate() const { base::Value::Dict ManagedUIHandler::GetDataSourceUpdate() const {
base::Value::Dict update; base::Value::Dict update;
#if !BUILDFLAG(IS_ANDROID)
update.Set("managedByIcon", GetManagedUiWebUIIcon(profile_)); update.Set("managedByIcon", GetManagedUiWebUIIcon(profile_));
update.Set("managementPageUrl", GetManagedUiUrl(profile_).spec()); update.Set("managementPageUrl", GetManagedUiUrl(profile_).spec());
update.Set("browserManagedByOrg", GetManagedUiWebUILabel(profile_)); update.Set("browserManagedByOrg", GetManagedUiWebUILabel(profile_));
#endif
#if BUILDFLAG(IS_CHROMEOS) #if BUILDFLAG(IS_CHROMEOS)
update.Set("deviceManagedByOrg", GetDeviceManagedUiWebUILabel()); update.Set("deviceManagedByOrg", GetDeviceManagedUiWebUILabel());
#endif #endif

@@ -29,15 +29,24 @@ void CreateAndAddHTMLSource(Profile* profile, const std::string& host_name) {
} else if (host_name == chrome::kChromeUIExtensionsHost) { } else if (host_name == chrome::kChromeUIExtensionsHost) {
page_title = l10n_util::GetStringUTF16(IDS_EXTENSIONS_TOOLBAR_TITLE); page_title = l10n_util::GetStringUTF16(IDS_EXTENSIONS_TOOLBAR_TITLE);
} else if (host_name == password_manager::kChromeUIPasswordManagerHost) { } else if (host_name == password_manager::kChromeUIPasswordManagerHost) {
#if !BUILDFLAG(IS_ANDROID)
page_title = l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UI_TITLE); page_title = l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UI_TITLE);
#endif
} else { } else {
page_title = base::UTF8ToUTF16(host_name); page_title = base::UTF8ToUTF16(host_name);
} }
source->AddString("pageTitle", page_title); source->AddString("pageTitle", page_title);
// TODO(crbug.com/391777809): Make the message available on desktop android
// without adding unused strings.
#if BUILDFLAG(IS_ANDROID)
source->AddString("pageHeading", "");
#else
std::u16string page_heading = l10n_util::GetStringFUTF16( std::u16string page_heading = l10n_util::GetStringFUTF16(
IDS_PAGE_NOT_AVAILABLE_FOR_GUEST_HEADING, page_title); IDS_PAGE_NOT_AVAILABLE_FOR_GUEST_HEADING, page_title);
source->AddString("pageHeading", page_heading); source->AddString("pageHeading", page_heading);
#endif
source->SetDefaultResource(IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML); source->SetDefaultResource(IDR_PAGE_NOT_AVAILABLE_FOR_GUEST_APP_HTML);
} }

@@ -482,14 +482,14 @@ template("chrome_extra_paks") {
if (enable_extensions_core) { if (enable_extensions_core) {
sources += [ sources += [
"$root_gen_dir/chrome/extensions_resources.pak",
"$root_gen_dir/extensions/extensions_renderer_resources.pak", "$root_gen_dir/extensions/extensions_renderer_resources.pak",
"$root_gen_dir/extensions/extensions_resources.pak", "$root_gen_dir/extensions/extensions_resources.pak",
] ]
deps += [ "//extensions:extensions_resources" ] deps += [
} "//chrome/browser/resources/extensions:resources",
if (enable_extensions) { "//extensions:extensions_resources",
sources += [ "$root_gen_dir/chrome/extensions_resources.pak" ] ]
deps += [ "//chrome/browser/resources/extensions:resources" ]
} }
if (enable_pdf) { if (enable_pdf) {

@@ -288,6 +288,7 @@ static_library("common_lib") {
if (enable_extensions_core) { if (enable_extensions_core) {
public_deps += [ public_deps += [
"//chrome/common/extensions", "//chrome/common/extensions",
"//extensions:extensions_resources",
"//extensions/common", "//extensions/common",
"//extensions/common:common_constants", "//extensions/common:common_constants",
"//extensions/common:core_api_provider", "//extensions/common:core_api_provider",
@@ -314,7 +315,6 @@ static_library("common_lib") {
public_deps += [ public_deps += [
"//chrome/common/extensions/api", "//chrome/common/extensions/api",
"//chrome/common/extensions/api:extensions_features", "//chrome/common/extensions/api:extensions_features",
"//extensions:extensions_resources",
"//extensions/common/api", "//extensions/common/api",
"//extensions/strings", "//extensions/strings",
"//services/device/public/cpp/usb", "//services/device/public/cpp/usb",

@@ -212,7 +212,7 @@ base::span<const base::cstring_view> ChromeURLHosts() {
#if BUILDFLAG(ENABLE_NACL) #if BUILDFLAG(ENABLE_NACL)
kChromeUINaClHost, kChromeUINaClHost,
#endif #endif
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS_CORE)
kChromeUIExtensionsHost, kChromeUIExtensionsHost,
kChromeUIExtensionsInternalsHost, kChromeUIExtensionsInternalsHost,
#endif #endif

@@ -32,6 +32,7 @@
#include "base/values.h" #include "base/values.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "build/chromeos_buildflags.h" #include "build/chromeos_buildflags.h"
#include "components/guest_view/buildflags/buildflags.h"
#include "content/public/common/content_features.h" #include "content/public/common/content_features.h"
#include "content/public/common/content_switches.h" #include "content/public/common/content_switches.h"
#include "content/public/renderer/render_frame.h" #include "content/public/renderer/render_frame.h"
@@ -1504,11 +1505,13 @@ void Dispatcher::RequireGuestViewModules(ScriptContext* context) {
module_system->Require("appViewDeny"); module_system->Require("appViewDeny");
} }
#if BUILDFLAG(ENABLE_GUEST_VIEW)
// Require ExtensionOptions. // Require ExtensionOptions.
if (context->GetAvailability("extensionOptionsInternal").is_available()) { if (context->GetAvailability("extensionOptionsInternal").is_available()) {
requires_guest_view_module = true; requires_guest_view_module = true;
module_system->Require("extensionOptionsElement"); module_system->Require("extensionOptionsElement");
} }
#endif
// Require WebView. // Require WebView.
if (context->GetAvailability("webViewInternal").is_available()) { if (context->GetAvailability("webViewInternal").is_available()) {

@@ -99,7 +99,7 @@
</if> </if>
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON" file="common/default_favicon.png" /> <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON" file="common/default_favicon.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK" file="common/default_favicon_dark.png" /> <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK" file="common/default_favicon_dark.png" />
<if expr="not is_android"> <if expr="not is_android or is_desktop_android">
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_32" file="common/default_favicon_32.png" /> <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_32" file="common/default_favicon_32.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK_32" file="common/default_favicon_dark_32.png" /> <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_DARK_32" file="common/default_favicon_dark_32.png" />
<structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_64" file="common/default_favicon_64.png" /> <structure type="chrome_scaled_image" name="IDR_DEFAULT_FAVICON_64" file="common/default_favicon_64.png" />

@@ -50,15 +50,24 @@ generate_grd("build_grd") {
"$target_gen_dir/mojo/resources.grdp", "$target_gen_dir/mojo/resources.grdp",
] ]
if ((!is_android && !is_ios) || is_desktop_android) {
public_deps += [
"cr_components/cr_shortcut_input:build_grdp",
"cr_components/managed_footnote:build_grdp",
]
grdp_files += [
"$target_gen_dir/cr_components/cr_shortcut_input/resources.grdp",
"$target_gen_dir/cr_components/managed_footnote/resources.grdp",
]
}
if (!is_android && !is_ios) { if (!is_android && !is_ios) {
public_deps += [ public_deps += [
"cr_components/app_management:build_grdp", "cr_components/app_management:build_grdp",
"cr_components/cr_shortcut_input:build_grdp",
"cr_components/customize_color_scheme_mode:build_grdp", "cr_components/customize_color_scheme_mode:build_grdp",
"cr_components/help_bubble:build_grdp", "cr_components/help_bubble:build_grdp",
"cr_components/localized_link:build_grdp", "cr_components/localized_link:build_grdp",
"cr_components/managed_dialog:build_grdp", "cr_components/managed_dialog:build_grdp",
"cr_components/managed_footnote:build_grdp",
"cr_components/most_visited:build_grdp", "cr_components/most_visited:build_grdp",
"cr_components/theme_color_picker:build_grdp", "cr_components/theme_color_picker:build_grdp",
"//third_party/d3:build_grdp", "//third_party/d3:build_grdp",
@@ -69,12 +78,10 @@ generate_grd("build_grd") {
"$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp", "$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp",
"$target_gen_dir/cr_components/app_management/resources.grdp", "$target_gen_dir/cr_components/app_management/resources.grdp",
"$target_gen_dir/cr_components/theme_color_picker/resources.grdp", "$target_gen_dir/cr_components/theme_color_picker/resources.grdp",
"$target_gen_dir/cr_components/cr_shortcut_input/resources.grdp",
"$target_gen_dir/cr_components/customize_color_scheme_mode/resources.grdp", "$target_gen_dir/cr_components/customize_color_scheme_mode/resources.grdp",
"$target_gen_dir/cr_components/help_bubble/resources.grdp", "$target_gen_dir/cr_components/help_bubble/resources.grdp",
"$target_gen_dir/cr_components/localized_link/resources.grdp", "$target_gen_dir/cr_components/localized_link/resources.grdp",
"$target_gen_dir/cr_components/managed_dialog/resources.grdp", "$target_gen_dir/cr_components/managed_dialog/resources.grdp",
"$target_gen_dir/cr_components/managed_footnote/resources.grdp",
"$target_gen_dir/cr_components/most_visited/resources.grdp", "$target_gen_dir/cr_components/most_visited/resources.grdp",
] ]

@@ -4,7 +4,7 @@
import("//ui/webui/resources/tools/build_webui.gni") import("//ui/webui/resources/tools/build_webui.gni")
assert(!is_android && !is_ios) assert((!is_android && !is_ios) || is_desktop_android)
build_webui("build") { build_webui("build") {
grd_prefix = "cr_components_cr_shortcut_input" grd_prefix = "cr_components_cr_shortcut_input"

@@ -4,7 +4,7 @@
import("//ui/webui/resources/tools/build_webui.gni") import("//ui/webui/resources/tools/build_webui.gni")
assert(!is_android && !is_ios) assert((!is_android && !is_ios) || is_desktop_android)
build_webui("build") { build_webui("build") {
grd_prefix = "cr_components_managed_footnote" grd_prefix = "cr_components_managed_footnote"

@@ -36,35 +36,17 @@ build_webui("build") {
"cr_tabs/cr_tabs.css", "cr_tabs/cr_tabs.css",
] ]
if (!is_android && !is_ios) { if ((!is_android && !is_ios) || is_desktop_android) {
web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ] web_component_files += [ "cr_a11y_announcer/cr_a11y_announcer.ts" ]
non_web_component_files += [ non_web_component_files += [
"cr_container_shadow_mixin.ts",
"cr_container_shadow_mixin_lit.ts", "cr_container_shadow_mixin_lit.ts",
"cr_icon/iconset_map.ts", "cr_icon/iconset_map.ts",
"cr_radio_button/cr_radio_button_mixin.ts",
"cr_radio_button/cr_radio_button_mixin_lit.ts", "cr_radio_button/cr_radio_button_mixin_lit.ts",
"cr_ripple/cr_ripple_mixin_polymer.ts",
"cr_scroll_observer_mixin.ts",
"cr_scroll_observer_mixin_lit.ts", "cr_scroll_observer_mixin_lit.ts",
"cr_search_field/cr_search_field_mixin.ts",
"cr_search_field/cr_search_field_mixin_lit.ts", "cr_search_field/cr_search_field_mixin_lit.ts",
"find_shortcut_manager.ts",
"find_shortcut_mixin.ts",
"find_shortcut_mixin_lit.ts",
"focus_row_mixin.ts",
"focus_row_mixin_delegate.ts",
"focus_row_mixin_lit.ts",
"i18n_mixin.ts",
"i18n_mixin_lit.ts", "i18n_mixin_lit.ts",
"icons.html.ts", "icons.html.ts",
"list_property_update_mixin.ts",
"mouse_hoverable_mixin.ts",
"mouse_hoverable_mixin_lit.ts",
"policy/cr_policy_types.ts",
"store_client/store_client.ts",
"web_ui_listener_mixin.ts",
"web_ui_listener_mixin_lit.ts", "web_ui_listener_mixin_lit.ts",
# Web components files that either # Web components files that either
@@ -72,11 +54,8 @@ build_webui("build") {
# - have a checked-in *.html.ts wrapper file instead of auto-generated # - have a checked-in *.html.ts wrapper file instead of auto-generated
"cr_action_menu/cr_action_menu.html.ts", "cr_action_menu/cr_action_menu.html.ts",
"cr_action_menu/cr_action_menu.ts", "cr_action_menu/cr_action_menu.ts",
"cr_auto_img/cr_auto_img.ts",
"cr_checkbox/cr_checkbox.html.ts", "cr_checkbox/cr_checkbox.html.ts",
"cr_checkbox/cr_checkbox.ts", "cr_checkbox/cr_checkbox.ts",
"cr_chip/cr_chip.html.ts",
"cr_chip/cr_chip.ts",
"cr_collapse/cr_collapse.html.ts", "cr_collapse/cr_collapse.html.ts",
"cr_collapse/cr_collapse.ts", "cr_collapse/cr_collapse.ts",
"cr_dialog/cr_dialog.html.ts", "cr_dialog/cr_dialog.html.ts",
@@ -85,35 +64,22 @@ build_webui("build") {
"cr_drawer/cr_drawer.ts", "cr_drawer/cr_drawer.ts",
"cr_expand_button/cr_expand_button.html.ts", "cr_expand_button/cr_expand_button.html.ts",
"cr_expand_button/cr_expand_button.ts", "cr_expand_button/cr_expand_button.ts",
"cr_feedback_buttons/cr_feedback_buttons.html.ts", "cr_icon_button/cr_icon_button.html.ts",
"cr_feedback_buttons/cr_feedback_buttons.ts", "cr_icon_button/cr_icon_button.ts",
"cr_grid/cr_grid.html.ts",
"cr_grid/cr_grid.ts",
"cr_icon/cr_icon.ts", "cr_icon/cr_icon.ts",
"cr_icon/cr_iconset.html.ts", "cr_icon/cr_iconset.html.ts",
"cr_icon/cr_iconset.ts", "cr_icon/cr_iconset.ts",
"cr_icon_button/cr_icon_button.html.ts",
"cr_icon_button/cr_icon_button.ts",
"cr_infinite_list/cr_infinite_list.ts", "cr_infinite_list/cr_infinite_list.ts",
"cr_input/cr_input.html.ts", "cr_input/cr_input.html.ts",
"cr_input/cr_input.ts", "cr_input/cr_input.ts",
"cr_lazy_list/cr_lazy_list.ts", "cr_lazy_list/cr_lazy_list.ts",
"cr_lazy_render/cr_lazy_render.ts",
"cr_lazy_render/cr_lazy_render_lit.ts", "cr_lazy_render/cr_lazy_render_lit.ts",
"cr_link_row/cr_link_row.html.ts", "cr_link_row/cr_link_row.html.ts",
"cr_link_row/cr_link_row.ts", "cr_link_row/cr_link_row.ts",
"cr_loading_gradient/cr_loading_gradient.html.ts",
"cr_loading_gradient/cr_loading_gradient.ts",
"cr_menu_selector/cr_menu_selector.html.ts", "cr_menu_selector/cr_menu_selector.html.ts",
"cr_menu_selector/cr_menu_selector.ts", "cr_menu_selector/cr_menu_selector.ts",
"cr_page_selector/cr_page_selector.html.ts", "cr_page_selector/cr_page_selector.html.ts",
"cr_page_selector/cr_page_selector.ts", "cr_page_selector/cr_page_selector.ts",
"cr_profile_avatar_selector/cr_profile_avatar_selector.html.ts",
"cr_profile_avatar_selector/cr_profile_avatar_selector.ts",
"cr_progress/cr_progress.html.ts",
"cr_progress/cr_progress.ts",
"cr_radio_button/cr_card_radio_button.html.ts",
"cr_radio_button/cr_card_radio_button.ts",
"cr_radio_button/cr_radio_button.html.ts", "cr_radio_button/cr_radio_button.html.ts",
"cr_radio_button/cr_radio_button.ts", "cr_radio_button/cr_radio_button.ts",
"cr_radio_group/cr_radio_group.html.ts", "cr_radio_group/cr_radio_group.html.ts",
@@ -121,98 +87,144 @@ build_webui("build") {
"cr_search_field/cr_search_field.html.ts", "cr_search_field/cr_search_field.html.ts",
"cr_search_field/cr_search_field.ts", "cr_search_field/cr_search_field.ts",
"cr_selectable_mixin.ts", "cr_selectable_mixin.ts",
"cr_slider/cr_slider.html.ts",
"cr_slider/cr_slider.ts",
"cr_textarea/cr_textarea.html.ts",
"cr_textarea/cr_textarea.ts",
"cr_toast/cr_toast.html.ts",
"cr_toast/cr_toast.ts",
"cr_toast/cr_toast_manager.html.ts", "cr_toast/cr_toast_manager.html.ts",
"cr_toast/cr_toast_manager.ts", "cr_toast/cr_toast_manager.ts",
"cr_toast/cr_toast.html.ts",
"cr_toast/cr_toast.ts",
"cr_toggle/cr_toggle.html.ts", "cr_toggle/cr_toggle.html.ts",
"cr_toggle/cr_toggle.ts", "cr_toggle/cr_toggle.ts",
"cr_toolbar/cr_toolbar.html.ts",
"cr_toolbar/cr_toolbar.ts",
"cr_toolbar/cr_toolbar_search_field.html.ts", "cr_toolbar/cr_toolbar_search_field.html.ts",
"cr_toolbar/cr_toolbar_search_field.ts", "cr_toolbar/cr_toolbar_search_field.ts",
"cr_toolbar/cr_toolbar_selection_overlay.html.ts", "cr_toolbar/cr_toolbar.html.ts",
"cr_toolbar/cr_toolbar_selection_overlay.ts", "cr_toolbar/cr_toolbar.ts",
"cr_tooltip/cr_tooltip.html.ts", "cr_tooltip/cr_tooltip.html.ts",
"cr_tooltip/cr_tooltip.ts", "cr_tooltip/cr_tooltip.ts",
"cr_url_list_item/cr_url_list_item.html.ts",
"cr_url_list_item/cr_url_list_item.ts",
"cr_view_manager/cr_view_manager.html.ts", "cr_view_manager/cr_view_manager.html.ts",
"cr_view_manager/cr_view_manager.ts", "cr_view_manager/cr_view_manager.ts",
"policy/cr_policy_indicator.html.ts",
"policy/cr_policy_indicator.ts",
"policy/cr_tooltip_icon.html.ts", "policy/cr_tooltip_icon.html.ts",
"policy/cr_tooltip_icon.ts", "policy/cr_tooltip_icon.ts",
] ]
css_files += [ css_files += [
"action_link.css",
"action_link_lit.css", "action_link_lit.css",
"cr_action_menu/cr_action_menu.css", "cr_action_menu/cr_action_menu.css",
"cr_actionable_row_style.css",
"cr_actionable_row_style_lit.css", "cr_actionable_row_style_lit.css",
"cr_checkbox/cr_checkbox.css", "cr_checkbox/cr_checkbox.css",
"cr_chip/cr_chip.css",
"cr_collapse/cr_collapse.css", "cr_collapse/cr_collapse.css",
"cr_dialog/cr_dialog.css", "cr_dialog/cr_dialog.css",
"cr_drawer/cr_drawer.css", "cr_drawer/cr_drawer.css",
"cr_expand_button/cr_expand_button.css", "cr_expand_button/cr_expand_button.css",
"cr_icon_button/cr_icon_button.css",
"cr_icon/cr_icon.css",
"cr_icon/cr_iconset.css",
"cr_icons_lit.css",
"cr_infinite_list/cr_infinite_list.css",
"cr_input/cr_input_style_lit.css",
"cr_input/cr_input.css",
"cr_lazy_list/cr_lazy_list.css",
"cr_link_row/cr_link_row.css",
"cr_nav_menu_item_style_lit.css",
"cr_page_selector/cr_page_selector.css",
"cr_radio_button/cr_radio_button_style_lit.css",
"cr_radio_button/cr_radio_button.css",
"cr_radio_group/cr_radio_group.css",
"cr_search_field/cr_search_field.css",
"cr_shared_style_lit.css",
"cr_spinner_style_lit.css",
"cr_toast/cr_toast_manager.css",
"cr_toast/cr_toast.css",
"cr_toggle/cr_toggle.css",
"cr_toolbar/cr_toolbar_search_field.css",
"cr_toolbar/cr_toolbar.css",
"cr_tooltip/cr_tooltip.css",
"cr_view_manager/cr_view_manager.css",
"md_select_lit.css",
"policy/cr_tooltip_icon.css",
]
}
if (!is_android && !is_ios) {
non_web_component_files += [
"cr_container_shadow_mixin.ts",
"cr_radio_button/cr_radio_button_mixin.ts",
"cr_ripple/cr_ripple_mixin_polymer.ts",
"cr_scroll_observer_mixin.ts",
"cr_search_field/cr_search_field_mixin.ts",
"find_shortcut_manager.ts",
"find_shortcut_mixin.ts",
"find_shortcut_mixin_lit.ts",
"focus_row_mixin.ts",
"focus_row_mixin_delegate.ts",
"focus_row_mixin_lit.ts",
"i18n_mixin.ts",
"list_property_update_mixin.ts",
"mouse_hoverable_mixin.ts",
"mouse_hoverable_mixin_lit.ts",
"policy/cr_policy_types.ts",
"store_client/store_client.ts",
"web_ui_listener_mixin.ts",
# Web components files that either
# - don't have a corresponding .html file or
# - have a checked-in *.html.ts wrapper file instead of auto-generated
"cr_auto_img/cr_auto_img.ts",
"cr_chip/cr_chip.html.ts",
"cr_chip/cr_chip.ts",
"cr_feedback_buttons/cr_feedback_buttons.html.ts",
"cr_feedback_buttons/cr_feedback_buttons.ts",
"cr_grid/cr_grid.html.ts",
"cr_grid/cr_grid.ts",
"cr_lazy_render/cr_lazy_render.ts",
"cr_loading_gradient/cr_loading_gradient.html.ts",
"cr_loading_gradient/cr_loading_gradient.ts",
"cr_profile_avatar_selector/cr_profile_avatar_selector.html.ts",
"cr_profile_avatar_selector/cr_profile_avatar_selector.ts",
"cr_progress/cr_progress.html.ts",
"cr_progress/cr_progress.ts",
"cr_radio_button/cr_card_radio_button.html.ts",
"cr_radio_button/cr_card_radio_button.ts",
"cr_slider/cr_slider.html.ts",
"cr_slider/cr_slider.ts",
"cr_textarea/cr_textarea.html.ts",
"cr_textarea/cr_textarea.ts",
"cr_toolbar/cr_toolbar_selection_overlay.html.ts",
"cr_toolbar/cr_toolbar_selection_overlay.ts",
"cr_url_list_item/cr_url_list_item.html.ts",
"cr_url_list_item/cr_url_list_item.ts",
"policy/cr_policy_indicator.html.ts",
"policy/cr_policy_indicator.ts",
]
css_files += [
"action_link.css",
"cr_actionable_row_style.css",
"cr_chip/cr_chip.css",
"cr_feedback_buttons/cr_feedback_buttons.css", "cr_feedback_buttons/cr_feedback_buttons.css",
"cr_grid/cr_grid.css", "cr_grid/cr_grid.css",
"cr_hidden_style.css", "cr_hidden_style.css",
"cr_icon/cr_icon.css",
"cr_icon/cr_iconset.css",
"cr_icon_button/cr_icon_button.css",
"cr_icons.css", "cr_icons.css",
"cr_icons_lit.css",
"cr_infinite_list/cr_infinite_list.css",
"cr_input/cr_input.css",
"cr_input/cr_input_style.css", "cr_input/cr_input_style.css",
"cr_input/cr_input_style_lit.css",
"cr_lazy_list/cr_lazy_list.css",
"cr_link_row/cr_link_row.css",
"cr_loading_gradient/cr_loading_gradient.css", "cr_loading_gradient/cr_loading_gradient.css",
"cr_nav_menu_item_style.css", "cr_nav_menu_item_style.css",
"cr_nav_menu_item_style_lit.css",
"cr_page_host_style.css", "cr_page_host_style.css",
"cr_page_host_style_lit.css", "cr_page_host_style_lit.css",
"cr_page_selector/cr_page_selector.css",
"cr_profile_avatar_selector/cr_profile_avatar_selector.css", "cr_profile_avatar_selector/cr_profile_avatar_selector.css",
"cr_progress/cr_progress.css", "cr_progress/cr_progress.css",
"cr_radio_button/cr_card_radio_button.css", "cr_radio_button/cr_card_radio_button.css",
"cr_radio_button/cr_radio_button.css",
"cr_radio_button/cr_radio_button_style.css", "cr_radio_button/cr_radio_button_style.css",
"cr_radio_button/cr_radio_button_style_lit.css",
"cr_radio_group/cr_radio_group.css",
"cr_search_field/cr_search_field.css",
"cr_shared_style.css", "cr_shared_style.css",
"cr_shared_style_lit.css",
"cr_slider/cr_slider.css", "cr_slider/cr_slider.css",
"cr_spinner_style.css", "cr_spinner_style.css",
"cr_spinner_style_lit.css",
"cr_textarea/cr_textarea.css", "cr_textarea/cr_textarea.css",
"cr_toast/cr_toast.css",
"cr_toast/cr_toast_manager.css",
"cr_toggle/cr_toggle.css",
"cr_toolbar/cr_toolbar.css",
"cr_toolbar/cr_toolbar_search_field.css",
"cr_toolbar/cr_toolbar_selection_overlay.css", "cr_toolbar/cr_toolbar_selection_overlay.css",
"cr_tooltip/cr_tooltip.css",
"cr_url_list_item/cr_url_list_item.css", "cr_url_list_item/cr_url_list_item.css",
"cr_view_manager/cr_view_manager.css",
"md_select.css", "md_select.css",
"md_select_lit.css",
"mwb_element_shared_style.css", "mwb_element_shared_style.css",
"mwb_element_shared_style_lit.css", "mwb_element_shared_style_lit.css",
"mwb_shared_style.css", "mwb_shared_style.css",
"mwb_shared_style_lit.css", "mwb_shared_style_lit.css",
"mwb_shared_vars.css", "mwb_shared_vars.css",
"policy/cr_policy_indicator.css", "policy/cr_policy_indicator.css",
"policy/cr_tooltip_icon.css",
"search_highlight_style.css", "search_highlight_style.css",
] ]
} }

@@ -26,8 +26,8 @@ preprocess_if_expr("preprocess") {
"action_link.css", "action_link.css",
"chrome_shared.css", "chrome_shared.css",
"spinner.css", "spinner.css",
"text_defaults.css",
"text_defaults_md.css", "text_defaults_md.css",
"text_defaults.css",
"widgets.css", "widgets.css",
] ]
@@ -35,7 +35,7 @@ preprocess_if_expr("preprocess") {
in_files += [ "roboto.css" ] in_files += [ "roboto.css" ]
} }
if (include_polymer) { if (include_polymer || is_desktop_android) {
in_files += [ "md_colors.css" ] in_files += [ "md_colors.css" ]
} }
} }

@@ -21,6 +21,7 @@ build_webui("build") {
"focus_grid.ts", "focus_grid.ts",
"focus_outline_manager.ts", "focus_outline_manager.ts",
"focus_row.ts", "focus_row.ts",
"focus_without_ink.ts",
"icon.ts", "icon.ts",
"keyboard_shortcut_list.ts", "keyboard_shortcut_list.ts",
"load_time_data.ts", "load_time_data.ts",
@@ -54,10 +55,7 @@ build_webui("build") {
} }
if (include_polymer) { if (include_polymer) {
non_web_component_files += [ non_web_component_files += [ "browser_command/browser_command_proxy.ts" ]
"browser_command/browser_command_proxy.ts",
"focus_without_ink.ts",
]
} }
mojo_files_deps = [ "./metrics_reporter:mojo_bindings_ts__generator" ] mojo_files_deps = [ "./metrics_reporter:mojo_bindings_ts__generator" ]