| # Copyright 2014 The Chromium Authors |
| # 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/devtools.gni") |
| import("//mojo/public/tools/bindings/mojom.gni") |
| import("//third_party/blink/public/public_features.gni") |
| import("//third_party/blink/renderer/build/scripts/scripts.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") |
| } |
| |
| blink_public_output_dir = "$root_gen_dir/third_party/blink/public" |
| |
| 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", |
| ] |
| if (use_blink_extensions_chromeos) { |
| deps += [ "//third_party/blink/renderer/extensions/chromeos" ] |
| } |
| if (use_blink_extensions_webview) { |
| deps += [ "//third_party/blink/renderer/extensions/webview" ] |
| } |
| } |
| |
| group("test_support") { |
| testonly = true |
| public_deps = [ |
| ":test_headers", |
| "//third_party/blink/common:test_support", |
| "//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", |
| "./mojom/input/input_handler.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/androidx:androidx_annotation_annotation_java", |
| ] |
| srcjar_deps = [ ":blink_headers_java_enums_srcjar" ] |
| } |
| } |
| |
| source_set("test_headers") { |
| testonly = true |
| sources = [ |
| "common/interest_group/test/interest_group_test_utils.h", |
| "common/interest_group/test_interest_group_builder.h", |
| "common/origin_trials/scoped_test_origin_trial_policy.h", |
| "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", |
| "test/test_web_frame_helper.h", |
| ] |
| public_deps = [ ":blink_headers" ] |
| deps = [ |
| "//base:base", |
| "//cc:cc", |
| "//testing/gmock:gmock", |
| ] |
| } |
| |
| # 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/browser_interface_broker_proxy.h", |
| "platform/child_url_loader_factory_bundle.h", |
| "platform/cross_variant_mojo_util.h", |
| "platform/file_path_conversion.h", |
| "platform/interface_registry.h", |
| "platform/media/web_media_player_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_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_platform_media_stream_source.h", |
| "platform/modules/remoteplayback/remote_playback_source.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_provider_context.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_renderer_process_type.h", |
| "platform/scheduler/web_scoped_virtual_time_pauser.h", |
| "platform/scheduler/web_thread_scheduler.h", |
| "platform/task_type.h", |
| "platform/tracked_child_url_loader_factory_bundle.h", |
| "platform/url_conversion.h", |
| "platform/url_loader_throttle_provider.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_sink_descriptor.h", |
| "platform/web_audio_source_provider.h", |
| "platform/web_audio_source_provider_impl.h", |
| "platform/web_background_resource_fetch_assets.h", |
| "platform/web_blob_info.h", |
| "platform/web_cache.h", |
| "platform/web_callbacks.h", |
| "platform/web_common.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_or_shared_worker_fetch_context.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_drag_data.h", |
| "platform/web_effective_connection_type.h", |
| "platform/web_encoding_data.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_gesture_curve.h", |
| "platform/web_graphics_context_3d_provider.h", |
| "platform/web_graphics_shared_image_interface_provider.h", |
| "platform/web_http_body.h", |
| "platform/web_http_header_visitor.h", |
| "platform/web_icon_sizes_parser.h", |
| "platform/web_image_generator.h", |
| "platform/web_input_event_result.h", |
| "platform/web_isolated_world_info.h", |
| "platform/web_loader_freeze_mode.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.h", |
| "platform/web_prescient_networking.h", |
| "platform/web_private_ptr.h", |
| "platform/web_runtime_features.h", |
| "platform/web_scoped_page_pauser.h", |
| "platform/web_scroll_anchor_data.h", |
| "platform/web_security_origin.h", |
| "platform/web_set_sink_id_callbacks.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_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_request.h", |
| "platform/web_url_request_extra_data.h", |
| "platform/web_url_request_util.h", |
| "platform/web_url_response.h", |
| "platform/web_v8_value_converter.h", |
| "platform/web_vector.h", |
| "platform/web_video_frame_submitter.h", |
| "platform/web_worker_fetch_context.h", |
| "platform/websocket_handshake_throttle.h", |
| "platform/websocket_handshake_throttle_provider.h", |
| "web/blink.h", |
| "web/modules/ai/web_ai_features.h", |
| "web/modules/ai/web_ai_language_model.h", |
| "web/modules/autofill/web_form_element_observer.h", |
| "web/modules/canvas/canvas_test_utils.h", |
| "web/modules/credentialmanagement/throttle_helper.h", |
| "web/modules/media/audio/audio_device_factory.h", |
| "web/modules/media/audio/audio_input_ipc_factory.h", |
| "web/modules/media/audio/audio_output_ipc_factory.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_player_ms.h", |
| "web/modules/mediastream/web_media_stream_device_observer.h", |
| "web/modules/mediastream/web_media_stream_utils.h", |
| "web/modules/service_worker/web_navigation_preload_request.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_crypto_histograms.h", |
| "web/web_crypto_normalize.h", |
| "web/web_css_origin.h", |
| "web/web_custom_element.h", |
| "web/web_disallow_transition_scope.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_form_related_change_type.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_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_link_preview_triggerer.h", |
| "web/web_local_frame.h", |
| "web/web_local_frame_client.h", |
| "web/web_local_frame_observer.h", |
| "web/web_manifest_manager.h", |
| "web/web_meaningful_layout.h", |
| "web/web_media_inspector.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_option_element.h", |
| "web/web_page_popup.h", |
| "web/web_pepper_socket.h", |
| "web/web_pepper_socket_client.h", |
| "web/web_performance_metrics_for_nested_contexts.h", |
| "web/web_performance_metrics_for_reporting.h", |
| "web/web_picture_in_picture_window_options.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_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_storage_worklet_thread.h", |
| "web/web_shared_worker.h", |
| "web/web_shared_worker_client.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_user_level_memory_pressure_signal_generator.h", |
| "web/web_v8_context_snapshot.h", |
| "web/web_v8_features.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_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 += [ |
| "platform/web_font_prewarmer.h", |
| "platform/web_font_rendering_client.h", |
| "web/win/web_font_family_names.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 = [ |
| ":devtools_inspector_resources_grit", |
| ":resources_grit", |
| ":runtime_features_for_public", |
| "//net", |
| "//services/network/public/mojom:mojom_shared", |
| "//services/service_manager/public/cpp", |
| "//skia", |
| "//third_party/blink/public/common", |
| "//third_party/blink/public/common:headers", |
| "//third_party/blink/renderer/platform:make_platform_generated", |
| "//ui/accessibility:ax_base", |
| "//ui/base/dragdrop/mojom:mojom_shared", |
| "//ui/base/ime", |
| "//ui/base/ime/mojom", |
| "//ui/base/prediction:prediction", |
| "//url", |
| ] |
| |
| if (is_mac) { |
| public_deps += [ "//ui/gfx" ] |
| } |
| |
| 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", |
| ] |
| } |
| |
| blink_python_runner("runtime_features_for_public") { |
| script = "../renderer/build/scripts/make_runtime_features_for_public.py" |
| |
| runtime_enabled_features_json5 = |
| "../renderer/platform/runtime_enabled_features.json5" |
| inputs = |
| scripts_for_json5_files + [ |
| runtime_enabled_features_json5, |
| "../renderer/build/scripts/make_runtime_features_utilities.py", |
| "../renderer/build/scripts/make_runtime_features.py", |
| "../renderer/build/scripts/templates/features_generated.h.tmpl", |
| "../renderer/build/scripts/templates/web_origin_trials.h.tmpl", |
| "../renderer/build/scripts/templates/web_runtime_features_base.h.tmpl", |
| ] |
| |
| outputs = [ |
| "$blink_public_output_dir/common/features_generated.h", |
| "$blink_public_output_dir/platform/web_runtime_features_base.h", |
| "$blink_public_output_dir/web/web_origin_trials.h", |
| ] |
| |
| args = [ |
| rebase_path(runtime_enabled_features_json5, root_build_dir), |
| "--output_dir", |
| rebase_path(blink_public_output_dir, root_build_dir), |
| ] |
| } |
| |
| devtools_frontend_path = "//$devtools_root_location" |
| |
| 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 = "$blink_public_output_dir/resources" |
| |
| grit("resources") { |
| output_dir = resources_out_dir |
| source = "blink_resources.grd" |
| outputs = [ |
| "grit/blink_resources.h", |
| "blink_resources.pak", |
| ] |
| use_brotli = true |
| } |
| |
| 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", |
| ] |
| |
| _shared_intermediate_dir = rebase_path(root_out_dir, root_build_dir) |
| _devtools_grd_path = "$shared_intermediate_dir/$devtools_grd_location" |
| _devtools_grd_path_no_ext = get_path_info(_devtools_grd_path, "dir") + "/" + |
| get_path_info(_devtools_grd_path, "name") |
| |
| defines = [ |
| "SHARED_INTERMEDIATE_DIR=" + _shared_intermediate_dir, |
| "DEVTOOLS_GRD_PATH=" + _devtools_grd_path_no_ext, |
| ] |
| |
| 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" ] |
| } |