A böngészők Y2K problémája: a böngészős százas átok

kami911 képe

A Chrome és a Firefox néhány hónapon belül eléri a 100-as verziót. Ez potenciálisan törést okozhat az olyan webhelyeken, amelyek az üzleti logika végrehajtásához a böngésző verziójának azonosítására támaszkodnak. Ez a bejegyzés az események idővonalát, a Chrome és a Firefox által a hatás mérséklésére alkalmazott stratégiákat és azt mutatja be.

A User-Agent (UA) egy olyan karakterlánc, amelyet a böngészők a HTTP fejlécekben küldenek, hogy a szerverek azonosítani tudják a böngészőt.  A karakterlánc JavaScript segítségével is elérhető a navigator.userAgent segítségével. Általában a következőképpen van formázva:

browserName/majorVersion.minorVersion

Például a böngészők legfrissebb kiadási verziói e bejegyzés közzétételének időpontjában a következők:

  • 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

100-as főverzió: háromjegyű verziószám

A 100-as főverzió nagy mérföldkő mind a Chrome, mind a Firefox számára. Ez a kétjegyű verziószámról a háromjegyű verziószámra való áttérés miatt a weboldalakon is problémát okozhat. A webfejlesztők mindenféle technikát használnak ezeknek a karakterláncoknak az elemzésére, az egyéni kódtól kezdve a User-Agent elemző könyvtárak használatáig, amelyek segítségével meghatározható a megfelelő feldolgozási logika. A User-Agent és bármely más verziójelentő mechanizmus hamarosan háromjegyű verziószámot fog jelenteni.

100-as verziók érkezése

A 100-as verziójú böngészők először kísérleti verziókban (Chrome Canary, Firefox Nightly), majd bétaverziókban, végül pedig a stabil csatornán jelennek meg:
Chrome (kiadási ütemterv): 2022. március 29.
Firefox (kiadási ütemterv): 2022. május 3.

Miért lehet problémás egy háromjegyű verziószám?

Amikor a böngészők valamivel több mint 12 évvel ezelőtt elérték a 10-es verziót, számos problémát fedeztek fel a User-Agent elemző könyvtárakkal kapcsolatban, mivel a fő verziószám egy számjegyről két számjegyűre változott.

Egyetlen követendő specifikáció nélkül a különböző böngészők különböző formátumban adják meg a User-Agent karakterláncot, és a webhelyek specifikus User-Agent elemzést végeznek. Lehetséges, hogy egyes elemző könyvtárak rossz feltételezésekkel vagy hibákkal rendelkeznek, amelyek nem veszik figyelembe a háromjegyű főverziószámokat.  Sok könyvtár javított az elemzési logikán, amikor a böngészők áttértek a kétjegyű verziószámokra, így a háromjegyű mérföldkő elérése várhatóan kevesebb problémát fog okozni. Mike Taylor, a Chrome-csapat egyik mérnöke felmérést végzett a gyakori UA-elemző könyvtárakról, amely nem tárt fel semmilyen problémát. A Chrome-kísérletek helyszíni futtatása felszínre hozott néhány problémát, amelyeken már dolgoznak a fejlesztők.

Mit tesznek a böngészőfejlesztők ez ügyben?

Mind a Firefox, mind a Chrome olyan kísérleteket futtatott, amelyekben a böngésző aktuális verziói a 100-as főverzióra írják át, hogy így felismerjék az esetleges webhely problémákat. Ez néhány már most bejelentett problémához vezetett, amelyek közül néhányat már javítottak. Ezek a kísérletek a 100-as verzió megjelenéséig folytatódnak.

Emellett biztonsági kárenyhítési mentési stratégiák is léteznek arra az esetre, ha a 100-as verzió stabil csatornákra történő kiadása a vártnál nagyobb kárt okozna a weboldalaknak.

Firefox kárenyhítés

A Firefox esetében a stratégia attól függ, hogy mennyire nagy a probléma. A Firefox rendelkezik egy webhely beavatkozási mechanizmussal. A Mozilla webcompat csapata a Firefoxban a törött webhelyeket azon melegében javíthatja e mechanizmus segítségével. Ha a Firefox URL-sávjába beírja az about:compat szót, láthatja, hogy milyen webhelyek kapnak éppen javítást a Firefox böngészőben. Ha egy webhely úgy romlik el, hogy a főverzió 100-as értéke okoz problémát egy adott webhelyen, akkor lehetséges a javítás a 99-es verziószámmal történő helyettesítése.

Ha a probléma széles körű, és az egyes webhelyek beavatkozásai kezelhetetlenné válnak, a Mozilla ideiglenesen befagyaszthatja a Firefox főverzióját 99-esre, majd tesztelhet más lehetőségeket is.

Chrome kárenyhítés

A Chrome számára a kárenyhítési terv az, hogy egy flag segítségével a főverziót 99-re fagyasztják, és a valódi főverziószámot a User-Agent karakterlánc minor version részében jelentik (a kód már elkészült).

A User-Agent karakterláncban a jelentett Chrome verzió a

<major_version>.<minor_version>.<build_number>.<patch_number>

