blob: eab8f4dacf70a02a8fdf827e5d803cda601c77cc [file] [log] [blame]
# 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("features.gni")
import("//build/buildflag_header.gni")
import("//build/config/features.gni")
import("//build/config/ui.gni")
import("//media/media_options.gni")
import("//mojo/public/tools/bindings/mojom.gni")
import("//ppapi/features/features.gni")
import("//sandbox/features.gni")
import("//tools/ipc_fuzzer/ipc_fuzzer.gni")
if (is_mac) {
import("//build/config/mac/mac_sdk.gni")
}
# For feature flags internal to content. See content/public/common:features
# for feature flags that clients of contents need to know about.
buildflag_header("features") {
header = "features.h"
flags = [
"USE_EXTERNAL_POPUP_MENU=$use_external_popup_menu",
"ALLOW_CRITICAL_MEMORY_PRESSURE_HANDLING_IN_FOREGROUND=$allow_critical_memory_pressure_handling_in_foreground",
]
}
source_set("common") {
# Targets external to content should always link to the public API.
# In addition, targets outside of the content component (shell and tests)
# must not link to this because it will duplicate the code in the component
# build.
visibility = [ "//content/*" ]
sources = [
"accessibility_messages.h",
"all_messages.h",
"android/browser_side_navigation_policy_android.cc",
"android/gin_java_bridge_errors.cc",
"android/gin_java_bridge_errors.h",
"android/gin_java_bridge_value.cc",
"android/gin_java_bridge_value.h",
"android/hash_set.cc",
"android/hash_set.h",
"android/media_metadata_android.cc",
"android/media_metadata_android.h",
"android/sync_compositor_statics.cc",
"android/sync_compositor_statics.h",
"appcache_interfaces.cc",
"appcache_interfaces.h",
"associated_interface_provider_impl.cc",
"associated_interface_provider_impl.h",
"associated_interface_registry_impl.cc",
"associated_interface_registry_impl.h",
"ax_content_node_data.cc",
"ax_content_node_data.h",
"background_fetch/background_fetch_struct_traits.cc",
"background_fetch/background_fetch_struct_traits.h",
"background_fetch/background_fetch_types.cc",
"background_fetch/background_fetch_types.h",
"bluetooth/web_bluetooth_device_id.cc",
"bluetooth/web_bluetooth_device_id.h",
"browser_plugin/browser_plugin_constants.cc",
"browser_plugin/browser_plugin_constants.h",
"browser_plugin/browser_plugin_messages.h",
"cache_storage/cache_storage_messages.h",
"cache_storage/cache_storage_types.cc",
"cache_storage/cache_storage_types.h",
"child_process_host_impl.cc",
"child_process_host_impl.h",
"common_sandbox_support_linux.cc",
"content_constants_internal.cc",
"content_constants_internal.h",
"content_export.h",
"content_ipc_logging.cc",
"content_message_generator.cc",
"content_message_generator.h",
"content_param_traits.cc",
"content_param_traits.h",
"content_param_traits_macros.h",
"content_paths.cc",
"content_security_policy/content_security_policy.cc",
"content_security_policy/content_security_policy.h",
"content_security_policy/csp_context.cc",
"content_security_policy/csp_context.h",
"content_security_policy/csp_directive.cc",
"content_security_policy/csp_directive.h",
"content_security_policy/csp_disposition_enum.h",
"content_security_policy/csp_source.cc",
"content_security_policy/csp_source.h",
"content_security_policy/csp_source_list.cc",
"content_security_policy/csp_source_list.h",
"content_security_policy_header.cc",
"content_security_policy_header.h",
"content_switches_internal.cc",
"content_switches_internal.h",
"cross_site_document_classifier.cc",
"cross_site_document_classifier.h",
"cursors/webcursor.cc",
"cursors/webcursor.h",
"cursors/webcursor_android.cc",
"cursors/webcursor_aura.cc",
"cursors/webcursor_aurawin.cc",
"cursors/webcursor_aurax11.cc",
"cursors/webcursor_mac.mm",
"cursors/webcursor_ozone.cc",
"date_time_suggestion.h",
"dom_storage/dom_storage_map.cc",
"dom_storage/dom_storage_map.h",
"dom_storage/dom_storage_messages.h",
"dom_storage/dom_storage_types.h",
"download/mhtml_save_status.cc",
"download/mhtml_save_status.h",
"drag_event_source_info.h",
"drag_messages.h",
"drag_traits.h",
"edit_command.h",
"fileapi/file_system_messages.h",
"fileapi/webblob_messages.h",
"font_cache_dispatcher_win.cc",
"font_cache_dispatcher_win.h",
"font_config_ipc_linux.cc",
"font_config_ipc_linux.h",
"font_list.cc",
"font_list.h",
"font_list_android.cc",
"font_list_fontconfig.cc",
"font_list_mac.mm",
"font_list_win.cc",
"frame_message_enums.h",
"frame_messages.h",
"frame_messages_forward.h",
"frame_owner_properties.cc",
"frame_owner_properties.h",
"frame_replication_state.cc",
"frame_replication_state.h",
"gin_java_bridge_messages.h",
"in_process_child_thread_params.cc",
"in_process_child_thread_params.h",
"indexed_db/indexed_db_constants.h",
"indexed_db/indexed_db_key.cc",
"indexed_db/indexed_db_key.h",
"indexed_db/indexed_db_key_path.cc",
"indexed_db/indexed_db_key_path.h",
"indexed_db/indexed_db_key_range.cc",
"indexed_db/indexed_db_key_range.h",
"indexed_db/indexed_db_metadata.cc",
"indexed_db/indexed_db_metadata.h",
"indexed_db/indexed_db_struct_traits.cc",
"indexed_db/indexed_db_struct_traits.h",
"input/event_with_latency_info.h",
"input/gesture_event_stream_validator.cc",
"input/gesture_event_stream_validator.h",
"input/ime_text_span_conversions.cc",
"input/ime_text_span_conversions.h",
"input/input_event.cc",
"input/input_event.h",
"input/input_event_ack.cc",
"input/input_event_ack.h",
"input/input_event_ack_state.cc",
"input/input_event_dispatch_type.h",
"input/input_event_stream_validator.cc",
"input/input_event_stream_validator.h",
"input/input_event_struct_traits.cc",
"input/input_event_struct_traits.h",
"input/input_param_traits.cc",
"input/input_param_traits.h",
"input/sync_compositor_messages.cc",
"input/sync_compositor_messages.h",
"input/synthetic_gesture_params.cc",
"input/synthetic_gesture_params.h",
"input/synthetic_pinch_gesture_params.cc",
"input/synthetic_pinch_gesture_params.h",
"input/synthetic_pointer_action_list_params.cc",
"input/synthetic_pointer_action_list_params.h",
"input/synthetic_pointer_action_params.cc",
"input/synthetic_pointer_action_params.h",
"input/synthetic_smooth_drag_gesture_params.cc",
"input/synthetic_smooth_drag_gesture_params.h",
"input/synthetic_smooth_scroll_gesture_params.cc",
"input/synthetic_smooth_scroll_gesture_params.h",
"input/synthetic_tap_gesture_params.cc",
"input/synthetic_tap_gesture_params.h",
"input/synthetic_web_input_event_builders.cc",
"input/synthetic_web_input_event_builders.h",
"input/touch_action_optional_struct_traits.cc",
"input/touch_action_optional_struct_traits.h",
"input/touch_event_stream_validator.cc",
"input/touch_event_stream_validator.h",
"input/web_touch_event_traits.cc",
"input/web_touch_event_traits.h",
"input_messages.h",
"inter_process_time_ticks_converter.cc",
"inter_process_time_ticks_converter.h",
"layer_tree_settings_factory.cc",
"layer_tree_settings_factory.h",
"mac/attributed_string_coder.h",
"mac/attributed_string_coder.mm",
"mac/font_loader.h",
"mac/font_loader.mm",
"media/aec_dump_messages.h",
"media/audio_messages.h",
"media/cdm_info.cc",
"media/media_devices.cc",
"media/media_devices.h",
"media/media_player_delegate_messages.h",
"media/media_player_messages_android.h",
"media/media_stream_controls.cc",
"media/media_stream_controls.h",
"media/media_stream_param_traits.cc",
"media/media_stream_param_traits.h",
"media/media_stream_track_metrics_host_messages.h",
"media/midi_messages.h",
"media/peer_connection_tracker_messages.h",
"media/surface_view_manager_messages_android.h",
"media/video_capture.h",
"navigation_gesture.h",
"navigation_params.cc",
"navigation_params.h",
"navigation_subresource_loader_params.cc",
"navigation_subresource_loader_params.h",
"net/url_fetcher.cc",
"net/url_request_service_worker_data.cc",
"net/url_request_service_worker_data.h",
"net/url_request_user_data.cc",
"net/url_request_user_data.h",
"notifications/notification_struct_traits.cc",
"notifications/notification_struct_traits.h",
"origin_trials/trial_policy_impl.cc",
"origin_trials/trial_policy_impl.h",
"origin_util.cc",
"p2p_socket_type.h",
"page_message_enums.h",
"page_messages.h",
"page_state_serialization.cc",
"page_state_serialization.h",
"page_zoom.cc",
"pepper_file_util.cc",
"pepper_file_util.h",
"pepper_plugin_list.cc",
"pepper_plugin_list.h",
"pepper_renderer_instance_data.cc",
"pepper_renderer_instance_data.h",
"platform_notification_messages.h",
"plugin_list.cc",
"plugin_list.h",
"possibly_associated_interface_ptr.h",
"possibly_associated_interface_ptr_info.h",
"presentation/presentation_struct_traits.cc",
"presentation/presentation_struct_traits.h",
"process_type.cc",
"quarantine/quarantine.cc",
"quarantine/quarantine_constants_linux.h",
"quarantine/quarantine_linux.cc",
"quarantine/quarantine_mac.mm",
"quarantine/quarantine_win.cc",
"render_widget_surface_properties.cc",
"render_widget_surface_properties.h",
"resize_params.cc",
"resize_params.h",
"resource_messages.h",
"resource_timing_info.cc",
"resource_timing_info.h",
"sandbox_init_linux.cc",
"sandbox_init_mac.cc",
"sandbox_init_win.cc",
"savable_subframe.h",
"send_zygote_child_ping_linux.cc",
"service_manager/service_manager_connection_impl.cc",
"service_manager/service_manager_connection_impl.h",
"service_worker/embedded_worker_messages.h",
"service_worker/service_worker_loader_helpers.cc",
"service_worker/service_worker_loader_helpers.h",
"service_worker/service_worker_messages.h",
"service_worker/service_worker_provider_host_info.cc",
"service_worker/service_worker_provider_host_info.h",
"service_worker/service_worker_status_code.cc",
"service_worker/service_worker_status_code.h",
"service_worker/service_worker_types.cc",
"service_worker/service_worker_types.h",
"service_worker/service_worker_utils.cc",
"service_worker/service_worker_utils.h",
"speech_recognition_messages.h",
"swapped_out_messages.cc",
"swapped_out_messages.h",
"task_scheduler.cc",
"task_scheduler.h",
"text_input_client_messages.h",
"text_input_state.cc",
"text_input_state.h",
"throttling_url_loader.cc",
"throttling_url_loader.h",
"unique_name_helper.cc",
"unique_name_helper.h",
"url_loader_factory_bundle.cc",
"url_loader_factory_bundle.h",
"url_schemes.cc",
"url_schemes.h",
"user_agent.cc",
"view_message_enums.h",
"view_messages.h",
"weak_wrapper_shared_url_loader_factory.cc",
"weak_wrapper_shared_url_loader_factory.h",
"wrapper_shared_url_loader_factory.cc",
"wrapper_shared_url_loader_factory.h",
"zygote_commands_linux.h",
]
configs += [
"//content:content_implementation",
"//build/config:precompiled_headers",
"//build/config/compiler:no_size_t_to_int_warning",
]
public_deps = [
":mojo_bindings",
"//cc",
"//gpu/command_buffer/common",
"//ipc",
"//services/network/public/cpp",
"//services/service_manager/sandbox",
"//third_party/WebKit/common:blink_common",
"//third_party/WebKit/public:blink_headers",
"//ui/accessibility",
]
deps = [
":features",
"//base",
"//base/third_party/dynamic_annotations",
"//build/util:webkit_version",
"//cc/ipc",
"//components/discardable_memory/common",
"//components/tracing",
"//components/tracing:startup_tracing",
"//components/viz/service",
"//content:resources",
"//content/app/resources",
"//content/public/common:interfaces",
"//content/public/common:service_names",
"//content/public/common:zygote_features",
"//device/base/synchronization",
"//device/bluetooth",
"//gpu",
"//gpu/command_buffer/client:gles2_implementation",
"//gpu/command_buffer/client:gles2_interface",
"//gpu/command_buffer/service",
"//gpu/ipc/client",
"//gpu/ipc/common",
"//gpu/ipc/common:gpu_preferences_util",
"//gpu/skia_bindings",
"//ipc",
"//media",
"//media:shared_memory_support",
"//media/base/ipc",
"//media/capture",
"//media/capture/ipc",
"//media/gpu:features",
"//media/gpu/ipc/client",
"//media/gpu/ipc/common",
"//media/midi",
"//media/midi:mojo",
"//mojo/common:common_base",
"//mojo/edk/system",
"//net",
"//ppapi/features",
"//sandbox",
"//sandbox:sandbox_features",
"//services/network/public/cpp",
"//services/network/public/interfaces",
"//services/resource_coordinator/public/cpp:resource_coordinator_cpp",
"//services/service_manager",
"//services/service_manager/embedder",
"//services/service_manager/public/cpp",
"//services/service_manager/public/interfaces",
"//services/service_manager/runner/common",
"//services/ui/public/interfaces",
"//services/video_capture/public/interfaces",
"//services/viz/public/interfaces",
"//skia",
"//storage/common",
"//third_party/angle:angle_gpu_info_util",
"//third_party/boringssl",
"//third_party/icu",
"//ui/base",
"//ui/base/ime",
"//ui/display",
"//ui/events/blink",
"//ui/gfx",
"//ui/gfx/geometry",
"//ui/gfx/ipc",
"//ui/gfx/ipc/color",
"//ui/gfx/ipc/geometry",
"//ui/gfx/ipc/skia",
"//ui/gl",
"//ui/gl/init",
"//ui/latency/ipc",
"//ui/shell_dialogs",
"//url",
"//url/ipc:url_ipc",
]
defines = []
include_dirs = []
libs = []
ldflags = []
allow_circular_includes_from = [
":mojo_bindings",
"//content/public/common:interfaces",
]
if (is_android && use_seccomp_bpf) {
set_sources_assignment_filter([])
sources += [
"//services/service_manager/sandbox/linux/bpf_base_policy_linux.cc",
"//services/service_manager/sandbox/linux/bpf_base_policy_linux.h",
]
set_sources_assignment_filter(sources_assignment_filter)
}
if (is_mac) {
deps += [ "//sandbox/mac:seatbelt" ]
}
if (is_android) {
deps += [
"//content/public/android:common_aidl",
"//content/public/android:jni",
]
libs += [ "android" ]
}
if (is_debug && !is_component_build && enable_plugins) {
# Content depends on the PPAPI message logging stuff; if this isn't here,
# some unit test binaries won't compile. This only worked in release mode
# because logging is disabled there.
deps += [ "//ppapi/proxy:ipc_sources" ]
}
if (enable_webrtc) {
sources += [ "p2p_messages.h" ]
deps += [
"//third_party/webrtc/rtc_base:rtc_base",
"//third_party/webrtc_overrides",
]
}
if (use_ozone) {
deps += [ "//ui/ozone" ]
} else {
sources -= [ "cursors/webcursor_ozone.cc" ]
}
if (!use_aura) {
sources -= [ "cursors/webcursor_aura.cc" ]
}
if (!use_aura || !use_x11) {
sources -= [ "cursors/webcursor_aurax11.cc" ]
}
if (is_linux) {
deps += [ "//third_party/fontconfig" ]
}
if (is_mac || is_win || is_android || is_fuchsia) {
sources -= [ "font_list_fontconfig.cc" ]
}
if (enable_plugins) {
deps += [
"//ppapi/proxy:ipc",
"//ppapi/shared_impl",
]
} else {
sources -= [
"pepper_file_util.cc",
"pepper_file_util.h",
"pepper_plugin_list.cc",
"pepper_plugin_list.h",
"pepper_renderer_instance_data.cc",
"pepper_renderer_instance_data.h",
"plugin_list.cc",
"plugin_list.h",
]
}
if (!is_win || !use_aura) {
sources -= [ "cursors/webcursor_aurawin.cc" ]
}
if (is_mac) {
deps += [ "//media/gpu" ]
}
if (enable_ipc_fuzzer) {
configs += [ "//tools/ipc_fuzzer:ipc_fuzzer_config" ]
sources += [
"external_ipc_dumper.cc",
"external_ipc_dumper.h",
]
}
if (is_fuchsia) {
sources += [
"font_list_fuchsia.cc",
"sandbox_policy_fuchsia.cc",
"sandbox_policy_fuchsia.h",
]
}
}
# See comment at the top of //content/BUILD.gn for how this works.
group("for_content_tests") {
visibility = [ "//content/test/*" ]
if (!is_component_build) {
public_deps = [
":common",
]
}
}
mojom("mojo_bindings") {
# This interface is internal to content.
visibility = [ "//content/*" ]
# indexed_db.mojom uses a native typemap that is not available in Java.
cpp_only = true
sources = [
"appcache.mojom",
"associated_interfaces.mojom",
"child.mojom",
"child_control.mojom",
"child_memory_coordinator.mojom",
"field_trial_recorder.mojom",
"file_utilities.mojom",
"frame.mojom",
"frame_sink_provider.mojom",
"histogram_fetcher.mojom",
"host_zoom.mojom",
"image_downloader/image_downloader.mojom",
"indexed_db/indexed_db.mojom",
"input/input_handler.mojom",
"input/input_injector.mojom",
"leveldb_wrapper.mojom",
"manifest_observer.mojom",
"media/media_stream.mojom",
"media/renderer_audio_input_stream_factory.mojom",
"media/renderer_audio_output_stream_factory.mojom",
"memory_coordinator.mojom",
"native_types.mojom",
"navigation_params.mojom",
"page_state.mojom",
"push_messaging.mojom",
"render_frame_message_filter.mojom",
"render_message_filter.mojom",
"render_widget_window_tree_client_factory.mojom",
"renderer.mojom",
"renderer_host.mojom",
"service_worker/controller_service_worker.mojom",
"service_worker/embedded_worker.mojom",
"service_worker/service_worker.mojom",
"service_worker/service_worker_container.mojom",
"service_worker/service_worker_event_dispatcher.mojom",
"service_worker/service_worker_fetch_response_callback.mojom",
"service_worker/service_worker_provider.mojom",
"shared_worker/shared_worker.mojom",
"shared_worker/shared_worker_client.mojom",
"shared_worker/shared_worker_connector.mojom",
"shared_worker/shared_worker_factory.mojom",
"shared_worker/shared_worker_host.mojom",
"shared_worker/shared_worker_info.mojom",
"storage_partition_service.mojom",
"url_loader_factory_bundle.mojom",
"video_capture.mojom",
"widget.mojom",
]
if (is_win) {
sources += [
"dwrite_font_proxy.mojom",
"font_cache_win.mojom",
]
}
import_dirs = [ "//mojo/services" ]
public_deps = [
"//components/leveldb/public/interfaces",
"//content/public/common:interfaces",
"//ipc:mojom_constants",
"//media/capture/mojo:capture_types",
"//media/mojo/interfaces",
"//mojo/common:common_custom_types",
"//services/network/public/interfaces",
"//services/service_manager/public/interfaces",
"//services/ui/public/interfaces",
"//services/video_capture/public/interfaces",
"//services/viz/public/interfaces",
"//skia/public/interfaces",
"//third_party/WebKit/common:mojo_platform_bindings",
"//third_party/WebKit/public:mojo_bindings",
"//ui/base/mojo:mojo_bindings",
"//ui/gfx/geometry/mojo",
"//ui/gfx/mojo",
"//url/mojo:url_mojom_gurl",
"//url/mojo:url_mojom_origin",
]
overridden_deps = [ "//third_party/WebKit/common:mojo_platform_bindings" ]
component_deps = [ "//third_party/WebKit/common:blink_common" ]
component_output_prefix = "content_common_mojo_bindings"
export_class_attribute = "CONTENT_EXPORT"
export_define = "CONTENT_IMPLEMENTATION=1"
export_header = "content/common/content_export.h"
}