声明权限

要使用大多数 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)。另外,当前还不能和包含通配符的子域名一起使用,例如 http://*.example.com

"usb" 使您的应用能够访问 chrome.usb API。
"videoCapture" 请求授予应用权限,以便通过 getUserMedia API 直接从用户的网络摄像头捕获视频。
"wallpaper" 使您的应用能够访问 chrome.wallpaper API。
"webview" 如果应用使用 Webview 标签 在打包应用中嵌入网上的活动内容则必须指定。