# servo v0.3.0 - Product: servo (https://whatsnew.fyi/product/servo) - Vendor: servo - 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 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'. --- - **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]_