[Reland] WebUI: Exclude unnecessary build tasks from Android and iOS builds.
Added assertions to make sure that cr_elements/BUILD.gn and
cr_components/BUILD.gn are not loaded at all in Android/iOS builds.
These folders hold Polymer elements, which are not relevant for
Android/iOS since Polymer is not used (and not shipped) on those
platforms.
Those assertions revealed a bunch of places were unnecessary work was
triggered on Android/iOS builds, and had to be fixed.
These were originally discovered as part of migrating various shared
WebUI elements to TypeScript (through bot failures).
Bug: 1189595
Change-Id: I3a3065228056b23a9421e26bdab0c1e970514939
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3544200
Reviewed-by: Robert Sesek <[email protected]>
Auto-Submit: Demetrios Papadopoulos <[email protected]>
Reviewed-by: Rebekah Potter <[email protected]>
Commit-Queue: Demetrios Papadopoulos <[email protected]>
Cr-Commit-Position: refs/heads/main@{#985869}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index ddd365d3..c2349c4 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1984,8 +1984,6 @@
"//chrome/browser/ui/webui/downloads:mojo_bindings",
"//chrome/browser/ui/webui/history_clusters:mojo_bindings",
"//chrome/browser/ui/webui/internals/user_education:mojo_bindings",
- "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
- "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings",
"//chrome/browser/ui/webui/omnibox:mojo_bindings",
"//chrome/browser/ui/webui/read_later:mojo_bindings",
"//chrome/browser/ui/webui/read_later/side_panel:mojo_bindings",
@@ -2410,10 +2408,6 @@
"//ui/surface",
"//ui/web_dialogs",
"//ui/webui",
- "//ui/webui/resources/cr_components/color_change_listener:mojom",
- "//ui/webui/resources/cr_components/customize_themes:mojom",
- "//ui/webui/resources/cr_components/most_visited:mojom",
- "//ui/webui/resources/js/browser_command:mojo_bindings",
]
if (is_chromeos_ash) {
sources += [
@@ -4439,6 +4433,8 @@
"//chrome/browser/ui/color:color_headers",
"//chrome/browser/ui/webui/access_code_cast:mojo_bindings",
"//chrome/browser/ui/webui/image_editor:mojo_bindings",
+ "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
+ "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings",
"//chrome/browser/ui/webui/tab_strip:mojo_bindings",
"//chrome/browser/web_applications",
"//chrome/browser/web_applications/adjustments",
diff --git a/chrome/browser/chrome_browser_interface_binders.cc b/chrome/browser/chrome_browser_interface_binders.cc
index 1b56197..10aeeb4 100644
--- a/chrome/browser/chrome_browser_interface_binders.cc
+++ b/chrome/browser/chrome_browser_interface_binders.cc
@@ -86,7 +86,6 @@
#include "third_party/blink/public/mojom/prerender/prerender.mojom.h"
#include "third_party/blink/public/public_buildflags.h"
#include "ui/accessibility/accessibility_features.h"
-#include "ui/webui/resources/cr_components/customize_themes/customize_themes.mojom.h"
#if BUILDFLAG(ENABLE_UNHANDLED_TAP)
#include "chrome/browser/android/contextualsearch/unhandled_tap_notifier_impl.h"
@@ -172,6 +171,7 @@
#include "media/base/media_switches.h"
#include "media/mojo/mojom/speech_recognition_service.mojom.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
+#include "ui/webui/resources/cr_components/customize_themes/customize_themes.mojom.h"
#include "ui/webui/resources/cr_components/most_visited/most_visited.mojom.h"
#include "ui/webui/resources/js/browser_command/browser_command.mojom.h"
#endif // BUILDFLAG(IS_ANDROID)
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn
index 41a3e4e..5658fea7 100644
--- a/chrome/browser/ui/BUILD.gn
+++ b/chrome/browser/ui/BUILD.gn
@@ -410,8 +410,6 @@
"//chrome/browser/ui/webui/download_shelf:mojo_bindings",
"//chrome/browser/ui/webui/downloads:mojo_bindings",
"//chrome/browser/ui/webui/history_clusters:mojo_bindings",
- "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
- "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings",
"//chrome/browser/ui/webui/omnibox:mojo_bindings",
"//chrome/browser/ui/webui/read_later:mojo_bindings",
"//chrome/browser/ui/webui/read_later/side_panel:mojo_bindings",
@@ -645,9 +643,6 @@
"//ui/surface",
"//ui/web_dialogs",
"//ui/webui",
- "//ui/webui/resources/cr_components/color_change_listener:mojom",
- "//ui/webui/resources/cr_components/customize_themes:mojom",
- "//ui/webui/resources/cr_components/most_visited:mojom",
"//v8:v8_version",
]
@@ -1747,6 +1742,8 @@
"//chrome/browser/ui/webui/app_service_internals:mojo_bindings",
"//chrome/browser/ui/webui/image_editor:mojo_bindings",
"//chrome/browser/ui/webui/internals/user_education:mojo_bindings",
+ "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
+ "//chrome/browser/ui/webui/new_tab_page_third_party:mojo_bindings",
"//chrome/browser/ui/webui/tab_strip:mojo_bindings",
"//chrome/browser/web_applications",
"//chrome/common:buildflags",
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index d91d4dd2d..5341b987 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -5595,7 +5595,6 @@
"//chrome/browser/ui:test_support",
"//chrome/browser/ui/commander:fuzzy_finder",
"//chrome/browser/ui/webui/downloads:mojo_bindings",
- "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
"//chrome/browser/updates/announcement_notification:unit_tests",
"//chrome/browser/video_tutorials:unit_tests",
"//chrome/browser/web_share_target:unit_tests",
@@ -5852,7 +5851,6 @@
"//ui/shell_dialogs",
"//ui/web_dialogs:web_dialogs_unittests",
"//ui/webui",
- "//ui/webui/resources/cr_components/customize_themes:mojom",
"//v8",
]
@@ -6808,6 +6806,7 @@
deps += [
"//chrome/browser/share/core:share_targets_unittest",
+ "//chrome/browser/ui/webui/new_tab_page:mojo_bindings",
"//components/app_constants",
"//components/media_router/common:test_support",
"//components/services/app_service/public/cpp:publisher",
diff --git a/chrome/test/data/webui/cr_components/BUILD.gn b/chrome/test/data/webui/cr_components/BUILD.gn
index d10ff6d..d3ec1ca 100644
--- a/chrome/test/data/webui/cr_components/BUILD.gn
+++ b/chrome/test/data/webui/cr_components/BUILD.gn
@@ -7,6 +7,8 @@
import("//tools/typescript/ts_library.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
+assert(!is_android && !is_ios)
+
preprocessed_files = [ "managed_footnote_test.ts" ]
if (use_nss_certs) {
diff --git a/chrome/test/data/webui/cr_elements/BUILD.gn b/chrome/test/data/webui/cr_elements/BUILD.gn
index eb183cb..bcf2175 100644
--- a/chrome/test/data/webui/cr_elements/BUILD.gn
+++ b/chrome/test/data/webui/cr_elements/BUILD.gn
@@ -6,6 +6,8 @@
import("//tools/typescript/ts_library.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
+assert(!is_android && !is_ios)
+
generate_grd("build_grdp") {
grd_prefix = "webui_cr_elements"
out_grd = "$target_gen_dir/resources.grdp"
diff --git a/ui/webui/BUILD.gn b/ui/webui/BUILD.gn
index eb73049..50cf536 100644
--- a/ui/webui/BUILD.gn
+++ b/ui/webui/BUILD.gn
@@ -26,6 +26,16 @@
"//content/public/browser",
"//services/service_manager/public/cpp",
]
+
+ public_deps = [ "//ui/webui/resources/js/browser_command:mojo_bindings" ]
+
+ if (!is_android && !is_ios) {
+ public_deps += [
+ "//ui/webui/resources/cr_components/color_change_listener:mojom",
+ "//ui/webui/resources/cr_components/customize_themes:mojom",
+ "//ui/webui/resources/cr_components/most_visited:mojom",
+ ]
+ }
}
source_set("test_support") {
diff --git a/ui/webui/resources/BUILD.gn b/ui/webui/resources/BUILD.gn
index 9f8f17a..150ed85 100644
--- a/ui/webui/resources/BUILD.gn
+++ b/ui/webui/resources/BUILD.gn
@@ -101,11 +101,14 @@
}
group("preprocess") {
- public_deps = [
- "cr_components:preprocess",
- "cr_elements:preprocess",
- "js:preprocess",
- ]
+ public_deps = [ "js:preprocess" ]
+
+ if (include_polymer) {
+ public_deps += [
+ "cr_components:preprocess",
+ "cr_elements:preprocess",
+ ]
+ }
}
group("closure_compile") {
@@ -114,7 +117,7 @@
"js:closure_compile_modules",
]
- if (!is_android) {
+ if (include_polymer) {
deps += [
"cr_components:closure_compile",
"cr_elements:closure_compile",
@@ -129,7 +132,7 @@
"js/cr/ui:modulize",
]
- if (!is_android) {
+ if (include_polymer) {
public_deps += [
"cr_components:polymer3_elements",
"cr_elements:polymer3_elements",
@@ -204,21 +207,6 @@
# Files for which .d.ts files will be auto-generated with ts_definitions().
generate_definitions_js_files = [
- "cr_elements/action_link_css.m.js",
- "cr_elements/cr_fingerprint/cr_fingerprint_icon.m.js",
- "cr_elements/cr_actionable_row_style.m.js",
- "cr_elements/cr_icons_css.m.js",
- "cr_elements/cr_auto_img/cr_auto_img.js",
- "cr_elements/cr_input/cr_input_style_css.m.js",
- "cr_elements/cr_menu_selector/cr_menu_selector.js",
- "cr_elements/cr_page_host_style_css.js",
- "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.js",
- "cr_elements/cr_radio_button/cr_radio_button_style_css.m.js",
- "cr_elements/hidden_style_css.m.js",
- "cr_elements/icons.m.js",
- "cr_elements/md_select_css.m.js",
- "cr_elements/shared_style_css.m.js",
- "cr_elements/shared_vars_css.m.js",
"js/action_link.js",
"js/assert.m.js",
"js/color_utils.js",
@@ -238,13 +226,33 @@
"js/util.m.js",
]
-if (is_chromeos_ash) {
+if (include_polymer) {
generate_definitions_js_files += [
- "cr_elements/chromeos/cros_color_overrides.m.js",
- "cr_elements/chromeos/cr_picture/png.js",
- "cr_elements/chromeos/cr_picture/webcam_utils.js",
- "js/cr/ui/store_client.js",
+ "cr_elements/action_link_css.m.js",
+ "cr_elements/cr_fingerprint/cr_fingerprint_icon.m.js",
+ "cr_elements/cr_actionable_row_style.m.js",
+ "cr_elements/cr_icons_css.m.js",
+ "cr_elements/cr_auto_img/cr_auto_img.js",
+ "cr_elements/cr_input/cr_input_style_css.m.js",
+ "cr_elements/cr_menu_selector/cr_menu_selector.js",
+ "cr_elements/cr_page_host_style_css.js",
+ "cr_elements/cr_profile_avatar_selector/cr_profile_avatar_selector_grid.js",
+ "cr_elements/cr_radio_button/cr_radio_button_style_css.m.js",
+ "cr_elements/hidden_style_css.m.js",
+ "cr_elements/icons.m.js",
+ "cr_elements/md_select_css.m.js",
+ "cr_elements/shared_style_css.m.js",
+ "cr_elements/shared_vars_css.m.js",
]
+
+ if (is_chromeos_ash) {
+ generate_definitions_js_files += [
+ "cr_elements/chromeos/cros_color_overrides.m.js",
+ "cr_elements/chromeos/cr_picture/png.js",
+ "cr_elements/chromeos/cr_picture/webcam_utils.js",
+ "js/cr/ui/store_client.js",
+ ]
+ }
}
if (!is_android) {
@@ -258,31 +266,36 @@
tsconfig_base = "tsconfig_base.json"
in_files = [
- "cr_components/iph_bubble/iph_bubble.ts",
- "cr_components/managed_footnote/managed_footnote.ts",
- "cr_components/managed_dialog/managed_dialog.ts",
- "cr_elements/cr_grid/cr_grid.ts",
- "cr_elements/cr_a11y_announcer/cr_a11y_announcer.ts",
- "cr_elements/cr_container_shadow_mixin.ts",
- "cr_elements/cr_nav_menu_item_style.ts",
- "cr_elements/cr_slider/cr_slider.ts",
- "cr_elements/cr_splitter/cr_splitter.ts",
- "cr_elements/cr_tabs/cr_tabs.ts",
- "cr_elements/cr_toolbar/cr_toolbar_selection_overlay.ts",
- "cr_elements/find_shortcut_mixin.ts",
- "cr_elements/mouse_hoverable_mixin.ts",
- "cr_elements/mwb_element_shared_style.ts",
- "cr_elements/mwb_shared_icons.ts",
- "cr_elements/mwb_shared_style.ts",
- "cr_elements/mwb_shared_vars.ts",
- "cr_elements/search_highlight_style_css.ts",
"js/assert_ts.ts",
"js/custom_element.ts",
- "js/i18n_mixin.ts",
- "js/list_property_update_mixin.ts",
- "js/web_ui_listener_mixin.ts",
]
+ if (include_polymer) {
+ in_files += [
+ "cr_components/iph_bubble/iph_bubble.ts",
+ "cr_components/managed_footnote/managed_footnote.ts",
+ "cr_components/managed_dialog/managed_dialog.ts",
+ "cr_elements/cr_grid/cr_grid.ts",
+ "cr_elements/cr_a11y_announcer/cr_a11y_announcer.ts",
+ "cr_elements/cr_container_shadow_mixin.ts",
+ "cr_elements/cr_nav_menu_item_style.ts",
+ "cr_elements/cr_slider/cr_slider.ts",
+ "cr_elements/cr_splitter/cr_splitter.ts",
+ "cr_elements/cr_tabs/cr_tabs.ts",
+ "cr_elements/cr_toolbar/cr_toolbar_selection_overlay.ts",
+ "cr_elements/find_shortcut_mixin.ts",
+ "cr_elements/mouse_hoverable_mixin.ts",
+ "cr_elements/mwb_element_shared_style.ts",
+ "cr_elements/mwb_shared_icons.ts",
+ "cr_elements/mwb_shared_style.ts",
+ "cr_elements/mwb_shared_vars.ts",
+ "cr_elements/search_highlight_style_css.ts",
+ "js/i18n_mixin.ts",
+ "js/list_property_update_mixin.ts",
+ "js/web_ui_listener_mixin.ts",
+ ]
+ }
+
definitions = [
"//tools/typescript/definitions/settings_private.d.ts",
"//tools/typescript/definitions/chrome_send.d.ts",
diff --git a/ui/webui/resources/cr_components/BUILD.gn b/ui/webui/resources/cr_components/BUILD.gn
index b8423954..a225c46 100644
--- a/ui/webui/resources/cr_components/BUILD.gn
+++ b/ui/webui/resources/cr_components/BUILD.gn
@@ -8,6 +8,8 @@
import("//ui/webui/resources/tools/generate_grd.gni")
import("//ui/webui/webui_features.gni")
+assert(!is_android && !is_ios)
+
preprocess_folder =
"$root_gen_dir/ui/webui/resources/preprocessed/cr_components"
preprocess_gen_manifest = "preprocessed_gen_manifest.json"
diff --git a/ui/webui/resources/cr_components/customize_themes/BUILD.gn b/ui/webui/resources/cr_components/customize_themes/BUILD.gn
index b963101..afdbf931 100644
--- a/ui/webui/resources/cr_components/customize_themes/BUILD.gn
+++ b/ui/webui/resources/cr_components/customize_themes/BUILD.gn
@@ -8,6 +8,8 @@
import("//tools/typescript/ts_library.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
+assert(!is_android && !is_ios)
+
group("web_components") {
public_deps = [
":mojom_webui_js",
diff --git a/ui/webui/resources/cr_components/most_visited/BUILD.gn b/ui/webui/resources/cr_components/most_visited/BUILD.gn
index 503c5d4..d41ce59 100644
--- a/ui/webui/resources/cr_components/most_visited/BUILD.gn
+++ b/ui/webui/resources/cr_components/most_visited/BUILD.gn
@@ -7,6 +7,8 @@
import("//tools/typescript/ts_library.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
+assert(!is_android && !is_ios)
+
preprocess_folder =
"$root_gen_dir/ui/webui/resources/preprocessed/cr_components/most_visited"
diff --git a/ui/webui/resources/cr_elements/BUILD.gn b/ui/webui/resources/cr_elements/BUILD.gn
index ce5cfa5b..5085290 100644
--- a/ui/webui/resources/cr_elements/BUILD.gn
+++ b/ui/webui/resources/cr_elements/BUILD.gn
@@ -10,6 +10,8 @@
import("//ui/webui/resources/tools/generate_grd.gni")
import("//ui/webui/resources/tools/js_modulizer.gni")
+assert(!is_android && !is_ios)
+
preprocess_folder = "$root_gen_dir/ui/webui/resources/preprocessed/cr_elements"
preprocess_gen_manifest = "preprocessed_gen_manifest.json"
preprocess_polymer2_manifest = "preprocessed_polymer2_manifest.json"