cygprofile: increase timeouts to allow showing web contents
[chromium-blink-merge.git] / extensions / common / api / _api_features.json
blob46eade680bf0587cda0cc8699952b62327c7908f
1 // Copyright 2014 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.
5 // This features file defines extension APIs implemented under src/extensions.
6 // See extensions/common/features/* to understand this file, in particular
7 // feature.h, simple_feature.h, and base_feature_provider.h.
8 //
9 // Note that specifying "web_page", "blessed_web_page", or "all" as a context
10 // type will require manually updating chrome/renderer/resources/dispatcher.cc.
12 // To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
14 // $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
15 // sha1sum | tr '[:lower:]' '[:upper:]'
16 // 9A0417016F345C934A1A88F55CA17C05014EEEBA  -
18 // Google employees: please update http://go/chrome-api-whitelist to map
19 // hashes back to ids.
22   "alarms": {
23     "dependencies": ["permission:alarms"],
24     "contexts": ["blessed_extension"]
25   },
26   "app.runtime": [{
27     "channel": "stable",
28     "contexts": ["blessed_extension"],
29     "extension_types": ["platform_app"],
30     "noparent": true
31   }, {
32     "channel": "stable",
33     "component_extensions_auto_granted": false,
34     "contexts": ["blessed_extension"],
35     "extension_types": ["extension"],
36     "noparent": true,
37     "whitelist": [
38       "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
39       "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
40       "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
41     ]
42   }],
43   "app.window": [{
44     "channel": "stable",
45     "contexts": ["blessed_extension"],
46     "extension_types": ["platform_app"],
47     "noparent": true
48   }, {
49     "channel": "stable",
50     "contexts": ["blessed_extension"],
51     "extension_types": ["extension"],
52     "noparent": true,
53     "component_extensions_auto_granted": false,
54     "whitelist": [
55       "B9EF10DDFEA11EF77873CC5009809E5037FC4C7A",  // Google input tools
56       "06BE211D5F014BAB34BC22D9DDA09C63A81D828E",  // Official xkb extension
57       "F94EE6AB36D6C6588670B2B01EB65212D9C64E33"   // Open source xkb extension
58     ]
59   }],
60   "app.currentWindowInternal": {
61     "noparent": true,
62     "internal": true,
63     "channel": "stable",
64     "contexts": ["blessed_extension"]
65   },
66   "app.currentWindowInternal.setShape": {
67     "dependencies": ["permission:app.window.shape"],
68     "contexts": ["blessed_extension"]
69   },
70   // The API for the *embedder* of appview. Appview has both an embedder and
71   // guest API, which are different.
72   "appViewEmbedderInternal": {
73     "internal": true,
74     "contexts": ["blessed_extension"],
75     "dependencies": ["permission:appview"]
76   },
77   // Note that exposing this doesn't necessarily expose AppView,
78   // appViewEmbedderInternal is required for that.
79   // See http://crbug.com/437891.
80   "appViewGuestInternal": {
81     "internal": true,
82     "channel": "stable",
83     "contexts": ["blessed_extension"]
84   },
85   "audio": {
86     "dependencies": ["permission:audio"],
87     "contexts": ["blessed_extension"]
88   },
89   "bluetooth": {
90     "dependencies": ["manifest:bluetooth"],
91     "contexts": ["blessed_extension"]
92   },
93   "bluetoothLowEnergy": {
94     "dependencies": ["manifest:bluetooth"],
95     "contexts": ["blessed_extension"]
96   },
97   "bluetoothPrivate": {
98     "dependencies": ["permission:bluetoothPrivate"],
99     "contexts": ["blessed_extension"]
100   },
101   "bluetoothSocket": {
102     "dependencies": ["manifest:bluetooth"],
103     "contexts": ["blessed_extension"]
104   },
105   "declarativeWebRequest": {
106     "dependencies": ["permission:declarativeWebRequest"],
107     "contexts": ["blessed_extension"]
108   },
109   "diagnostics": {
110     "dependencies": ["permission:diagnostics"],
111     "extension_types": ["platform_app"],
112     "contexts": ["blessed_extension"]
113   },
114   "dns": {
115     "dependencies": ["permission:dns"],
116     "contexts": ["blessed_extension"]
117   },
118   "documentScan": {
119     "dependencies": ["permission:documentScan"],
120     "contexts": ["blessed_extension"]
121   },
122   // This is not a real API, only here for documentation purposes.
123   // See http://crbug.com/275944 for background.
124   "extensionTypes": {
125     "internal": true,
126     "channel": "stable",
127     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
128     "contexts": ["blessed_extension"]
129   },
130   "extensionViewInternal": [
131     {
132       "internal": true,
133       "contexts": ["blessed_extension"],
134       "dependencies": ["permission:extensionview"]
135     }, {
136       "internal": true,
137       "channel": "stable",
138       "contexts": ["webui"],
139       "matches": ["chrome://media-router/*"]
140     }
141   ],
142   "events": {
143     "internal": true,
144     "channel": "stable",
145     "extension_types": ["platform_app", "extension"],
146     "contexts": "all",
147     "matches": ["<all_urls>"]
148   },
149   "guestViewInternal": [
150     {
151       "internal": true,
152       "channel": "stable",
153       "contexts": ["blessed_extension"]
154     }, {
155       "internal": true,
156       "channel": "trunk",
157       "contexts": ["webui"],
158       "matches": [
159         "chrome://extensions-frame/*",
160         "chrome://extensions/*",
161         "chrome://chrome-signin/*",
162         "chrome://media-router/*",
163         "chrome://oobe/*"
164       ]
165     },
166     // This allows GuestViews to be created on regular web pages for the Worker
167     // Thread Frame prototype: http://crbug.com/434226.
168     {
169       "internal": true,
170       "channel": "trunk",
171       "contexts": "all",
172       "matches": ["<all_urls>"]
173     }
174   ],
175   "hid": {
176     "dependencies": ["permission:hid"],
177     "contexts": ["blessed_extension"]
178   },
179   "hid.getUserSelectedDevices": {
180     "contexts": ["blessed_extension"],
181     "channel": "dev",
182     "dependencies": ["permission:hid"]
183   },
184   "idle": {
185     "dependencies": ["permission:idle"],
186     "contexts": ["blessed_extension"]
187   },
188   "management": [{
189     "dependencies": ["permission:management"],
190     "contexts": ["blessed_extension"],
191     "default_parent": true
192   }, {
193     "channel": "stable",
194     "contexts": ["webui"],
195     "matches": [
196       "chrome://extensions/*",
197       "chrome://extensions-frame/*",
198       "chrome://chrome/extensions/*"
199     ]
200   }],
201   "management.getPermissionWarningsByManifest": {
202     "dependencies": [],
203     "channel": "stable",
204     "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
205   },
206   "management.getSelf": {
207     "dependencies": [],
208     "channel": "stable",
209     "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
210   },
211   "management.uninstallSelf": {
212     "dependencies": [],
213     "channel": "stable",
214     "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
215   },
216   "mimeHandlerPrivate": {
217     "dependencies": ["manifest:mime_types_handler"],
218     "contexts": ["blessed_extension"]
219   },
220   "mojoPrivate": {
221     "contexts": ["blessed_extension"],
222     "channel": "stable",
223     "extension_types": ["platform_app", "extension"],
224     "whitelist": [
225       "EF2AB692559EA97C3BBDEA018A8C45F92457BD4E",  // http://crbug.com/448569
226       "C17CD9E6868D7B9C67926E0EC612EA25C768418F",
227       "A45DABDB47A31CC812E5490AB748C7D05E2D32E9",
228       "BFEE2E3B80BE21A645E63E9346DFC383E7CB3BDA",
229       "63ED55E43214C211F82122ED56407FF1A807F2A3"
230     ]
231   },
232   "networking.config": {
233     "dependencies": ["permission:networking.config"],
234     "contexts": ["blessed_extension"]
235   },
236   "networkingPrivate": [{
237     "dependencies": ["permission:networkingPrivate"],
238     "contexts": ["blessed_extension"]
239   }, {
240     "channel": "stable",
241     "contexts": ["webui"],
242     "matches": [
243       "chrome://md-settings/*",
244       "chrome://network/*",
245       "chrome://settings/*",
246       "chrome://settings-frame/*"
247     ]
248   }],
249   "power": {
250     "dependencies": ["permission:power"],
251     "contexts": ["blessed_extension"]
252   },
253   "printerProvider": {
254     "dependencies": ["permission:printerProvider"],
255     "contexts": ["blessed_extension"]
256   },
257   "printerProviderInternal": {
258     "internal": true,
259     "dependencies": ["permission:printerProvider"],
260     "contexts": ["blessed_extension"]
261   },
262   "runtime": {
263     "channel": "stable",
264     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
265     "contexts": ["blessed_extension"]
266   },
267   "runtime.getManifest": {
268     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
269   },
270   "runtime.connect": {
271     // Everything except WebUI.
272     "contexts": [
273       "blessed_web_page",
274       "content_script",
275       "blessed_extension",
276       "unblessed_extension",
277       "web_page"
278     ],
279     "matches": ["<all_urls>"]
280   },
281   "runtime.connectNative": {
282     "dependencies": ["permission:nativeMessaging"],
283     "contexts": ["blessed_extension"]
284   },
285   "runtime.getURL": {
286     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
287   },
288   "runtime.id": {
289     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
290   },
291   "runtime.lastError": {
292     "contexts": "all",
293     "extension_types": "all",
294     "matches": ["<all_urls>"]
295   },
296   "runtime.onConnect": {
297     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
298   },
299   "runtime.onMessage": {
300     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
301   },
302   "runtime.sendMessage": {
303     // Everything except WebUI.
304     "contexts": [
305       "blessed_web_page",
306       "content_script",
307       "blessed_extension",
308       "unblessed_extension",
309       "web_page"
310     ],
311     "matches": ["<all_urls>"]
312   },
313   "runtime.sendNativeMessage": {
314     "dependencies": ["permission:nativeMessaging"],
315     "contexts": ["blessed_extension"]
316   },
317   "serial": {
318     "dependencies": ["permission:serial"],
319     "contexts": ["blessed_extension"]
320   },
321   "socket": {
322     "dependencies": ["permission:socket"],
323     "contexts": ["blessed_extension"]
324   },
325   "sockets.tcp": {
326     "dependencies": ["manifest:sockets"],
327     "contexts": ["blessed_extension"]
328   },
329   "sockets.tcpServer": {
330     "dependencies": ["manifest:sockets"],
331     "contexts": ["blessed_extension"]
332   },
333   "sockets.udp": {
334     "dependencies": ["manifest:sockets"],
335     "contexts": ["blessed_extension"]
336   },
337   "storage": {
338     "dependencies": ["permission:storage"],
339     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
340   },
341   "system.cpu": {
342     "dependencies": ["permission:system.cpu"],
343     "contexts": ["blessed_extension"]
344   },
345   "system.display": {
346     "dependencies": ["permission:system.display"],
347     "contexts": ["blessed_extension"]
348   },
349   "system.memory": {
350     "dependencies": ["permission:system.memory"],
351     "contexts": ["blessed_extension"]
352   },
353   "system.network": {
354     "dependencies": ["permission:system.network"],
355     "contexts": ["blessed_extension"]
356   },
357   "system.storage": {
358     "dependencies": ["permission:system.storage"],
359     "contexts": ["blessed_extension"]
360   },
361   "system.storage.getAvailableCapacity": {
362     "channel": "dev"
363   },
364   "test": [{
365     "channel": "stable",
366     "extension_types": "all",
367     // Everything except web pages and WebUI. WebUI is declared in a separate
368     // rule to keep the "matches" property isolated.
369     "contexts": [
370       "blessed_extension",
371       "blessed_web_page",
372       "content_script",
373       "unblessed_extension"
374     ]
375   }, {
376     "channel": "stable",
377     "contexts": ["webui"],
378     "matches": [
379       "chrome://extensions/*",
380       "chrome://extensions-frame/*",
381       "chrome://chrome/extensions/*"
382     ]
383   }],
384   "types": {
385     "internal": true,
386     "channel": "stable",
387     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
388     "contexts": ["blessed_extension"]
389   },
390   "types.private": {
391     // preferencesPrivate is the only API that uses types.private.
392     // If any other APIs need it then they'll need to be added in
393     // separate rules.
394     "dependencies": ["permission:preferencesPrivate"],
395     "contexts": ["blessed_extension"]
396   },
397   "usb": {
398     "dependencies": ["permission:usb"],
399     "contexts": ["blessed_extension"]
400   },
401   "vpnProvider": {
402     "dependencies": ["permission:vpnProvider"],
403     "contexts": ["blessed_extension"]
404   },
405   "webRequest": {
406     "dependencies": ["permission:webRequest"],
407     "contexts": ["blessed_extension"]
408   },
409   "webRequestInternal": [{
410     "internal": true,
411     "channel": "stable",
412     "contexts": ["blessed_extension"]
413   }, {
414     // webview uses webRequestInternal API.
415     "channel": "stable",
416     "internal": true,
417     "contexts": ["webui"],
418     "matches": [
419       "chrome://chrome-signin/*",
420       "chrome://media-router/*",
421       "chrome://oobe/*"
422     ]
423   }],
424   "webViewInternal": [{
425     "internal": true,
426     "dependencies": ["permission:webview"],
427     "contexts": ["blessed_extension"]
428   }, {
429     "internal": true,
430     "channel": "dev",
431     "contexts": ["webui"],
432     "matches": [
433       "chrome://chrome-signin/*",
434       "chrome://media-router/*",
435       "chrome://oobe/*"
436     ]
437   }],
438   "webViewRequest": [{
439     "dependencies": ["permission:webview"],
440     "contexts": ["blessed_extension"]
441   }, {
442     "channel": "stable",
443     "contexts": ["webui"],
444     "matches": [
445       "chrome://chrome-signin/*",
446       "chrome://media-router/*",
447       "chrome://oobe/*"
448     ]
449   }]