blob: 8de3c7a5dfa6a51cae13fc8a7955bf997339778a [file] [log] [blame]
# 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",
]
}