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
:
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
odertabs.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ährtactiveTab
die Berechtigungtabs
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:
- Eine Browseraktion ausführen
- Eine Seitenaktion ausführen
- Ausführen eines Kontextmenüelements
- Tastenkombination über die Commands API ausführen
- Annehmen eines Vorschlags von der Omnibox API