Bylo zveřejněno vydání Servo 0.2.0 — nové verzi experimentálního prohlížečového enginu napsaného v Rustu. Vydání bylo 31. května 2026 a obsahuje změny provedené v dubnu: vývojáři napočítali celkem 534 commitů, což se stalo novým měsíčním rekordem projektu. Servo se vyvíjí jako nezávislý projekt pod záštitou Linux Foundation Europe a je zaměřeno na vytvoření lehkého vestavěného webového enginu pro aplikace, mobilní platformy a experimentální prohlížečová rozhraní.
Hlavní změny
Bylo přepracováno uživatelské rozhraní servoshell pro Android.
Ve verzi pro Android byla aktualizována prohlížečová rozhraní a přidána nová obrazovka historie. APK se zmenšil přibližně o 30 % a byl opraven problém s černou obrazovkou při uzavírání nastavení nebo při návratu z jiné aplikace. Pro OpenHarmony je nyní možné zavírat karty.Byla zlepšena podpora čínštiny, japonštiny a korejštiny.
V enginu rozložení byla opravena manipulace s přenášecími pravidly pro CJK jazyky a v uživatelském rozhraní servoshell na Windows, Linux a FreeBSD byly zahrnuty CJK písma. To je důležité pro skutečné zobrazení stránek v jazycích, kde se pravidla přenosu a výběru písem liší od latinky.Byl přidán interaktivní náhled JSON.
Pokud otevřete JSON soubor jako hlavní dokument, Servo ho nyní zobrazuje prostřednictvím interaktivního pretty-printeru. To dělá motor pohodlnějším nejen pro běžné prohlížení stránek, ale i pro vývojáře, kteří musí otevírat API odpovědi a strukturovaná data přímo v prohlížeči.Byla rozšířena podpora Web Platform.
V Servu se objevily , , přehráváníByly přidány nové DOM API.
Byly implementovány události selectionchange pro aByla zlepšena navigace pomocí klávesnice a práce s fokusem.
Záložka nyní umí přecházet přes hranice , a Ctrl+Backspace — nebo Option+Backspace na macOS — vymaže celé slovo v textových polích. Byly také opraveny chyby zaostření a IME v desktopové verzi servoshell.Nástroje pro vývojáře byly rozšířeny.
Ve spolupráci s Firefox DevTools byly vylepšeny karty Inspector, Console a Debugger. Panel Rules nyní zobrazuje prohlášení z @layer, v Console a Debugger je k dispozici více informací o funkcích, polích, objektech a dalších hodnotách, byla přidána inspekce lokálních a globálních proměnných přes Scopes, ladění worker skriptů a počáteční podpora Style Editor.Zabezpečení bylo posíleno.
CryptoKey nyní přepisuje buffery s klíčovým materiálem po použití. Byly opraveny problémy s přístupem k DOM API mezi dokumenty s různými originy, chyby izolace localStorage a sessionStorage v sandboxovaném iframe a iframe srcdoc, nesprávná dostupnost IndexedDB v sandboxovaném iframe a workeru z data: URL, možnost přepsání cookies mezi některými IP-origin, čtení paměti za hranicemi bufferu v texImage3D() pro WebGL2, a také nejasné chování v obsluze signálů servoshell.Pokrok byl učiněn v rámci IndexedDB a úložiště.
IndexedDB je nyní zahrnut v experimentálním režimu servoshell a byl přenesen na nový systém "client storage", který by měl Servo poskytnout jednotný formát úložiště na disku a společné řízení kvót pro webové funkce ukládající data. Byly také vylepšeny dotazy podle klíčových rozsahů, zpracování transakcí, klíčů, hodnot a výjimek.API pro integraci Serva bylo aktualizováno.
Jelikož se jedná o druhé měsíční vydání knihovny Servo, vývojáři objasnili politiku kompatibility: verze 0.2.0 se považuje za rozbitou aktualizaci vůči 0.1.x. Bylo přidáno načítání URL s vlastními HTTP hlavičkami přes WebView::load_request, asynchronní získání cookies, čištění pouze session cookies bez odstranění trvalých cookies, předávání destination a referrer_url při zachycení požadavků a také režim dočasného uložiště pro izolaci dat relace.Byly opraveny chyby zobrazení a chování stránek.
Vývojáři zmiňují opravy pro console.log, CSS animace, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, absolutní pozicování uvnitř grid, word-spacing, removeChild() na Document a URL.revokeObjectURL(). Také byl vylepšen vzhled a placeholder uVýkon byl zvýšen a spotřeba paměti snížena.
Opraveny byly velké neefektivity: zrychlilo se načítání specifikace ECMAScript díky přepracování zpracování atributů id a name, první TLS relace se zrychlila o 30–60 ms, došlo k poklesu IPC provozu mezi vlákny, snížena byla paměťová náročnost DOM uzlů Attr, Text a CharacterData o 16 bajtů na uzel, byla opravena únik paměti při odstraňování <video controls> a <audio controls>. Stránka about:memory nyní přesněji zaznamenává alokace paměti, včetně libc alokací na Linuxu.
Servo 0.2 je tedy dalším krokem k přeměně projektu na použitelný webový engine pro vestavěné zařízení: zlepšuje se mobilní rozhraní, roste kompatibilita s moderními webovými standardy, jsou odstraňovány bezpečnostní chyby a postupně se stabilizuje API pro vývojáře aplikací.
Zdroj: linux.org.ru




