Die Berechtigung „activeTab“

Mit der Berechtigung „"activeTab"“ erhält eine Erweiterung vorübergehend Zugriff auf den aktuell aktiven Tab, wenn Der Nutzer ruft die Erweiterung auf, z. B. indem er auf die Aktion klickt. Zugriff auf den Tab bleibt bestehen, solange sich der Nutzer auf dieser Seite befindet. Der Zugriff wird widerrufen, wenn der Nutzer die Seite verlässt oder den Tab schließt. Wenn der Nutzer die Erweiterung z. B. auf https://beispiel.de aufruft und dann https://beispiel.de/foo aufruft, hat die Erweiterung weiterhin Zugriff auf die Seite. Wenn die ruft https://chromium.org auf und der Zugriff wurde widerrufen.

Diese Option dient als Alternative für viele Anwendungsfälle von "<all_urls>", es wird jedoch keine Warnmeldung angezeigt. während der Installation:

Ohne "activeTab":

Ohne ActiveTab

Mit "activeTab":

Mit ActiveTab

Beispiel

Sehen Sie sich die Beispielerweiterung Page Redder an:

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
}

service-worker:

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
    });
  }
});

Motivation

Nehmen wir als Beispiel eine Web-Clipping-Erweiterung mit einer Aktion und einem Kontextmenüelement. Dieses benötigt die Erweiterung möglicherweise nur dann auf Tabs, wenn auf ihre Aktion geklickt oder ihre Kontextmenüelement ausgeführt wird.

Ohne "activeTab" müsste diese Erweiterung uneingeschränkten, dauerhaften Zugriff auf jede Website anfordern, damit es seine Arbeit ausführen kann, falls es vom Nutzer aufgerufen werden sollte. Das ist eine Menge auf eine so einfache Erweiterung zu verlassen. Sollte eine Erweiterung gehackt werden, erhält Zugriff auf alle Funktionen der Erweiterung.

Erweiterungen mit der Berechtigung "activeTab" hingegen erhalten als Antwort nur Zugriff auf einen Tab. einer expliziten Nutzergeste. Wenn die Erweiterung manipuliert wurde, muss der Angreifer warten, bis der , um die Erweiterung aufzurufen, bevor Zugriff erhalten wird. Dieser Zugriff besteht nur, bis der Tab wieder verfügbar ist, aufgerufen oder geschlossen ist.

Was "activeTab" erlaubt

Solange die Berechtigung "activeTab" für einen Tab aktiviert ist, kann eine Erweiterung:

ActiveTab aufrufen

Die folgenden Nutzergesten aktivieren die Berechtigung "activeTab":