
Google Chrome скоро достигнет 100-й версии, но похоже, что выпуск приведет к тому, что некоторые веб-сайты перестанут работать. Google начал исследовать и тестировать решения.
Существуя уже 13 лет, Google Chrome стремительно приближается к своей 100-й крупной версии. Хотя в браузере не предвидится никаких значительных изменений, Google давно знает, что Chrome 100 может привести к полному прекращению работы некоторых веб-сайтов. Однако за последние несколько недель Google обнаружил примеры сайтов, которые сломаются.
Согласно списку отслеживания ошибок Chromium, веб-сайты, которые, как известно, затронуты, в основном разработаны с использованием Duda, конструктора веб-сайтов. Все эти веб-сайты используют один и тот же фрагмент кода для проверки используемой вами версии Chrome.
Вообще говоря, если веб-сайту необходимо знать, какой браузер вы используете и насколько он актуален, он проверяет так называемую «строку User Agent». Это фрагмент текста, который ваш браузер добавляет к каждому веб-соединению, сообщая сайту о себе. Если разбить строку User Agent, вы найдете много «мусора», большая часть которого существует для поддержания совместимости с сайтами 1990-х и начала 2000-х годов.
Но это не главное в данном случае. Давайте посмотрим на пример строки User Agent для Google Chrome.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
Ближе к концу вы увидите часть, которую мы ищем: «Chrome/96.0.4664.45», которая дает нам точный номер версии браузера. Однако большинству веб-разработчиков, вероятно, важен только основной номер версии, который в нашем примере равен «96».
Поскольку строка User Agent — это просто текст, разработчикам нужно придумать способ интерпретировать информацию в соответствии со своими потребностями. В случае с Duda разработчики решили считывать только первые два цифры после «Chrome/». Это означает, что «Chrome/99» будет 99, но с другой стороны «Chrome/100» будет восприниматься как версия 10.
Следующая проблема заключается в том, что Duda автоматически блокирует любую версию Chrome ниже 40-й — которая была выпущена в 2015 году, если это дает вам некоторую перспективу. Немедленно любая версия браузера после Chrome 99 будет восприниматься как версия 10 и, следовательно, будет заблокирована.
Обновление 28.12: В заявлении Duda компания ясно дала понять, что их конструктор веб-сайтов был обновлен для устранения этой проблемы «в течение нескольких часов» после ее сообщения Google, задолго до запланированного выпуска Chrome 100. Все веб-сайты, созданные с помощью Duda, теперь будут продолжать работать корректно после выпуска Chrome 100.
Возникла проблема с неисправно настроенными правилами безопасности, которые блокировали заголовок User-Agent в Chrome 100. Как только проблема была сообщена Duda, она была устранена в течение нескольких часов, за несколько месяцев до запланированного выпуска Chrome 100.
— Дэнни Манн, директор по инфраструктуре и DevOps в Duda
Хотя еще предстоит выяснить, затронуты ли какие-либо другие веб-сайты той же проблемой, очень хорошо, что Duda оперативно решила этот вопрос, что означает, что в настоящее время нет известных веб-сайтов, которые бы ломались с Chrome 100. Если повезет, предложенные Google обходные пути (изложенные ниже) вообще не понадобятся.
Можно утверждать, что эти веб-сайты просто устарели и их нужно оставить позади, но это противоречит духу Всемирной паутины. В одном известном примере оригинальный веб-сайт Space Jam, который был впервые размещен в Интернете в 1996 году, до сих пор доступен и полностью функционирует. Отчасти это связано с ранее упомянутым «мусором», который заставляет винтажные веб-сайты думать, что вы используете старый браузер Netscape. Кстати, история строки User Agent очень увлекательна и ее стоит прочитать.
Итак, если мы не можем оставить эти веб-сайты позади, что можно сделать?
Первое предложение — потенциально одно из многих — заключается в изменении того, где разработчики должны проверять версию Chrome. Ради старых веб-сайтов Chrome зафиксирует первый номер версии строки User Agent на 99. Если веб-разработчик захочет проверить конкретную версию после этого, ему нужно будет посмотреть на второй набор цифр.
Таким образом, вместо того, чтобы включать что-то вроде «Chrome/100.0.1234.56″, будет включено «Chrome/99.100.1234.56″.
Для этого в chrome://flags добавляется новый флаг, который позволит сотрудникам Google и веб-разработчикам проверить, затронуты ли различные сайты этим изменением местоположения основного номера версии Chrome.
Переместить основной номер версии в позицию минорной версии и в User-Agent
Зафиксировать основной номер версии Chrome в строке User-Agent на 99 и принудительно поместить основной номер версии в позицию минорной версии. Этот флаг является запасным планом на случай непредвиденных сбоев M100.
#force-major-to-minor
Однако, как вы можете заметить в описании флага, это решение считается «запасным планом». Текущее решение заключается в том, чтобы Google связывался с отдельными разработчиками по поводу предстоящей проблемы с Chrome 100.
До сих пор компании фактически сопутствовал некоторый успех в этом начинании, поскольку Duda была не единственным веб-инструментом, у которого возникла проблема. Еще несколько дней назад все веб-сайты, созданные британской компанией Yell Business, также должны были перестать работать с Chrome 100. Благодаря усилиям отдельных сотрудников Google, Yell Business исправила проблему для всей своей сети.
Текущая надежда заключается в том, что Google сможет окончательно найти все веб-сайты в Интернете, которые сломаются при выпуске Chrome 100, и связаться с их разработчиками по этому поводу. Если эти проблемы удастся устранить заблаговременно до запуска Chrome 100 в конце марта, то для веб-разработчиков ничего не изменится.
В противном случае Chrome добавит новый фрагмент «мусора» к постоянно удлиняющейся строке User Agent.