Frissítve: Nálad is összeomlik a Firefox 4?

„Csináljátok már meg!” – üzente a fejlesztőknek a szoftverbe épített hibabejelentő modulon keresztül egy magyar felhasználó nemrég, miután alighanem sokadszor omlott össze nála a Firefox 4. A felszólítás az adott hibajegyhez fűzött azon kevés megjegyzés közé tartozik, melyben nem szerepel káromkodás.

A kérdéses bug több mint két hónapja, a Firefox 4.0 kiadása óta azzal keseríti a magyar felhasználók életét, hogy néhány népszerűbb hazai weboldalon – ezek között van a hasznaltauto.hu, a vatera.hu, a menetrendek.hu és a szoftverbazis.hu – két vállra fekteti a böngészőt. Az összeomlás windowsos rendszereken egyszerűen előidézhető: keresést kell indítani az oldalakon, majd a találati lista betöltődése után a „vissza” gombot meg kell nyomni. Van, hogy már az első alkalommal lefagy a böngésző, van, hogy többször meg kell ismételni a műveletet – ahogy ez a szájtok normál használata során gyakori. A kérdéses bug még ma is a 14. azon a toplistán, mely a 4-es verzió lefagyását okozó leggyakoribb hibákat rangsorolja.

Magyar jellegzetesség

A bugot április elején egy hazai szabad szoftveres fejlesztő, Szalai Kálmán (KAMI) fedezte fel. Ő derítette ki, hogy az egy JavaScript-parancsfájlhoz (goa3.js) köthető, mely az Adverticum Zrt. hazánkban elterjedt hirdetéskiszolgáló rendszerének egyik komponense, majd rögtön értesítette is a társaságot a problémáról.

Az Adverticum rövid időn belül kivizsgálta az esetet, és arra jutott, hogy az összeomlások oka egy, az adatok lokális tárolását megvalósító HTML5-funkció (GlobalStorage) nem megfelelő kezelése a Firefoxban. Ezt a funkciót a HTML5 egy korai tervezetében definiálták, de ma már elavultnak számít, ezért ritkán használják, a böngészők azonban támogatják. Mint kiderült, a Firefox 4-be valóban belekerült egy olyan kód, mely ennek meghívása – és több tényező együttállása – esetén memóriahibát és összeomlást okoz.


Sokaknál kiverte a biztosítékot

Azt, hogy a hiba újonnan került a böngészőbe, egyértelművé tette, hogy korábban az Adverticum nem tapasztalt hasonló problémát a GlobalStorage-ot használó goa3.js parancsfájllal, az a 4-es kiadás megjelenése előtt hibátlanul működött – mondta el lapunk kérdésére Balatoni Emese, a társaság ügyfélkapcsolati vezetője. A Firefox 4.0 március 22-én vált elérhetővé, az összeomlások ezt követően jelentkeztek, sajátos módon túlnyomó részben magyar weboldalakon.

Ezekben az a közös, hogy használják az Adverticum kódját. Ez azonban önmagában nem elég a hiba előidézéséhez, a hirdetéskiszolgáló parancsfájl ugyanis számos más hazai oldalon megtalálható, és ezeknek csupán néhány százaléka érintett – mondja Balatoni. Aki szerint a Firefox 4-gyel rosszban lévő oldalakra még az jellemző, hogy „JavaScript-intenzívek. De semmilyen JavaScriptnek nem szabadna összeomlasztania egy böngészőt”.

Noha a hiba a böngészőben található, a magyar cég két nappal azt követően, hogy értesítést kapott róla, frissítette a goa3.js parancsfájlt. Az április 6-án megjelent módosított változat a fejlesztők szándéka szerint ellenőrzi a böngésző verziószámát, és Firefox 4 alatt megkerüli a GlobalStorage használatát. Ezt követően – legalábbis az összeomlás-statisztikákból utólag ez látható – meredeken esni kezdett az e hibajegyhez tartozó lefagyások száma.

Türelem, emberek

Itt happy enddel véget is érhetett volna a történet – de nem így történt. A Firefox 4.0.1-es frissítésének április végi megjelenését követően ismét megszaporodtak a hibához köthető fagyások, és május elejére megint a korábbi gyakoriságot mutatták a Mozillának bejelentett összeomlások (lásd a grafikont).

Erre magyarázat lehetne, hogy a szkript frissítése csak a 4.0-t ismerte fel, a később kiadott 4.0.1-et nem. Miután ezt felvetettük az Adverticumnak, a cég az elmúlt hétvégén egy újabb változatot adott ki a fájlból, ám az a tapasztalatok szerint a Firefox 4 egyik stabil verziója esetében sem kerüli meg a hibát: a böngésző a mai napig összeomlik azon a néhány weboldalon, ahol korábban.

Az esetről megkérdeztük a Firefoxot fejlesztő Mozillát is. A cég a válaszában igyekezett a felelősség alól kibújni: mint írták, az Adverticum által használt – de egyébként meglehetősen ritkán alkalmazott – „webes technológia” hívja meg a hibát okozó Firefox-kódot. „Elnézést kérünk a magyarországi Firefox-felhasználóktól a kellemetlenségekért. A Mozilla már elkészítette a hibát megszüntető javítást, amely a Firefox következő, a június 21-i héten megjelenő 5-ös verziójában lesz megtalálható, de már most elérhető a Firefox béta-, Auróra- és nightly kiadásaiban” – írták az IT café-nak.

Az Adverticum által elkészített workaround egyébként a Mozilla szerint sem működik, nem kerüli meg a GlobalStorage használatát, de ennek ellenére a cég nem hozza előbbre a patch kiadását. E helyett felvették a kapcsolatot – ők is – a hirdetéskiszolgáló rendszer fejlesztőivel, hátha nekik addig is, míg a Firefox 5 meg nem jelenik, sikerült (megint?) átmenetileg orvosolni a problémát.

Frissítés: cikkünk megjelenését követően az Adverticum ismét frissítette a kérdéses JavaScriptet, amely most már jól működik Firefox 4 alatt is, és nem fagyasztja le a böngészőt a fenti weboldalakon.

Azóta történt

Előzmények