声明权限
要使用大多数 chrome.* API,您的扩展程序或应用程序必须在清单文件的 "permissions" 字段中声明它的意图。每一个权限既可以是已知字符串列表中的某一个(例如 "geolocation"),也可以是授予访问一个或多个主机权限的匹配表达式。权限可以帮助您在扩展程序或应用程序受到攻击时尽可能减小损失,某些权限也会在安装前向用户显示,这些将在权限警告中详细描述。
如果某个 API 需要您在清单文件中声明某个权限,它的文档会告诉你如何去做,例如存储 API 网页会向您演示如何声明 "storage" 权限。
如下是一个清单文件中权限部分的例子:
"permissions": [ "serial", "storage", "videoCapture" ],
下表列出了当前可用的权限。
权限 | 描述 |
---|---|
"alarms"
|
使您的应用能够访问 chrome.alarms API。 |
"audio"
|
使您的应用能够访问 chrome.audio API。 |
"audioCapture"
|
请求授予应用权限,以便通过 getUserMedia API 直接从用户的麦克风捕获音频。 |
"browser"
|
使您的应用能够访问 chrome.browser API。 |
"clipboardRead"
|
如果扩展程序或应用使用 document.execCommand('paste')
则必须指定。
|
"clipboardWrite"
|
表示扩展程序或应用可以使用 document.execCommand('copy') 或
document.execCommand('cut') 。托管应用必须指定该权限,建议扩展程序和打包应用也指定该权限。
|
"contextMenus"
|
使您的应用能够访问 chrome.contextMenus API。 |
"copresence"
|
使您的应用能够访问 chrome.copresence API。 |
"desktopCapture"
|
使您的应用能够访问 chrome.desktopCapture API。 |
"diagnostics"
|
使您的应用能够访问 chrome.diagnostics API。 |
"dns"
|
使您的应用能够访问 chrome.dns API。 |
"experimental"
|
如果扩展程序或应用使用 chrome.experimental.* API 则必须指定。 |
"fileBrowserHandler"
|
使您的应用能够访问 chrome.fileBrowserHandler API。 |
"fileSystem"
|
使您的应用能够访问 chrome.fileSystem API。 |
"fileSystemProvider"
|
使您的应用能够访问 chrome.fileSystemProvider API。 |
"gcm"
|
使您的应用能够访问 chrome.gcm API。 |
"geolocation"
|
允许扩展程序或应用使用提议的 HTML5 地理定位 API 而不需要提示用户权限。 |
"hid"
|
使您的应用能够访问 chrome.hid API。 |
"identity"
|
使您的应用能够访问 chrome.identity API。 |
"idle"
|
使您的应用能够访问 chrome.idle API。 |
"infobars"
|
使您的应用能够访问 chrome.infobars API。 |
"location"
|
使您的应用能够访问 chrome.location API。 |
"mediaGalleries"
|
使您的应用能够访问 chrome.mediaGalleries API。 |
"nativeMessaging"
|
使您的应用能够访问原生消息通信 API。 |
"notificationProvider"
|
使您的应用能够访问 chrome.notificationProvider API。 |
"notifications"
|
允许扩展程序使用提议的 HTML5 通知
API 而不用调用权限方法(例如 checkPermission() )。有关更多信息,请参见桌面通知。
|
"pointerLock"
|
如果通过 requestPointerLock 或 Pepper 的鼠标锁定 API使用指针锁定功能则必须指定。有关行为上的差异请参见其他 API。
|
"power"
|
使您的应用能够访问 chrome.power API。 |
"pushMessaging"
|
使您的应用能够访问 chrome.pushMessaging API。 |
"serial"
|
使您的应用能够访问 chrome.serial API。 |
"signedInDevices"
|
使您的应用能够访问 chrome.signedInDevices API。 |
"socket"
|
使您的应用能够访问 chrome.socket API。 |
"storage"
|
使您的应用能够访问 chrome.storage API。 |
"syncFileSystem"
|
如果应用使用 chrome.syncFileSystem API 在 Google 云端硬盘上保存和同步数据则必须指定。 |
"system.cpu"
|
使您的应用能够访问 chrome.system.cpu API。 |
"system.display"
|
使您的应用能够访问 chrome.system.display API。 |
"system.memory"
|
使您的应用能够访问 chrome.system.memory API。 |
"system.network"
|
使您的应用能够访问 chrome.system.network API。 |
"system.storage"
|
使您的应用能够访问 chrome.system.storage API。 |
"tts"
|
使您的应用能够访问 chrome.tts API。 |
"unlimitedStorage"
|
提供无限的存储空间,保存 HTML5
客户端数据,例如数据库以及本地存储文件。如果没有这一权限,扩展程序或应用的本地存储将限制在
5 MB 以内。
注意:该权限仅应用于网络 SQL 数据库以及应用程序缓存(参见问题 58985)。另外,当前还不能和包含通配符的子域名一起使用,例如
|
"usb"
|
使您的应用能够访问 chrome.usb API。 |
"videoCapture"
|
请求授予应用权限,以便通过 getUserMedia API 直接从用户的网络摄像头捕获视频。 |
"wallpaper"
|
使您的应用能够访问 chrome.wallpaper API。 |
"webview"
|
如果应用使用 Webview 标签 在打包应用中嵌入网上的活动内容则必须指定。 |