// Primordial service for the browser process. This is a singleton service which
// acts as a runtime ServiceFactory for other packaged global services exposed
// at or below the content layer.
//
// Note that this is only for packaging services which do not require user
// profile context. Services which require user profile context must instead be
// packaged within the content_browser service.
{
  "name": "content_packaged_services",
  "display_name": "Content Packaged Services",
  "options" : {
    "instance_sharing" : "singleton",
    "can_connect_to_other_services_as_any_user": true,
    "can_create_other_service_instances": true
  },
  "interface_provider_specs": {
    "service_manager:connector": {
      "provides": {
        "service_manager:service_factory": [
          "service_manager.mojom.ServiceFactory"
        ]
      },
      "requires": {
        "*": [ "app" ],
        "content_browser": []
      }
    }
  }
}
