Udgivet udgave Servo 0.2.0 — den nye version af den eksperimentelle browsermotor, skrevet i Rust. Udgivelsen blev lanceret 31. maj 2026 og inkluderer ændringer foretaget i april: alt i alt har udviklerne talt 534 commits, hvilket er en ny månedlig rekord for projektet. Servo udvikler sig som et uafhængigt projekt under Linux Foundation Europe og sigter mod at skabe en let indlejret webmotor til applikationer, mobile platforme og eksperimentelle browsergrænseflader.
Vigtige ændringer
Brugergrænsefladen for servoshell til Android er blevet redesignet.
I Android-versionen af Servo demo-grænsefladen er browsergrænsefladen blevet opdateret, og en ny historikskærm er blevet tilføjet. APK-filen er nu cirka 30% mindre, og der er også rettet en fejl med en sort skærm ved lukning af indstillinger eller tilbage fra en anden applikation. I OpenHarmony kan faner nu lukkes.Forbedret understøttelse af kinesisk, japansk og koreansk tekst.
I layoutmotoren er håndteringen af linjeskift for CJK-sprog blevet rettet, og i brugergrænsefladen for servoshell på Windows, Linux og FreeBSD er CJK-skrifttyper blevet inkluderet. Dette er vigtigt for korrekt visning af sider på sprog, hvor reglerne for linjeskift og skrifttypevalg adskiller sig fra det latinske alfabet.Interaktiv visning af JSON er tilføjet.
Når en JSON-fil åbnes som hoveddokument, viser Servo nu den gennem en interaktiv pretty-printer. Dette gør motoren nemmere at bruge ikke kun til almindelig sidevisning, men også for udviklere, der skal åbne API-svar og strukturerede data direkte i browseren.Understøttelsen af Web Platform er blevet udvidet.
I Servo er der kommet , , afspilning afNye DOM API'er er blevet tilføjet.
Eventer selectionchange er blevet implementeret for ogNavigation med tastatur og fokusfunktionalitet er blevet forbedret.
Tab kan nu krydse grænserne for , og Ctrl+Backspace – eller Option+Backspace på macOS – sletter hele ord i inputfelter. Derudover er der rettet fokusproblemer og IME-fejl i skrivebordsversionen af servoshell.Udviklerværktøjerne er udvidet.
I samarbejde med Firefox DevTools er fanerne Inspector, Console og Debugger forbedret. Panelet Rules viser nu deklarationer fra @layer, og Console og Debugger indeholder mere information om funktioner, arrays, objekter og andre værdier. Der er også mulighed for inspektion af lokale og globale variabler gennem Scopes, fejlsøgning af worker-scripts og initial understøttelse af Style Editor.Sikkerheden er styrket.
CryptoKey sletter nu buffere med nøglemateriale efter brug. Problemer med adgang til DOM API mellem dokumenter med forskellige oprindelser er blevet rettet, ligesom fejl i isoleringen af localStorage og sessionStorage i sandboxed iframe og iframe srcdoc, og korrekt tilgængelighed af IndexedDB i sandboxed iframe og worker fra data: URL. Muligheden for at overskrive cookies mellem visse IP-oprindelser er også rettet, samt utilsigtet hukommelseslæsning uden for bufferen i texImage3D() for WebGL2, samt udefineret opførsel i signalhåndtereren for servoshell.Arbejdet med IndexedDB og lageret er avanceret.
IndexedDB er aktiveret i eksperimentel tilstand i servoshell og er blevet overført til det nye system "client storage", der skal give Servo et ensartet diskformat og centralt kontrol over kvoter for webfunktioner, der gemmer data. Derudover er forespørgsler om nøgleområder, behandling af transaktioner, nøgler, værdier og undtagelser forbedret.API'en til indlejring af Servo er opdateret.
Da dette er den anden månedlige udgivelse af Servo-biblioteket, har udviklerne præciseret kompatibilitetspolitikken: version 0.2.0 betragtes som en brydende opdatering i forhold til 0.1.x. Der er tilføjet indlæsning af URL'er med brugerdefinerede HTTP-overskrifter via WebView::load_request, asynkron hentning af cookies, rydning af kun session cookies uden at slette permanente cookies, overførsel af destination og referrer_url, når anmodninger fanges, samt en midlertidig lagringsmodus til isolation af sessionens data.Fejl i visning og opførsel af sider er blevet rettet.
Udviklerne nævner rettelser til console.log, CSS-animationer, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, absolut positionering inden for grid, word-spacing, removeChild() på Document og URL.revokeObjectURL(). Derudover er udseendet af og pladsholderen iYdeevnen er forbedret, og hukommelsesforbruget er reduceret.
Store ineffektiviteter er blevet rettet: Indlæsningen af ECMAScript-specifikationen er blevet hurtigere takket være en omarbejdning af behandlingen af id- og name-attributter, den første TLS-session er blevet hurtigere med 30–60 ms, IPC-trafikken mellem tråde er blevet reduceret, og hukommelsesforbruget for DOM-noderne Attr, Text og CharacterData er blevet reduceret med 16 byte pr. node. Der er rettet et hukommelseslækage ved fjernelse af
Resultatet er, at Servo 0.2 er endnu et skridt mod at gøre projektet til en embedded web-motor: den mobile grænseflade forbedres, kompatibiliteten med moderne webstandarder vokser, sikkerhedsfejl lukkes, og API'et for applikationsudviklere stabiliseres gradvist.
Kilde: linux.org.ru




