blob: 80c0fc9ddd50af37625f52ef9700a6a77de6eeb9 [file] [log] [blame]
Avi Drissman4e1b7bc32022-09-15 14:03:501# Copyright 2020 The Chromium Authors
danakj89f47082020-09-02 17:53:432# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
mark a. foltze185ab2fa2023-11-06 21:21:205import("//build/config/cast.gni")
Maksim Sisov2ac2c312021-11-03 08:00:126import("//build/config/ui.gni") # For the toolkit_views variables.
danakj89f47082020-09-02 17:53:437import("//mojo/public/tools/bindings/mojom.gni")
8import("//ppapi/buildflags/buildflags.gni") # For the enable_plugins variable.
Alan Screen53a28132021-04-27 23:03:319import("//printing/buildflags/buildflags.gni")
Arnaud Mandy624afa3322024-08-09 13:33:5410import("//services/device/public/cpp/compute_pressure/buildflags.gni")
danakj89f47082020-09-02 17:53:4311
12if (is_android) {
13 import("//build/config/android/config.gni")
14} else if (is_mac) {
15 import("//build/apple/tweak_info_plist.gni")
16 import("//build/config/mac/rules.gni")
17 import("//content/public/app/mac_helpers.gni")
18 import("//third_party/icu/config.gni")
19 import("//ui/gl/features.gni")
20 import("//v8/gni/v8.gni")
21}
22
danakj89f47082020-09-02 17:53:4323mojom("web_test_common_mojom") {
24 sources = [
25 "common/fake_bluetooth_chooser.mojom",
26 "common/mojo_echo.mojom",
Giovanni Ortuño Urquidi0acdd9a2023-05-09 02:22:3527 "common/mojo_optional_numerics_unittest.mojom",
danakj89f47082020-09-02 17:53:4328 "common/web_test.mojom",
29 "common/web_test_bluetooth_fake_adapter_setter.mojom",
30 ]
31 public_deps = [
danakj89f47082020-09-02 17:53:4332 "//mojo/public/mojom/base",
33 "//skia/public/mojom",
Gyuyoung Kimcbe8dae2020-10-01 09:24:3934 "//third_party/blink/public/mojom:mojom_platform",
danakj89f47082020-09-02 17:53:4335 "//ui/accessibility:ax_enums_mojo",
36 "//ui/gfx/geometry/mojom",
37 "//url/mojom:url_mojom_gurl",
38 "//url/mojom:url_mojom_origin",
39 ]
Gyuyoung Kimcbe8dae2020-10-01 09:24:3940
41 overridden_deps = [ "//third_party/blink/public/mojom:mojom_platform" ]
42 component_deps = [ "//third_party/blink/public/common" ]
danakj89f47082020-09-02 17:53:4343}
44
45static_library("web_test_common") {
46 testonly = true
47 sources = [
Dave Tapuska01437d8e2021-01-29 18:42:1848 "common/tracked_dictionary.cc",
49 "common/tracked_dictionary.h",
Hitoshi Yoshida25a31d52020-10-29 08:00:3350 "common/web_test_constants.cc",
danakj89f47082020-09-02 17:53:4351 "common/web_test_constants.h",
Dave Tapuska01437d8e2021-01-29 18:42:1852 "common/web_test_runtime_flags.cc",
53 "common/web_test_runtime_flags.h",
danakj89f47082020-09-02 17:53:4354 "common/web_test_string_util.cc",
55 "common/web_test_string_util.h",
56 "common/web_test_switches.cc",
57 "common/web_test_switches.h",
58 ]
59 public_deps = [
60 # The mojoms used to support communication between browser and renderer
61 # for the web test harness.
62 ":web_test_common_mojom",
63
64 # The generated mojom JS bindings are used by web tests.
65 ":web_test_common_mojom_js",
66 ]
67 deps = [
68 "//base",
69 "//third_party/blink/public:blink_headers",
70 "//url",
71 "//v8",
72 ]
73}
74
75static_library("web_test_browser") {
76 testonly = true
77
78 # This is to support our dependency on //content/browser.
79 # See comment at the top of //content/BUILD.gn for why this is disabled in
80 # component builds.
81 if (is_component_build) {
82 check_includes = false
83 }
84
85 sources = [
86 "browser/devtools_protocol_test_bindings.cc",
87 "browser/devtools_protocol_test_bindings.h",
88 "browser/fake_bluetooth_chooser.cc",
89 "browser/fake_bluetooth_chooser.h",
90 "browser/fake_bluetooth_chooser_factory.cc",
91 "browser/fake_bluetooth_chooser_factory.h",
92 "browser/fake_bluetooth_delegate.cc",
93 "browser/fake_bluetooth_delegate.h",
94 "browser/leak_detector.cc",
95 "browser/leak_detector.h",
96 "browser/mojo_echo.cc",
97 "browser/mojo_echo.h",
Giovanni Ortuño Urquidi0acdd9a2023-05-09 02:22:3598 "browser/mojo_optional_numerics_unittest.cc",
99 "browser/mojo_optional_numerics_unittest.h",
danakj89f47082020-09-02 17:53:43100 "browser/mojo_web_test_helper.cc",
101 "browser/mojo_web_test_helper.h",
102 "browser/test_info_extractor.cc",
103 "browser/test_info_extractor.h",
104 "browser/web_test_background_fetch_delegate.cc",
105 "browser/web_test_background_fetch_delegate.h",
106 "browser/web_test_bluetooth_adapter_provider.cc",
107 "browser/web_test_bluetooth_adapter_provider.h",
108 "browser/web_test_bluetooth_chooser_factory.cc",
109 "browser/web_test_bluetooth_chooser_factory.h",
110 "browser/web_test_bluetooth_fake_adapter_setter_impl.cc",
111 "browser/web_test_bluetooth_fake_adapter_setter_impl.h",
112 "browser/web_test_browser_context.cc",
113 "browser/web_test_browser_context.h",
114 "browser/web_test_browser_main_parts.cc",
115 "browser/web_test_browser_main_parts.h",
116 "browser/web_test_browser_main_platform_support.h",
danakj89f47082020-09-02 17:53:43117 "browser/web_test_browser_main_runner.cc",
118 "browser/web_test_browser_main_runner.h",
119 "browser/web_test_content_browser_client.cc",
120 "browser/web_test_content_browser_client.h",
121 "browser/web_test_control_host.cc",
122 "browser/web_test_control_host.h",
Ari Chivukula86928092021-07-13 13:56:51123 "browser/web_test_cookie_manager.cc",
124 "browser/web_test_cookie_manager.h",
Raphael Kubo da Costaa1224a12024-04-19 15:03:52125 "browser/web_test_device_posture_provider.cc",
126 "browser/web_test_device_posture_provider.h",
danakj89f47082020-09-02 17:53:43127 "browser/web_test_devtools_bindings.cc",
128 "browser/web_test_devtools_bindings.h",
129 "browser/web_test_download_manager_delegate.cc",
130 "browser/web_test_download_manager_delegate.h",
Nicolás Peña9be3a4c2023-06-26 15:34:29131 "browser/web_test_fedcm_manager.cc",
132 "browser/web_test_fedcm_manager.h",
danakj89f47082020-09-02 17:53:43133 "browser/web_test_first_device_bluetooth_chooser.cc",
134 "browser/web_test_first_device_bluetooth_chooser.h",
135 "browser/web_test_javascript_dialog_manager.cc",
136 "browser/web_test_javascript_dialog_manager.h",
Peter Birk Pakkenbergd927c942022-11-17 14:30:42137 "browser/web_test_origin_trial_throttle.cc",
138 "browser/web_test_origin_trial_throttle.h",
danakj89f47082020-09-02 17:53:43139 "browser/web_test_permission_manager.cc",
140 "browser/web_test_permission_manager.h",
Russ Hamilton6c887f32025-04-16 14:46:01141 "browser/web_test_privacy_sandbox.cc",
142 "browser/web_test_privacy_sandbox.h",
danakj89f47082020-09-02 17:53:43143 "browser/web_test_push_messaging_service.cc",
144 "browser/web_test_push_messaging_service.h",
Raphael Kubo da Costa143ff002023-10-19 16:44:22145 "browser/web_test_sensor_provider_manager.cc",
146 "browser/web_test_sensor_provider_manager.h",
danakj89f47082020-09-02 17:53:43147 "browser/web_test_shell_platform_delegate.cc",
148 "browser/web_test_shell_platform_delegate.h",
149 "browser/web_test_storage_access_manager.cc",
150 "browser/web_test_storage_access_manager.h",
Stefan Zager23e0be12023-11-13 20:09:34151 "browser/web_test_tracing_controller.cc",
152 "browser/web_test_tracing_controller.h",
danakj89f47082020-09-02 17:53:43153 "browser/web_test_tts_platform.cc",
154 "browser/web_test_tts_platform.h",
155 ]
156
Arnaud Mandy624afa3322024-08-09 13:33:54157 if (enable_compute_pressure) {
158 sources += [
159 "browser/web_test_pressure_manager.cc",
160 "browser/web_test_pressure_manager.h",
161 ]
162 }
163
danakj89f47082020-09-02 17:53:43164 if (is_mac) {
Gyuyoung Kim0ea2eae2023-09-30 07:40:46165 sources += [ "browser/web_test_shell_platform_delegate_mac.mm" ]
Ryan Keane190beb32022-06-16 01:08:10166 } else if (toolkit_views && !is_castos) {
danakj89f47082020-09-02 17:53:43167 sources += [ "browser/web_test_shell_platform_delegate_views.cc" ]
Dave Tapuska1f7929c2023-02-03 18:11:56168 } else if (is_ios) {
169 sources += [ "browser/web_test_shell_platform_delegate_ios.mm" ]
danakj89f47082020-09-02 17:53:43170 } else {
171 sources += [ "browser/web_test_shell_platform_delegate_aura.cc" ]
172 }
173
Gyuyoung Kim0ea2eae2023-09-30 07:40:46174 if (is_apple) {
175 sources += [ "browser/web_test_browser_main_platform_support_mac.mm" ]
176 }
177
Sylvain Defresne16da4292020-10-05 11:39:48178 if (is_win) {
179 sources += [ "browser/web_test_browser_main_platform_support_win.cc" ]
180 }
181
182 if (is_linux || is_chromeos) {
183 sources += [ "browser/web_test_browser_main_platform_support_linux.cc" ]
184 }
185
danakj89f47082020-09-02 17:53:43186 deps = [
187 ":web_test_common",
188 "//base",
189 "//cc/base",
190 "//cc/paint",
Javier Fernández García-Boente075c2ea32024-02-16 09:36:02191 "//components/custom_handlers:custom_handlers",
192 "//components/custom_handlers:test_support",
danakj89f47082020-09-02 17:53:43193 "//components/download/content/factory",
194 "//components/download/public/background_service:public",
195 "//components/download/public/common:public",
196 "//components/network_session_configurator/common",
Peter Birk Pakkenbergd927c942022-11-17 14:30:42197 "//components/origin_trials:common",
Noam Rosenthal4bd29ed92022-08-11 16:01:36198 "//components/proxy_config",
Yao Xiao86088fc2025-06-02 17:24:48199 "//components/subresource_filter/core/common:test_support",
danakj89f47082020-09-02 17:53:43200 "//content/browser:for_content_tests", # For non-component builds.
201 "//content/public/browser", # For component builds.
202 "//content/shell:content_shell_lib",
203 "//content/test:blink_test_browser_support",
Ken Rockot54b704a2021-01-07 21:26:55204 "//content/test:mojo_bindings_web_test_mojom",
danakj89f47082020-09-02 17:53:43205 "//content/test:mojo_web_test_bindings",
206 "//content/test:test_support",
207 "//device/bluetooth:fake_bluetooth",
208 "//device/bluetooth:mocks",
209 "//device/bluetooth/public/mojom:fake_bluetooth_interfaces",
danakj89f47082020-09-02 17:53:43210 "//media",
211 "//net",
212 "//net:net_resources",
213 "//net:test_support",
214 "//ppapi/buildflags",
215 "//sandbox",
216 "//services/device/public/cpp:test_support",
Arnaud Mandy624afa3322024-08-09 13:33:54217 "//services/device/public/cpp/compute_pressure:buildflags",
danakj89f47082020-09-02 17:53:43218 "//services/network/public/cpp",
219 "//services/service_manager/public/cpp",
220 "//storage/browser",
221 "//testing/gmock",
222 "//testing/gtest",
223 "//third_party/blink/public:blink",
Russ Hamiltonf1f0982e2025-05-01 14:46:59224 "//third_party/blink/public/test/mojom:core_test_automation",
225 "//third_party/blink/public/test/mojom:modules_test_automation",
danakj89f47082020-09-02 17:53:43226 "//ui/base",
227 "//ui/base/ime/init",
228 "//ui/display",
229 "//ui/gfx",
230 "//ui/gfx/geometry",
231 "//ui/gl",
232 "//ui/shell_dialogs:shell_dialogs",
233 "//url",
234 ]
235
Alison Gale81f4f2c72024-04-22 19:33:31236 # TODO(crbug.com/40139469): Blink test plugin must be migrated from PPAPI.
K. Moon46aabb282022-07-22 22:06:49237 if (enable_ppapi) {
danakj89f47082020-09-02 17:53:43238 deps += [
239 "//content/ppapi_plugin",
240 "//ppapi:blink_deprecated_test_plugin",
241 "//ppapi:blink_test_plugin",
242 ]
243 }
Mitsuru Oshimae29aa0f2022-06-07 06:01:49244
245 if (is_mac) {
246 deps += [ "//ui/display:test_support" ]
247 }
248
249 if (use_aura) {
250 deps += [ "//ui/aura:test_support" ]
251 }
Sergey Ulanovd44c21e2023-03-07 18:20:53252
253 if (use_ozone) {
254 deps += [ "//ui/ozone" ]
255 }
danakj89f47082020-09-02 17:53:43256}
257
Alison Gale81f4f2c72024-04-22 19:33:31258# TODO(crbug.com/40159584): The `allow_circular_includes_from` declared in
Dan Clarkf71cd6c32022-06-22 19:48:01259# `:web_test_renderer` does not propagate the public_deps
260# from `:web_test_renderer`'s own dependencies. This means that those targets
261# are not built when `//third_party/blink/renderer/core/web_test` is built,
262# and some generated mojom headers will be missing. As a workaround, split
263# these deps into this separate group so that
264# `//third_party/blink/renderer/core/web_test` can add include them in its
265# own deps directly.
266group("web_test_renderer_public_deps") {
267 testonly = true
268
269 public_deps = [
270 ":web_test_common",
271 "//base",
272 "//cc",
273 "//cc/paint",
274 "//content/public/renderer", # For component builds.
275 "//content/renderer:for_content_tests", # For non-component builds.
276 "//content/shell:content_shell_lib",
277 "//device/gamepad/public/cpp:shared_with_blink",
278 "//device/gamepad/public/mojom",
279 "//gin",
Dan Clarkf71cd6c32022-06-22 19:48:01280 "//mojo/public/cpp/bindings",
281 "//services/device/public/mojom",
282 "//third_party/blink/public:blink_headers",
283 "//third_party/blink/public:test_headers",
284 "//ui/accessibility:ax_base",
285 "//ui/base/dragdrop/mojom",
286 "//ui/display",
287 "//ui/gfx/geometry",
288 "//url",
289 "//v8",
290 ]
291}
292
Mingyu Leie7260122025-06-11 04:28:31293static_library("test_support") {
294 testonly = true
295
296 if (is_component_build) {
297 check_includes = false
298 }
299
300 sources = [
301 "renderer/test_runner_utils.cc",
302 "renderer/test_runner_utils.h",
303 ]
304
305 deps = [ "//base" ]
306
307 public_deps = []
308}
309
danakj89f47082020-09-02 17:53:43310static_library("web_test_renderer") {
311 testonly = true
312
313 # This is to support our dependency on //content/renderer.
314 # See comment at the top of //content/BUILD.gn for why this is disabled in
315 # component builds.
316 if (is_component_build) {
317 check_includes = false
318 }
319
Dave Tapuska4d524862020-12-01 19:43:41320 # We allow a circular include from blink's web_test implementation. This
321 # is an incremental step to moving the renderer web_test implementation
322 # into blink.
323 allow_circular_includes_from =
324 [ "//third_party/blink/renderer/core/web_test" ]
325
danakj89f47082020-09-02 17:53:43326 sources = [
327 "renderer/accessibility_controller.cc",
328 "renderer/accessibility_controller.h",
329 "renderer/app_banner_service.cc",
330 "renderer/app_banner_service.h",
331 "renderer/blink_test_helpers.cc",
332 "renderer/blink_test_helpers.h",
333 "renderer/event_sender.cc",
334 "renderer/event_sender.h",
335 "renderer/fake_screen_orientation_impl.cc",
336 "renderer/fake_screen_orientation_impl.h",
danakj89f47082020-09-02 17:53:43337 "renderer/gamepad_controller.cc",
338 "renderer/gamepad_controller.h",
339 "renderer/gc_controller.cc",
340 "renderer/gc_controller.h",
341 "renderer/layout_dump.cc",
342 "renderer/layout_dump.h",
danakj89f47082020-09-02 17:53:43343 "renderer/spell_check_client.cc",
344 "renderer/spell_check_client.h",
345 "renderer/test_plugin.cc",
346 "renderer/test_plugin.h",
347 "renderer/test_preferences.cc",
348 "renderer/test_preferences.h",
349 "renderer/test_runner.cc",
350 "renderer/test_runner.h",
351 "renderer/test_websocket_handshake_throttle_provider.cc",
352 "renderer/test_websocket_handshake_throttle_provider.h",
353 "renderer/text_input_controller.cc",
354 "renderer/text_input_controller.h",
danakj89f47082020-09-02 17:53:43355 "renderer/web_ax_object_proxy.cc",
356 "renderer/web_ax_object_proxy.h",
357 "renderer/web_frame_test_proxy.cc",
358 "renderer/web_frame_test_proxy.h",
359 "renderer/web_test_content_renderer_client.cc",
360 "renderer/web_test_content_renderer_client.h",
361 "renderer/web_test_content_settings_client.cc",
362 "renderer/web_test_content_settings_client.h",
363 "renderer/web_test_grammar_checker.cc",
364 "renderer/web_test_grammar_checker.h",
danakj89f47082020-09-02 17:53:43365 "renderer/web_test_spell_checker.cc",
366 "renderer/web_test_spell_checker.h",
danakj89f47082020-09-02 17:53:43367 ]
368 deps = [
danakj89f47082020-09-02 17:53:43369 "//components/plugins/renderer",
Yao Xiao86088fc2025-06-02 17:24:48370 "//components/subresource_filter/content/renderer",
371 "//components/subresource_filter/core/common",
danakj89f47082020-09-02 17:53:43372 "//components/viz/common",
373 "//components/web_cache/renderer",
374 "//content/public/common",
danakj89f47082020-09-02 17:53:43375 "//content/test:test_support",
Mingyu Leie7260122025-06-11 04:28:31376 "//content/web_test:test_support",
danakj89f47082020-09-02 17:53:43377 "//gpu/command_buffer/client:gles2_interface",
378 "//media/capture",
Alan Screen53a28132021-04-27 23:03:31379 "//printing/buildflags",
380
Alison Gale59c007a2024-04-20 03:05:40381 # TODO(crbug.com/40178248) Remove //printing/mojom requirement coming from
Alan Screen53a28132021-04-27 23:03:31382 # //third_party/blink/public:blink_headers.
danakj89f47082020-09-02 17:53:43383 "//printing/mojom",
danakj89f47082020-09-02 17:53:43384 "//services/service_manager/public/cpp",
385 "//skia",
Greg Thompson2d1bacb2022-10-28 14:39:45386 "//skia:test_fonts",
danakj89f47082020-09-02 17:53:43387 "//ui/base/ime:ime_types",
danakj89f47082020-09-02 17:53:43388 "//ui/events:dom_keycode_converter",
389 "//ui/events:events_base",
390 "//ui/events/blink",
391 "//ui/gfx",
392 "//ui/gfx:test_support",
Ken Rockot26fdd8b2021-07-12 20:53:38393 ]
394
395 public_deps = [
Dan Clarkf71cd6c32022-06-22 19:48:01396 ":web_test_renderer_public_deps",
Ken Rockot26fdd8b2021-07-12 20:53:38397 "//third_party/blink/renderer/core/web_test",
danakj89f47082020-09-02 17:53:43398 ]
Alan Screen53a28132021-04-27 23:03:31399
Gyuyoung Kim80fd49b2023-11-07 15:44:22400 if (enable_printing || enable_printing_tests) {
Alan Screen53a28132021-04-27 23:03:31401 deps += [ "//printing" ]
402 }
danakj89f47082020-09-02 17:53:43403}