optional_permissions

型別 Array
必填
Manifest 版本 2 或更高
示例
json
"optional_permissions": [
  "webRequest"
]

使用 optional_permissions 鍵來列出您希望在擴充套件程式安裝後,在執行時請求的許可權。

permissions 鍵列出了您的擴充套件程式在安裝前需要的所有許可權。相比之下,optional_permissions 列出了您的擴充套件程式在安裝時不需要,但在安裝後可以請求的許可權。要請求許可權,請使用 permissions.request() API。請求許可權會向用戶顯示一個對話方塊,要求他們授予您的擴充套件程式該許可權,除非所有請求的許可權都已靜默授予。

關於如何設計執行時許可權請求以最大化使用者授予許可權的可能性,請參閱 在執行時請求許可權

從 Firefox 84 開始,使用者可以在 Firefox 附加元件管理器中管理可選許可權。使用可選許可權的擴充套件程式可以透過 permissions.getAll() 檢查使用者授予的許可權,並監聽 permissions.onAddedpermissions.onRemoved 來了解使用者何時授予或撤銷許可權。

該鍵可以包含主機許可權和 API 許可權。

主機許可權

這些與您可以在 permissions 鍵中指定的許可權相同。

注意:在使用 Manifest V3 或更高版本時,可選的主機許可權應使用 optional_host_permissions manifest 鍵指定。Firefox 在 128 版中引入了 optional_host_permissions,請參閱 bug 1766026,並允許繼續使用 optional_permissions 指定可選主機。但建議使用 optional_host_permissions

API 許可權

可選的 API 許可權有

  • activeTab
  • background
  • bookmarks
  • browserSettings
  • browsingData
  • clipboardRead
  • clipboardWrite
  • contentSettings
  • contextMenus
  • cookies
  • debugger
  • declarativeNetRequest
  • declarativeNetRequestFeedback
  • declarativeNetRequestWithHostAccess
  • devtools
  • downloads
  • downloads.open
  • find
  • geolocation
  • history
  • idle
  • management
  • nativeMessaging
  • notifications
  • pageCapture
  • pkcs11
  • privacy
  • proxy
  • scripting
  • search
  • sessions
  • tabHide
  • tabGroups
  • tabs
  • topSites
  • 'userScripts' (僅限可選)
  • webNavigation
  • webRequest
  • webRequestBlocking
  • webRequestFilterResponse
  • webRequestFilterResponse.serviceWorkerScript

請檢視相容性表以獲取瀏覽器特定的支援詳細資訊。

這些可選許可權會靜默授予,無需使用者確認。

  • activeTab
  • cookies
  • idle
  • tabGroups
  • webRequest
  • webRequestBlocking
  • webRequestFilterResponse
  • webRequestFilterResponse.serviceWorkerScript

僅限可選許可權

通常,可選許可權可以在 permissions 鍵中使用,因此可以要求在安裝時授予。但是,某些瀏覽器支援“僅限可選許可權”的概念,即只能在執行時請求的許可權。例如,在 Firefox 中,使用者可以透過 擴充套件程式的選項頁面 或使用 permissions.request() 來授予僅限可選的許可權。僅限可選的許可權必須透過 permissions.request() API 單獨且獨立地請求。

僅限可選的 API 許可權有

示例

json
 "optional_permissions": ["*://mdn.club.tw/*"]

僅限 Manifest V2,使擴充套件程式能夠請求對 developer.mozilla.org 下頁面的特權訪問。

json
  "optional_permissions": ["tabs"]

使擴充套件程式能夠請求訪問 tabs API 的特權部分。

json
  "optional_permissions": ["*://mdn.club.tw/*", "tabs"]

僅限 Manifest V2,使擴充套件程式能夠請求上述兩個許可權。

瀏覽器相容性