// 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.

// The type schemas for structured manifest items. Not actually a callable API.

[
  {
    "namespace": "extensionsManifestTypes",
    "description": "Schemas for structured manifest entries",
    "compiler_options": { "generate_error_messages": true },
    "types": [
      {
        "id": "ContentCapabilities",
        "type": "object",
        "description": "The <code>content_capabilities</code> manifest entry allows an extension to grant certain additional capabilities to web contents whose locations match a given set of URL patterns.",
        "properties": {
          "matches": {
            "description": "The set of URL patterns to match against. If any of the given patterns match a URL, its contents will be granted the specified capabilities.",
            "type": "array",
            "items": { "type": "string" }
          },
          "permissions": {
            "description": "The set of capabilities to grant matched contents. This is currently limited to <code>clipboardRead</code>, <code>clipboardWrite</code>, and <code>unlimitedStorage</code>.",
            "type": "array",
            "items": { "type": "string" }
          }
        }
      },
      {
        "id": "ExternallyConnectable",
        "type": "object",
        // Note: description commented out because externally_connectable.html
        // already describes it, and the repetition looks odd.
        // "description": "The <code>externally_connectable</code> manifest property declares which extensions, apps, and web pages can connect to your extension via $(ref:runtime.connect) and $(ref:runtime.sendMessage).",
        "properties": {
          "ids": {
            "description": "<p>The IDs of extensions or apps that are allowed to connect. If left empty or unspecified, no extensions or apps can connect.</p><p>The wildcard <code>\"*\"</code> will allow all extensions and apps to connect.</p>",
            "optional": true,
            "type": "array",
            "items": {"type": "string"}
          },
          "matches": {
            "description": "<p>The URL patterns for <em>web pages</em> that are allowed to connect. <em>This does not affect content scripts.</em> If left empty or unspecified, no web pages can connect.</p><p>Patterns cannot include wildcard domains nor subdomains of <a href=\"http://publicsuffix.org/list/\">(effective) top level domains</a>; <code>*://google.com/*</code> and <code>http://*.chromium.org/*</code> are valid, while <code>&lt;all_urls&gt;</code>, <code>http://*/*</code>, <code>*://*.com/*</code>, and even <code>http://*.appspot.com/*</code> are not.</p>",
            "optional": true,
            "type": "array",
            "items": {"type": "string"}
          },
          "accepts_tls_channel_id": {
            "description": "If <code>true</code>, messages sent via $(ref:runtime.connect) or $(ref:runtime.sendMessage) will set $(ref:runtime.MessageSender.tlsChannelId) if those methods request it to be. If <code>false</code>, $(ref:runtime.MessageSender.tlsChannelId) will never be set under any circumstance.",
            "optional": true,
            "type": "boolean"
          }
        }
      },
      {
        "id": "OptionsUI",
        "type": "object",
        "description": "The <code>options_ui</code> manifest property declares how the options page should be displayed.",
        "properties": {
          "page": {
            "description": "The path to your options page, relative to your extension's root.",
            "type": "string"
          },
          "chrome_style": {
            "description": "If <code>true</code>, a Chrome user agent stylesheet will be applied to your options page. The default value is <code>false</code>, but we recommend you enable it for a consistent UI with Chrome.",
            "optional": true,
            "type": "boolean"
          },
          "open_in_tab": {
            "description": "<p>If <code>true</code>, your extension's options page will be opened in a new tab rather than embedded in <em>chrome://extensions</em>. The default is <code>false</code>, and we recommend that you don't change it.</p><p><strong>This is only useful to delay the inevitable deprecation of the old options UI!</strong> It will be removed soon, so try not to use it. It will break.</p>",
            "optional": true,
            "type": "boolean"
          }
        }
      },
      {
        "id": "SocketHostPatterns",
        "description": "<p>A single string or a list of strings representing host:port patterns.</p>",
        "choices": [
          { "type": "string" },
          { "type": "array", "items": { "type": "string" } }
        ]
      },
      {
        "id": "sockets",
        "type": "object",
        "description": "The <code>sockets</code> manifest property declares which sockets operations an app can issue.",
        "properties": {
          "udp": {
            "description": "The <code>udp</code> manifest property declares which sockets.udp operations an app can issue.",
            "optional": true,
            "type": "object",
            "properties": {
              "bind": {
                "description": "<p>The host:port pattern for <code>bind</code> operations.</p>",
                "optional": true,
                "$ref": "SocketHostPatterns"
              },
              "send": {
                "description": "<p>The host:port pattern for <code>send</code> operations.</p>",
                "optional": true,
                "$ref": "SocketHostPatterns"
              },
              "multicastMembership": {
                "description": "<p>The host:port pattern for <code>joinGroup</code> operations.</p>",
                "optional": true,
                "$ref": "SocketHostPatterns"
              }
            }
          },
          "tcp": {
            "description": "The <code>tcp</code> manifest property declares which sockets.tcp operations an app can issue.",
            "optional": true,
            "type": "object",
            "properties": {
              "connect": {
                "description": "<p>The host:port pattern for <code>connect</code> operations.</p>",
                "optional": true,
                "$ref": "SocketHostPatterns"
              }
            }
          },
          "tcpServer": {
            "description": "The <code>tcpServer</code> manifest property declares which sockets.tcpServer operations an app can issue.",
            "optional": true,
            "type": "object",
            "properties": {
              "listen": {
                "description": "<p>The host:port pattern for <code>listen</code> operations.</p>",
                "optional": true,
                "$ref": "SocketHostPatterns"
              }
            }
          }
        }
      },
      {
        "id": "bluetooth",
        "type": "object",
        "description": "The <code>bluetooth</code> manifest property give permission to an app to use the $(ref:bluetooth) API. A list of UUIDs can be optionally specified to enable communication with devices.",
        "properties": {
          "uuids": {
            "description": "The <code>uuids</code> manifest property declares the list of protocols, profiles and services that an app can communicate using.",
            "optional": true,
            "type": "array",
            "items": {
              "description": "<p>The list specified as UUID strings.</p>",
              "type": "string"
            }
          },
          "socket": {
            "type": "boolean",
            "description": "If <code>true</code>, gives permission to an app to use the $(ref:bluetoothSocket) API",
            "optional": true
          },
          "low_energy": {
            "type": "boolean",
            "description": "If <code>true</code>, gives permission to an app to use the $(ref:bluetoothLowEnergy) API",
            "optional": true
          },
          "peripheral": {
            "type": "boolean",
            "description": "If <code>true</code>, gives permission to an app to use the advertisement functions in the $(ref:bluetoothLowEnergy) API",
            "optional": true
          }
        }
      },
      {
        "id": "UsbPrinters",
        "type": "object",
        "description": "The <code>usb_printers</code> manifest property lists the USB printers supported by an app implementing the $(ref:printerProvider) API.",
        "properties": {
          "filters": {
            "description": "A list of $(ref:usb.DeviceFilter USB device filters) matching supported devices. A device only needs to match one of the provided filters. A <code>vendorId</code> is required and only one of <code>productId</code> or <code>interfaceClass</code> may be provided.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "vendorId": {
                  "description": "USB vendor ID of matching devices",
                  "type": "integer"
                },
                "productId": {
                  "description": "USB product ID of matching devices",
                  "type": "integer",
                  "optional": true
                },
                "interfaceClass": {
                  "description": "USB interface class implemented by any interface of a matching device.",
                  "type": "integer",
                  "optional": true
                },
                "interfaceSubclass": {
                  "description": "USB interface sub-class implemented by the interface matching $(ref:interfaceClass).",
                  "type": "integer",
                  "optional": true
                },
                "interfaceProtocol": {
                  "description": "USB interface protocol implemented by the interface matching $(ref:interfaceClass) and $(ref:interfaceSubclass).",
                  "type": "integer",
                  "optional": true
                }
              }
            }
          }
        }
      },
      {
        "id": "KioskSecondaryApps",
        "type": "array",
        "description": "The <code>kiosk_secondary_apps</code> manifest property lists the secondary kiosk apps to be deployed by the primary kiosk app.",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "description": "ID of secondary kiosk app",
              "type": "string"
            }
          }
        }
      }      
    ]
  }
]
