Ми вже писали про негаразди, котрі може спричинити Google Chrome версії 100, а сьогодні розповімо про цю проблему докладніше та опишемо як перевірити свій сайт на сумісність з прийдешніми версіями.
Незабаром Google Chrome і Firefox випустять свою 100-ту версію. Але з красивим номером пов'язані технічні проблеми. Деякі з цих проблем можуть призвести до збою роботи ваших вебсайтів.
Усі браузери мають User-Agent (UA) . Це рядок, який браузери надсилають у заголовках HTTP, щоб сервери могли ідентифікувати браузер. JavaScript також використовує його з JavaScript navigator.userAgent . Веброзробники використовують UA різними способами зі своїми серверними програмами. Формат UA такий:
назваБраузера/основнаВерсія.мінорнаВерсія
А це приклади UA найновіших версій браузерів:
- Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.82 Safari/537.36
-
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:97.0) Gecko/20100101 Firefox/97.0 (якщо користувач установив параметру
privacy.resistFingerprinting
значенняTrue
, версію буде заблоковано на Firefox/78.0).
Тож у чому тут проблема? У неправильних налаштуваннях формату дати. Найвідомішим прикладом є ще не зовсім зникла проблема Y2K . Колись проблема полягала в тому, що більшість програм кінця 90-х і давніших не могли працювати з чотиризначними датами року. Тепер наша проблема полягає в тому, що занадто багато програм для вебсайтів не можуть правильно обробити тризначний UA.
Ця проблема вже дошкуляла, коли браузери перейшли від 1-значних UA (1-9) до 10-значних UA. Наприклад, у 2009 році Opera 10 не показувала сайти належним чином , а деякі сайти взагалі не завантажувалися у Firefox 10, оскільки їхні скрипти читали Firefox 10 як застарілий Firefox 1.0. Ми можемо очікувати все це та багато іншого, коли з'являться Chrome та Firefox 100.
Ще у серпні 2021 року Mozilla запустила експеримент, щоб дізнатися, чи призводить до проблем з вебсайтами рядок UA Firefox/100. Google невдовзі теж почала експерименти з Chrome 100. З того часу було виявлено невелику кількість сайтів, які переставали працювати. Найпримітнішими стали HBO Go, Bethesda, Yahoo, Slack та сайти, створені за допомогою інструменту Duda.
Деякі з цих проблем неможливо усунути зусиллями розробників браузерів. Наприклад, усім добре відомо, що використання UA для визначення як вебсторінка або служба мають обслуговуватись у певному браузері — це погана ідея, але багато веброзробників зловживають цією можливістю. Якщо ваш вебсайт робить це, ймовірно, що ваш сайт надішле повідомлення про помилку замість завантаження вебсторінки у браузері версії 100.
Розробники вже зараз можуть перевірити, чи їхній сайт має цю проблему, використовуючи у Chrome прапор, який змусить його надсилати тризначний UA. Також можна перевірити, чи представлений новий UA належним чином, відвідавши перевірковий сайт Is Chrome 100 Yet? Потім ви можете використовувати цей браузер, щоб перевірити свої власні сайти на наявність проблем. Firefox також пропонує подібні тести.
Якщо на будь-якому з браузерів ви виявите негаразди через UA, перш ніж виправити їх, надішліть звіт на Webcompat. Крім того, переконайтеся у відсутності іншого виду помилки, перевіривши, чи з'являється проблема, коли ви використовуєте звичайний UA.
На випадок виникнення проблем інженерні групи Chrome та Firefox мають способи пом'якшення негативних наслідків.
У Firefox є механізм впливу на сайт. Завдяки йому команда Mozilla webcompat може швидко виправляти поламані вебсайти. Щоб переглянути, що саме виправляється, ви можете ввести about:compat до панелі URL-адреси. Звичайно, якщо сайт не працює через те, що він не може обробити основну версію 100, користувач може виправити проблему вказавши версію 99 натомість. Але вимагати від звичайних користувачів вручну змінити UA – це занадто. Якщо проблема виникатиме надто часто і будуть масові збої сайтів, Mozilla планує тимчасово заморозити основну версію Firefox на 99 і протестувати інші підходи.
Запасний план Chrome — використовувати прапор, щоб заморозити основну версію на 99 і повідомити реальний номер основної версії в другорядній частині рядка UA. Цей резервний код уже доступний у варіанті браузера Chrome з відкритим кодом Chromium.
У цьому випадку рядок UA версії Chrome використовуватиме такий шаблон <major_version>.<minor_version>.<build_number>.<patch_number>
. Прикладом може бути 99.101.4988.0. Розробники Chrome від Google вирішуватимуть, чи вдатися до цього способу в разі ускладнень.
Якщо ви хочете допомогти усунути цю проблему і Google, і Mozilla будуть раді вашій допомозі. І, звичайно, ваша компанія буде вдячна, що її вебсайт працюватиме як задумано після випуску версії 100.
Для цього завантажте та налаштуйте браузер раннього доступу, щоб він надсилав сайтам своєю версією UA 100 і повідомляйте про будь-які проблеми, з якими ви стикаєтесь. Ось як це зробити.
У Firefox Nightly:
- Відкрийте меню налаштувань Firefox Nightly.
- Знайдіть «Firefox 100», а потім позначте параметр «Рядок User-Agent Firefox 100», або «Firefox 100 User-Agent String», якщо мовою встановлено англійську.
Рядок UA має змінитися на 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
- Установіть параметр «Увімкнено».
Рядок UA має змінитися на Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4758.102 Safari/537.36
Перш ніж почати, пам'ятайте, що вже було знайдено кілька проблем з рядком UA.
Якщо ви веброзробник, який використовує стару бібліотеку синтаксичного аналізу UA, вам слід перевірити, чи може вона працювати з версіями UA, більшими або рівними 100. Перші тести показують, що новіші бібліотеки працюють належним чином. Але, як ми всі знаємо, інтернет наповнений старим кодом. Тож цілком можливо, що ви використовуєте стару, несумісну бібліотеку аналізу, і навіть не здогадуєтеся про неї, поки вона не спричинить проблем у найновіших браузерах, і ваші користувачі не згадають вас незлим тихим словом.
Саме час ставати до роботи. Випуск Chrome 100 заплановано на березень 2022 року, а Firefox 100 заплановано на 3 травня 2022 року. До цього часу варто впевнитися, що ваші вебсайти працюють так, як ви очікуєте.
Ще немає коментарів