blob: bedd765578886554322ffe32760ad4499bf624c6 [file] [log] [blame]
# Copyright 2019 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/grit/preprocess_if_expr.gni")
import("//tools/polymer/html_to_js.gni")
import("//tools/polymer/html_to_wrapper.gni")
import("//tools/typescript/ts_library.gni")
import("//ui/webui/resources/tools/generate_grd.gni")
import("//ui/webui/webui_features.gni")
import("../../tools/optimize_webui.gni")
import("./os_settings.gni")
assert(is_chromeos_ash, "ChromeOS Settings is ChromeOS only")
# root_gen_dir is "gen"
# target_gen_dir is "gen/chrome/browser/resources/settings/chromeos"
preprocessed_folder = "preprocessed"
preprocessed_ts_folder = "preprocessed_ts"
web_components_manifest = "web_components_manifest.json"
non_web_component_files_manifest = "non_web_component_files_manifest.json"
browser_settings_tsc_manifest = "browser_settings_tsc_manifest.json"
external_mojo_manifest = "external_mojo_manifest.json"
if (optimize_webui) {
build_manifest_v3 = "build_v3_manifest.json"
optimize_webui("optimize_bundle") {
host = "os-settings"
input = rebase_path("$target_gen_dir/$preprocessed_folder", root_build_dir)
js_module_in_files = [
"chromeos/lazy_load.js",
"chromeos/os_settings.js",
]
js_out_files = [
"lazy_load.rollup.js",
"os_settings.rollup.js",
"shared.rollup.js",
]
out_manifest = "$target_gen_dir/$build_manifest_v3"
deps = [
":build_ts",
":preprocess_browser_settings_tsc",
":preprocess_gen_js_files",
":preprocess_src_js_files",
"//chrome/browser/resources/nearby_share/shared:preprocess_v3",
"//ui/webui/resources:preprocess",
"//ui/webui/resources/cr_components/app_management:build_ts",
]
excludes = [
"app-management/app_management.mojom-lite.js",
"app-management/bitmap.mojom-lite.js",
"app-management/file_path.mojom-lite.js",
"app-management/image_info.mojom-lite.js",
"app-management/image.mojom-lite.js",
"app-management/safe_base_name.mojom-lite.js",
"app-management/types.mojom-lite.js",
"chrome://resources/cr_components/app_management/app_management.mojom-lite.js",
"chrome://resources/cr_components/app_management/app_management.mojom-webui.js",
"chrome://resources/cr_components/app_management/types.mojom-webui.js",
"chrome://resources/cr_components/chromeos/bluetooth/cros_bluetooth_config.js",
"chrome://resources/cr_components/chromeos/cellular_setup/mojo_interface_provider.m.js",
"chrome://resources/cr_components/chromeos/network/mojo_interface_provider.m.js",
"chrome://resources/js/cr.m.js",
"chrome://resources/mojo/ash/services/cellular_setup/public/mojom/cellular_setup.mojom-lite.js",
"chrome://resources/mojo/ash/services/cellular_setup/public/mojom/esim_manager.mojom-lite.js",
"chrome://resources/mojo/chromeos/ash/services/auth_factor_config/public/mojom/auth_factor_config.mojom-webui.js",
"chrome://resources/mojo/chromeos/services/bluetooth_config/public/mojom/cros_bluetooth_config.mojom-webui.js",
"chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom-lite.js",
"chrome://resources/mojo/chromeos/services/network_config/public/mojom/cros_network_config.mojom-webui.js",
"chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-lite.js",
"chrome://resources/mojo/chromeos/services/network_config/public/mojom/network_types.mojom-webui.js",
"chrome://resources/mojo/mojo/public/js/bindings.js",
"chrome://resources/mojo/mojo/public/js/mojo_bindings_lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/big_buffer.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/string16.mojom-webui.js",
"chrome://resources/mojo/mojo/public/mojom/base/time.mojom-lite.js",
"chrome://resources/mojo/mojo/public/mojom/base/time.mojom-webui.js",
"chrome://resources/mojo/mojo/public/mojom/base/unguessable_token.mojom-lite.js",
"chrome://resources/mojo/services/network/public/mojom/ip_address.mojom-lite.js",
"chrome://resources/mojo/skia/public/mojom/bitmap.mojom-lite.js",
"chrome://resources/mojo/skia/public/mojom/image_info.mojom-lite.js",
"chrome://resources/mojo/skia/public/mojom/skcolor.mojom-webui.js",
"chrome://resources/mojo/url/mojom/url.mojom-lite.js",
"mojo/nearby_share.mojom-lite.js",
"mojo/nearby_share_settings.mojom-lite.js",
"mojo/nearby_share_share_type.mojom-lite.js",
"mojo/nearby_share_target_types.mojom-lite.js",
"os_apps_page/app_notification_handler.mojom-lite.js",
]
}
}
# TypeScript Build Configuration
# TODO(crbug/1315757) Gradually remove JS files from pending_src_js_files
# and pending_gen_js_files, and add them as input files here.
# Eventually, ts_library() will be the only build path for all JS/TS files.
ts_library("build_ts") {
tsconfig_base = "tsconfig_base.json"
deps = [
"//third_party/polymer/v3_0:library",
"//ui/webui/resources:library",
"//ui/webui/resources/mojo:library",
]
extra_deps = [
":generate_mojom_webui",
":preprocess_gen_ts_files",
":preprocess_src_ts_files",
"//ash/webui/common/resources:generate_definitions",
]
definitions = [
"//tools/typescript/definitions/chrome_send.d.ts",
"//tools/typescript/definitions/bluetooth.d.ts",
"//tools/typescript/definitions/bluetooth_private.d.ts",
]
root_dir = "$target_gen_dir/$preprocessed_ts_folder"
in_files = src_ts_files + gen_ts_files + mojom_webui_files
out_dir = "$target_gen_dir/$preprocessed_folder"
}
preprocess_if_expr("preprocess_src_ts_files") {
defines = chrome_grit_defines
in_folder = "../"
in_files = src_ts_files
out_folder = "$target_gen_dir/$preprocessed_ts_folder"
}
preprocess_if_expr("preprocess_gen_ts_files") {
defines = chrome_grit_defines
deps = [
":generate_web_component_html_wrapper_files",
":generate_web_components",
]
in_folder = get_path_info("../", "gen_dir")
in_files = gen_ts_files
out_folder = "$target_gen_dir/$preprocessed_ts_folder"
}
html_to_wrapper("generate_web_component_html_wrapper_files") {
in_folder = "../"
in_files = web_component_html_files
out_folder = get_path_info("../", "gen_dir")
}
# TODO(crbug/1315757) Transfer these JS files into ts_library() when
# ready for TS conversion
preprocess_if_expr("preprocess_src_js_files") {
defines = chrome_grit_defines
in_folder = "../"
out_folder = "$target_gen_dir/$preprocessed_folder"
out_manifest = "$target_gen_dir/$non_web_component_files_manifest"
in_files = pending_src_js_files
}
preprocess_if_expr("preprocess_gen_js_files") {
defines = chrome_grit_defines
deps = [ ":generate_web_components" ]
in_folder = get_path_info("../", "gen_dir")
out_folder = "$target_gen_dir/$preprocessed_folder"
out_manifest = "$target_gen_dir/$web_components_manifest"
in_files = pending_gen_js_files
}
# Generate all WebUI mojom files and copy them to preprocessed_ts_folder to be
# input to ts_library(). These files are bundled in optimized builds.
group("generate_mojom_webui") {
public_deps = [
":generate_ash_search_mojo_webui",
":generate_cros_audio_config_mojo_webui",
":generate_personalization_search_mojo_webui",
":generate_settings_mojo_webui",
]
}
copy("generate_cros_audio_config_mojo_webui") {
deps = [ "//ash/components/audio/public/mojom:mojom_webui_js" ]
sources = [ "$root_gen_dir/mojom-webui/ash/components/audio/public/mojom/cros_audio_config.mojom-webui.js" ]
outputs = [ "$target_gen_dir/$preprocessed_ts_folder/mojom-webui/audio/{{source_file_part}}" ]
}
copy("generate_settings_mojo_webui") {
deps =
[ "//chrome/browser/ui/webui/settings/chromeos/constants:mojom_webui_js" ]
sources = [
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/chromeos/constants/routes.mojom-webui.js",
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/chromeos/constants/setting.mojom-webui.js",
]
outputs = [
"$target_gen_dir/$preprocessed_ts_folder/mojom-webui/{{source_file_part}}",
]
}
copy("generate_personalization_search_mojo_webui") {
deps = [ "//ash/webui/personalization_app/search:mojo_bindings_webui_js" ]
sources = [ "$root_gen_dir/mojom-webui/ash/webui/personalization_app/search/search.mojom-webui.js" ]
outputs = [ "$target_gen_dir/$preprocessed_ts_folder/mojom-webui/personalization/{{source_file_part}}" ]
}
copy("generate_ash_search_mojo_webui") {
deps =
[ "//chrome/browser/ui/webui/settings/ash/search:mojo_bindings_webui_js" ]
sources = [
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/ash/search/search.mojom-webui.js",
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/ash/search/search_result_icon.mojom-webui.js",
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/ash/search/user_action_recorder.mojom-webui.js",
]
outputs = [ "$target_gen_dir/$preprocessed_ts_folder/mojom-webui/search/{{source_file_part}}" ]
}
# Mojo files generated by non-OS-settings targets, not bundled.
preprocess_if_expr("preprocess_external_mojo") {
deps = [
"//chrome/browser/ui/webui/settings/ash/os_apps_page/mojom:mojom_js",
"//components/services/app_service/public/mojom:mojom_js",
"//mojo/public/mojom/base",
"//ui/gfx/image/mojom:mojom_js",
"//ui/webui/resources/cr_components/app_management:mojo_bindings_js",
]
in_folder = root_gen_dir
# It does not matter which preprocess folder these files are pasted into, as
# they are not used for bundling; the purpose of this build rule is to
# include them in the generated grd file.
out_folder = "$target_gen_dir/$preprocessed_folder"
out_manifest = "$target_gen_dir/$external_mojo_manifest"
in_files = [
"chrome/browser/ui/webui/settings/ash/os_apps_page/mojom/app_notification_handler.mojom-lite.js",
"components/services/app_service/public/mojom/types.mojom-lite.js",
"mojo/public/mojom/base/file_path.mojom-lite.js",
"mojo/public/mojom/base/safe_base_name.mojom-lite.js",
"ui/gfx/image/mojom/image.mojom-lite.js",
"ui/webui/resources/cr_components/app_management/app_management.mojom-lite.js",
]
}
grit("resources") {
defines = chrome_grit_defines
# These arguments are needed since the grd is generated at build time.
enable_input_discovery_for_gn_analyze = false
source = "$target_gen_dir/os_settings_resources.grd"
deps = [ ":build_grd" ]
outputs = [
"grit/os_settings_resources.h",
"grit/os_settings_resources_map.cc",
"grit/os_settings_resources_map.h",
"os_settings_resources.pak",
]
output_dir = "$root_gen_dir/chrome"
}
generate_grd("build_grd") {
grd_prefix = "os_settings"
out_grd = "$target_gen_dir/${grd_prefix}_resources.grd"
input_files = [
"images/computer_and_bluetooth_switch_dark.svg",
"images/computer_and_bluetooth_switch.svg",
"images/error_badge_dark.svg",
"images/error_badge.svg",
"images/icon_add_cellular.svg",
"images/icon_add_circle.svg",
"images/icon_add_wifi.svg",
"images/icon_pair_bluetooth.svg",
"images/keyboard_shortcut_dark.svg",
"images/keyboard_shortcut.svg",
"images/multidevice_permission_setup_connecting.svg",
"images/multidevice_permission_setup_connecting_dark.svg",
"images/notification_access_connecting_dark.svg",
"images/notification_access_connecting.svg",
"images/notification_access_error_dark.svg",
"images/notification_access_error.svg",
"images/notification_access_finished_dark.svg",
"images/notification_access_finished.svg",
"images/notification_access_setup.svg",
"images/notification_access_setup_dark.svg",
"images/smart_privacy.svg",
"images/smart_privacy_dark.svg",
"images/switch_access_setup_guide_assign_next.svg",
"images/switch_access_setup_guide_assign_next_dark.svg",
"images/switch_access_setup_guide_assign_previous.svg",
"images/switch_access_setup_guide_assign_previous_dark.svg",
"images/switch_access_setup_guide_assign_select.svg",
"images/switch_access_setup_guide_assign_select_dark.svg",
"images/switch_access_setup_guide_auto_scan_enabled.svg",
"images/switch_access_setup_guide_auto_scan_enabled_dark.svg",
"images/switch_access_setup_guide_choose_one_switch.svg",
"images/switch_access_setup_guide_choose_one_switch_dark.svg",
"images/switch_access_setup_guide_choose_three_switches.svg",
"images/switch_access_setup_guide_choose_three_switches_dark.svg",
"images/switch_access_setup_guide_choose_two_switches.svg",
"images/switch_access_setup_guide_choose_two_switches_dark.svg",
"images/switch_access_setup_guide_closing.svg",
"images/switch_access_setup_guide_closing_dark.svg",
"os_settings_v3.html",
"../../nearby_share/shared/nearby_share_progress_bar_dark.json",
"../../nearby_share/shared/nearby_share_progress_bar_light.json",
"../../nearby_share/shared/nearby_share_pulse_animation_dark.json",
"../../nearby_share/shared/nearby_share_pulse_animation_light.json",
]
input_files_base_dir = rebase_path(".", "//")
deps = [
":preprocess_external_mojo",
"../../nearby_share:build_mojo_grdp",
]
grdp_files = [ "$root_gen_dir/chrome/browser/resources/nearby_share/nearby_share_mojo_resources.grdp" ]
manifest_files = [ "$target_gen_dir/$external_mojo_manifest" ]
resource_path_rewrites = [
"chrome/browser/ui/webui/settings/ash/os_apps_page/mojom/app_notification_handler.mojom-lite.js|os_apps_page/app_notification_handler.mojom-lite.js",
"components/services/app_service/public/mojom/types.mojom-lite.js|app-management/types.mojom-lite.js",
"mojo/public/mojom/base/file_path.mojom-lite.js|app-management/file_path.mojom-lite.js",
"mojo/public/mojom/base/safe_base_name.mojom-lite.js|app-management/safe_base_name.mojom-lite.js",
"os_settings_v3.html|chromeos/os_settings_v3.html",
"ui/gfx/image/mojom/image.mojom-lite.js|app-management/image.mojom-lite.js",
"ui/webui/resources/cr_components/app_management/app_management.mojom-lite.js|app-management/app_management.mojom-lite.js",
"../../nearby_share/shared/nearby_share_progress_bar_dark.json|nearby_share_progress_bar_dark.json",
"../../nearby_share/shared/nearby_share_progress_bar_light.json|nearby_share_progress_bar_light.json",
"../../nearby_share/shared/nearby_share_pulse_animation_dark.json|nearby_share_pulse_animation_dark.json",
"../../nearby_share/shared/nearby_share_pulse_animation_light.json|nearby_share_pulse_animation_light.json",
]
if (optimize_webui) {
deps += [ ":optimize_bundle" ]
manifest_files += [ "$target_gen_dir/$build_manifest_v3" ]
input_files += [ "../../nearby_share/shared/nearby_shared_icons.html" ]
resource_path_rewrites += [
"lazy_load.rollup.js|chromeos/lazy_load.js",
"lazy_load.vulcanized.html|chromeos/lazy_load.html",
"os_settings.rollup.js|chromeos/os_settings.js",
"shared.rollup.js|chromeos/shared.rollup.js",
"../../nearby_share/shared/nearby_shared_icons.html|shared/nearby_shared_icons.html",
]
} else {
deps += [
":build_ts",
":preprocess_browser_settings_tsc",
":preprocess_gen_js_files",
":preprocess_src_js_files",
"//chrome/browser/resources/nearby_share/shared:build_v3_grdp",
"//ui/webui/resources/cr_components/app_management:build_ts",
]
grdp_files += [ "$root_gen_dir/chrome/browser/resources/nearby_share/shared/nearby_share_resources_v3.grdp" ]
manifest_files += [
"$target_gen_dir/$web_components_manifest",
"$target_gen_dir/$non_web_component_files_manifest",
"$target_gen_dir/$browser_settings_tsc_manifest",
"$target_gen_dir/build_ts.manifest",
]
resource_path_rewrites += [ "chromeos/os_settings.html|os_settings.html" ]
}
}
# Since Browser Settings is migrating to TypeScript (crbug.com/1234307), and
# some files are still shared with CrOS Settings, need to copy the transpiled
# JS files from TS compiler's output.
preprocess_if_expr("preprocess_browser_settings_tsc") {
defines = chrome_grit_defines
deps = [ "..:build_ts" ]
in_folder = "$root_gen_dir/chrome/browser/resources/settings/tsc"
out_folder = "$target_gen_dir/$preprocessed_folder"
out_manifest = "$target_gen_dir/$browser_settings_tsc_manifest"
# Files that have a corresponding HTML wrapper file.
browser_settings_web_component_files = [
"a11y_page/captions_subpage.js",
"a11y_page/live_caption_section.js",
"controls/controlled_button.js",
"controls/controlled_radio_button.js",
"controls/extension_controlled_indicator.js",
"controls/password_prompt_dialog.js",
"controls/settings_dropdown_menu.js",
"controls/settings_radio_group.js",
"controls/settings_slider.js",
"controls/settings_textarea.js",
"controls/settings_toggle_button.js",
"people_page/signout_dialog.js",
"people_page/sync_account_control.js",
"people_page/sync_controls.js",
"people_page/sync_encryption_options.js",
"people_page/sync_page.js",
"privacy_page/personalization_options.js",
"privacy_page/secure_dns_input.js",
"privacy_page/secure_dns.js",
"settings_page/settings_animated_pages.js",
"settings_page/settings_section.js",
"settings_page/settings_subpage.js",
"site_favicon.js",
]
# Files that don't have a corresponding HTML file.
in_files = [
"appearance_page/fonts_browser_proxy.js",
"controls/cr_policy_pref_mixin.js",
"controls/pref_control_mixin.js",
"controls/settings_boolean_control_mixin.js",
"extension_control_browser_proxy.js",
"icons.html.js",
"open_window_proxy.js",
"people_page/profile_info_browser_proxy.js",
"people_page/sync_browser_proxy.js",
"prefs/prefs.js",
"prefs/prefs_mixin.js",
"prefs/prefs_types.js",
"prefs/pref_util.js",
"privacy_page/autofill_assistant_browser_proxy.js",
"privacy_page/privacy_page_browser_proxy.js",
"relaunch_mixin.js",
"setting_id_param_util.js",
"settings_page_styles.css.js",
"settings_shared.css.js",
"settings_vars.css.js",
]
foreach(f, browser_settings_web_component_files) {
in_files += [
f,
string_replace(f, ".js", ".html.js"),
]
}
}
html_to_js("web_components") {
js_files = [
"os_icons.js",
"os_settings_icons_css.js",
]
}
group("generate_web_components") {
public_deps = [
":web_components",
# Sub-folder targets
"ambient_mode_page:web_components",
"bluetooth_page:web_components",
"crostini_page:web_components",
"date_time_page:web_components",
"device_page:web_components",
"google_assistant_page:web_components",
"guest_os:web_components",
"internet_page:web_components",
"kerberos_page:web_components",
"keyboard_shortcut_banner:web_components",
"multidevice_page:web_components",
"nearby_share_page:web_components",
"os_a11y_page:web_components",
"os_apps_page:web_components",
"os_apps_page/app_management_page:web_components",
"os_apps_page/app_management_page/borealis_page:web_components",
"os_apps_page/app_management_page/plugin_vm_page:web_components",
"os_apps_page/app_notifications_page:web_components",
"os_bluetooth_page:web_components",
"os_files_page:web_components",
"os_languages_page:web_components",
"os_people_page:web_components",
"os_printing_page:web_components",
"os_privacy_page:web_components",
"os_reset_page:web_components",
"os_search_page:web_components",
"os_settings_main:web_components",
"os_settings_menu:web_components",
"os_settings_page:web_components",
"os_settings_search_box:web_components",
"os_settings_ui:web_components",
"os_toolbar:web_components",
"parental_controls_page:web_components",
"personalization_page:web_components",
"settings_scheduler_slider:web_components",
]
}
# TODO(crbug/1315757) Gradually remove closure compilation for subfolders/pages
# that are migrated to TypeScript
group("closure_compile_module") {
deps = [
":closure_compile_local_module",
"ambient_mode_page:closure_compile_module",
"bluetooth_page:closure_compile_module",
"crostini_page:closure_compile_module",
"date_time_page:closure_compile_module",
"device_page:closure_compile_module",
"google_assistant_page:closure_compile_module",
"guest_os:closure_compile_module",
"internet_page:closure_compile_module",
"kerberos_page:closure_compile_module",
"keyboard_shortcut_banner:closure_compile_module",
"multidevice_page:closure_compile_module",
"os_a11y_page:closure_compile_module",
"os_apps_page:closure_compile_module",
"os_apps_page/app_management_page:closure_compile_module",
"os_apps_page/app_management_page/borealis_page:closure_compile_module",
"os_apps_page/app_management_page/plugin_vm_page:closure_compile_module",
"os_apps_page/app_notifications_page:closure_compile",
"os_bluetooth_page:closure_compile_module",
"os_files_page:closure_compile_module",
"os_languages_page:closure_compile_module",
"os_people_page:closure_compile_module",
"os_printing_page:closure_compile_module",
"os_privacy_page:closure_compile_module",
"os_reset_page:closure_compile_module",
"os_search_page:closure_compile_module",
"os_settings_main:closure_compile_module",
"os_settings_menu:closure_compile_module",
"os_settings_page:closure_compile_module",
"os_settings_search_box:closure_compile_module",
"os_settings_ui:closure_compile_module",
"os_toolbar:closure_compile_module",
"parental_controls_page:closure_compile_module",
"personalization_page:closure_compile_module",
"settings_scheduler_slider:closure_compile_module",
]
}
js_type_check("closure_compile_local_module") {
is_polymer3 = true
closure_flags = os_settings_closure_flags
deps = [
":combined_search_handler",
":deep_linking_behavior",
":global_scroll_target_behavior",
":lazy_load",
":metrics_recorder",
":os_icons",
":os_page_visibility",
":os_route",
":os_settings",
":os_settings_icons_css",
":os_settings_routes",
":personalization_search_handler",
":pref_to_setting_metric_converter",
":prefs_behavior",
":route_observer_behavior",
":route_origin_behavior",
":settings_search_handler",
]
}
js_library("os_settings") {
}
js_library("lazy_load") {
}
js_library("deep_linking_behavior") {
deps = [
"..:router",
"//chrome/browser/ui/webui/settings/chromeos/constants:mojom_webui_js",
"//ui/webui/resources/js:assert.m",
"//ui/webui/resources/js:load_time_data.m",
]
}
js_library("global_scroll_target_behavior") {
deps = [
":route_observer_behavior",
"..:router",
"//ui/webui/resources/js:promise_resolver.m",
]
}
js_library("metrics_recorder") {
deps = [
"//chrome/browser/ui/webui/settings/ash/search:mojo_bindings_webui_js",
"//chrome/browser/ui/webui/settings/chromeos/constants:mojom_webui_js",
]
}
js_library("os_icons") {
deps = [
"//third_party/polymer/v3_0/components-chromium/polymer:polymer_bundled",
]
}
js_library("os_page_visibility") {
deps = [ "//ui/webui/resources/js:load_time_data.m" ]
}
js_library("os_route") {
deps = [
":os_settings_routes",
"..:router",
"//chrome/browser/ui/webui/settings/chromeos/constants:mojom_webui_js",
"//ui/webui/resources/js:cr.m",
"//ui/webui/resources/js:load_time_data.m",
]
}
js_library("os_settings_icons_css") {
}
js_library("os_settings_routes") {
deps = [
"..:router",
"//ui/webui/resources/js:load_time_data.m",
]
}
js_library("prefs_behavior") {
deps = [ "//ui/webui/resources/js:assert.m" ]
externs_list = [ "$externs_path/settings_private.js" ]
}
js_library("pref_to_setting_metric_converter") {
deps = [
"//chrome/browser/ui/webui/settings/ash/search:mojo_bindings_webui_js",
"//chrome/browser/ui/webui/settings/chromeos/constants:mojom_webui_js",
]
}
js_library("route_observer_behavior") {
deps = [
"..:router",
"//ui/webui/resources/js:assert.m",
]
}
js_library("route_origin_behavior") {
deps = [
":os_route",
"//ui/webui/resources/js:cr.m",
]
}
js_library("combined_search_handler") {
deps = [
":personalization_search_handler",
":settings_search_handler",
"//ash/webui/personalization_app/search:mojo_bindings_webui_js",
"//mojo/public/mojom/base:base_webui_js",
]
}
js_library("personalization_search_handler") {
deps = [ "//ash/webui/personalization_app/search:mojo_bindings_webui_js" ]
}
js_library("settings_search_handler") {
deps = [
"//chrome/browser/ui/webui/settings/ash/search:mojo_bindings_js_library_for_compile",
"//ui/webui/resources/js:cr.m",
]
}