# Copyright 2020 The Chromium Authors
# 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("//printing/buildflags/buildflags.gni")
mojom("mojom") {
sources = [
"account_manager.mojom",
"app_service.mojom",
"app_service_types.mojom",
"app_window_tracker.mojom",
"arc.mojom",
"audio_service.mojom",
"authentication.mojom",
"automation.mojom",
"bitmap.mojom",
"browser_app_instance_registry.mojom",
"browser_service.mojom",
"browser_version.mojom",
"cec_private.mojom",
"cert_database.mojom",
"cert_provisioning.mojom",
"chaps_service.mojom",
"chrome_app_kiosk_service.mojom",
"clipboard.mojom",
"clipboard_history.mojom",
"content_protection.mojom",
"cros_display_config.mojom",
"crosapi.mojom",
"debug_interface.mojom",
"desk.mojom",
"desk_profiles.mojom",
"desk_template.mojom",
"device_attributes.mojom",
"device_local_account_extension_service.mojom",
"device_oauth2_token_service.mojom",
"device_settings_service.mojom",
"diagnostics_service.mojom",
"digital_goods.mojom",
"dlp.mojom",
"document_scan.mojom",
"download_controller.mojom",
"download_status_updater.mojom",
"drive_integration_service.mojom",
"echo_private.mojom",
"editor_panel.mojom",
"embedded_accessibility_helper.mojom",
"emoji_picker.mojom",
"extension_info_private.mojom",
"extension_keeplist.mojom",
"extension_printer.mojom",
"eye_dropper.mojom",
"feedback.mojom",
"field_trial.mojom",
"file_change_service_bridge.mojom",
"file_manager.mojom",
"file_system_access_cloud_identifier.mojom",
"file_system_provider.mojom",
"firewall_hole.mojom",
"force_installed_tracker.mojom",
"full_restore.mojom",
"fullscreen_controller.mojom",
"geolocation.mojom",
"guest_os_sk_forwarder.mojom",
"holding_space_service.mojom",
"identity_manager.mojom",
"idle_service.mojom",
"image_writer.mojom",
"input_methods.mojom",
"kerberos_in_browser.mojom",
"keystore_error.mojom",
"keystore_service.mojom",
"kiosk_session_service.mojom",
"lacros_shelf_item_tracker.mojom",
"launcher_search.mojom",
"local_printer.mojom",
"login.mojom",
"login_screen_storage.mojom",
"login_state.mojom",
"magic_boost.mojom",
"mahi.mojom",
"media_app.mojom",
"media_ui.mojom",
"message_center.mojom",
"metrics.mojom",
"metrics_reporting.mojom",
"multi_capture_service.mojom",
"native_theme.mojom",
"network_change.mojom",
"network_settings_service.mojom",
"networking_attributes.mojom",
"networking_private.mojom",
"nonclosable_app_toast_service.mojom",
"notification.mojom",
"nullable_primitives.mojom",
"one_drive_integration_service.mojom",
"one_drive_notification_service.mojom",
"parent_access.mojom",
"passkeys.mojom",
"policy_namespace.mojom",
"policy_service.mojom",
"power.mojom",
"prefs.mojom",
"print_preview_cros.mojom",
"printing_metrics.mojom",
"probe_service.mojom",
"remoting.mojom",
"resource_manager.mojom",
"screen_ai_downloader.mojom",
"screen_manager.mojom",
"select_file.mojom",
"sharesheet.mojom",
"smart_reader.mojom",
"speech_recognition.mojom",
"suggestion_service.mojom",
"sync.mojom",
"synced_session_client.mojom",
"system_display.mojom",
"task_manager.mojom",
"telemetry_diagnostic_routine_service.mojom",
"telemetry_event_service.mojom",
"telemetry_extension_exception.mojom",
"telemetry_keyboard_event.mojom",
"telemetry_management_service.mojom",
"test_controller.mojom",
"timezone.mojom",
"trusted_vault.mojom",
"tts.mojom",
"ui_constants.mojom",
"url_handler.mojom",
"video_conference.mojom",
"virtual_keyboard.mojom",
"volume_manager.mojom",
"vpn_extension_observer.mojom",
"vpn_service.mojom",
"wallpaper.mojom",
"web_app_service.mojom",
"web_app_types.mojom",
"web_kiosk_service.mojom",
"web_page_info.mojom",
]
disable_variants = true
enable_js_fuzzing = false
cpp_only = true
public_deps = [
":structured_metrics_service",
":video_capture",
"//chromeos/components/drivefs/mojom",
"//chromeos/components/in_session_auth/mojom",
"//chromeos/components/payments/mojom",
"//chromeos/components/remote_apps/mojom",
"//chromeos/components/sensors/mojom",
"//chromeos/services/chromebox_for_meetings/public/mojom",
"//chromeos/services/machine_learning/public/mojom",
"//chromeos/services/network_health/public/mojom:types",
"//components/digital_goods/mojom:mojom",
"//components/global_media_controls/public/mojom:device_service",
"//components/printing/common:mojo_interfaces",
"//components/tab_groups/public/mojom:mojo_bindings",
"//media/mojo/mojom:speech_recognition",
"//mojo/public/mojom/base",
"//printing/backend/mojom",
"//printing/mojom",
"//remoting/host/mojom:mojom",
"//services/device/public/mojom:mojom",
"//services/media_session/public/mojom:mojom",
"//ui/accessibility:ax_enums_mojo",
"//ui/accessibility/mojom",
"//ui/base/mojom",
"//ui/color:mojom",
"//ui/display/mojom:mojom",
"//ui/events/mojom:mojom",
"//ui/gfx/geometry/mojom",
"//ui/gfx/image/mojom",
"//ui/gfx/mojom",
"//url/mojom:url_mojom_gurl",
]
cpp_typemaps = [
{
types = [
{
mojom = "crosapi.mojom.App"
cpp = "::apps::AppPtr"
move_only = true
nullable_is_same_type = true
},
{
mojom = "crosapi.mojom.PolicyDomain"
cpp = "::policy::PolicyDomain"
move_only = true
nullable_is_same_type = true
},
{
mojom = "crosapi.mojom.PolicyNamespace"
cpp = "::policy::PolicyNamespace"
move_only = true
nullable_is_same_type = true
},
{
mojom = "crosapi.mojom.UninstallSource"
cpp = "::apps::UninstallSource"
},
{
mojom = "crosapi.mojom.CapabilityAccess"
cpp = "::apps::CapabilityAccessPtr"
move_only = true
},
{
mojom = "crosapi.mojom.IconType"
cpp = "::apps::IconType"
},
{
mojom = "crosapi.mojom.IconValue"
cpp = "::apps::IconValuePtr"
move_only = true
},
{
mojom = "crosapi.mojom.IconKey"
cpp = "::apps::IconKeyPtr"
move_only = true
},
{
mojom = "crosapi.mojom.WindowMode"
cpp = "::apps::WindowMode"
},
{
mojom = "crosapi.mojom.AppType"
cpp = "::apps::AppType"
},
{
mojom = "crosapi.mojom.LaunchSource"
cpp = "::apps::LaunchSource"
},
{
mojom = "crosapi.mojom.SharesheetLaunchSource"
cpp = "::sharesheet::LaunchSource"
},
{
mojom = "crosapi.mojom.SharesheetResult"
cpp = "::sharesheet::SharesheetResult"
},
{
mojom = "crosapi.mojom.BrowserWindowInstanceUpdate"
cpp = "::apps::BrowserWindowInstanceUpdate"
move_only = true
},
{
mojom = "crosapi.mojom.BrowserAppInstanceUpdate"
cpp = "::apps::BrowserAppInstanceUpdate"
move_only = true
},
{
mojom = "crosapi.mojom.BrowserAppInstanceType"
cpp = "::apps::BrowserAppInstanceUpdate::Type"
},
{
mojom = "crosapi.mojom.Permission"
cpp = "::apps::PermissionPtr"
move_only = true
},
{
mojom = "crosapi.mojom.PreferredApp"
cpp = "::apps::PreferredAppPtr"
move_only = true
},
{
mojom = "crosapi.mojom.PreferredAppChanges"
cpp = "::apps::PreferredAppChangesPtr"
move_only = true
},
{
mojom = "crosapi.mojom.WebAppInstallResultCode"
cpp = "::webapps::InstallResultCode"
},
{
mojom = "crosapi.mojom.WebAppUninstallResultCode"
cpp = "::webapps::UninstallResultCode"
},
{
mojom = "crosapi.mojom.CertInfo"
cpp = "::chromeos::certificate_provider::CertificateInfo"
},
{
mojom = "crosapi.mojom.GUID"
cpp = "::base::Uuid"
},
{
mojom = "crosapi.mojom.TabGroup"
cpp = "::tab_groups::TabGroupInfo"
},
{
mojom = "crosapi.mojom.ResourceScaleFactor"
cpp = "::ui::ResourceScaleFactor"
},
{
mojom = "crosapi.mojom.AppShortcut"
cpp = "::apps::ShortcutPtr"
move_only = true
nullable_is_same_type = true
},
{
mojom = "crosapi.mojom.PackageId"
cpp = "::apps::PackageId"
},
]
traits_headers = [
"//chromeos/crosapi/mojom/app_service_types_mojom_traits.h",
"//chromeos/crosapi/mojom/browser_app_instance_registry_mojom_traits.h",
"//chromeos/crosapi/mojom/cert_database_mojom_traits.h",
"//chromeos/crosapi/mojom/desk_mojom_traits.h",
"//chromeos/crosapi/mojom/desk_template_mojom_traits.h",
"//chromeos/crosapi/mojom/policy_domain_mojom_traits.h",
"//chromeos/crosapi/mojom/policy_namespace_mojom_traits.h",
"//chromeos/crosapi/mojom/sharesheet_mojom_traits.h",
"//chromeos/crosapi/mojom/ui_constants_mojom_traits.h",
"//chromeos/crosapi/mojom/web_app_types_mojom_traits.h",
"//components/services/app_service/public/cpp/app_launch_util.h",
"//components/services/app_service/public/cpp/app_types.h",
"//components/services/app_service/public/cpp/shortcut/shortcut.h",
"//components/services/app_service/public/cpp/capability_access.h",
"//components/services/app_service/public/cpp/icon_types.h",
"//components/services/app_service/public/cpp/package_id.h",
"//components/services/app_service/public/cpp/permission.h",
"//components/services/app_service/public/cpp/preferred_app.h",
]
traits_sources = [
"//chromeos/crosapi/mojom/app_service_types_mojom_traits.cc",
"//chromeos/crosapi/mojom/browser_app_instance_registry_mojom_traits.cc",
"//chromeos/crosapi/mojom/cert_database_mojom_traits.cc",
"//chromeos/crosapi/mojom/desk_mojom_traits.cc",
"//chromeos/crosapi/mojom/desk_template_mojom_traits.cc",
"//chromeos/crosapi/mojom/policy_domain_mojom_traits.cc",
"//chromeos/crosapi/mojom/policy_namespace_mojom_traits.cc",
"//chromeos/crosapi/mojom/sharesheet_mojom_traits.cc",
"//chromeos/crosapi/mojom/ui_constants_mojom_traits.cc",
"//chromeos/crosapi/mojom/web_app_types_mojom_traits.cc",
]
traits_public_deps = [
"//base",
"//chromeos/components/certificate_provider:certificate_provider",
"//components/policy/core/common:policy_namespace",
"//components/services/app_service/public/cpp:app_types",
"//components/services/app_service/public/cpp/shortcut",
"//components/tab_groups",
"//components/webapps/browser:constants",
"//ui/base:ui_data_pack",
"//ui/gfx/range",
]
},
]
}
# This needs a separate target, because this is also used
# by the Video Capture Service in Ash and blink bindings
# are needed.
mojom("video_capture") {
sources = [ "video_capture.mojom" ]
public_deps = [
"//media/capture/mojom:image_capture",
"//media/capture/mojom:video_capture_types",
"//mojo/public/mojom/base",
"//ui/gfx/geometry/mojom",
"//ui/gfx/mojom",
]
}
# This needs a separate target, because this is also used
# by the ChromeOS Camera App in Ash and blink bindings
# are needed.
mojom("structured_metrics_service") {
sources = [ "structured_metrics_service.mojom" ]
public_deps = [
"//components/metrics/structured/mojom",
"//mojo/public/mojom/base",
]
webui_module_path = "/"
}
source_set("unit_tests") {
testonly = true
sources = [
"app_service_types_mojom_traits_unittest.cc",
"sharesheet_mojom_traits_unittest.cc",
]
deps = [
":mojom",
"//base/test:test_support",
"//components/services/app_service",
"//mojo/public/cpp/test_support:test_utils",
"//testing/gtest",
"//ui/gfx:test_support",
]
}