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