# 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 = "" 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", "safety_check_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", "safety_check_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", ] }