blob: 4f2030f81c194e9ae4242d97eff6007ae46d66d1 [file] [log] [blame]
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//third_party/blink/public/public_features.gni")
import("//third_party/blink/renderer/config.gni")
import("//third_party/blink/renderer/core/core.gni")
import("//tools/grit/grit_rule.gni")
import("//tools/grit/repack.gni")
if (is_android) {
import("//build/config/android/rules.gni")
}
group("blink") {
public_deps = [
":blink_headers",
]
deps = [
"//third_party/blink/renderer/controller",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/modules",
"//third_party/blink/renderer/platform",
]
}
group("test_support") {
testonly = true
public_deps = [
":test_headers",
"//third_party/blink/renderer/modules/exported:test_support",
"//third_party/blink/renderer/platform:test_support",
]
}
group("all_blink") {
# This includes some test targets. Don't link into production!
testonly = true
public_deps = [
"//third_party/blink/common",
"//third_party/blink/common:blink_common_unittests",
"//third_party/blink/renderer/controller",
"//third_party/blink/renderer/controller:webkit_unit_tests",
"//third_party/blink/renderer/core",
"//third_party/blink/renderer/modules",
"//third_party/blink/renderer/platform:blink_platform_unittests",
"//third_party/blink/renderer/platform/heap:blink_heap_unittests",
"//third_party/blink/renderer/platform/wtf:wtf_unittests",
]
}
config("blink_headers_config") {
# Allow :blink_headers to include v8.h without linking to it.
configs = [ "//v8:external_config" ]
}
# Public feature flags used outside of Blink.
buildflag_header("buildflags") {
header = "public_buildflags.h"
flags = [
"DEBUG_DEVTOOLS=$debug_devtools",
"USE_DEFAULT_RENDER_THEME=$use_default_render_theme",
"USE_MINIKIN_HYPHENATION=$use_minikin_hyphenation",
"ENABLE_UNHANDLED_TAP=$enable_unhandled_tap",
]
}
if (is_android) {
java_cpp_enum("blink_headers_java_enums_srcjar") {
sources = [
"./common/manifest/web_display_mode.h",
"./platform/modules/remoteplayback/web_remote_playback_availability.h",
"./platform/web_focus_type.h",
"./platform/web_input_event.h",
"./platform/web_referrer_policy.h",
"./platform/web_text_input_mode.h",
"./platform/web_text_input_type.h",
"./web/web_context_menu_data.h",
]
}
java_cpp_enum("blink_cursor_type_java_enums_srcjar") {
sources = [
"./platform/web_cursor_info.h",
]
}
android_library("blink_headers_java") {
deps = [
"//third_party/android_deps:android_support_annotations_java",
]
srcjar_deps = [ ":blink_headers_java_enums_srcjar" ]
}
}
source_set("test_headers") {
testonly = true
sources = [
"platform/scheduler/test/fake_renderer_scheduler.h",
"platform/scheduler/test/mock_renderer_scheduler.h",
"platform/scheduler/test/renderer_scheduler_test_support.h",
]
deps = [
"//base:base",
"//cc:cc",
"//testing/gmock:gmock",
]
}
# Depend on this target to use public blink API headers for things like enums
# and public structures without actually linking against any Blink libraries.
#
# See public/common/BUILD.gn for the headers that can be referenced both from
# the browser- and renderer-side components.
source_set("blink_headers") {
sources = [
"platform/blame_context.h",
"platform/code_cache_loader.h",
"platform/file_path_conversion.h",
"platform/interface_provider.h",
"platform/interface_registry.h",
"platform/linux/out_of_process_font.h",
"platform/linux/web_sandbox_support.h",
"platform/mac/web_sandbox_support.h",
"platform/mac/web_scrollbar_theme.h",
"platform/modules/background_fetch/web_background_fetch_registration.h",
"platform/modules/indexeddb/web_idb_callbacks.h",
"platform/modules/indexeddb/web_idb_cursor.h",
"platform/modules/indexeddb/web_idb_database.h",
"platform/modules/indexeddb/web_idb_database_callbacks.h",
"platform/modules/indexeddb/web_idb_database_error.h",
"platform/modules/indexeddb/web_idb_database_exception.h",
"platform/modules/indexeddb/web_idb_factory.h",
"platform/modules/indexeddb/web_idb_key.h",
"platform/modules/indexeddb/web_idb_key_path.h",
"platform/modules/indexeddb/web_idb_key_range.h",
"platform/modules/indexeddb/web_idb_metadata.h",
"platform/modules/indexeddb/web_idb_name_and_version.h",
"platform/modules/indexeddb/web_idb_observation.h",
"platform/modules/indexeddb/web_idb_value.h",
"platform/modules/installedapp/web_related_application.h",
"platform/modules/installedapp/web_related_apps_fetcher.h",
"platform/modules/media_capabilities/web_audio_configuration.h",
"platform/modules/media_capabilities/web_media_capabilities_client.h",
"platform/modules/media_capabilities/web_media_configuration.h",
"platform/modules/media_capabilities/web_video_configuration.h",
"platform/modules/notifications/web_notification_action.h",
"platform/modules/notifications/web_notification_constants.h",
"platform/modules/notifications/web_notification_data.h",
"platform/modules/payments/web_payment_currency_amount.h",
"platform/modules/payments/web_payment_details_modifier.h",
"platform/modules/payments/web_payment_handler_response.h",
"platform/modules/payments/web_payment_item.h",
"platform/modules/payments/web_payment_method_data.h",
"platform/modules/payments/web_payment_request_event_data.h",
"platform/modules/push_messaging/web_push_client.h",
"platform/modules/push_messaging/web_push_error.h",
"platform/modules/push_messaging/web_push_provider.h",
"platform/modules/push_messaging/web_push_subscription.h",
"platform/modules/push_messaging/web_push_subscription_options.h",
"platform/modules/remoteplayback/web_remote_playback_availability.h",
"platform/modules/remoteplayback/web_remote_playback_client.h",
"platform/modules/remoteplayback/web_remote_playback_state.h",
"platform/modules/service_worker/web_service_worker_clients_info.h",
"platform/modules/service_worker/web_service_worker_error.h",
"platform/modules/service_worker/web_service_worker_network_provider.h",
"platform/modules/service_worker/web_service_worker_object_info.h",
"platform/modules/service_worker/web_service_worker_provider.h",
"platform/modules/service_worker/web_service_worker_provider_client.h",
"platform/modules/service_worker/web_service_worker_registration_object_info.h",
"platform/modules/service_worker/web_service_worker_request.h",
"platform/modules/service_worker/web_service_worker_response.h",
"platform/modules/service_worker/web_service_worker_stream_handle.h",
"platform/modules/webmidi/web_midi_accessor.h",
"platform/modules/webmidi/web_midi_accessor_client.h",
"platform/platform.h",
"platform/pointer_properties.h",
"platform/scheduler/child/webthread_base.h",
"platform/scheduler/renderer_process_type.h",
"platform/scheduler/single_thread_idle_task_runner.h",
"platform/scheduler/web_rail_mode_observer.h",
"platform/scheduler/web_render_widget_scheduling_state.h",
"platform/scheduler/web_resource_loading_task_runner_handle.h",
"platform/scheduler/web_thread_scheduler.h",
"platform/scoped_web_callbacks.h",
"platform/shape_properties.h",
"platform/task_type.h",
"platform/url_conversion.h",
"platform/user_metrics_action.h",
"platform/web_application_cache_host.h",
"platform/web_application_cache_host_client.h",
"platform/web_audio_bus.h",
"platform/web_audio_destination_consumer.h",
"platform/web_audio_device.h",
"platform/web_audio_latency_hint.h",
"platform/web_audio_source_provider.h",
"platform/web_audio_source_provider_client.h",
"platform/web_blob_info.h",
"platform/web_blob_registry.h",
"platform/web_cache.h",
"platform/web_callbacks.h",
"platform/web_canonical_cookie.h",
"platform/web_canvas_capture_handler.h",
"platform/web_client_hints_type.h",
"platform/web_coalesced_input_event.h",
"platform/web_common.h",
"platform/web_computed_ax_tree.h",
"platform/web_connection_type.h",
"platform/web_content_decryption_module.h",
"platform/web_content_decryption_module_access.h",
"platform/web_content_decryption_module_exception.h",
"platform/web_content_decryption_module_result.h",
"platform/web_content_decryption_module_session.h",
"platform/web_content_security_policy.h",
"platform/web_content_security_policy_struct.h",
"platform/web_content_setting_callbacks.h",
"platform/web_content_settings_client.h",
"platform/web_cookie_jar.h",
"platform/web_crypto.h",
"platform/web_crypto_algorithm.h",
"platform/web_crypto_algorithm_params.h",
"platform/web_crypto_key.h",
"platform/web_crypto_key_algorithm.h",
"platform/web_crypto_key_algorithm_params.h",
"platform/web_cursor_info.h",
"platform/web_data.h",
"platform/web_data_consumer_handle.h",
"platform/web_database_observer.h",
"platform/web_distillability.h",
"platform/web_document_subresource_filter.h",
"platform/web_double_point.h",
"platform/web_double_size.h",
"platform/web_drag_data.h",
"platform/web_drag_operation.h",
"platform/web_editing_command_type.h",
"platform/web_effective_connection_type.h",
"platform/web_encrypted_media_client.h",
"platform/web_encrypted_media_key_information.h",
"platform/web_encrypted_media_request.h",
"platform/web_encrypted_media_types.h",
"platform/web_file_system_type.h",
"platform/web_float_point.h",
"platform/web_float_point_3d.h",
"platform/web_float_rect.h",
"platform/web_float_size.h",
"platform/web_focus_type.h",
"platform/web_font.h",
"platform/web_font_description.h",
"platform/web_font_render_style.h",
"platform/web_gamepad_listener.h",
"platform/web_gesture_curve.h",
"platform/web_gesture_device.h",
"platform/web_gesture_event.h",
"platform/web_graphics_context_3d_provider.h",
"platform/web_history_scroll_restoration_type.h",
"platform/web_http_body.h",
"platform/web_http_header_visitor.h",
"platform/web_http_load_info.h",
"platform/web_icon_sizes_parser.h",
"platform/web_image.h",
"platform/web_image_capture_frame_grabber.h",
"platform/web_image_generator.h",
"platform/web_inband_text_track.h",
"platform/web_inband_text_track_client.h",
"platform/web_input_event.h",
"platform/web_input_event_result.h",
"platform/web_insecure_request_policy.h",
"platform/web_intrinsic_sizing_info.h",
"platform/web_isolated_world_ids.h",
"platform/web_keyboard_event.h",
"platform/web_layer_tree_view.h",
"platform/web_loading_behavior_flag.h",
"platform/web_localized_string.h",
"platform/web_media_constraints.h",
"platform/web_media_key_system_configuration.h",
"platform/web_media_key_system_media_capability.h",
"platform/web_media_player.h",
"platform/web_media_player_client.h",
"platform/web_media_player_encrypted_media_client.h",
"platform/web_media_player_source.h",
"platform/web_media_recorder_handler.h",
"platform/web_media_recorder_handler_client.h",
"platform/web_media_source.h",
"platform/web_media_stream.h",
"platform/web_media_stream_center.h",
"platform/web_media_stream_source.h",
"platform/web_media_stream_track.h",
"platform/web_memory_coordinator.h",
"platform/web_memory_pressure_level.h",
"platform/web_memory_state.h",
"platform/web_menu_source_type.h",
"platform/web_mixed_content.h",
"platform/web_mixed_content_context_type.h",
"platform/web_mouse_event.h",
"platform/web_mouse_wheel_event.h",
"platform/web_native_scroll_behavior.h",
"platform/web_network_state_notifier.h",
"platform/web_platform_event_listener.h",
"platform/web_point.h",
"platform/web_pointer_event.h",
"platform/web_pointer_properties.h",
"platform/web_prerender.h",
"platform/web_prerendering_support.h",
"platform/web_prescient_networking.h",
"platform/web_private_ptr.h",
"platform/web_rect.h",
"platform/web_referrer_policy.h",
"platform/web_resource_timing_info.h",
"platform/web_rtc_answer_options.h",
"platform/web_rtc_api_name.h",
"platform/web_rtc_certificate_generator.h",
"platform/web_rtc_data_channel_handler.h",
"platform/web_rtc_data_channel_handler_client.h",
"platform/web_rtc_data_channel_init.h",
"platform/web_rtc_dtmf_sender_handler.h",
"platform/web_rtc_dtmf_sender_handler_client.h",
"platform/web_rtc_ice_candidate.h",
"platform/web_rtc_key_params.h",
"platform/web_rtc_legacy_stats.h",
"platform/web_rtc_offer_options.h",
"platform/web_rtc_peer_connection_handler.h",
"platform/web_rtc_peer_connection_handler_client.h",
"platform/web_rtc_rtp_contributing_source.h",
"platform/web_rtc_rtp_receiver.h",
"platform/web_rtc_rtp_sender.h",
"platform/web_rtc_rtp_transceiver.h",
"platform/web_rtc_session_description.h",
"platform/web_rtc_session_description_request.h",
"platform/web_rtc_stats.h",
"platform/web_rtc_stats_request.h",
"platform/web_rtc_stats_response.h",
"platform/web_rtc_void_request.h",
"platform/web_runtime_features.h",
"platform/web_scoped_virtual_time_pauser.h",
"platform/web_screen_info.h",
"platform/web_scroll_anchor_data.h",
"platform/web_scroll_into_view_params.h",
"platform/web_scroll_types.h",
"platform/web_scrollbar_buttons_placement.h",
"platform/web_scrollbar_overlay_color_theme.h",
"platform/web_security_origin.h",
"platform/web_security_style.h",
"platform/web_set_sink_id_callbacks.h",
"platform/web_size.h",
"platform/web_source_buffer.h",
"platform/web_source_buffer_client.h",
"platform/web_speech_synthesis_utterance.h",
"platform/web_speech_synthesis_voice.h",
"platform/web_speech_synthesizer.h",
"platform/web_speech_synthesizer_client.h",
"platform/web_spell_check_panel_host_client.h",
"platform/web_storage_area.h",
"platform/web_storage_namespace.h",
"platform/web_string.h",
"platform/web_surface_layer_bridge.h",
"platform/web_text_input_info.h",
"platform/web_text_input_mode.h",
"platform/web_text_input_type.h",
"platform/web_text_run.h",
"platform/web_theme_engine.h",
"platform/web_thread_safe_data.h",
"platform/web_time_range.h",
"platform/web_touch_action.h",
"platform/web_touch_event.h",
"platform/web_touch_point.h",
"platform/web_url.h",
"platform/web_url_error.h",
"platform/web_url_load_timing.h",
"platform/web_url_loader.h",
"platform/web_url_loader_client.h",
"platform/web_url_loader_factory.h",
"platform/web_url_loader_mock_factory.h",
"platform/web_url_loader_test_delegate.h",
"platform/web_url_request.h",
"platform/web_url_response.h",
"platform/web_vector.h",
"platform/web_video_frame_submitter.h",
"platform/web_viewport_style.h",
"platform/web_worker_fetch_context.h",
"platform/websocket_handshake_throttle.h",
"web/blink.h",
"web/mac/web_substring_util.h",
"web/mac/web_substring_util.h",
"web/modules/autofill/web_form_element_observer.h",
"web/modules/autofill/web_form_element_observer_callback.h",
"web/modules/service_worker/web_service_worker_context_client.h",
"web/modules/service_worker/web_service_worker_context_proxy.h",
"web/web_active_fling_parameters.h",
"web/web_apply_constraints_request.h",
"web/web_array_buffer.h",
"web/web_array_buffer_converter.h",
"web/web_associated_url_loader.h",
"web/web_associated_url_loader_client.h",
"web/web_associated_url_loader_options.h",
"web/web_autofill_client.h",
"web/web_autofill_state.h",
"web/web_ax_context.h",
"web/web_ax_enums.h",
"web/web_ax_object.h",
"web/web_blob.h",
"web/web_console_message.h",
"web/web_context_features.h",
"web/web_context_menu_data.h",
"web/web_crypto_normalize.h",
"web/web_css_parser.h",
"web/web_custom_element.h",
"web/web_date_time_chooser_completion.h",
"web/web_date_time_chooser_params.h",
"web/web_date_time_input_type.h",
"web/web_date_time_suggestion.h",
"web/web_device_emulation_params.h",
"web/web_document.h",
"web/web_document_loader.h",
"web/web_dom_activity_logger.h",
"web/web_dom_event.h",
"web/web_dom_file_system.h",
"web/web_dom_media_stream_track.h",
"web/web_dom_message_event.h",
"web/web_drag_status.h",
"web/web_draggable_region.h",
"web/web_element.h",
"web/web_element_collection.h",
"web/web_embedded_worker.h",
"web/web_embedded_worker_start_data.h",
"web/web_external_popup_menu.h",
"web/web_external_popup_menu_client.h",
"web/web_file_chooser_completion.h",
"web/web_file_chooser_params.h",
"web/web_form_control_element.h",
"web/web_form_element.h",
"web/web_frame.h",
"web/web_frame_content_dumper.h",
"web/web_frame_load_type.h",
"web/web_frame_owner_properties.h",
"web/web_frame_serializer.h",
"web/web_frame_serializer_cache_control_policy.h",
"web/web_frame_serializer_client.h",
"web/web_frame_widget.h",
"web/web_global_object_reuse_policy.h",
"web/web_heap.h",
"web/web_history_commit_type.h",
"web/web_history_item.h",
"web/web_hit_test_result.h",
"web/web_icon_url.h",
"web/web_image_cache.h",
"web/web_image_decoder.h",
"web/web_ime_text_span.h",
"web/web_input_element.h",
"web/web_input_method_controller.h",
"web/web_label_element.h",
"web/web_language_detection_details.h",
"web/web_local_frame.h",
"web/web_local_frame_client.h",
"web/web_meaningful_layout.h",
"web/web_media_player_action.h",
"web/web_memory_statistics.h",
"web/web_menu_item_info.h",
"web/web_meta_element.h",
"web/web_navigation_policy.h",
"web/web_navigation_type.h",
"web/web_node.h",
"web/web_option_element.h",
"web/web_page_importance_signals.h",
"web/web_page_popup.h",
"web/web_pepper_socket.h",
"web/web_pepper_socket_client.h",
"web/web_performance.h",
"web/web_plugin.h",
"web/web_plugin_action.h",
"web/web_plugin_container.h",
"web/web_plugin_document.h",
"web/web_plugin_params.h",
"web/web_plugin_script_forbidden_scope.h",
"web/web_popup_menu_info.h",
"web/web_prerenderer_client.h",
"web/web_presentation_receiver_flags.h",
"web/web_print_params.h",
"web/web_print_preset_options.h",
"web/web_print_scaling_option.h",
"web/web_range.h",
"web/web_remote_frame.h",
"web/web_remote_frame_client.h",
"web/web_render_theme.h",
"web/web_scoped_user_gesture.h",
"web/web_scoped_window_focus_allowed_indicator.h",
"web/web_script_controller.h",
"web/web_script_execution_callback.h",
"web/web_script_source.h",
"web/web_searchable_form_data.h",
"web/web_security_policy.h",
"web/web_select_element.h",
"web/web_selector.h",
"web/web_serialized_script_value.h",
"web/web_serialized_script_value_version.h",
"web/web_settings.h",
"web/web_shared_worker.h",
"web/web_shared_worker_client.h",
"web/web_shared_worker_connect_listener.h",
"web/web_shared_worker_repository_client.h",
"web/web_storage_event_dispatcher.h",
"web/web_surrounding_text.h",
"web/web_testing_support.h",
"web/web_text_check_client.h",
"web/web_text_checking_completion.h",
"web/web_text_checking_result.h",
"web/web_text_decoration_type.h",
"web/web_text_direction.h",
"web/web_tree_scope_type.h",
"web/web_triggering_event_info.h",
"web/web_user_gesture_indicator.h",
"web/web_user_gesture_token.h",
"web/web_user_media_client.h",
"web/web_user_media_request.h",
"web/web_v8_context_snapshot.h",
"web/web_view.h",
"web/web_view_client.h",
"web/web_widget.h",
"web/web_widget_client.h",
"web/web_window_features.h",
"web/win/web_font_rendering.h",
]
public_configs = [
":blink_headers_config",
# Blink exposes icu headers in the public API.
"//third_party/icu:icu_config",
]
public_deps = [
"//net",
"//services/service_manager/public/cpp",
"//services/ws/public/mojom/ime",
"//skia",
"//third_party/blink/public/common",
"//third_party/webrtc/api:libjingle_peerconnection_api",
"//third_party/webrtc/rtc_base:rtc_base",
"//url",
]
deps = [
":generate_mojo_bindings",
"//base:base",
"//cc:cc",
"//cc/paint:paint",
"//components/viz/common",
"//media/midi:mojo_shared_cpp_sources",
"//mojo/public/cpp/bindings:bindings",
"//mojo/public/cpp/system:system",
"//services/device/public/mojom:mojom_shared_cpp_sources",
"//services/network/public/cpp:cpp",
"//services/network/public/mojom",
"//v8:v8_headers",
]
}
group("blink_devtools_frontend_resources") {
public_deps = [
"//third_party/blink/renderer/devtools:devtools_frontend_resources",
]
}
group("blink_devtools_frontend_resources_files") {
data_deps = [
"//third_party/blink/renderer/devtools:devtools_all_files",
]
}
group("blink_generate_devtools_grd") {
public_deps = [
"//third_party/blink/renderer/devtools:generate_devtools_grd",
]
}
resources_out_dir = "$root_gen_dir/third_party/blink/public/resources"
grit("resources") {
output_dir = resources_out_dir
source = "blink_resources.grd"
outputs = [
"grit/blink_resources.h",
"blink_resources.pak",
]
html_min_css = "$blink_core_output_dir/html.css"
grit_flags = [
"-E",
"html_min_css=" + rebase_path(html_min_css, root_build_dir),
]
deps = [
"//third_party/blink/renderer/core:make_minimized_css",
]
}
grit("image_resources") {
output_dir = "$root_gen_dir/third_party/blink/public/resources"
source = "blink_image_resources.grd"
outputs = [
"grit/blink_image_resources.h",
"blink_image_resources_100_percent.pak",
"blink_image_resources_200_percent.pak",
]
}
group("scaled_resources") {
public_deps = [
":image_resources",
"//third_party/blink/renderer/modules/media_controls:media_controls_resources",
]
}
repack("scaled_resources_100_percent") {
output = "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_100_percent.pak"
sources = [
"$root_gen_dir/third_party/blink/public/resources/blink_image_resources_100_percent.pak",
"$root_gen_dir/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources_100_percent.pak",
]
deps = [
":scaled_resources",
]
}
repack("scaled_resources_200_percent") {
output = "$root_gen_dir/third_party/blink/public/resources/blink_scaled_resources_200_percent.pak"
sources = [
"$root_gen_dir/third_party/blink/public/resources/blink_image_resources_200_percent.pak",
"$root_gen_dir/third_party/blink/renderer/modules/media_controls/resources/media_controls_resources_200_percent.pak",
]
deps = [
":scaled_resources",
]
}
# TODO: Move these into blink/public/mojom.
mojom("mojo_bindings") {
visibility = [
"//content/*",
"//chrome/common:mojo_bindings",
]
visibility_blink =
[ "//third_party/blink/renderer/platform:blink_platform_public_deps" ]
sources = [
"platform/autoplay.mojom",
"platform/content_security_policy.mojom",
"platform/dedicated_worker_factory.mojom",
"platform/media_download_in_product_help.mojom",
"platform/mime_registry.mojom",
"platform/modules/app_banner/app_banner.mojom",
"platform/modules/background_fetch/background_fetch.mojom",
"platform/modules/background_sync/background_sync.mojom",
"platform/modules/badging/badging.mojom",
"platform/modules/bluetooth/web_bluetooth.mojom",
"platform/modules/cache_storage/cache_storage.mojom",
"platform/modules/credentialmanager/credential_manager.mojom",
"platform/modules/fetch/fetch_api_request.mojom",
"platform/modules/geolocation/geolocation_service.mojom",
"platform/modules/hyphenation/hyphenation.mojom",
"platform/modules/insecure_input/insecure_input_service.mojom",
"platform/modules/keyboard_lock/keyboard_lock.mojom",
"platform/modules/locks/lock_manager.mojom",
"platform/modules/notifications/notification_service.mojom",
"platform/modules/permissions/permission.mojom",
"platform/modules/permissions/permission_status.mojom",
"platform/modules/webauthn/virtual_authenticator.mojom",
"platform/modules/webdatabase/web_database.mojom",
"platform/oom_intervention.mojom",
"platform/referrer.mojom",
"platform/reporting.mojom",
"platform/site_engagement.mojom",
"platform/ukm.mojom",
"web/commit_result.mojom",
"web/console_message.mojom",
"web/devtools_agent.mojom",
"web/devtools_frontend.mojom",
"web/selection_menu_behavior.mojom",
"web/window_features.mojom",
"web/worker_content_settings_proxy.mojom",
]
public_deps = [
":android_mojo_bindings",
":web_client_hints_types_mojo_bindings",
":web_feature_mojo_bindings",
"//components/services/font/public/interfaces",
"//device/bluetooth/public/mojom",
"//mojo/public/mojom/base",
"//services/device/public/mojom",
"//services/network/public/mojom",
"//services/service_manager/public/mojom",
"//skia/public/interfaces",
"//third_party/blink/public/mojom:mojom_platform",
"//ui/gfx/geometry/mojo",
"//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" ]
component_output_prefix = "blink_mojo_bindings"
# The chromium variant must be linked with content and use the same export
# settings in component build because of the WebBluetoothDeviceId typemap
# inside content.
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
# Similarly, the blink variant must be linked with the platform component
# since it uses types from it in its typemaps.
export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
}
mojom("android_mojo_bindings") {
visibility = [ ":mojo_bindings" ]
visibility_blink = [ ":mojo_bindings_blink" ]
sources = [
"platform/input_host.mojom",
"platform/input_messages.mojom",
"platform/modules/document_metadata/copyless_paste.mojom",
"platform/modules/font_unique_name_lookup/font_unique_name_lookup.mojom",
"platform/modules/installation/installation.mojom",
"platform/modules/installedapp/installed_app_provider.mojom",
"platform/modules/installedapp/related_application.mojom",
"platform/modules/mediasession/media_session.mojom",
"platform/modules/webauthn/authenticator.mojom",
"platform/modules/webshare/webshare.mojom",
"web/remote_objects.mojom",
]
public_deps = [
"//mojo/public/mojom/base",
"//ui/gfx/geometry/mojo",
"//url/mojom:url_mojom_gurl",
]
# This Android unhandled-tap feature uses another mojo source, add it in.
if (enable_unhandled_tap) {
sources += [ "platform/unhandled_tap_notifier.mojom" ]
}
component_output_prefix = "blink_android_mojo_bindings"
# See comment above.
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
}
mojom("media_devices_mojo_bindings") {
sources = [
"platform/modules/mediastream/media_devices.mojom",
]
public_deps = [
"//media/capture/mojom:video_capture",
"//media/mojo/interfaces",
"//ui/gfx/geometry/mojo",
]
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
}
# The embedded_frame_sink_mojo_bindings is separated from the rest of mojom
# files because its deps contain too many files in Chromium that would pollute
# the include paths in generated mojom-blink files for other services.
mojom("embedded_frame_sink_mojo_bindings") {
visibility = [ "//content/*" ]
visibility_blink = [ "//third_party/blink/renderer/platform" ]
sources = [
"platform/modules/frame_sinks/embedded_frame_sink.mojom",
]
deps = [
"//services/viz/public/interfaces",
]
component_output_prefix = "blink_embedded_frame_sink_mojo_bindings"
# See comment above
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
export_class_attribute_blink = "BLINK_PLATFORM_EXPORT"
export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/public/platform/web_common.h"
}
# The core_mojo_bindings is separated from the rest of mojom files to allow its deps
# to depend on types in WebKit/Source/core.
mojom("core_mojo_bindings") {
visibility = [ "//content/*" ]
visibility_blink = [ "//third_party/blink/renderer/core/*" ]
sources = [
"platform/modules/broadcastchannel/broadcast_channel.mojom",
]
public_deps = [
"//third_party/blink/public/mojom:mojom_core",
"//url/mojom:url_mojom_origin",
]
overridden_deps = [ "//third_party/blink/public/mojom:mojom_core" ]
component_deps = [ "//third_party/blink/public/common" ]
component_output_prefix = "blink_core_mojo_bindings"
# See comment above.
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
# Similarly, the blink variant must be linked with the core component
# since it uses types from it in its typemaps.
export_class_attribute_blink = "CORE_EXPORT"
export_define_blink = "BLINK_CORE_IMPLEMENTATION=1"
export_header_blink = "third_party/blink/renderer/core/core_export.h"
}
# Note that this intentionally depends on the generator target of the mojom
# target instead of the mojom target itself directly. This is to ensure that the
# dependencies are header-only and don't link against any bindings code.
group("generate_mojo_bindings") {
deps = [
# It's important to generate both the regular and the Blink variants. The
# Blink public API exposes a number of Mojo interfaces; omitting it will
# cause non-deterministic compile failures for code that uses the regular
# variant of the generated files.
":core_mojo_bindings_blink_headers",
":core_mojo_bindings_headers",
":embedded_frame_sink_mojo_bindings_blink_headers",
":media_devices_mojo_bindings_blink_headers",
":media_devices_mojo_bindings_headers",
":mojo_bindings_blink_headers",
":mojo_bindings_headers",
]
}
# The web_feature_mojo_bindings is separated from the rest of the mojom files
# because the chromium typemap for blink mojo_bindings has private content
# dependencies.
mojom("web_feature_mojo_bindings") {
sources = [
"platform/web_feature.mojom",
]
}
# The web_feature_mojo_bindings is separated from the rest of the mojom files
# because the chromium typemap for blink mojo_bindings has private content
# dependencies.
mojom("web_client_hints_types_mojo_bindings") {
sources = [
"platform/web_client_hints_types.mojom",
]
}
# Some mojom typemaps are shared between Chromium and Blink variants and
# therefore require some shared traits implementation. These definitions are
# relegated to a separate target to avoid duplication between the variants.
source_set("shared_typemap_traits") {
visibility = [ ":*" ]
sources = [
"web/console_message_struct_traits.cc",
"web/console_message_struct_traits.h",
]
deps = [
":blink_headers",
":mojo_bindings_headers",
"//mojo/public/cpp/bindings:struct_traits",
]
}