В мае пользователи YouTube начали массово жаловаться на странное поведение веб-плеера. При просмотре видео у некоторых зависает браузер, заметно растёт нагрузка на процессор и резко увеличивается потребление оперативной памяти. Проблема затрагивает разные браузеры — в том числе Firefox и Brave — и проявляется в виде заиканий звука, пропуска кадров и общей «тормознутости» интерфейса.
Похоже, причина кроется в ошибке рендеринга самого плеера. В отдельных случаях он попадает в бесконечный цикл перерасчёта интерфейса: элементы начинают постоянно пересчитываться и менять размер, из-за чего система вынуждена непрерывно выполнять лишние операции. Это и приводит к перегрузке ресурсов — особенно оперативной памяти.
По данным разработчиков, источник проблемы — элемент ytd-menu-renderer, в котором находятся кнопки «нравится», «не нравится» и «поделиться». Этот блок адаптивный: он скрывает или показывает кнопки в зависимости от ширины экрана.
Сбой возникает в момент, когда одной из кнопок не хватает места. Плеер убирает её, но затем ошибочно «считает», что свободного пространства стало достаточно — и возвращает кнопку обратно. Однако фактически места всё ещё не хватает, и элемент снова скрывается. В итоге запускается бесконечный цикл: удалить → добавить → удалить → добавить.
Из-за этого браузер постоянно перерабатывает интерфейс, что приводит к заметной нагрузке на CPU и росту потребления памяти — иногда с сотен мегабайт до нескольких гигабайт всего за время просмотра одного видео.
Если вы тоже столкнулись с таким поведением — напишите, в каком браузере и на какой системе это происходит. Интересно понять, насколько широко распространён этот баг и есть ли временные способы его обхода.
Похоже, причина кроется в ошибке рендеринга самого плеера. В отдельных случаях он попадает в бесконечный цикл перерасчёта интерфейса: элементы начинают постоянно пересчитываться и менять размер, из-за чего система вынуждена непрерывно выполнять лишние операции. Это и приводит к перегрузке ресурсов — особенно оперативной памяти.
По данным разработчиков, источник проблемы — элемент ytd-menu-renderer, в котором находятся кнопки «нравится», «не нравится» и «поделиться». Этот блок адаптивный: он скрывает или показывает кнопки в зависимости от ширины экрана.
Сбой возникает в момент, когда одной из кнопок не хватает места. Плеер убирает её, но затем ошибочно «считает», что свободного пространства стало достаточно — и возвращает кнопку обратно. Однако фактически места всё ещё не хватает, и элемент снова скрывается. В итоге запускается бесконечный цикл: удалить → добавить → удалить → добавить.
Из-за этого браузер постоянно перерабатывает интерфейс, что приводит к заметной нагрузке на CPU и росту потребления памяти — иногда с сотен мегабайт до нескольких гигабайт всего за время просмотра одного видео.
Если вы тоже столкнулись с таким поведением — напишите, в каком браузере и на какой системе это происходит. Интересно понять, насколько широко распространён этот баг и есть ли временные способы его обхода.