Declare permissions
要使用大多数 chrome.* API,您的扩展程序必须在清单的权限字段中声明其意图。扩展可以请求三类权限,使用清单中的相应键指定:
permissions
权限包含已知字符串列表中的项目(例如“地理位置”)optional_permissions
类似于常规权限,但由扩展程序的用户在运行时授予,而不是提前授予host_permissions
包含一个或多个匹配模式(match patterns),可以访问一个或多个主机
如果您的扩展程序受到恶意软件的破坏,权限有助于限制损害。某些权限会在安装前或运行时根据需要向用户显示以征得他们的同意,如权限警告中所述。
您应该在扩展功能允许的任何地方使用可选权限,以便为用户提供对资源和数据访问的知情控制。查看平台愿景platform vision以更好地理解此建议。
如果 API 要求您在清单中声明权限,则其文档会告诉您如何这样做。例如,存储页面向您展示了如何声明“存储(Storage)”权限。
下面是清单文件的权限部分的示例:
"permissions": [
"tabs",
"bookmarks",
"unlimitedStorage"
],
"optional_permissions": [
"unlimitedStorage"
],
"host_permissions": [
"http://www.blogger.com/",
"http://*.google.com/"
],
下表列出了当前可用的权限:
Permission | Description |
---|---|
"activeTab" |
请求根据 activeTab 规范向扩展授予权限。 |
"alarms" |
使您的扩展程序可以访问 chrome.alarms API. |
"background" |
使 Chrome 启动早晚关闭,从而延长扩展程序的使用寿命。当任何已安装的扩展程序具有“后台”权限时,Chrome 会在用户登录计算机后立即运行(不可见)——在用户启动 Chrome 之前。“后台”权限还使 Chrome 继续运行(即使在其最后一个窗口关闭后),直到用户明确退出 Chrome。 background scripts. |
"bookmarks" |
使您的扩展程序可以访问 chrome.bookmarks API. |
"browsingData" |
使您的扩展程序可以访问 chrome.browsingData API. |
"certificateProvider" |
使您的扩展程序可以访问 chrome.certificateProvider API. |
"clipboardRead" |
如果扩展使用,则需要 document.execCommand('paste') . |
"clipboardWrite" |
表示扩展使用 document.execCommand('copy') or document.execCommand('cut') . |
"contentSettings" |
使您的扩展程序可以访问 chrome.contentSettings API. |
"contextMenus" |
使您的扩展程序可以访问 chrome.contextMenus API. |
"cookies" |
使您的扩展程序可以访问 chrome.cookies API. |
"debugger" |
使您的扩展程序可以访问 chrome.debugger API. |
"declarativeContent" |
使您的扩展程序可以访问 chrome.declarativeContent API. |
"declarativeNetRequest" |
使您的扩展程序可以访问 chrome.declarativeNetRequest API. |
"declarativeNetRequestFeedback" |
授予扩展访问事件和方法的权限 chrome.declarativeNetRequest API 返回关于匹配的声明性规则的信息。 |
"declarativeWebRequest" |
使您的扩展程序可以访问 chrome.declarativeWebRequest API. |
"desktopCapture" |
使您的扩展程序可以访问 chrome.desktopCapture API. |
"documentScan" |
使您的扩展程序可以访问 chrome.documentScan API. |
"downloads" |
使您的扩展程序可以访问 chrome.downloads API. |
"enterprise.deviceAttributes" |
使您的扩展程序可以访问 chrome.enterprise.deviceAttributes API. |
"enterprise.hardwarePlatform" |
使您的扩展程序可以访问 chrome.enterprise.hardwarePlatform API. |
"enterprise.networkingAttributes" |
使您的扩展程序可以访问 chrome.enterprise.networkingAttributes API. |
"enterprise.platformKeys" |
使您的扩展程序可以访问 chrome.enterprise.platformKeys API. |
"experimental" |
使您的扩展程序可以访问 chrome.experimental.* APIs. |
"fileBrowserHandler" |
使您的扩展程序可以访问 chrome.fileBrowserHandler API. |
"fileSystemProvider" |
使您的扩展程序可以访问 chrome.fileSystemProvider API. |
"fontSettings" |
使您的扩展程序可以访问 chrome.fontSettings API. |
"gcm" |
使您的扩展程序可以访问 chrome.gcm API. |
"geolocation" |
允许扩展程序在不提示用户许可的情况下使用地理定位 API(geolocation API)。 |
"history" |
使您的扩展程序可以访问 chrome.history API. |
"identity" |
使您的扩展程序可以访问 chrome.identity API. |
"idle" |
使您的扩展程序可以访问 chrome.idle API. |
"loginState" |
使您的扩展程序可以访问 chrome.loginState API. |
"management" |
使您的扩展程序可以访问 chrome.management API. |
"nativeMessaging" |
使您的扩展程序可以访问 native messaging API. |
"notifications" |
使您的扩展程序可以访问 chrome.notifications API. |
"pageCapture" |
使您的扩展程序可以访问 chrome.pageCapture API. |
"platformKeys" |
使您的扩展程序可以访问 chrome.platformKeys API. |
"power" |
使您的扩展程序可以访问 chrome.power API. |
"printerProvider" |
使您的扩展程序可以访问 chrome.printerProvider API. |
"printing" |
使您的扩展程序可以访问 chrome.printing API. |
"printingMetrics" |
使您的扩展程序可以访问 chrome.printingMetrics API. |
"privacy" |
使您的扩展程序可以访问 chrome.privacy API. |
"processes" |
使您的扩展程序可以访问 chrome.processes API. |
"proxy" |
使您的扩展程序可以访问 chrome.proxy API. |
"scripting" |
使您的扩展程序可以访问 chrome.scripting API. |
"search" |
使您的扩展程序可以访问 chrome.search API. |
"sessions" |
使您的扩展程序可以访问 chrome.sessions API. |
"signedInDevices" |
使您的扩展程序可以访问 chrome.signedInDevices API. |
"storage" |
使您的扩展程序可以访问 chrome.storage API. |
"system.cpu" |
使您的扩展程序可以访问 chrome.system.cpu API. |
"system.display" |
使您的扩展程序可以访问 chrome.system.display API. |
"system.memory" |
使您的扩展程序可以访问 chrome.system.memory API. |
"system.storage" |
使您的扩展程序可以访问 chrome.system.storage API. |
"tabCapture" |
使您的扩展程序可以访问 chrome.tabCapture API. |
"tabGroups" |
使您的扩展程序可以访问 chrome.tabGroups API. |
"tabs" |
使您的扩展程序可以访问多个 API 使用的 Tab 对象的特权字段,包括 chrome.tabs 和 chrome.windows。在许多情况下,您的扩展程序不需要声明“选项卡”权限即可使用这些 API。 |
"topSites" |
使您的扩展程序可以访问 chrome.topSites API. |
"tts" |
使您的扩展程序可以访问 chrome.tts API. |
"ttsEngine" |
使您的扩展程序可以访问 chrome.ttsEngine API. |
"unlimitedStorage" |
为存储客户端数据提供无限配额,例如数据库和本地存储文件。没有此权限,扩展程序仅限于 5 MB 的本地存储空间。注意:此权限仅适用于 Web SQL 数据库和应用程序缓存(请参阅问题 58985)。此外,它目前不适用于 http://*.example.com 等通配符子域。 |
"vpnProvider" |
使您的扩展程序可以访问 chrome.vpnProvider API. |
"wallpaper" |
使您的扩展程序可以访问 chrome.wallpaper API. |
"webNavigation" |
使您的扩展程序可以访问 chrome.webNavigation API. |
"webRequest" |
使您的扩展程序可以访问 chrome.webRequest API. |
"webRequestBlocking" |
如果扩展以阻塞方式使用 chrome.webRequest API,则为必需。 |
By.一粒技术服务