| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // This features file defines extension APIs implemented under src/extensions. |
| // See extensions/common/features/* to understand this file, in particular |
| // feature.h, simple_feature.h, and base_feature_provider.h. |
| // |
| // Note that specifying "web_page", "blessed_web_page", or "all" as a context |
| // type will require manually updating chrome/renderer/resources/dispatcher.cc. |
| |
| // To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash: |
| // |
| // $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \ |
| // sha1sum | tr '[:lower:]' '[:upper:]' |
| // 9A0417016F345C934A1A88F55CA17C05014EEEBA - |
| // |
| // Google employees: please update http://go/chrome-api-whitelist to map |
| // hashes back to ids. |
| |
| { |
| "app.runtime": [{ |
| "channel": "stable", |
| "contexts": ["blessed_extension"], |
| "extension_types": ["platform_app"], |
| "noparent": true |
| }, { |
| "channel": "stable", |
| "component_extensions_auto_granted": false, |
| "contexts": ["blessed_extension"], |
| "extension_types": ["extension"], |
| "noparent": true, |
| "whitelist": [ |
| "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice |
| "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal |
| "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension |
| ] |
| }], |
| "dns": { |
| "dependencies": ["permission:dns"], |
| "contexts": ["blessed_extension"] |
| }, |
| "hid": { |
| "dependencies": ["permission:hid"], |
| "contexts": ["blessed_extension"] |
| }, |
| "power": { |
| "dependencies": ["permission:power"], |
| "contexts": ["blessed_extension"] |
| }, |
| "runtime": { |
| "channel": "stable", |
| "extension_types": ["extension", "legacy_packaged_app", "platform_app"], |
| "contexts": ["blessed_extension"] |
| }, |
| "runtime.getManifest": { |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "runtime.connect": { |
| // Everything except WebUI. |
| "contexts": [ |
| "blessed_web_page", |
| "content_script", |
| "blessed_extension", |
| "unblessed_extension", |
| "web_page" |
| ], |
| "matches": ["<all_urls>"] |
| }, |
| "runtime.getURL": { |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "runtime.id": { |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "runtime.lastError": { |
| "contexts": "all", |
| "extension_types": "all", |
| "matches": ["<all_urls>"] |
| }, |
| "runtime.onConnect": { |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "runtime.onMessage": { |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "runtime.sendMessage": { |
| // Everything except WebUI. |
| "contexts": [ |
| "blessed_web_page", |
| "content_script", |
| "blessed_extension", |
| "unblessed_extension", |
| "web_page" |
| ], |
| "matches": ["<all_urls>"] |
| }, |
| "runtime.setUninstallURL": { |
| "channel": "dev" |
| }, |
| "serial": { |
| "dependencies": ["permission:serial"], |
| "contexts": ["blessed_extension"] |
| }, |
| "socket": { |
| "dependencies": ["permission:socket"], |
| "contexts": ["blessed_extension"] |
| }, |
| "sockets.tcp": { |
| "dependencies": ["manifest:sockets"], |
| "contexts": ["blessed_extension"] |
| }, |
| "sockets.tcpServer": { |
| "dependencies": ["manifest:sockets"], |
| "contexts": ["blessed_extension"] |
| }, |
| "sockets.udp": { |
| "dependencies": ["manifest:sockets"], |
| "contexts": ["blessed_extension"] |
| }, |
| "storage": { |
| "dependencies": ["permission:storage"], |
| "contexts": ["blessed_extension", "unblessed_extension", "content_script"] |
| }, |
| "test": [{ |
| "internal": true, |
| "channel": "stable", |
| "extension_types": "all", |
| // Everything except web pages and WebUI. WebUI is declared in a separate |
| // rule to keep the "matches" property isolated. |
| "contexts": [ |
| "blessed_extension", |
| "blessed_web_page", |
| "content_script", |
| "unblessed_extension" |
| ] |
| }, { |
| "internal": true, |
| "channel": "stable", |
| "contexts": ["webui"], |
| "matches": [ |
| "chrome://extensions-frame/*" |
| ] |
| }], |
| "types": { |
| "channel": "stable", |
| "extension_types": ["extension", "legacy_packaged_app", "platform_app"], |
| "contexts": ["blessed_extension"] |
| }, |
| "types.private": { |
| "channel": "dev", |
| "extension_types": ["extension"], |
| "location": "component" |
| }, |
| "usb": { |
| "dependencies": ["permission:usb"], |
| "contexts": ["blessed_extension"] |
| }, |
| "usbPrivate": { |
| "channel": "dev", |
| "contexts": ["webui"] |
| } |
| } |