Обновление июнь 2019
Google исключает возможность для постоянного обнаружения режима приватного просмотра в Chrome 76 и далее. Итак, если вы хотите обнаружить приватный просмотр, теперь это невозможно (если только вы не найдете способ сделать это, которого Google не нашел). Возможность обнаружения частного режима просмотра была признана ошибкой и никогда не предназначалась.
Для всех, кто сталкивался с этим вопросом, обратите внимание, что с 2014 года не существует надежного или точного способа определить, просматривает ли кто-либо в режиме инкогнито / приват / безопасный просмотр через Javascript или CSS. Предыдущие решения, которые когда-то работали подобно хакерской истории CSS, с тех пор стали недоступными для всех поставщиков браузеров.
Никогда не должно быть ситуации, когда когда-либо требуется обнаружение режима частного просмотра на обычном повседневном веб-сайте. Люди выбирают просмотр анонимно или не анонимно по своим причинам.
Браузеры, такие как Chrome и Firefox, больше не отключают такие функции, как localStorage. Они просто помещают пространство имен во временное местоположение, чтобы предотвратить появление ошибок на сайтах, которые его используют. По завершении просмотра пространство имен стирается и ничего не сохраняется. Если вы тестируете поддержку localStorage независимо от режима, она всегда будет возвращать true для браузеров, которые ее поддерживают.
Другие средства обнаружения частного режима в Chrome, в частности, были полностью исправлены и больше не будут работать.
Если это требуется внутри компании, вам следует разработать плагин для браузера. В частности, Chrome и Firefox предоставляют внутренние API-интерфейсы, которые позволяют плагинам проверять, находится ли пользователь в режиме приватного просмотра / инкогнито, и соответственно действовать. Это не может быть сделано вне плагина.