| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//chrome/common/features.gni") |
| import("//third_party/closure_compiler/compile_js.gni") |
| import("//tools/grit/grit_rule.gni") |
| import("//tools/polymer/polymer.gni") |
| import("//ui/webui/resources/tools/js_modulizer.gni") |
| import("//ui/webui/webui_features.gni") |
| import("../optimize_webui.gni") |
| import("settings.gni") |
| |
| if (optimize_webui) { |
| settings_pak_file = "settings_resources.pak" |
| unpak_folder = "settings_resources.unpak" |
| |
| optimize_webui("build") { |
| host = "settings" |
| html_in_files = [ |
| "settings.html", |
| "lazy_load.html", |
| ] |
| html_out_files = [ |
| "vulcanized.html", |
| "lazy_load.vulcanized.html", |
| ] |
| insert_in_head = "<base href=\"chrome://settings\">" |
| input = rebase_path("$target_gen_dir/$unpak_folder", root_build_dir) |
| js_out_files = [ |
| "crisper.js", |
| "lazy_load.crisper.js", |
| ] |
| excludes = [ "chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom.html" ] |
| |
| deps = [ ":unpak" ] |
| } |
| |
| optimize_webui("build_polymer3") { |
| host = "settings" |
| input = rebase_path("$target_gen_dir/$unpak_folder", root_build_dir) |
| js_module_in_files = [ |
| "settings.js", |
| "lazy_load.js", |
| ] |
| js_out_files = [ |
| "settings.rollup.js", |
| "lazy_load.rollup.js", |
| "shared.rollup.js", |
| ] |
| |
| deps = [ |
| ":unpak", |
| "../../../../ui/webui/resources:modulize", |
| ] |
| excludes = [ "chrome://resources/js/cr.m.js" ] |
| } |
| |
| unpak("unpak") { |
| pak_file = settings_pak_file |
| out_folder = unpak_folder |
| |
| deps = [ ":flattened_resources" ] |
| } |
| |
| grit("flattened_resources") { |
| source = "settings_resources.grd" |
| |
| grit_flags = [ |
| "-E", |
| "root_gen_dir=" + rebase_path(root_gen_dir, root_build_dir), |
| ] |
| |
| deps = [ ":polymer3_elements" ] |
| defines = chrome_grit_defines |
| outputs = [ |
| "grit/settings_resources.h", |
| "grit/settings_resources_map.cc", |
| "grit/settings_resources_map.h", |
| settings_pak_file, |
| ] |
| output_dir = "$root_gen_dir/chrome/browser/resources/settings" |
| } |
| } |
| |
| group("closure_compile") { |
| deps = [ |
| ":settings_resources", |
| "a11y_page:closure_compile", |
| "about_page:closure_compile", |
| "appearance_page:closure_compile", |
| "autofill_page:closure_compile", |
| "basic_page:closure_compile", |
| "clear_browsing_data_dialog:closure_compile", |
| "controls:closure_compile", |
| "downloads_page:closure_compile", |
| "languages_page:closure_compile", |
| "on_startup_page:closure_compile", |
| "people_page:closure_compile", |
| "prefs:closure_compile", |
| "printing_page:closure_compile", |
| "privacy_page:closure_compile", |
| "reset_page:closure_compile", |
| "safety_check_page:closure_compile", |
| "search_engines_page:closure_compile", |
| "search_page:closure_compile", |
| "settings_main:closure_compile", |
| "settings_menu:closure_compile", |
| "settings_page:closure_compile", |
| "settings_ui:closure_compile", |
| "site_settings:closure_compile", |
| "site_settings_page:closure_compile", |
| ] |
| |
| if (is_win) { |
| deps += [ |
| "chrome_cleanup_page:closure_compile", |
| "incompatible_applications_page:closure_compile", |
| ] |
| } |
| |
| if (!is_chromeos) { |
| deps += [ |
| "default_browser_page:closure_compile", |
| "system_page:closure_compile", |
| ] |
| } |
| |
| if (is_chromeos) { |
| deps += [ |
| "../../../test/data/webui/settings/chromeos:closure_compile", |
| "chromeos:closure_compile", |
| ] |
| } |
| } |
| |
| js_type_check("settings_resources") { |
| deps = [ |
| ":extension_control_browser_proxy", |
| ":global_scroll_target_behavior", |
| ":hats_browser_proxy", |
| ":lifetime_browser_proxy", |
| ":metrics_browser_proxy", |
| ":open_window_proxy", |
| ":page_visibility", |
| ":plural_string_proxy", |
| ":route", |
| ":router", |
| ":search_settings", |
| ":settings_routes", |
| ] |
| } |
| |
| js_library("extension_control_browser_proxy") { |
| deps = [ |
| "//ui/webui/resources/js:assert", |
| "//ui/webui/resources/js:cr", |
| ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("global_scroll_target_behavior") { |
| deps = [ |
| ":router", |
| "//ui/webui/resources/js:cr", |
| ] |
| } |
| |
| js_library("hats_browser_proxy") { |
| deps = [ "//ui/webui/resources/js:cr" ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("lifetime_browser_proxy") { |
| deps = [ "//ui/webui/resources/js:cr" ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("metrics_browser_proxy") { |
| deps = [ "//ui/webui/resources/js:cr" ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("open_window_proxy") { |
| deps = [ "//ui/webui/resources/js:cr" ] |
| } |
| |
| js_library("plural_string_proxy") { |
| deps = [ "//ui/webui/resources/js:cr" ] |
| } |
| |
| js_library("route") { |
| deps = [ |
| ":page_visibility", |
| ":router", |
| ":settings_routes", |
| "//ui/webui/resources/js:cr", |
| "//ui/webui/resources/js:load_time_data", |
| ] |
| } |
| |
| js_library("router") { |
| deps = [ |
| "//ui/webui/resources/js:cr", |
| "//ui/webui/resources/js:load_time_data", |
| ] |
| externs_list = [ "$externs_path/metrics_private.js" ] |
| } |
| |
| js_library("settings_routes") { |
| deps = [ ":router" ] |
| } |
| |
| js_library("page_visibility") { |
| deps = [ |
| "//ui/webui/resources/js:cr", |
| "//ui/webui/resources/js:load_time_data", |
| ] |
| } |
| |
| js_library("search_settings") { |
| deps = [ |
| "//ui/webui/resources/js:assert", |
| "//ui/webui/resources/js:cr", |
| "//ui/webui/resources/js:search_highlight_utils", |
| "//ui/webui/resources/js:util", |
| ] |
| externs_list = [ "$externs_path/pending_polymer.js" ] |
| } |
| |
| # Polymer 3 related rules. |
| |
| group("closure_compile_module") { |
| deps = [ |
| ":closure_compile_local_module", |
| "a11y_page:closure_compile_module", |
| "about_page:closure_compile_module", |
| "appearance_page:closure_compile_module", |
| "autofill_page:closure_compile_module", |
| "basic_page:closure_compile_module", |
| "clear_browsing_data_dialog:closure_compile_module", |
| "controls:closure_compile_module", |
| "downloads_page:closure_compile_module", |
| "languages_page:closure_compile_module", |
| "on_startup_page:closure_compile_module", |
| "people_page:closure_compile_module", |
| "prefs:closure_compile_module", |
| "printing_page:closure_compile_module", |
| "privacy_page:closure_compile_module", |
| "reset_page:closure_compile_module", |
| "search_engines_page:closure_compile_module", |
| "search_page:closure_compile_module", |
| "settings_main:closure_compile_module", |
| "settings_menu:closure_compile_module", |
| "settings_page:closure_compile_module", |
| "settings_ui:closure_compile_module", |
| "site_settings:closure_compile_module", |
| "site_settings_page:closure_compile_module", |
| ] |
| if (!is_chromeos) { |
| deps += [ |
| "default_browser_page:closure_compile_module", |
| "system_page:closure_compile_module", |
| ] |
| } |
| |
| if (is_win) { |
| deps += [ |
| "chrome_cleanup_page:closure_compile_module", |
| "incompatible_applications_page:closure_compile_module", |
| ] |
| } |
| } |
| |
| js_type_check("closure_compile_local_module") { |
| is_polymer3 = true |
| deps = [ |
| ":extension_control_browser_proxy.m", |
| ":global_scroll_target_behavior.m", |
| ":hats_browser_proxy.m", |
| ":i18n_setup.m", |
| ":lifetime_browser_proxy.m", |
| ":metrics_browser_proxy.m", |
| ":open_window_proxy.m", |
| ":page_visibility.m", |
| ":plural_string_proxy.m", |
| ":route.m", |
| ":router.m", |
| ":search_settings.m", |
| ":settings_routes.m", |
| ":site_favicon.m", |
| ] |
| } |
| |
| js_library("extension_control_browser_proxy.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/extension_control_browser_proxy.m.js" ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| externs_list = [ "$externs_path/chrome_send.js" ] |
| } |
| |
| js_library("i18n_setup.m") { |
| deps = [ "//ui/webui/resources/js:load_time_data.m" ] |
| } |
| |
| js_library("global_scroll_target_behavior.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/global_scroll_target_behavior.m.js" ] |
| deps = [ |
| ":router.m", |
| "//ui/webui/resources/js:promise_resolver.m", |
| ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("hats_browser_proxy.m") { |
| sources = [ |
| "$root_gen_dir/chrome/browser/resources/settings/hats_browser_proxy.m.js", |
| ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("lifetime_browser_proxy.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/lifetime_browser_proxy.m.js" ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("metrics_browser_proxy.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/metrics_browser_proxy.m.js" ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("open_window_proxy.m") { |
| sources = [ |
| "$root_gen_dir/chrome/browser/resources/settings/open_window_proxy.m.js", |
| ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("page_visibility.m") { |
| sources = |
| [ "$root_gen_dir/chrome/browser/resources/settings/page_visibility.m.js" ] |
| deps = [ "//ui/webui/resources/js:load_time_data.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("plural_string_proxy.m") { |
| sources = [ |
| "$root_gen_dir/chrome/browser/resources/settings/plural_string_proxy.m.js", |
| ] |
| deps = [ "//ui/webui/resources/js:cr.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("route.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/route.m.js" ] |
| deps = [ |
| ":page_visibility.m", |
| ":router.m", |
| ":settings_routes.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("router.m") { |
| sources = [ "$root_gen_dir/chrome/browser/resources/settings/router.m.js" ] |
| deps = [ |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| ] |
| extra_deps = [ ":modulize" ] |
| externs_list = [ "$externs_path/metrics_private.js" ] |
| } |
| |
| js_library("search_settings.m") { |
| sources = |
| [ "$root_gen_dir/chrome/browser/resources/settings/search_settings.m.js" ] |
| deps = [ |
| "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", |
| "//ui/webui/resources/js:assert.m", |
| "//ui/webui/resources/js:load_time_data.m", |
| "//ui/webui/resources/js:promise_resolver.m", |
| "//ui/webui/resources/js:search_highlight_utils.m", |
| "//ui/webui/resources/js:util.m", |
| ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("settings_routes.m") { |
| sources = |
| [ "$root_gen_dir/chrome/browser/resources/settings/settings_routes.m.js" ] |
| deps = [ ":router.m" ] |
| extra_deps = [ ":modulize" ] |
| } |
| |
| js_library("site_favicon.m") { |
| sources = |
| [ "$root_gen_dir/chrome/browser/resources/settings/site_favicon.m.js" ] |
| deps = [ |
| "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", |
| "//ui/webui/resources/js:icon.m", |
| ] |
| extra_deps = [ ":site_favicon_module" ] |
| } |
| |
| group("polymer3_elements") { |
| public_deps = [ |
| # Sub-folder targets |
| "a11y_page:polymer3_elements", |
| "about_page:polymer3_elements", |
| "appearance_page:polymer3_elements", |
| "autofill_page:polymer3_elements", |
| "basic_page:polymer3_elements", |
| "clear_browsing_data_dialog:polymer3_elements", |
| "controls:polymer3_elements", |
| "downloads_page:polymer3_elements", |
| "languages_page:polymer3_elements", |
| "on_startup_page:polymer3_elements", |
| "people_page:polymer3_elements", |
| "prefs:polymer3_elements", |
| "printing_page:polymer3_elements", |
| "privacy_page:polymer3_elements", |
| "reset_page:polymer3_elements", |
| "search_engines_page:polymer3_elements", |
| "search_page:polymer3_elements", |
| "settings_main:polymer3_elements", |
| "settings_menu:polymer3_elements", |
| "settings_page:polymer3_elements", |
| "settings_ui:polymer3_elements", |
| "site_settings:polymer3_elements", |
| "site_settings_page:polymer3_elements", |
| |
| # Local targets |
| ":ensure_lazy_loaded_module", |
| ":icons_module", |
| ":modulize", |
| ":settings_page_css_module", |
| ":settings_shared_css_module", |
| ":settings_vars_css_module", |
| ":site_favicon_module", |
| ] |
| |
| if (!is_chromeos) { |
| public_deps += [ |
| "default_browser_page:polymer3_elements", |
| "system_page:polymer3_elements", |
| ] |
| } |
| |
| if (is_win) { |
| public_deps += [ |
| "chrome_cleanup_page:polymer3_elements", |
| "incompatible_applications_page:polymer3_elements", |
| ] |
| } |
| } |
| |
| polymer_modulizer("icons") { |
| js_file = "icons.m.js" |
| html_file = "icons.html" |
| html_type = "iron-iconset" |
| } |
| |
| polymer_modulizer("settings_page_css") { |
| js_file = "settings_page_css.m.js" |
| html_file = "settings_page_css.html" |
| html_type = "style-module" |
| } |
| |
| polymer_modulizer("settings_shared_css") { |
| js_file = "settings_shared_css.m.js" |
| html_file = "settings_shared_css.html" |
| html_type = "style-module" |
| } |
| |
| polymer_modulizer("settings_vars_css") { |
| js_file = "settings_vars_css.m.js" |
| html_file = "settings_vars_css.html" |
| html_type = "custom-style" |
| } |
| |
| polymer_modulizer("site_favicon") { |
| js_file = "site_favicon.js" |
| html_file = "site_favicon.html" |
| html_type = "dom-module" |
| auto_imports = |
| [ "ui/webui/resources/html/icon.html|getFavicon,getFaviconForPageURL" ] |
| } |
| |
| polymer_modulizer("ensure_lazy_loaded") { |
| js_file = "ensure_lazy_loaded.m.js" |
| html_file = "ensure_lazy_loaded.html" |
| html_type = "v3-ready" |
| } |
| |
| js_modulizer("modulize") { |
| input_files = [ |
| "extension_control_browser_proxy.js", |
| "global_scroll_target_behavior.js", |
| "hats_browser_proxy.js", |
| "lifetime_browser_proxy.js", |
| "metrics_browser_proxy.js", |
| "open_window_proxy.js", |
| "plural_string_proxy.js", |
| "page_visibility.js", |
| "route.js", |
| "router.js", |
| "search_settings.js", |
| "settings_routes.js", |
| ] |
| namespace_rewrites = settings_namespace_rewrites + [ |
| "cr.search_highlight_utils.createEmptySearchBubble|createEmptySearchBubble", |
| "cr.search_highlight_utils.findAndRemoveHighlights|findAndRemoveHighlights", |
| "cr.search_highlight_utils.highlight|highlight", |
| "cr.search_highlight_utils.removeHighlights|removeHighlights", |
| "cr.search_highlight_utils.stripDiacritics|stripDiacritics", |
| "Polymer.DomIf|DomIf", |
| ] |
| } |