optional_permissions
| 类型 | Array |
|---|---|
| 必填 | 否 |
| Manifest 版本 | 2 或更高 |
| 示例 |
json |
使用 optional_permissions 键来列出您希望在扩展程序安装后,在运行时请求的权限。
permissions 键列出了您的扩展程序在安装前需要的所有权限。相比之下,optional_permissions 列出了您的扩展程序在安装时不需要,但在安装后可以请求的权限。要请求权限,请使用 permissions.request() API。请求权限会向用户显示一个对话框,要求他们授予您的扩展程序该权限,除非所有请求的权限都已静默授予。
关于如何设计运行时权限请求以最大化用户授予权限的可能性,请参阅 在运行时请求权限。
从 Firefox 84 开始,用户可以在 Firefox 附加组件管理器中管理可选权限。使用可选权限的扩展程序可以通过 permissions.getAll() 检查用户授予的权限,并监听 permissions.onAdded 和 permissions.onRemoved 来了解用户何时授予或撤销权限。
该键可以包含主机权限和 API 权限。
主机权限
这些与您可以在 permissions 键中指定的权限相同。
注意:在使用 Manifest V3 或更高版本时,可选的主机权限应使用 optional_host_permissions manifest 键指定。Firefox 在 128 版中引入了 optional_host_permissions,请参阅 bug 1766026,并允许继续使用 optional_permissions 指定可选主机。但建议使用 optional_host_permissions。
API 权限
可选的 API 权限有
activeTabbackgroundbookmarksbrowserSettingsbrowsingDataclipboardReadclipboardWritecontentSettingscontextMenuscookiesdebuggerdeclarativeNetRequestdeclarativeNetRequestFeedbackdeclarativeNetRequestWithHostAccessdevtoolsdownloadsdownloads.openfindgeolocationhistoryidlemanagementnativeMessagingnotificationspageCapturepkcs11privacyproxyscriptingsearchsessionstabHidetabGroupstabstopSites- 'userScripts' (仅限可选)
webNavigationwebRequestwebRequestBlockingwebRequestFilterResponsewebRequestFilterResponse.serviceWorkerScript
请查看兼容性表以获取浏览器特定的支持详细信息。
这些可选权限会静默授予,无需用户确认。
activeTabcookiesidletabGroupswebRequestwebRequestBlockingwebRequestFilterResponsewebRequestFilterResponse.serviceWorkerScript
仅限可选权限
通常,可选权限可以在 permissions 键中使用,因此可以要求在安装时授予。但是,某些浏览器支持“仅限可选权限”的概念,即只能在运行时请求的权限。例如,在 Firefox 中,用户可以通过 扩展程序的选项页面 或使用 permissions.request() 来授予仅限可选的权限。仅限可选的权限必须通过 permissions.request() API 单独且独立地请求。
仅限可选的 API 权限有
- 'userScripts' (请参阅 userScripts 权限)
示例
"optional_permissions": ["*://mdn.org.cn/*"]
仅限 Manifest V2,使扩展程序能够请求对 developer.mozilla.org 下页面的特权访问。
"optional_permissions": ["tabs"]
使扩展程序能够请求访问 tabs API 的特权部分。
"optional_permissions": ["*://mdn.org.cn/*", "tabs"]
仅限 Manifest V2,使扩展程序能够请求上述两个权限。
浏览器兼容性
加载中…