mintát követi.

Ha a biztonsági tervet alkalmazzák, akkor a User-Agent karakterlánc így nézne ki:

99.101.4988.0

A Chrome kísérleteket is folytat annak biztosítására, hogy a karakterlánc minor version részében a háromjegyű érték jelentése ne eredményezzen problémát, mivel a Chrome User-Agent karakterláncában a minor version már nagyon régóta 0 értéket kap. A Chrome-csapat a bejelentett problémák száma és súlyossága alapján dönt arról, hogy folyamodnak-e a B-tervhez.

Ön hogyan tud segíteni?

Minden olyan stratégia, amely bonyolultabbá teszi a User-Agent karakterláncot, komoly hatással van az ökoszisztémára. Dolgozzunk közösen, hogy elkerüljünk egy újabb furcsa viselkedést. A Chrome és a Firefox Nightly programban beállíthatja a böngészőt úgy, hogy a verziót jelenleg 100-nak jelezze, és így megjelenjenek a problémákat, amiket aztán jelenthet.

A Firefox Nightly beállítása, hogy a főverzió 100-as értékként jelentse meg

  1. Nyissa meg a Firefox Nightly beállítások menüjét.
  2. Keressen rá a „Firefox 100" kifejezésre, majd jelölje be a „Firefox 100 User-Agent String" opciót.

A Chrome beállítása, hogy a főverzió 100-as értékként jelentse meg

  1. Lépjen a chrome://flags/#force-major-version-to-100 címre.
  2. Állítsa az opciót „Enabled" (Bekapcsolva) értékre.

Tesztelés és hibajelentés

  • Ha Ön egy weboldal fenntartója, kérjük, hogy tesztelje weboldalát a Chrome és a Firefox 100-as beállításai segítségével. Tekintse át a User-Agent elemző kódját és a könyvtárakat, és győződjön meg arról, hogy az képes kezelni a háromjegyű verziószámokat. Összegyűjtöttünk néhány olyan mintát, amelyek hibát fognak okozni.
  • Ha User-Agent elemző könyvtárat fejleszt, adjon hozzá teszteket a 100-asnál nagyobb és azzal egyenlő verziók elemzésére. Korai tesztjeink azt mutatják, hogy a könyvtárak legújabb verziói ezt megfelelően kezelik. De a web egy örökölt gépezet, így ha régi verziókkal rendelkezik az elemző könyvtárakból, valószínűleg itt az ideje ellenőrizni és végül frissíteni.
  • Ha a weben böngészik, és bármilyen problémát észlel a 100-as főverzióval kapcsolatban, tegyen bejelentést a webcompat.com oldalon.

Köszönjük!

(forrás)

Hozzászólások

kimarite képe

A Chrome és a Firefox Nightly programban beállíthatja a böngésző

A Chrome és a Firefox Nightly programban beállíthatja a böngészőt úgy, hogy a verziót jelenleg 100-nak jelezze, és így megjelenjenek a problémákat, amiket aztán jelenthet.

És, ha nagyon sok weboldalt találok, amit jelenteni kéne? Itt a gond.

Értékelés: 

0
Még nincs értékelve
kimarite képe

A Chrome és a Firefox Nightly programban beállíthatja a böngésző

#1.1 Bekapcsoltam (portable Firefox):

Firefox 100 User-Agent karakterlánc
A Nightly olyan User-Agent karakterláncot küld a weboldalaknak, amely alapján a Firefox 100-as verziójának tűnik. Ezt a beállítást arra használhatja, hogy tesztelje a weboldalakat, hogy elromlanak-e, ha a Nightly eléri a három jegyű verziószámot. A valódi Firefox 100 ütemterv szerint 2022 májusában jelenik meg, így kezdje el a tesztelést még most!

Teszteltem egy weboldalt. Semmi nem történik máshogyan. Mit kéne figyelni pontosan, mik a rosszalkodás jelei? Te találtál már? ;)

Értékelés: 

5
Átlag: 5 (1 szavazat)
kimarite képe

Elnézést, Maga Ön?

#2.1.1 Kösz, ez érdekes. Én továbbra is úgy gondolom, hogy webfejlesztő ;), azaz, azt jeleztem, hogy manapság nagyon kevés olyan weboldal lehet a világban, ahol a böngésző(k) User Agent adatait veszik alapul bármire is, amire oldal beállítás alapulhat. És azt kérdeztem, tudsz-e ilyen weboldalt?
Manapság -ez más téma- weboldalakat csak User Agent megváltoztatással sem lehet átverni szerintem.
Persze, ezek érdekes dolgok. Mint például ez is:

I discovered Slack’s message popup menu’s buttons (such as “Add reaction” or “Reply in thread”) stop working for Firefox versions >= 100 and <= 519. They mysteriously start working again for versions >= 520.
https://miketaylr.com/posts/2021/03/firefox-version-520-works-in-slack.html

Értékelés: 

0
Még nincs értékelve
kami911 képe

Elnézést, Maga Ön?

#2.1.1.1 Nem túl sokat egyelőre

Értékelés: 

0
Még nincs értékelve