ГИС

Mozilla предупреждает: у грядущих Firefox 100 и Chrome 100 могут возникнуть проблемы с user-agent

18.02.2022
Mozilla предупреждает: у грядущих Firefox 100 и Chrome 100 могут возникнуть проблемы с user-agent

Разработчики Mozilla предупредили, что у сайтов могут возникнуть проблемы с грядущими версиями Firefox 100 и Chrome 100 (выйдут 3 мая и 29 марта 2022 года). Дело в том, что выход новых версий будет означать, что значения user-agent станут трехзначными, пишет Хакер.

Строка user-agent содержит такую информацию, ​​как название браузера, номер его версии и данные о различных технологиях, которые тот использует. Так, когда человек посещает какой-либо сайт, user-agent браузера отправляется вместе с запросом веб-страницы. Это позволяет ресурсу проверить версию ПО посетителя и изменить свой ответ в зависимости от функций, поддерживаемых браузером.

К примеру, текущий user-agent Mozilla Firefox версии 97 выглядит так: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0. А user-agent для Google Chrome 98 так: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36.

Издание Bleeping Computer рассказывает, что еще в августе 2021 года инженеры Mozilla начали эксперимент, чтобы выяснить, не вызовет ли трехзначное значение user-agent «Firefox/100» проблем в работе с сайтами. Разработчики Google вскоре провели аналогичный эксперимент для Chrome 100. В итоге эксперты обнаружили небольшое количество сайтов, которые работали с новыми user-agent некорректно.

С тех пор Mozilla отслеживает ошибки, возникающие при изменении версии на 100, и уже обнаружила проблемы на сайтах HBO Go, Bethesda, Yahoo, Slack и ресурсах, созданных с помощью конструктора Duda. В основном такие баги ограничиваются появлением сообщений «браузер не поддерживается», а также проблемами с пользовательским интерфейсом, которые могут затрагивать разные части сайтов.

«Без единой спецификации, которой необходимо следовать, разные браузеры имеют разные форматы для строки user-agent, а парсинг user-agent зависит от конкретного сайта. Возможно, некоторые парсинговые библиотеки содержат жестко закодированные предположения или баги, которые не принимают во внимание трехзначные номера версий, — объясняют инженеры Mozilla. — Многие библиотеки улучшили работу парсинга, когда браузеры перешли на двузначные номера версий, поэтому ожидается, что переход на трехзначные версии вызовет меньше проблем».

Если проблемы с сайтами все же возникнут и будут слишком многочисленными, а Mozilla или Google не сумеют исправить это до релиза новых версий, у разработчиков имеются запасные планы. В частности, у Firefox есть механизм, который позволяет «заморозить» user-agent на значении «Firefox/99» или внедрить CSS на проблемный сайт. Точно так же Chrome может «заморозить» версию, отображаемую user-agent, на 99 и указывать фактическую версию браузера в другой части строки.

Mozilla просит администраторов сайтов заранее проверить, нормально ли их ресурсы воспринимают user-agent Firefox 100 и Chrome 100. Для этого в Firefox нужно открыть меню настроек Firefox Nightly, найти «Firefox 100», а затем активировать флаг «Firefox 100 User-Agent String». После этого строка user-agent Firefox изменится на Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0.

В Chrome нужно перейти на страницу chrome://flags/#force-major-version-to-100, активировать параметр и строка user-agent изменится на Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4758.102 Safari/537.36.

Если проблемы обнаруживаются, то отчеты об ошибках нужно присылать на webcompat.com, чтобы у разработчиков было время на их исправление.