如要使用大部分的擴充功能 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 也需要主機權限,相關說明請參閱各個參考資料頁面。例如:
- 從擴充功能 Service Worker 和擴充功能頁面發出
fetch()要求。 - 使用
chrome.tabsAPI 讀取及查詢私密的分頁屬性 (網址、標題和 favIconUrl)。 - 以程式輔助方式插入內容指令碼。
- 使用
chrome.webRequestAPI 監控及控管網路要求。 - 使用
chrome.cookiesAPI 存取 Cookie。 - 使用
chrome.declarativeNetRequestAPI 重新導向及修改要求和回應標頭。
權限 (含警告)
如果擴充功能要求多項權限,且其中許多權限在安裝時會顯示警告,使用者就會看到警告清單,如下例所示:

如果擴充功能顯示的警告較少,或向使用者說明權限,他們就越可能信任該擴充功能。建議導入選用權限或功能較弱的 API,以免出現令人擔憂的警告。如需有關警告的最佳做法,請參閱「權限警告指南」。如要查看特定警告,請參閱「權限」參考清單,瞭解警告適用的權限。
在資訊清單檔案的 "host_permissions" 和 "content_scripts.matches" 欄位中新增或變更相符模式,也會觸發警告。詳情請參閱「更新權限」。
允許存取
如果擴充功能需要在 file:// 網址上執行,或在無痕模式下運作,使用者必須在擴充功能的詳細資料頁面授予存取權。如需開啟詳細資料頁面的操作說明,請參閱「管理擴充功能」一文。
允許存取檔案網址和無痕頁面
- 在 Chrome 中,對擴充功能圖示按一下滑鼠右鍵。
選擇「管理擴充功能」。
擴充功能選單 向下捲動,啟用檔案網址或無痕模式的存取權。
已啟用檔案網址和無痕模式的存取權。
如要偵測使用者是否已允許存取權,可以呼叫 extension.isAllowedIncognitoAccess() 或 extension.isAllowedFileSchemeAccess()。