Chrome i Firefox wkrótce pojawią się w wersji głównej 100

Zmiany w ciągu znaków klienta użytkownika, strategie Chrome i Firefox, które ograniczają ten wpływ, oraz sposoby, w jakie możesz pomóc.

Chrome i Firefox w ciągu kilku miesięcy trafią do wersji 100. Może to powodować awarie w witrynach, które wymagają identyfikacji wersji przeglądarki w celu obsługi logiki biznesowej. W tym poście znajdziesz oś czasu zdarzeń, strategie Chrome i Firefox, które pozwolą ograniczyć skutki negatywnych skutków, oraz sposoby, w jakie możesz pomóc.

Ciąg znaków klienta użytkownika

User-Agent (UA) to ciąg znaków wysyłany przez przeglądarki w nagłówkach HTTP, dzięki czemu serwery mogą rozpoznać przeglądarkę. Ciąg jest też dostępny przez JavaScript z zasobami navigator.userAgent. Zwykle ma taki format:

<browser_name>/<major_version>.<minor_version>

Na przykład najnowsze wersje przeglądarek w momencie publikowania tego posta to:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15.

wersja główna 100 – trzycyfrowy numer wersji,

Wersja główna 100 to kamień milowy zarówno w Chrome, jak i w Firefoksie. Po przejściu z 2-cyfrowego na 3-cyfrowy numer wersji może on też powodować błędy w witrynie. Programiści stron internetowych korzystają z najróżniejszych technik analizowania tych ciągów – od niestandardowego kodu po biblioteki analizy klienta użytkownika. Za ich pomocą można następnie określić odpowiednią logikę przetwarzania. Mechanizm User-Agent i inne mechanizmy zgłaszania wersji będą wkrótce zgłaszać 3-cyfrowy numer wersji.

Oś czasu wersji 100

Przeglądarki 100 razy zostaną najpierw udostępnione w wersjach eksperymentalnych (Chrome Canary, Firefox Nightly), a następnie w wersjach beta, a na koniec w wersji stabilnej.

Przeglądający Oś czasu
Chrome (harmonogram publikacji) 29 marca 2022 r.
Firefox (harmonogram wydań) 3 maja 2022 r.

Dlaczego trzycyfrowy numer wersji może być problematyczny?

Gdy ponad 12 lat temu przeglądarki pojawiły się po raz pierwszy w wersji 10, wykryto wiele problemów związanych z bibliotekami analizy składniowej klienta użytkownika, ponieważ numer wersji głównej zmienił się z jednej cyfry do dwóch.

Bez tej samej specyfikacji różne przeglądarki mają różne formaty ciągu znaków User-Agent i analizy klienta użytkownika specyficznego dla witryny. Niektóre biblioteki analizy mogą mieć zakodowane na stałe założenia lub błędy, które nie uwzględniają 3-cyfrowych numerów wersji głównych. Wiele bibliotek usprawniło logikę analizowania po przejściu przeglądarek na 2-cyfrowe numery wersji, więc osiągnięcie trzycyfrowego progu powinno powodować mniej problemów. Mike Taylor, inżynier z zespołu Chrome, przeprowadził ankietę dotyczącą często używanych bibliotek analizy analizy UA, ale nie wykrył żadnych problemów. Przeprowadzenie w tym polu eksperymentów w Chrome wykryło pewne problemy, nad którymi obecnie pracujemy.

Co robią przeglądarki w związku z tym problemem?

Zarówno Firefox, jak i Chrome prowadziły eksperymenty, w których obecne wersje przeglądarek zgłaszały wersję główną 100, co pozwala wykrywać możliwe awarie witryny. Doprowadziło to do kilku zgłoszonych problemów. Niektóre z nich zostały już naprawione. Eksperymenty te będą prowadzone do momentu opublikowania wersji 100.

Stosowane są też strategie ograniczania ryzyka wystąpienia kopii zapasowych na wypadek, gdyby wersja 100 została udostępniona w kanałach stabilnych bardziej niż oczekiwano.

