L'autorizzazione ActiveTab

L'autorizzazione activeTab concede a un'estensione l'accesso temporaneo alla scheda attualmente attiva quando l'utente richiama l'estensione, ad esempio facendo clic sulla relativa azione nel browser. Accesso alla scheda dura finché l'utente è sulla pagina e viene revocato quando l'utente esce dalla pagina o chiude la scheda.

Questa soluzione è alternativa per molti utilizzi di <all_urls>, ma visualizza nessun messaggio di avviso durante l'installazione:

Nota: a partire dalla versione M72, l'autorizzazione activeTab verrà concessa finché l'utente non accede a una un'origine diversa. Vale a dire che se l'utente richiama l'estensione su https://example.com e poi accede a https://example.com/foo, l'estensione continuerà ad avere accesso alla pagina. Se l'utente accede a https://chromium.org, l'accesso è stato revocato.

Senza activeTab:

Senza scheda attiva

Con activeTab:

Con scheda attiva

Esempio

Vedi l'estensione di esempio Page Redder:

{
  "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"'
  });
});

Motivazione

Prendi in considerazione un'estensione di taglio web che includa un'azione nel browser e una voce di menu contestuale. Questo potrebbe avere bisogno di accedere alle schede soltanto quando si fa clic sull'azione del browser o quando viene eseguita la voce di menu contestuale.

Senza activeTab, questa estensione dovrebbe richiedere l'accesso completo e permanente a ogni sito web, solo per fare il proprio lavoro se gli è capitato di essere richiamato dall'utente. Sono molte le potersi affidare a un'estensione così semplice. E se l’estensione viene compromessa, l’aggressore accede a tutti i contenuti dell'estensione.

Al contrario, un'estensione con autorizzazione activeTab ottiene l'accesso solo a una scheda in risposta a un gesto esplicito dell'utente. Se l’estensione viene compromessa, l’aggressore deve attendere che l’estensione all'utente di richiamare l'estensione prima di ottenere l'accesso. L'accesso durerà solo fino a quando la scheda navigato o è chiuso.

Funzionalità consentite da ActiveTab

Mentre l'autorizzazione activeTab è attiva per una scheda, un'estensione può:

  • Chiama tabs.executeScript o tabs.insertCSS in questa scheda.
  • Recupera l'URL, il titolo e la favicon di quella scheda tramite un'API che restituisce un oggetto tabs.Tab (in pratica, activeTab concede temporaneamente l'autorizzazione tabs).
  • Intercetta le richieste di rete nella scheda con l'origine del frame principale della scheda utilizzando webRequest tramite Google Cloud CLI o tramite l'API Compute Engine. L'estensione riceve temporaneamente le autorizzazioni host per l'origine del frame principale della scheda.

Richiamo di ActiveTab

I seguenti gesti dell'utente consentono di attivare activeTab: