host_permissions
| 型別 | Array |
|---|---|
| 必填 | 否 |
| Manifest 版本 | 3 或更高版本 |
| 示例 |
json |
使用 host_permissions 鍵來請求訪問擴充套件中讀取或修改主機資料的 API,例如 cookies、webRequest 和 tabs。此鍵是一個字串陣列,每個字串都是一個許可權請求。
請求的許可權和使用者提示
使用者可以 臨時授予或撤銷主機許可權。因此,大多數瀏覽器將 host_permissions 視為可選許可權。
安裝時,當您使用此鍵請求許可權時
- 在 Firefox 126 之前,Manifest V3 擴充套件請求的主機許可權不會顯示在安裝提示中。從 Firefox 127 開始,
host_permissions和content_scripts中列出的主機許可權將顯示在安裝提示中。但是,如果擴充套件更新請求新的主機許可權,這些許可權不會顯示給使用者。請參閱(Firefox bug 1893232)。 - Chrome 會在安裝提示中顯示許可權。
- Safari 不會在安裝提示中顯示請求的主機許可權。
您的擴充套件可以在安裝後立即使用 permissions.contains 檢查它是否擁有所有必需的許可權。如果它沒有必要的許可權,它可以使用 permissions.request 請求它們。提供一個入門步驟來解釋為什麼某些許可權是必需的,然後再請求它們可能也有幫助。
由於授予主機許可權的請求可能會影響使用者安裝您擴充套件的意願,因此請求主機許可權需要仔細考慮。例如,您希望避免請求不必要的主機許可權,並且可能希望在擴充套件的商店描述中提供有關您為何請求主機許可權的資訊。文章 Request the right permissions 提供了更多關於您應該考慮的問題的資訊。
有關如何測試和預覽許可權請求的資訊,請參閱 Extension Workshop 網站上的 Test permission requests。
格式
主機許可權指定為 匹配模式,每個模式標識擴充套件請求額外特權的一組 URL。例如,主機許可權可以是 "*://mdn.club.tw/*"。
額外特權包括
- XMLHttpRequest 和 fetch 對這些來源的訪問,沒有跨域限制(儘管不適用於來自內容指令碼的請求,這與 Manifest V2 中的情況相同)。
- 在沒有 "tabs" 許可權的情況下讀取標籤特定元資料的能力,例如
tabs.Tab物件的url、title和favIconUrl屬性。 - 使用
tabs.executeScript()以程式設計方式將指令碼注入來自這些來源的頁面。 - 接收來自這些主機
webRequestAPI 的事件的能力。 - 使用
cookiesAPI 訪問該主機 cookie 的能力,只要也包含"cookies"API 許可權。 - 繞過擴充套件頁面中將主機指定為完整域或萬用字元的跟蹤保護。
在 Firefox 中,擴充套件會獲得其來源的主機許可權,其形式為
moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
其中 60a20a9b-1ad4-af49-9b6c-c64c98c37920 是擴充套件的內部 ID。擴充套件可以透過呼叫 extension.getURL() 以程式設計方式獲取此 URL。
browser.extension.getURL("");
// moz-extension://60a20a9b-1ad4-af49-9b6c-c64c98c37920/
示例
"host_permissions": ["*://mdn.club.tw/*"]
請求對 developer.mozilla.org 下頁面的特權訪問。
擴充套件程式示例
瀏覽器相容性
載入中…