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. durch Klicken auf die Browseraktion. 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.

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

Hinweis:Ab Version M72 wird die Berechtigung activeTab gewährt, bis der Nutzer eine anderen Ursprungs. Wenn der Nutzer die Erweiterung also unter 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.

Ohne activeTab:

Ohne ActiveTab

Mit activeTab:

Mit ActiveTab

Beispiel

Sehen Sie sich die Beispielerweiterung Page Redder an:

{
  "name": "Page Redder",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 2
}
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
  // No tabs or host permissions needed!
  console.log('Turning ' + tab.url + ' red!');
  chrome.tabs.executeScript({
    code: 'document.body.style.backgroundColor="red"'
  });
});

Motivation

Nehmen wir als Beispiel eine Web-Clipping-Erweiterung mit einer Browseraktion und einem Kontextmenüelement. Dieses nur dann auf Tabs zugreifen muss, wenn auf die Browseraktion oder 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 ist mit „activeTab“ möglich?

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

  • Rufe auf diesem Tab tabs.executeScript oder tabs.insertCSS auf.
  • Rufen Sie die URL, den Titel und das Favicon für diesen Tab über eine API ab, die ein tabs.Tab-Objekt zurückgibt. Im Wesentlichen gewährt activeTab die Berechtigung tabs vorübergehend.
  • Netzwerkanfragen auf dem Tab an den Hauptframe des Tabs mit der Methode webRequest abfangen der API erstellen. Die Erweiterung ruft vorübergehend Hostberechtigungen für den Hauptframe des Tabs ab.

ActiveTab aufrufen

Mit folgenden Nutzergesten wird activeTab aktiviert: