Как расширение Safari может узнать, включен ли режим приватного просмотра? - PullRequest
6 голосов
/ 18 октября 2010

Я пишу расширение Safari и хочу, чтобы оно работало по-разному, когда пользователь включает режим приватного просмотра (я хочу соблюдать этот приватный режим).

Я не нашел упоминаний об этом в документации Apple.

Мне известно об обсуждении в этой теме:

Определение, использует ли браузер режим приватного просмотра

, который предлагает использовать (браузер-agnostic) js-CSS-трюк для определения режима приватного просмотра, но надеялся, что в Safari есть встроенный хук, который я мог бы использовать для своего расширения.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 25 сентября 2012

Вы можете запросить логическое значение safari.application.privateBrowsing.enabled, чтобы проверить, включен ли приватный просмотр или нет.

Вы также можете прикрепить прослушиватели событий для запуска пользовательского кода, когда приватный просмотр активирован или деактивирован.

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

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

Источник: Apple Docs

0 голосов
/ 11 июля 2012

Все частные режимы будут игнорировать текущий статус cookiejar, используемого браузером.Используйте что-то вроде evercookie , чтобы отслеживать определенный браузер и то, как он управляет различными идентификаторами сеансов.Например, если у вас есть файл cookie http, срок действия которого истекает через 60 лет, и это значение файла cookie отсутствует в запросе к вашему серверу, то вы знаете, что значения файлов cookie сброшены или они находятся в закрытом режиме.Это потребует немного больше экспериментов с вашей стороны, но это направление будет основным методом обнаружения использования приватного режима в браузерах.

...