2010-10-18 10 views
6

Escribo una extensión de Safari y quiero que se comporte de manera diferente cuando el usuario enciende el modo de navegación privada (quiero respetar este modo privado).¿Cómo puede saber una extensión de Safari si el modo de navegación privada está activado?

No encontré ninguna mención de esto en los documentos de Apple.

Soy consciente de la discusión en este tema:

Detecting if a browser is using Private Browsing mode

lo que sugiere el uso de un truco js-CSS (navegador agnóstica) para detectar el modo privado de navegación, pero la esperanza de que hay algún gancho integrado en Safari que podría usar para mi extensión.

¿Alguna idea?

Respuesta

0

Todos los modos privados ignorarán el estado actual del cookiejar utilizado por el navegador. Utilice algo como un evercookie para realizar un seguimiento de un navegador específico y cómo gestiona los diversos identificadores de sesión. Por ejemplo, si tiene una cookie http que expira en 60 años, y este valor de cookie no está presente en una solicitud a su servidor, entonces sabrá que los valores de la cookie han sido eliminados o que están en modo privado. Esto requerirá un poco más de experimentación por su parte, pero esta dirección será un método general para detectar el uso del modo privado en los navegadores.

1

Puede consultar la booleana safari.application.privateBrowsing.enabled para comprobar si la navegación privada está habilitada o no.

También puede adjuntar detectores de eventos para activar el código personalizado cuando se activa o desactiva la exploración privada.

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

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

Fuente: Apple Docs

Cuestiones relacionadas