Objavljen je izdanak Servo 0.2.0 — nova verzija eksperimentalnog preglednika, napisanog u Rust jeziku. Izdan je 31. svibnja 2026. godine i uključuje promjene uvedene u travnju: ukupno su programeri zabilježili 534 commita, što je novi mjesečni rekord projekta. Servo se razvija kao neovisni projekt pod okriljem Linux Foundation Europe i orijentiran je na stvaranje laganog ugradivog web-motora za aplikacije, mobilne platforme i eksperimentalne pregledničke sučelje.
Glavne promjene
Preuređeno sučelje servoshell za Android.
U Android verziji demo sučelja Servo osvježeno je pregledničko sučelje i dodan je novi ekran povijesti. APK je postao približno 30% manji, a također je ispravljena greška s crnim ekranom pri zatvaranju postavki ili povratku iz druge aplikacije. Za OpenHarmony sada je moguće zatvarati kartice.Poboljšana podrška za kineski, japanski i korejski tekst.
U motoru rasporeda ispravljena je obrada preloma redaka za CJK jezike, a u sučelju servoshell na Windows, Linux i FreeBSD uključeni su CJK fontovi. To je važno za stvarno prikazivanje web stranica na jezicima gdje se pravila preloma i odabira fontova razlikuju od latiničnog pisma.Dodana interaktivna prikazivanje JSON-a.
Kada se JSON datoteka otvori kao glavni dokument, Servo sada prikazuje kroz interaktivni pretty-printer. To čini motor ugodnijim ne samo za običan pregled stranica, već i za programere koji trebaju otvoriti API odgovore i strukturirane podatke izravno u pregledniku.Proširena podrška za Web Platformu.
U Servo su dodani <select multiple>, <template shadowrootslotassignment>, reprodukcija <video> na OpenHarmony, podrška minimum-scale i maximum-scale u <meta name=viewport>, CSS funkcija color-mix() s proizvoljnim brojem boja, tab-size, text-align: match-parent, stvaranje Worker iz blob URL-a, WebGL kontekst za OffscreenCanvas, kao i svojstvo detail za PerformanceMark i PerformanceMeasure.Dodani novi DOM API.
Implementirani su događaji selectionchange za <input> i <textarea>, eksperimentalni StorageManager, activeElement za Document i ShadowRoot, crypto.subtle.supports(), svojstva cellPadding, cellSpacing i align kod HTMLTableElement, relatedTarget za događaje focus i blur, kao i transferFromImageBitmap() za ImageBitmapRenderingContext. Programeri posebnu naglašavaju da je Servo postao prvi veliki preglednički motor s podrškom za crypto.subtle.supports().Poboljšana navigacija s tipkovnicom i rad fokusa.
Tab sada može prelaziti granice , a Ctrl+Backspace — ili Option+Backspace na macOS — briše cijelu riječ u unosnim poljima. Također su ispravljene greške fokusa i IME-a u desktop verziji servoshell.Prošireni su alati za razvojne programere.
U suradnji s Firefox DevTools poboljšani su kartice Inspector, Console i Debugger. Panel Rules sada prikazuje deklaracije iz @layer, u Console i Debugger je više informacija o funkcijama, nizovima, objektima i drugim vrijednostima, uvedena je inspekcija lokalnih i globalnih varijabli preko Scopes, debuggiranje worker skripti i početna podrška za Style Editor.Povećana je sigurnost.
CryptoKey sada briše bafer s ključnim materijalom nakon upotrebe. Ispravljeni su problemi s pristupom DOM API-ju između dokumenata s različitim izvorima, greške izolacije localStorage i sessionStorage u sandboxed iframe i iframe srcdoc, nepravilna dostupnost IndexedDB u sandboxed iframe i worker iz data: URL, mogućnost istiskivanja kolačića između nekih IP-izvora, čitanje memorije izvan bafera u texImage3D() za WebGL2, kao i neodređeno ponašanje u obradi signala servoshell.Napredak je ostvaren u radu s IndexedDB i spremištem.
IndexedDB je uključen u eksperimentalni režim servoshell i prebačen je na novi sustav «client storage», koji bi trebao dati Servu jedinstveni format pohrane na disku i zajedničko upravljanje kvotama za web funkcije koje pohranjuju podatke. Također su poboljšani upiti po ključnim rasponima, obrada transakcija, ključeva, vrijednosti i iznimaka.API za ugrađivanje Servo je ažuriran.
Budući da je ovo drugo mjesečno izdanje biblioteke Servo, programeri su precizirali politiku kompatibilnosti: verzija 0.2.0 smatra se prekidnim ažuriranjem u odnosu na 0.1.x. Dodano je učitavanje URL-a s korisničkim HTTP zaglavljima putem WebView::load_request, asinkrono dobivanje kolačića, brisanje samo session kolačića bez uklanjanja trajnih kolačića, prosljeđivanje destination i referrer_url pri presretanju zahtjeva, kao i način privremene pohrane za izolaciju podataka sesije.Ispravljene su greške u prikazu i ponašanju stranica.
Programeri spominju ispravke za console.log, CSS animacije, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, apsolutno pozicioniranje unutar grid-a, word-spacing, removeChild() na Document i URL.revokeObjectURL(). Također je poboljšan izgled i placeholder uPovećana je izvedba i smanjena potrošnja memorije.
Ispravljene su značajne neučinkovitosti: ubrzano učitavanje specifikacije ECMAScript preuređivanjem obrade atributa id i name, prvi TLS sesija postala je brža za 30–60 ms, smanjen je IPC promet između niti, smanjena je potrošnja memorije DOM čvorovima Attr, Text i CharacterData za 16 bajtova po čvoru, ispravljena je curenje memorije prilikom brisanja
Servo 0.2 predstavlja još jedan korak ka pretvaranju projekta u ugrađeni web motor: poboljšava se mobilno sučelje, raste kompatibilnost s modernim web standardima, ispravljaju se sigurnosne greške i postupno se stabilizira API za programere aplikacija.
Izvor: linux.org.ru




