权限 - permissions

这篇翻译不完整。请帮忙从英语翻译这篇文章

值类型 数组
强制性 不强制
示例
"permissions": [
  "*://developer.mozilla.org/*",
  "webRequest"
]

使用permissions 关键字为你的扩展请求特殊的权限。该关键字为一个字符串数列,每个字符串请求一项权限。

如果你使用该关键字请求权限,浏览器可能会在安装该扩展时通知用户该扩展需求某些权限,并询问他们是否愿意给予这些权限。浏览器也可能允许用户检查扩展的权限。

该关键字能够包含三种类型的权限:

  • 主机权限
  • API 权限
  • 活动标签权限

主机权限

 主机权限使用 match patterns 指定,扩展在每一个表达式指定的网址上请求额外权限。

额外权限包括:

  • XHR 访问其源服务器
  •  代码性的像服务器页面插入脚本的能力(使用 tabs.executeScript)
  • 使用 webRequest 在其主机上获取消息的能力。
  • 使用 cookies API 访问主机cookies的能力,只要 cookies api的权限也被请求。

API 权限

API 权限有关键字指定,每个关键字标志着一类WebExtension API 能够被只用。

如下关键字是当前可用的:

  • activeTab
  • alarms
  • bookmarks
  • contextMenus
  • cookies
  • downloads
  • downloads.open
  • history
  • idle
  • management
  • nativeMessaging
  • notifications
  • sessions
  • storage
  • tabs
  • topSites
  • webNavigation
  • webRequest
  • webRequestBlocking

在大部分情况下这种权限仅仅允许你访问API,除了以下情况:

活动标签特权

该特权被“activeTab”指定,如果一个扩展拥有activeTab权限,当用户跟该扩展交互时,扩展仅仅拥有活动标签的权限。

“用户交互”包括:

  • 用户点击扩展的浏览器按钮或者页面按钮
  • 用户选择了扩展的上下文菜单
  • 用户敲击了扩展指定的快捷键 (但是该交互当前在Firefox是不可用的详情看 bug 1287159)

额外权限包括:

改权限的目的是为了在不给予扩展太多权限的情况下,使得扩展能够应付大部分情况。很多扩展需要在用户要求时,在当前页面做一些处理,比如,考虑一个扩展想要在用户点击一个浏览器按钮时在当前页面运行一个脚本,如果 activeTab 权限不存在,扩展将需要请求主机权限<all_urls>,但是这给予了扩展超过其需要的权限:现在它可以在任何任何时间标签页执行脚本任何次,而不是仅仅在活动标签而且仅仅回应用户的行为。

剪贴板访问

有两种权限使得WebExtentsion可以跟剪贴板交互:

  • clipboardWrite: 使用document.execCommand("copy") 像剪贴板写入 或者 document.execCommand("cut")
  • clipboardRead: 使用 document.execCommand("paste") 从剪贴板读取。

查看 Interact with the clipboard 获取更多

Chrome incompatibilities

permissions

Firefox does not support the following permissions:

  • background
  • clipboardRead
  • geolocation
  • unlimitedStorage

Obviously, it doesn't support permissions for APIs that are themselves not supported.

Edge浏览器的兼容性

Permissions

Edge浏览器不支持下列权限

  • activeTab
  • alarms
  • bookmarks
  • cookies
  • downloads
  • downloads.open
  • history
  • management
  • nativeMessaging
  • notifications
  • sessions
  • topSites

Edge浏览器支持下列权限,但是Firefox浏览器不支持:

  • geolocation
 

示例

 "permissions": ["*://developer.mozilla.org/*"]

请求 developer.mozilla.org 下的权限访问.

  "permissions": ["tabs"]

请求tabs API的权限需要部分的访问。

  "permissions": ["*://developer.mozilla.org/*", "tabs"]

请求以上两种访问。

文档标签和贡献者

标签: 
 此页面的贡献者: WEKEYSHIT, Hypophrenia, taadis
 最后编辑者: WEKEYSHIT,