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 extension APIs 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// 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 "accessibilityFeatures": [{ 23 "platforms": ["chromeos"], 24 "dependencies": ["permission:accessibilityFeatures.modify"], 25 "contexts": ["blessed_extension"] 26 }, { 27 "platforms": ["chromeos"], 28 "dependencies": ["permission:accessibilityFeatures.read"], 29 "contexts": ["blessed_extension"] 30 }], 31 "accessibilityPrivate": { 32 "dependencies": ["permission:accessibilityPrivate"], 33 "contexts": ["blessed_extension"] 34 }, 35 "activityLogPrivate": { 36 "dependencies": ["permission:activityLogPrivate"], 37 "contexts": ["blessed_extension"] 38 }, 39 "alarms": { 40 "dependencies": ["permission:alarms"], 41 "contexts": ["blessed_extension"] 42 }, 43 "app": { 44 "blacklist": [ 45 "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice 46 "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal 47 "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension 48 ], 49 "channel": "stable", 50 "extension_types": ["hosted_app", "extension", "legacy_packaged_app"], 51 "contexts": [ 52 "blessed_extension", 53 "unblessed_extension", 54 "content_script", 55 "web_page", 56 "blessed_web_page" 57 ], 58 "matches": [ 59 "http://*/*", "https://*/*", "chrome-extension://*/*", "file://*/*" 60 ] 61 }, 62 "app.runtime": [{ 63 "channel": "stable", 64 "contexts": ["blessed_extension"], 65 "extension_types": ["platform_app"], 66 "noparent": true 67 }, { 68 "channel": "stable", 69 "component_extensions_auto_granted": false, 70 "contexts": ["blessed_extension"], 71 "extension_types": ["extension"], 72 "noparent": true, 73 "whitelist": [ 74 "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice 75 "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal 76 "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension 77 ] 78 }], 79 "app.window": { 80 "channel": "stable", 81 "contexts": ["blessed_extension"], 82 "extension_types": ["platform_app"], 83 "noparent": true 84 }, 85 "app.currentWindowInternal": { 86 "noparent": true, 87 "internal": true, 88 "channel": "stable", 89 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 90 }, 91 "app.currentWindowInternal.setShape": { 92 "dependencies": ["permission:app.window.shape"], 93 "contexts": ["blessed_extension"] 94 }, 95 "app.getDetails": { 96 "contexts": ["blessed_extension", "unblessed_extension", "content_script"], 97 "matches": [] 98 }, 99 "app.getDetailsForFrame": { 100 "contexts": ["blessed_extension", "unblessed_extension", "content_script"], 101 "matches": [] 102 }, 103 "app.getIsInstalled": { 104 "contexts": ["blessed_extension", "unblessed_extension", "content_script"], 105 "matches": [] 106 }, 107 "app.installState": { 108 "contexts": ["blessed_extension", "unblessed_extension", "content_script"], 109 "matches": [] 110 }, 111 "app.runningState": { 112 "contexts": ["blessed_extension", "unblessed_extension", "content_script"], 113 "matches": [] 114 }, 115 "audio": { 116 "dependencies": ["permission:audio"], 117 "contexts": ["blessed_extension"] 118 }, 119 "automationInternal": { 120 "internal": true, 121 "dependencies": ["manifest:automation"], 122 "contexts": ["blessed_extension"] 123 }, 124 "automation": { 125 "dependencies": ["manifest:automation"], 126 "contexts": ["blessed_extension"] 127 }, 128 "autotestPrivate": { 129 "dependencies": ["permission:autotestPrivate"], 130 "contexts": ["blessed_extension"] 131 }, 132 "bluetooth": { 133 "dependencies": ["manifest:bluetooth"], 134 "contexts": ["blessed_extension"] 135 }, 136 "bluetoothLowEnergy": { 137 "dependencies": ["manifest:bluetooth"], 138 "contexts": ["blessed_extension"] 139 }, 140 "bluetoothPrivate": { 141 "dependencies": ["permission:bluetoothPrivate"], 142 "contexts": ["blessed_extension"] 143 }, 144 "bluetoothSocket": { 145 "dependencies": ["manifest:bluetooth"], 146 "contexts": ["blessed_extension"] 147 }, 148 "bookmarkManagerPrivate": { 149 "dependencies": ["permission:bookmarkManagerPrivate"], 150 "contexts": ["blessed_extension"] 151 }, 152 "bookmarks": { 153 "dependencies": ["permission:bookmarks"], 154 "contexts": ["blessed_extension"] 155 }, 156 "bookmarks.export": { 157 "extension_types": ["extension"], 158 "location": "component" 159 }, 160 "bookmarks.import": { 161 "extension_types": ["extension"], 162 "location": "component" 163 }, 164 "brailleDisplayPrivate": { 165 "dependencies": ["permission:brailleDisplayPrivate"], 166 "contexts": ["blessed_extension"] 167 }, 168 "browser": { 169 "dependencies": ["permission:browser"], 170 "contexts": ["blessed_extension"] 171 }, 172 "browserAction": { 173 "dependencies": ["manifest:browser_action"], 174 "contexts": ["blessed_extension"] 175 }, 176 // This API is whitelisted on stable and should not be enabled for a wider 177 // audience without resolving security issues raised in API proposal and 178 // review (https://codereview.chromium.org/25305002). 179 "browserAction.openPopup": [{ 180 "channel": "dev", 181 "dependencies": ["manifest:browser_action"], 182 "contexts": ["blessed_extension"] 183 }, { 184 "channel": "stable", 185 "dependencies": ["manifest:browser_action"], 186 "whitelist": [ 187 "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev 188 "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta 189 "B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary 190 "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta 191 "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable 192 ], 193 "contexts": ["blessed_extension"] 194 }], 195 "browsingData": { 196 "dependencies": ["permission:browsingData"], 197 "contexts": ["blessed_extension"] 198 }, 199 "cast.channel": { 200 "dependencies": ["permission:cast"], 201 "contexts": ["blessed_extension"] 202 }, 203 "cast.streaming.rtpStream": { 204 "dependencies": ["permission:cast.streaming"], 205 "contexts": ["blessed_extension"] 206 }, 207 "cast.streaming.session": { 208 "dependencies": ["permission:cast.streaming"], 209 "contexts": ["blessed_extension"] 210 }, 211 "cast.streaming.udpTransport": { 212 "dependencies": ["permission:cast.streaming"], 213 "contexts": ["blessed_extension"] 214 }, 215 "chromeosInfoPrivate": { 216 "platforms": ["chromeos"], 217 "dependencies": ["permission:chromeosInfoPrivate"], 218 "contexts": ["blessed_extension"] 219 }, 220 "cloudPrintPrivate": { 221 "dependencies": ["permission:cloudPrintPrivate"], 222 "contexts": ["blessed_extension"] 223 }, 224 "commandLinePrivate": { 225 "dependencies": ["permission:commandLinePrivate"], 226 "contexts": ["blessed_extension"] 227 }, 228 "commands": { 229 "dependencies": ["manifest:commands"], 230 "contexts": ["blessed_extension"] 231 }, 232 "contentSettings": { 233 "dependencies": ["permission:contentSettings"], 234 "contexts": ["blessed_extension"] 235 }, 236 "contextMenus": { 237 "dependencies": ["permission:contextMenus"], 238 "contexts": ["blessed_extension"] 239 }, 240 "contextMenusInternal": { 241 "internal": true, 242 "channel": "stable", 243 "contexts": ["blessed_extension"] 244 }, 245 "cookies": { 246 "dependencies": ["permission:cookies"], 247 "contexts": ["blessed_extension"] 248 }, 249 "debugger": { 250 "dependencies": ["permission:debugger"], 251 "contexts": ["blessed_extension"] 252 }, 253 "declarativeContent": { 254 "dependencies": ["permission:declarativeContent"], 255 "contexts": ["blessed_extension"] 256 }, 257 "declarativeWebRequest": { 258 "dependencies": ["permission:declarativeWebRequest"], 259 "contexts": ["blessed_extension"] 260 }, 261 "desktopCapture": { 262 "dependencies": ["permission:desktopCapture"], 263 "contexts": ["blessed_extension"] 264 }, 265 "developerPrivate": { 266 "dependencies": ["permission:developerPrivate"], 267 "contexts": ["blessed_extension"] 268 }, 269 "devtools.inspectedWindow": { 270 "dependencies": ["manifest:devtools_page"], 271 "contexts": ["blessed_extension"] 272 }, 273 "devtools.network": { 274 "dependencies": ["manifest:devtools_page"], 275 "contexts": ["blessed_extension"] 276 }, 277 "devtools.panels": { 278 "dependencies": ["manifest:devtools_page"], 279 "contexts": ["blessed_extension"] 280 }, 281 "diagnostics": { 282 "dependencies": ["permission:diagnostics"], 283 "extension_types": ["platform_app"], 284 "contexts": ["blessed_extension"] 285 }, 286 "dial": { 287 "dependencies": ["permission:dial"], 288 "contexts": ["blessed_extension"] 289 }, 290 "downloads": { 291 "dependencies": ["permission:downloads"], 292 "contexts": ["blessed_extension"] 293 }, 294 "downloadsInternal": { 295 "internal": true, 296 "channel": "stable", 297 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 298 }, 299 "echoPrivate": { 300 "platforms": ["chromeos"], 301 "dependencies": ["permission:echoPrivate"], 302 "contexts": ["blessed_extension"] 303 }, 304 "enterprise.platformKeys": { 305 "dependencies": ["permission:enterprise.platformKeys"], 306 "contexts": ["blessed_extension"] 307 }, 308 "enterprise.platformKeysInternal": { 309 "dependencies": ["permission:enterprise.platformKeys"], 310 "internal": true, 311 "contexts": ["blessed_extension"] 312 }, 313 "enterprise.platformKeysPrivate": { 314 "platforms": ["chromeos"], 315 "dependencies": ["permission:enterprise.platformKeysPrivate"], 316 "contexts": ["blessed_extension"] 317 }, 318 "events": { 319 "internal": true, 320 "channel": "stable", 321 "extension_types": ["platform_app", "extension"], 322 "contexts": "all", 323 "matches": ["<all_urls>"] 324 }, 325 "experimental.devtools.audits": { 326 "dependencies": ["permission:experimental", "manifest:devtools_page"], 327 "contexts": ["blessed_extension"] 328 }, 329 "experimental.devtools.console": { 330 "dependencies": ["permission:experimental", "manifest:devtools_page"], 331 "contexts": ["blessed_extension"] 332 }, 333 "extension": { 334 "channel": "stable", 335 "extension_types": ["extension", "legacy_packaged_app"], 336 "contexts": ["blessed_extension"] 337 }, 338 "extension.getURL": { 339 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 340 }, 341 "extension.getViews": [ 342 { 343 "channel": "stable", 344 "contexts": ["blessed_extension"], 345 "extension_types": ["extension", "legacy_packaged_app"] 346 }, 347 { 348 // TODO(yoz): Eliminate this usage. 349 "channel": "stable", 350 "contexts": ["blessed_extension"], 351 "extension_types": ["platform_app"], 352 "whitelist": [ 353 "A948368FC53BE437A55FEB414106E207925482F5" // File manager 354 ] 355 } 356 ], 357 "extension.inIncognitoContext": { 358 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 359 }, 360 "extension.lastError": { 361 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 362 }, 363 "extension.onRequest": { 364 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 365 }, 366 "extension.sendNativeMessage": { 367 "dependencies": ["permission:nativeMessaging"] 368 }, 369 "extension.sendRequest": { 370 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 371 }, 372 // This is not a real API, only here for documentation purposes. 373 // See http://crbug.com/275944 for background. 374 "extensionsManifestTypes": { 375 "internal": true, 376 "channel": "stable", 377 "contexts": ["blessed_extension"] 378 }, 379 "feedbackPrivate": { 380 "dependencies": ["permission:feedbackPrivate"], 381 "contexts": ["blessed_extension"] 382 }, 383 "fileBrowserHandler": { 384 "platforms": ["chromeos"], 385 "dependencies": ["permission:fileBrowserHandler"], 386 "contexts": ["blessed_extension"] 387 }, 388 "fileBrowserHandlerInternal": { 389 "internal": true, 390 "platforms": ["chromeos"], 391 "channel": "stable", 392 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 393 }, 394 "screenlockPrivate": { 395 "dependencies": ["permission:screenlockPrivate"], 396 "extension_types": ["platform_app"], 397 "contexts": ["blessed_extension", "unblessed_extension"] 398 }, 399 "fileBrowserPrivate": { 400 "platforms": ["chromeos"], 401 "dependencies": ["permission:fileBrowserPrivate"], 402 "contexts": ["blessed_extension"] 403 }, 404 "fileBrowserPrivateInternal": { 405 "internal": true, 406 "platforms": ["chromeos"], 407 "dependencies": ["permission:fileBrowserPrivate"], 408 "contexts": ["blessed_extension"] 409 }, 410 "fileSystem": { 411 "dependencies": ["permission:fileSystem"], 412 "contexts": ["blessed_extension"] 413 }, 414 "fileSystemProvider": { 415 "dependencies": ["permission:fileSystemProvider"], 416 "contexts": ["blessed_extension"] 417 }, 418 "fileSystemProviderInternal": { 419 "internal": true, 420 "dependencies": ["permission:fileSystemProvider"], 421 "contexts": ["blessed_extension"] 422 }, 423 "firstRunPrivate": { 424 "platforms": ["chromeos"], 425 "dependencies": ["permission:firstRunPrivate"], 426 "contexts": ["blessed_extension"] 427 }, 428 "fontSettings": { 429 "dependencies": ["permission:fontSettings"], 430 "contexts": ["blessed_extension"] 431 }, 432 "gcdPrivate": { 433 "dependencies": ["permission:gcdPrivate"], 434 "contexts": ["blessed_extension"] 435 }, 436 "gcm": { 437 "dependencies": ["permission:gcm"], 438 "contexts": ["blessed_extension"] 439 }, 440 "guestViewInternal": { 441 "internal": true, 442 "channel": "stable", 443 "contexts": ["blessed_extension", "unblessed_extension"] 444 }, 445 "hangoutsPrivate": { 446 "channel": "stable", 447 "contexts": ["blessed_extension"], 448 "whitelist": [ 449 // http://crbug.com/309737 450 "nckgahadagoaajjgafhacjanaoiihapd", 451 "ljclpkphhpbpinifbeabbhlfddcpfdde", 452 "ppleadejekpmccmnpjdimmlfljlkdfej", 453 "eggnbpckecmjlblplehfpjjdhhidfdoj", 454 "jfjjdfefebklmdbmenmlehlopoocnoeh", 455 "knipolnnllmklapflnccelgolnpehhpl" 456 ] 457 }, 458 "hid": { 459 "dependencies": ["permission:hid"], 460 "contexts": ["blessed_extension"] 461 }, 462 "history": { 463 "dependencies": ["permission:history"], 464 "contexts": ["blessed_extension"] 465 }, 466 "hotwordPrivate": { 467 "dependencies": ["permission:hotwordPrivate"], 468 "contexts": ["blessed_extension"] 469 }, 470 "i18n": { 471 "channel": "stable", 472 "extension_types": ["extension", "legacy_packaged_app", "platform_app"], 473 "contexts": ["blessed_extension", "unblessed_extension", "content_script"] 474 }, 475 "identity": { 476 "dependencies": ["permission:identity"], 477 "contexts": ["blessed_extension"] 478 }, 479 "identity.getAccounts": { 480 "channel": "dev", 481 "dependencies": ["permission:identity"], 482 "contexts": ["blessed_extension"] 483 }, 484 "identityPrivate": { 485 "dependencies": ["permission:identityPrivate"], 486 "contexts": ["blessed_extension"] 487 }, 488 "idltest": { 489 "dependencies": ["permission:idltest"], 490 "contexts": ["blessed_extension"] 491 }, 492 "idle": { 493 "dependencies": ["permission:idle"], 494 "contexts": ["blessed_extension"] 495 }, 496 "infobars": { 497 "dependencies": ["permission:infobars"], 498 "contexts": ["blessed_extension"] 499 }, 500 "input.ime": { 501 "platforms": ["chromeos"], 502 "dependencies": ["permission:input"], 503 "contexts": ["blessed_extension"] 504 }, 505 "inputMethodPrivate": { 506 "platforms": ["chromeos"], 507 "dependencies": ["permission:inputMethodPrivate"], 508 "contexts": ["blessed_extension"] 509 }, 510 "ledger": { 511 "platforms": ["chromeos"], 512 "dependencies": ["permission:ledger"], 513 "contexts": ["blessed_extension"] 514 }, 515 "location": { 516 "dependencies": ["permission:location"], 517 "contexts": ["blessed_extension"] 518 }, 519 "logPrivate": { 520 "dependencies": ["permission:logPrivate"], 521 "extension_types": ["extension", "legacy_packaged_app"], 522 "contexts": ["blessed_extension"] 523 }, 524 "webcamPrivate": { 525 "dependencies": ["permission:webcamPrivate"], 526 "contexts": ["blessed_extension"] 527 }, 528 "management": { 529 "dependencies": ["permission:management"], 530 "contexts": ["blessed_extension"] 531 }, 532 "management.getPermissionWarningsByManifest": { 533 "dependencies": [], 534 "channel": "stable", 535 "extension_types": ["extension", "legacy_packaged_app", "platform_app"] 536 }, 537 "management.uninstallSelf": { 538 "dependencies": [], 539 "channel": "stable", 540 "extension_types": ["extension", "legacy_packaged_app", "platform_app"] 541 }, 542 // This is not a real API, only here for documentation purposes. 543 // See http://crbug.com/275944 for background. 544 "manifestTypes": { 545 "internal": true, 546 "channel": "stable", 547 "contexts": ["blessed_extension"] 548 }, 549 "mediaGalleries": { 550 "dependencies": ["permission:mediaGalleries"], 551 "contexts": ["blessed_extension"] 552 }, 553 "mediaGalleries.getMetadata": { 554 "channel": "dev", 555 "dependencies": ["permission:mediaGalleries"], 556 "contexts": ["blessed_extension"] 557 }, 558 "mediaGalleriesPrivate": { 559 "dependencies": ["permission:mediaGalleriesPrivate"], 560 "contexts": ["blessed_extension"] 561 }, 562 "mediaPlayerPrivate": { 563 "platforms": ["chromeos"], 564 "dependencies": ["permission:mediaPlayerPrivate"], 565 "contexts": ["blessed_extension"] 566 }, 567 "metricsPrivate": { 568 "dependencies": ["permission:metricsPrivate"], 569 "contexts": ["blessed_extension"] 570 }, 571 "mdns": { 572 "dependencies": ["permission:mdns"], 573 "contexts": ["blessed_extension"] 574 }, 575 "musicManagerPrivate": { 576 "dependencies": ["permission:musicManagerPrivate"], 577 "contexts": ["blessed_extension"] 578 }, 579 "networkingPrivate": { 580 "platforms": ["chromeos", "mac", "win"], 581 "dependencies": ["permission:networkingPrivate"], 582 "contexts": ["blessed_extension"] 583 }, 584 "notifications": { 585 "dependencies": ["permission:notifications"], 586 "contexts": ["blessed_extension"] 587 }, 588 "omnibox": { 589 "dependencies": ["manifest:omnibox"], 590 "contexts": ["blessed_extension"] 591 }, 592 "pageAction": { 593 "dependencies": ["manifest:page_action"], 594 "contexts": ["blessed_extension"] 595 }, 596 "pageActions": { 597 "dependencies": ["manifest:page_actions"], 598 "contexts": ["blessed_extension"] 599 }, 600 "pageCapture": { 601 "dependencies": ["permission:pageCapture"], 602 "contexts": ["blessed_extension"] 603 }, 604 "permissions": { 605 "channel": "stable", 606 "extension_types": ["extension", "legacy_packaged_app", "platform_app"], 607 "contexts": ["blessed_extension"] 608 }, 609 "power": { 610 "dependencies": ["permission:power"], 611 "contexts": ["blessed_extension"] 612 }, 613 "preferencesPrivate": { 614 "dependencies": ["permission:preferencesPrivate"], 615 "contexts": ["blessed_extension"] 616 }, 617 "principalsPrivate": { 618 "dependencies": ["permission:principalsPrivate"], 619 "contexts": ["blessed_extension"] 620 }, 621 "privacy": { 622 "dependencies": ["permission:privacy"], 623 "contexts": ["blessed_extension"] 624 }, 625 "processes": { 626 "dependencies": ["permission:processes"], 627 "contexts": ["blessed_extension"] 628 }, 629 "proxy": { 630 "dependencies": ["permission:proxy"], 631 "contexts": ["blessed_extension"] 632 }, 633 "pushMessaging": { 634 "dependencies": ["permission:pushMessaging"], 635 "contexts": ["blessed_extension"] 636 }, 637 "imageWriterPrivate": { 638 "dependencies": ["permission:imageWriterPrivate"], 639 "extension_types": ["platform_app"], 640 "contexts": ["blessed_extension"] 641 }, 642 "readingListPrivate": { 643 "dependencies": ["permission:readingListPrivate"], 644 "contexts": ["blessed_extension"] 645 }, 646 "rtcPrivate": { 647 "dependencies": ["permission:rtcPrivate"], 648 "contexts": ["blessed_extension"] 649 }, 650 "scriptBadge": { 651 "dependencies": ["manifest:script_badge"], 652 "contexts": ["blessed_extension"] 653 }, 654 "serial": { 655 "dependencies": ["permission:serial"], 656 "contexts": ["blessed_extension"] 657 }, 658 "sessions": { 659 "dependencies": ["permission:sessions"], 660 "contexts": ["blessed_extension"] 661 }, 662 "signedInDevices": { 663 "dependencies": ["permission:signedInDevices"], 664 "contexts": ["blessed_extension"] 665 }, 666 "streamsPrivate": { 667 "dependencies": ["permission:streamsPrivate"], 668 "contexts": ["blessed_extension"] 669 }, 670 "syncFileSystem": { 671 "dependencies": ["permission:syncFileSystem"], 672 "contexts": ["blessed_extension"] 673 }, 674 "syncedNotificationsPrivate": { 675 "contexts": ["blessed_extension"], 676 "dependencies": ["permission:syncedNotificationsPrivate"] 677 }, 678 "systemIndicator": { 679 "dependencies": ["manifest:system_indicator"], 680 "contexts": ["blessed_extension"] 681 }, 682 "system.cpu": { 683 "dependencies": ["permission:system.cpu"], 684 "contexts": ["blessed_extension"] 685 }, 686 "system.display": { 687 "dependencies": ["permission:system.display"], 688 "contexts": ["blessed_extension"] 689 }, 690 "system.memory": { 691 "dependencies": ["permission:system.memory"], 692 "contexts": ["blessed_extension"] 693 }, 694 "system.network": { 695 "dependencies": ["permission:system.network"], 696 "contexts": ["blessed_extension"] 697 }, 698 "system.storage": { 699 "dependencies": ["permission:system.storage"], 700 "contexts": ["blessed_extension"] 701 }, 702 "system.storage.getAvailableCapacity": { 703 "channel": "dev" 704 }, 705 "systemPrivate": { 706 "dependencies": ["permission:systemPrivate"], 707 "contexts": ["blessed_extension"] 708 }, 709 "tabCapture": { 710 "dependencies": ["permission:tabCapture"], 711 "contexts": ["blessed_extension"] 712 }, 713 "tabs": { 714 "channel": "stable", 715 "extension_types": ["extension", "legacy_packaged_app"], 716 "contexts": ["blessed_extension"] 717 }, 718 "terminalPrivate": { 719 "platforms": ["chromeos"], 720 "dependencies": ["permission:terminalPrivate"], 721 "contexts": ["blessed_extension"] 722 }, 723 "topSites": { 724 "dependencies": ["permission:topSites"], 725 "contexts": ["blessed_extension"] 726 }, 727 "tts": { 728 "dependencies": ["permission:tts"], 729 "contexts": ["blessed_extension"] 730 }, 731 "ttsEngine": { 732 "dependencies": ["permission:ttsEngine"], 733 "contexts": ["blessed_extension"] 734 }, 735 "virtualKeyboardPrivate": { 736 "platforms": ["chromeos"], 737 "dependencies": ["permission:virtualKeyboardPrivate"], 738 "contexts": ["blessed_extension"] 739 }, 740 "wallpaper": { 741 "platforms": ["chromeos"], 742 "dependencies": ["permission:wallpaper"], 743 "contexts": ["blessed_extension"] 744 }, 745 "wallpaperPrivate": { 746 "platforms": ["chromeos"], 747 "dependencies": ["permission:wallpaperPrivate"], 748 "contexts": ["blessed_extension"] 749 }, 750 "webNavigation": { 751 "dependencies": ["permission:webNavigation"], 752 "contexts": ["blessed_extension"] 753 }, 754 "webRequest": { 755 "dependencies": ["permission:webRequest"], 756 "contexts": ["blessed_extension"] 757 }, 758 "webRequestInternal": { 759 "internal": true, 760 "channel": "stable", 761 "contexts": ["blessed_extension", "unblessed_extension"] 762 }, 763 "webrtcAudioPrivate": { 764 "dependencies": ["permission:webrtcAudioPrivate"], 765 "contexts": ["blessed_extension"] 766 }, 767 "webrtcLoggingPrivate": { 768 "dependencies": ["permission:webrtcLoggingPrivate"], 769 "contexts": ["blessed_extension"] 770 }, 771 "webstore": { 772 // Hosted apps can use the webstore API from within a blessed context. 773 "channel": "stable", 774 "extension_types": ["hosted_app"], 775 "contexts": ["blessed_web_page", "web_page"], 776 // Any webpage can use the webstore API. 777 "matches": ["http://*/*", "https://*/*"] 778 }, 779 "webstorePrivate": { 780 "dependencies": ["permission:webstorePrivate"], 781 "contexts": ["blessed_extension"] 782 }, 783 "webview": { 784 "internal": true, 785 "dependencies": ["permission:webview"], 786 "contexts": ["blessed_extension", "unblessed_extension"] 787 }, 788 "webViewRequest": { 789 "dependencies": ["permission:webview"], 790 "contexts": ["blessed_extension", "unblessed_extension"] 791 }, 792 "webviewTag": { 793 "internal": true, 794 "channel": "stable", 795 "dependencies": ["permission:webview"], 796 "contexts": ["blessed_extension"] 797 }, 798 "windows": { 799 "dependencies": ["api:tabs"], 800 "contexts": ["blessed_extension"] 801 } 802} 803