# 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_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 = [
      "//services/network/public/mojom:mojom_java",
      "//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/renderer_scheduler_test_support.h",
    "platform/scheduler/test/web_fake_thread_scheduler.h",
    "platform/scheduler/test/web_mock_thread_scheduler.h",
  ]
  deps = [
    ":blink_headers",
    "//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_database_exception.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_callbacks.h",
    "platform/modules/media_capabilities/web_media_capabilities_client.h",
    "platform/modules/media_capabilities/web_media_capabilities_decoding_info.h",
    "platform/modules/media_capabilities/web_media_capabilities_info.h",
    "platform/modules/media_capabilities/web_media_capabilities_key_system_configuration.h",
    "platform/modules/media_capabilities/web_media_configuration.h",
    "platform/modules/media_capabilities/web_media_decoding_configuration.h",
    "platform/modules/media_capabilities/web_video_configuration.h",
    "platform/modules/mediastream/platform_media_stream_source.h",
    "platform/modules/mediastream/platform_media_stream_track.h",
    "platform/modules/mediastream/web_media_stream_sink.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/platform.h",
    "platform/pointer_properties.h",
    "platform/scheduler/web_rail_mode_observer.h",
    "platform/scheduler/web_render_widget_scheduling_state.h",
    "platform/scheduler/web_renderer_process_type.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_color_scheme.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_isolated_world_info.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_navigation_body_loader.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_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_receiver.h",
    "platform/web_rtc_rtp_sender.h",
    "platform/web_rtc_rtp_source.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_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_control.h",
    "web/web_navigation_params.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_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",
    "//ui/accessibility:ax_enums_mojo",
    "//url",
  ]

  deps = [
    ":generate_mojo_bindings",
    ":mojo_bindings_blink_headers",
    "//base:base",
    "//cc:cc",
    "//cc/paint:paint",
    "//components/viz/common",
    "//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/media_download_in_product_help.mojom",
    "platform/mime_registry.mojom",
    "platform/modules/app_banner/app_banner.mojom",
    "platform/modules/background_sync/background_sync.mojom",
    "platform/modules/badging/badging.mojom",
    "platform/modules/bluetooth/web_bluetooth.mojom",
    "platform/modules/credentialmanager/credential_manager.mojom",
    "platform/modules/geolocation/geolocation_service.mojom",
    "platform/modules/hyphenation/hyphenation.mojom",
    "platform/modules/idle/idle_manager.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/reporting.mojom",
    "platform/site_engagement.mojom",
    "platform/ukm.mojom",
    "web/commit_result.mojom",
    "web/console_message.mojom",
    "web/devtools_frontend.mojom",
    "web/selection_menu_behavior.mojom",
    "web/window_features.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",
    "//services/media_session/public/mojom",
    "//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"
}

# 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",
    ":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_component("web_feature_mojo_bindings") {
  sources = [
    "platform/web_feature.mojom",
  ]

  macro_prefix = "WEB_FEATURE_MOJO_BINDINGS_MOJOM"
  output_prefix = "web_feature_mojo_bindings_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",
  ]
}
