{
  "name": "content_browser",
  "display_name": "Content (browser process)",
  "interface_provider_specs": {
    "service_manager:connector": {
      "provides": {
        // Interfaces needed by a generic client of content browser.
        "app": [
          "discardable_memory::mojom::DiscardableSharedMemoryManager",
          "memory_instrumentation::mojom::Coordinator"
        ],
        "gpu": [
          "content::mojom::FieldTrialRecorder",
          "media::mojom::AndroidOverlayProvider"
        ],
        "plugin": [
          "discardable_memory::mojom::DiscardableSharedMemoryManager",
          "ui::mojom::Gpu"
        ],
        "renderer": [
          "blink::mojom::BackgroundFetchService",
          "blink::mojom::BackgroundSyncService",
          "blink::mojom::BroadcastChannelProvider",
          "blink::mojom::Hyphenation",
          "blink::mojom::MimeRegistry",
          "blink::mojom::NotificationService",
          "blink::mojom::OffscreenCanvasProvider",
          "blink::mojom::PermissionService",
          "blink::mojom::WebSocket",
          "content::mojom::FieldTrialRecorder",
          "content::mojom::FrameSinkProvider",
          "content::mojom::MediaStreamDispatcherHost",
          "content::mojom::MemoryCoordinatorHandle",
          "content::mojom::PushMessaging",
          "content::mojom::RendererHost",
          "content::mojom::ServiceWorkerDispatcherHost",
          "content::mojom::StoragePartitionService",
          "content::mojom::URLLoaderFactory",
          "content::mojom::VideoCaptureHost",
          "content::mojom::WorkerURLLoaderFactoryProvider",
          "device::mojom::GamepadMonitor",
          "discardable_memory::mojom::DiscardableSharedMemoryManager",
          "memory_coordinator::mojom::MemoryCoordinatorHandle",
          "metrics::mojom::SingleSampleMetricsProvider",
          "payments::mojom::PaymentManager",
          "shape_detection::mojom::BarcodeDetection",
          "shape_detection::mojom::FaceDetectionProvider",
          "resource_coordinator::mojom::CoordinationUnit",
          "shape_detection::mojom::TextDetection",
          "storage::mojom::BlobRegistry",
          "ui::mojom::Gpu",
          "viz::mojom::SharedBitmapAllocationNotifier"
        ],
        "geolocation_config": [
          "device::mojom::GeolocationConfig"
        ],
        "service_manager:service_factory": [
          "service_manager::mojom::ServiceFactory"
        ]
      },
      "requires": {
        "*": [ "app" ],
        "cdm": [ "media:cdm" ],
        // In classic ash, the browser supplies ash interfaces to itself.
        "content_browser": [
          "ash",
          "display",
          "url_keyed_metrics",
          "geolocation_config"
        ],
        "content_gpu": [ "browser" ],
        "content_plugin": [ "browser" ],
        "content_renderer": [ "browser" ],
        "content_utility": [ "browser" ],
        "data_decoder": [ "image_decoder" ],
        "device": [
          "device:generic_sensor",
          "device:nfc",
          "device:serial",
          "device:vibration",
          "device:wake_lock"
        ],
        "file": [ "file:filesystem", "file:leveldb" ],
        "media": [ "media:media" ],
        "network": [
          "network_service",
          "test",
          "url_loader"
        ],
        "ui": [ "display_output_protection" ],
        "service_manager": [
          "service_manager:client_process",
          "service_manager:instance_name",
          "service_manager:service_manager",
          "service_manager:user_id"
        ],
        "shape_detection": [
          "barcode_detection",
          "face_detection",
          "text_detection"
        ],
        "resource_coordinator": [
          "coordination_unit",
          "coordination_unit_introspector",
          "service_callbacks",
          "tab_signal"
        ],
        "video_capture": [ "capture", "tests" ]
      }
    },
    "navigation:frame": {
      "provides": {
        "renderer": [
          // TODO(beng): these belong in //chrome's overlay, but there are some
          // issues with mash browser_tests's manifest config that make this
          // impossible this week. Remove once sky/ken fix this.
          "autofill::mojom::AutofillDriver",
          "autofill::mojom::PasswordManagerDriver",
          "blink::mojom::InsecureInputService",
          "blink::mojom::KeyboardLockService",
          "blink::mojom::MediaSessionService",
          "blink::mojom::PermissionService",
          "blink::mojom::PresentationService",
          "blink::mojom::TextSuggestionHost",
          "blink::mojom::WebBluetoothService",
          "blink::mojom::WebSocket",

          // TODO(beng): figure out how to overlay test interfaces like this.
          "content::mojom::BrowserTarget",

          // InputInjector is only exposed when gpu benchmarking is enabled.
          "content::mojom::InputInjector",

          "content::mojom::RendererAudioOutputStreamFactory",
          "device::mojom::Geolocation",
          "device::mojom::GeolocationService",
          "device::mojom::NFC",
          "device::mojom::SensorProvider",
          "device::mojom::VibrationManager",
          "device::mojom::VRService",
          "device::mojom::WakeLock",
          "device::mojom::VRService",
          "device::usb::DeviceManager",
          "discardable_memory::mojom::DiscardableSharedMemoryManager",
          "media::mojom::ImageCapture",
          "media::mojom::InterfaceFactory",
          "media::mojom::RemoterFactory",
          "media::mojom::Renderer",
          "media::mojom::VideoDecodeStatsRecorder",
          "media::mojom::WatchTimeRecorderProvider",
          "mojom::MediaDevicesDispatcherHost",
          "payments::mojom::PaymentManager",
          "payments::mojom::PaymentRequest",
          "resource_coordinator::mojom::CoordinationUnit",
          "shape_detection::mojom::BarcodeDetection",
          "shape_detection::mojom::FaceDetectionProvider",
          "shape_detection::mojom::TextDetection",
          "ui::mojom::Gpu",
          "webauth::mojom::Authenticator"
        ]
      },
      "requires": {
        "content_renderer": [ "browser" ]
      }
    }
  }
}
