1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 [ 6 { 7 "namespace": "permissions", 8 "description": "Use the <code>chrome.permissions</code> API to request <a href=\"#manifest\">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.", 9 "types": [ 10 { 11 "id": "Permissions", 12 "type": "object", 13 "properties": { 14 "permissions": { 15 "type": "array", 16 "items": {"type": "string"}, 17 "optional": true, 18 "description": "List of named permissions (does not include hosts or origins)." 19 }, 20 "origins": { 21 "type": "array", 22 "items": {"type": "string"}, 23 "optional": true, 24 "description": "List of origin permissions." 25 } 26 } 27 } 28 ], 29 "events": [ 30 { 31 "name": "onAdded", 32 "type": "function", 33 "description": "Fired when the extension acquires new permissions.", 34 "parameters": [ 35 { 36 "$ref": "Permissions", 37 "name": "permissions", 38 "description": "The newly acquired permissions." 39 } 40 ] 41 }, 42 { 43 "name": "onRemoved", 44 "type": "function", 45 "description": "Fired when access to permissions has been removed from the extension.", 46 "parameters": [ 47 { 48 "$ref": "Permissions", 49 "name": "permissions", 50 "description": "The permissions that have been removed." 51 } 52 ] 53 } 54 ], 55 "functions": [ 56 { 57 "name": "getAll", 58 "type": "function", 59 "description": "Gets the extension's current set of permissions.", 60 "parameters": [ 61 { 62 "name": "callback", 63 "type": "function", 64 "parameters": [ 65 { 66 "name": "permissions", 67 "$ref": "Permissions", 68 "description": "The extension's active permissions." 69 } 70 ] 71 } 72 ] 73 }, 74 { 75 "name": "contains", 76 "type": "function", 77 "description": "Checks if the extension has the specified permissions.", 78 "parameters": [ 79 { 80 "name": "permissions", 81 "$ref": "Permissions" 82 }, 83 { 84 "name": "callback", 85 "type": "function", 86 "parameters": [ 87 { 88 "name": "result", 89 "type": "boolean", 90 "description": "True if the extension has the specified permissions." 91 } 92 ] 93 } 94 ] 95 }, 96 { 97 "name": "request", 98 "type": "function", 99 "description": "Requests access to the specified permissions. These permissions must be defined in the optional_permissions field of the manifest. If there are any problems requesting the permissions, $ref:runtime.lastError will be set.", 100 "parameters": [ 101 { 102 "name": "permissions", 103 "$ref": "Permissions" 104 }, 105 { 106 "name": "callback", 107 "type": "function", 108 "optional": true, 109 "parameters": [ 110 { 111 "name": "granted", 112 "type": "boolean", 113 "description": "True if the user granted the specified permissions." 114 } 115 ] 116 } 117 ] 118 }, 119 { 120 "name": "remove", 121 "type": "function", 122 "description": "Removes access to the specified permissions. If there are any problems removing the permissions, $ref:runtime.lastError will be set.", 123 "parameters": [ 124 { 125 "name": "permissions", 126 "$ref": "Permissions" 127 }, 128 { 129 "name": "callback", 130 "type": "function", 131 "optional": true, 132 "parameters": [ 133 { 134 "name": "removed", 135 "type": "boolean", 136 "description": "True if the permissions were removed." 137 } 138 ] 139 } 140 ] 141 } 142 ] 143 } 144 ] 145