| // Copyright 2012 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| [ |
| { |
| "namespace": "permissions", |
| "description": "Use the <code>chrome.permissions</code> API to request <a href='/docs/extensions/develop/concepts/declare-permissions'>declared optional permissions</a> at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary.", |
| "types": [ |
| { |
| "id": "Permissions", |
| "type": "object", |
| "properties": { |
| "permissions": { |
| "type": "array", |
| "items": {"type": "string"}, |
| "optional": true, |
| "description": "List of named permissions (does not include hosts or origins)." |
| }, |
| "origins": { |
| "type": "array", |
| "items": {"type": "string"}, |
| "optional": true, |
| "description": "The list of host permissions, including those specified in the <code>optional_permissions</code> or <code>permissions</code> keys in the manifest, and those associated with <a href='/docs/extensions/develop/concepts/content-scripts'>Content Scripts</a>." |
| } |
| } |
| } |
| ], |
| "events": [ |
| { |
| "name": "onAdded", |
| "type": "function", |
| "description": "Fired when the extension acquires new permissions.", |
| "parameters": [ |
| { |
| "$ref": "Permissions", |
| "name": "permissions", |
| "description": "The newly acquired permissions." |
| } |
| ] |
| }, |
| { |
| "name": "onRemoved", |
| "type": "function", |
| "description": "Fired when access to permissions has been removed from the extension.", |
| "parameters": [ |
| { |
| "$ref": "Permissions", |
| "name": "permissions", |
| "description": "The permissions that have been removed." |
| } |
| ] |
| } |
| ], |
| "functions": [ |
| { |
| "name": "getAll", |
| "type": "function", |
| "description": "Gets the extension's current set of permissions.", |
| "parameters": [], |
| "returns_async": { |
| "name": "callback", |
| "parameters": [ |
| { |
| "name": "permissions", |
| "$ref": "Permissions", |
| "description": "The extension's active permissions. Note that the <code>origins</code> property will contain granted origins from those specified in the <code>permissions</code> and <code>optional_permissions</code> keys in the manifest and those associated with <a href='/docs/extensions/develop/concepts/content-scripts'>Content Scripts</a>." |
| } |
| ] |
| } |
| }, |
| { |
| "name": "contains", |
| "type": "function", |
| "description": "Checks if the extension has the specified permissions.", |
| "parameters": [ |
| { |
| "name": "permissions", |
| "$ref": "Permissions" |
| } |
| ], |
| "returns_async": { |
| "name": "callback", |
| "parameters": [ |
| { |
| "name": "result", |
| "type": "boolean", |
| "description": "True if the extension has the specified permissions. If an origin is specified as both an optional permission and a content script match pattern, this will return <code>false</code> unless both permissions are granted." |
| } |
| ] |
| } |
| }, |
| { |
| "name": "request", |
| "type": "function", |
| "description": "Requests access to the specified permissions, displaying a prompt to the user if necessary. These permissions must either be defined in the <code>optional_permissions</code> field of the manifest or be required permissions that were withheld by the user. Paths on origin patterns will be ignored. You can request subsets of optional origin permissions; for example, if you specify <code>*://*/*</code> in the <code>optional_permissions</code> section of the manifest, you can request <code>http://example.com/</code>. If there are any problems requesting the permissions, the promise will be rejected.", |
| "parameters": [ |
| { |
| "name": "permissions", |
| "$ref": "Permissions" |
| } |
| ], |
| "returns_async": { |
| "name": "callback", |
| "optional": true, |
| "parameters": [ |
| { |
| "name": "granted", |
| "type": "boolean", |
| "description": "True if the user granted the specified permissions." |
| } |
| ] |
| } |
| }, |
| { |
| "name": "remove", |
| "type": "function", |
| "description": "Removes access to the specified permissions. If there are any problems removing the permissions, the promise will be rejected.", |
| "parameters": [ |
| { |
| "name": "permissions", |
| "$ref": "Permissions" |
| } |
| ], |
| "returns_async": { |
| "name": "callback", |
| "optional": true, |
| "parameters": [ |
| { |
| "name": "removed", |
| "type": "boolean", |
| "description": "True if the permissions were removed." |
| } |
| ] |
| } |
| }, |
| { |
| "name": "addHostAccessRequest", |
| "type": "function", |
| "description": "Adds a host access request. Request will only be signaled to the user if extension can be granted access to the host in the request. Request will be reset on cross-origin navigation. When accepted, grants persistent access to the site’s top origin", |
| "parameters": [ |
| { |
| "name": "request", |
| "type": "object", |
| "properties": { |
| "documentId": { |
| "type": "string", |
| "optional": true, |
| "description": "The id of a document where host access requests can be shown. Must be the top-level document within a tab. If provided, the request is shown on the tab of the specified document and is removed when the document navigates to a new origin. Adding a new request will override any existent request for `tabId`. This or `tabId` must be specified." |
| }, |
| "tabId": { |
| "type": "number", |
| "optional": true, |
| "description": "The id of the tab where host access requests can be shown. If provided, the request is shown on the specified tab and is removed when the tab navigates to a new origin. Adding a new request will override an existent request for `documentId`. This or `documentId` must be specified." |
| }, |
| "pattern": { |
| "type": "string", |
| "optional": true, |
| "description": "The URL pattern where host access requests can be shown. If provided, host access requests will only be shown on URLs that match this pattern." |
| } |
| } |
| } |
| ], |
| "returns_async": { |
| "name": "callback", |
| "optional": true, |
| "parameters": [] |
| } |
| }, |
| { |
| "name": "removeHostAccessRequest", |
| "type": "function", |
| "description": "Removes a host access request, if existent.", |
| "parameters": [ |
| { |
| "name": "request", |
| "type": "object", |
| "properties": { |
| "documentId": { |
| "type": "string", |
| "optional": true, |
| "description": "The id of a document where host access request will be removed. Must be the top-level document within a tab. This or `tabId` must be specified." |
| }, |
| "tabId": { |
| "type": "number", |
| "optional": true, |
| "description": "The id of the tab where host access request will be removed. This or `documentId` must be specified." |
| }, |
| "pattern": { |
| "type": "string", |
| "optional": true, |
| "description": "The URL pattern where host access request will be removed. If provided, this must exactly match the pattern of an existing host access request." |
| } |
| } |
| } |
| ], |
| "returns_async": { |
| "name": "callback", |
| "optional": true, |
| "parameters": [] |
| } |
| } |
| ] |
| } |
| ] |