Released version Servo 0.2.0 — the new version of the experimental browser engine written in Rust. The release date is May 31, 2026 and includes changes made in April: a total of 534 commits, setting a new monthly record for the project. Servo is developing as an independent project under the Linux Foundation Europe and aims to create a lightweight embedded web engine for applications, mobile platforms, and experimental browser shells.
Key changes
The servoshell interface for Android has been redesigned.
In the Android version of the Servo demo shell, the browser interface has been updated and a new history screen has been added. The APK size has been reduced by about 30%, and a bug causing a black screen when closing settings or returning from another application has been fixed. Tabs can now be closed in OpenHarmony.Improved support for Chinese, Japanese, and Korean text.
The layout engine has fixed line break handling for CJK languages, and CJK fonts have been enabled in the servoshell interface on Windows, Linux, and FreeBSD. This is important for accurately displaying websites in languages where line break rules and font selection differ from the Latin alphabet.An interactive JSON viewer has been added.
If a JSON file is opened as the main document, Servo now displays it through an interactive pretty-printer. This makes the engine more convenient not only for regular page viewing but also for developers who need to open API responses and structured data directly in the browser.Expanded support for the Web Platform.
Servo now supports , ,New DOM APIs have been added.
Events selectionchange for andImproved keyboard navigation and focus handling.
The Tab key now allows navigation across <iframe> boundaries, and Ctrl+Backspace — or Option+Backspace on macOS — deletes an entire word in input fields. Focus and IME issues in the desktop version of servoshell have also been fixed.Developer tools have been expanded.
In conjunction with Firefox DevTools, the Inspector, Console, and Debugger tabs have been improved. The Rules panel now displays declarations from @layer, there is more information about functions, arrays, objects, and other values in the Console and Debugger, local and global variables can be inspected through Scopes, worker script debugging is supported, and initial support for the Style Editor has been added.Security has been enhanced.
CryptoKey now overwrites buffers with key material after use. Issues with DOM API access between documents with different origins, localStorage and sessionStorage isolation errors in sandboxed iframes and iframe srcdoc, incorrect availability of IndexedDB in sandboxed iframes and workers from data: URLs, the possibility of cookie eviction between some IP origins, reading memory out of bounds in texImage3D() for WebGL2, and undefined behavior in servoshell signal handlers have been fixed.Progress has been made on IndexedDB and storage.
IndexedDB is enabled in experimental mode in servoshell and has been transitioned to a new 'client storage' system, which aims to provide Servo with a unified format for disk storage and general quota management for web functions that persist data. Key range queries, transaction handling, key, value, and exception processing have also been improved.The API for embedding Servo has been updated.
As this is the second monthly release of the Servo library, developers have clarified compatibility policy: version 0.2.0 is considered a breaking update relative to 0.1.x. Support for loading URLs with custom HTTP headers via WebView::load_request, asynchronous cookie retrieval, clearing only session cookies without deleting persistent cookies, passing destination and referrer_url when intercepting requests, and a temporary storage mode for isolating session data have all been added.Display and behavior issues on pages have been fixed.
Developers mention fixes for console.log, CSS animations, box-shadow, display: contents, display: inline-flex, display: table-cell, overflow: clip, absolute positioning within grid, word-spacing, removeChild() on Document, and URL.revokeObjectURL(). The appearance of <input type=file> and the placeholder for <textarea> have also been improved.Performance has been boosted and memory consumption reduced.
Major inefficiencies have been fixed: the loading of the ECMAScript specification is faster due to reworked processing of id and name attributes, the first TLS session is now 30–60 ms quicker, IPC traffic between threads has been reduced, memory consumption by DOM nodes Attr, Text, and CharacterData has decreased by 16 bytes per node, and a memory leak when removing
As a result, Servo 0.2 is another step towards turning the project into an embeddable web engine: the mobile shell is improving, compatibility with modern web standards is growing, security vulnerabilities are being addressed, and the API for application developers is gradually stabilizing.
Source: linux.org.ru




