blob: e7543c14612d6f1633f84005748acfcb44c985fc [file] [log] [blame]
# Copyright 2014 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/chromecast_build.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//third_party/blink/renderer/bindings/bindings.gni")
import("//third_party/blink/renderer/bindings/scripts/scripts.gni")
import("//third_party/blink/renderer/build/scripts/scripts.gni")
import("//third_party/blink/renderer/modules/modules.gni")
import("//third_party/webrtc/webrtc.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
if (is_ios) {
import("//build/config/ios/bundle_data_from_filelist.gni")
}
visibility = [ "//third_party/blink/renderer/*" ]
config("modules_implementation") {
defines = [ "BLINK_MODULES_IMPLEMENTATION=1" ]
}
component("modules") {
output_name = "blink_modules"
visibility = [] # Allow re-assignment of list.
visibility = [ "//third_party/blink/*" ]
sources = [
"event_modules.h",
"event_modules_factory.h",
"event_target_modules.h",
"modules_export.h",
"modules_initializer.cc",
"modules_initializer.h",
]
sources += blink_modules_sources_bindings
configs += [
":modules_implementation",
"//third_party/blink/renderer:config",
"//third_party/blink/renderer:non_test_config",
"//third_party/blink/renderer:inside_blink",
"//third_party/blink/renderer/core:blink_core_pch",
"//v8:external_startup_data",
]
sub_modules = [
":modules_generated",
"//third_party/blink/renderer/bindings/modules/v8",
"//third_party/blink/renderer/modules/accessibility",
"//third_party/blink/renderer/modules/ad_auction",
"//third_party/blink/renderer/modules/animationworklet",
"//third_party/blink/renderer/modules/app_banner",
"//third_party/blink/renderer/modules/audio_output_devices",
"//third_party/blink/renderer/modules/background_fetch",
"//third_party/blink/renderer/modules/background_sync",
"//third_party/blink/renderer/modules/badging",
"//third_party/blink/renderer/modules/managed_device",
"//third_party/blink/renderer/modules/battery",
"//third_party/blink/renderer/modules/beacon",
"//third_party/blink/renderer/modules/bluetooth",
"//third_party/blink/renderer/modules/broadcastchannel",
"//third_party/blink/renderer/modules/browsing_topics",
"//third_party/blink/renderer/modules/buckets",
"//third_party/blink/renderer/modules/breakout_box",
"//third_party/blink/renderer/modules/mojo",
"//third_party/blink/renderer/modules/cache_storage",
"//third_party/blink/renderer/modules/canvas",
"//third_party/blink/renderer/modules/clipboard",
"//third_party/blink/renderer/modules/compute_pressure",
"//third_party/blink/renderer/modules/contacts_picker",
"//third_party/blink/renderer/modules/content_index",
"//third_party/blink/renderer/modules/cookie_store",
"//third_party/blink/renderer/modules/credentialmanagement",
"//third_party/blink/renderer/modules/crypto",
"//third_party/blink/renderer/modules/csspaint",
"//third_party/blink/renderer/modules/compression",
"//third_party/blink/renderer/modules/delegated_ink",
"//third_party/blink/renderer/modules/device_orientation",
"//third_party/blink/renderer/modules/device_posture",
"//third_party/blink/renderer/modules/document_metadata",
"//third_party/blink/renderer/modules/document_picture_in_picture",
"//third_party/blink/renderer/modules/donottrack",
"//third_party/blink/renderer/modules/encoding",
"//third_party/blink/renderer/modules/encryptedmedia",
"//third_party/blink/renderer/modules/environment_integrity",
"//third_party/blink/renderer/modules/eventsource",
"//third_party/blink/renderer/modules/exported",
"//third_party/blink/renderer/modules/eyedropper",
"//third_party/blink/renderer/modules/formatted_text",
"//third_party/blink/renderer/modules/filesystem",
"//third_party/blink/renderer/modules/file_system_access",
"//third_party/blink/renderer/modules/font_access",
"//third_party/blink/renderer/modules/gamepad",
"//third_party/blink/renderer/modules/geolocation",
"//third_party/blink/renderer/modules/handwriting",
"//third_party/blink/renderer/modules/hid",
"//third_party/blink/renderer/modules/idle",
"//third_party/blink/renderer/modules/imagecapture",
"//third_party/blink/renderer/modules/image_downloader",
"//third_party/blink/renderer/modules/indexeddb",
"//third_party/blink/renderer/modules/installation",
"//third_party/blink/renderer/modules/installedapp",
"//third_party/blink/renderer/modules/keyboard",
"//third_party/blink/renderer/modules/launch",
"//third_party/blink/renderer/modules/locks",
"//third_party/blink/renderer/modules/lock_screen",
"//third_party/blink/renderer/modules/manifest",
"//third_party/blink/renderer/modules/media_capabilities",
"//third_party/blink/renderer/modules/media_controls",
"//third_party/blink/renderer/modules/mediacapturefromelement",
"//third_party/blink/renderer/modules/mediarecorder",
"//third_party/blink/renderer/modules/mediasession",
"//third_party/blink/renderer/modules/mediasource",
"//third_party/blink/renderer/modules/mediastream",
"//third_party/blink/renderer/modules/media",
"//third_party/blink/renderer/modules/ml",
"//third_party/blink/renderer/modules/navigatorcontentutils",
"//third_party/blink/renderer/modules/netinfo",
"//third_party/blink/renderer/modules/nfc",
"//third_party/blink/renderer/modules/notifications",
"//third_party/blink/renderer/modules/payments",
"//third_party/blink/renderer/modules/payments/goods",
"//third_party/blink/renderer/modules/peerconnection",
"//third_party/blink/renderer/modules/permissions",
"//third_party/blink/renderer/modules/picture_in_picture",
"//third_party/blink/renderer/modules/plugins",
"//third_party/blink/renderer/modules/presentation",
"//third_party/blink/renderer/modules/private_attribution",
"//third_party/blink/renderer/modules/push_messaging",
"//third_party/blink/renderer/modules/quota",
"//third_party/blink/renderer/modules/remoteplayback",
"//third_party/blink/renderer/modules/sanitizer_api",
"//third_party/blink/renderer/modules/scheduler",
"//third_party/blink/renderer/modules/screen_details",
"//third_party/blink/renderer/modules/screen_orientation",
"//third_party/blink/renderer/modules/sensor",
"//third_party/blink/renderer/modules/service_worker",
"//third_party/blink/renderer/modules/shapedetection",
"//third_party/blink/renderer/modules/shared_storage",
"//third_party/blink/renderer/modules/smart_card",
"//third_party/blink/renderer/modules/speech",
"//third_party/blink/renderer/modules/srcobject",
"//third_party/blink/renderer/modules/storage",
"//third_party/blink/renderer/modules/subapps",
"//third_party/blink/renderer/modules/vibration",
"//third_party/blink/renderer/modules/video_rvfc",
"//third_party/blink/renderer/modules/virtualkeyboard",
"//third_party/blink/renderer/modules/wake_lock",
"//third_party/blink/renderer/modules/webaudio",
"//third_party/blink/renderer/modules/webcodecs",
"//third_party/blink/renderer/modules/webdatabase",
"//third_party/blink/renderer/modules/webgl",
"//third_party/blink/renderer/modules/webgpu",
"//third_party/blink/renderer/modules/webmidi",
"//third_party/blink/renderer/modules/webrtc",
"//third_party/blink/renderer/modules/webshare",
"//third_party/blink/renderer/modules/websockets",
"//third_party/blink/renderer/modules/webtransport",
"//third_party/blink/renderer/modules/webusb",
"//third_party/blink/renderer/modules/worklet",
"//third_party/blink/renderer/modules/xr",
]
# This uses target_os rather than current_os (which is what is_android is set
# from) for the case of generating the v8 context snapshot for android. When
# generating the snapshot for android, blink is compiled with
# current_os="linux" and target_os="android". Using target_os is necessary as
# we need to compile in the same way as would happen when current_os="android".
if (target_os == "android") {
sub_modules += [ "//third_party/blink/renderer/modules/remote_objects" ]
} else {
sub_modules += [
"//third_party/blink/renderer/modules/direct_sockets",
"//third_party/blink/renderer/modules/serial",
"//third_party/blink/renderer/modules/window_controls_overlay",
]
}
deps = [
":make_modules_generated",
"//cc",
"//components/webrtc:thread_wrapper",
"//gin",
"//net:net",
"//third_party/blink/renderer/bindings/modules/v8:generated",
"//third_party/blink/renderer/core",
"//third_party/icu",
"//third_party/webrtc_overrides:webrtc_component",
"//third_party/zlib",
"//tools/v8_context_snapshot:buildflags",
]
public_deps = sub_modules
allow_circular_includes_from = sub_modules
if (is_win) {
cflags =
[ "/wd4334" ] # Result of 32-bit shift implicitly converted to 64 bits.
}
configs -= [ "//build/config/compiler:default_symbols" ]
configs += blink_symbols_config
}
source_set("modules_testing") {
testonly = true
sources = [
"accessibility/testing/internals_accessibility.cc",
"accessibility/testing/internals_accessibility.h",
"mediastream/testing/internals_media_stream.cc",
"mediastream/testing/internals_media_stream.h",
"netinfo/testing/internals_net_info.cc",
"netinfo/testing/internals_net_info.h",
"peerconnection/adapters/test/mock_ice_transport_adapter.h",
"peerconnection/adapters/test/mock_ice_transport_adapter_cross_thread_factory.h",
"peerconnection/testing/fake_resource_listener.cc",
"peerconnection/testing/fake_resource_listener.h",
"peerconnection/testing/internals_rtc_certificate.cc",
"peerconnection/testing/internals_rtc_certificate.h",
"peerconnection/testing/internals_rtc_peer_connection.cc",
"peerconnection/testing/internals_rtc_peer_connection.h",
"peerconnection/testing/mock_peer_connection_interface.h",
"peerconnection/testing/mock_rtp_receiver.h",
"peerconnection/testing/mock_rtp_sender.h",
"peerconnection/testing/mock_transformable_audio_frame.h",
"permissions/testing/internals_permission.cc",
"permissions/testing/internals_permission.h",
"service_worker/testing/internals_service_worker.cc",
"service_worker/testing/internals_service_worker.h",
"speech/testing/internals_speech_synthesis.cc",
"speech/testing/internals_speech_synthesis.h",
"speech/testing/mojom_speech_synthesis_mock.cc",
"speech/testing/mojom_speech_synthesis_mock.h",
"vibration/testing/internals_vibration.cc",
"vibration/testing/internals_vibration.h",
"webaudio/testing/internals_web_audio.cc",
"webaudio/testing/internals_web_audio.h",
]
configs += [
"//third_party/blink/renderer:config",
"//third_party/blink/renderer:inside_blink",
"//third_party/blink/renderer/core:blink_core_pch",
]
public_deps = [
"//mojo/public/cpp/bindings",
"//testing/gmock:gmock",
]
deps = [
"//third_party/blink/renderer/bindings/modules/v8:testing",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules",
]
}
group("make_modules_generated") {
public_deps = [
":make_modules_generated_event_factory",
":make_modules_generated_event_names",
":make_modules_generated_event_target_names",
":make_modules_generated_indexed_db_names",
":make_modules_generated_media_capabilities_names",
"//components/ml/mojom:mojom_blink_headers",
"//components/payments/mojom:mojom_blink_headers",
"//components/schema_org/common:mojom_blink_headers",
"//components/services/filesystem/public/mojom:mojom_blink_headers",
"//device/bluetooth/public/mojom:mojom_blink_headers",
"//device/gamepad/public/mojom:mojom_blink_headers",
"//device/vr/public/mojom:vr_service_blink_headers",
"//media/capture/mojom:image_capture_blink_headers",
"//media/midi:mojo_blink_headers",
"//services/device/public/mojom:generic_sensor_headers",
"//services/device/public/mojom:mojom_blink_headers",
"//services/device/public/mojom:usb_blink_headers",
"//services/shape_detection/public/mojom:mojom_blink_headers",
"//services/webnn/public/mojom:mojom_blink_headers",
"//third_party/blink/public/mojom:mojom_modules_blink_headers",
"//third_party/blink/renderer/bindings/modules/v8:generated",
"//third_party/blink/renderer/core:core_event_interfaces",
"//third_party/blink/renderer/modules/mediarecorder:buildflags",
"//ui/accessibility:ax_enums_mojo_blink_headers",
"//ui/display/mojom:mojom_blink_headers",
]
}
# generate_event_interfaces ----------------------------------------------------
generate_event_interfaces("modules_event_interfaces") {
sources = [
"app_banner/before_install_prompt_event.idl",
"background_fetch/background_fetch_event.idl",
"background_fetch/background_fetch_update_ui_event.idl",
"background_sync/periodic_sync_event.idl",
"background_sync/sync_event.idl",
"content_index/content_index_event.idl",
"cookie_store/cookie_change_event.idl",
"cookie_store/extendable_cookie_change_event.idl",
"device_orientation/device_motion_event.idl",
"device_orientation/device_orientation_event.idl",
"encryptedmedia/media_encrypted_event.idl",
"encryptedmedia/media_key_message_event.idl",
"gamepad/gamepad_axis_event.idl",
"gamepad/gamepad_button_event.idl",
"gamepad/gamepad_event.idl",
"hid/hid_connection_event.idl",
"hid/hid_input_report_event.idl",
"indexeddb/idb_version_change_event.idl",
"mediarecorder/blob_event.idl",
"mediastream/media_stream_event.idl",
"mediastream/media_stream_track_event.idl",
"nfc/ndef_reading_event.idl",
"notifications/notification_event.idl",
"payments/abort_payment_event.idl",
"payments/can_make_payment_event.idl",
"payments/merchant_validation_event.idl",
"payments/payment_method_change_event.idl",
"payments/payment_request_details_update.idl",
"payments/payment_request_event.idl",
"payments/payment_request_update_event.idl",
"peerconnection/rtc_data_channel_event.idl",
"peerconnection/rtc_dtmf_tone_change_event.idl",
"peerconnection/rtc_peer_connection_ice_error_event.idl",
"peerconnection/rtc_peer_connection_ice_event.idl",
"picture_in_picture/picture_in_picture_event.idl",
"presentation/presentation_connection_available_event.idl",
"presentation/presentation_connection_close_event.idl",
"push_messaging/push_event.idl",
"scheduler/task_priority_change_event.idl",
"sensor/sensor_error_event.idl",
"service_worker/extendable_event.idl",
"service_worker/extendable_message_event.idl",
"service_worker/fetch_event.idl",
"service_worker/install_event.idl",
"speech/speech_recognition_error_event.idl",
"speech/speech_recognition_event.idl",
"speech/speech_synthesis_error_event.idl",
"speech/speech_synthesis_event.idl",
"storage/storage_event.idl",
"webaudio/audio_processing_event.idl",
"webaudio/offline_audio_completion_event.idl",
"webgl/webgl_context_event.idl",
"webmidi/midi_connection_event.idl",
"webmidi/midi_message_event.idl",
"websockets/close_event.idl",
"xr/xr_input_source_event.idl",
"xr/xr_input_sources_change_event.idl",
"xr/xr_reference_space_event.idl",
"xr/xr_session_event.idl",
]
output_file = "modules/event_interface_modules_names.json5"
suffix = "Modules"
}
# make_event_factory -----------------------------------------------------------
make_event_factory("make_modules_generated_event_factory") {
in_files = [ "$blink_modules_output_dir/event_interface_modules_names.json5" ]
outputs = [ "$blink_modules_output_dir/event_modules_factory.cc" ]
deps = make_core_generated_deps + [ ":modules_event_interfaces" ]
}
# make_names -------------------------------------------------------------------
make_names("make_modules_generated_event_names") {
in_files = [ "$blink_modules_output_dir/event_interface_modules_names.json5" ]
output_dir = blink_modules_output_dir
deps = make_core_generated_deps + [ ":modules_event_interfaces" ]
}
make_names("make_modules_generated_event_target_names") {
in_files = [ "event_target_modules_names.json5" ]
output_dir = blink_modules_output_dir
}
make_names("make_modules_generated_indexed_db_names") {
in_files = [ "indexeddb/indexed_db_names.json5" ]
output_dir = blink_modules_output_dir
deps = [] # Don't use default deps (otherwise it will be circular).
}
make_names("make_modules_generated_media_capabilities_names") {
in_files = [ "media_capabilities/media_capabilities_names.json5" ]
output_dir = blink_modules_output_dir
deps = [] # Don't use default deps (otherwise it will be circular).
}
blink_modules_sources("modules_generated") {
# Targets from above that generate outputs that need to be compiled.
# All sources declared as outputs from these targets will be compiled
# into one target.
targets_generating_sources = [
":make_modules_generated_event_factory",
":make_modules_generated_event_names",
":make_modules_generated_event_target_names",
":make_modules_generated_indexed_db_names",
":make_modules_generated_media_capabilities_names",
]
sources = []
foreach(current, targets_generating_sources) {
sources += get_target_outputs(current)
}
}
source_set("unit_tests") {
testonly = true
sources = [
"accessibility/accessibility_object_model_test.cc",
"accessibility/ax_inline_text_box_test.cc",
"accessibility/ax_layout_object_test.cc",
"accessibility/ax_node_object_test.cc",
"accessibility/ax_object_cache_test.cc",
"accessibility/ax_object_test.cc",
"accessibility/ax_position_test.cc",
"accessibility/ax_range_test.cc",
"accessibility/ax_selection_test.cc",
"accessibility/testing/accessibility_selection_test.cc",
"accessibility/testing/accessibility_selection_test.h",
"accessibility/testing/accessibility_test.cc",
"accessibility/testing/accessibility_test.h",
"animationworklet/animation_worklet_global_scope_test.cc",
"animationworklet/animation_worklet_proxy_client_test.cc",
"animationworklet/worklet_animation_test.cc",
"background_fetch/background_fetch_icon_loader_test.cc",
"background_fetch/background_fetch_manager_test.cc",
"broadcastchannel/broadcast_channel_unittest.cc",
"cache_storage/cache_test.cc",
"canvas/canvas2d/base_rendering_context_2d_test.cc",
"canvas/canvas2d/canvas_color_cache_test.cc",
"canvas/canvas2d/canvas_filter_operation_resolver_test.cc",
"canvas/canvas2d/canvas_filter_test_utils.cc",
"canvas/canvas2d/canvas_filter_test_utils.h",
"canvas/canvas2d/canvas_path_test.cc",
"canvas/canvas2d/canvas_rendering_context_2d_api_test.cc",
"canvas/canvas2d/canvas_rendering_context_2d_test.cc",
"canvas/canvas2d/canvas_style_test_utils.cc",
"canvas/canvas2d/canvas_style_test_utils.h",
"canvas/htmlcanvas/html_canvas_element_module_test.cc",
"canvas/offscreencanvas/offscreen_canvas_rendering_api_ukm_metrics_test.cc",
"canvas/offscreencanvas/offscreen_canvas_test.cc",
"content_index/content_description_type_converter_test.cc",
"credentialmanagement/credential_manager_type_converters_unittest.cc",
"credentialmanagement/credentials_container_test.cc",
"credentialmanagement/password_credential_test.cc",
"credentialmanagement/web_identity_requester_test.cc",
"csspaint/document_paint_definition_test.cc",
"csspaint/nativepaint/background_color_paint_definition_test.cc",
"csspaint/nativepaint/clip_path_paint_definition_test.cc",
"csspaint/paint_rendering_context_2d_test.cc",
"csspaint/paint_worklet_global_scope_test.cc",
"csspaint/paint_worklet_proxy_client_test.cc",
"csspaint/paint_worklet_test.cc",
"delegated_ink/delegated_ink_trail_presenter_unittest.cc",
"device_orientation/device_motion_event_pump_unittest.cc",
"device_orientation/device_orientation_event_pump_unittest.cc",
"document_metadata/document_metadata_extractor_test.cc",
"document_picture_in_picture/picture_in_picture_controller_test.cc",
"eventsource/event_source_parser_test.cc",
"filesystem/dom_file_system_base_test.cc",
"filesystem/file_writer_test.cc",
"handwriting/handwriting_type_converters_unittest.cc",
"imagecapture/image_capture_test.cc",
"installedapp/installed_app_controller_test.cc",
"manifest/image_resource_type_converters_test.cc",
"manifest/manifest_manager_unittest.cc",
"manifest/manifest_parser_unittest.cc",
"media/audio/audio_output_ipc_factory_test.cc",
"media/audio/audio_renderer_mixer_manager_test.cc",
"media/audio/audio_renderer_sink_cache_test.cc",
"media/audio/mojo_audio_input_ipc_test.cc",
"media/audio/mojo_audio_output_ipc_test.cc",
"media/webmediaplayer_util_unittest.cc",
"media_capabilities/media_capabilities_test.cc",
"media_controls/elements/media_control_animated_arrow_container_element_test.cc",
"media_controls/elements/media_control_display_cutout_fullscreen_button_element_test.cc",
"media_controls/elements/media_control_elements_helper_test.cc",
"media_controls/elements/media_control_input_element_test.cc",
"media_controls/elements/media_control_loading_panel_element_test.cc",
"media_controls/elements/media_control_panel_element_test.cc",
"media_controls/elements/media_control_popup_menu_element_test.cc",
"media_controls/elements/media_control_scrubbing_message_element_test.cc",
"media_controls/elements/media_control_timeline_element_test.cc",
"media_controls/elements/media_control_toggle_closed_captions_button_element_test.cc",
"media_controls/media_controls_display_cutout_delegate_test.cc",
"media_controls/media_controls_impl_test.cc",
"media_controls/media_controls_orientation_lock_delegate_test.cc",
"media_controls/media_controls_rotate_to_fullscreen_delegate_test.cc",
"mediacapturefromelement/canvas_capture_handler_unittest.cc",
"mediacapturefromelement/html_audio_element_capturer_source_unittest.cc",
"mediacapturefromelement/html_video_element_capturer_source_unittest.cc",
"mediarecorder/audio_track_recorder_unittest.cc",
"mediarecorder/fake_encoded_video_frame.h",
"mediarecorder/media_recorder_encoder_wrapper_unittest.cc",
"mediarecorder/media_recorder_handler_unittest.cc",
"mediarecorder/media_recorder_unittest.cc",
"mediarecorder/track_recorder_unittest.cc",
"mediarecorder/video_track_recorder_unittest.cc",
"mediasession/media_session_test.cc",
"mediastream/browser_capture_media_stream_track_test.cc",
"mediastream/low_latency_video_renderer_algorithm_unittest.cc",
"mediastream/media_constraints_test.cc",
"mediastream/media_devices_test.cc",
"mediastream/media_stream_audio_processor_test.cc",
"mediastream/media_stream_constraints_util_audio_test.cc",
"mediastream/media_stream_constraints_util_sets_test.cc",
"mediastream/media_stream_constraints_util_test.cc",
"mediastream/media_stream_constraints_util_video_content_test.cc",
"mediastream/media_stream_constraints_util_video_device_test.cc",
"mediastream/media_stream_device_observer_test.cc",
"mediastream/media_stream_set_test.cc",
"mediastream/media_stream_track_impl_test.cc",
"mediastream/media_stream_track_transfer_test.cc",
"mediastream/media_stream_video_capturer_source_test.cc",
"mediastream/media_stream_video_renderer_sink_test.cc",
"mediastream/media_stream_video_source_test.cc",
"mediastream/media_stream_video_track_test.cc",
"mediastream/mock_mojo_media_stream_dispatcher_host.cc",
"mediastream/mock_mojo_media_stream_dispatcher_host.h",
"mediastream/processed_local_audio_source_test.cc",
"mediastream/track_audio_renderer_test.cc",
"mediastream/transferred_media_stream_track_test.cc",
"mediastream/user_media_client_test.cc",
"mediastream/video_track_adapter_unittest.cc",
"mediastream/webaudio_media_stream_audio_sink_test.cc",
"mediastream/webmediaplayer_ms_test.cc",
"nfc/nfc_proxy_test.cc",
"notifications/notification_data_test.cc",
"notifications/notification_resources_loader_test.cc",
"payments/abort_test.cc",
"payments/can_make_payment_test.cc",
"payments/complete_test.cc",
"payments/goods/digital_goods_type_converters_unittest.cc",
"payments/merchant_validation_event_test.cc",
"payments/on_payment_response_test.cc",
"payments/payment_address_test.cc",
"payments/payment_event_data_conversion_test.cc",
"payments/payment_request_details_test.cc",
"payments/payment_request_for_invalid_origin_or_ssl_test.cc",
"payments/payment_request_optional_total_test.cc",
"payments/payment_request_test.cc",
"payments/payment_request_update_event_test.cc",
"payments/payment_response_test.cc",
"payments/payment_test_helper.cc",
"payments/payment_test_helper.h",
"payments/payments_validators_test.cc",
"payments/secure_payment_confirmation_helper_test.cc",
"peerconnection/byte_buffer_queue_test.cc",
"peerconnection/media_stream_remote_video_source_test.cc",
"peerconnection/media_stream_track_metrics_test.cc",
"peerconnection/media_stream_video_webrtc_sink_test.cc",
"peerconnection/peer_connection_dependency_factory_test.cc",
"peerconnection/peer_connection_tracker_test.cc",
"peerconnection/rtc_data_channel_test.cc",
"peerconnection/rtc_encoded_audio_underlying_sink_test.cc",
"peerconnection/rtc_encoded_audio_underlying_source_test.cc",
"peerconnection/rtc_encoded_video_frame_test.cc",
"peerconnection/rtc_encoded_video_underlying_sink_test.cc",
"peerconnection/rtc_encoded_video_underlying_source_test.cc",
"peerconnection/rtc_peer_connection_handler_test.cc",
"peerconnection/rtc_peer_connection_test.cc",
"peerconnection/rtc_rtp_receiver_impl_test.cc",
"peerconnection/rtc_rtp_sender_impl_test.cc",
"peerconnection/rtc_rtp_transceiver_impl_test.cc",
"peerconnection/rtc_sctp_transport_test.cc",
"peerconnection/speed_limit_uma_listener_test.cc",
"peerconnection/thermal_resource_test.cc",
"peerconnection/thermal_uma_listener_test.cc",
"peerconnection/transceiver_state_surfacer_test.cc",
"peerconnection/webrtc_audio_renderer_test.cc",
"peerconnection/webrtc_media_stream_track_adapter_map_test.cc",
"peerconnection/webrtc_media_stream_track_adapter_test.cc",
"peerconnection/webrtc_set_description_observer_test.cc",
"peerconnection/webrtc_video_perf_reporter_test.cc",
"presentation/mock_presentation_service.h",
"presentation/presentation_availability_state_test.cc",
"presentation/presentation_availability_test.cc",
"presentation/presentation_connection_callbacks_test.cc",
"presentation/presentation_receiver_test.cc",
"presentation/presentation_request_test.cc",
"push_messaging/push_manager_test.cc",
"push_messaging/push_message_data_test.cc",
"push_messaging/push_subscription_test.cc",
"remoteplayback/remote_playback_test.cc",
"scheduler/dom_scheduler_test.cc",
"scheduler/task_attribution_tracker_impl_test.cc",
"screen_orientation/screen_orientation_controller_test.cc",
"sensor/sensor_test_utils.cc",
"sensor/sensor_test_utils.h",
"service_worker/service_worker_container_test.cc",
"service_worker/service_worker_event_queue_test.cc",
"service_worker/service_worker_installed_scripts_manager_test.cc",
"service_worker/thread_safe_script_container_test.cc",
"service_worker/web_embedded_worker_impl_test.cc",
"service_worker/web_service_worker_fetch_context_impl_test.cc",
"shared_storage/shared_storage_worklet_unittest.cc",
"video_rvfc/video_frame_callback_requester_impl_test.cc",
"video_rvfc/video_frame_request_callback_collection_test.cc",
"wake_lock/wake_lock_manager_test.cc",
"wake_lock/wake_lock_sentinel_test.cc",
"wake_lock/wake_lock_test.cc",
"wake_lock/wake_lock_test_utils.cc",
"wake_lock/wake_lock_test_utils.h",
"webaudio/audio_basic_processor_handler_test.cc",
"webaudio/audio_context_autoplay_test.cc",
"webaudio/audio_context_test.cc",
"webaudio/audio_node_input_test.cc",
"webaudio/audio_worklet_global_scope_test.cc",
"webaudio/audio_worklet_thread_test.cc",
"webaudio/convolver_node_test.cc",
"webaudio/dynamics_compressor_node_test.cc",
"webaudio/script_processor_node_test.cc",
"webaudio/stereo_panner_node_test.cc",
"webdatabase/dom_window_web_database_test.cc",
"webdatabase/quota_tracker_test.cc",
"webrtc/webrtc_audio_device_impl_test.cc",
"webshare/navigator_share_test.cc",
"websockets/dom_websocket_test.cc",
"websockets/mock_websocket_channel.cc",
"websockets/mock_websocket_channel.h",
"websockets/websocket_channel_impl_test.cc",
"websockets/websocket_common_test.cc",
"websockets/websocket_message_chunk_accumulator_test.cc",
"websockets/websocket_stream_test.cc",
"worklet/animation_and_paint_worklet_thread_test.cc",
"worklet/worklet_thread_test_common.cc",
"worklet/worklet_thread_test_common.h",
"xr/xr_rigid_transform_test.cc",
"xr/xr_test_utils.cc",
"xr/xr_view_test.cc",
]
if (rtc_use_h264) {
sources += [ "mediarecorder/h264_encoder_unittest.cc" ]
}
configs += [
"//third_party/blink/renderer:config",
"//third_party/blink/renderer:inside_blink",
"//third_party/blink/renderer/core:blink_core_pch",
]
deps = [
":modules",
":modules_testing",
"//base",
"//base/test:test_support",
"//build:chromecast_buildflags",
"//components/schema_org/common:mojom_blink",
"//components/ukm:test_support",
"//media:test_support",
"//media/capture/mojom:image_capture_blink",
"//media/gpu:gpu",
"//media/mojo:buildflags",
"//media/mojo/mojom",
"//media/mojo/services:services",
"//media/webrtc:webrtc",
"//mojo/public/cpp/bindings",
"//net:test_support",
"//services/device/public/cpp:test_support",
"//services/metrics/public/cpp:ukm_builders",
"//services/network:test_support",
"//skia",
"//testing/gmock",
"//testing/gtest",
"//third_party/blink/public:blink_headers",
"//third_party/blink/public:test_headers",
"//third_party/blink/public/strings:strings_grit",
"//third_party/blink/renderer/controller:blink_bindings_test_sources",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/core:unit_test_support",
"//third_party/blink/renderer/modules/ad_auction:unit_tests",
"//third_party/blink/renderer/modules/breakout_box:unit_tests",
"//third_party/blink/renderer/modules/file_system_access:unit_tests",
"//third_party/blink/renderer/modules/gamepad:unit_tests",
"//third_party/blink/renderer/modules/hid:unit_tests",
"//third_party/blink/renderer/modules/idle:unit_tests",
"//third_party/blink/renderer/modules/indexeddb:unit_tests",
"//third_party/blink/renderer/modules/mediarecorder:buildflags",
"//third_party/blink/renderer/modules/mediastream:test_support",
"//third_party/blink/renderer/modules/ml:unit_tests",
"//third_party/blink/renderer/modules/peerconnection:test_support",
"//third_party/blink/renderer/modules/storage:unit_tests",
"//third_party/blink/renderer/modules/webcodecs:unit_tests",
"//third_party/blink/renderer/modules/webgpu:unit_tests",
"//third_party/blink/renderer/modules/webtransport:unit_tests",
"//third_party/blink/renderer/platform",
"//third_party/blink/renderer/platform:test_support",
"//third_party/blink/renderer/platform/wtf",
"//third_party/googletest:gmock",
"//third_party/opus",
"//third_party/webrtc_overrides:webrtc_component",
"//v8",
]
# This uses target_os rather than current_os (which is what is_android is set
# from) for the case of generating the v8 context snapshot for android. When
# generating the snapshot for android, blink is compiled with
# current_os="linux" and target_os="android". Using target_os is necessary as
# we need to compile in the same way as would happen when current_os="android".
if (target_os != "android") {
deps += [ "//third_party/blink/renderer/modules/direct_sockets:unit_tests" ]
}
data_deps = [
":accessibility_unittests_data",
":mediastream_unittests_data",
]
}
if (is_ios) {
bundle_data_from_filelist("accessibility_selection_test_bundle_data") {
testonly = true
filelist_name = "accessibility/testing/data/selection/accessibility_selection_test_bundle_data.filelist"
}
}
group("accessibility_unittests_data") {
data = [ "accessibility/testing/data/" ]
}
group("mediastream_unittests_data") {
data = [ "//media/test/data/" ]
}
fuzzer_test("web_app_manifest_fuzzer") {
sources = [ "manifest/manifest_fuzzer.cc" ]
dict = "manifest/manifest_fuzzer.dict"
seed_corpus = "manifest/fuzzer_seed_corpus"
deps = [
":modules",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
]
}
fuzzer_test("media_capabilities_fuzzer") {
sources = [ "media_capabilities/media_capabilities_fuzzer.cc" ]
seed_corpus = "media_capabilities/fuzzer_seed_corpus"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/media_capabilities:fuzzer_media_configuration_proto",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_video_frame_copy_to_fuzzer") {
sources = [
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
"webcodecs/video_frame_copy_to_fuzzer.cc",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/video_frame_copy_to"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_audio_data_copy_to_fuzzer") {
sources = [
"webcodecs/audio_data_copy_to_fuzzer.cc",
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/audio_data_copy_to"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_video_decoder_fuzzer") {
sources = [
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
"webcodecs/video_decoder_fuzzer.cc",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/video_decoder"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
image_decoder_fuzzer_seed_corpus_dir =
"$target_gen_dir/webcodecs/image_fuzzer_seed_corpus"
action("generate_image_decoder_fuzzer_corpus") {
script = "webcodecs/fuzzer_seed_corpus/generate_image_corpus.py"
sources = [ "webcodecs/image_decoder_base.textproto" ]
data = [ "//third_party/blink/web_tests/images/resources/" ]
deps = [
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/protobuf:py_proto",
]
pyproto_path = "$root_out_dir/pyproto"
args = [ "-i" ]
args += rebase_path(sources, root_build_dir)
args += [
"-o",
"ignored",
"-d",
rebase_path(image_decoder_fuzzer_seed_corpus_dir, root_build_dir),
"-p",
rebase_path(pyproto_path, root_build_dir),
"-p",
rebase_path("$pyproto_path/third_party/blink/renderer/modules/webcodecs/",
root_build_dir),
]
outputs = [ image_decoder_fuzzer_seed_corpus_dir ]
}
fuzzer_test("webcodecs_image_decoder_fuzzer") {
sources = [
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
"webcodecs/image_decoder_fuzzer.cc",
]
seed_corpus = image_decoder_fuzzer_seed_corpus_dir
seed_corpus_deps = [ ":generate_image_decoder_fuzzer_corpus" ]
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_audio_decoder_fuzzer") {
sources = [
"webcodecs/audio_decoder_fuzzer.cc",
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/audio_decoder"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_video_encoder_fuzzer") {
sources = [
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
"webcodecs/video_encoder_fuzzer.cc",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/video_encoder"
deps = [
":modules",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}
fuzzer_test("webcodecs_audio_encoder_fuzzer") {
sources = [
"webcodecs/audio_encoder_fuzzer.cc",
"webcodecs/fuzzer_utils.cc",
"webcodecs/fuzzer_utils.h",
]
seed_corpus = "webcodecs/fuzzer_seed_corpus/audio_encoder"
deps = [
":modules",
"//media/mojo/services:services",
"//third_party/blink/renderer/core:testing",
"//third_party/blink/renderer/modules/webcodecs:fuzzer_protos",
"//third_party/blink/renderer/platform:blink_fuzzer_test_support",
"//third_party/libprotobuf-mutator",
"//third_party/protobuf:protobuf_lite",
]
}