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 manifest keys 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// To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
10//
11// $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
12// sha1sum | tr '[:lower:]' '[:upper:]'
13// 9A0417016F345C934A1A88F55CA17C05014EEEBA  -
14//
15// Google employees: please update http://go/chrome-api-whitelist to map
16// hashes back to ids.
17
18{
19  // The default platform app CSP can only be overridden by whitelisted apps.
20  // This is a separate key from the top-level content_security_policy one since
21  // we can't combine type restrictions with whitelisted ID restrictions. If
22  // there is a need for additional whitelisted entries, the feature system
23  // should instead be extended to support OR-ing of restrictions.
24  "app.content_security_policy": {
25    "channel": "stable",
26    "extension_types": ["platform_app"],
27    "min_manifest_version": 2,
28    "whitelist": [
29      "nckgahadagoaajjgafhacjanaoiihapd",  // Google Talk prod
30      "eggnbpckecmjlblplehfpjjdhhidfdoj",  // Google Talk beta
31      "ppleadejekpmccmnpjdimmlfljlkdfej",  // Google Talk alpha
32      "ljclpkphhpbpinifbeabbhlfddcpfdde",   // Google Talk debug
33      "lphgohfeebnhcpiohjndkgbhhkoapkjc" // Apps Debugger
34    ]
35  },
36  "app.background": {
37    "channel": "stable",
38    "extension_types": ["platform_app"],
39    "min_manifest_version": 2
40  },
41  "background": {
42    "channel": "stable",
43    "extension_types": [
44      // Platform apps specify their background page via app.background.
45      "extension", "legacy_packaged_app", "hosted_app"
46    ]
47  },
48  "background.persistent": {
49    "channel": "stable",
50    "extension_types": [
51      "extension", "legacy_packaged_app"
52    ],
53    "min_manifest_version": 2
54  },
55  "background_page": {
56    "channel": "stable",
57    "extension_types": [
58      "extension", "legacy_packaged_app", "hosted_app"
59    ],
60    "max_manifest_version": 1
61  },
62  "content_security_policy": {
63    "channel": "stable",
64    // Platform apps have a restricted content security policy that cannot be
65    // overriden (except for a whitelist of exceptions, see the
66    // app.content_security_policy whitelist).
67    "extension_types": ["extension", "legacy_packaged_app"]
68  },
69  "description": {
70    "channel": "stable",
71    "extension_types": "all"
72  },
73  "externally_connectable": {
74    "channel": "stable",
75    "extension_types": [
76      "extension", "hosted_app", "legacy_packaged_app", "platform_app"
77    ]
78  },
79  "file_handlers": [
80    {
81      "channel": "stable",
82      "extension_types": ["platform_app"]
83    }, {
84      "channel": "stable",
85      "extension_types": [ "extension"],
86      "whitelist": [
87        "2FC374607C2DF285634B67C64A2E356C607091C3",  // Quickoffice
88        "3727DD3E564B6055387425027AD74C58784ACC15",  // Quickoffice internal
89        "12E618C3C6E97495AAECF2AC12DEB082353241C6"   // QO component extension
90      ]
91    }
92  ],
93  "icons": {
94    "channel": "stable",
95    "extension_types": "all"
96  },
97  "incognito": [
98    {
99      "channel": "stable",
100      "extension_types": ["extension", "legacy_packaged_app"]
101    },
102    {
103      "channel": "stable",
104      "extension_types": ["platform_app"],
105      "location": "component"
106    }
107  ],
108  "kiosk_enabled": {
109    "channel": "stable",
110    "extension_types": [
111      "platform_app"
112    ]
113  },
114  "kiosk_only": {
115    "channel": "dev",
116    "extension_types": [
117      "platform_app"
118    ]
119  },
120  "launcher_page": {
121    "channel": "stable",
122    "min_manifest_version": 2,
123    "extension_types": ["platform_app"],
124    "whitelist": [
125      "07BD6A765FFC289FF755D7CAB2893A40EC337FEC",  // http://crbug.com/404000
126      "896B85CC7E913E11C34892C1425A093C0701D386",  // http://crbug.com/404000
127      "11A01C82EF355E674E4F9728A801F5C3CB40D83F"   // http://crbug.com/404000
128    ]
129  },
130  "manifest_version": {
131    "channel": "stable",
132    "extension_types": "all"
133  },
134  "nacl_modules": {
135    "channel": "stable",
136    "extension_types": [
137      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
138    ]
139  },
140  "name": {
141    "channel": "stable",
142    "extension_types": "all"
143  },
144  "offline_enabled": {
145    "channel": "stable",
146    "extension_types": [
147      "extension", "legacy_packaged_app", "hosted_app", "platform_app"
148    ]
149  },
150  "options_ui": {
151    "channel": "trunk",
152    "extension_types": ["extension", "legacy_packaged_app"]
153  },
154  "sandbox": {
155    "channel": "stable",
156    "extension_types": [
157      "extension", "platform_app", "legacy_packaged_app"
158    ],
159    "min_manifest_version": 2
160  },
161  "sockets": {
162    "channel": "stable",
163    "extension_types": ["platform_app"]
164  },
165  "version": {
166    "channel": "stable",
167    "extension_types": "all"
168  },
169  "web_accessible_resources": [
170    {
171      "channel": "stable",
172      "extension_types": [
173        "extension", "legacy_packaged_app", "hosted_app"
174      ]
175    },
176    {
177      "channel": "stable",
178      "extension_types": ["platform_app"],
179      "location": "component"
180    }
181  ],
182  "webview": {
183    "channel": "stable",
184    "extension_types": ["platform_app"],
185    "min_manifest_version": 2
186  }
187}
188