如要使用大多數的擴充功能 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
}
主機權限
主機權限可讓擴充功能與網址的比對模式互動。部分 Chrome API 需要主機權限以及自身的 API 權限,詳情請參閱每個參考資料頁面。例如:
- 從擴充功能 Service Worker 和擴充功能頁面發出
fetch()
要求。 - 使用
chrome.tabs
API 讀取及查詢敏感的分頁屬性 (網址、標題和 favIconUrl)。 - 透過程式輔助方式插入內容指令碼。
- 使用
chrome.webRequest
API 監控及控管網路要求。 - 使用
chrome.cookies
API 存取 Cookie。 - 使用
chrome.declarativeNetRequest
API 重新導向及修改要求和回應標頭。
權限出現警告
當擴充功能要求多項權限,且其中許多權限在安裝時顯示警告清單,使用者會看到警告清單,如以下範例所示:
擴充功能若出現警告有限,或在向使用者說明權限,更有可能信任擴充功能。請考慮實作選用權限或功能較不強大的 API,以免發出警示警告。如需警示的最佳做法,請參閱「權限警告指南」。「權限」參考資料清單中會列出特定警告及其套用的權限。
在資訊清單檔案的 "host_permissions"
和 "content_scripts.matches"
欄位新增或變更比對模式,也會觸發警告。詳情請參閱更新權限相關說明。
允許存取
如果擴充功能需要在 file://
網址上執行,或是在無痕模式下運作,使用者必須在擴充功能的詳細資料頁面授予擴充功能存取權。您可以在「管理擴充功能」下方找到開啟詳細資料頁面的操作說明。
允許存取檔案網址和無痕模式網頁
- 在 Chrome 中的擴充功能圖示上按一下滑鼠右鍵。
選擇「管理擴充功能」。
向下捲動即可開啟檔案網址或無痕模式。
如要偵測使用者是否已授予存取權,您可以呼叫 extension.isAllowedIncognitoAccess()
或 extension.isAllowedFileSchemeAccess()
。