# Copyright 2020 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import("//build/config/cast.gni") import("//build/config/ui.gni") # For the toolkit_views variables. import("//mojo/public/tools/bindings/mojom.gni") import("//printing/buildflags/buildflags.gni") import("//services/device/public/cpp/compute_pressure/buildflags.gni") if (is_android) { import("//build/config/android/config.gni") } mojom("web_test_common_mojom") { sources = [ "common/fake_bluetooth_chooser.mojom", "common/mojo_echo.mojom", "common/mojo_optional_numerics_unittest.mojom", "common/web_test.mojom", "common/web_test_bluetooth_fake_adapter_setter.mojom", ] public_deps = [ "//mojo/public/mojom/base", "//skia/public/mojom", "//third_party/blink/public/mojom:mojom_platform", "//ui/accessibility:ax_enums_mojo", "//ui/gfx/geometry/mojom", "//url/mojom:url_mojom_gurl", "//url/mojom:url_mojom_origin", ] overridden_deps = [ "//third_party/blink/public/mojom:mojom_platform" ] component_deps = [ "//third_party/blink/public/common" ] } static_library("web_test_common") { testonly = true sources = [ "common/tracked_dictionary.cc", "common/tracked_dictionary.h", "common/web_test_constants.h", "common/web_test_hash_util.cc", "common/web_test_runtime_flags.cc", "common/web_test_runtime_flags.h", "common/web_test_string_util.cc", "common/web_test_string_util.h", "common/web_test_switches.h", ] public_deps = [ # The mojoms used to support communication between browser and renderer # for the web test harness. ":web_test_common_mojom", # The generated mojom JS bindings are used by web tests. ":web_test_common_mojom_js", ] deps = [ "//base", "//third_party/blink/public:blink_headers", "//url", "//v8", ] } static_library("web_test_browser") { testonly = true # This is to support our dependency on //content/browser. # See comment at the top of //content/BUILD.gn for why this is disabled in # component builds. if (is_component_build) { check_includes = false } sources = [ "browser/devtools_protocol_test_bindings.cc", "browser/devtools_protocol_test_bindings.h", "browser/fake_bluetooth_chooser.cc", "browser/fake_bluetooth_chooser.h", "browser/fake_bluetooth_chooser_factory.cc", "browser/fake_bluetooth_chooser_factory.h", "browser/fake_bluetooth_delegate.cc", "browser/fake_bluetooth_delegate.h", "browser/leak_detector.cc", "browser/leak_detector.h", "browser/mojo_echo.cc", "browser/mojo_echo.h", "browser/mojo_optional_numerics_unittest.cc", "browser/mojo_optional_numerics_unittest.h", "browser/mojo_web_test_helper.cc", "browser/mojo_web_test_helper.h", "browser/test_info_extractor.cc", "browser/test_info_extractor.h", "browser/web_test_background_fetch_delegate.cc", "browser/web_test_background_fetch_delegate.h", "browser/web_test_bluetooth_adapter_provider.cc", "browser/web_test_bluetooth_adapter_provider.h", "browser/web_test_bluetooth_chooser_factory.cc", "browser/web_test_bluetooth_chooser_factory.h", "browser/web_test_bluetooth_fake_adapter_setter_impl.cc", "browser/web_test_bluetooth_fake_adapter_setter_impl.h", "browser/web_test_browser_context.cc", "browser/web_test_browser_context.h", "browser/web_test_browser_main_parts.cc", "browser/web_test_browser_main_parts.h", "browser/web_test_browser_main_platform_support.h", "browser/web_test_browser_main_runner.cc", "browser/web_test_browser_main_runner.h", "browser/web_test_content_browser_client.cc", "browser/web_test_content_browser_client.h", "browser/web_test_control_host.cc", "browser/web_test_control_host.h", "browser/web_test_cookie_manager.cc", "browser/web_test_cookie_manager.h", "browser/web_test_device_posture_provider.cc", "browser/web_test_device_posture_provider.h", "browser/web_test_devtools_bindings.cc", "browser/web_test_devtools_bindings.h", "browser/web_test_download_manager_delegate.cc", "browser/web_test_download_manager_delegate.h", "browser/web_test_fedcm_manager.cc", "browser/web_test_fedcm_manager.h", "browser/web_test_first_device_bluetooth_chooser.cc", "browser/web_test_first_device_bluetooth_chooser.h", "browser/web_test_javascript_dialog_manager.cc", "browser/web_test_javascript_dialog_manager.h", "browser/web_test_origin_trial_throttle.cc", "browser/web_test_origin_trial_throttle.h", "browser/web_test_permission_manager.cc", "browser/web_test_permission_manager.h", "browser/web_test_push_messaging_service.cc", "browser/web_test_push_messaging_service.h", "browser/web_test_sensor_provider_manager.cc", "browser/web_test_sensor_provider_manager.h", "browser/web_test_shell_platform_delegate.cc", "browser/web_test_shell_platform_delegate.h", "browser/web_test_storage_access_manager.cc", "browser/web_test_storage_access_manager.h", "browser/web_test_tracing_controller.cc", "browser/web_test_tracing_controller.h", "browser/web_test_tts_platform.cc", "browser/web_test_tts_platform.h", ] if (enable_compute_pressure) { sources += [ "browser/web_test_pressure_manager.cc", "browser/web_test_pressure_manager.h", ] } if (is_mac) { sources += [ "browser/web_test_shell_platform_delegate_mac.mm" ] } else if (toolkit_views && !is_castos) { sources += [ "browser/web_test_shell_platform_delegate_views.cc" ] } else if (is_ios) { sources += [ "browser/web_test_shell_platform_delegate_ios.mm" ] } else { sources += [ "browser/web_test_shell_platform_delegate_aura.cc" ] } if (is_apple) { sources += [ "browser/web_test_browser_main_platform_support_mac.mm" ] } if (is_win) { sources += [ "browser/web_test_browser_main_platform_support_win.cc" ] } if (is_linux || is_chromeos) { sources += [ "browser/web_test_browser_main_platform_support_linux.cc" ] } deps = [ ":web_test_common", "//base", "//cc/base", "//cc/paint", "//components/custom_handlers", "//components/custom_handlers:test_support", "//components/download/content/factory", "//components/download/public/background_service:public", "//components/download/public/common:public", "//components/network_session_configurator/common", "//components/origin_trials:common", "//components/proxy_config", "//components/subresource_filter/core/common:test_support", "//content/browser:for_content_tests", # For non-component builds. "//content/public/browser", # For component builds. "//content/shell:content_shell_lib", "//content/test:blink_test_browser_support", "//content/test:mojo_bindings_web_test_mojom", "//content/test:mojo_web_test_bindings", "//content/test:test_support", "//device/bluetooth:fake_bluetooth", "//device/bluetooth:mocks", "//device/bluetooth/public/mojom:fake_bluetooth_interfaces", "//media", "//net", "//net:net_resources", "//net:test_support", "//sandbox", "//services/device/public/cpp:test_support", "//services/device/public/cpp/compute_pressure:buildflags", "//services/network/public/cpp", "//services/service_manager/public/cpp", "//storage/browser", "//testing/gmock", "//testing/gtest", "//third_party/blink/public:blink", "//third_party/blink/public/test/mojom:core_test_automation", "//third_party/blink/public/test/mojom:modules_test_automation", "//ui/base", "//ui/base/ime/init", "//ui/display", "//ui/gfx", "//ui/gfx/geometry", "//ui/gl", "//ui/shell_dialogs", "//url", ] if (is_mac) { deps += [ "//ui/display:test_support" ] } if (use_aura) { deps += [ "//ui/aura:test_support" ] } if (use_ozone) { deps += [ "//ui/ozone" ] } } # TODO(crbug.com/40159584): The `allow_circular_includes_from` declared in # `:web_test_renderer` does not propagate the public_deps # from `:web_test_renderer`'s own dependencies. This means that those targets # are not built when `//third_party/blink/renderer/core/web_test` is built, # and some generated mojom headers will be missing. As a workaround, split # these deps into this separate group so that # `//third_party/blink/renderer/core/web_test` can add include them in its # own deps directly. group("web_test_renderer_public_deps") { testonly = true public_deps = [ ":web_test_common", "//base", "//cc", "//cc/paint", "//content/public/renderer", # For component builds. "//content/renderer:for_content_tests", # For non-component builds. "//content/shell:content_shell_lib", "//device/gamepad/public/cpp:shared_with_blink", "//device/gamepad/public/mojom", "//gin", "//mojo/public/cpp/bindings", "//services/device/public/mojom", "//third_party/blink/public:blink_headers", "//third_party/blink/public:test_headers", "//ui/accessibility:ax_base", "//ui/base/dragdrop/mojom", "//ui/display", "//ui/gfx/geometry", "//url", "//v8", ] } static_library("test_support") { testonly = true if (is_component_build) { check_includes = false } sources = [ "renderer/test_runner_utils.cc", "renderer/test_runner_utils.h", ] deps = [ "//base" ] public_deps = [] } static_library("web_test_renderer") { testonly = true # This is to support our dependency on //content/renderer. # See comment at the top of //content/BUILD.gn for why this is disabled in # component builds. if (is_component_build) { check_includes = false } # We allow a circular include from blink's web_test implementation. This # is an incremental step to moving the renderer web_test implementation # into blink. allow_circular_includes_from = [ "//third_party/blink/renderer/core/web_test" ] sources = [ "renderer/accessibility_controller.cc", "renderer/accessibility_controller.h", "renderer/app_banner_service.cc", "renderer/app_banner_service.h", "renderer/blink_test_helpers.cc", "renderer/blink_test_helpers.h", "renderer/event_sender.cc", "renderer/event_sender.h", "renderer/fake_screen_orientation_impl.cc", "renderer/fake_screen_orientation_impl.h", "renderer/gamepad_controller.cc", "renderer/gamepad_controller.h", "renderer/gc_controller.cc", "renderer/gc_controller.h", "renderer/layout_dump.cc", "renderer/layout_dump.h", "renderer/spell_check_client.cc", "renderer/spell_check_client.h", "renderer/test_plugin.cc", "renderer/test_plugin.h", "renderer/test_preferences.cc", "renderer/test_preferences.h", "renderer/test_runner.cc", "renderer/test_runner.h", "renderer/test_websocket_handshake_throttle_provider.cc", "renderer/test_websocket_handshake_throttle_provider.h", "renderer/text_input_controller.cc", "renderer/text_input_controller.h", "renderer/web_ax_object_proxy.cc", "renderer/web_ax_object_proxy.h", "renderer/web_frame_test_proxy.cc", "renderer/web_frame_test_proxy.h", "renderer/web_test_content_renderer_client.cc", "renderer/web_test_content_renderer_client.h", "renderer/web_test_content_settings_client.cc", "renderer/web_test_content_settings_client.h", "renderer/web_test_grammar_checker.cc", "renderer/web_test_grammar_checker.h", "renderer/web_test_spell_checker.cc", "renderer/web_test_spell_checker.h", ] deps = [ "//components/plugins/renderer", "//components/subresource_filter/content/renderer", "//components/subresource_filter/core/common", "//components/viz/common", "//components/web_cache/renderer", "//content/public/common", "//content/test:test_support", "//content/web_test:test_support", "//gpu/command_buffer/client:gles2_interface", "//media/capture", "//printing/buildflags", # TODO(crbug.com/40178248) Remove //printing/mojom requirement coming from # //third_party/blink/public:blink_headers. "//printing/mojom", "//services/service_manager/public/cpp", "//skia", "//skia:test_fonts", "//ui/base/ime:ime_types", "//ui/events:dom_keycode_converter", "//ui/events:events_base", "//ui/events/blink", "//ui/gfx", "//ui/gfx:test_support", ] public_deps = [ ":web_test_renderer_public_deps", "//third_party/blink/renderer/core/web_test", ] if (enable_printing || enable_printing_tests) { deps += [ "//printing" ] } # TODO(crbug.com/40031409): Fix code that adds exit-time destructors and # enable the diagnostic by removing this line. configs += [ "//build/config/compiler:no_exit_time_destructors" ] }