# 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("//build/config/dcheck_always_on.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("//third_party/webrtc/webrtc.gni")
import("//tools/grit/grit_rule.gni")
import("//tools/grit/repack.gni")

if (is_android) {
  import("//build/config/android/config.gni")
  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/core/exported:test_support",
    "//third_party/blink/renderer/modules/exported:test_support",
    "//third_party/blink/renderer/modules/mediastream:test_support",
    "//third_party/blink/renderer/modules/peerconnection: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:blink_unittests",
    "//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 = [
    "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/input/web_input_event.h",
      "./mojom/context_menu/context_menu.mojom",
      "./platform/web_text_input_mode.h",
      "./platform/web_text_input_type.h",
    ]
  }

  android_library("blink_headers_java") {
    deps = [
      "//services/network/public/mojom:mojom_java",
      "//third_party/android_deps:com_android_support_support_annotations_java",
      "//third_party/androidx:androidx_annotation_annotation_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",
    "test/frame_widget_test_helper.h",
    "test/test_web_frame_content_dumper.h",
  ]
  public_deps = [ ":blink_headers" ]
  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/audio/web_audio_device_source_type.h",
    "platform/blame_context.h",
    "platform/child_url_loader_factory_bundle.h",
    "platform/cross_variant_mojo_util.h",
    "platform/file_path_conversion.h",
    "platform/impression_conversions.h",
    "platform/input/input_handler_proxy.h",
    "platform/input/input_handler_proxy_client.h",
    "platform/input/predictor_factory.h",
    "platform/input/synchronous_input_handler_proxy.h",
    "platform/interface_registry.h",
    "platform/internet_disconnected_web_url_loader.h",
    "platform/media/webmediaplayer_delegate.h",
    "platform/modules/mediastream/media_stream_types.h",
    "platform/modules/mediastream/secure_display_link_tracker.h",
    "platform/modules/mediastream/web_media_stream.h",
    "platform/modules/mediastream/web_media_stream_audio_renderer.h",
    "platform/modules/mediastream/web_media_stream_audio_sink.h",
    "platform/modules/mediastream/web_media_stream_sink.h",
    "platform/modules/mediastream/web_media_stream_source.h",
    "platform/modules/mediastream/web_media_stream_track.h",
    "platform/modules/mediastream/web_media_stream_video_renderer.h",
    "platform/modules/mediastream/web_platform_media_stream_source.h",
    "platform/modules/remoteplayback/web_remote_playback_client.h",
    "platform/modules/service_worker/web_service_worker_error.h",
    "platform/modules/service_worker/web_service_worker_fetch_context.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/video_capture/web_video_capture_impl_manager.h",
    "platform/modules/webrtc/webrtc_logging.h",
    "platform/platform.h",
    "platform/resource_load_info_notifier_wrapper.h",
    "platform/scheduler/web_agent_group_scheduler.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_scoped_virtual_time_pauser.h",
    "platform/scheduler/web_thread_scheduler.h",
    "platform/scheduler/web_widget_scheduler.h",
    "platform/task_type.h",
    "platform/tracked_child_url_loader_factory_bundle.h",
    "platform/url_conversion.h",
    "platform/user_metrics_action.h",
    "platform/weak_wrapper_resource_load_info_notifier.h",
    "platform/web_audio_bus.h",
    "platform/web_audio_device.h",
    "platform/web_audio_latency_hint.h",
    "platform/web_audio_source_provider.h",
    "platform/web_back_forward_cache_loader_helper.h",
    "platform/web_blob_info.h",
    "platform/web_cache.h",
    "platform/web_callbacks.h",
    "platform/web_client_hints_type.h",
    "platform/web_code_cache_loader.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_struct.h",
    "platform/web_content_settings_client.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_data.h",
    "platform/web_dedicated_worker.h",
    "platform/web_dedicated_worker_host_factory_client.h",
    "platform/web_distillability.h",
    "platform/web_document_subresource_filter.h",
    "platform/web_double_size.h",
    "platform/web_drag_data.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_fetch_client_settings_object.h",
    "platform/web_file_system_type.h",
    "platform/web_font.h",
    "platform/web_font_description.h",
    "platform/web_font_render_style.h",
    "platform/web_frame_request_blocker.h",
    "platform/web_gesture_curve.h",
    "platform/web_graphics_context_3d_provider.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_generator.h",
    "platform/web_impression.h",
    "platform/web_inband_text_track.h",
    "platform/web_inband_text_track_client.h",
    "platform/web_input_event_result.h",
    "platform/web_isolated_world_info.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_source.h",
    "platform/web_memory_pressure_listener.h",
    "platform/web_navigation_body_loader.h",
    "platform/web_network_state_notifier.h",
    "platform/web_policy_container.cc",
    "platform/web_policy_container.h",
    "platform/web_prescient_networking.h",
    "platform/web_private_ptr.h",
    "platform/web_request_peer.h",
    "platform/web_resource_request_sender.h",
    "platform/web_resource_request_sender_delegate.h",
    "platform/web_runtime_features.h",
    "platform/web_scoped_page_pauser.h",
    "platform/web_scroll_anchor_data.h",
    "platform/web_scrollbar_overlay_color_theme.h",
    "platform/web_security_origin.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_spell_check_panel_host_client.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_texttrack_metadata.h",
    "platform/web_theme_engine.h",
    "platform/web_thread_safe_data.h",
    "platform/web_time_range.h",
    "platform/web_touch_action.h",
    "platform/web_url.h",
    "platform/web_url_error.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_request_extra_data.h",
    "platform/web_url_request_util.h",
    "platform/web_url_response.h",
    "platform/web_vector.h",
    "platform/web_video_frame_submitter.h",
    "platform/web_worker_fetch_context.h",
    "platform/webaudiosourceprovider_impl.h",
    "platform/websocket_handshake_throttle.h",
    "web/blink.h",
    "web/modules/autofill/web_form_element_observer.h",
    "web/modules/media/audio/fuchsia_audio_device_factory.h",
    "web/modules/media/audio/web_audio_device_factory.h",
    "web/modules/media/audio/web_audio_input_ipc_factory.h",
    "web/modules/media/audio/web_audio_output_ipc_factory.h",
    "web/modules/media/webmediaplayer_util.h",
    "web/modules/mediastream/encoded_video_frame.h",
    "web/modules/mediastream/media_stream_video_sink.h",
    "web/modules/mediastream/media_stream_video_source.h",
    "web/modules/mediastream/web_media_stream_device_observer.h",
    "web/modules/mediastream/web_media_stream_utils.h",
    "web/modules/mediastream/webmediaplayer_ms.h",
    "web/modules/service_worker/web_service_worker_context_client.h",
    "web/modules/service_worker/web_service_worker_context_proxy.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_content_capture_client.h",
    "web/web_content_holder.h",
    "web/web_context_features.h",
    "web/web_crypto_normalize.h",
    "web/web_custom_element.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_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_client.h",
    "web/web_frame_widget.h",
    "web/web_heap.h",
    "web/web_history_commit_type.h",
    "web/web_history_entry.h",
    "web/web_history_item.h",
    "web/web_hit_test_result.h",
    "web/web_image.h",
    "web/web_image_cache.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_lifecycle_update.h",
    "web/web_local_frame.h",
    "web/web_local_frame_client.h",
    "web/web_manifest_manager.h",
    "web/web_meaningful_layout.h",
    "web/web_media_inspector.h",
    "web/web_memory_statistics.h",
    "web/web_message_port_converter.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_no_state_prefetch_client.h",
    "web/web_node.h",
    "web/web_non_composited_widget_client.h",
    "web/web_optimization_guide_hints.h",
    "web/web_option_element.h",
    "web/web_origin_policy.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_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_print_client.h",
    "web/web_print_page_description.h",
    "web/web_print_params.h",
    "web/web_print_preset_options.h",
    "web/web_range.h",
    "web/web_remote_frame.h",
    "web/web_remote_frame_client.h",
    "web/web_render_theme.h",
    "web/web_savable_resources_test_support.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_swap_result.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_v8_context_snapshot.h",
    "web/web_view.h",
    "web/web_view_client.h",
    "web/web_view_observer.h",
    "web/web_widget.h",
    "web/web_window_features.h",
  ]

  if (is_debug || dcheck_always_on) {
    sources += [ "web/web_disallow_transition_scope.h" ]
  }

  if (is_mac) {
    sources += [
      "platform/mac/web_sandbox_support.h",
      "platform/mac/web_scrollbar_theme.h",
    ]
  }

  if (is_linux || is_chromeos) {
    sources += [ "platform/linux/web_sandbox_support.h" ]
  }

  if (is_win) {
    sources += [ "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 = [
    ":devtools_inspector_resources_grit",
    ":resources_grit",
    "//net",
    "//services/network/public/mojom:mojom_shared",
    "//services/service_manager/public/cpp",
    "//skia",
    "//third_party/blink/public/common",
    "//ui/accessibility:ax_base",
    "//ui/base/cursor:cursor_base",
    "//ui/base/dragdrop/mojom:mojom_shared",
    "//ui/base/ime",
    "//ui/base/ime/mojom",
    "//ui/base/prediction:prediction",
    "//url",
  ]

  deps = [
    "//base:base",
    "//cc:cc",
    "//cc/paint:paint",
    "//components/viz/common",
    "//media/capture:capture_base",
    "//media/capture:capture_lib",
    "//media/webrtc:webrtc",
    "//mojo/public/cpp/bindings:bindings",
    "//mojo/public/cpp/system:system",
    "//printing/mojom",
    "//services/device/public/mojom:mojom_shared_cpp_sources",
    "//services/network/public/cpp:cpp",
    "//services/network/public/mojom",
    "//third_party/blink/renderer/platform/wtf:wtf",
    "//third_party/webrtc_overrides:webrtc_component",
    "//ui/base:base",
    "//v8:v8_headers",
  ]
}

