blob: dfce359101a1d11ad7d8d9d9cf53af3c54f3bc7d [file] [log] [blame]
Blink Reformat4c46d092018-04-07 15:32:371# Copyright 2014 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
Dirk Pranke75443e832020-10-01 00:23:385import("//build/config/python.gni")
6
Tim van der Lippe732be582021-04-09 15:58:557import("./config/gni/all_devtools_files.gni")
Tim van der Lippe732be582021-04-09 15:58:558import("./config/gni/devtools_grd_files.gni")
9import("./config/gni/devtools_image_files.gni")
Tim van der Lippec4e2fef2020-09-11 12:00:3210import("./front_end/emulated_devices/optimized/optimized_images.gni")
Tim van der Lippef6650492020-07-16 13:41:1411import("./scripts/build/ninja/vars.gni")
Tim van der Lippedc470c32021-02-03 14:49:4212import("./third_party/blink/public/public_features.gni")
Tim van der Lippebc42a632019-11-28 14:22:5513
14devtools_test_files = [
Tim van der Lippeab0853c2020-09-11 13:34:3115 "front_end/third_party/axe-core/axe.js",
Tim van der Lippe9327dc32021-03-30 11:02:1916 "front_end/legacy_test_runner/accessibility_test_runner/accessibility_test_runner.js",
17 "front_end/legacy_test_runner/bindings_test_runner/bindings_test_runner.js",
18 "front_end/legacy_test_runner/application_test_runner/application_test_runner.js",
19 "front_end/legacy_test_runner/application_test_runner/AppcacheTestRunner.js",
20 "front_end/legacy_test_runner/application_test_runner/CacheStorageTestRunner.js",
21 "front_end/legacy_test_runner/application_test_runner/IndexedDBTestRunner.js",
22 "front_end/legacy_test_runner/application_test_runner/ResourcesTestRunner.js",
23 "front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js",
24 "front_end/legacy_test_runner/application_test_runner/ServiceWorkersTestRunner.js",
25 "front_end/legacy_test_runner/application_test_runner/StorageTestRunner.js",
26 "front_end/legacy_test_runner/lighthouse_test_runner/lighthouse_test_runner.js",
27 "front_end/legacy_test_runner/axe_core_test_runner/axe_core_test_runner.js",
28 "front_end/legacy_test_runner/bindings_test_runner/AutomappingTestRunner.js",
29 "front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js",
30 "front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js",
31 "front_end/legacy_test_runner/bindings_test_runner/OverridesTestRunner.js",
32 "front_end/legacy_test_runner/bindings_test_runner/PersistenceTestRunner.js",
33 "front_end/legacy_test_runner/console_test_runner/console_test_runner.js",
34 "front_end/legacy_test_runner/coverage_test_runner/coverage_test_runner.js",
35 "front_end/legacy_test_runner/cpu_profiler_test_runner/cpu_profiler_test_runner.js",
36 "front_end/legacy_test_runner/data_grid_test_runner/data_grid_test_runner.js",
37 "front_end/legacy_test_runner/device_mode_test_runner/device_mode_test_runner.js",
38 "front_end/legacy_test_runner/elements_test_runner/elements_test_runner.js",
39 "front_end/legacy_test_runner/elements_test_runner/EditDOMTestRunner.js",
40 "front_end/legacy_test_runner/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js",
41 "front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js",
42 "front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js",
43 "front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js",
44 "front_end/legacy_test_runner/extensions_test_runner/extensions_test_runner.js",
45 "front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js",
46 "front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js",
47 "front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js",
Tim van der Lippebc42a632019-11-28 14:22:5548 "front_end/integration_test_runner.html",
Tim van der Lippe9327dc32021-03-30 11:02:1949 "front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js",
50 "front_end/legacy_test_runner/network_test_runner/network_test_runner.js",
51 "front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js",
52 "front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js",
53 "front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js",
54 "front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js",
55 "front_end/legacy_test_runner/security_test_runner/security_test_runner.js",
56 "front_end/legacy_test_runner/sources_test_runner/sources_test_runner.js",
57 "front_end/legacy_test_runner/sources_test_runner/AutocompleteTestRunner.js",
58 "front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js",
59 "front_end/legacy_test_runner/sources_test_runner/EditorTestRunner.js",
60 "front_end/legacy_test_runner/sources_test_runner/LiveEditTestRunner.js",
61 "front_end/legacy_test_runner/sources_test_runner/SearchTestRunner.js",
62 "front_end/legacy_test_runner/sources_test_runner/SourcesTestRunner.js",
Tim van der Lippebc42a632019-11-28 14:22:5563]
64
Tim van der Lippe96e05622020-09-15 10:42:0165application_templates = [ "front_end/entrypoint_template.html" ]
Tim van der Lippebc42a632019-11-28 14:22:5566
Tim van der Lippe7b347ca2021-04-09 15:59:2167devtools_applications = [
68 "devtools_app",
69 "inspector",
70 "js_app",
71 "ndb_app",
72 "node_app",
73 "shell",
74 "worker_app",
Tim van der Lippebc42a632019-11-28 14:22:5575]
76
Tim van der Lippe30103ef2021-02-03 13:31:0377gen_generated_applications_js = []
Tim van der Lippe7b347ca2021-04-09 15:59:2178applications_js = []
Tim van der Lippe30103ef2021-02-03 13:31:0379
Tim van der Lippe7b347ca2021-04-09 15:59:2180foreach(application, devtools_applications) {
81 applications_js += [ "entrypoints/$application/$application.js" ]
82 gen_generated_applications_js +=
83 [ "$target_gen_dir/front_end/entrypoints/$application/$application.js" ]
Tim van der Lippe30103ef2021-02-03 13:31:0384}
85
86non_autostart_non_remote_modules = [
Tim van der Lippe4fea78d2021-03-12 17:44:4587 "panels/accessibility/accessibility_module.js",
Tim van der Lippe2d64ee72021-03-16 15:10:1788 "panels/animation/animation_module.js",
Tim van der Lippe2c5493a2021-03-18 12:28:5489 "panels/browser_debugger/browser_debugger_module.js",
Tim van der Lippead935d12021-03-18 12:58:2990 "panels/changes/changes_module.js",
Tim van der Lippe51ae9e12021-04-13 12:41:0691 "ui/legacy/components/color_picker/color_picker_module.js",
Tim van der Lippe586c8022021-03-18 15:18:2092 "panels/console/console_module.js",
Tim van der Lippe8ef93422021-04-14 10:11:4593 "ui/legacy/components/cookie_table/cookie_table_module.js",
Tim van der Lipped2959582021-03-19 11:17:0794 "panels/coverage/coverage_module.js",
Tim van der Lippe1d7474a2021-03-19 15:41:0695 "panels/css_overview/css_overview_module.js",
Tim van der Lippe8499fe22021-04-12 16:42:4796 "ui/legacy/components/data_grid/data_grid_module.js",
Tim van der Lippe115b1772021-03-23 15:22:0897 "panels/elements/elements_module.js",
Tim van der Lippef7c00cd2021-03-22 16:20:4598 "panels/event_listeners/event_listeners_module.js",
Tim van der Lippe8710df42021-03-23 12:05:2299 "panels/help/help_module.js",
Tim van der Lippe5d373622021-04-15 15:47:43100 "ui/legacy/components/inline_editor/inline_editor_module.js",
Tim van der Lippec294e592021-04-07 13:09:01101 "panels/input/input_module.js",
Tim van der Lippe28264f72021-04-19 13:01:04102 "panels/js_profiler/js_profiler_module.js",
Tim van der Lippef9a59692021-03-22 17:59:42103 "panels/layer_viewer/layer_viewer_module.js",
Tim van der Lippe50ceebc2021-03-23 17:44:03104 "panels/layers/layers_module.js",
Tim van der Lippe7a077eb2021-03-23 18:02:11105 "panels/lighthouse/lighthouse_module.js",
Tim van der Lippeaa62a842021-03-30 13:29:36106 "panels/media/media_module.js",
Tim van der Lippef596ca02021-03-31 10:02:47107 "panels/network/network_module.js",
Tim van der Lippe0dd7a052021-04-12 16:44:23108 "ui/legacy/components/object_ui/object_ui_module.js",
Tim van der Lippe3167ffe2021-04-12 16:45:14109 "ui/legacy/components/perf_ui/perf_ui_module.js",
Tim van der Lippe05f62452021-03-30 15:13:08110 "panels/performance_monitor/performance_monitor_module.js",
Tim van der Lippe251251d2021-03-31 13:37:59111 "panels/profiler/profiler_module.js",
Tim van der Lippefe58ef22021-04-19 10:48:55112 "panels/issues/issues_module.js",
Tim van der Lippe724f6d62021-03-22 13:58:28113 "panels/developer_resources/developer_resources_module.js",
Tim van der Lippe1c8ce9c2021-03-30 15:39:24114 "panels/protocol_monitor/protocol_monitor_module.js",
Tim van der Lippeded82822021-04-16 09:49:45115 "ui/legacy/components/quick_open/quick_open_module.js",
Tim van der Lippec59708f2021-03-31 15:07:19116 "panels/application/application_module.js",
Tim van der Lippe22cf52b2021-04-15 15:44:45117 "panels/search/search_module.js",
Tim van der Lippe8f11dcd2021-04-16 10:40:34118 "panels/security/security_module.js",
Tim van der Lippe945c4b72021-04-19 12:08:36119 "panels/settings/settings_module.js",
Tim van der Lippeeb751112021-04-19 12:07:59120 "panels/snippets/snippets_module.js",
Tim van der Lippe91799ee2021-04-13 13:58:45121 "ui/legacy/components/source_frame/source_frame_module.js",
Tim van der Lippe021c7572021-04-19 10:49:43122 "panels/sources/sources_module.js",
Tim van der Lippe9a1c9732021-04-14 14:14:07123 "ui/legacy/components/text_editor/text_editor_module.js",
Tim van der Lippe01e1c462021-04-19 15:04:03124 "panels/timeline/timeline_module.js",
Tim van der Lippe305e9482021-04-20 08:22:05125 "panels/web_audio/web_audio_module.js",
Tim van der Lippe59f258e2021-04-20 09:36:23126 "panels/webauthn/webauthn_module.js",
Tim van der Lippe4c592dd2021-04-20 14:05:07127 "models/workspace_diff/workspace_diff_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03128 "emulated_devices/emulated_devices_module.js",
Tim van der Lippebc42a632019-11-28 14:22:55129]
130
Tim van der Lippe30103ef2021-02-03 13:31:03131gen_non_autostart_non_remote_modules = []
132
133foreach(module_file, non_autostart_non_remote_modules) {
Tim van der Lippe30103ef2021-02-03 13:31:03134 gen_non_autostart_non_remote_modules +=
135 [ "$target_gen_dir/front_end/$module_file" ]
136}
137
Tim van der Lippebc42a632019-11-28 14:22:55138#-------------------------------------------------------------------------------
139
Tim van der Lippe501473c2020-05-19 15:01:52140devtools_frontend_resources_deps = [
141 ":build_release_devtools",
Tim van der Lippe501473c2020-05-19 15:01:52142 "front_end",
Tim van der Lippe7ebe48c2020-07-13 12:27:15143 "test",
Tim van der Lippe39fc2542020-02-28 09:38:02144]
Tim van der Lippe3bf1c192020-01-22 11:45:13145
Tim van der Lippe7ebe48c2020-07-13 12:27:15146group("devtools_all_files") {
147 testonly = true
Tim van der Lipped18c7042020-12-03 11:23:20148 data = all_devtools_files
Tim van der Lippe7ebe48c2020-07-13 12:27:15149 data += [
150 # This enables us to test bots with whitespace changes.
151 "scripts/whitespaces.txt",
152 ]
153 data_deps = devtools_frontend_resources_deps
Tim van der Lippe677a98d2021-01-08 15:47:53154
Tim van der Lippee622f552021-04-14 14:15:18155 public_deps = [ "front_end/ui/components/docs" ]
Tim van der Lippe1a0338a2020-02-21 14:44:49156}
157
Tim van der Lippebc42a632019-11-28 14:22:55158group("devtools_frontend_resources") {
159 public_deps = devtools_frontend_resources_deps
Kim-Anh Trane8864742021-04-23 09:18:53160 deps = [ ":assert_grd" ]
Tim van der Lippebc42a632019-11-28 14:22:55161}
162
Alex Rudenkof0d02a12020-05-28 12:59:04163group("generate_devtools_inspector_overlay_resources") {
Alex Rudenko0e8d7f42020-09-07 07:14:47164 public_deps = [ "inspector_overlay:build_inspector_overlay" ]
Alex Rudenko7bf4d032020-05-13 15:45:02165}
166
Tim van der Lippe0d8ffe32021-04-22 11:10:24167action("assert_grd") {
168 script = "scripts/build/assert_grd.py"
169
170 deps = [
171 ":expected_grd_files",
172 ":input_grd_files",
173 ]
174
175 inputs = [
176 "$target_gen_dir/expected_grd_files.json",
177 "$target_gen_dir/input_grd_files.json",
178 ]
179
180 args = [
181 rebase_path("$target_gen_dir/expected_grd_files.json", root_build_dir),
182 rebase_path("$target_gen_dir/input_grd_files.json", root_build_dir),
183 rebase_path("$target_gen_dir/assert_grd.stamp", root_build_dir),
184 ]
185
186 outputs = [ "$target_gen_dir/assert_grd.stamp" ]
187}
188
Tim van der Lippe3edd9d72021-04-22 11:12:57189_expected_grd_files = []
190_expected_grd_files += grd_files_release_sources
191if (is_debug) {
192 _expected_grd_files += grd_files_debug_sources
193}
194
Tim van der Lippe0d8ffe32021-04-22 11:10:24195generated_file("expected_grd_files") {
196 outputs = [ "$target_gen_dir/expected_grd_files.json" ]
197
Tim van der Lippe3edd9d72021-04-22 11:12:57198 contents = _expected_grd_files
Tim van der Lippe0d8ffe32021-04-22 11:10:24199
200 output_conversion = "json"
201}
202
203generated_file("input_grd_files") {
204 outputs = [ "$target_gen_dir/input_grd_files.json" ]
205
206 data_keys = [ "grd_files" ]
207
208 output_conversion = "json"
Tim van der Lippef48d7382021-04-22 13:12:30209 rebase = target_gen_dir
Tim van der Lippe0d8ffe32021-04-22 11:10:24210
211 deps = [
212 ":build_release_devtools",
213 "front_end",
214 ]
215}
216
Tim van der Lippebc42a632019-11-28 14:22:55217action("generate_devtools_grd") {
218 script = "scripts/build/generate_devtools_grd.py"
219
Paul Lewise73301b2020-01-22 14:35:26220 deps = [ ":devtools_frontend_resources" ]
Blink Reformat4c46d092018-04-07 15:32:37221
Tim van der Lippe3edd9d72021-04-22 11:12:57222 inputs = []
223 foreach(_grd_file, _expected_grd_files) {
224 inputs += [ "$target_gen_dir/$_grd_file" ]
Tim van der Lippe8b179312021-02-05 15:13:54225 }
226
Tim van der Lippe0fa20642021-04-23 15:26:04227 response_file_contents = rebase_path(_expected_grd_files, "front_end")
Tim van der Lippeb4ab8da2021-04-23 09:23:34228 outfile = "$target_gen_dir/front_end/devtools_resources.grd"
Tim van der Lippeada1b592021-04-23 15:20:49229 outputs = [ outfile ]
Blink Reformat4c46d092018-04-07 15:32:37230
Tim van der Lippee2fbfea2020-01-09 13:53:50231 args = [
Tim van der Lippe0fa20642021-04-23 15:26:04232 "--file_list",
233 "{{response_file_name}}",
234 "--output",
235 rebase_path(outfile, root_build_dir),
236 ]
Bruce Dawson42395302021-01-26 08:57:36237 if (!is_debug) {
238 # Compression is slow, particularly in debug builds, so only compress in
239 # non-debug builds.
240 args += [ "--compress" ]
241 }
Tim van der Lippebc42a632019-11-28 14:22:55242}
243
Tim van der Lippe8bdbc7a2020-03-09 10:42:09244build_release_devtools_args = []
245
246if (!is_debug) {
247 build_release_devtools_args += [ "--rollup" ]
248}
249
Dirk Pranke75443e832020-10-01 00:23:38250# TODO(crbug.com/1112471): Get this to work cleanly under Python3.
251python2_action("build_release_devtools") {
Tim van der Lippebc42a632019-11-28 14:22:55252 script = "scripts/build/build_release_applications.py"
Blink Reformat4c46d092018-04-07 15:32:37253
Tim van der Lippebc42a632019-11-28 14:22:55254 helper_scripts = [
255 "scripts/build/modular_build.py",
256 "scripts/build/rjsmin.py",
Tim van der Lippe10095002020-06-15 16:15:33257 "front_end/rollup.config.js",
Tim van der Lippebc42a632019-11-28 14:22:55258 ]
259
Tim van der Lippe9327dc32021-03-30 11:02:19260 deps = [ "front_end" ]
Tim van der Lippe8ea04b02020-05-26 09:57:58261
Tim van der Lippe8ec07dd2020-01-23 18:29:34262 inputs = helper_scripts + all_devtools_files + devtools_test_files +
Tim van der Lippe2172fca2020-12-10 09:54:48263 application_templates
Tim van der Lippe9327dc32021-03-30 11:02:19264 outputs = gen_generated_applications_js + gen_non_autostart_non_remote_modules
Tim van der Lippebc42a632019-11-28 14:22:55265
266 args = devtools_applications + [
267 "--input_path",
268 rebase_path("front_end", root_build_dir),
Tim van der Lippe30103ef2021-02-03 13:31:03269 "--output_path_gen",
270 rebase_path("$target_gen_dir/front_end", root_build_dir),
Tim van der Lippe8bdbc7a2020-03-09 10:42:09271 ] + build_release_devtools_args
Tim van der Lippe0d8ffe32021-04-22 11:10:24272
273 metadata = {
274 grd_files = outputs
275 }
Tim van der Lippebc42a632019-11-28 14:22:55276}