# 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/html_to_js.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_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", "controls:closure_compile", "languages_page:closure_compile", "nearby_share_page:closure_compile", "people_page:closure_compile", "prefs:closure_compile", "privacy_page:closure_compile", "search_engines_page:closure_compile", "settings_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", ":lifetime_browser_proxy", ":router", ":search_settings", ] } 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("lifetime_browser_proxy") { deps = [ "//ui/webui/resources/js:cr" ] externs_list = [ "$externs_path/chrome_send.js" ] } 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("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", "nearby_share_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", ] } if (is_chromeos) { deps += [ "chromeos:closure_compile_module" ] } } js_type_check("closure_compile_local_module") { is_polymer3 = true closure_flags = settings_closure_flags deps = [ ":extension_control_browser_proxy.m", ":global_scroll_target_behavior.m", ":hats_browser_proxy", ":i18n_setup", ":lazy_load", ":lifetime_browser_proxy.m", ":metrics_browser_proxy", ":open_window_proxy", ":page_visibility", ":route", ":router.m", ":search_settings.m", ":settings", ":settings_routes", ":site_favicon", ] } js_library("settings") { deps = [ ":hats_browser_proxy", ":lifetime_browser_proxy.m", ":metrics_browser_proxy", ":open_window_proxy", "about_page:about_page_browser_proxy.m", "autofill_page:multi_store_exception_entry", "autofill_page:multi_store_password_ui_entry", "autofill_page:password_manager_proxy", "people_page:sync_browser_proxy.m", "privacy_page:privacy_page_browser_proxy.m", "safety_check_page:safety_check_browser_proxy", "search_engines_page:search_engines_browser_proxy.m", "settings_ui:settings_ui", ] } 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") { 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") { deps = [ "//ui/webui/resources/js:cr.m" ] } js_library("lazy_load") { deps = [ "autofill_page:autofill_section", "autofill_page:payments_section", "privacy_page:cookies_page", "privacy_page:safe_browsing_browser_proxy", "privacy_page:security_page", "site_settings:local_data_browser_proxy", "site_settings:protocol_handlers", "site_settings:site_settings_prefs_browser_proxy", "site_settings_page", ] } 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") { deps = [ "//ui/webui/resources/js:cr.m" ] } js_library("open_window_proxy") { deps = [ "//ui/webui/resources/js:cr.m" ] } js_library("page_visibility") { deps = [ "//ui/webui/resources/js:load_time_data.m" ] } js_library("route") { deps = [ ":page_visibility", ":router.m", ":settings_routes", "//ui/webui/resources/js:load_time_data.m", ] } 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") { deps = [ ":router.m" ] } js_library("site_favicon") { deps = [ "//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled", "//ui/webui/resources/js:icon.m", ] } group("polymer3_elements") { public_deps = [ # Sub-folder targets "a11y_page:polymer3_elements", "about_page:web_components", "appearance_page:web_components", "autofill_page:web_components", "basic_page:web_components", "clear_browsing_data_dialog:web_components", "controls:polymer3_elements", "downloads_page:web_components", "languages_page:polymer3_elements", "on_startup_page:web_components", "people_page:polymer3_elements", "prefs:polymer3_elements", "printing_page:web_components", "privacy_page:polymer3_elements", "reset_page:web_components", "safety_check_page:web_components", "search_engines_page:web_components", "search_page:web_components", "settings_main:web_components", "settings_menu:web_components", "settings_page:polymer3_elements", "settings_ui:web_components", "site_settings:web_components", "site_settings_page:web_components", # Local targets ":icons_module", ":modulize", ":settings_page_css_module", ":settings_shared_css_module", ":settings_vars_css_module", ":web_components_local", ] if (!is_chromeos) { public_deps += [ "default_browser_page:web_components", "system_page:web_components", ] } if (is_win) { public_deps += [ "chrome_cleanup_page:web_components", "incompatible_applications_page:web_components", ] } } 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" } html_to_js("web_components_local") { js_files = [ "site_favicon.js" ] } js_modulizer("modulize") { input_files = [ "extension_control_browser_proxy.js", "global_scroll_target_behavior.js", "lifetime_browser_proxy.js", "router.js", "search_settings.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", ] }