如需使用大多数扩展程序 API 和功能,您必须在清单的权限字段中声明扩展程序的 intent。扩展程序可以请求使用相应清单键指定的以下类别的权限:
"permissions"
- 包含已知字符串列表中的项。更改可能会触发警告。
"optional_permissions"
- 由用户在运行时(而不是安装时)授予。
"content_scripts.matches"
- 包含一个或多个匹配模式,允许内容脚本注入到一个或多个主机中。更改可能会触发警告。
"host_permissions"
- 包含一个或多个匹配格式,用于授予对一个或多个主机的访问权限。更改可能会触发警告。
"optional_host_permissions"
- 由用户在运行时(而不是安装时)授予。
如果您的扩展程序遭到恶意软件入侵,权限有助于限制损害。系统会先向用户显示一些权限警告以征求用户同意 详情请参阅权限,但出现警告。
对于扩展程序的功能,请考虑使用可选权限 让用户在知情的情况下控制对资源和数据的访问权限。
如果 API 需要某项权限,请参阅其文档,了解如何声明该权限。对于 示例,请参阅 Storage API。
清单
以下是清单文件的权限部分的示例:
manifest.json:
{
"name": "Permissions Extension",
...
"permissions": [
"activeTab",
"contextMenus",
"storage"
],
"optional_permissions": [
"topSites",
],
"host_permissions": [
"https://www.developer.chrome.com/*"
],
"optional_host_permissions":[
"https://*/*",
"http://*/*"
],
...
"manifest_version": 3
}
主机权限
主机权限允许扩展程序与网址的匹配格式互动。有些 Chrome API 除了拥有自己的 API 权限外,还需要主机权限,详见各个参考页面。下面是一些示例:
- 从扩展程序 Service Worker 和扩展程序页面发出
fetch()
请求。 - 使用
chrome.tabs
API 读取和查询敏感的标签页属性(网址、标题和 favIconUrl)。 - 以编程方式注入内容脚本。
- 您可以使用
chrome.webRequest
API 监控和控制网络请求。 - 通过
chrome.cookies
API 访问 Cookie。 - 使用
chrome.declarativeNetRequest
API 重定向和修改请求及响应标头。
收到警告的权限
当某个扩展程序请求多项权限,并且其中许多权限都显示时 在安装时出现警告,用户将看到警告列表,如下例所示:
如果扩展程序收到了有限的警告或附有相关说明,用户会更有可能信任该扩展程序 。请考虑实现可选权限或功能较低的 API 以避免收到警报 警告。如需了解警告的最佳实践,请参阅权限警告指南。特定 警告及其适用的权限 权限参考列表。
在 "host_permissions"
和 "content_scripts.matches"
中添加或更改匹配模式
字段也会触发警告。如需了解详情,请参阅
更新权限。
允许使用
如果您的扩展程序需要在 file://
个网址上运行或在无痕模式下运行,用户必须在其详情页面上向扩展程序授予访问权限。有关打开详情页面的说明,请参阅管理扩展程序。
允许访问文件网址和无痕模式网页
- 右键点击 Chrome 中的扩展程序图标。
选择管理扩展程序。
<ph type="x-smartling-placeholder">向下滚动以启用文件网址访问权限或无痕模式。
<ph type="x-smartling-placeholder">
如需检测用户是否授予了访问权限,您可以调用 extension.isAllowedIncognitoAccess()
或
extension.isAllowedFileSchemeAccess()
。