Temporarily re-enabling SizeAfterPrefChange test with traces (this time for Linux...
[chromium-blink-merge.git] / chrome / common / extensions / api / _api_features.json
blob6dc9dc9f4d1e28b90d664df498c731a0102e653c
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.
5 // This features file defines extension APIs implemented under src/chrome.
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   "accessibilityFeatures": [{
23     "platforms": ["chromeos"],
24     "dependencies": ["permission:accessibilityFeatures.modify"],
25     "contexts": ["blessed_extension"]
26   }, {
27     "platforms": ["chromeos"],
28     "dependencies": ["permission:accessibilityFeatures.read"],
29     "contexts": ["blessed_extension"]
30   }],
31   "accessibilityPrivate": {
32     "dependencies": ["permission:accessibilityPrivate"],
33     "contexts": ["blessed_extension"]
34   },
35   "activityLogPrivate": {
36     "dependencies": ["permission:activityLogPrivate"],
37     "contexts": ["blessed_extension"]
38   },
39   "adview": {
40     "dependencies": ["permission:adview"],
41     "contexts": ["blessed_extension"]
42   },
43   "alarms": {
44     "dependencies": ["permission:alarms"],
45     "contexts": ["blessed_extension"]
46   },
47   "app": {
48     "blacklist": [
49       "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
50       "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
51       "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
52     ],
53     "channel": "stable",
54     "extension_types": ["hosted_app", "extension", "legacy_packaged_app"],
55     "contexts": [
56       "blessed_extension",
57       "unblessed_extension",
58       "content_script",
59       "web_page",
60       "blessed_web_page"
61     ],
62     "matches": [
63       "http://*/*", "https://*/*", "chrome-extension://*/*", "file://*/*"
64     ]
65   },
66   "app.runtime": [{
67     "channel": "stable",
68     "contexts": ["blessed_extension"],
69     "extension_types": ["platform_app"],
70     "noparent": true
71   }, {
72     "channel": "stable",
73     "component_extensions_auto_granted": false,
74     "contexts": ["blessed_extension"],
75     "extension_types": ["extension"],
76     "noparent": true,
77     "whitelist": [
78       "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
79       "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
80       "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
81     ]
82   }],
83   "app.window": {
84     "channel": "stable",
85     "contexts": ["blessed_extension"],
86     "extension_types": ["platform_app"],
87     "noparent": true
88   },
89   "app.currentWindowInternal": {
90     "noparent": true,
91     "internal": true,
92     "channel": "stable",
93     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
94   },
95   "app.currentWindowInternal.setShape": {
96     "dependencies": ["permission:app.window.shape"],
97     "contexts": ["blessed_extension"]
98   },
99   "app.getDetails": {
100     "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
101     "matches": []
102   },
103   "app.getDetailsForFrame": {
104     "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
105     "matches": []
106   },
107   "app.getIsInstalled": {
108     "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
109     "matches": []
110   },
111   "app.installState": {
112     "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
113     "matches": []
114   },
115   "app.runningState": {
116     "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
117     "matches": []
118   },
119   "audio": {
120     "dependencies": ["permission:audio"],
121     "contexts": ["blessed_extension"]
122   },
123   "automationInternal": {
124     "internal": true,
125     "dependencies": ["manifest:automation"],
126     "contexts": ["blessed_extension"]
127   },
128   "automation": {
129     "dependencies": ["manifest:automation"],
130     "contexts": ["blessed_extension"]
131   },
132   "autotestPrivate": {
133     "dependencies": ["permission:autotestPrivate"],
134     "contexts": ["blessed_extension"]
135   },
136   "bluetooth": {
137     "dependencies": ["manifest:bluetooth"],
138     "contexts": ["blessed_extension"]
139   },
140   "bluetoothLowEnergy": {
141     "dependencies": ["manifest:bluetooth"],
142     "contexts": ["blessed_extension"]
143   },
144   "bluetoothPrivate": {
145     "dependencies": ["permission:bluetoothPrivate"],
146     "contexts": ["blessed_extension"]
147   },
148   "bluetoothSocket": {
149     "dependencies": ["manifest:bluetooth"],
150     "contexts": ["blessed_extension"]
151   },
152   "bookmarkManagerPrivate": {
153     "dependencies": ["permission:bookmarkManagerPrivate"],
154     "contexts": ["blessed_extension"]
155   },
156   "bookmarks": {
157     "dependencies": ["permission:bookmarks"],
158     "contexts": ["blessed_extension"]
159   },
160   "bookmarks.export": {
161     "extension_types": ["extension"],
162     "location": "component"
163   },
164   "bookmarks.import": {
165     "extension_types": ["extension"],
166     "location": "component"
167   },
168   "brailleDisplayPrivate": {
169     "dependencies": ["permission:brailleDisplayPrivate"],
170     "contexts": ["blessed_extension"]
171   },
172   "browser": {
173     "dependencies": ["permission:browser"],
174     "contexts": ["blessed_extension"]
175   },
176   "browserAction": {
177     "dependencies": ["manifest:browser_action"],
178     "contexts": ["blessed_extension"]
179   },
180   // This API is whitelisted on stable and should not be enabled for a wider
181   // audience without resolving security issues raised in API proposal and
182   // review (https://codereview.chromium.org/25305002).
183   "browserAction.openPopup": [{
184     "channel": "dev",
185     "dependencies": ["manifest:browser_action"],
186     "contexts": ["blessed_extension"]
187   }, {
188     "channel": "stable",
189     "dependencies": ["manifest:browser_action"],
190     "whitelist": [
191       "63ED55E43214C211F82122ED56407FF1A807F2A3",  // Dev
192       "FA01E0B81978950F2BC5A50512FD769725F57510",  // Beta
193       "B11A93E7E5B541F8010245EBDE2C74647D6C14B9",  // Canary
194       "F155646B5D1CA545F7E1E4E20D573DFDD44C2540",  // Google Cast Beta
195       "16CA7A47AAE4BE49B1E75A6B960C3875E945B264"   // Google Cast Stable
196     ],
197     "contexts": ["blessed_extension"]
198   }],
199   "browsingData": {
200     "dependencies": ["permission:browsingData"],
201     "contexts": ["blessed_extension"]
202   },
203   "cast.channel": {
204     "dependencies": ["permission:cast"],
205     "contexts": ["blessed_extension"]
206   },
207   "cast.streaming.rtpStream": {
208     "dependencies": ["permission:cast.streaming"],
209     "contexts": ["blessed_extension"]
210   },
211   "cast.streaming.session": {
212     "dependencies": ["permission:cast.streaming"],
213     "contexts": ["blessed_extension"]
214   },
215   "cast.streaming.udpTransport": {
216     "dependencies": ["permission:cast.streaming"],
217     "contexts": ["blessed_extension"]
218   },
219   "chromeosInfoPrivate": {
220     "platforms": ["chromeos"],
221     "dependencies": ["permission:chromeosInfoPrivate"],
222     "contexts": ["blessed_extension"]
223   },
224   "cloudPrintPrivate": {
225     "dependencies": ["permission:cloudPrintPrivate"],
226     "contexts": ["blessed_extension"]
227   },
228   "commandLinePrivate": {
229     "dependencies": ["permission:commandLinePrivate"],
230     "contexts": ["blessed_extension"]
231   },
232   "commands": {
233     "dependencies": ["manifest:commands"],
234     "contexts": ["blessed_extension"]
235   },
236   "contentSettings": {
237     "dependencies": ["permission:contentSettings"],
238     "contexts": ["blessed_extension"]
239   },
240   "contextMenus": {
241     "dependencies": ["permission:contextMenus"],
242     "contexts": ["blessed_extension"]
243   },
244   "contextMenusInternal": {
245     "internal": true,
246     "channel": "stable",
247     "contexts": ["blessed_extension"]
248   },
249   "cookies": {
250     "dependencies": ["permission:cookies"],
251     "contexts": ["blessed_extension"]
252   },
253   "debugger": {
254     "dependencies": ["permission:debugger"],
255     "contexts": ["blessed_extension"]
256   },
257   "declarativeContent": {
258     "dependencies": ["permission:declarativeContent"],
259     "contexts": ["blessed_extension"]
260   },
261   "declarativeWebRequest": {
262     "dependencies": ["permission:declarativeWebRequest"],
263     "contexts": ["blessed_extension"]
264   },
265   "desktopCapture": {
266     "dependencies": ["permission:desktopCapture"],
267     "contexts": ["blessed_extension"]
268   },
269   "developerPrivate": {
270     "dependencies": ["permission:developerPrivate"],
271     "contexts": ["blessed_extension"]
272   },
273   "devtools.inspectedWindow": {
274     "dependencies": ["manifest:devtools_page"],
275     "contexts": ["blessed_extension"]
276   },
277   "devtools.network": {
278     "dependencies": ["manifest:devtools_page"],
279     "contexts": ["blessed_extension"]
280   },
281   "devtools.panels": {
282     "dependencies": ["manifest:devtools_page"],
283     "contexts": ["blessed_extension"]
284   },
285   "diagnostics": {
286     "dependencies": ["permission:diagnostics"],
287     "extension_types": ["platform_app"],
288     "contexts": ["blessed_extension"]
289   },
290   "dial": {
291     "dependencies": ["permission:dial"],
292     "contexts": ["blessed_extension"]
293   },
294   "downloads": {
295     "dependencies": ["permission:downloads"],
296     "contexts": ["blessed_extension"]
297   },
298   "downloadsInternal": {
299     "internal": true,
300     "channel": "stable",
301     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
302   },
303   "echoPrivate": {
304     "platforms": ["chromeos"],
305     "dependencies": ["permission:echoPrivate"],
306     "contexts": ["blessed_extension"]
307   },
308   "enterprise.platformKeys": {
309     "dependencies": ["permission:enterprise.platformKeys"],
310     "contexts": ["blessed_extension"]
311   },
312   "enterprise.platformKeysInternal": {
313     "dependencies": ["permission:enterprise.platformKeys"],
314     "internal": true,
315     "contexts": ["blessed_extension"]
316   },
317   "enterprise.platformKeysPrivate": {
318     "platforms": ["chromeos"],
319     "dependencies": ["permission:enterprise.platformKeysPrivate"],
320     "contexts": ["blessed_extension"]
321   },
322   "events": {
323     "internal": true,
324     "channel": "stable",
325     "extension_types": ["platform_app", "extension"],
326     "contexts": "all",
327     "matches": ["<all_urls>"]
328   },
329   "experimental.devtools.audits": {
330     "dependencies": ["permission:experimental", "manifest:devtools_page"],
331     "contexts": ["blessed_extension"]
332   },
333   "experimental.devtools.console": {
334     "dependencies": ["permission:experimental", "manifest:devtools_page"],
335     "contexts": ["blessed_extension"]
336   },
337   "extension": {
338     "channel": "stable",
339     "extension_types": ["extension", "legacy_packaged_app"],
340     "contexts": ["blessed_extension"]
341   },
342   "extension.getURL": {
343     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
344   },
345   "extension.getViews": [
346     {
347       "channel": "stable",
348       "contexts": ["blessed_extension"],
349       "extension_types": ["extension", "legacy_packaged_app"]
350     },
351     {
352       // TODO(yoz): Eliminate this usage.
353       "channel": "stable",
354       "contexts": ["blessed_extension"],
355       "extension_types": ["platform_app"],
356       "whitelist": [
357         "A948368FC53BE437A55FEB414106E207925482F5"  // File manager
358       ]
359     }
360   ],
361   "extension.inIncognitoContext": {
362     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
363   },
364   "extension.lastError": {
365     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
366   },
367   "extension.onRequest": {
368     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
369   },
370   "extension.sendNativeMessage": {
371     "dependencies": ["permission:nativeMessaging"]
372   },
373   "extension.sendRequest": {
374     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
375   },
376   // This is not a real API, only here for documentation purposes.
377   // See http://crbug.com/275944 for background.
378   "extensionsManifestTypes": {
379     "internal": true,
380     "channel": "stable",
381     "contexts": ["blessed_extension"]
382   },
383   "feedbackPrivate": {
384     "dependencies": ["permission:feedbackPrivate"],
385     "contexts": ["blessed_extension"]
386   },
387   "fileBrowserHandler": {
388     "platforms": ["chromeos"],
389     "dependencies": ["permission:fileBrowserHandler"],
390     "contexts": ["blessed_extension"]
391   },
392   "fileBrowserHandlerInternal": {
393     "internal": true,
394     "platforms": ["chromeos"],
395     "channel": "stable",
396     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
397   },
398   "screenlockPrivate": {
399     "dependencies": ["permission:screenlockPrivate"],
400     "extension_types": ["platform_app"],
401     "contexts": ["blessed_extension", "unblessed_extension"]
402   },
403   "fileBrowserPrivate": {
404     "platforms": ["chromeos"],
405     "dependencies": ["permission:fileBrowserPrivate"],
406     "contexts": ["blessed_extension"]
407   },
408   "fileBrowserPrivateInternal": {
409     "internal": true,
410     "platforms": ["chromeos"],
411     "dependencies": ["permission:fileBrowserPrivate"],
412     "contexts": ["blessed_extension"]
413   },
414   "fileSystem": {
415     "dependencies": ["permission:fileSystem"],
416     "contexts": ["blessed_extension"]
417   },
418   "fileSystemProvider": {
419     "dependencies": ["permission:fileSystemProvider"],
420     "contexts": ["blessed_extension"]
421   },
422   "fileSystemProviderInternal": {
423     "internal": true,
424     "dependencies": ["permission:fileSystemProvider"],
425     "contexts": ["blessed_extension"]
426   },
427   "firstRunPrivate": {
428     "platforms": ["chromeos"],
429     "dependencies": ["permission:firstRunPrivate"],
430     "contexts": ["blessed_extension"]
431   },
432   "fontSettings": {
433     "dependencies": ["permission:fontSettings"],
434     "contexts": ["blessed_extension"]
435   },
436   "gcm": {
437     "dependencies": ["permission:gcm"],
438     "contexts": ["blessed_extension"]
439   },
440   "hangoutsPrivate": {
441     "channel": "stable",
442     "contexts": ["blessed_extension"],
443     "whitelist": [
444       // http://crbug.com/309737
445       "nckgahadagoaajjgafhacjanaoiihapd",
446       "ljclpkphhpbpinifbeabbhlfddcpfdde",
447       "ppleadejekpmccmnpjdimmlfljlkdfej",
448       "eggnbpckecmjlblplehfpjjdhhidfdoj"
449     ]
450   },
451   "hid": {
452     "dependencies": ["permission:hid"],
453     "contexts": ["blessed_extension"]
454   },
455   "history": {
456     "dependencies": ["permission:history"],
457     "contexts": ["blessed_extension"]
458   },
459   "hotwordPrivate": {
460     "dependencies": ["permission:hotwordPrivate"],
461     "contexts": ["blessed_extension"]
462   },
463   "i18n": {
464     "channel": "stable",
465     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
466     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
467   },
468   "identity": {
469     "dependencies": ["permission:identity"],
470     "contexts": ["blessed_extension"]
471   },
472   "identity.getAccounts": {
473     "channel": "dev",
474     "dependencies": ["permission:identity"],
475     "contexts": ["blessed_extension"]
476   },
477   "identityPrivate": {
478     "dependencies": ["permission:identityPrivate"],
479     "contexts": ["blessed_extension"]
480   },
481   "idltest": {
482     "dependencies": ["permission:idltest"],
483     "contexts": ["blessed_extension"]
484   },
485   "idle": {
486     "dependencies": ["permission:idle"],
487     "contexts": ["blessed_extension"]
488   },
489   "infobars": {
490     "dependencies": ["permission:infobars"],
491     "contexts": ["blessed_extension"]
492   },
493   "input.ime": {
494     "platforms": ["chromeos"],
495     "dependencies": ["permission:input"],
496     "contexts": ["blessed_extension"]
497   },
498   "inputMethodPrivate": {
499     "platforms": ["chromeos"],
500     "dependencies": ["permission:inputMethodPrivate"],
501     "contexts": ["blessed_extension"]
502   },
503   "ledger": {
504     "platforms": ["chromeos"],
505     "dependencies": ["permission:ledger"],
506     "contexts": ["blessed_extension"]
507   },
508   "location": {
509     "dependencies": ["permission:location"],
510     "contexts": ["blessed_extension"]
511   },
512   "logPrivate": {
513     "dependencies": ["permission:logPrivate"],
514     "extension_types": ["extension", "legacy_packaged_app"],
515     "contexts": ["blessed_extension"]
516   },
517   "webcamPrivate": {
518     "dependencies": ["permission:webcamPrivate"],
519     "contexts": ["blessed_extension"]
520   },
521   "management": {
522     "dependencies": ["permission:management"],
523     "contexts": ["blessed_extension"]
524   },
525   "management.getPermissionWarningsByManifest": {
526     "dependencies": [],
527     "channel": "stable",
528     "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
529   },
530   "management.uninstallSelf": {
531     "dependencies": [],
532     "channel": "stable",
533     "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
534   },
535   "management.createAppShortcut": {
536     "dependencies": ["permission:management"],
537     "channel": "dev",
538     "contexts": ["blessed_extension"]
539   },
540   "management.setLaunchType": {
541     "dependencies": ["permission:management"],
542     "channel": "dev",
543     "contexts": ["blessed_extension"]
544   },
545   // This is not a real API, only here for documentation purposes.
546   // See http://crbug.com/275944 for background.
547   "manifestTypes": {
548     "internal": true,
549     "channel": "stable",
550     "contexts": ["blessed_extension"]
551   },
552   "mediaGalleries": {
553     "dependencies": ["permission:mediaGalleries"],
554     "contexts": ["blessed_extension"]
555   },
556   "mediaGalleries.getMetadata": {
557     "channel": "dev",
558     "dependencies": ["permission:mediaGalleries"],
559     "contexts": ["blessed_extension"]
560   },
561   "mediaGalleriesPrivate": {
562     "dependencies": ["permission:mediaGalleriesPrivate"],
563     "contexts": ["blessed_extension"]
564   },
565   "mediaPlayerPrivate": {
566     "platforms": ["chromeos"],
567     "dependencies": ["permission:mediaPlayerPrivate"],
568     "contexts": ["blessed_extension"]
569   },
570   "metricsPrivate": {
571     "dependencies": ["permission:metricsPrivate"],
572     "contexts": ["blessed_extension"]
573   },
574   "mdns": {
575     "dependencies": ["permission:mdns"],
576     "contexts": ["blessed_extension"]
577   },
578   "musicManagerPrivate": {
579     "dependencies": ["permission:musicManagerPrivate"],
580     "contexts": ["blessed_extension"]
581   },
582   "networkingPrivate": {
583     "platforms": ["chromeos", "mac", "win"],
584     "dependencies": ["permission:networkingPrivate"],
585     "contexts": ["blessed_extension"]
586   },
587   "notifications": {
588     "dependencies": ["permission:notifications"],
589     "contexts": ["blessed_extension"]
590   },
591   "omnibox": {
592     "dependencies": ["manifest:omnibox"],
593     "contexts": ["blessed_extension"]
594   },
595   "pageAction": {
596     "dependencies": ["manifest:page_action"],
597     "contexts": ["blessed_extension"]
598   },
599   "pageActions": {
600     "dependencies": ["manifest:page_actions"],
601     "contexts": ["blessed_extension"]
602   },
603   "pageCapture": {
604     "dependencies": ["permission:pageCapture"],
605     "contexts": ["blessed_extension"]
606   },
607   "permissions": {
608     "channel": "stable",
609     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
610     "contexts": ["blessed_extension"]
611   },
612   "power": {
613     "dependencies": ["permission:power"],
614     "contexts": ["blessed_extension"]
615   },
616   "preferencesPrivate": {
617     "dependencies": ["permission:preferencesPrivate"],
618     "contexts": ["blessed_extension"]
619   },
620   "principalsPrivate": {
621     "dependencies": ["permission:principalsPrivate"],
622     "contexts": ["blessed_extension"]
623   },
624   "privacy": {
625     "dependencies": ["permission:privacy"],
626     "contexts": ["blessed_extension"]
627   },
628   "processes": {
629     "dependencies": ["permission:processes"],
630     "contexts": ["blessed_extension"]
631   },
632   "proxy": {
633     "dependencies": ["permission:proxy"],
634     "contexts": ["blessed_extension"]
635   },
636   "pushMessaging": {
637     "dependencies": ["permission:pushMessaging"],
638     "contexts": ["blessed_extension"]
639   },
640   "imageWriterPrivate": {
641     "dependencies": ["permission:imageWriterPrivate"],
642     "extension_types": ["platform_app"],
643     "contexts": ["blessed_extension"]
644   },
645   "readingListPrivate": {
646     "dependencies": ["permission:readingListPrivate"],
647     "contexts": ["blessed_extension"]
648   },
649   "rtcPrivate": {
650     "dependencies": ["permission:rtcPrivate"],
651     "contexts": ["blessed_extension"]
652   },
653   "scriptBadge": {
654     "dependencies": ["manifest:script_badge"],
655     "contexts": ["blessed_extension"]
656   },
657   "serial": {
658     "dependencies": ["permission:serial"],
659     "contexts": ["blessed_extension"]
660   },
661   "sessions": {
662     "dependencies": ["permission:sessions"],
663     "contexts": ["blessed_extension"]
664   },
665   "signedInDevices": {
666     "dependencies": ["permission:signedInDevices"],
667     "contexts": ["blessed_extension"]
668   },
669   "streamsPrivate": {
670     "dependencies": ["permission:streamsPrivate"],
671     "contexts": ["blessed_extension"]
672   },
673   "syncFileSystem": {
674     "dependencies": ["permission:syncFileSystem"],
675     "contexts": ["blessed_extension"]
676   },
677   "syncedNotificationsPrivate": {
678     "contexts": ["blessed_extension"],
679     "dependencies": ["permission:syncedNotificationsPrivate"]
680   },
681   "systemIndicator": {
682     "dependencies": ["manifest:system_indicator"],
683     "contexts": ["blessed_extension"]
684   },
685   "system.cpu": {
686     "dependencies": ["permission:system.cpu"],
687     "contexts": ["blessed_extension"]
688   },
689   "system.display": {
690     "dependencies": ["permission:system.display"],
691     "contexts": ["blessed_extension"]
692   },
693   "system.memory": {
694     "dependencies": ["permission:system.memory"],
695     "contexts": ["blessed_extension"]
696   },
697   "system.network": {
698     "dependencies": ["permission:system.network"],
699     "contexts": ["blessed_extension"]
700   },
701   "system.storage": {
702     "dependencies": ["permission:system.storage"],
703     "contexts": ["blessed_extension"]
704   },
705   "system.storage.getAvailableCapacity": {
706     "channel": "dev"
707   },
708   "systemPrivate": {
709     "dependencies": ["permission:systemPrivate"],
710     "contexts": ["blessed_extension"]
711   },
712   "tabCapture": {
713     "dependencies": ["permission:tabCapture"],
714     "contexts": ["blessed_extension"]
715   },
716   "tabs": {
717     "channel": "stable",
718     "extension_types": ["extension", "legacy_packaged_app"],
719     "contexts": ["blessed_extension"]
720   },
721   "terminalPrivate": {
722     "platforms": ["chromeos"],
723     "dependencies": ["permission:terminalPrivate"],
724     "contexts": ["blessed_extension"]
725   },
726   "topSites": {
727     "dependencies": ["permission:topSites"],
728     "contexts": ["blessed_extension"]
729   },
730   "tts": {
731     "dependencies": ["permission:tts"],
732     "contexts": ["blessed_extension"]
733   },
734   "ttsEngine": {
735     "dependencies": ["permission:ttsEngine"],
736     "contexts": ["blessed_extension"]
737   },
738   "virtualKeyboardPrivate": {
739     "platforms": ["chromeos"],
740     "dependencies": ["permission:virtualKeyboardPrivate"],
741     "contexts": ["blessed_extension"]
742   },
743   "wallpaper": {
744     "platforms": ["chromeos"],
745     "dependencies": ["permission:wallpaper"],
746     "contexts": ["blessed_extension"]
747   },
748   "wallpaperPrivate": {
749     "platforms": ["chromeos"],
750     "dependencies": ["permission:wallpaperPrivate"],
751     "contexts": ["blessed_extension"]
752   },
753   "webNavigation": {
754     "dependencies": ["permission:webNavigation"],
755     "contexts": ["blessed_extension"]
756   },
757   "webRequest": {
758     "dependencies": ["permission:webRequest"],
759     "contexts": ["blessed_extension"]
760   },
761   "webRequestInternal": {
762     "internal": true,
763     "channel": "stable",
764     "contexts": ["blessed_extension", "unblessed_extension"]
765   },
766   "webrtcAudioPrivate": {
767     "dependencies": ["permission:webrtcAudioPrivate"],
768     "contexts": ["blessed_extension"]
769   },
770   "webrtcLoggingPrivate": {
771     "dependencies": ["permission:webrtcLoggingPrivate"],
772     "contexts": ["blessed_extension"]
773   },
774   "webstore": {
775     // Hosted apps can use the webstore API from within a blessed context.
776     "channel": "stable",
777     "extension_types": ["hosted_app"],
778     "contexts": ["blessed_web_page", "web_page"],
779     // Any webpage can use the webstore API.
780     "matches": ["http://*/*", "https://*/*"]
781   },
782   "webstorePrivate": {
783     "dependencies": ["permission:webstorePrivate"],
784     "contexts": ["blessed_extension"]
785   },
786   "webview": {
787     "internal": true,
788     "dependencies": ["permission:webview"],
789     "contexts": ["blessed_extension", "unblessed_extension"]
790   },
791   "webViewRequest": {
792     "dependencies": ["permission:webview"],
793     "contexts": ["blessed_extension", "unblessed_extension"]
794   },
795   "webviewTag": {
796     "internal": true,
797     "channel": "stable",
798     "dependencies": ["permission:webview"],
799     "contexts": ["blessed_extension"]
800   },
801   "windows": {
802     "dependencies": ["api:tabs"],
803     "contexts": ["blessed_extension"]
804   }