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.
5 // See c/c/e/features/* to understand this file, in particular feature.h,
6 // simple_feature.h, and base_feature_provider.h.
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.
12 "activityLogPrivate": {
13 "dependencies": ["permission:activityLogPrivate"],
14 "contexts": ["blessed_extension"]
17 "dependencies": ["permission:adview"],
18 "contexts": ["blessed_extension"]
21 "dependencies": ["permission:alarms"],
22 "contexts": ["blessed_extension"]
26 "extension_types": ["hosted_app", "extension", "legacy_packaged_app"],
29 "unblessed_extension",
35 "http://*/*", "https://*/*", "chrome-extension://*/*", "file://*/*"
40 "contexts": ["blessed_extension"],
41 "dependencies": ["permission:app.runtime"]
45 "contexts": ["blessed_extension"],
46 "dependencies": ["permission:app.window"]
48 "app.currentWindowInternal": {
52 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
55 "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
58 "app.getDetailsForFrame": {
59 "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
62 "app.getIsInstalled": {
63 "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
67 "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
71 "contexts": ["blessed_extension", "unblessed_extension", "content_script"],
75 "dependencies": ["permission:audio"],
76 "contexts": ["blessed_extension"]
79 "dependencies": ["permission:autotestPrivate"],
80 "contexts": ["blessed_extension"]
83 "dependencies": ["permission:bluetooth"],
84 "contexts": ["blessed_extension"]
86 "bookmarkManagerPrivate": {
87 "dependencies": ["permission:bookmarkManagerPrivate"],
88 "contexts": ["blessed_extension"]
91 "dependencies": ["permission:bookmarks"],
92 "contexts": ["blessed_extension"]
95 "extension_types": ["extension"],
96 "location": "component"
99 "extension_types": ["extension"],
100 "location": "component"
102 "brailleDisplayPrivate": {
103 "dependencies": ["permission:brailleDisplayPrivate"],
104 "contexts": ["blessed_extension"]
107 "dependencies": ["manifest:browser_action"],
108 "contexts": ["blessed_extension"]
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": [{
115 "dependencies": ["manifest:browser_action"],
116 "contexts": ["blessed_extension"]
119 "dependencies": ["manifest:browser_action"],
121 "enhhojjnijigcajfphajepfemndkmdlo", // Dev
122 "pkedcjkdefgpdelpbcmbmeomcjbeemfm", // Trusted Tester
123 "fmfcbgogabcbclcofgocippekhfcmgfj", // Staging
124 "hfaagokkkhdbgiakmmlclaapfelnkoah", // Canary
125 "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
126 "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Release
128 "contexts": ["blessed_extension"]
131 "dependencies": ["permission:browsingData"],
132 "contexts": ["blessed_extension"]
135 "dependencies": ["permission:cast"],
136 "contexts": ["blessed_extension"]
138 "cast.streaming.rtpStream": {
139 "dependencies": ["permission:cast.streaming"],
140 "contexts": ["blessed_extension"]
142 "cast.streaming.session": {
143 "dependencies": ["permission:cast.streaming"],
144 "contexts": ["blessed_extension"]
146 "cast.streaming.udpTransport": {
147 "dependencies": ["permission:cast.streaming"],
148 "contexts": ["blessed_extension"]
150 "chromeosInfoPrivate": {
151 "platforms": ["chromeos"],
152 "dependencies": ["permission:chromeosInfoPrivate"],
153 "contexts": ["blessed_extension"]
155 "cloudPrintPrivate": {
156 "dependencies": ["permission:cloudPrintPrivate"],
157 "contexts": ["blessed_extension"]
159 "commandLinePrivate": {
160 "dependencies": ["permission:commandLinePrivate"],
161 "contexts": ["blessed_extension"]
164 "dependencies": ["manifest:commands"],
165 "contexts": ["blessed_extension"]
168 "dependencies": ["permission:contentSettings"],
169 "contexts": ["blessed_extension"]
172 "dependencies": ["permission:contextMenus"],
173 "contexts": ["blessed_extension"]
176 "dependencies": ["permission:cookies"],
177 "contexts": ["blessed_extension"]
180 "dependencies": ["permission:debugger"],
181 "contexts": ["blessed_extension"]
183 "declarativeContent": {
184 "dependencies": ["permission:declarativeContent"],
185 "contexts": ["blessed_extension"]
187 "declarativeWebRequest": {
188 "dependencies": ["permission:declarativeWebRequest"],
189 "contexts": ["blessed_extension"]
192 "dependencies": ["permission:desktopCapture"],
193 "contexts": ["blessed_extension"]
195 "developerPrivate": {
196 "dependencies": ["permission:developerPrivate"],
197 "contexts": ["blessed_extension"]
199 "devtools.inspectedWindow": {
200 "dependencies": ["manifest:devtools_page"],
201 "contexts": ["blessed_extension"]
203 "devtools.network": {
204 "dependencies": ["manifest:devtools_page"],
205 "contexts": ["blessed_extension"]
208 "dependencies": ["manifest:devtools_page"],
209 "contexts": ["blessed_extension"]
212 "dependencies": ["permission:diagnostics"],
213 "extension_types": ["platform_app"],
214 "contexts": ["blessed_extension"]
217 "dependencies": ["permission:dial"],
218 "contexts": ["blessed_extension"]
221 "dependencies": ["permission:dns"],
222 "contexts": ["blessed_extension"]
225 "dependencies": ["permission:downloads"],
226 "contexts": ["blessed_extension"]
228 "downloadsInternal": {
231 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
234 "platforms": ["chromeos"],
235 "dependencies": ["permission:echoPrivate"],
236 "contexts": ["blessed_extension"]
238 "enterprise.platformKeysPrivate": {
239 "platforms": ["chromeos"],
240 "dependencies": ["permission:enterprise.platformKeysPrivate"],
241 "contexts": ["blessed_extension"]
246 "extension_types": ["platform_app", "extension"],
248 "matches": ["<all_urls>"]
250 "experimental.accessibility": {
251 "dependencies": ["permission:experimental"],
252 "contexts": ["blessed_extension"]
254 "experimental.devtools.audits": {
255 "dependencies": ["permission:experimental", "manifest:devtools_page"],
256 "extension_types": ["platform_app"],
257 "contexts": ["blessed_extension"]
259 "experimental.devtools.console": {
260 "dependencies": ["permission:experimental", "manifest:devtools_page"],
261 "extension_types": ["platform_app"],
262 "contexts": ["blessed_extension"]
266 "extension_types": ["extension", "legacy_packaged_app"],
267 "contexts": ["blessed_extension"]
269 "extension.getURL": {
270 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
272 "extension.inIncognitoContext": {
273 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
275 "extension.lastError": {
276 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
278 "extension.onRequest": {
279 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
281 "extension.sendNativeMessage": {
282 "dependencies": ["permission:nativeMessaging"]
284 "extension.sendRequest": {
285 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
288 "dependencies": ["permission:feedbackPrivate"],
289 "contexts": ["blessed_extension"]
291 "fileBrowserHandler": {
292 "platforms": ["chromeos"],
293 "dependencies": ["permission:fileBrowserHandler"],
294 "contexts": ["blessed_extension"]
296 "fileBrowserHandlerInternal": {
298 "platforms": ["chromeos"],
300 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
302 "screenlockPrivate": {
303 "platforms": ["chromeos"],
304 "dependencies": ["permission:screenlockPrivate"],
305 "extension_types": ["platform_app"],
306 "contexts": ["blessed_extension", "unblessed_extension"]
308 "fileBrowserPrivate": {
309 "platforms": ["chromeos"],
310 "dependencies": ["permission:fileBrowserPrivate"],
311 "contexts": ["blessed_extension"]
314 "dependencies": ["permission:fileSystem"],
315 "contexts": ["blessed_extension"]
317 "fileSystemProvider": {
318 "dependencies": ["permission:fileSystemProvider"],
319 "contexts": ["blessed_extension"]
322 "platforms": ["chromeos"],
323 "dependencies": ["permission:firstRunPrivate"],
324 "contexts": ["blessed_extension"]
327 "dependencies": ["permission:fontSettings"],
328 "contexts": ["blessed_extension"]
331 "dependencies": ["permission:gcm"],
332 "contexts": ["blessed_extension"]
336 "contexts": ["blessed_extension"],
338 // http://crbug.com/309737
339 "nckgahadagoaajjgafhacjanaoiihapd",
340 "ljclpkphhpbpinifbeabbhlfddcpfdde",
341 "ppleadejekpmccmnpjdimmlfljlkdfej",
342 "eggnbpckecmjlblplehfpjjdhhidfdoj"
346 "dependencies": ["permission:history"],
347 "contexts": ["blessed_extension"]
351 "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
352 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
355 "dependencies": ["permission:identity"],
356 "contexts": ["blessed_extension"]
359 "dependencies": ["permission:identityPrivate"],
360 "contexts": ["blessed_extension"]
363 "dependencies": ["permission:idltest"],
364 "contexts": ["blessed_extension"]
367 "dependencies": ["permission:idle"],
368 "contexts": ["blessed_extension"]
371 "dependencies": ["permission:infobars"],
372 "contexts": ["blessed_extension"]
375 "platforms": ["chromeos"],
376 "dependencies": ["permission:input"],
377 "contexts": ["blessed_extension"]
379 "inputMethodPrivate": {
380 "platforms": ["chromeos"],
381 "dependencies": ["permission:inputMethodPrivate"],
382 "contexts": ["blessed_extension"]
385 "dependencies": ["permission:location"],
386 "contexts": ["blessed_extension"]
389 "dependencies": ["permission:logPrivate"],
390 "extension_types": ["extension", "legacy_packaged_app"],
391 "contexts": ["blessed_extension"]
394 "dependencies": ["permission:management"],
395 "contexts": ["blessed_extension"]
397 "management.getPermissionWarningsByManifest": {
400 "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
402 "management.uninstallSelf": {
405 "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
407 // This is not a real API, only here for documentation purposes.
408 // See http://crbug.com/275944 for background.
412 "contexts": ["blessed_extension"]
415 "dependencies": ["permission:mediaGalleries"],
416 "contexts": ["blessed_extension"]
418 "mediaGalleries.getMetadata": {
420 "dependencies": ["permission:mediaGalleries"],
421 "contexts": ["blessed_extension"]
423 "mediaGalleries.startMediaScan": {
425 "dependencies": ["permission:mediaGalleries"],
426 "contexts": ["blessed_extension"]
428 "mediaGalleries.cancelMediaScan": {
430 "dependencies": ["permission:mediaGalleries"],
431 "contexts": ["blessed_extension"]
433 "mediaGalleries.addScanResults": {
435 "dependencies": ["permission:mediaGalleries"],
436 "contexts": ["blessed_extension"]
438 "mediaGalleries.onScanProgress": {
440 "dependencies": ["permission:mediaGalleries"],
441 "contexts": ["blessed_extension"]
443 "mediaGalleriesPrivate": {
444 "dependencies": ["permission:mediaGalleriesPrivate"],
445 "contexts": ["blessed_extension"]
447 "mediaPlayerPrivate": {
448 "platforms": ["chromeos"],
449 "dependencies": ["permission:mediaPlayerPrivate"],
450 "contexts": ["blessed_extension"]
453 "dependencies": ["permission:metricsPrivate"],
454 "contexts": ["blessed_extension"]
457 "dependencies": ["permission:mdns"],
458 "contexts": ["blessed_extension"]
460 "musicManagerPrivate": {
461 "dependencies": ["permission:musicManagerPrivate"],
462 "contexts": ["blessed_extension"]
464 "networkingPrivate": {
465 "platforms": ["chromeos", "win"],
466 "dependencies": ["permission:networkingPrivate"],
467 "contexts": ["blessed_extension"]
470 "dependencies": ["permission:notifications"],
471 "contexts": ["blessed_extension"]
474 "dependencies": ["manifest:omnibox"],
475 "contexts": ["blessed_extension"]
478 "dependencies": ["manifest:page_action"],
479 "contexts": ["blessed_extension"]
482 "dependencies": ["manifest:page_actions"],
483 "contexts": ["blessed_extension"]
486 "dependencies": ["permission:pageCapture"],
487 "contexts": ["blessed_extension"]
491 "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
492 "contexts": ["blessed_extension"]
495 "dependencies": ["permission:power"],
496 "contexts": ["blessed_extension"]
498 "preferencesPrivate": {
499 "dependencies": ["permission:preferencesPrivate"],
500 "contexts": ["blessed_extension"]
502 "principalsPrivate": {
503 "dependencies": ["permission:principalsPrivate"],
504 "contexts": ["blessed_extension"]
507 "dependencies": ["permission:privacy"],
508 "contexts": ["blessed_extension"]
511 "dependencies": ["permission:processes"],
512 "contexts": ["blessed_extension"]
515 "dependencies": ["permission:proxy"],
516 "contexts": ["blessed_extension"]
519 "dependencies": ["permission:pushMessaging"],
520 "contexts": ["blessed_extension"]
522 "imageWriterPrivate": {
523 "dependencies": ["permission:imageWriterPrivate"],
524 "extension_types": ["platform_app"],
525 "contexts": ["blessed_extension"]
527 "readingListPrivate": {
528 "dependencies": ["permission:readingListPrivate"],
529 "contexts": ["blessed_extension"]
532 "dependencies": ["permission:rtcPrivate"],
533 "contexts": ["blessed_extension"]
537 "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
538 "contexts": ["blessed_extension"]
542 "matches": ["<all_urls>"]
544 "runtime.getManifest": {
545 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
548 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
551 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
553 "runtime.lastError": {
555 "extension_types": "all",
556 "matches": ["<all_urls>"]
558 "runtime.onConnect": {
559 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
561 "runtime.onMessage": {
562 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
565 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
567 "runtime.requestUpdateCheck": {
568 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
570 "runtime.sendMessage": {
572 "matches": ["<all_urls>"]
574 "runtime.setUninstallURL": {
576 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
579 "dependencies": ["manifest:script_badge"],
580 "contexts": ["blessed_extension"]
583 "dependencies": ["permission:serial"],
584 "contexts": ["blessed_extension"]
587 "dependencies": ["permission:sessions"],
588 "contexts": ["blessed_extension"]
591 "dependencies": ["permission:signedInDevices"],
592 "contexts": ["blessed_extension"]
595 "dependencies": ["permission:socket"],
596 "contexts": ["blessed_extension"]
599 "dependencies": ["manifest:sockets"],
600 "contexts": ["blessed_extension"]
602 "sockets.tcpServer": {
603 "dependencies": ["manifest:sockets"],
604 "contexts": ["blessed_extension"]
607 "dependencies": ["manifest:sockets"],
608 "contexts": ["blessed_extension"]
611 "dependencies": ["permission:storage"],
612 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
615 "dependencies": ["permission:streamsPrivate"],
616 "contexts": ["blessed_extension"]
619 "dependencies": ["permission:syncFileSystem"],
620 "contexts": ["blessed_extension"]
623 "dependencies": ["manifest:system_indicator"],
624 "contexts": ["blessed_extension"]
627 "dependencies": ["permission:system.cpu"],
628 "contexts": ["blessed_extension"]
631 "dependencies": ["permission:system.display"],
632 "contexts": ["blessed_extension"]
635 "dependencies": ["permission:system.memory"],
636 "contexts": ["blessed_extension"]
639 "dependencies": ["permission:system.network"],
640 "contexts": ["blessed_extension"]
643 "dependencies": ["permission:system.storage"],
644 "contexts": ["blessed_extension"]
646 "system.storage.getAvailableCapacity": {
650 "dependencies": ["permission:systemPrivate"],
651 "contexts": ["blessed_extension"]
654 "dependencies": ["permission:tabCapture"],
655 "contexts": ["blessed_extension"]
659 "extension_types": ["extension", "legacy_packaged_app"],
660 "contexts": ["blessed_extension"]
663 "platforms": ["chromeos"],
664 "dependencies": ["permission:terminalPrivate"],
665 "contexts": ["blessed_extension"]
669 "extension_types": "all",
670 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
673 "dependencies": ["permission:topSites"],
674 "contexts": ["blessed_extension"]
677 "dependencies": ["permission:tts"],
678 "contexts": ["blessed_extension"]
681 "dependencies": ["permission:ttsEngine"],
682 "contexts": ["blessed_extension"]
686 "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
687 "contexts": ["blessed_extension"]
691 "extension_types": ["extension"],
692 "location": "component"
695 "dependencies": ["permission:usb"],
696 "contexts": ["blessed_extension"]
698 "virtualKeyboardPrivate": {
699 "platforms": ["chromeos"],
700 "dependencies": ["permission:virtualKeyboardPrivate"],
701 "contexts": ["blessed_extension"]
704 "platforms": ["chromeos"],
705 "dependencies": ["permission:wallpaper"],
706 "contexts": ["blessed_extension"]
708 "wallpaperPrivate": {
709 "platforms": ["chromeos"],
710 "dependencies": ["permission:wallpaperPrivate"],
711 "contexts": ["blessed_extension"]
714 "dependencies": ["permission:webNavigation"],
715 "contexts": ["blessed_extension"]
718 "dependencies": ["permission:webRequest"],
719 "contexts": ["blessed_extension"]
721 "webRequestInternal": {
724 "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
726 "webrtcAudioPrivate": {
727 "dependencies": ["permission:webrtcAudioPrivate"],
728 "contexts": ["blessed_extension"]
730 "webrtcLoggingPrivate": {
731 "dependencies": ["permission:webrtcLoggingPrivate"],
732 "contexts": ["blessed_extension"]
735 // Hosted apps can use the webstore API from within a blessed context.
737 "extension_types": ["hosted_app"],
738 "contexts": ["blessed_web_page", "web_page"],
739 // Any webpage can use the webstore API.
740 "matches": ["http://*/*", "https://*/*"]
743 "dependencies": ["permission:webstorePrivate"],
744 "contexts": ["blessed_extension"]
748 "dependencies": ["permission:webview"],
749 "contexts": ["blessed_extension", "unblessed_extension"]
752 "dependencies": ["permission:webview"],
753 "contexts": ["blessed_extension", "unblessed_extension"]
758 "dependencies": ["permission:webview"],
759 "contexts": ["blessed_extension"]
762 "dependencies": ["api:tabs"],
763 "contexts": ["blessed_extension"]