Pīle DuckDuckGo sākumlapā beidzot uzzīmējas. Rust valodā rakstītais tīmekļa dzinis Servo 31. augustā izlaida versiju 0.5.0, kurā izlabota SVG attēlu priekšielādes kļūda. Līdz tam duckduckgo.com atvērums servoshell logā palika bez logotipa.
Laidienā ietvertas 488 jūlijā pievienotās izmaiņas. Servo publicē laidienus reizi mēnesī, tāpēc 0.5.0 satur tikai to darbu, kas padarīts jūlijā.
Teksta zīmēšana līdz desmit reizēm ātrāka
Lielākais ātruma kāpums attiecas uz vienu konkrētu gadījumu: vienāds teksts, dažādi font-size izmēri. Tādās vietās Servo tekstu tagad zīmē līdz 10 reizēm ātrāk. Izmaiņa ienāca kopā ar Stylo atjauninājumu uz 2026. gada 1. jūlija versiju.
2D kanva sāka strādāt vairākos pavedienos. Kadru skaits pieaug līdz 55 %, bet patērētā jauda uz vienu kadru krīt līdz 42 %. Atmiņas patēriņš arī samazinājies. Flex izkārtojuma etaloni iet līdz 3 % ātrāk. Uzlabotais getElementsByClassName() dažām lapām dod vēl līdz 1 %.
Pārējais ātruma darbs jūlijā sadalījās pa vairākiem desmitiem sīku ielāpu, kas nogriež atmiņas piešķires, GC sakņošanas soļus un citas operācijas dažādās Servo daļās. Atsevišķi neviens no tiem nedod mērāmu kāpumu, tāpēc atskaitē tie sakopoti vienā rindā.
Kuras lapas tagad zīmējas
DuckDuckGo nav vienīgais gadījums. Gumroad veikals versijā 0.4.0 nezīmējās gandrīz nemaz, ja neskaita sākumlapu.
Lapas, piemēram, Discover vai produkta lapa, versijā 0.5.0 zīmējas gandrīz pareizi.
Tā Gumroad stāvokli apraksta Servo izstrādātāju mēneša atskaite. Komanda aicina lietotājus pārbaudīt savas iecienītās lapas un ziņot par rezultātu Zulip sarunā vai GitHub kļūdu sarakstā.
Zīmēšanas kļūdas parasti atklājas kā avārijas. Jūlijā aizvērtas avārijas ar <table> izkārtojumu, <td rowspan>, <svg> bez viewBox atribūta, mix-blend-mode īpašību, ArrayBuffer objektiem un DOM mezglu dzēšanu. Atsevišķi izlabota atmiņas bojājuma regresija.
Drošība un jaunas platformas
ANGLE pārcelts no Firefox 115 uz Firefox 140
Servo grafikas slānis ANGLE līdz šim balstījās uz Firefox 115.x ESR koda. Versijā 0.5.0 tas pārcelts uz Firefox 140.12.0 ESR bāzi. Starp šīm divām ESR atzarām Mozilla aizvēra virkni drošības kļūdu, kuras Servo līdz šim nesa sev līdzi.
Laidiens novērš arī ievainojamības divās Rust pakotnēs: quick-xml un crossbeam-epoch. Brīdinājumi tām ir RUSTSEC-2026-0194, RUSTSEC-2026-0195 un RUSTSEC-2026-0204.
Linux aarch64 faili un Android 10
Servo pirmo reizi publicē gatavus Linux aarch64 binārus. GitHub laidienā starp 11 bināriem failiem atrodams servo-aarch64-linux-gnu.tar.gz. Versijā 0.4.0 Linux lietotājiem bija pieejams tikai x86_64 arhīvs, tāpēc uz Raspberry Pi vai Ampere serveriem Servo nācās kompilēt pašiem.
servoshell Android versija tagad startē uz Android 10 un jaunākām sistēmām. Iepriekš minimums bija Android 13. Pēc Servo aprēķina tas paplašina sasniedzamo tirgu no 68 % uz 91 % ierīču. Android saskarnes pārlikšana uz Compose UI pabeigta. Tagad projekts pārceļ pašu Servo bibliotēku uz Kotlin.
Iegulšanas API
Servo sevi piedāvā kā alternatīvu Chromium Embedded Framework lietotnēm, kurām vajag tīmekļa dzini. Šim laidienam uzlabota dokumentācija servo pakotnei un WebViewDelegate saskarnei.
Viena saskarne salauzta. ServoBuilder::webxr_registry() ir izņemts, tā vietā jālieto jaunais Servo::register_webxr_registry, kas WebXR reģistru pieprasa tikai tad, kad tas patiešām vajadzīgs. Šī viena izmaiņa servoshell startēšanās laiku samazināja uz pusi.
Firefox DevTools konsolē tagad strādā vienkārša automātiskā pabeigšana. Windows lietotājiem servoshell vairs neatlaiž komandrindu uzreiz, bet liek tai gaidīt, līdz process beidzas.
Kas pievienots tīmekļa platformai
Jaunās CSS un DOM iespējas, kas ieslēgtas pēc noklusējuma:
Cache-Control: stale-while-revalidatetext-decoration-thicknessbox-decoration-break,@font-feature-values,font-language-overrideunfont-variant-alternateslielākoties darbojas- Ed448, X448 un KMAC algoritmi
SubtleCryptosaskarnē AnimationEffect,getKeyframes()unsetKeyframes()uzKeyframeEffect
Zem --pref slēdžiem gaida vairāk. Stylo atjauninājums atnesa alpha() un progress() funkcijas. ellipse() vērtības closest-corner un farthest-corner pārcēlās atpakaļ eksperimentālajā statusā, jo specifikācija par tām vēl nav skaidra. WebGPU pusē pievienots GPUExternalTexture ar importExternalTexture() izsaukumu.
Sākts darbs pie WebVTT subtitriem. Servo jau ielādē katru <track src>, parsē failu un izsniedz cues caur HTMLTrackElement. Uz ekrāna subtitri vēl nenonāk. Tāpat sākta File and Directory Entries API, kas ļaus caur <input type=file> izvēlēties veselas mapes.
Redzamas kļuvušas DOM teksta atlases. Interaktīva atlase ar peli vēl nav gatava. SVG DOM sāk ar tukšām saskarnēm 14 elementiem, sākot no SVGCircleElement līdz SVGUseElement. Iegultais SVG tagad drīkst lietot tīmekļa fontus no lapas, kurā tas atrodas.
Pieejamības koks jūlijā saņēma inkrementālus atjauninājumus, mazāk HashMap meklējumu un ātrākas DOM izmaiņas. Šī daļa joprojām slēpta zem accessibility_enabled iestatījuma.
Finansējums
Servo mēnesī saņem 7824 ASV dolārus regulāros ziedojumos, par 1,8 % vairāk nekā jūnijā. Projekta uzstādītais mērķis ir 10 000 dolāru mēnesī. Naudas izlietojumu izlemj tehniskā vadības komiteja publiskā procesā. Papildus tam 35 GitHub lietotāji, kuru kods atkarīgs no Servo bibliotēkām url, html5ever, selectors vai cssparser, atbalsta projektu caur thanks.dev. Jūlijā pirmo ielāpu Servo iesniedza 10 jauni cilvēki.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.