При запущенном видео нажатие любой клавиши на клавиатуре создает дополнительный поток аудио/видео. В скринкасте выше это видно во вкладке Media и в целом слышно по звуку многократного эха.
Сперва решил, что это баги самого сайта Instagram, но затем точно такой же баг выявил на другом сайте. Подумав, что вряд ли разработчики этих сайтов связаны, принялся за поиск источника проблемы.
Проверка в других браузерах - баг воспроизводится.
Проверка в инкогнито - баг воспроизводится.
Проверка без антивируса - баг НЕ воспроизводится.
https://take.ms/uk5OM - после изучения логов стало ясно, что в скрипте main.js (от Kaspersky Security Cloud), который инжектится на страницу, вешается обработчик keydown, который по каким-то причинам клонирует DOM-элемент видео. Это объясняет эхо.
https://take.ms/U3Hel - изучаю внимательнее код и вижу непосредственно вызов клонирования содержимого страницы, а также логику фильтрации… которая не работает =\
Эта проверка всегда будет false, так как getAttribute возвращает строку или null (ссылка на MDN). Также стоит упомянуть вызовы setAttribute, где вторым параметром вместо строки передается булево значение.
Неработающая логика фильтрации тоже баг, но не это вызывает множественное эхо.
Основная проблема заключается в том, что скрипт клонирует страницу целиком, включая video и audio с атрибутом autoplay, которые сразу же начинают воспроизведение.
main.js: video autoplay clone & wfd-invisible; дополнительный поток аудио/видео.
in Kaspersky Security Cloud
Posted
Добрый день.
Просматривая сайт Instagram выявил неприятный баг: https://take.ms/kpc5i
При запущенном видео нажатие любой клавиши на клавиатуре создает дополнительный поток аудио/видео. В скринкасте выше это видно во вкладке Media и в целом слышно по звуку многократного эха.
Сперва решил, что это баги самого сайта Instagram, но затем точно такой же баг выявил на другом сайте. Подумав, что вряд ли разработчики этих сайтов связаны, принялся за поиск источника проблемы.
Проверка в других браузерах - баг воспроизводится.
Проверка в инкогнито - баг воспроизводится.
Проверка без антивируса - баг НЕ воспроизводится.
https://take.ms/uk5OM - после изучения логов стало ясно, что в скрипте main.js (от Kaspersky Security Cloud), который инжектится на страницу, вешается обработчик keydown, который по каким-то причинам клонирует DOM-элемент видео. Это объясняет эхо.
https://take.ms/U3Hel - изучаю внимательнее код и вижу непосредственно вызов клонирования содержимого страницы, а также логику фильтрации… которая не работает =\
Эта проверка всегда будет false, так как getAttribute возвращает строку или null (ссылка на MDN). Также стоит упомянуть вызовы setAttribute, где вторым параметром вместо строки передается булево значение.
Исправленный вариант проверки выглядит так:
Неработающая логика фильтрации тоже баг, но не это вызывает множественное эхо.
Основная проблема заключается в том, что скрипт клонирует страницу целиком, включая video и audio с атрибутом autoplay, которые сразу же начинают воспроизведение.