Greasemonkey обнаруживает частный режим просмотра?
Мне нужно, чтобы мой Greasemonkey script вел себя по-другому, если он в настоящее время работает в окне частного браузера Firefox. Можно ли это обнаружить у Greasemonkey? Если нет, то возможно ли, чтобы он не запускался вообще в режиме частного просмотра?
EDIT: Одна из причин, по которой я хочу сделать это, заключается в том, что обычно script делает запросы AJAX, которые включают информацию о посещенной странице и серверной стороне, может хранить эту информацию (что нормально при просмотре в обычном режиме). Однако, если пользователь находится в режиме частного просмотра, я не хочу, чтобы серверная сторона имела информацию о том, что пользователь посещает страницу, поэтому я хочу, чтобы он не делал эти запросы в этом случае.
Ответы
Ответ 1
Внутри плагина в Firefox вы можете определить, находится ли браузер в режиме частного просмотра с помощью приведенного ниже кода, взятого из Документов разработчика Mozilla. Это, однако, внутренний API, доступный только из плагинов, а не из веб-сайтов или сторонних скриптов.
Нет гарантий, это поможет вам, поскольку я не уверен, что Grease Monkey выставляет API-интерфейс компонентов в Firefox для использования в GM script или нет. Первоначальный поиск, похоже, ничего не меняет.
try {
var pbs = Components.classes["@mozilla.org/privatebrowsing;1"]
.getService(Components.interfaces.nsIPrivateBrowsingService);
var inPrivateBrowsingMode = pbs.privateBrowsingEnabled;
if (!inPrivateBrowsingMode) {
/* save private information */
}
} catch(e){
alert("Error!");
}
Ответ 2
Эта функция реализована с тех пор, как Greasemonkey 3.8 - https://github.com/greasemonkey/greasemonkey/issues/2199
Вы можете использовать GM_info.isPrivate
, чтобы проверить, работает ли пользовательский скрипт в окне частного режима.