「"activeTab&」權限

"activeTab" 權限會在使用者叫用擴充功能時 (例如按一下動作),授予擴充功能暫時存取目前使用中的分頁。使用者造訪該頁面時,分頁存取權會持續有效,使用者離開或關閉分頁時就會撤銷。舉例來說,如果使用者在 https://example.com 上叫用擴充功能,然後前往 https://example.com/foo,擴充功能便可以繼續存取該頁面。如果使用者前往 https://chromium.org,存取權就會撤銷。

這可做為 "<all_urls>" 的許多用途的替代使用,但在安裝期間會顯示「無警告訊息」

不使用 "activeTab"

缺少使用中的分頁

使用 "activeTab"

含使用中分頁

範例

請參閱 Page Redder 範例擴充功能:

manifest.json:

{
  "name": "Page Redder",
  "version": "2.0",
  "permissions": [
    "activeTab",
    "scripting"
  ],
  "background": {
    "service_worker": "service-worker.js"
  },
  "action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 3
}

服務人員:

function reddenPage() {
  document.body.style.backgroundColor = 'red';
}

chrome.action.onClicked.addListener((tab) => {
  if (!tab.url.includes('chrome://')) {
    chrome.scripting.executeScript({
      target: { tabId: tab.id },
      func: reddenPage
    });
  }
});

動機

假設有一個網頁剪輯擴充功能包含動作內容選單項目。在點選動作,或執行內容選單項目時,此擴充功能可能確實需要存取分頁。

如果沒有 "activeTab",這項擴充功能就必須要求所有網站的完整永久存取權,以便於使用者呼叫網站時,讓網站正常運作。這對這個簡單的擴充功能來說有許多能力。如果擴充功能遭駭,攻擊者就能存取該擴充功能擁有的所有權限。

相反地,具有 "activeTab" 權限的擴充功能只有在回應明確使用者手勢時,才能存取分頁。如果擴充功能遭駭,攻擊者必須等待使用者叫用擴充功能後,才能取得存取權。而且存取權只會持續到分頁離開或關閉為止。

「activeTab」允許的內容

啟用分頁的 "activeTab" 權限時,擴充功能可以:

叫用使用中分頁

下列使用者手勢支援 "activeTab" 權限: