Greasemonkey обнаруживает частный режим просмотра? - программирование
Подтвердить что ты не робот

Greasemonkey обнаруживает частный режим просмотра?

Мне нужно, чтобы мой Greasemonkey script вел себя по-другому, если он в настоящее время работает в окне частного браузера Firefox. Можно ли это обнаружить у Greasemonkey? Если нет, то возможно ли, чтобы он не запускался вообще в режиме частного просмотра?

EDIT: Одна из причин, по которой я хочу сделать это, заключается в том, что обычно script делает запросы AJAX, которые включают информацию о посещенной странице и серверной стороне, может хранить эту информацию (что нормально при просмотре в обычном режиме). Однако, если пользователь находится в режиме частного просмотра, я не хочу, чтобы серверная сторона имела информацию о том, что пользователь посещает страницу, поэтому я хочу, чтобы он не делал эти запросы в этом случае.

4b9b3361

Ответ 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, чтобы проверить, работает ли пользовательский скрипт в окне частного режима.