如要使用大多數的擴充功能 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()
。