Bol známe vydanie Servo 0.2.0 — novej verzii experimentálneho prehliadačového enginu napísaného v Ruste. Vydanie vyšlo 31. mája 2026 a obsahuje zmeny, ktoré boli realizované v apríli: celkovo vývojári napočítali 534 commitov, čo sa stalo novým mesačným rekordom projektu. Servo sa vyvíja ako nezávislý projekt pod egidou Linux Foundation Europe a je zamerané na vytvorenie ľahkého zabudovateľného webového enginu pre aplikácie, mobilné platformy a experimentálne prehliadačové rozhrania.
Hlavné zmeny
Prepracované rozhranie servoshell pre Android.
V Android verzii demo rozhrania Servo bol aktualizovaný prehliadačový interface a pridaná nová obrazovka histórie. APK sa stal približne o 30% menším a bola opravená chyba s čiernou obrazovkou pri zavretí nastavení alebo návrate z inej aplikácie. Pre OpenHarmony je teraz možné zatvárať karty.Vylepšená podpora čínskeho, japonského a kórejského textu.
Vo renderovacom enginu bola opravená správa zlomu riadkov pre CJK jazyky, pričom v rozhraní servoshell pre Windows, Linux a FreeBSD boli zahrnuté CJK písma. To je dôležité pre správne zobrazenie webových stránok v jazykoch, kde sa pravidlá zlomu a výberu písiem líšia od latinky.Pridaný interaktívny náhľad JSON.
Ak otvoríte JSON súbor ako hlavný dokument, Servo teraz zobrazuje jeho obsah pomocou interaktívneho pretty-printera. To robí engine pohodlnejším nielen na bežné prehliadanie stránok, ale aj pre vývojárov, ktorí musia otvárať API odpovede a štruktúrované dáta priamo v prehliadači.Rozšírená podpora Web Platform.
V Servu pribudli <select multiple>, <template shadowrootslotassignment>, prehrávanie <video> na OpenHarmony, podpora minimum-scale a maximum-scale v <meta name=viewport>, CSS funkcia color-mix() s ľubovoľným počtom farieb, tab-size, text-align: match-parent, vytvorenie Worker z blob URL, WebGL kontext pre OffscreenCanvas, ako aj vlastnosť detail pri PerformanceMark a PerformanceMeasure.Pridané nové DOM API.
Zrealizované udalosti selectionchange pre <input> a <textarea>, experimentálny StorageManager, activeElement pre Document a ShadowRoot, crypto.subtle.supports(), vlastnosti cellPadding, cellSpacing a align pri HTMLTableElement, relatedTarget pre udalosti focus a blur, ako aj transferFromImageBitmap() pre ImageBitmapRenderingContext. Vývojári osobitne poznamenávajú, že Servo sa stalo prvým významným prehliadačovým enginom s podporou crypto.subtle.supports().Zlepšená navigácia z klávesnice a správa fokusu.
Tab teraz dokáže prechádzať cez hranice , a Ctrl+Backspace — alebo Option+Backspace na macOS — vymazáva celé slovo v políčkach pre vstup. Opravené sú aj chyby zamerania a IME v desktopovej verzii servoshell.Nástroje pre vývojárov boli rozšírené.
Spolu s Firefox DevTools boli vylepšené karty Inspector, Console a Debugger. Panel Rules teraz zobrazuje vyhlásenia z @layer, v Console a Debugger je viac informácií o funkciách, masívoch, objektoch a iných hodnotách, umožnené je skúmanie lokálnych a globálnych premenných cez Scopes, ladenie worker skriptov a základná podpora Style Editor.Bezpečnosť bola posilnená.
CryptoKey teraz premazáva buffery s kľúčovým materiálom po použití. Opravené sú problémy s prístupom k DOM API medzi dokumentmi s rôznymi pôvodmi, chyby izolácie localStorage a sessionStorage v sandboxed iframe a iframe srcdoc, nesprávna prístupnosť IndexedDB v sandboxed iframe a worker z data: URL, možnosť vysuňovania cookie medzi niektorými IP-pôvodmi, čítanie pamäte mimo bufferu v texImage3D() pre WebGL2 a nepredvídateľné správanie v obsluhovači signálov servoshell.Práca na IndexedDB a úložisku pokročila.
IndexedDB je aktivovaný v experimentálnom režime servoshell a prešiel na nový systém 'client storage', ktorý by mal Servu poskytnúť jednotný formát ukladania na disku a spoločné spravovanie kvót pre webové funkcie uchovávajúce dáta. Taktiež boli vylepšené dopyty podľa kľúčových rozsahov, spracovanie transakcií, kľúčov, hodnôt a výnimiek.API pre integráciu Servo bolo aktualizované.
Keďže ide o druhé mesačné vydanie knižnice Servo, vývojári upresnili politiku kompatibility: verzia 0.2.0 je považovaná za porušujúcu aktualizáciu voči 0.1.x. Pridané je načítanie URL s vlastnými HTTP hlavičkami cez WebView::load_request, asynchrónne získavanie cookie, vymazanie iba session cookies bez odstránenia trvalých cookie, prenos destination a referrer_url pri zachytávaní požiadaviek, ako aj režim dočasného úložiska na izoláciu dát relácie.Opravené sú chyby zobrazenia a správania stránok.
Vývojári spomínajú opravy pre console.log, CSS animácie, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, absolútne polohovanie vo vnútri grid, word-spacing, removeChild() na Document a URL.revokeObjectURL(). Taktiež je vylepšený vzhľad a placeholder priVýkon bol zvýšený a spotreba pamäte znížená.
Opravené veľké neefektívnosti: zrýchlené načítanie špecifikácie ECMAScript vďaka prepracovaniu spracovania atribútov id a name, prvý TLS-štart je rýchlejší o 30–60 ms, znížený IPC prenos medzi vláknami, znížená spotreba pamäte DOM uzlami Attr, Text a CharacterData o 16 bajtov na uzol, opravená únik pamäte pri odstraňovaní
Výsledkom je Servo 0.2 – ďalší krok k premeneniu projektu na vhodný do embedovania webový engine: zlepšuje sa mobilné rozhranie, rastie kompatibilita so súčasnými webovými štandardmi, uzatvárajú sa bezpečnostné chyby a postupne sa stabilizuje API pre vývojárov aplikácií.
Zdroj: linux.org.ru




