blob: 3d215d893ed3550831c5c144bb5738092af05db2 [file] [log] [blame]
# Copyright 2020 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("//third_party/closure_compiler/compile_js.gni")
import("../settings.gni")
# TODO(crbug/1315757) These pending files will should be transferred to their
# respective list (src_ts_files or gen_ts_files) once eligible to be converted
# to TS and input to ts_library().
pending_src_js_files = [
"chromeos/lazy_load.js",
"chromeos/os_settings.js",
"chromeos/internet_page/cellular_setup_settings_delegate.js",
"chromeos/internet_page/internet_page_browser_proxy.js",
"chromeos/multidevice_page/multidevice_browser_proxy.js",
"chromeos/multidevice_page/multidevice_constants.js",
"chromeos/multidevice_page/multidevice_feature_behavior.js",
"chromeos/multidevice_page/multidevice_metrics_logger.js",
"chromeos/os_printing_page/cups_printers_entry_list_behavior.js",
"chromeos/os_printing_page/cups_printer_dialog_util.js",
"chromeos/os_printing_page/cups_printer_types.js",
"chromeos/os_printing_page/cups_printers_browser_proxy.js",
"chromeos/os_printing_page/cups_printers_entry_manager.js",
"chromeos/os_reset_page/os_reset_browser_proxy.js",
]
pending_gen_js_files = [
"chromeos/internet_page/cellular_networks_list.js",
"chromeos/internet_page/cellular_roaming_toggle_button.js",
"chromeos/internet_page/cellular_setup_dialog.js",
"chromeos/internet_page/esim_install_error_dialog.js",
"chromeos/internet_page/esim_remove_profile_dialog.js",
"chromeos/internet_page/esim_rename_dialog.js",
"chromeos/internet_page/internet_config.js",
"chromeos/internet_page/internet_detail_menu.js",
"chromeos/internet_page/internet_detail_page.js",
"chromeos/internet_page/internet_known_networks_page.js",
"chromeos/internet_page/internet_page.js",
"chromeos/internet_page/internet_shared_css.js",
"chromeos/internet_page/internet_subpage.js",
"chromeos/internet_page/network_always_on_vpn.js",
"chromeos/internet_page/network_proxy_section.js",
"chromeos/internet_page/network_summary_item.js",
"chromeos/internet_page/network_summary.js",
"chromeos/internet_page/settings_traffic_counters.js",
"chromeos/internet_page/tether_connection_dialog.js",
"chromeos/multidevice_page/multidevice_combined_setup_item.js",
"chromeos/multidevice_page/multidevice_feature_item.js",
"chromeos/multidevice_page/multidevice_feature_toggle.js",
"chromeos/multidevice_page/multidevice_notification_access_setup_dialog.js",
"chromeos/multidevice_page/multidevice_page.js",
"chromeos/multidevice_page/multidevice_permissions_setup_dialog.js",
"chromeos/multidevice_page/multidevice_radio_button.js",
"chromeos/multidevice_page/multidevice_screen_lock_subpage.js",
"chromeos/multidevice_page/multidevice_smartlock_item.js",
"chromeos/multidevice_page/multidevice_smartlock_subpage.js",
"chromeos/multidevice_page/multidevice_subpage.js",
"chromeos/multidevice_page/multidevice_task_continuation_disabled_link.js",
"chromeos/multidevice_page/multidevice_task_continuation_item.js",
"chromeos/multidevice_page/multidevice_tether_item.js",
"chromeos/multidevice_page/multidevice_wifi_sync_disabled_link.js",
"chromeos/multidevice_page/multidevice_wifi_sync_item.js",
"chromeos/os_printing_page/cups_add_printer_dialog.js",
"chromeos/os_printing_page/cups_add_printer_manually_dialog.js",
"chromeos/os_printing_page/cups_add_printer_manufacturer_model_dialog.js",
"chromeos/os_printing_page/cups_add_print_server_dialog.js",
"chromeos/os_printing_page/cups_edit_printer_dialog.js",
"chromeos/os_printing_page/cups_enterprise_printers.js",
"chromeos/os_printing_page/cups_nearby_printers.js",
"chromeos/os_printing_page/cups_printer_dialog_error.js",
"chromeos/os_printing_page/cups_printers_entry.js",
"chromeos/os_printing_page/cups_printer_shared_css.js",
"chromeos/os_printing_page/cups_printers.js",
"chromeos/os_printing_page/cups_saved_printers.js",
"chromeos/os_printing_page/cups_settings_add_printer_dialog.js",
"chromeos/os_printing_page/os_printing_page.js",
"chromeos/os_reset_page/os_powerwash_dialog_esim_item.js",
"chromeos/os_reset_page/os_powerwash_dialog.js",
"chromeos/os_reset_page/os_reset_page.js",
]
# TODO(crbug/1292025) Files that have their HTML wrapper file generated
# by html_to_wrapper() go here.
web_component_files = [
"chromeos/os_about_page/channel_switcher_dialog.ts",
"chromeos/os_about_page/consumer_auto_update_toggle_dialog.ts",
"chromeos/os_about_page/detailed_build_info.ts",
"chromeos/os_about_page/edit_hostname_dialog.ts",
"chromeos/os_about_page/os_about_page.ts",
"chromeos/os_about_page/update_warning_dialog.ts",
]
# Files that are passed as input to html_to_wrapper().
web_component_html_files = []
foreach(filename, web_component_files) {
if (get_path_info(filename, "extension") == "ts") {
web_component_html_files += [ string_replace(filename, ".ts", ".html") ]
} else {
web_component_html_files += [ string_replace(filename, ".js", ".html") ]
}
}
# Files that are generated by html_to_wrapper().
web_component_html_wrapper_files = []
foreach(filename, web_component_html_files) {
web_component_html_wrapper_files += [ filename + ".ts" ]
}
non_web_component_files = [
"chromeos/combined_search_handler.js",
"chromeos/deep_linking_behavior.js",
"chromeos/ensure_lazy_loaded.js",
"chromeos/global_scroll_target_behavior.js",
"chromeos/metrics_recorder.js",
"chromeos/os_page_visibility.js",
"chromeos/os_route.js",
"chromeos/os_settings_routes.js",
"chromeos/personalization_search_handler.js",
"chromeos/pref_to_setting_metric_converter.js",
"chromeos/prefs_behavior.js",
"chromeos/route_observer_behavior.js",
"chromeos/route_origin_behavior.js",
"chromeos/settings_search_handler.js",
"chromeos/ambient_mode_page/ambient_mode_browser_proxy.js",
"chromeos/ambient_mode_page/constants.js",
"chromeos/bluetooth_page/bluetooth_page_browser_proxy.js",
"chromeos/crostini_page/crostini_browser_proxy.js",
"chromeos/date_time_page/date_time_types.js",
"chromeos/date_time_page/timezone_browser_proxy.js",
"chromeos/device_page/cros_audio_config.js",
"chromeos/device_page/device_page_browser_proxy.js",
"chromeos/device_page/drag_behavior.js",
"chromeos/device_page/layout_behavior.js",
"chromeos/google_assistant_page/google_assistant_browser_proxy.js",
"chromeos/guest_os/guest_os_browser_proxy.js",
"chromeos/kerberos_page/kerberos_accounts_browser_proxy.js",
"chromeos/nearby_share_page/nearby_account_manager_browser_proxy.js",
"chromeos/nearby_share_page/nearby_share_receive_manager.js",
"chromeos/nearby_share_page/types.js",
"chromeos/os_a11y_page/audio_and_captions_page_browser_proxy.js",
"chromeos/os_a11y_page/cursor_and_touchpad_page_browser_proxy.js",
"chromeos/os_a11y_page/keyboard_and_text_input_page_browser_proxy.js",
"chromeos/os_a11y_page/manage_a11y_page_browser_proxy.js",
"chromeos/os_a11y_page/os_a11y_page_browser_proxy.js",
"chromeos/os_a11y_page/switch_access_constants.js",
"chromeos/os_a11y_page/switch_access_subpage_browser_proxy.js",
"chromeos/os_a11y_page/text_to_speech_page_browser_proxy.js",
"chromeos/os_a11y_page/tts_subpage_browser_proxy.js",
"chromeos/os_about_page/about_page_browser_proxy.ts",
"chromeos/os_about_page/device_name_browser_proxy.ts",
"chromeos/os_about_page/device_name_util.ts",
"chromeos/os_apps_page/android_apps_browser_proxy.js",
"chromeos/os_apps_page/app_management_page/actions.js",
"chromeos/os_apps_page/app_management_page/api_listener.js",
"chromeos/os_apps_page/app_management_page/browser_proxy.js",
"chromeos/os_apps_page/app_management_page/fake_page_handler.js",
"chromeos/os_apps_page/app_management_page/reducers.js",
"chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_browser_proxy.js",
"chromeos/os_apps_page/app_management_page/store.js",
"chromeos/os_apps_page/app_management_page/store_client.js",
"chromeos/os_apps_page/app_management_page/util.js",
"chromeos/os_apps_page/app_management_page/types.js",
"chromeos/os_apps_page/app_notifications_page/mojo_interface_provider.js",
"chromeos/os_bluetooth_page/os_bluetooth_devices_subpage_browser_proxy.js",
"chromeos/os_bluetooth_page/settings_fast_pair_constants.js",
"chromeos/os_people_page/account_manager_browser_proxy.js",
"chromeos/os_people_page/fingerprint_browser_proxy.js",
"chromeos/os_people_page/lock_state_behavior.js",
"chromeos/os_people_page/os_sync_browser_proxy.js",
"chromeos/os_privacy_page/metrics_consent_browser_proxy.js",
"chromeos/os_privacy_page/peripheral_data_access_browser_proxy.js",
"chromeos/os_privacy_page/privacy_hub_browser_proxy.js",
"chromeos/os_languages_page/input_method_settings.js",
"chromeos/os_languages_page/languages_browser_proxy.js",
"chromeos/os_languages_page/languages.js",
"chromeos/os_languages_page/languages_types.js",
"chromeos/os_languages_page/input_method_util.js",
"chromeos/os_languages_page/languages_metrics_proxy.js",
"chromeos/os_search_page/search_engines_browser_proxy.js",
"chromeos/os_settings_page/main_page_behavior.js",
"chromeos/parental_controls_page/parental_controls_browser_proxy.js",
"chromeos/personalization_page/change_picture_browser_proxy.js",
"chromeos/personalization_page/personalization_hub_browser_proxy.js",
"chromeos/personalization_page/wallpaper_browser_proxy.js",
# Files below are from Browser Settings and shared with ChromeOS Settings
"i18n_setup.ts",
"lifetime_browser_proxy.ts",
"router.js",
]
# Files that are generated by html_to_js().
gen_web_component_files = [
"chromeos/os_icons.js",
"chromeos/os_settings_icons_css.js",
"chromeos/ambient_mode_page/album_item.js",
"chromeos/ambient_mode_page/album_list.js",
"chromeos/ambient_mode_page/ambient_mode_page.js",
"chromeos/ambient_mode_page/ambient_mode_photos_page.js",
"chromeos/ambient_mode_page/art_album_dialog.js",
"chromeos/ambient_mode_page/text_with_tooltip.js",
"chromeos/ambient_mode_page/topic_source_item.js",
"chromeos/ambient_mode_page/topic_source_list.js",
"chromeos/bluetooth_page/bluetooth_device_list_item.js",
"chromeos/bluetooth_page/bluetooth_page.js",
"chromeos/bluetooth_page/bluetooth_subpage.js",
"chromeos/crostini_page/bruschetta_subpage.js",
"chromeos/crostini_page/crostini_arc_adb_confirmation_dialog.js",
"chromeos/crostini_page/crostini_arc_adb.js",
"chromeos/crostini_page/crostini_confirmation_dialog.js",
"chromeos/crostini_page/crostini_disk_resize_confirmation_dialog.js",
"chromeos/crostini_page/crostini_disk_resize_dialog.js",
"chromeos/crostini_page/crostini_export_import.js",
"chromeos/crostini_page/crostini_extra_containers_create_dialog.js",
"chromeos/crostini_page/crostini_extra_containers.js",
"chromeos/crostini_page/crostini_import_confirmation_dialog.js",
"chromeos/crostini_page/crostini_page.js",
"chromeos/crostini_page/crostini_port_forwarding_add_port_dialog.js",
"chromeos/crostini_page/crostini_port_forwarding.js",
"chromeos/crostini_page/crostini_subpage.js",
"chromeos/date_time_page/date_time_page.js",
"chromeos/date_time_page/timezone_selector.js",
"chromeos/date_time_page/timezone_subpage.js",
"chromeos/device_page/audio.js",
"chromeos/device_page/device_page.js",
"chromeos/device_page/display.js",
"chromeos/device_page/display_layout.js",
"chromeos/device_page/display_overscan_dialog.js",
"chromeos/device_page/keyboard.js",
"chromeos/device_page/pointers.js",
"chromeos/device_page/power.js",
"chromeos/device_page/storage_external_entry.js",
"chromeos/device_page/storage_external.js",
"chromeos/device_page/storage.js",
"chromeos/device_page/stylus.js",
"chromeos/google_assistant_page/google_assistant_page.js",
"chromeos/guest_os/guest_os_container_select.js",
"chromeos/guest_os/guest_os_shared_paths.js",
"chromeos/guest_os/guest_os_shared_usb_devices.js",
"chromeos/kerberos_page/kerberos_accounts.js",
"chromeos/kerberos_page/kerberos_add_account_dialog.js",
"chromeos/kerberos_page/kerberos_page.js",
"chromeos/keyboard_shortcut_banner/keyboard_shortcut_banner.js",
"chromeos/nearby_share_page/nearby_share_confirm_page.js",
"chromeos/nearby_share_page/nearby_share_contact_visibility_dialog.js",
"chromeos/nearby_share_page/nearby_share_data_usage_dialog.js",
"chromeos/nearby_share_page/nearby_share_device_name_dialog.js",
"chromeos/nearby_share_page/nearby_share_high_visibility_page.js",
"chromeos/nearby_share_page/nearby_share_receive_dialog.js",
"chromeos/nearby_share_page/nearby_share_subpage.js",
"chromeos/os_a11y_page/audio_and_captions_page.js",
"chromeos/os_a11y_page/change_dictation_locale_dialog.js",
"chromeos/os_a11y_page/cursor_and_touchpad_page.js",
"chromeos/os_a11y_page/display_and_magnification_page.js",
"chromeos/os_a11y_page/keyboard_and_text_input_page.js",
"chromeos/os_a11y_page/manage_a11y_page.js",
"chromeos/os_a11y_page/os_a11y_page.js",
"chromeos/os_a11y_page/switch_access_action_assignment_dialog.js",
"chromeos/os_a11y_page/switch_access_action_assignment_pane.js",
"chromeos/os_a11y_page/switch_access_setup_guide_dialog.js",
"chromeos/os_a11y_page/switch_access_setup_guide_warning_dialog.js",
"chromeos/os_a11y_page/switch_access_subpage.js",
"chromeos/os_a11y_page/text_to_speech_page.js",
"chromeos/os_a11y_page/tts_subpage.js",
"chromeos/os_apps_page/android_apps_subpage.js",
"chromeos/os_apps_page/app_management_page/app_details_item.js",
"chromeos/os_apps_page/app_management_page/app_detail_view.js",
"chromeos/os_apps_page/app_management_page/app_item.js",
"chromeos/os_apps_page/app_management_page/app_management_page.js",
"chromeos/os_apps_page/app_management_page/arc_detail_view.js",
"chromeos/os_apps_page/app_management_page/borealis_page/borealis_detail_view.js",
"chromeos/os_apps_page/app_management_page/chrome_app_detail_view.js",
"chromeos/os_apps_page/app_management_page/dom_switch.js",
"chromeos/os_apps_page/app_management_page/main_view.js",
"chromeos/os_apps_page/app_management_page/pin_to_shelf_item.js",
"chromeos/os_apps_page/app_management_page/plugin_vm_page/plugin_vm_detail_view.js",
"chromeos/os_apps_page/app_management_page/pwa_detail_view.js",
"chromeos/os_apps_page/app_management_page/resize_lock_item.js",
"chromeos/os_apps_page/app_management_page/shared_style.js",
"chromeos/os_apps_page/app_management_page/shared_vars.js",
"chromeos/os_apps_page/app_management_page/supported_links_dialog.js",
"chromeos/os_apps_page/app_management_page/supported_links_item.js",
"chromeos/os_apps_page/app_management_page/supported_links_overlapping_apps_dialog.js",
"chromeos/os_apps_page/app_notifications_page/app_notification_row.js",
"chromeos/os_apps_page/app_notifications_page/app_notifications_subpage.js",
"chromeos/os_apps_page/os_apps_page.js",
"chromeos/os_bluetooth_page/os_bluetooth_change_device_name_dialog.js",
"chromeos/os_bluetooth_page/os_bluetooth_device_detail_subpage.js",
"chromeos/os_bluetooth_page/os_bluetooth_devices_subpage.js",
"chromeos/os_bluetooth_page/os_bluetooth_forget_device_dialog.js",
"chromeos/os_bluetooth_page/os_bluetooth_saved_devices_subpage.js",
"chromeos/os_bluetooth_page/os_bluetooth_page.js",
"chromeos/os_bluetooth_page/os_bluetooth_pairing_dialog.js",
"chromeos/os_bluetooth_page/os_bluetooth_summary.js",
"chromeos/os_bluetooth_page/os_bluetooth_true_wireless_images.js",
"chromeos/os_bluetooth_page/os_paired_bluetooth_list_item.js",
"chromeos/os_bluetooth_page/os_paired_bluetooth_list.js",
"chromeos/os_bluetooth_page/os_remove_saved_device_dialog.js",
"chromeos/os_bluetooth_page/os_saved_devices_list.js",
"chromeos/os_bluetooth_page/os_saved_devices_list_item.js",
"chromeos/os_bluetooth_page/settings_fast_pair_toggle.js",
"chromeos/os_files_page/os_files_page.js",
"chromeos/os_files_page/smb_shares_page.js",
"chromeos/os_people_page/account_manager.js",
"chromeos/os_people_page/fingerprint_list.js",
"chromeos/os_people_page/lock_screen.js",
"chromeos/os_people_page/lock_screen_password_prompt_dialog.js",
"chromeos/os_people_page/os_people_page.js",
"chromeos/os_people_page/os_sync_controls.js",
"chromeos/os_people_page/pin_autosubmit_dialog.js",
"chromeos/os_people_page/setup_fingerprint_dialog.js",
"chromeos/os_people_page/setup_pin_dialog.js",
"chromeos/os_people_page/user_list.js",
"chromeos/os_people_page/users_add_user_dialog.js",
"chromeos/os_people_page/users_page.js",
"chromeos/os_privacy_page/os_privacy_page.js",
"chromeos/os_privacy_page/peripheral_data_access_protection_dialog.js",
"chromeos/os_privacy_page/privacy_hub_page.js",
"chromeos/os_privacy_page/smart_privacy_page.js",
"chromeos/os_languages_page/add_input_methods_dialog.js",
"chromeos/os_languages_page/add_items_dialog.js",
"chromeos/os_languages_page/add_spellcheck_languages_dialog.js",
"chromeos/os_languages_page/change_device_language_dialog.js",
"chromeos/os_languages_page/cr_checkbox_with_policy.js",
"chromeos/os_languages_page/input_method_options_page.js",
"chromeos/os_languages_page/input_page.js",
"chromeos/os_languages_page/os_add_languages_dialog.js",
"chromeos/os_languages_page/os_edit_dictionary_page.js",
"chromeos/os_languages_page/os_languages_page_v2.js",
"chromeos/os_languages_page/os_languages_section.js",
"chromeos/os_languages_page/shared_style.js",
"chromeos/os_languages_page/shared_vars.js",
"chromeos/os_languages_page/smart_inputs_page.js",
"chromeos/os_search_page/os_search_page.js",
"chromeos/os_search_page/os_search_selection_dialog.js",
"chromeos/os_search_page/search_engine.js",
"chromeos/os_search_page/search_subpage.js",
"chromeos/os_settings_main/os_settings_main.js",
"chromeos/os_settings_menu/os_settings_menu.js",
"chromeos/os_settings_page/os_settings_page.js",
"chromeos/os_settings_page/settings_idle_load.js",
"chromeos/os_settings_search_box/os_search_result_row.js",
"chromeos/os_settings_search_box/os_settings_search_box.js",
"chromeos/os_settings_ui/os_settings_ui.js",
"chromeos/os_toolbar/os_toolbar.js",
"chromeos/parental_controls_page/parental_controls_page.js",
"chromeos/personalization_page/change_picture.js",
"chromeos/personalization_page/personalization_page.js",
"chromeos/settings_scheduler_slider/settings_scheduler_slider.js",
]
mojom_webui_files = [
"mojom-webui/routes.mojom-webui.js",
"mojom-webui/setting.mojom-webui.js",
"mojom-webui/search/search.mojom-webui.js",
"mojom-webui/search/search_result_icon.mojom-webui.js",
"mojom-webui/search/user_action_recorder.mojom-webui.js",
"mojom-webui/personalization/search.mojom-webui.js",
"mojom-webui/audio/cros_audio_config.mojom-webui.js",
]
# Files sourced from their checked-in version under src
# TODO(crbug/1315757) JS files here are available for TS conversion
src_ts_files = non_web_component_files + web_component_files
# Files sourced from gen_dir and generated by html_to_js() or html_to_wrapper()
# TODO(crbug/1315757) JS files here are available for TS conversion
gen_ts_files = gen_web_component_files + web_component_html_wrapper_files
# TODO(crbug.com/1121865): browser_resolver_prefix_replacements allows path
# from ../../shared/* to resolve to ../../../nearby_share/shared/* for closure
# purposes.
nearby_share_closure_flags = [
"js_module_root=../../chrome/browser/resources/nearby_share",
"js_module_root=./gen/chrome/browser/resources/nearby_share",
"browser_resolver_prefix_replacements=\"../../shared/=../../../nearby_share/shared/\"",
]
# TODO(crbug.com/1179821) This allows WebUI mojom files listed under the
# mojom-webui/ folder to be properly resolved during closure compilation.
mojom_webui_closure_flags = [
"js_module_root=" + rebase_path(
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/chromeos/constants",
root_build_dir),
"js_module_root=" + rebase_path(
"$root_gen_dir/mojom-webui/chrome/browser/ui/webui/settings/ash",
root_build_dir),
"browser_resolver_prefix_replacements=\"../../../mojom-webui/=../../../\"",
"browser_resolver_prefix_replacements=\"../../mojom-webui/=../../\"",
"browser_resolver_prefix_replacements=\"../mojom-webui/=../\"",
"js_module_root=" + rebase_path(
"$root_gen_dir/mojom-webui/ash/webui/personalization_app/search",
root_build_dir),
"browser_resolver_prefix_replacements=\"../../mojom-webui/personalization/=../../\"",
"browser_resolver_prefix_replacements=\"../mojom-webui/personalization/=../\"",
"js_module_root=" +
rebase_path("$root_gen_dir/mojom-webui/ash/components/audio/public/mojom",
root_build_dir),
"browser_resolver_prefix_replacements=\"../../mojom-webui/audio/=../../\"",
"browser_resolver_prefix_replacements=\"../mojom-webui/audio/=../\"",
]
# TODO(crbug.com/1315757) Remove once ChromeOS Settings is fully migrated to
# TypeScript and no longer using Closure compilation
os_settings_closure_flags =
settings_closure_flags + nearby_share_closure_flags + mojom_js_args +
mojom_webui_closure_flags