De "actieveTab" toestemming

De machtiging "activeTab" geeft een extensie tijdelijk toegang tot het actieve tabblad wanneer de gebruiker de extensie activeert , bijvoorbeeld door op de actie ervan te klikken. De toegang tot het tabblad duurt zolang de gebruiker zich op die pagina bevindt en wordt ingetrokken wanneer de gebruiker naar een andere pagina navigeert of het tabblad sluit. Als de gebruiker bijvoorbeeld de extensie activeert op https://example.com en vervolgens naar https://example.com/foo navigeert, behoudt de extensie de toegang tot de pagina. Als de gebruiker vervolgens naar https://chromium.org navigeert, wordt de toegang ingetrokken.

Dit dient als alternatief voor veel toepassingen van "<all_urls>" , maar geeft geen waarschuwingsbericht weer tijdens de installatie:

Zonder "activeTab" :

Zonder activeTab

Met "activeTab" :

Met activeTab

Toegang tot beperkte pagina's, zoals chrome:// pagina's, wordt niet verleend.

Voorbeeld

Bekijk de voorbeeldextensie 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
}

servicemedewerker:

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

chrome.action.onClicked.addListener((tab) => {
  // If the tab URL is not set, it is a restricted page.
  if (tab.url) {
    chrome.scripting.executeScript({
      target: { tabId: tab.id },
      func: reddenPage
    });
  }
});

Motivatie

Neem bijvoorbeeld een webknipsel-extensie met een actie en een contextmenu-item . Deze extensie hoeft mogelijk alleen toegang te hebben tot tabbladen wanneer er op de actie wordt geklikt of wanneer het contextmenu-item wordt uitgevoerd.

Zonder "activeTab" zou deze extensie volledige, permanente toegang tot elke website moeten aanvragen, alleen al om zijn werk te kunnen doen als de gebruiker er een beroep op doet. Dat is een enorme macht die aan zo'n simpele extensie wordt toevertrouwd. En als de extensie ooit wordt gehackt, krijgt de aanvaller toegang tot alles wat de extensie bevatte.

Een extensie met de machtiging "activeTab" krijgt daarentegen alleen toegang tot een tabblad na een expliciete actie van de gebruiker. Als de extensie gehackt wordt, moet de aanvaller wachten tot de gebruiker de extensie activeert voordat hij toegang krijgt. En die toegang duurt slechts tot het tabblad wordt geopend of gesloten.

Wat "activeTab" mogelijk maakt

Wanneer de machtiging "activeTab" is ingeschakeld voor een tabblad, kan een extensie het volgende doen:

activeTab oproepen

De volgende gebruikershandelingen maken de "activeTab" -machtiging mogelijk: