// 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": "automation",
        "description": "This API provides programmatic access to the user interface elements of Chrome. This includes everything in the web view, and optionally Chrome's full user interface.",
        "choices": [
          { "type": "boolean",
            "description": "If true, enables non-interactive access to the automation tree only for the sites for which the extension has a <a href='https://developer.chrome.com/extensions/declare_permissions#host-permissions'>host permission</a> or <a href='https://developer.chrome.com/extensions/declare_permissions#activeTab'>activeTab permission</a>)." },
          { "type": "object",
            "properties": {
              "desktop": {
                "description": "Whether to request permission to the whole ChromeOS desktop. If granted, this gives the extension access to every aspect of the desktop, and every site and app. If this permission is requested, all other permissions are implicitly included and do not need to be requested separately.",
                "optional": true,
                "type": "boolean"
              },
              "matches": {
                "description": "A list of URL patterns for which this extension may request an automation tree. If not specified, automation permission will be granted for the sites for which the extension has a <a href='https://developer.chrome.com/extensions/declare_permissions#host-permissions'>host permission</a> or <a href='https://developer.chrome.com/extensions/declare_permissions#activeTab'>activeTab permission</a>).",
                "optional": true,
                "type": "array",
                "items": { "type": "string" }
              },
              "interact": {
                "description": "Whether the extension is allowed interactive access (true) or read-only access (false; default) to the automation tree.",
                "optional": true,
                "type": "boolean"
              }
            }
          }
        ]
      },
      {
        "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"
            },
            "enabled_on_launch": {
              "description": "Whether the secondary app should be enabled when kiosk app is launched. If true, the app will be enabled before the kiosk app launch; if false the app will be disabled before the kiosk app launch; if not set, the app's enabled state will not be changed during the kiosk app launch. The ${ref:management} API can be used to later change the secondary app state.",
              "type": "boolean",
              "optional": true
            }
          }
        }
      }
    ]
  }
]
