Brifing

Servo Browser Engine September Update: 527 Commits and Performance Gains

Servo 0.7.0 introduces significant performance optimizations, accessibility improvements, and expanded web standard support.

Hacker News: Front Page3 min

1Servo 0.7.0 Release Overview

The Servo 0.7.0 release encapsulates 527 commits landed throughout September. This update focuses on enhancing developer tools, upgrading core dependencies like SpiderMonkey v153.3, and improving overall browser stability. The team continues to refine the engine's architecture, ensuring better conformance with modern web standards while actively soliciting feedback from the developer community.

2Accessibility Tree Enhancements

Accessibility features received significant attention, with the engine now reporting geometry bounds for inline elements. The team optimized the accessibility tree to reduce computational overhead during DOM changes. Additionally, elements marked with display: none are now correctly identified as hidden, improving the accuracy of screen readers and other assistive technology tools.

3Media and WebGL Progress

WebGL2 implementation saw numerous conformance improvements, ensuring better rendering reliability. Simultaneously, video element support advanced with functional closed captioning, including support for enter, exit, and cuechange events. These updates ensure that media-heavy websites function more consistently within the Servo environment, aligning closer to the expectations of modern web users.

4Advanced API Implementations

The team implemented essential methods for the Animation interface, specifically getTimeline and setTimeline. IndexedDB functionality expanded with the addition of openCursor and openKeyCursor methods, alongside various cursor navigation improvements. These additions provide developers with more robust tools for managing complex web applications and data-heavy tasks within the browser engine.

5WebView and Session Management

Significant changes were made to WebView management, including the removal of the set_throttled API in favor of automatic throttling when hidden. The team also introduced a new API to clear session history and removed legacy focus-related methods. Embedders must now explicitly call set_focused to manage system focus states for their WebViews.

6Performance and Memory Optimization

Performance gains were achieved by removing unnecessary allocations and preallocating vectors during build processes. Memory usage was reduced through buffer sharing, data structure compaction, and fixing leaks in audio-video elements. Furthermore, thread affinity boosting on Linux was enabled, which can improve execution speed on specific CPU architectures for better responsiveness.

7Stability and Bug Fixes

The release addresses numerous panics in critical areas like WebRTC, SharedWorker, and iframe handling. The team resolved issues causing the JS console to hang when handling exceptions and fixed shutdown hangs in multiprocess mode. These stability improvements ensure a more reliable experience for both end-users and developers integrating Servo into their applications.

8CSS and Web Standards

Compatibility with CSS features like contrast-color, color-mix, and calc was improved through a stylo dependency upgrade. The team also fixed bugs related to sticky table rows, gradient color stops, and CSS Grid containers. These refinements ensure that complex layouts render correctly, maintaining visual consistency across diverse web pages and applications.

9Developer and Platform Support

Android JVM compatibility was raised to version 11, and cross-compilation for OpenHarmony from Windows hosts is now supported. The OpenHarmony SDK was updated to API level 23, reflecting a commitment to broader platform reach. Additionally, unhandled promise rejections are now reported to the JS console, simplifying debugging for web compatibility issues.

10WebDriver and Automation

The WebDriver server now automates permission settings, streamlining the testing process for developers. Click events and keyboard actions were optimized to reduce delays, resulting in faster automated test execution. These improvements make Servo a more viable choice for automated browser testing and continuous integration workflows, reducing friction for quality assurance teams.

11Project Funding and Growth

Servo currently receives 8,144 USD per month in recurring donations, marking a one percent increase from August. These funds support critical infrastructure, including CI and benchmarking servers, and maintainer compensation. The project remains transparent regarding financial decisions via its Technical Steering Committee, encouraging further community support through platforms like thanks.dev.

Original article: Hacker News: Front Page — Servo Browser Engine September Update: 527 Commits and Performance Gains