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