Разработчики браузеров Chrome и Firefox, которые скоро достигнут 100 версии, предупредили, что это может вызвать несовместимость с некоторыми сайтами. Оказалось, что из-за особенностей обработки идентификатора User Agent на некоторых сайтах они некорректно воспринимают трехзначное значение версии и считают браузер неподдерживаемым.
При переходе на веб-страницу браузер передает ей информацию о своем типе и версии, а также об операционной системе в виде идентификатора User Agent. Это позволяет владельцам сайта собирать статистику, в том числе о некорректной работе в конкретных браузерах, и предоставлять версию страницы, адаптированную для того или иного браузера. Также многие сервисы используют User Agent, чтобы предупреждать пользователей о возможной несовместимости или вовсе блокировать доступ. Иногда это приводит к искусственной несовместимости, например, как было с Google Docs после перехода браузера Edge на Chromium.
Разработчики браузеров Firefox и Chrome рассказали, что столкнулись с новой проблемой, связанной с User Agent. Дело в том, что весной оба браузера дойдут до 100 версии, а это значит, что в соответствующем месте User Agent будет использоваться не двухзначное значение, а трехзначное. Не все скрипты сайтов, предназначенные для обработки этого идентификатора, оказались готовы к такому изменению.
Выставив версию 100 в User Agent, разработчики обоих браузеров обнаружили разные неполадки на некоторых сайтах, в том числе и крупных порталах: Slack, Yahoo, HBO Go, T-Mobile. В зависимости от сайта, страницы проявляли те или иные баги. К примеру, выяснилось, что Slack сравнивал версию браузера пользователя с поддерживаемыми не как число, а как строку, поэтому сервис считал версию 100 более ранней, чем 52, и включал режим совместимости, который фактически ломал некоторые элементы интерфейса.
В обоих браузерах, в версиях для разработчиков, появилась функция отображения сотой версии, чтобы пользователи и тестировщики могли помочь разработчикам браузеров и сайтов подготовиться к весенним релизам. На случай, если вовремя исправить все баги не удастся, команды Chrome и Firefox рассматривают возможность временно остановиться на версии 99 и отображать реальный номер после этого числа, например, 99.101.4988.0, где реальный номер версии — 101. Однако они также отмечают, что пока обнаружили не очень много несовместимых сайтов, разработчики которых быстро пошли на встречу и исправили некорректную работу.
Подобные проблемы случались и ранее. Конкретно в браузерах аналогичная ситуация случилась, когда многие из них переходили от однозначной версии к двухзначной. Более широкой оказалась «ошибка 2000 года», при которой некоторые электронные системы из самых разных областей оказались неготовы к записи даты в новом формате. Подробнее об этом мы рассказывали в материале «Концы света».
Григорий Копиев