2015-06-07 10 views
5

mi hanno un'estensione di rimuovere i download effettuati in Google Chrome utilizzando questa riga di codice nel mio sfondo della pagina:Utilizzando chrome.browsingData.remove() in modalità in incognito

chrome.browsingData.remove({ "since": 0 }, { "downloads": true }); 

Quando un download è in una finestra normale funziona tuttavia quando un download è stato effettuato in una finestra di Chrome in incognito, non viene rimosso. La mia estensione si attiva in modalità in incognito e lo sfondo della pagina è in grado di rilevare quando un download nella pagina in incognito è stato completato utilizzando:

chrome.downloads.onChanged.addListener(function(download) { 
    if (download.state && download.state.current == "complete") { 
     // The code here is fired even if the download has been completed in incognito mode 
    } 
} 

C'è un modo per rimuovere i dati di navigazione a finestre in incognito da una pagina di sfondo ?

+1

Questo può dipendere dal fatto che si sta utilizzando la modalità di spanning in modalità '' spanning' o 'split''] (https://developer.chrome.com/extensions/manifest/incognito) per la propria estensione. Immagino che se tu stessi usando la modalità spanning, un download ricevuto in modalità in incognito scatenerebbe l'evento, ma la chiamata per cancellare i download scatta nel profilo chrome principale - dopotutto sono API separate. Prova la modalità 'split' se non lo hai già fatto! –

+0

Prova anche a utilizzare ['chrome.downloads.erase'] (https://developer.chrome.com/extensions/downloads#method-erase). Solo avere una dipendenza da una singola API significa meno cambiare quando qualcosa viene deprecato! –

+0

@ JimO'Brien Puoi trasformare il tuo primo commento in una risposta, è la soluzione e la spiegazione perfetta per questo problema! –

risposta

4

Il problema riscontrato è che l'estensione è in esecuzione in spanning incognito mode. Ciò significa che l'estensione viene eseguita con un singolo processo collegato al profilo che ha installato l'estensione (ad esempio, non la finestra di navigazione in incognito). In questa situazione, l'API chrome.downloads attiva l'evento onChanged per i download in entrambi i profili in incognito e normale, ma l'API chrome.browsingData si applica solo al profilo normale.

Invece, si desidera utilizzare la modalità di navigazione in incognito split. Ciò significa che l'estensione viene eseguita separatamente in ciascun profilo che la utilizza (vale a dire che la finestra di navigazione in incognito ottiene la propria copia in esecuzione dell'estensione). Ciò significa che quando chiami l'API chrome.browsingData, si applica alla finestra che ha generato l'evento.

Problemi correlati