声明权限

如需使用大多数扩展程序 API 和功能,您必须在清单的权限字段中声明扩展程序的用途。扩展程序可以请求以下类别的权限,这些权限使用相应的清单键指定:

"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
}

主机权限

主机权限允许扩展程序与网址的匹配模式进行交互。除了自身的 API 权限之外,某些 Chrome API 还需要主机权限,这些权限记录在每个参考页面上。下面是一些示例:

附带警告的权限

如果扩展程序请求了多项权限,并且其中许多权限在安装时会显示警告,那么用户会看到一个警告列表,如下例所示:

安装时的扩展程序权限警告

如果扩展程序的警告数量有限,或者向用户说明了权限,用户就更可能信任该扩展程序。请考虑实现可选权限或功能较弱的 API,以避免出现令人不安的警告。如需了解有关警告的最佳实践,请参阅权限警告指南权限参考列表中列出了具体的警告以及它们所适用的权限。

在清单文件的 "host_permissions""content_scripts.matches" 字段中添加或更改匹配模式也会触发警告。如需了解详情,请参阅更新权限

允许使用

如果您的扩展程序需要在 file:// 网址上运行或在无痕模式下运行,用户必须在扩展程序的详情页面上授予相应访问权限。您可以在管理扩展程序下找到有关如何打开详情页面的说明。

允许访问文件网址和无痕页面

  1. 右键点击 Chrome 中的扩展程序图标。
  2. 选择管理扩展程序

    扩展程序上下文菜单
    扩展程序菜单
  3. 向下滚动以允许访问文件网址或无痕模式。

    允许在扩展程序详情页面上使用文件网址和无痕模式
    已启用对文件网址和无痕模式的访问权限。

如需检测用户是否已允许访问,您可以调用 extension.isAllowedIncognitoAccess()extension.isAllowedFileSchemeAccess()