# 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/code_cache_loader.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_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_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/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_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_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.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_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_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/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", ":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/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.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", ] }