summaryrefslogtreecommitdiff
path: root/chromium/extensions/common/api/extensions_manifest_types.json
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/extensions/common/api/extensions_manifest_types.json')
-rw-r--r--chromium/extensions/common/api/extensions_manifest_types.json225
1 files changed, 225 insertions, 0 deletions
diff --git a/chromium/extensions/common/api/extensions_manifest_types.json b/chromium/extensions/common/api/extensions_manifest_types.json
new file mode 100644
index 00000000000..23a73faa1b4
--- /dev/null
+++ b/chromium/extensions/common/api/extensions_manifest_types.json
@@ -0,0 +1,225 @@
+// 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"
+ }
+ }
+ }
+ }
+ ]
+ }
+]