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// This features file defines manifest keys 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// 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 "about_page": { 20 "channel": "stable", 21 "extension_types": ["shared_module"] 22 }, 23 "app": { 24 "channel": "stable", 25 "extension_types": ["legacy_packaged_app", "hosted_app", "platform_app"] 26 }, 27 "app.isolation": { 28 "channel": "stable", 29 // Platform apps always have isolated storage, thus they cannot specify it 30 // via the manifest. 31 "extension_types": ["legacy_packaged_app", "hosted_app"] 32 }, 33 "app.launch": { 34 "channel": "stable", 35 "extension_types": ["legacy_packaged_app", "hosted_app"] 36 }, 37 "app.service_worker": { 38 "channel": "trunk", // When changing update tests: http://crbug.com/353209 39 "extension_types": ["platform_app"] 40 }, 41 "author": { 42 "channel": "stable", 43 "extension_types": "all" 44 }, 45 "automation": { 46 "channel": "trunk", 47 "extension_types": ["extension", "legacy_packaged_app"] 48 }, 49 "bluetooth": { 50 // Note: The "bluetooth" manifest permission is used by the 51 // chrome.bluetooth, chrome.bluetoothSocket and chrome.bluetoothLowEnergy 52 // APIs. 53 "channel": "stable", 54 "extension_types": ["platform_app"] 55 }, 56 "browser_action": { 57 "channel": "stable", 58 "extension_types": ["extension"] 59 }, 60 "chrome_settings_overrides": { 61 "channel": "stable", 62 "extension_types": ["extension"], 63 "platforms": ["win"] 64 }, 65 "chrome_ui_overrides": [{ 66 "channel": "dev", 67 "extension_types": ["extension"] 68 }, { 69 "channel": "stable", 70 "extension_types": ["extension"], 71 "whitelist": [ 72 "CB2E4E7174A398FCB3AFA6840500C2E1D22DA7B2", // Bookmark Manager 73 "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900 74 "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444 75 "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562 76 ] 77 }], 78 "chrome_url_overrides": { 79 "channel": "stable", 80 "extension_types": ["extension", "legacy_packaged_app"] 81 }, 82 "commands": { 83 "channel": "stable", 84 "extension_types": ["extension", "platform_app"], 85 "min_manifest_version": 2 86 }, 87 "content_pack": { 88 "channel": "dev", 89 "extension_types": ["extension"] 90 }, 91 "content_scripts": { 92 "channel": "stable", 93 "extension_types": ["extension", "legacy_packaged_app"] 94 }, 95 "converted_from_user_script": { 96 "channel": "stable", 97 "extension_types": [ 98 "extension", "legacy_packaged_app", "hosted_app" 99 ], 100 "no_doc": true 101 }, 102 "current_locale": { 103 "channel": "stable", 104 "extension_types": "all" 105 }, 106 "default_locale": { 107 "channel": "stable", 108 "extension_types": "all" 109 }, 110 "description": { 111 "channel": "stable", 112 "extension_types": "all" 113 }, 114 "devtools_page": { 115 "channel": "stable", 116 "extension_types": ["extension", "legacy_packaged_app"] 117 }, 118 "display_in_launcher": [ 119 { 120 "channel": "stable", 121 "extension_types": ["legacy_packaged_app", "platform_app", "hosted_app"], 122 "location": "component" 123 }, 124 { 125 "channel": "stable", 126 "extension_types": ["legacy_packaged_app", "platform_app"], 127 "whitelist": [ 128 "nmmhkkegccagdldgiimedpiccmgmieda" 129 ] 130 } 131 ], 132 "display_in_new_tab_page": [ 133 { 134 "channel": "stable", 135 "extension_types": ["legacy_packaged_app", "platform_app", "hosted_app"], 136 "location": "component" 137 }, 138 { 139 "channel": "stable", 140 "extension_types": ["legacy_packaged_app", "platform_app"], 141 "whitelist": [ 142 "nmmhkkegccagdldgiimedpiccmgmieda" 143 ] 144 } 145 ], 146 "export": [ 147 { 148 "channel": "stable", 149 "extension_types": ["shared_module"], 150 "whitelist": [ 151 "6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F", 152 "4EB74897CB187C7633357C2FE832E0AD6A44883A", 153 // Next four: http://crbug.com/357213 154 "mafeflapfdfljijmlienjedomfjfmhpd", 155 "ajchadodoajkaojdidnbblnfcdipbple", 156 "47F838F58D2A3B585DE50F29E3585D94999921D1", 157 "8EBAFB8DEB647EA2FC887A5E01EBD9BDC0FDC536" 158 ] 159 }, 160 { 161 "channel": "dev", 162 "extension_types": ["shared_module"] 163 } 164 ], 165 "externally_connectable": { 166 "channel": "stable", 167 "extension_types": [ 168 "extension", "hosted_app", "legacy_packaged_app", "platform_app" 169 ] 170 }, 171 "file_browser_handlers": [ 172 { 173 "channel": "stable", 174 "extension_types": ["extension", "legacy_packaged_app"] 175 }, 176 { 177 "channel": "stable", 178 "extension_types": ["platform_app"], 179 "location": "component" 180 } 181 ], 182 "file_handlers": [ 183 { 184 "channel": "stable", 185 "extension_types": ["platform_app"] 186 }, { 187 "channel": "stable", 188 "extension_types": [ "extension"], 189 "whitelist": [ 190 "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice 191 "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal 192 "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension 193 ] 194 }], 195 "homepage_url": { 196 "channel": "stable", 197 "extension_types": ["extension", "legacy_packaged_app"] 198 }, 199 "icons": { 200 "channel": "stable", 201 "extension_types": "all" 202 }, 203 "import": { 204 "channel": "stable", 205 "extension_types": "all" 206 }, 207 "input_components": { 208 "channel": "stable", 209 "extension_types": ["extension", "legacy_packaged_app"] 210 }, 211 "key": { 212 "channel": "stable", 213 "extension_types": "all" 214 }, 215 "manifest_version": { 216 "channel": "stable", 217 "extension_types": "all" 218 }, 219 "mime_types": { 220 "channel": "stable", 221 "extension_types": [ "extension", "legacy_packaged_app", "platform_app" ], 222 "whitelist": [ 223 "oickdpebdnfbgkcaoklfcdhjniefkcji", // browser_tests 224 "gbkeegbaiigmenfmjfclcdgdpimamgkj", // QuickOffice 225 "ionpfmkccalenbmnddpbmocokhaknphg", // QuickOffice Dev 226 "bpmcpldpdmajfigpchkicefoigmkfalc", // Quickoffice component extension 227 "ehibbfinohgbchlgdbfpikodjaojhccn", // Editor 228 "mhjfbmdgcfjbbpaeojofohoefgiehjai" // PDF 229 ] 230 }, 231 "mime_types_handler": { 232 "channel": "stable", 233 "extension_types": [ "extension", "legacy_packaged_app", "platform_app" ], 234 "whitelist": [ 235 "oickdpebdnfbgkcaoklfcdhjniefkcji", // browser_tests 236 "gbkeegbaiigmenfmjfclcdgdpimamgkj", // QuickOffice 237 "ionpfmkccalenbmnddpbmocokhaknphg", // QuickOffice Dev 238 "bpmcpldpdmajfigpchkicefoigmkfalc", // Quickoffice component extension 239 "ehibbfinohgbchlgdbfpikodjaojhccn", // Editor 240 "mhjfbmdgcfjbbpaeojofohoefgiehjai" // PDF 241 ] 242 }, 243 "minimum_chrome_version": { 244 "channel": "stable", 245 "extension_types": [ 246 "extension", "legacy_packaged_app", "hosted_app", "platform_app" 247 ] 248 }, 249 "nacl_modules": { 250 "channel": "stable", 251 "extension_types": [ 252 "extension", "legacy_packaged_app", "hosted_app", "platform_app" 253 ] 254 }, 255 "name": { 256 "channel": "stable", 257 "extension_types": "all" 258 }, 259 "oauth2": { 260 "channel": "stable", 261 "extension_types": [ 262 "extension", "legacy_packaged_app", "platform_app" 263 ] 264 }, 265 "oauth2.auto_approve": { 266 "channel": "stable", 267 "extension_types": [ 268 "extension", "platform_app" 269 ], 270 "whitelist": [ 271 "mdbihdcgjmagbcapkhhkjbbdlkflmbfo", // unit_tests 272 "pafkbggdmjlpgkdkcbjmhmfcdpncadgh", // Google Now 273 "nmmhkkegccagdldgiimedpiccmgmieda", // In-app payments support app. 274 "4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C", 275 "F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA", 276 "1A26E32DE447A17CBE5E9750CDBA78F58539B39C", // TODO(rockot): Kill these. 277 "E61F841D8210B6A9891E5384CB665FBED31FCD7B" // http://crbug.com/281715 278 ] 279 }, 280 "omnibox": { 281 "channel": "stable", 282 "extension_types": ["extension", "legacy_packaged_app"] 283 }, 284 "optional_permissions": { 285 "channel": "stable", 286 "extension_types": [ 287 "extension", "legacy_packaged_app", "hosted_app", "platform_app" 288 ] 289 }, 290 "options_page": { 291 "channel": "stable", 292 "extension_types": [ 293 "extension", "legacy_packaged_app", "hosted_app" 294 ] 295 }, 296 "page_action": { 297 "channel": "stable", 298 "extension_types": ["extension"] 299 }, 300 "page_actions": { 301 "channel": "stable", 302 "extension_types": ["extension"], 303 "max_manifest_version": 1 304 }, 305 "permissions": { 306 "channel": "stable", 307 "extension_types": [ 308 "extension", "legacy_packaged_app", "hosted_app", "platform_app" 309 ] 310 }, 311 "platforms": { 312 "channel": "stable", 313 "extension_types": "all" 314 }, 315 "plugins": { 316 "channel": "stable", 317 "extension_types": ["extension", "legacy_packaged_app", "hosted_app"] 318 }, 319 "requirements": { 320 "channel": "stable", 321 "extension_types": [ 322 "extension", "legacy_packaged_app", "hosted_app", "platform_app" 323 ] 324 }, 325 "script_badge": { 326 "channel": "trunk", 327 "extension_types": ["extension"] 328 }, 329 "short_name": { 330 "channel": "stable", 331 "extension_types": "all" 332 }, 333 "signature": { 334 "channel": "stable", 335 "extension_types": "all" 336 }, 337 "spellcheck": { 338 "channel": "dev", 339 "extension_types": ["extension"] 340 }, 341 "storage": { 342 "channel": "stable", 343 "extension_types": ["extension", "legacy_packaged_app", "platform_app"], 344 "min_manifest_version": 2 345 }, 346 "system_indicator": [ 347 { 348 "channel": "dev", 349 "extension_types": ["extension", "legacy_packaged_app", "platform_app"] 350 }, 351 { 352 "channel": "stable", 353 "whitelist": [ 354 "F29716B08705C9D3C12CDFE3F638BAE709570C31", // browser_tests 355 // See crbug.com/245730 for details on the Hangouts whitelist. 356 "53041A2FA309EECED01FFC751E7399186E860B2C", // Hangouts 357 "312745D9BF916161191143F6490085EEA0434997", // Hangouts beta 358 "A74A4D44C7CFCD8844830E6140C8D763E12DD8F3", // Hangouts alpha 359 "E7E2461CE072DF036CF9592740196159E2D7C089", // Hangouts debug 360 "49DA0B9CCEEA299186C6E7226FD66922D57543DC" // Hangouts dev 361 ], 362 "extension_types": ["extension", "platform_app"] 363 } 364 ], 365 "theme": { 366 "channel": "stable", 367 "extension_types": ["theme"] 368 }, 369 "tts_engine": { 370 "channel": "stable", 371 "extension_types": ["extension", "legacy_packaged_app"] 372 }, 373 "update_url": { 374 "channel": "stable", 375 "extension_types": "all" 376 }, 377 "url_handlers": { 378 "channel": "stable", 379 "extension_types": ["platform_app"] 380 }, 381 "version": { 382 "channel": "stable", 383 "extension_types": "all" 384 } 385} 386