Nova izdanja Servo 0.2.0 — nova verzija eksperimentalnog preglednika, napisanog u Rustu. Izdanje je objavljeno 31. maja 2026. godine i obuhvata promene izvršene u aprilu: ukupno su programeri zabeležili 534 commit-a, što predstavlja novi mesečni rekord projekta. Servo se razvija kao nezavistan projekat pod okriljem Linux Foundation Europe i usmeren je na kreiranje laganog, ugrađenog web-motora za aplikacije, mobilne platforme i eksperimentalne web preglednike.
Glavne promene
Preuređen je interfejs servoshell za Android.
U Android verziji demonstracionog okvira Servo ažuriran je preglednički interfejs i dodat je novi ekran istorije. APK je postao otprilike 30% manji, a takođe je ispravljena greška sa crnim ekranom prilikom zatvaranja podešavanja ili povratka iz druge aplikacije. Za OpenHarmony sada je moguće zatvoriti kartice.Poboljšana je podrška za kineski, japanski i korejski tekst.
U motoru rasporeda ispravljena je obrada preloma redova za CJK jezike, a u interfejsu servoshell na Windows-u, Linux-u i FreeBSD-u uključeni su CJK fontovi. To je važno za pravilno prikazivanje sajtova na jezicima gde su pravila preloma i izbor fontova drugačija od latiničnih jezika.Dodana je interaktivna preglednja JSON-a.
Ako otvorite JSON datoteku kao glavni dokument, Servo sada prikazuje preko interaktivnog pretty-printer-a. Ovo čini motor pogodnijim ne samo za uobičajeno pregledanje stranica, već i za programere koji moraju otvoriti API odgovore i strukturirane podatke direktno u pregledniku.Proširena je podrška za Web Platformu.
U Servu su uvedena <select multiple>, <template shadowrootslotassignment>, reprodukcija <video> na OpenHarmony, podrška za minimum-scale i maximum-scale u <meta name=viewport>, CSS funkcija color-mix() sa proizvoljnim brojem boja, tab-size, text-align: match-parent, kreiranje Worker iz blob URL, WebGL kontekst za OffscreenCanvas, kao i svojstvo detail kod PerformanceMark i PerformanceMeasure.Dodate su nove DOM API funkcije.
Implementirane 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 posebno ističu da je Servo postao prvi veliki preglednički motor sa podrškom za crypto.subtle.supports().Poboljšana je navigacija putem tastature i rad fokusa.
Tab zdaj omogoča prehajanje čez meje , Ctrl+Backspace — ali Option+Backspace na macOS — pa odstrani celotno besedo v vnosnih poljih. Prav tako so bila odpravljena nepravilna delovanja fokusa in IME v namizni različici servoshell.Razširjeni so orodja za razvijalce.
V povezavi s Firefox DevTools so izboljšane zavihki Inspector, Console in Debugger. Plošča Rules zdaj prikazuje napovedi iz @layer, v Console in Debugger pa je več informacij o funkcijah, tabelah, objektih in drugih vrednostih, dodana je inšpekcija lokalnih in globalnih spremenljivk skozi Scopes, odpravljanje napak worker-skriptov in začetna podpora za Style Editor.Ojačana je varnost.
CryptoKey zdaj izbriše predpomnilnike s ključnim materialom po uporabi. Odpravljene so težave z dostopom do DOM API med dokumenti z različnimi origin, napake izolacije localStorage in sessionStorage v sandboxed iframe in iframe srcdoc, napačna dostopnost IndexedDB v sandboxed iframe in worker iz data: URL, možnost prelivanja piškotkov med nekaterimi IP-origin, branje pomnilnika zunaj predpomnilnika v texImage3D() za WebGL2, pa tudi nedoločeno delovanje v obdelovalcu signalov servoshell.Napredovalo je delo na IndexedDB in skladišču.
IndexedDB je vključen v eksperimentalnem načinu servoshell in prešel na nov sistem 'client storage', ki naj bi Servu zagotovil enoten format shranjevanja na disku in skupno upravljanje kvot za spletne funkcije, ki shranjujejo podatke. Prav tako so izboljšani poizvedbe po ključnih intervalih, obdelava transakcij, ključev, vrednosti in izjem.Posodobljen je API za vgradnjo Servo.
Ker je to drugo mesečno izdajo knjižnice Servo, so razvijalci natančili politiko združljivosti: različica 0.2.0 se šteje za prelomno posodobitev glede na 0.1.x. Dodano je nalaganje URL-jev s prilagojenimi HTTP-glavami prek WebView::load_request, asinhrono pridobivanje piškotkov, čiščenje samo seanskih piškotkov brez odstranitve trajnih piškotkov, prenos destination in referrer_url pri prestrezanju zahtevkov, pa tudi način začasnega skladišča za izolacijo podatkov seje.Odpravljene so bile napake pri prikazovanju in delovanju strani.
Razvijalci omenjajo popravke za console.log, CSS animacije, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, absolutno pozicioniranje znotraj grid, word-spacing, removeChild() na Document in URL.revokeObjectURL(). Prav tako je izboljšan videz in placeholder priPovečana je zmogljivost in zmanjšana poraba pomnilnika.
Odpravljene so velike neučinkovitosti: pospešena je nalaganje specifikacije ECMAScript z izboljšano obdelavo atributov id in name, prvi TLS-seansa je sedaj hitrejša za 30–60 ms, zmanjšan je IPC promet med nitmi, poraba pomnilnika DOM vozlišč Attr, Text in CharacterData je zmanjšana za 16 bajtov na vozlišče, odpravljena je puščanja pomnilnika pri odstranitvi
Tako je Servo 0.2 še en korak k pretvorbi projekta v primeren za vgradnjo spletni motor: izboljšuje se mobilna lupina, raste združljivost s sodobnimi spletnimi standardi, odpravljajo se varnostne napake in postopoma se stabilizira API za razvijalce aplikacij.
Izvor: linux.org.ru




