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
:
Con activeTab
:
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
otabs.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'autorizzazionetabs
). - 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
:
- Esecuzione di un'azione nel browser
- Esecuzione di un'azione sulla pagina
- Esecuzione di una voce del menu contestuale
- Esecuzione di una scorciatoia da tastiera dall'API dei comandi
- Accettare un suggerimento dall'API omnibox