# servo changelog > Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications. - Vendor: servo - Category: Developer Tools - Official site: https://servo.org/ - Tracked by: What's New (https://whatsnew.fyi/product/servo) - Harvested from: GitHub (servo/servo) - Entries below: 10 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## Releases ### v0.1.3 - Date: 2026-08-22 - Version: v0.1.3 - Original notes: https://github.com/servo/servo/releases/tag/v0.1.3 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.1.3 - **security** — Backport several security fixes - **changed** — Bump Spidermonkey to the latest ESR patch release 140.14.0 - **fixed** — Disable incremental garbage collection which had been causing rare issues Servo release v0.1.3 This update to the LTS branch mainly bumps Spidermonkey to the latest ESR patch release (140.14.0) and disables incremental garbage (which had been causing some rare issues). Note that the macos servoshell binaries attached to this release are not signed. ##### What's Changed * LTS: Backport several security fixes by @jschwe in https://github.com/servo/servo/pull/46616 * LTS 0.1 mozjs ESR update by @jschwe in https://github.com/servo/servo/pull/47396 * backport: ci: Handle token expiry in crates.io publish by exiting early by @jschwe in https://github.com/servo/servo/pull/47422 **Full Changelog**: https://github.com/servo/servo/compare/v0.1.2...v0.1.3 ### v0.4.0 - Date: 2026-08-04 - Version: v0.4.0 - Original notes: https://github.com/servo/servo/releases/tag/v0.4.0 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.4.0 - **changed** — macOS ServoShell binaries are now signed - **added** — Implement console.dir - **added** — Implement Unrooted Inclusive Ancestor iterator in script - **added** — Introduce PreviewId in devtools to get previews - **added** — Introduce Promise::reject_error_with_cx in script - **added** — Introduce Promise::{resolve,reject}_native_with_cx in script - **added** — Enable legacy touch events event handler in script - **added** — Add specs steps to gamepad functions - **added** — Implement muted errors in script - **changed** — Rewrite the StackingContextTree to be sparse - **changed** — Use SecureContext on namespaces in webgpu - **changed** — Upgrade surfman to 0.12.2 - **changed** — Bump sha3 to 0.12 - **changed** — Bump ml-dsa to 0.1 - **changed** — Bump ml-kem to 0.3 - **changed** — Move more of the constructor into non-generated code in script_bindings - **changed** — webgpu interface to namespace to reduce webidl diff - **changed** — webgpu rename *Image* to *Texel* - **fixed** — Fix UA stylesheet for input type="radio" - **fixed** — Fix an image cache leak on reloads This release is a re-release of the 0.4.0 release since we forgot the `v` prefix when creating the tag. Additionally, the macOS ServoShell binaries are now signed. ------------------------ See our [June blog post](https://servo.org/blog/2026/07/31/june-in-servo/) for a curated overview of the changes in this release. ##### Trying out the Servo Tech Demo [troubleshooting guide]: https://servo.org/download/#troubleshooting ###### Linux If you see an error `loading shared libraries` when starting servo on Linux, please refer to the [troubleshooting guide]. ###### HarmonyOS Please note that the `servo-aarch64-linux-ohos.hap` attached here is signed for OpenHarmony, not HarmonyOS. For HarmonyOS self-signing is currently required - You can download the `servo-aarch64-linux-ohos.so` shared library and use DevEco Studio to follow the instructions in the ArkTS [Servo Demo repository](https://github.com/jschwe/ServoDemo) ##### What's Changed Please check out our [June blog post](https://servo.org/blog/2026/07/31/june-in-servo/) to get a curated overview over the recent changes.
Generated Release notes ##### What's Changed * deps: Bump `sha3` to 0.12 by @kkoyung in https://github.com/servo/servo/pull/45280 * webgpu: Use SecureContext on namespaces by @sagudev in https://github.com/servo/servo/pull/45279 * layout: fix UA stylesheet for `` by @RichardTjokroutomo in https://github.com/servo/servo/pull/44627 * Implement console.dir by @Taym95 in https://github.com/servo/servo/pull/45109 * layout: Root unbound nodes until next reflow is finished. by @alice in https://github.com/servo/servo/pull/44949 * layout: Avoid extra work when there is no strong BiDi content by @mrobinson in https://github.com/servo/servo/pull/45007 * libservo: Add documentation for more public types. by @mukilan in https://github.com/servo/servo/pull/45282 * script: Implement Unrooted Inclusive Ancestor iterator by @Narfinger in https://github.com/servo/servo/pull/44906 * devtools: introduce `PreviewId` in order to get previews by @atbrakhi in https://github.com/servo/servo/pull/45139 * deps: Upgrade surfman to `0.12.2` by @mrobinson in https://github.com/servo/servo/pull/45286 * webgpu: `interface` -> `namespace` to reduce webidl diff by @sagudev in https://github.com/servo/servo/pull/45284 * layout: Rewrite the StackingContextTree to be sparse by @mrobinson in https://github.com/servo/servo/pull/45208 * layout: Preserve active `display: contents` when handling anonymous table parts by @Loirooriol in https://github.com/servo/servo/pull/45287 * net: Fix an image cache leak on reloads by @jschwe in https://github.com/servo/servo/pull/45261 * ci: Fix etc/ci/scenario Python types by @janeoa in https://github.com/servo/servo/pull/45204 * servoshell: Rely on egui to know when widgets are animating by @mrobinson in https://github.com/servo/servo/pull/45289 * tests: Fix warning about unused variable in webview tests by @jschwe in https://github.com/servo/servo/pull/45291 * webgpu: rename `*Image*` -> `*Texel*` by @sagudev in https://github.com/servo/servo/pull/45292 * script_bindings: Move more of the constructor into non-generated code by @Narfinger in https://github.com/servo/servo/pull/44948 * servo: In `test_preferences_change` more thoroughly test setting `grid-column` by @Loirooriol in https://github.com/servo/servo/pull/45293 * deps: Bump `ml-dsa` to 0.1 by @kkoyung in https://github.com/servo/servo/pull/45294 * fonts: Remove redundant `hardcoded_font_families` for ohos by @RichardTjokroutomo in https://github.com/servo/servo/pull/45296 * webgpu: Reshuffle and split encoder mixins, remove some unused dictionaries in webidl by @sagudev in https://github.com/servo/servo/pull/45298 * script: Enable legacy touch events event handler by @stevennovaryo in https://github.com/servo/servo/pull/45049 * Fix building on RISC-V by @fxzjshm in https://github.com/serv _[Truncated at 4000 characters — full notes: https://github.com/servo/servo/releases/tag/v0.4.0]_ ### 0.4.0 - Date: 2026-07-31 - Version: 0.4.0 - Original notes: https://github.com/servo/servo/releases/tag/0.4.0 - Permalink: https://whatsnew.fyi/product/servo/releases/0.4.0 - **added** — Implement console.dir - **added** — Implement Unrooted Inclusive Ancestor iterator in script - **added** — Introduce PreviewId in devtools to get previews - **added** — Enable legacy touch events event handler - **added** — Introduce Promise::reject_error_with_cx - **added** — Introduce Promise::{resolve,reject}_native_with_cx - **added** — Implement muted errors - **changed** — Use SecureContext on namespaces in webgpu - **changed** — Upgrade surfman to 0.12.2 - **changed** — Rewrite the StackingContextTree to be sparse - **changed** — Rely on egui to know when widgets are animating in servoshell - **changed** — Rename *Image* to *Texel* in webgpu - **changed** — Forward all mouse motion events to egui in servoshell - **changed** — Generate new blob URL per createObjectURL call - **changed** — Propagate wake lock type in permission requests - **fixed** — Fix UA stylesheet for input type=radio - **fixed** — Root unbound nodes until next reflow is finished - **fixed** — Fix an image cache leak on reloads - **fixed** — Fix response panic on closed channel in canvas - **fixed** — Do not rasterize SVG images for the same size multiple times See our [June blog post](https://servo.org/blog/2026/07/31/june-in-servo/) for a curated overview of the changes in this release. ##### Trying out the Servo Tech Demo [troubleshooting guide]: https://servo.org/download/#troubleshooting ###### Linux If you see an error `loading shared libraries` when starting servo on Linux, please refer to the [troubleshooting guide]. ###### HarmonyOS Please note that the `servo-aarch64-linux-ohos.hap` attached here is signed for OpenHarmony, not HarmonyOS. For HarmonyOS self-signing is currently required - You can download the `servo-aarch64-linux-ohos.so` shared library and use DevEco Studio to follow the instructions in the ArkTS [Servo Demo repository](https://github.com/jschwe/ServoDemo) ##### What's Changed Please check out our [June blog post](https://servo.org/blog/2026/07/31/june-in-servo/) to get a curated overview over the recent changes.
Generated Release notes ##### What's Changed * deps: Bump `sha3` to 0.12 by @kkoyung in https://github.com/servo/servo/pull/45280 * webgpu: Use SecureContext on namespaces by @sagudev in https://github.com/servo/servo/pull/45279 * layout: fix UA stylesheet for `` by @RichardTjokroutomo in https://github.com/servo/servo/pull/44627 * Implement console.dir by @Taym95 in https://github.com/servo/servo/pull/45109 * layout: Root unbound nodes until next reflow is finished. by @alice in https://github.com/servo/servo/pull/44949 * layout: Avoid extra work when there is no strong BiDi content by @mrobinson in https://github.com/servo/servo/pull/45007 * libservo: Add documentation for more public types. by @mukilan in https://github.com/servo/servo/pull/45282 * script: Implement Unrooted Inclusive Ancestor iterator by @Narfinger in https://github.com/servo/servo/pull/44906 * devtools: introduce `PreviewId` in order to get previews by @atbrakhi in https://github.com/servo/servo/pull/45139 * deps: Upgrade surfman to `0.12.2` by @mrobinson in https://github.com/servo/servo/pull/45286 * webgpu: `interface` -> `namespace` to reduce webidl diff by @sagudev in https://github.com/servo/servo/pull/45284 * layout: Rewrite the StackingContextTree to be sparse by @mrobinson in https://github.com/servo/servo/pull/45208 * layout: Preserve active `display: contents` when handling anonymous table parts by @Loirooriol in https://github.com/servo/servo/pull/45287 * net: Fix an image cache leak on reloads by @jschwe in https://github.com/servo/servo/pull/45261 * ci: Fix etc/ci/scenario Python types by @janeoa in https://github.com/servo/servo/pull/45204 * servoshell: Rely on egui to know when widgets are animating by @mrobinson in https://github.com/servo/servo/pull/45289 * tests: Fix warning about unused variable in webview tests by @jschwe in https://github.com/servo/servo/pull/45291 * webgpu: rename `*Image*` -> `*Texel*` by @sagudev in https://github.com/servo/servo/pull/45292 * script_bindings: Move more of the constructor into non-generated code by @Narfinger in https://github.com/servo/servo/pull/44948 * servo: In `test_preferences_change` more thoroughly test setting `grid-column` by @Loirooriol in https://github.com/servo/servo/pull/45293 * deps: Bump `ml-dsa` to 0.1 by @kkoyung in https://github.com/servo/servo/pull/45294 * fonts: Remove redundant `hardcoded_font_families` for ohos by @RichardTjokroutomo in https://github.com/servo/servo/pull/45296 * webgpu: Reshuffle and split encoder mixins, remove some unused dictionaries in webidl by @sagudev in https://github.com/servo/servo/pull/45298 * script: Enable legacy touch events event handler by @stevennovaryo in https://github.com/servo/servo/pull/45049 * Fix building on RISC-V by @fxzjshm in https://github.com/servo/servo/pull/45285 * net: Do not rasterize SVG images for the same size multiple times by @Narfinger in https://github.com/servo/servo/pull/44805 * layout: tab-size applies to inline elements, n _[Truncated at 4000 characters — full notes: https://github.com/servo/servo/releases/tag/0.4.0]_ ### v0.1.2 — v0.1.2 (LTS) - Date: 2026-07-06 - Version: v0.1.2 - Original notes: https://github.com/servo/servo/releases/tag/v0.1.2 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.1.2 - **security** — Update SpiderMonkey from ESR 140.10 to 140.12 to pull in security fixes from MFSA 2026-48 and MFSA 2026-58 - **security** — Backport 24 security related changes to the LTS - **security** — Harden javascript: URL evaluation - **security** — Pass rooted UnderlyingSourceContainer to ReadableStream ##### What's Changed This release includes an updated Spidermonkey from ESR 140.10 to 140.12, pulling in security fixes from [MFSA 2026-48](https://www.mozilla.org/en-US/security/advisories/mfsa2026-48/) and [MFSA 2026-58](https://www.mozilla.org/en-US/security/advisories/mfsa2026-58/), including https://github.com/advisories/GHSA-6cv4-3h2g-632h, https://github.com/advisories/GHSA-93pv-vhrf-wv64 and https://github.com/advisories/GHSA-4885-5pch-3x6m. Additionally, we backported 24 security related changes to the LTS. View the full changelog below for more details. * LTS: Cherry-pick 22 commits onto the 0.1 LTS release branch by @jschwe in https://github.com/servo/servo/pull/46006 * LTS: Update mozjs to SM ESR 140.12 by @jschwe in https://github.com/servo/servo/pull/46038 * backport: script: Harden javascript: URL evaluation. (#45913) by @jschwe in https://github.com/servo/servo/pull/46088 * backport: script: Pass rooted UnderlyingSourceContainer to ReadableSt… by @jschwe in https://github.com/servo/servo/pull/46086 * LTS: Prepare 0.1.2 release by @jschwe in https://github.com/servo/servo/pull/46112 * Backported a few CI fixes to related to publishing **Full Changelog**: https://github.com/servo/servo/compare/v0.1.1...v0.1.2 ### v0.3.0 - Date: 2026-06-25 - Version: v0.3.0 - Original notes: https://github.com/servo/servo/releases/tag/v0.3.0 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.3.0 - **changed** — Disable kerning when font-kerning is none - **added** — Implement backColor command - **added** — Implement foreColor command - **added** — Implement subscript and superscript commands - **added** — Implement createlink and unlink commands - **added** — Implement PerformanceMark constructor - **added** — Methods for modifying sanitizer configuration - **added** — Error messages to customElements.define - **changed** — Compute labels for name-from-content nodes in accessibility layout - **changed** — Update Rust to 1.95 - **fixed** — Properly fire pointerup events - **changed** — Clear hover pseudo-class on the shadow-including ancestors - **changed** — Create Duration from microseconds timestamp instead of milliseconds - **changed** — Construct attribute nodes lazily - **changed** — Make ForOfIterator more convenient to use - **added** — Enable Sanitizer API as experimental feature - **security** — Zeroize webcrypto sensitive information on drop - **changed** — Port OffscreenCanvas and Navigator to &mut JSContext - **changed** — Consolidate thread pools - **changed** — Pass redirectStart to document and expose it to PerformanceMark ##### Trying out the Servo Tech Demo [troubleshooting guide]: https://servo.org/download/#troubleshooting ###### Linux If you see an error `loading shared libraries` when starting servo on Linux, please refer to the [troubleshooting guide]. ###### HarmonyOS Please note that the `servo-aarch64-linux-ohos.hap` attached here is signed for OpenHarmony, not HarmonyOS. For HarmonyOS self-signing is currently required - You can download the `servo-aarch64-linux-ohos.so` shared library and use DevEco Studio to follow the instructions in the ArkTS [Servo Demo repository](https://github.com/jschwe/ServoDemo) ##### What's Changed Due to time-constraints these release notes unfortunately don't have a curated summary of the changes, but as usual there will be a monthly blog-post at https://servo.org/blog/ covering the changes of this release (May). The blog post will be published at a later point in time.
Generated Release notes ##### What's Changed * layout: Disable kerning when `font-kerning` is `none` by @simonwuelker in https://github.com/servo/servo/pull/44634 * script: Implement backColor command by @TimvdLippe in https://github.com/servo/servo/pull/44644 * script: Propagate &mut JSContext to `Credential` & `HTMLCanvasElement` by @yezhizhen in https://github.com/servo/servo/pull/44647 * Update uv.lock for #44591 by @delan in https://github.com/servo/servo/pull/44600 * script: Methods for modifying sanitizer configuration by @kkoyung in https://github.com/servo/servo/pull/44655 * script: Introduce argument version of UnderlyingSourceType to remove rooting requirements. by @jdm in https://github.com/servo/servo/pull/44637 * Add two error messages to customElements.define by @PuercoPop in https://github.com/servo/servo/pull/44656 * layout: Accessibility: Compute labels for name-from-content nodes by @alice in https://github.com/servo/servo/pull/44439 * Update rust to 1.95 by @simonwuelker in https://github.com/servo/servo/pull/44632 * script: Pass `&mut JSContext` to more accessors by @TimvdLippe in https://github.com/servo/servo/pull/44659 * script: Pass `&mut JSContext` to `set_string_attribute` by @TimvdLippe in https://github.com/servo/servo/pull/44660 * Port debugger global scope fire interrupt by @elomscansio in https://github.com/servo/servo/pull/44663 * fonts: Clean up unnecessary clone. by @jdm in https://github.com/servo/servo/pull/44661 * script: Pass `&mut JSContext` to most attribute modification methods by @TimvdLippe in https://github.com/servo/servo/pull/44664 * Pass `redirectStart` to document and expose it to PerformanceMark by @shubhamg13 in https://github.com/servo/servo/pull/44624 * script: Remove unnecessary Box inside of Rc. by @jdm in https://github.com/servo/servo/pull/44662 * script: Properly fire `pointerup` events by @mrobinson in https://github.com/servo/servo/pull/44666 * script: Implement foreColor command by @TimvdLippe in https://github.com/servo/servo/pull/44657 * script: Pass `&mut JSContext` to `handle_attribute_changes` by @TimvdLippe in https://github.com/servo/servo/pull/44668 * script: Port `HTMLFormControlsCollection` & `HTMLFormElement` to &mut JSContext by @yezhizhen in https://github.com/servo/servo/pull/44653 * script: Propagate &mut JSContext through event dispatch. by @jdm in https://github.com/servo/servo/pull/44665 * Pass `redirectEnd` to document and expose it to PerformanceMark by @shubhamg13 in https://github.com/servo/servo/pull/44673 * script: Create Duration from microseconds timestamp instead of milliseconds by @shubhamg13 in https://github.com/servo/servo/pull/44675 * script: Construct attribute nodes lazily by @webbeef in https://github.com/servo/servo/pull/44209 * mach release: Specify exact dependency on workspace crates by @jschwe in https://github.com/servo/servo/pull/44667 * script: Port `Offsc _[Truncated at 4000 characters — full notes: https://github.com/servo/servo/releases/tag/v0.3.0]_ ### v0.1.1 — v0.1.1 (LTS) - Date: 2026-06-25 - Version: v0.1.1 - Original notes: https://github.com/servo/servo/releases/tag/v0.1.1 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.1.1 - **fixed** — Fix advisories for webpki and thin-vec - **changed** — Update mozjs to 0.15.10 - **changed** — Update aws-lc-rs to version 1.16.3 #### v0.1.1 (LTS) This is a patch update for the 0.1 LTS branch, which only consists of dependency updates, including bumping SpiderMonkey to the ESR 140.10 release. This release was originally published on May 25th to crates.io. ##### What's Changed * backport: Fix advisories for webpki and thin-vec and adjust unit test cookie expiry time by @jschwe in https://github.com/servo/servo/pull/44546 * backport: Update mozjs to 0.15.10 by @jschwe in https://github.com/servo/servo/pull/44545 * backport: Update aws-lc-rs to version 1.16.3 by @jschwe in https://github.com/servo/servo/pull/44790 * Prepare v0.1.1 (LTS) release by @jschwe in https://github.com/servo/servo/pull/45103 **Full Changelog**: https://github.com/servo/servo/compare/v0.1.0...v0.1.1 ### v0.2.0 - Date: 2026-05-31 - Version: v0.2.0 - Original notes: https://github.com/servo/servo/releases/tag/v0.2.0 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.2.0 - **added** — Revamped browser UI on Android with a new history view - **added** — Interactive pretty-printer for JSON files loaded as the top-level document - **changed** — Improved support for Chinese, Japanese, and Korean languages - **changed** — Improved Inspector, Console, and Debugger tabs when using Firefox DevTools - **changed** — Improved tab navigation, focus handling, and keyboard input - **added** — Support for