diff options
Diffstat (limited to 'chromium/extensions/common/api/extensions_manifest_types.json')
-rw-r--r-- | chromium/extensions/common/api/extensions_manifest_types.json | 225 |
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><all_urls></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" + } + } + } + } + ] + } +] |