1# Copyright 2018 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import("//third_party/closure_compiler/compile_js.gni")
6import("//tools/grit/preprocess_grit.gni")
7import("//ui/webui/resources/tools/generate_grd.gni")
8import("//ui/webui/webui_features.gni")
9
10preprocess_folder =
11    "$root_gen_dir/ui/webui/resources/preprocessed/cr_components"
12preprocess_gen_manifest = "preprocessed_gen_manifest.json"
13preprocess_polymer2_manifest = "preprocessed_polymer2_manifest.json"
14preprocess_src_manifest = "preprocessed_src_manifest.json"
15
16generate_grd("build_grdp") {
17  grd_prefix = "cr_components"
18  out_grd = "$target_gen_dir/${grd_prefix}_resources.grdp"
19  deps = [ ":preprocess" ]
20  manifest_files = [
21    "$target_gen_dir/$preprocess_gen_manifest",
22    "$target_gen_dir/$preprocess_polymer2_manifest",
23    "$target_gen_dir/$preprocess_src_manifest",
24  ]
25  resource_path_prefix = "cr_components"
26}
27
28group("preprocess") {
29  public_deps = [
30    ":preprocess_generated",
31    ":preprocess_polymer2",
32    ":preprocess_src",
33  ]
34}
35
36preprocess_grit("preprocess_src") {
37  in_folder = "./"
38  out_folder = "$preprocess_folder"
39  out_manifest = "$target_gen_dir/$preprocess_src_manifest"
40  in_files = [ "customize_themes/browser_proxy.js" ]
41
42  if (use_nss_certs) {
43    in_files += [
44      "certificate_manager/certificate_manager_types.js",
45      "certificate_manager/certificate_provisioning_browser_proxy.js",
46      "certificate_manager/certificates_browser_proxy.js",
47    ]
48  }
49}
50
51preprocess_grit("preprocess_generated") {
52  deps = [ ":polymer3_elements" ]
53  in_folder = target_gen_dir
54  out_folder = "$preprocess_folder"
55  out_manifest = "$target_gen_dir/$preprocess_gen_manifest"
56  in_files = [
57    "customize_themes/customize_themes.js",
58    "customize_themes/customize_themes.mojom-lite.js",
59    "customize_themes/theme_icon.js",
60    "managed_footnote/managed_footnote.m.js",
61    "omnibox/cr_autocomplete_match_list.js",
62  ]
63
64  if (use_nss_certs) {
65    in_files += [
66      "certificate_manager/ca_trust_edit_dialog.js",
67      "certificate_manager/certificate_delete_confirmation_dialog.js",
68      "certificate_manager/certificate_entry.js",
69      "certificate_manager/certificate_list.js",
70      "certificate_manager/certificate_manager.js",
71      "certificate_manager/certificate_password_decryption_dialog.js",
72      "certificate_manager/certificate_password_encryption_dialog.js",
73      "certificate_manager/certificate_provisioning_details_dialog.js",
74      "certificate_manager/certificate_provisioning_entry.js",
75      "certificate_manager/certificate_provisioning_list.js",
76      "certificate_manager/certificates_error_dialog.js",
77      "certificate_manager/certificate_shared_css.js",
78      "certificate_manager/certificate_subentry.js",
79    ]
80  }
81
82  if (is_chromeos) {
83    in_files += [
84      "chromeos/bluetooth/bluetooth_dialog.m.js",
85      "chromeos/cellular_setup/activation_code_page.m.js",
86      "chromeos/cellular_setup/base_page.m.js",
87      "chromeos/cellular_setup/button_bar.m.js",
88      "chromeos/cellular_setup/cellular_setup_delegate.m.js",
89      "chromeos/cellular_setup/cellular_setup.m.js",
90      "chromeos/cellular_setup/cellular_types.m.js",
91      "chromeos/cellular_setup/esim_flow_ui.m.js",
92      "chromeos/cellular_setup/final_page.m.js",
93      "chromeos/cellular_setup/mojo_interface_provider.m.js",
94      "chromeos/cellular_setup/profile_discovery_list_item.m.js",
95      "chromeos/cellular_setup/profile_discovery_list_page.m.js",
96      "chromeos/cellular_setup/provisioning_page.m.js",
97      "chromeos/cellular_setup/psim_flow_ui.m.js",
98      "chromeos/cellular_setup/setup_selection_flow.m.js",
99      "chromeos/cellular_setup/sim_detect_page.m.js",
100      "chromeos/cellular_setup/subflow_behavior.m.js",
101      "chromeos/cellular_setup/webview_post_util.m.js",
102      "chromeos/network_health/network_diagnostics.m.js",
103      "chromeos/network_health/network_diagnostics_mojo.m.js",
104      "chromeos/network/cr_policy_network_behavior_mojo.m.js",
105      "chromeos/network/cr_policy_network_indicator_mojo.m.js",
106      "chromeos/network/mojo_interface_provider.m.js",
107      "chromeos/network/network_apnlist.m.js",
108      "chromeos/network/network_choose_mobile.m.js",
109      "chromeos/network/network_config_element_behavior.m.js",
110      "chromeos/network/network_config_input.m.js",
111      "chromeos/network/network_config.m.js",
112      "chromeos/network/network_config_select.m.js",
113      "chromeos/network/network_config_toggle.m.js",
114      "chromeos/network/network_icon.m.js",
115      "chromeos/network/network_icons.m.js",
116      "chromeos/network/network_ip_config.m.js",
117      "chromeos/network/network_listener_behavior.m.js",
118      "chromeos/network/network_list_item.m.js",
119      "chromeos/network/network_list.m.js",
120      "chromeos/network/network_list_types.m.js",
121      "chromeos/network/network_nameservers.m.js",
122      "chromeos/network/network_password_input.m.js",
123      "chromeos/network/network_property_list_mojo.m.js",
124      "chromeos/network/network_proxy_exclusions.m.js",
125      "chromeos/network/network_proxy_input.m.js",
126      "chromeos/network/network_proxy.m.js",
127      "chromeos/network/network_select.m.js",
128      "chromeos/network/network_shared_css.m.js",
129      "chromeos/network/network_siminfo.m.js",
130      "chromeos/network/onc_mojo.m.js",
131      "chromeos/quick_unlock/lock_screen_constants.m.js",
132      "chromeos/quick_unlock/pin_keyboard_icon.m.js",
133      "chromeos/quick_unlock/pin_keyboard.m.js",
134      "chromeos/quick_unlock/setup_pin_keyboard.m.js",
135      "chromeos/smb_shares/add_smb_share_dialog.m.js",
136      "chromeos/smb_shares/smb_browser_proxy.m.js",
137    ]
138  }
139}
140
141preprocess_grit("preprocess_polymer2") {
142  in_folder = "./"
143  out_folder = "$preprocess_folder"
144  out_manifest = "$target_gen_dir/$preprocess_polymer2_manifest"
145  in_files = [
146    "managed_footnote/managed_footnote.html",
147    "managed_footnote/managed_footnote.js",
148  ]
149  if (is_chromeos) {
150    if (!optimize_webui) {
151      in_files += [
152        "chromeos/bluetooth/bluetooth_dialog.html",
153        "chromeos/bluetooth/bluetooth_dialog.js",
154        "chromeos/network/network_apnlist.html",
155        "chromeos/network/network_apnlist.js",
156        "chromeos/network/network_choose_mobile.html",
157        "chromeos/network/network_choose_mobile.js",
158        "chromeos/network/network_config.html",
159        "chromeos/network/network_config.js",
160        "chromeos/network/network_config_element_behavior.html",
161        "chromeos/network/network_config_element_behavior.js",
162        "chromeos/network/network_config_input.html",
163        "chromeos/network/network_config_input.js",
164        "chromeos/network/network_config_select.html",
165        "chromeos/network/network_config_select.js",
166        "chromeos/network/network_config_toggle.html",
167        "chromeos/network/network_config_toggle.js",
168        "chromeos/network/network_ip_config.html",
169        "chromeos/network/network_ip_config.js",
170        "chromeos/network/network_nameservers.html",
171        "chromeos/network/network_nameservers.js",
172        "chromeos/network/network_password_input.html",
173        "chromeos/network/network_password_input.js",
174        "chromeos/network/network_property_list_mojo.html",
175        "chromeos/network/network_property_list_mojo.js",
176        "chromeos/network/network_proxy.html",
177        "chromeos/network/network_proxy.js",
178        "chromeos/network/network_proxy_exclusions.html",
179        "chromeos/network/network_proxy_exclusions.js",
180        "chromeos/network/network_proxy_input.html",
181        "chromeos/network/network_proxy_input.js",
182        "chromeos/network/network_siminfo.html",
183        "chromeos/network/network_siminfo.js",
184        "chromeos/network/network_shared_css.html",
185      ]
186    }
187    in_files += [
188      "chromeos/cellular_setup/activation_code_page.html",
189      "chromeos/cellular_setup/activation_code_page.js",
190      "chromeos/cellular_setup/base_page.html",
191      "chromeos/cellular_setup/base_page.js",
192      "chromeos/cellular_setup/button_bar.html",
193      "chromeos/cellular_setup/button_bar.js",
194      "chromeos/cellular_setup/cellular_setup_delegate.html",
195      "chromeos/cellular_setup/cellular_setup_delegate.js",
196      "chromeos/cellular_setup/cellular_setup.html",
197      "chromeos/cellular_setup/cellular_setup.js",
198      "chromeos/cellular_setup/cellular_types.html",
199      "chromeos/cellular_setup/cellular_types.js",
200      "chromeos/cellular_setup/esim_flow_ui.html",
201      "chromeos/cellular_setup/esim_flow_ui.js",
202      "chromeos/cellular_setup/final_page.html",
203      "chromeos/cellular_setup/final_page.js",
204      "chromeos/cellular_setup/mojo_interface_provider.html",
205      "chromeos/cellular_setup/mojo_interface_provider.js",
206      "chromeos/cellular_setup/profile_discovery_list_item.html",
207      "chromeos/cellular_setup/profile_discovery_list_item.js",
208      "chromeos/cellular_setup/profile_discovery_list_page.html",
209      "chromeos/cellular_setup/profile_discovery_list_page.js",
210      "chromeos/cellular_setup/provisioning_page.html",
211      "chromeos/cellular_setup/provisioning_page.js",
212      "chromeos/cellular_setup/psim_flow_ui.html",
213      "chromeos/cellular_setup/psim_flow_ui.js",
214      "chromeos/cellular_setup/setup_selection_flow.html",
215      "chromeos/cellular_setup/setup_selection_flow.js",
216      "chromeos/cellular_setup/sim_detect_page.html",
217      "chromeos/cellular_setup/sim_detect_page.js",
218      "chromeos/cellular_setup/subflow_behavior.html",
219      "chromeos/cellular_setup/subflow_behavior.js",
220      "chromeos/cellular_setup/webview_post_util.html",
221      "chromeos/cellular_setup/webview_post_util.js",
222      "chromeos/multidevice_setup/button_bar.html",
223      "chromeos/multidevice_setup/button_bar.js",
224      "chromeos/multidevice_setup/fake_mojo_service.html",
225      "chromeos/multidevice_setup/fake_mojo_service.js",
226      "chromeos/multidevice_setup/icons.html",
227      "chromeos/multidevice_setup/mojo_api.html",
228      "chromeos/multidevice_setup/mojo_api.js",
229      "chromeos/multidevice_setup/multidevice_setup_browser_proxy.html",
230      "chromeos/multidevice_setup/multidevice_setup_browser_proxy.js",
231      "chromeos/multidevice_setup/multidevice_setup_delegate.html",
232      "chromeos/multidevice_setup/multidevice_setup_delegate.js",
233      "chromeos/multidevice_setup/multidevice_setup.html",
234      "chromeos/multidevice_setup/multidevice_setup.js",
235      "chromeos/multidevice_setup/multidevice_setup_shared_css.html",
236      "chromeos/multidevice_setup/password_page.html",
237      "chromeos/multidevice_setup/password_page.js",
238      "chromeos/multidevice_setup/setup_succeeded_page.html",
239      "chromeos/multidevice_setup/setup_succeeded_page.js",
240      "chromeos/multidevice_setup/start_setup_page.html",
241      "chromeos/multidevice_setup/start_setup_page.js",
242      "chromeos/multidevice_setup/ui_page_container_behavior.html",
243      "chromeos/multidevice_setup/ui_page_container_behavior.js",
244      "chromeos/multidevice_setup/ui_page.html",
245      "chromeos/multidevice_setup/ui_page.js",
246      "chromeos/network/cr_policy_network_behavior_mojo.html",
247      "chromeos/network/cr_policy_network_behavior_mojo.js",
248      "chromeos/network/cr_policy_network_indicator_mojo.html",
249      "chromeos/network/cr_policy_network_indicator_mojo.js",
250      "chromeos/network_health/network_diagnostics.html",
251      "chromeos/network_health/network_diagnostics.js",
252      "chromeos/network_health/network_diagnostics_mojo.html",
253      "chromeos/network_health/network_diagnostics_mojo.js",
254      "chromeos/network_health/network_health_summary.html",
255      "chromeos/network_health/network_health_summary.js",
256      "chromeos/network/mojo_interface_provider.html",
257      "chromeos/network/mojo_interface_provider.js",
258      "chromeos/network/network_icon.html",
259      "chromeos/network/network_icon.js",
260      "chromeos/network/network_icons.html",
261      "chromeos/network/network_listener_behavior.html",
262      "chromeos/network/network_listener_behavior.js",
263      "chromeos/network/network_list.html",
264      "chromeos/network/network_list_item.html",
265      "chromeos/network/network_list_item.js",
266      "chromeos/network/network_list.js",
267      "chromeos/network/network_list_types.html",
268      "chromeos/network/network_list_types.js",
269      "chromeos/network/network_select.html",
270      "chromeos/network/network_select.js",
271      "chromeos/network/onc_mojo.html",
272      "chromeos/network/onc_mojo.js",
273      "chromeos/quick_unlock/lock_screen_constants.html",
274      "chromeos/quick_unlock/lock_screen_constants.js",
275      "chromeos/quick_unlock/pin_keyboard.html",
276      "chromeos/quick_unlock/pin_keyboard_icon.html",
277      "chromeos/quick_unlock/pin_keyboard.js",
278      "chromeos/quick_unlock/setup_pin_keyboard.html",
279      "chromeos/quick_unlock/setup_pin_keyboard.js",
280      "chromeos/smb_shares/add_smb_share_dialog.html",
281      "chromeos/smb_shares/add_smb_share_dialog.js",
282      "chromeos/smb_shares/smb_browser_proxy.html",
283      "chromeos/smb_shares/smb_browser_proxy.js",
284    ]
285  }
286}
287
288group("closure_compile") {
289  deps = [
290    "certificate_manager:closure_compile_module",
291    "customize_themes:closure_compile",
292    "managed_footnote:closure_compile",
293    "managed_footnote:closure_compile_module",
294    "omnibox:closure_compile",
295  ]
296
297  if (is_chromeos) {
298    deps += [ "chromeos:closure_compile" ]
299  }
300}
301
302group("polymer3_elements") {
303  public_deps = [
304    "certificate_manager:web_components",
305    "customize_themes:web_components",
306    "managed_footnote:managed_footnote_module",
307    "omnibox:web_components",
308  ]
309  if (is_chromeos) {
310    public_deps += [ "chromeos:polymer3_elements" ]
311  }
312}
313