devtools_frontend_path = "//third_party/devtools-frontend/src"

group("blink_devtools_frontend_resources") {
  public_deps = [ "$devtools_frontend_path:devtools_frontend_resources" ]
}

group("blink_devtools_inspector_resources") {
  public_deps = [ ":devtools_inspector_resources_grit" ]
}

group("blink_devtools_frontend_resources_files") {
  testonly = true
  data_deps = [ "$devtools_frontend_path:devtools_all_files" ]
}

group("blink_generate_devtools_grd") {
  public_deps = [ "$devtools_frontend_path: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",
  ]
}

grit("devtools_inspector_resources") {
  # Required because the .grd is generated.
  enable_input_discovery_for_gn_analyze = false

  source = "$root_out_dir/resources/inspector_overlay/inspector_overlay_resources.grd"
  output_dir = resources_out_dir
  outputs = [
    "grit/inspector_overlay_resources_map.h",
    "inspector_overlay_resources.pak",
  ]

  defines =
      [ "SHARED_INTERMEDIATE_DIR=" + rebase_path(root_out_dir, root_build_dir) ]

  deps = [
    "$devtools_frontend_path:generate_devtools_inspector_overlay_resources",
  ]
}

grit("image_resources") {
  output_dir = resources_out_dir
  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" ]
}
