Est-il possible de déterminer si Chrome est en mode de navigation privée via un script utilisateur?
-
04-10-2019 - |
Question
Je posé cette question avant mais n'a pas fait clairement que je voulais dire dans le script utilisateur, et non en JavaScript à partir d'un webpage.So je serai plus clair maintenant.
Est-il possible de déterminer si Google Chrome est en mode de navigation privée via un script utilisateur (essentiellement un run de script comme une extension dans le navigateur, pas un script exécuté sur une page Web)?
La solution
Si vous développez une extension, vous pouvez utiliser l'API onglets pour déterminer si une fenêtre / onglet navigation privée.
Plus d'informations peuvent être trouvées sur code.google.com .
Si vous travaillez avec juste une page Web ou un userscript, il est pas facile, et il est conçu pour être de cette façon. Cependant, je constate que toutes les tentatives d'ouvrir une base de données (window.database) échouent lorsque dans incongnito, c'est parce que quand incognito aucune trace de données est autorisé à rester sur la machine de l'utilisateur.
Je l'ai pas testé, mais je soupçonne que tous les appels à localStorage laissent tomber trop.
Autres conseils
Pour détecter si une fenêtre est mode de navigation privée, cochez la case incognito propriété de l'onglet concerné ou objet fenêtre. Par exemple:
var bgPage = chrome.extension.getBackgroundPage();
function saveTabData(tab, data) {
if (tab.incognito) {
bgPage[tab.url] = data; // Persist data ONLY in memory
} else {
localStorage[tab.url] = data; // OK to store data
}
Aujourd'hui, il est assez facile de le faire à partir d'un script de contenu. Il suffit d'utiliser
if(chrome.extension.inIncognitoContext) {
//you're incognito
} else {
//you're not
}