Ograniczanie działania Chrome

W Chrome plan tworzenia kopii zapasowych zakłada użycie flagi do zablokowania wersji głównej 99 i zgłoszenia rzeczywistego numeru wersji głównej w podrzędnej części ciągu znaków User-Agent (kod już wylądował).

Wersja Chrome podana w ciągu znaków klienta użytkownika jest zgodna ze wzorcem <major_version>.<minor_version>.<build_number>.<patch_number>.

Jeśli korzystasz z planu tworzenia kopii zapasowych, ciąg znaków User-Agent będzie wyglądał tak:

99.101.4988.0

Chrome przeprowadza też eksperymenty, aby upewnić się, że podanie trzycyfrowej wartości w części podrzędnej ciągu znaków w wersji podrzędnej nie powoduje uszkodzenia, ponieważ starsza wersja ciągu znaków klienta użytkownika Chrome od bardzo dawna zgłasza wartość 0. Zespół Chrome zdecyduje, czy skorzystać z opcji kopii zapasowej, na podstawie liczby i wagi zgłoszonych problemów.

Łagodzenie reakcji w przeglądarce Firefox

W przeglądarce Firefox strategia zależy od tego, jak ważne jest uszkodzenie. Firefox obsługuje mechanizm ingerencji w witrynę. Za pomocą tego mechanizmu zespół Mozilla webcompat może naprawić uszkodzone witryny w przeglądarce Firefox. Wpisz about:compat na pasku adresu URL przeglądarki Firefox, aby zobaczyć, co jest naprawiane. Jeśli w określonej domenie witryna ulegnie awarii, a wersja główna to 100, można rozwiązać ten problem, wysyłając wersję 99.

Jeśli awarie występują powszechnie, możesz zablokować numer wersji głównej. Dostępne są różne strategie, a każda z nich ma swoje wady i zalety. Mozilla może wysłać rzeczywisty numer wersji jako numer wersji podrzędnej, zablokować ciąg znaków w niezmienionej postaci lub wysłać rzeczywisty numer wersji za pomocą innych parametrów.

Każda strategia, która zwiększa złożoność ciągu znaków klienta użytkownika, ma duży wpływ na ekosystem. Wspólnie spróbujmy uniknąć kolejnego dziwacznego zachowania.

Jak możesz pomóc?

W Chrome i Firefoksie Nightly możesz skonfigurować przeglądarkę, aby zgłaszała teraz wersję 100 oraz wszelkie napotkane problemy.

Skonfiguruj Chrome tak, aby wersja główna zgłaszała wersję 100

  1. Otwórz: chrome://flags/#force-major-version-to-100.
  2. Ustaw opcję na Enabled.

Skonfiguruj przeglądarkę Firefox Nightly, aby raportowała wersję główną jako 100

  1. Otwórz menu Ustawienia przeglądarki Firefox Nightly.
  2. Wyszukaj hasło „Firefox 100”, a następnie zaznacz opcję „Ciąg znaków klienta użytkownika w przeglądarce Firefox 100”.

Testowanie i przesyłanie raportów

  • Jeśli zajmujesz się obsługą witryny, przetestuj ją w Chrome i Firefoksie 100. Sprawdź swój kod oraz biblioteki analizy klienta użytkownika i upewnij się, że są w stanie obsługiwać trzycyfrowe numery wersji. Zebraliśmy trochę wzorców, które obecnie nie działają.
  • Jeśli tworzysz bibliotekę analizy składniowej klienta użytkownika, dodaj testy w celu przeanalizowania wersji większych lub równych 100. Nasze wstępne testy pokazują, że najnowsze wersje bibliotek obsługują je prawidłowo. Sieć ma jednak długą historię, więc jeśli masz starsze wersje bibliotek analizy, czas sprawdzić, czy nie występują problemy, i w końcu je uaktualnić.
  • Jeśli podczas przeglądania internetu zauważysz problemy z główną wersją 100, prześlij zgłoszenie na stronie webcompat.com.