8812cd4b5c889bde714f3b4a554c34aaa9426577
[platform/framework/web/crosswalk.git] / src / extensions / common / api / _api_features.json
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // This features file defines extension APIs implemented under src/extensions.
6 // See extensions/common/features/* to understand this file, in particular
7 // feature.h, simple_feature.h, and base_feature_provider.h.
8 //
9 // Note that specifying "web_page", "blessed_web_page", or "all" as a context
10 // type will require manually updating chrome/renderer/resources/dispatcher.cc.
11
12 // To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
13 //
14 // $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
15 // sha1sum | tr '[:lower:]' '[:upper:]'
16 // 9A0417016F345C934A1A88F55CA17C05014EEEBA  -
17 //
18 // Google employees: please update http://go/chrome-api-whitelist to map
19 // hashes back to ids.
20
21 {
22   "app.runtime": [{
23     "channel": "stable",
24     "contexts": ["blessed_extension"],
25     "extension_types": ["platform_app"],
26     "noparent": true
27   }, {
28     "channel": "stable",
29     "component_extensions_auto_granted": false,
30     "contexts": ["blessed_extension"],
31     "extension_types": ["extension"],
32     "noparent": true,
33     "whitelist": [
34       "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
35       "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
36       "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
37     ]
38   }],
39   "dns": {
40     "dependencies": ["permission:dns"],
41     "contexts": ["blessed_extension"]
42   },
43   "hid": {
44     "dependencies": ["permission:hid"],
45     "contexts": ["blessed_extension"]
46   },
47   "power": {
48     "dependencies": ["permission:power"],
49     "contexts": ["blessed_extension"]
50   },
51   "runtime": {
52     "channel": "stable",
53     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
54     "contexts": ["blessed_extension"]
55   },
56   "runtime.getManifest": {
57     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
58   },
59   "runtime.connect": {
60     // Everything except WebUI.
61     "contexts": [
62       "blessed_web_page",
63       "content_script",
64       "blessed_extension",
65       "unblessed_extension",
66       "web_page"
67     ],
68     "matches": ["<all_urls>"]
69   },
70   "runtime.getURL": {
71     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
72   },
73   "runtime.id": {
74     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
75   },
76   "runtime.lastError": {
77     "contexts": "all",
78     "extension_types": "all",
79     "matches": ["<all_urls>"]
80   },
81   "runtime.onConnect": {
82     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
83   },
84   "runtime.onMessage": {
85     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
86   },
87   "runtime.sendMessage": {
88     // Everything except WebUI.
89     "contexts": [
90       "blessed_web_page",
91       "content_script",
92       "blessed_extension",
93       "unblessed_extension",
94       "web_page"
95     ],
96     "matches": ["<all_urls>"]
97   },
98   "runtime.setUninstallURL": {
99     "channel": "dev"
100   },
101   "serial": {
102     "dependencies": ["permission:serial"],
103     "contexts": ["blessed_extension"]
104   },
105   "socket": {
106     "dependencies": ["permission:socket"],
107     "contexts": ["blessed_extension"]
108   },
109   "sockets.tcp": {
110     "dependencies": ["manifest:sockets"],
111     "contexts": ["blessed_extension"]
112   },
113   "sockets.tcpServer": {
114     "dependencies": ["manifest:sockets"],
115     "contexts": ["blessed_extension"]
116   },
117   "sockets.udp": {
118     "dependencies": ["manifest:sockets"],
119     "contexts": ["blessed_extension"]
120   },
121   "storage": {
122     "dependencies": ["permission:storage"],
123     "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
124   },
125   "test": [{
126     "internal": true,
127     "channel": "stable",
128     "extension_types": "all",
129     // Everything except web pages and WebUI. WebUI is declared in a separate
130     // rule to keep the "matches" property isolated.
131     "contexts": [
132       "blessed_extension",
133       "blessed_web_page",
134       "content_script",
135       "unblessed_extension"
136     ]
137   }, {
138     "internal": true,
139     "channel": "stable",
140     "contexts": ["webui"],
141     "matches": [
142       "chrome://extensions-frame/*"
143     ]
144   }],
145   "types": {
146     "channel": "stable",
147     "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
148     "contexts": ["blessed_extension"]
149   },
150   "types.private": {
151     "channel": "dev",
152     "extension_types": ["extension"],
153     "location": "component"
154   },
155   "usb": {
156     "dependencies": ["permission:usb"],
157     "contexts": ["blessed_extension"]
158   },
159   "usbPrivate": {
160     "channel": "dev",
161     "contexts": ["webui"]
162   }
163 }