Questo non sembra essere una funzionalità exant dell'API. Ti suggerisco di aprire un bug a http://crbug.com.
In mancanza di questo, è possibile eseguire il seguente trucco brutto (che non ho ancora testato):
avere la tua pagina Nuova scheda inviare un messaggio alla tua pagina di background ogni volta che viene caricato.
ascolto per chrome.webNavigation.onBeforeNavigate
eventi che si occupano di chrome://newtab
:
chrome.webNavigation.onBeforeNavigate.addListener(function(details) {
/* send message */
}, { url: [{ urlEquals: 'chrome://newtab/' }] });
Quando webNavigation
vede il carico del browser chrome://newtab
ma non si vede un messaggio alla tua pagina di sfondo, poco dopo, la nuova scheda è probabilmente non essere usato Da lì, è possibile inviare una notifica o aprire un'altra scheda/finestra con un avviso.
Purtroppo, questo richiede il permesso webNavigation
, che è un peccato se l'estensione non altrimenti ne ha bisogno. L'avvertimento che porta ("Questa estensione può accedere alle tue schede e attività di navigazione") potrebbe spaventare alcuni potenziali utenti, soprattutto se non c'è alcun motivo che sia ovvio per l'utente. (Poi di nuovo, forse sono troppo ottimista riguardo la sicurezza e la scrupolosità degli utenti.) Se la tua estensione utilizza attualmente l'API tabs
, allora questo messaggio è già presente in ogni caso.
L'API ['chrome.webNavigation'] (https://developer.chrome.com/extensions/webNavigation.html) sarebbe più adatta dell'API' tabs'. Questa API consente di dichiarare i filtri, ad es. 'chrome.webNavigation.onBeforeNavigate.addListener (function (details) {/ * fa qualcosa * /}, {url: [{urlEquals: 'chrome: // newtab /'}]});' –