# 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_tools: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/cors_status.h",
    "platform/file_path_conversion.h",
    "platform/interface_provider.h",
    "platform/interface_registry.h",
    "platform/linux/web_fallback_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_settled_fetch.h",
    "platform/modules/device_orientation/web_device_motion_listener.h",
    "platform/modules/device_orientation/web_device_orientation_listener.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_observation.h",
    "platform/modules/indexeddb/web_idb_types.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/notifications/web_notification_resources.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/screen_orientation/web_screen_orientation_enum_traits.h",
    "platform/modules/service_worker/web_navigation_preload_state.h",
    "platform/modules/service_worker/web_service_worker.h",
    "platform/modules/service_worker/web_service_worker_client_query_options.h",
    "platform/modules/service_worker/web_service_worker_clients_claim_callbacks.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_installed_scripts_manager.h",
    "platform/modules/service_worker/web_service_worker_network_provider.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_proxy.h",
    "platform/modules/service_worker/web_service_worker_registration.h",
    "platform/modules/service_worker/web_service_worker_registration_proxy.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_skip_waiting_callbacks.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_main_thread_scheduler.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_error.h",
    "platform/web_file_info.h",
    "platform/web_file_system.h",
    "platform/web_file_system_callbacks.h",
    "platform/web_file_system_entry.h",
    "platform/web_file_system_type.h",
    "platform/web_file_utilities.h",
    "platform/web_file_writer.h",
    "platform/web_file_writer_client.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_scroll_client.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.h",
    "platform/web_rtc_certificate_generator.h",
    "platform/web_rtc_configuration.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.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/password_manager/web_form_element_observer.h",
    "web/modules/password_manager/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_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_find_options.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_media_stream_registry.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_popup_type.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",
  ]

  if (is_android) {
    # Android uses some Linux sources, put those back.
    set_sources_assignment_filter([])
    sources += [
      "platform/linux/web_font_render_style.h",
      "web/linux/web_font_rendering.h",
    ]
    set_sources_assignment_filter(sources_assignment_filter)
  }

  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/ui/public/interfaces/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",
    ":media_controls_resources_header",
    "//third_party/blink/renderer/modules/media_controls:media_controls_resources",
  ]
}

copy("media_controls_resources_header") {
  sources = [
    "$root_gen_dir/third_party/blink/renderer/modules/media_controls/resources/grit/media_controls_resources.h",
  ]
  outputs = [
    "$resources_out_dir/grit/media_controls_resources.h",
  ]
  deps = [
    "//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/bluetooth/web_bluetooth.mojom",
    "platform/modules/budget_service/budget_service.mojom",
    "platform/modules/cache_storage/cache_storage.mojom",
    "platform/modules/credentialmanager/credential_manager.mojom",
    "platform/modules/fetch/fetch_api_request.mojom",
    "platform/modules/fetch/fetch_api_response.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.mojom",
    "platform/modules/notifications/notification_service.mojom",
    "platform/modules/payments/payment_app.mojom",
    "platform/modules/permissions/permission.mojom",
    "platform/modules/permissions/permission_status.mojom",
    "platform/modules/webauth/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/payments/mojom",
    "//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/installation/installation.mojom",
    "platform/modules/installedapp/installed_app_provider.mojom",
    "platform/modules/installedapp/related_application.mojom",
    "platform/modules/mediasession/media_session.mojom",
    "platform/modules/payments/payment_request.mojom",
    "platform/modules/webauth/authenticator.mojom",
    "platform/modules/webshare/webshare.mojom",
    "web/remote_objects.mojom",
  ]
  public_deps = [
    "//components/payments/mojom",
    "//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__generator",
    ":core_mojo_bindings_blink__generator",
    ":embedded_frame_sink_mojo_bindings_blink__generator",
    ":media_devices_mojo_bindings__generator",
    ":media_devices_mojo_bindings_blink__generator",
    ":mojo_bindings__generator",
    ":mojo_bindings_blink__generator",
    "mojom:mojom_core__generator",
    "mojom:mojom_core_blink__generator",
    "mojom:mojom_platform__generator",
    "mojom:mojom_platform_blink__generator",
  ]
}

# 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_shared__generator",
    "//mojo/public/cpp/bindings:struct_traits",
  ]
}
