| # 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" |
| } |