# servo v0.5.0 - Product: servo (https://whatsnew.fyi/product/servo) - Vendor: servo - Date: 2026-08-31 - Version: v0.5.0 - Original notes: https://github.com/servo/servo/releases/tag/v0.5.0 - Permalink: https://whatsnew.fyi/product/servo/releases/v0.5.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'. --- - **added** — Implement importKey and exportKey operation of Ed448 - **added** — Define scoped document set for CustomElementRegistry - **added** — Support GPUExternalTexture - **added** — Add crate level documentation to libservo - **changed** — Convert refresh button on large screen to Compose UI on Android - **changed** — Store unminified data: URL scripts under a generated file name - **changed** — Set AR and RANLIB on Android - **changed** — Determine default config dir and lower minSdk on Android - **changed** — Switch reporting_observer_list to store Dom instead of DomRoot - **changed** — Use range boundary point position algorithm - **changed** — Upgrade to Stylo with touch action property - **changed** — Pass &mut JSContext to get_in_memory_bytes - **changed** — Migrate dom/media to &mut JSContext - **changed** — Refactor accessibility tree child node update logic - **changed** — Set explicit panic hook on Android - **changed** — Drop ModuleFetchClient in favour of RequestClient - **changed** — Convert navigation bar to Compose UI on Android - **changed** — Make accessibility tree an actual tree - **changed** — Update select shadow tree after call to setValue - **fixed** — Avoid creating empty cookie map entries on cookie deletion See our [July blog post](https://servo.org/blog/2026/08/31/july-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 [July blog post](https://servo.org/blog/2026/08/31/july-in-servo/) to get a curated overview over the recent changes.
Generated Release notes ##### What's Changed * android: Convert refresh button on large screen to Compose UI by @veyndan in https://github.com/servo/servo/pull/46085 * script: Implement importKey and exportKey operation of Ed448 by @kkoyung in https://github.com/servo/servo/pull/46141 * net: Avoid creating empty cookie map entries on cookie deletion by @arayaryoma in https://github.com/servo/servo/pull/46124 * script: Store unminified data: URL scripts under a generated file name by @officialasishkumar in https://github.com/servo/servo/pull/45119 * android: Set AR and RANLIB by @jschwe in https://github.com/servo/servo/pull/46128 * android: Determine default config dir and lower minSdk by @jschwe in https://github.com/servo/servo/pull/46142 * script: Define scoped document set for CustomElementRegistry by @shubhamg13 in https://github.com/servo/servo/pull/46073 * script: Switch reporting_observer_list to store Dom instead of DomRoot by @cychronex-labs in https://github.com/servo/servo/pull/46139 * script: Remove `GlobalScope::get_cx()` by @TimvdLippe in https://github.com/servo/servo/pull/46147 * script: Use range boundary point position algorithm by @SimonSapin in https://github.com/servo/servo/pull/46126 * script: Remove `ScriptThread::get_cx()` by @TimvdLippe in https://github.com/servo/servo/pull/46150 * script: Remove SafeJSContext by @TimvdLippe in https://github.com/servo/servo/pull/46151 * Upgrade to Stylo with touch action property by @nicoburns in https://github.com/servo/servo/pull/46159 * script: Pass &mut JSContext to get_in_memory_bytes by @kunalmohan in https://github.com/servo/servo/pull/46166 * script: Migrate `dom/media` to `&mut JSContext` by @lumiscosity in https://github.com/servo/servo/pull/46156 * layout: Refactor accessibility tree child node update logic by @alice in https://github.com/servo/servo/pull/45971 * dependabot: Group wgpu and only allow patch updates by @sagudev in https://github.com/servo/servo/pull/46177 * deny: Allow some `quick-xml` advistories by @mrobinson in https://github.com/servo/servo/pull/46192 * android: Set explicit panic hook by @jschwe in https://github.com/servo/servo/pull/46157 * net: Catch panics in `resvg::render` with `catch_unwind`. by @mukilan in https://github.com/servo/servo/pull/46185 * script/net: Drop `ModuleFetchClient` in favour of `RequestClient` by @Gae24 in https://github.com/servo/servo/pull/46163 * devtools: keep object actor identity stable across grips by @atbrakhi in https://github.com/servo/servo/pull/46201 * script: Make `IframeCollection::set_viewport_details` resilient to missing `