Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / chrome / common / extensions / api / permissions.json
bloba504746024eaf8bc8cd3d96f3998b96c6d89b950
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.
6   {
7     "namespace": "permissions",
8     "description": "Use the <code>chrome.permissions</code> API to request <a href='permissions#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).  Anything listed here must appear in the <code>optional_permissions</code> list in the manifest."
19           },
20           "origins": {
21             "type": "array",
22             "items": {"type": "string"},
23             "optional": true,
24             "description": "List of origin permissions. Anything listed here must be a subset of a host that appears in the <code>optional_permissions</code> list in the manifest. For example, if <code>http://*.example.com/</code> or <code>http://*/</code> appears in <code>optional_permissions</code>, you can request an origin of <code>http://help.example.com/</code>. Any path is ignored."
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   }