| # Copyright 2018 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("//mojo/public/tools/bindings/mojom.gni") |
| import("//third_party/blink/public/public_features.gni") |
| |
| # This target includes all mojom interfaces which can be used from |
| # renderer/platform. In particular these mojom interfaces can't use types that |
| # are typemapped to a type in renderer/core. |
| mojom("mojom_platform") { |
| sources = [ |
| "ad_tagging/ad_frame.mojom", |
| "app_banner/app_banner.mojom", |
| "appcache/appcache.mojom", |
| "appcache/appcache_info.mojom", |
| "array_buffer/array_buffer_contents.mojom", |
| "associated_interfaces/associated_interfaces.mojom", |
| "autoplay/autoplay.mojom", |
| "background_fetch/background_fetch.mojom", |
| "background_sync/background_sync.mojom", |
| "badging/badging.mojom", |
| "blob/blob.mojom", |
| "blob/blob_registry.mojom", |
| "blob/blob_url_store.mojom", |
| "blob/data_element.mojom", |
| "blob/serialized_blob.mojom", |
| "cache_storage/cache_storage.mojom", |
| "choosers/color_chooser.mojom", |
| "choosers/file_chooser.mojom", |
| "clipboard/clipboard.mojom", |
| "contacts/contacts_manager.mojom", |
| "cookie_store/cookie_store.mojom", |
| "crash/crash_memory_metrics_reporter.mojom", |
| "csp/content_security_policy.mojom", |
| "devtools/console_message.mojom", |
| "devtools/devtools_agent.mojom", |
| "dom_storage/session_storage_namespace.mojom", |
| "dom_storage/storage_area.mojom", |
| "dom_storage/storage_partition_service.mojom", |
| "feature_policy/feature_policy.mojom", |
| "fetch/fetch_api_request.mojom", |
| "fetch/fetch_api_response.mojom", |
| "file/file_utilities.mojom", |
| "filesystem/file_system.mojom", |
| "filesystem/file_writer.mojom", |
| "frame/document_interface_broker.mojom", |
| "frame/find_in_page.mojom", |
| "frame/frame_host_test_interface.mojom", |
| "frame/lifecycle.mojom", |
| "frame/navigation_initiator.mojom", |
| "geolocation/geolocation_service.mojom", |
| "hyphenation/hyphenation.mojom", |
| "insecure_input/insecure_input_service.mojom", |
| "keyboard_lock/keyboard_lock.mojom", |
| "leak_detector/leak_detector.mojom", |
| "loader/code_cache.mojom", |
| "loader/navigation_predictor.mojom", |
| "loader/pause_subresource_loading_handle.mojom", |
| "loader/previews_resource_loading_hints.mojom", |
| "loader/url_loader_factory_bundle.mojom", |
| "locks/lock_manager.mojom", |
| "manifest/display_mode.mojom", |
| "manifest/manifest.mojom", |
| "manifest/manifest_manager.mojom", |
| "mediastream/media_devices.mojom", |
| "mediastream/media_stream.mojom", |
| "mime/mime_registry.mojom", |
| "net/ip_address_space.mojom", |
| "notifications/notification.mojom", |
| "oom_intervention/oom_intervention.mojom", |
| "page/display_cutout.mojom", |
| "payments/payment_app.mojom", |
| "permissions/permission.mojom", |
| "permissions/permission_status.mojom", |
| "picture_in_picture/picture_in_picture.mojom", |
| "plugins/plugin_registry.mojom", |
| "presentation/presentation.mojom", |
| "quota/quota_dispatcher_host.mojom", |
| "quota/quota_types.mojom", |
| "referrer.mojom", |
| "renderer_preference_watcher.mojom", |
| "renderer_preferences.mojom", |
| "reporting/reporting.mojom", |
| "script/script_type.mojom", |
| "serial/serial.mojom", |
| "service_worker/dispatch_fetch_event_params.mojom", |
| "service_worker/navigation_preload_state.mojom", |
| "service_worker/service_worker_client.mojom", |
| "service_worker/service_worker_error_type.mojom", |
| "service_worker/service_worker_event_status.mojom", |
| "service_worker/service_worker_fetch_response_callback.mojom", |
| "service_worker/service_worker_installed_scripts_manager.mojom", |
| "service_worker/service_worker_provider_type.mojom", |
| "service_worker/service_worker_state.mojom", |
| "service_worker/service_worker_stream_handle.mojom", |
| "site_engagement/site_engagement.mojom", |
| "speech/speech_recognition_error.mojom", |
| "speech/speech_recognition_grammar.mojom", |
| "speech/speech_recognition_result.mojom", |
| "speech/speech_recognizer.mojom", |
| "ukm/ukm.mojom", |
| "use_counter/css_property_id.mojom", |
| "user_agent/user_agent_metadata.mojom", |
| "v8_cache_options.mojom", |
| "wake_lock/wake_lock.mojom", |
| "webaudio/audio_context_manager.mojom", |
| "worker/shared_worker.mojom", |
| "worker/shared_worker_client.mojom", |
| "worker/shared_worker_connector.mojom", |
| "worker/shared_worker_creation_context_type.mojom", |
| "worker/shared_worker_host.mojom", |
| "worker/shared_worker_info.mojom", |
| "worker/worker_content_settings_proxy.mojom", |
| "worker/worker_main_script_load_params.mojom", |
| ] |
| |
| if (is_win) { |
| sources += [ "dwrite_font_proxy/dwrite_font_proxy.mojom" ] |
| } |
| |
| public_deps = [ |
| ":android_mojo_bindings", |
| ":mojom_mhtml_load_result", |
| ":speech_recognition_error_code", |
| ":web_client_hints_types_mojo_bindings", |
| ":web_feature_mojo_bindings", |
| "//components/payments/mojom", |
| "//components/services/filesystem/public/interfaces", |
| "//mojo/public/mojom/base", |
| "//services/device/public/mojom", |
| "//services/network/public/mojom", |
| "//services/service_manager/public/mojom", |
| "//services/viz/public/interfaces", |
| "//skia/public/interfaces", |
| "//third_party/blink/public/mojom/usb", |
| "//ui/gfx/geometry/mojo", |
| "//ui/gfx/mojo", |
| "//url/mojom:url_mojom_gurl", |
| "//url/mojom:url_mojom_origin", |
| ] |
| |
| # iOS doesn't use and must not depend on //media |
| if (!is_ios) { |
| public_deps += [ |
| "//media/capture/mojom:video_capture", |
| "//media/mojo/interfaces", |
| ] |
| } |
| |
| if (is_linux || is_chromeos) { |
| enabled_features = [ "renderer_pref_system_font_family_name" ] |
| } |
| |
| export_class_attribute = "BLINK_COMMON_EXPORT" |
| export_define = "BLINK_COMMON_IMPLEMENTATION=1" |
| export_header = "third_party/blink/public/common/common_export.h" |
| |
| export_class_attribute_blink = "PLATFORM_EXPORT" |
| export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" |
| export_header_blink = "third_party/blink/renderer/platform/platform_export.h" |
| } |
| |
| # Kept separate from "mojom_platform" because the Java bindings are specifically |
| # needed by Android's implementation of payments and webshare |
| # (in components/payments/content/android and chrome/android/) |
| # and input (in android_webview/ and content/browser/android/). |
| mojom("android_mojo_bindings") { |
| sources = [ |
| "input/input_host.mojom", |
| "input/input_messages.mojom", |
| "payments/payment_request.mojom", |
| "webshare/webshare.mojom", |
| ] |
| public_deps = [ |
| "//components/payments/mojom", |
| "//url/mojom:url_mojom_gurl", |
| "//url/mojom:url_mojom_origin", |
| ] |
| |
| # This Android unhandled-tap feature uses another mojo source, add it in. |
| if (enable_unhandled_tap) { |
| sources += [ "unhandled_tap_notifier/unhandled_tap_notifier.mojom" ] |
| public_deps += [ "//ui/gfx/geometry/mojo" ] |
| } |
| |
| export_class_attribute = "BLINK_COMMON_EXPORT" |
| export_define = "BLINK_COMMON_IMPLEMENTATION=1" |
| export_header = "third_party/blink/public/common/common_export.h" |
| |
| export_class_attribute_blink = "PLATFORM_EXPORT" |
| export_define_blink = "BLINK_PLATFORM_IMPLEMENTATION=1" |
| export_header_blink = "third_party/blink/renderer/platform/platform_export.h" |
| } |
| |
| # Kept separate from "mojom_platform" because the Java bindings are needed by |
| # Android's implementation of speech recognition. |
| mojom_component("speech_recognition_error_code") { |
| sources = [ |
| "speech/speech_recognition_error_code.mojom", |
| ] |
| |
| macro_prefix = "SPEECH_RECOGNITION_ERROR_CODE_MOJOM" |
| output_prefix = "speech_recognition_error_code_mojom" |
| } |
| |
| # This target can include mojom interfaces which do use types that are |
| # typemapped to a type in renderer/core. This also means these interfaces are |
| # not available from renderer/platform. |
| # |
| # In future we may have a separate mojom target for the things that may have |
| # modules dependencies if it looks necessary, at that time we can put all of |
| # those high-level service worker mojom files there. |
| mojom("mojom_core") { |
| sources = [ |
| "messaging/cloneable_message.mojom", |
| "messaging/transferable_message.mojom", |
| "messaging/user_activation_snapshot.mojom", |
| "portal/portal.mojom", |
| |
| # Note that service_worker_object.mojom and service_worker.mojom depend on |
| # transferable_message.mojom, and controller_service_worker.mojom and |
| # service_worker_registration.mojom depend on service_worker_object.mojom, |
| # so we put these service worker mojom files here rather than mojom_platform |
| # target. |
| "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_object.mojom", |
| "service_worker/service_worker_provider.mojom", |
| "service_worker/service_worker_registration.mojom", |
| |
| # Depends on controller_service_worker.mojom. |
| "worker/dedicated_worker_host_factory.mojom", |
| "worker/shared_worker_factory.mojom", |
| ] |
| |
| public_deps = [ |
| ":mojom_platform", |
| ":web_feature_mojo_bindings", |
| "//components/payments/mojom", |
| "//mojo/public/mojom/base", |
| "//services/network/public/mojom", |
| "//services/service_manager/public/mojom", |
| "//skia/public/interfaces", |
| "//url/mojom:url_mojom_gurl", |
| "//url/mojom:url_mojom_origin", |
| ] |
| |
| overridden_deps_blink = [ |
| ":mojom_platform", |
| "//services/network/public/mojom", |
| ] |
| component_deps_blink = [ "//third_party/blink/renderer/platform" ] |
| |
| export_class_attribute = "BLINK_COMMON_EXPORT" |
| export_define = "BLINK_COMMON_IMPLEMENTATION=1" |
| export_header = "third_party/blink/public/common/common_export.h" |
| |
| export_class_attribute_blink = "CORE_EXPORT" |
| export_define_blink = "BLINK_CORE_IMPLEMENTATION=1" |
| export_header_blink = "third_party/blink/renderer/core/core_export.h" |
| } |
| |
| # This target can include mojom interfaces which use types that are typemapped |
| # to a type in renderer/modules. This also means these interfaces are not |
| # available from renderer/platform or renderer/core. |
| mojom("mojom_modules") { |
| sources = [ |
| "indexeddb/indexeddb.mojom", |
| ] |
| |
| public_deps = [ |
| ":mojom_core", |
| |
| # TODO(https://crbug.com/822804): Remove when mojom bindings deps checks |
| # get fixed. |
| ":mojom_platform", |
| "//mojo/public/mojom/base", |
| "//skia/public/interfaces", |
| "//url/mojom:url_mojom_gurl", |
| "//url/mojom:url_mojom_origin", |
| ] |
| |
| overridden_deps_blink = [ |
| ":mojom_core", |
| ":mojom_platform", |
| ] |
| component_deps_blink = [ "//third_party/blink/renderer/core" ] |
| |
| export_class_attribute = "BLINK_COMMON_EXPORT" |
| export_define = "BLINK_COMMON_IMPLEMENTATION=1" |
| export_header = "third_party/blink/public/common/common_export.h" |
| |
| export_class_attribute_blink = "MODULES_EXPORT" |
| export_define_blink = "BLINK_MODULES_IMPLEMENTATION=1" |
| export_header_blink = "third_party/blink/renderer/modules/modules_export.h" |
| } |
| |
| mojom("mojom_mhtml_load_result") { |
| sources = [ |
| "loader/mhtml_load_result.mojom", |
| ] |
| |
| export_class_attribute = "BLINK_COMMON_EXPORT" |
| export_define = "BLINK_COMMON_IMPLEMENTATION=1" |
| export_header = "third_party/blink/public/common/common_export.h" |
| } |
| |
| # 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_component("web_feature_mojo_bindings") { |
| sources = [ |
| "web_feature/web_feature.mojom", |
| ] |
| |
| macro_prefix = "WEB_FEATURE_MOJO_BINDINGS_MOJOM" |
| output_prefix = "web_feature_mojo_bindings_mojom" |
| } |
| |
| # The web_client_hints_types_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 = [ |
| "web_client_hints/web_client_hints_types.mojom", |
| ] |
| } |