Home | History | Annotate | Download | only in api
      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