Budoucnost Firefoxu: Mozilla Servo, revoluční nástupce Gecko enginu
Mozilla již nějakou dobu vyvíjí zbrusu nový layout engine Servo. Společně s ní na projektu pracuje i Samsung, který má na starosti portaci Serva pro Android/ARM. A berou to pěkně od podlahy, Servo vzniká v programovacím jazyku Rust, který Mozilla též vyvíjí.
Důvod vzniku projektu Servo souvisí se zastaralostí současných layout enginů ve webových prohlížečích. Ty staví na architekturách z doby konce minulého století, kdy se kupříkladu nepočítalo s vícejádrovými procesory. Ano, lze dělat to, co třeba Chrome, tedy oddělit jednotlivé aby do vlastních procesů, případně to, co Firefox kdysi zavedl, tedy oddělení pluginů do vlastního procesu, ale to je málo. Pokud je něco jisté, tak skutečnost, že procesorových jader bude přibývat. Ostatně za dobu, co se tento problém objevil (s prvními Intel procesory s HT), jsme se dostali přes dvoujádrové a čtyřjádrové (případně šestijádrové Phenomy) až k osmijádrovým procesorům AMD či šestijádrovým (12vláknovým) procesorům Intel. ARM platforma již také nabízí mnoho jader.
Servo engine je od základu navržen, aby byl z hlediska multivláknové práce co nejefektivnější. Jednoho dne patrně nahradí Gecko, ale to ještě předbíháme (takové rozhodnutí zatím nepadlo). Vedle toho jeho architektura bude i obecně bezpečnější a v součtu také o dost výkonnější.
Pro letošek je sestavena roadmapa vývoje Serva. V prvním čtvrtletí by tvůrci rádi engine doladili tak, aby uměl pracovat s Wikipedií (dílčí kroky jsou věci jako projítí Acid2 testu, inkrementální/paralelní layout, HiDPI režim, platformové testy W3C, zavedení nočních buildů atd.). Druhé čtvrtletí si klade za cíl podporu základních webových aplikací (s dílčími úkoly jako průchod Acid3 testu - což vyžaduje podporu formulářů či SVG, XMLHttpRequest, podporu WebGL, embeddování či HTML5 parser a další věci). Třetí kvartál se zaměří na další růst funkcionality a testy na architekturách (podpora TLS/SSL, cache, cross-language inlining (pro JavaScript), canvas či webové animace) a poslední čtvrtletí roku přinese již zminovaný multiprocessing, dále příkazový řádek prohlížeče, podporu multimédií, sandobingu, add-onů, uživatelských nastavení, záložek, historie, cookies či vývojářské nástroje, tedy vše, aby bylo možné engine/prohlížeč předhodit k většímu veřejnému testování.
V jazyku Rust je Servo psáno mimo jiné proto, že C++ není dostatečně dobré k takové úloze z hlediska toho, jaké možnosti se nabízí útočníkům v rámci chyb či bezpčnostních děr souvisejících s nekorektní správou paměti či trasováním dat. Rust je speciálně navržen s těmito hrozbami na mysli, takže případný budoucí Firefox postavený na Servu by měl být z principu věci sám o sobě daleko bezpečnější.
Servo engine je v tuto chvíli veden jako výzkumný projekt, u nějž nelze vyloučit budoucí použití v nějakém produktu. Ale rozhodně není navržen jako webový prohlížeč, nýbrž jako čistý základní engine pro použití v aplikacích, ať již třeba Firefoxu, nebo jinde (Thunderbird atd.).