2010-10-18 16 views
6

Sto scrivendo un'estensione Safari e voglio che si comporti diversamente quando l'utente attiva la modalità di navigazione privata (voglio rispettare questa modalità privata).Come può sapere un'estensione Safari se la modalità di navigazione privata è attiva?

Non ho trovato alcuna menzione di questo nei documenti di Apple.

Sono consapevole della discussione in questa discussione:

Detecting if a browser is using Private Browsing mode

che suggerisce di utilizzare un trucco js-CSS (browser-agnostic) per rilevare la modalità privata-browsing, ma speravo ci sia qualche gancio integrato in Safari che potrei usare per la mia estensione.

Qualche idea?

risposta

0

Tutte le modalità private ignoreranno lo stato corrente del cookiejar utilizzato dal browser. Utilizzare qualcosa come un evercookie per tenere traccia di un browser specifico e come gestisce i vari ID di sessione. Ad esempio, se hai un cookie http che scade tra 60 anni e questo valore del cookie non è presente in una richiesta al tuo server, allora sai che i valori del cookie sono stati svuotati o se sono in modalità privata. Ciò richiederà un po 'più di sperimentazione dalla tua parte, ma questa direzione sarà un metodo generale per rilevare l'uso della modalità privata nei browser.

1

È possibile interrogare il valore booleano safari.application.privateBrowsing.enabled per verificare se la navigazione privata è abilitata o meno.

È inoltre possibile allegare listener di eventi per attivare il codice personalizzato quando la navigazione privata viene attivata o disattivata.

safari.application.privateBrowsing.addEventListener('activate', function(e) { 
    console.log("Private browsing activated"); 
}); 

safari.application.privateBrowsing.addEventListener('deactivate', function(e) { 
    console.log("Private browsing deactivated"); 
}); 

Fonte: Apple Docs