blob: 95d63c12961d91c0c1b1cf4be4ae5c9a5964af14 [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")
8import("./config/gni/all_devtools_modules.gni")
9import("./config/gni/devtools_grd_files.gni")
10import("./config/gni/devtools_image_files.gni")
11import("./config/gni/devtools_module_entrypoints.gni")
Tim van der Lippec4e2fef2020-09-11 12:00:3212import("./front_end/emulated_devices/optimized/optimized_images.gni")
Tim van der Lippef6650492020-07-16 13:41:1413import("./scripts/build/ninja/vars.gni")
Tim van der Lippedc470c32021-02-03 14:49:4214import("./third_party/blink/public/public_features.gni")
Tim van der Lippebc42a632019-11-28 14:22:5515
16devtools_test_files = [
Tim van der Lippeab0853c2020-09-11 13:34:3117 "front_end/third_party/axe-core/axe.js",
Tim van der Lippe9327dc32021-03-30 11:02:1918 "front_end/legacy_test_runner/accessibility_test_runner/accessibility_test_runner.js",
19 "front_end/legacy_test_runner/bindings_test_runner/bindings_test_runner.js",
20 "front_end/legacy_test_runner/application_test_runner/application_test_runner.js",
21 "front_end/legacy_test_runner/application_test_runner/AppcacheTestRunner.js",
22 "front_end/legacy_test_runner/application_test_runner/CacheStorageTestRunner.js",
23 "front_end/legacy_test_runner/application_test_runner/IndexedDBTestRunner.js",
24 "front_end/legacy_test_runner/application_test_runner/ResourcesTestRunner.js",
25 "front_end/legacy_test_runner/application_test_runner/ResourceTreeTestRunner.js",
26 "front_end/legacy_test_runner/application_test_runner/ServiceWorkersTestRunner.js",
27 "front_end/legacy_test_runner/application_test_runner/StorageTestRunner.js",
28 "front_end/legacy_test_runner/lighthouse_test_runner/lighthouse_test_runner.js",
29 "front_end/legacy_test_runner/axe_core_test_runner/axe_core_test_runner.js",
30 "front_end/legacy_test_runner/bindings_test_runner/AutomappingTestRunner.js",
31 "front_end/legacy_test_runner/bindings_test_runner/BindingsTestRunner.js",
32 "front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js",
33 "front_end/legacy_test_runner/bindings_test_runner/OverridesTestRunner.js",
34 "front_end/legacy_test_runner/bindings_test_runner/PersistenceTestRunner.js",
35 "front_end/legacy_test_runner/console_test_runner/console_test_runner.js",
36 "front_end/legacy_test_runner/coverage_test_runner/coverage_test_runner.js",
37 "front_end/legacy_test_runner/cpu_profiler_test_runner/cpu_profiler_test_runner.js",
38 "front_end/legacy_test_runner/data_grid_test_runner/data_grid_test_runner.js",
39 "front_end/legacy_test_runner/device_mode_test_runner/device_mode_test_runner.js",
40 "front_end/legacy_test_runner/elements_test_runner/elements_test_runner.js",
41 "front_end/legacy_test_runner/elements_test_runner/EditDOMTestRunner.js",
42 "front_end/legacy_test_runner/elements_test_runner/ElementsPanelShadowSelectionOnRefreshTestRunner.js",
43 "front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js",
44 "front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js",
45 "front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js",
46 "front_end/legacy_test_runner/extensions_test_runner/extensions_test_runner.js",
47 "front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js",
48 "front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js",
49 "front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js",
Tim van der Lippebc42a632019-11-28 14:22:5550 "front_end/integration_test_runner.html",
Tim van der Lippe9327dc32021-03-30 11:02:1951 "front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js",
52 "front_end/legacy_test_runner/network_test_runner/network_test_runner.js",
53 "front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js",
54 "front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js",
55 "front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js",
56 "front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js",
57 "front_end/legacy_test_runner/security_test_runner/security_test_runner.js",
58 "front_end/legacy_test_runner/sources_test_runner/sources_test_runner.js",
59 "front_end/legacy_test_runner/sources_test_runner/AutocompleteTestRunner.js",
60 "front_end/legacy_test_runner/sources_test_runner/DebuggerTestRunner.js",
61 "front_end/legacy_test_runner/sources_test_runner/EditorTestRunner.js",
62 "front_end/legacy_test_runner/sources_test_runner/LiveEditTestRunner.js",
63 "front_end/legacy_test_runner/sources_test_runner/SearchTestRunner.js",
64 "front_end/legacy_test_runner/sources_test_runner/SourcesTestRunner.js",
Tim van der Lippebc42a632019-11-28 14:22:5565]
66
67devtools_embedder_scripts = [
Tim van der Lippe8b179312021-02-05 15:13:5468 "devtools_compatibility.js",
69 "Tests.js",
Tim van der Lippebc42a632019-11-28 14:22:5570]
71
Tim van der Lippe96e05622020-09-15 10:42:0172application_templates = [ "front_end/entrypoint_template.html" ]
Tim van der Lippebc42a632019-11-28 14:22:5573
Tim van der Lippe49155912020-05-12 11:26:4474generated_applications_html = [
Tim van der Lippe8b179312021-02-05 15:13:5475 "devtools_app.html",
76 "inspector.html",
77 "integration_test_runner.html",
78 "js_app.html",
79 "ndb_app.html",
80 "node_app.html",
81 "toolbox.html",
82 "worker_app.html",
Tim van der Lippe49155912020-05-12 11:26:4483]
84
Tim van der Lippe30103ef2021-02-03 13:31:0385applications_js = [
Tim van der Lippe30103ef2021-02-03 13:31:0386 "devtools_app.js",
87 "inspector.js",
88 "js_app.js",
89 "node_app.js",
90 "shell.js",
Tim van der Lippe30103ef2021-02-03 13:31:0391 "worker_app.js",
Tim van der Lippebc42a632019-11-28 14:22:5592]
93
Tim van der Lippe30103ef2021-02-03 13:31:0394gen_generated_applications_js = []
95
96foreach(application, applications_js) {
Tim van der Lippe30103ef2021-02-03 13:31:0397 gen_generated_applications_js += [ "$target_gen_dir/front_end/$application" ]
98}
99
100non_autostart_non_remote_modules = [
Tim van der Lippe4fea78d2021-03-12 17:44:45101 "panels/accessibility/accessibility_module.js",
Tim van der Lippe2d64ee72021-03-16 15:10:17102 "panels/animation/animation_module.js",
Tim van der Lippe2c5493a2021-03-18 12:28:54103 "panels/browser_debugger/browser_debugger_module.js",
Tim van der Lippead935d12021-03-18 12:58:29104 "panels/changes/changes_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03105 "cm/cm_module.js",
106 "color_picker/color_picker_module.js",
Tim van der Lippe586c8022021-03-18 15:18:20107 "panels/console/console_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03108 "cookie_table/cookie_table_module.js",
Tim van der Lipped2959582021-03-19 11:17:07109 "panels/coverage/coverage_module.js",
Tim van der Lippe1d7474a2021-03-19 15:41:06110 "panels/css_overview/css_overview_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03111 "data_grid/data_grid_module.js",
Tim van der Lippe115b1772021-03-23 15:22:08112 "panels/elements/elements_module.js",
Tim van der Lippef7c00cd2021-03-22 16:20:45113 "panels/event_listeners/event_listeners_module.js",
Tim van der Lippe8710df42021-03-23 12:05:22114 "panels/help/help_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03115 "inline_editor/inline_editor_module.js",
Tim van der Lippec294e592021-04-07 13:09:01116 "panels/input/input_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03117 "js_profiler/js_profiler_module.js",
Tim van der Lippef9a59692021-03-22 17:59:42118 "panels/layer_viewer/layer_viewer_module.js",
Tim van der Lippe50ceebc2021-03-23 17:44:03119 "panels/layers/layers_module.js",
Tim van der Lippe7a077eb2021-03-23 18:02:11120 "panels/lighthouse/lighthouse_module.js",
Tim van der Lippeaa62a842021-03-30 13:29:36121 "panels/media/media_module.js",
Tim van der Lippef596ca02021-03-31 10:02:47122 "panels/network/network_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03123 "node_debugger/node_debugger_module.js",
124 "object_ui/object_ui_module.js",
125 "perf_ui/perf_ui_module.js",
Tim van der Lippe05f62452021-03-30 15:13:08126 "panels/performance_monitor/performance_monitor_module.js",
Tim van der Lippe251251d2021-03-31 13:37:59127 "panels/profiler/profiler_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03128 "issues/issues_module.js",
Tim van der Lippe724f6d62021-03-22 13:58:28129 "panels/developer_resources/developer_resources_module.js",
Tim van der Lippe1c8ce9c2021-03-30 15:39:24130 "panels/protocol_monitor/protocol_monitor_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03131 "quick_open/quick_open_module.js",
Tim van der Lippec59708f2021-03-31 15:07:19132 "panels/application/application_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03133 "search/search_module.js",
134 "security/security_module.js",
135 "settings/settings_module.js",
136 "snippets/snippets_module.js",
137 "source_frame/source_frame_module.js",
138 "sources/sources_module.js",
139 "text_editor/text_editor_module.js",
Tim van der Lippe30103ef2021-02-03 13:31:03140 "timeline/timeline_module.js",
141 "web_audio/web_audio_module.js",
142 "webauthn/webauthn_module.js",
143 "workspace_diff/workspace_diff_module.js",
144 "emulated_devices/emulated_devices_module.js",
Tim van der Lippebc42a632019-11-28 14:22:55145]
146
Tim van der Lippe30103ef2021-02-03 13:31:03147gen_non_autostart_non_remote_modules = []
148
149foreach(module_file, non_autostart_non_remote_modules) {
Tim van der Lippe30103ef2021-02-03 13:31:03150 gen_non_autostart_non_remote_modules +=
151 [ "$target_gen_dir/front_end/$module_file" ]
152}
153
Tim van der Lippebc42a632019-11-28 14:22:55154devtools_applications = [
Tim van der Lippebc42a632019-11-28 14:22:55155 "devtools_app",
Tim van der Lippebc42a632019-11-28 14:22:55156 "inspector",
Tim van der Lippebc42a632019-11-28 14:22:55157 "js_app",
158 "ndb_app",
159 "node_app",
160 "shell",
Tim van der Lippebc42a632019-11-28 14:22:55161 "worker_app",
162]
163
164#-------------------------------------------------------------------------------
165
Tim van der Lippe501473c2020-05-19 15:01:52166devtools_frontend_resources_deps = [
167 ":build_release_devtools",
Tim van der Lippe501473c2020-05-19 15:01:52168 "front_end",
Tim van der Lippe7ebe48c2020-07-13 12:27:15169 "test",
Tim van der Lippe39fc2542020-02-28 09:38:02170]
Tim van der Lippe3bf1c192020-01-22 11:45:13171
Tim van der Lippe7ebe48c2020-07-13 12:27:15172group("devtools_all_files") {
173 testonly = true
Tim van der Lipped18c7042020-12-03 11:23:20174 data = all_devtools_files
Tim van der Lippe7ebe48c2020-07-13 12:27:15175 data += [
176 # This enables us to test bots with whitespace changes.
177 "scripts/whitespaces.txt",
178 ]
179 data_deps = devtools_frontend_resources_deps
Tim van der Lippe677a98d2021-01-08 15:47:53180
181 public_deps = [ "front_end/component_docs" ]
Tim van der Lippe1a0338a2020-02-21 14:44:49182}
183
Tim van der Lippebc42a632019-11-28 14:22:55184group("devtools_frontend_resources") {
185 public_deps = devtools_frontend_resources_deps
186}
187
Alex Rudenkof0d02a12020-05-28 12:59:04188group("generate_devtools_inspector_overlay_resources") {
Alex Rudenko0e8d7f42020-09-07 07:14:47189 public_deps = [ "inspector_overlay:build_inspector_overlay" ]
Alex Rudenko7bf4d032020-05-13 15:45:02190}
191
Tim van der Lippebc42a632019-11-28 14:22:55192action("generate_devtools_grd") {
193 script = "scripts/build/generate_devtools_grd.py"
194
Paul Lewise73301b2020-01-22 14:35:26195 deps = [ ":devtools_frontend_resources" ]
Blink Reformat4c46d092018-04-07 15:32:37196
Tim van der Lippe8b179312021-02-05 15:13:54197 _grd_files = []
198 _unique_frontend_files =
199 generated_applications_html + applications_js +
200 non_autostart_non_remote_modules + devtools_embedder_scripts +
201 optimized_emulated_device_images + copied_devtools_locale_files +
202 devtools_module_entrypoint_sources
Tim van der Lippebc42a632019-11-28 14:22:55203
Tim van der Lippe8b179312021-02-05 15:13:54204 if (is_debug) {
205 _unique_frontend_files += all_typescript_module_sources
206 }
207
208 foreach(_input_file, _unique_frontend_files) {
Tim van der Lippeda2de6e2021-02-08 15:19:46209 _grd_files += [ "$target_gen_dir/front_end/$_input_file" ]
Tim van der Lippe8b179312021-02-05 15:13:54210 }
211
212 inputs = _grd_files + front_end_image_files
Paul Lewis6c0b15e2020-07-30 10:09:43213
214 # Confirm that the files in the inputs match expectations.
215 # There is some path wrangling necessary here because some paths come with
216 # //out/{Target} at the start, others with front_end
217 _normalized_inputs = []
218 foreach(input, inputs) {
Tim van der Lippeda2de6e2021-02-08 15:19:46219 _normalized_inputs += [ string_replace(input, "$target_gen_dir/", "") ]
Paul Lewis6c0b15e2020-07-30 10:09:43220 }
221
222 # Always assume the release files are included.
223 _expected_files = []
224 _expected_files += grd_files_release_sources
225 if (is_debug) {
226 _expected_files += grd_files_debug_sources
227 }
228
229 # Remove the inputs from the expectations, any leftovers means that not all inputs were provided.
230 _missing_files_expected = filter_exclude(_expected_files, _normalized_inputs)
231 assert(
232 _missing_files_expected == [],
233 "Files were expected that weren't found in the GRD inputs: $_missing_files_expected")
234
235 # Remove the expectations from the inputs, any leftovers means that too many files were provided.
236 _missing_files_normalized =
237 filter_exclude(_normalized_inputs, _expected_files)
238 assert(
239 _missing_files_normalized == [],
240 "Files were provided that weren't expected in the GRD inputs: $_missing_files_normalized")
241
Tim van der Lippe8b179312021-02-05 15:13:54242 response_file_contents = rebase_path(_grd_files, root_build_dir)
Tim van der Lippebc42a632019-11-28 14:22:55243 outfile = "$root_gen_dir/devtools/devtools_resources.grd"
Paul Lewise73301b2020-01-22 14:35:26244 outputs = [ outfile ]
Blink Reformat4c46d092018-04-07 15:32:37245
Tim van der Lippebc42a632019-11-28 14:22:55246 relative_path_dirs = [
Tim van der Lippeda2de6e2021-02-08 15:19:46247 "$target_gen_dir/front_end",
Tim van der Lippebc42a632019-11-28 14:22:55248 "front_end",
Blink Reformat4c46d092018-04-07 15:32:37249 ]
250
Tim van der Lippee2fbfea2020-01-09 13:53:50251 args = [
Rob Paveza41120592020-01-13 17:17:02252 "--file_list",
Tim van der Lippee2fbfea2020-01-09 13:53:50253 "{{response_file_name}}",
254 "--relative_path_dirs",
255 ] + rebase_path(relative_path_dirs, root_build_dir) +
Tim van der Lippebc42a632019-11-28 14:22:55256 [
257 "--images",
258 rebase_path("front_end/Images", root_build_dir),
259 "--output",
260 rebase_path(outfile, root_build_dir),
261 ]
Bruce Dawson42395302021-01-26 08:57:36262 if (!is_debug) {
263 # Compression is slow, particularly in debug builds, so only compress in
264 # non-debug builds.
265 args += [ "--compress" ]
266 }
Tim van der Lippebc42a632019-11-28 14:22:55267}
268
Tim van der Lippe8bdbc7a2020-03-09 10:42:09269build_release_devtools_args = []
270
271if (!is_debug) {
272 build_release_devtools_args += [ "--rollup" ]
273}
274
Dirk Pranke75443e832020-10-01 00:23:38275# TODO(crbug.com/1112471): Get this to work cleanly under Python3.
276python2_action("build_release_devtools") {
Tim van der Lippebc42a632019-11-28 14:22:55277 script = "scripts/build/build_release_applications.py"
Blink Reformat4c46d092018-04-07 15:32:37278
Tim van der Lippebc42a632019-11-28 14:22:55279 helper_scripts = [
280 "scripts/build/modular_build.py",
281 "scripts/build/rjsmin.py",
Tim van der Lippe10095002020-06-15 16:15:33282 "front_end/rollup.config.js",
Tim van der Lippebc42a632019-11-28 14:22:55283 ]
284
Tim van der Lippe9327dc32021-03-30 11:02:19285 deps = [ "front_end" ]
Tim van der Lippe8ea04b02020-05-26 09:57:58286
Tim van der Lippe8ec07dd2020-01-23 18:29:34287 inputs = helper_scripts + all_devtools_files + devtools_test_files +
Tim van der Lippe2172fca2020-12-10 09:54:48288 application_templates
Tim van der Lippe9327dc32021-03-30 11:02:19289 outputs = gen_generated_applications_js + gen_non_autostart_non_remote_modules
Tim van der Lippebc42a632019-11-28 14:22:55290
291 args = devtools_applications + [
292 "--input_path",
293 rebase_path("front_end", root_build_dir),
Tim van der Lippe30103ef2021-02-03 13:31:03294 "--output_path_gen",
295 rebase_path("$target_gen_dir/front_end", root_build_dir),
Tim van der Lippe8bdbc7a2020-03-09 10:42:09296 ] + build_release_devtools_args
Tim van der Lippebc42a632019-11-28 14:22:55297}