Szerző: Gálffy Csaba

2016. június 08. 14:35:00

Firefox 48: célegyenesben az Electrolysis

Már a célegyenesben az Electrolysis projekt! - jelentette be a Mozilla, illetve személyesen Asa Dotzler, a fejlesztés egyik vezető alakja. Dotzler szerint a tesztek jól haladnak, így a Firefox 48-cal a stabil ágon is megjelenik a drámaian átalakított belső architektúra.

Az Electrolysisről sokadszorra

A 2009-ben (!) indult projekt célkitűzése, hogy külön programfolyamatra (process) rendezi a tartalmat-renderinget (a weboldalon futó JavaScriptet például) és a böngésző egyéb programrészeit (például a görgetést vagy a UI-t), így például a JavaScript szemétgyűjtése (garbage collection) nem akasztja be a felhasználói felületet, illetve ha a tartalom valamiért terheli a CPU-t, akkor attól még a UI használható marad. És persze a szétbontás a többmagos processzorok kihasználásához is szükséges.

Illusztrációképp kerestünk valamit 2009-ből. Ez egy BlackBerry Tour.

A Mozilla Wiki szerint az Electrolysis a webes tartalom futtatását és renderelését a háttérben futó child process-ek végzik, amelyek a fő programfolyamattal különböző IPDL protokollokon kommunikálnak. A megközelítésnek rögtön két előnye van, mind a biztonságot, mind a teljesítményt nagyban javítani tudja. A biztonságot úgy, hogy a fő programfolyamatot (és annak jogosultságait) elszigeteli a webes tartalomtól, a teljesítményt pedig úgy, hogy jobban kihasználhatóvá teszi a kliens számítási kapacitását. Nem mellékesen a stabilitásnak is jót tesz a szétszálazás, így egy-egy process hibája nem rántja magával a teljes böngészőt és az összes megnyitott weboldalt. Hogy ez mennyire fontos, azt jól mutatja, hogy a Chrome az első verzió óta, az Internet Explorer pedig 2009-tól használ multiprocess architektúrát - ezt talán idén a Firefoxnak is sikerül meglépnie.

A jelenlegi, élesíteni tervezett implementációban a régi NPAPI-t használó beépülők kapnak dedikált process-t, de külön folyamatban fut a médialejátszás és a webes tartalom. A jövőben ehhez csatlakozhat a grafikus megjelenítés (composition), illetve a WebExtensions API-t használó kiegészítők is.

Néhány ábra 2011-ből. Gyakorlatilag ez jött most meg.

Ahogy az első bejelentés óta eltelt cirka hét év mutatja, a monolitikus Firefox szétrobbantása azonban a vártnál sokkal-sokkal komolyabb projektnek bizonyult. Az első felismerés 2011-ben jött, amikor a Mozilla úgy döntött, hogy más, sürgetőbb fejlesztésekre csoportosítja át az erőforrásokat, az Electrolysist pedig leállítja. Ennek akkor több, amúgy helytálló oka volt. Egyrészt a Firefox ezidőtájt kezdett komolyan részesedést veszíteni a gyorsabb, könnyűsúlyú Chrome-mal szemben, a felhasználók imádták, hogy a Chrome egyszerűen gyorsabb és kevesebb memóriát használ, a JavaScriptben pedig megalázó vereséget mért mindenkire.

A felfüggesztés másik oka lehetett, hogy az Electrolysis nem volt kompatibilis a beépülőkkel, 2011 táján pedig ezek a pluginek jelentették a Chrome-mal szemben a Firefox legnagyobb versenyelőnyét. A kiépült és amúgy prosperáló ökoszisztémát pedig a Mozilla vezérkara nem merte egy mozdulattal kidobni, akármekkora architektúra-hátrányba is került ezzel a Firefox.

Ilyen körülmények között a fejlesztők inkább úgy döntöttek, hogy az erőforrásokat oda csoportosítják át, ahol egységnyi befektetéssel a legnagyobb hatást lehet elérni (például a JavaScript-motornál), az Electrolysis pedig várhat. A munka így csak 2013-ban indult el újra, ez fordult (remélhetőleg) termőre idén a Firefox 48-cal.

Éles lesz? Talán.

A hosszúra (és már régen abszurdba) nyúlt történetnek ezzel még mindig nincs azért vége. Az Electrolysisnek ugyanis még mindig komoly kompatibilitási problémái vannak, emiatt nem mindenki számára élesíti egyelőre a Mozilla ezt a képességet. Dotzler becslése szerint nagyjából a felhasználói bázis fele kapja meg azonnal a fejlesztést, a másik fele majd valamikor később használhatja az évtizedes találmányt. És hogy ki került a második csoportba? A Windows XP-felhasználók, a felolvasó-programok használói, a böngészőt jobbról-balra írásmóddal használók és mindenki, aki használ bármilyen kiegészítőt.

ONLINE Scrum és gépi tanulás meetupjaink indulnak! Jelentkezik az ingyenes HWSW free!, immár online formátumban.

Mivel nagyon komoly belső architekturális változásokat hoz az Electrolysis, a funkciót csak nagyon óvatosan meri a Mozilla élesíteni a felhasználóknak. Így első körben csak a kompatibilis (tehát a fenti csoportokba nem tartozó) telepítések 1 százalékánál aktiválódik az Electrolysis, amit a terv szerint 10 napos adatgyűjtés követ, és ha a fejlesztők mindent rendben találnak, akkor a következő hetekben fokozatosan élesedik az a többi felhasználó számára is. Ha az analitika problémát mutat, akkor a rolloutot a Mozilla fel tudja függeszteni, ha pedig kritikus a helyzet, akkor gombnyomásra mindenhol lekapcsolható a fejlesztés.

Dotzler leszögezi, hogy a cél az, hogy minden Firefox-felhasználónál működjön az Electrolysis, de annyira mélyek a változások, hogy azonnal nem lehet sok százmillió felhasználónál gombnyomásra bekapcsolni a technológiát.

Tovább is van

Az Electrolysis csak a kezdet a Firefox architektúrájának átalakításához. A következő lépés - kapaszkodjunk meg - a tartalmat futtató programfolyamat további szétszálazása lesz, várhatóan külön folyamatban fut majd a minden fül (ez a képesség a Chrome-ban 2008-ban debütált). A még távolabbi jövőben a biztonsági sandbox, illetve a kiterjesztések külön folyamatokba történő kiszervezése látszik. Arra, hogy ezek a fejlesztések mikor kerülhetnek bele a stabil kiadásba, Dotzler egyelőre nem tippelt.

a címlapról