Download Latest Version servo-x86_64-windows-msvc.exe (114.3 MB) Google Add to Preferred Sources
Home / v0.6.0
Name Modified Size InfoDownloads / Week
Parent folder
servo-x86_64-apple-darwin.dmg.sha256 2026-09-25 96 Bytes
servo-x86_64-apple-darwin.dmg 2026-09-25 117.5 MB
servo-aarch64-apple-darwin.dmg.sha256 2026-09-25 107 Bytes
servo-aarch64-apple-darwin.dmg 2026-09-25 114.0 MB
servo-aarch64-android.aar.sha256 2026-09-25 91 Bytes
servo-aarch64-android.aar 2026-09-25 39.7 MB
servo-aarch64-android.apk.sha256 2026-09-25 91 Bytes
servo-aarch64-android.apk 2026-09-25 115.5 MB
servo-aarch64-linux-gnu.tar.gz.sha256 2026-09-25 96 Bytes
servo-aarch64-linux-gnu.tar.gz 2026-09-25 48.1 MB
servo-x86_64-windows-msvc.zip.sha256 2026-09-25 95 Bytes
servo-x86_64-windows-msvc.zip 2026-09-25 103.2 MB
servo-x86_64-windows-msvc.exe.sha256 2026-09-25 95 Bytes
servo-x86_64-windows-msvc.exe 2026-09-25 114.3 MB
servo-x86_64-linux-gnu.tar.gz.sha256 2026-09-25 95 Bytes
servo-x86_64-linux-gnu.tar.gz 2026-09-25 49.2 MB
servo-aarch64-linux-ohos.hap.sha256 2026-09-25 94 Bytes
servo-aarch64-linux-ohos.hap 2026-09-25 98.1 MB
servo-aarch64-linux-ohos.so.sha256 2026-09-25 93 Bytes
servo-aarch64-linux-ohos.so 2026-09-25 123.3 MB
servo-v0.6.0-src-vendored.tar.gz 2026-09-25 385.9 MB
README.md 2026-09-24 41.7 kB
v0.6.0 (LTS) source code.tar.gz 2026-09-24 169.9 MB
v0.6.0 (LTS) source code.zip 2026-09-24 297.4 MB
Totals: 24 Items   1.8 GB 1

Servo v0.6 updates our JavaScript engine SpiderMonkey from the ESR 140 branch to the current ESR 153 release. Hence this release is also the base of the next LTS release of servo. The previous 0.1 LTS branch will still receive another update with the last SpiderMonkey ESR 140 upstream release.

Trying out the Servo Tech Demo

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

What's Changed

This section will be updated with a link to the August blog-post once it is released with a curated overview over the recent changes. For now you can view the generated release notes below.

Generated Release notes ## What's Changed * crown: allow `std::collections::hash_map::Values` in `unrooted_must_root` lint. by @niyabits in https://github.com/servo/servo/pull/46953 * script: Tidy up comments in `subtlecrypto.rs` by @kkoyung in https://github.com/servo/servo/pull/46976 * android: Convert `ServoView` to Kotlin by @veyndan in https://github.com/servo/servo/pull/46965 * fonts: Remove manual definition of `FT_LOAD_TARGET_LIGHT` by @simonwuelker in https://github.com/servo/servo/pull/46978 * layout: No longer combine adjacent text nodes into the same `TextRun` by @mrobinson in https://github.com/servo/servo/pull/46963 * script: More carefully handle dirty root and descendant damage marking by @mrobinson in https://github.com/servo/servo/pull/46906 * deps: Update bundled harfbuzz to 14.2.1 by @jschwe in https://github.com/servo/servo/pull/46867 * paint: Switch forgotten IpcChannel to GenericChannel by @Narfinger in https://github.com/servo/servo/pull/46985 * script: Cleanup custom node dirty inclusive ancestor walk by @Narfinger in https://github.com/servo/servo/pull/46981 * paint: Lock touch panning to its initial dominant axis by @yezhizhen in https://github.com/servo/servo/pull/46983 * OHOS: More efficient window buffer mode by @Narfinger in https://github.com/servo/servo/pull/41309 * constellation: Do not request permission for initial about:blank loads. by @jdm in https://github.com/servo/servo/pull/46988 * android: Inline `InitOptions` by @veyndan in https://github.com/servo/servo/pull/46994 * canvas: Limit worker threads for vello_cpu by @jschwe in https://github.com/servo/servo/pull/46991 * script: Only note dirty `Element`s by @mrobinson in https://github.com/servo/servo/pull/46986 * script: Move form controls into form_controls by @TimvdLippe in https://github.com/servo/servo/pull/46989 * script: Prevent borrow hazards in Element::ensure_rare_data. by @jdm in https://github.com/servo/servo/pull/47005 * script: Fire `focusin`/`focusout` by @RichardTjokroutomo in https://github.com/servo/servo/pull/46980 * script: fix worklet implementation to fetch modules instead of classic scripts by @niyabits in https://github.com/servo/servo/pull/46856 * layout: Unify the way that selection is represented in the box tree by @mrobinson in https://github.com/servo/servo/pull/46982 * script: Make `performance.timing` a PerformanceTiming object by @jdm in https://github.com/servo/servo/pull/46990 * media: avoid crash in pulsesink by @calvaris in https://github.com/servo/servo/pull/46891 * script: Move `WorkletThreadPool` intialization out of `ScriptThread` by @niyabits in https://github.com/servo/servo/pull/47016 * layout: Add `TextFragmentRunData` by @mrobinson in https://github.com/servo/servo/pull/47015 * constellation: Remove broken built-in sampling profiler by @lumiscosity in https://github.com/servo/servo/pull/47014 * deps: Do not enable the `webrender` `capture` feature by @jschwe in https://github.com/servo/servo/pull/46950 * layout: Map between pre-transformed and post-transformed selection offsets during display list construction by @mrobinson in https://github.com/servo/servo/pull/47022 * layout: Pass `poster_url` for `LargestContentfulPaint` Entry by @shubhamg13 in https://github.com/servo/servo/pull/43376 * fonts: Optimize hasher by using `FxHashMap` in CachedShapeData by @jschwe in https://github.com/servo/servo/pull/47038 * wpt: Add tests for LCP element removed after paint by @shubhamg13 in https://github.com/servo/servo/pull/46851 * ci: Add sccache for faster try wpt builds in forks by @jschwe in https://github.com/servo/servo/pull/47040 * layout: Report LCP only once per element by @shubhamg13 in https://github.com/servo/servo/pull/47039 * canvas: report malloc sizeof vello_cpu by @janeoa in https://github.com/servo/servo/pull/46958 * layout: Fix interaction of margin and stretch size on block-level box inside inline box by @Loirooriol in https://github.com/servo/servo/pull/47020 * script: Deliver animation frames to dedicated workers by @Taym95 in https://github.com/servo/servo/pull/46232 * fonts: Eagerly memory-map local FreeType fonts by @jschwe in https://github.com/servo/servo/pull/47029 * script: Pass the prefix from the parser when creating attributes by @Ms2ger in https://github.com/servo/servo/pull/47030 * allocator: Make jemalloc code optional by @jschwe in https://github.com/servo/servo/pull/44032 * canvas: Add pref to control thread_pool_canvas_workers by @jschwe in https://github.com/servo/servo/pull/47018 * layout: Take `OffsetMap` into account when getting glyph character index by @mrobinson in https://github.com/servo/servo/pull/47025 * script: Move srcset-related structs and functions out of HTMLImageElement by @lumiscosity in https://github.com/servo/servo/pull/47046 * script: Do not load all fonts for SVG font database by @Narfinger in https://github.com/servo/servo/pull/46476 * layout: Add `effective_visual_size` to `PaintTimingHandler` by @shubhamg13 in https://github.com/servo/servo/pull/43378 * perf: add initial threadboost mechanism (for ohos). by @jschwe in https://github.com/servo/servo/pull/46843 * allocator: Enable jemalloc stats feature by @jschwe in https://github.com/servo/servo/pull/47047 * Resolve DOM/glyph positions during hit testing by @SimonSapin in https://github.com/servo/servo/pull/47048 * script: Root less in Slottable::find_a_slot. by @jdm in https://github.com/servo/servo/pull/47049 * script: Move individual interfaces into subfolders by @TimvdLippe in https://github.com/servo/servo/pull/47060 * script: Move HTML elements into `embedded_content/` by @TimvdLippe in https://github.com/servo/servo/pull/47059 * script: Move script modules logic into subfolder by @TimvdLippe in https://github.com/servo/servo/pull/47065 * script: Remove unnecessary clone on HTMLScriptElement::prepare_the_script_text by @Narfinger in https://github.com/servo/servo/pull/47066 * script: Move HTML elements into `tabular_data/` by @TimvdLippe in https://github.com/servo/servo/pull/47063 * script: Fix GC borrow hazard in HTMLImageElement::abort_request by @treetmitterglad in https://github.com/servo/servo/pull/47051 * script: Move task related files to `script/tasks/` by @TimvdLippe in https://github.com/servo/servo/pull/47071 * Upgrade to Taffy v0.13.0 by @nicoburns in https://github.com/servo/servo/pull/47031 * canvas: Upgrade `vello_cpu` to 0.2.0 by @yezhizhen in https://github.com/servo/servo/pull/46915 * chore: Update Rust to 1.97.1 by @sagudev in https://github.com/servo/servo/pull/47076 * script: Properly clear selection flags on siblings by @mrobinson in https://github.com/servo/servo/pull/47070 * net: Don't treat usvg_options as a child of the image-cache. by @jdm in https://github.com/servo/servo/pull/47075 * layout: Apply followup fixes for [#47022] by @mrobinson in https://github.com/servo/servo/pull/47078 * script: Do not navigate a newly-opened window to about:blank. by @jdm in https://github.com/servo/servo/pull/47074 * script: Move common source set operations into `srcset.rs` by @lumiscosity in https://github.com/servo/servo/pull/47079 * layout: Enable CSS Grid by default by @nicoburns in https://github.com/servo/servo/pull/45621 * Enable the `wayland-data-control` for `arboard` by @TheZoq2 in https://github.com/servo/servo/pull/46938 * script: Remove `reflect_dom_object_with_proto_and_cx` by @TimvdLippe in https://github.com/servo/servo/pull/47092 * Deduplicate petgraph and fixedbitset by @atouchet in https://github.com/servo/servo/pull/47093 * deps: Bump mozjs to 0.21.1 by @jschwe in https://github.com/servo/servo/pull/47087 * android / ohos: Respect `device_pixel_ratio_override` in servoshell by @jschwe in https://github.com/servo/servo/pull/47081 * script: Directly convert `KeyAlgorithm` to js value by @kkoyung in https://github.com/servo/servo/pull/47077 * deps: Update mozjs to 0.21.2 by @jschwe in https://github.com/servo/servo/pull/47099 * etc: Add comment with command to close issues by @TimvdLippe in https://github.com/servo/servo/pull/47100 * script: Move HTML elements to `grouping_content/` by @TimvdLippe in https://github.com/servo/servo/pull/47091 * layout: Update Stylo to respect color-scheme CSS properties by @TimvdLippe in https://github.com/servo/servo/pull/47042 * script: init `WorkletThreadPool` in `Window` by @niyabits in https://github.com/servo/servo/pull/47064 * script: Properly implement usage intersection in `CryptoKey` by @kkoyung in https://github.com/servo/servo/pull/47112 * build: Configure jemalloc with 64KB page size on linux-arm64 by @mukilan in https://github.com/servo/servo/pull/47113 * layout: Consistently map back to DOM offsets from layout offsets by @mrobinson in https://github.com/servo/servo/pull/47069 * html: Add error messages by @eachra-bawn in https://github.com/servo/servo/pull/47124 * script: Add error message for invalid selectors. by @jdm in https://github.com/servo/servo/pull/47127 * script: Move GPUAdapter, GPUSupportedFeatures, GPUSupportedLimits and WGSLLanguageFeatures to script_webgpu by @Narfinger in https://github.com/servo/servo/pull/46964 * script: Normalize key usages in generateKey operations by @kkoyung in https://github.com/servo/servo/pull/47141 * script: Move FontContext into each global that requires it. by @jdm in https://github.com/servo/servo/pull/47130 * OHOS: Also push `HarmonyOS Sans SC` & `HarmonyOS Sans TC` as candidate fallback fonts when special characters are encountered. by @RichardTjokroutomo in https://github.com/servo/servo/pull/47116 * script: Implement `fully exit fullscreen` steps partially by @shubhamg13 in https://github.com/servo/servo/pull/47123 * threadboost: Fine-tune boosting and explicitly boost webrender threads by @jschwe in https://github.com/servo/servo/pull/47027 * clippy: Delete not needed .clippy.toml file by @Narfinger in https://github.com/servo/servo/pull/47145 * script: Cache UrlExtraData for about:blank by @jschwe in https://github.com/servo/servo/pull/47147 * script: Make Range client rects empty when not in the document by @yezhizhen in https://github.com/servo/servo/pull/47143 * pixels: Create Image Decoder trait by @Narfinger in https://github.com/servo/servo/pull/47045 * net: Implement on disk cache by @Narfinger in https://github.com/servo/servo/pull/43819 * deps: Bump mozjs to 0.21.3 by @jschwe in https://github.com/servo/servo/pull/47131 * layout: Implement `text-transform: full-size-kana` by @SimonSapin in https://github.com/servo/servo/pull/47160 * script: Use NoGC for note_dirty_element by @Narfinger in https://github.com/servo/servo/pull/47165 * servo: Add clipboard backend for ohos by @yezhizhen in https://github.com/servo/servo/pull/47177 * script: Normalize key usage during importKey operations by @kkoyung in https://github.com/servo/servo/pull/47178 * script: Use inclusive_ancestors_unrooted in interior of UnrootedFollowingNodeIterator by @Narfinger in https://github.com/servo/servo/pull/47158 * script: Move script_thread and related structs to `script/event_loop` by @TimvdLippe in https://github.com/servo/servo/pull/47101 * media (ohos): Replace todo! panics with dummy backend by @yezhizhen in https://github.com/servo/servo/pull/47196 * script: Guard brotli transport stream with feature flag by @Narfinger in https://github.com/servo/servo/pull/47197 * layout: Only update the accessibility tree when updating the rendering. by @alice in https://github.com/servo/servo/pull/47195 * script: Support `<meta name="color-scheme">` by @TimvdLippe in https://github.com/servo/servo/pull/46993 * net: Respect temporary_storage option for disk_cache by @Narfinger in https://github.com/servo/servo/pull/47167 * script: abstract the cache logic of `PaintWorklet`'s Worklet Tasks by @niyabits in https://github.com/servo/servo/pull/47199 * script: Optimize TurboSHAKE support in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47210 * script: maybe_user_interacting_guard in EnqueuedPromiseCallback by @sagudev in https://github.com/servo/servo/pull/47213 * webgl: Add feature guard by @janeoa in https://github.com/servo/servo/pull/47200 * net: Use aws-lc-rs for subresource integrity instead of sha2 crate by @Narfinger in https://github.com/servo/servo/pull/47214 * script: Make inserttext not crash when inserting non-ASCII text by @Psychpsyo in https://github.com/servo/servo/pull/47224 * paint: Small consolidation of webgl features in paint by @Narfinger in https://github.com/servo/servo/pull/47223 * script: Simplify internal slots of `CryptoKey` by @kkoyung in https://github.com/servo/servo/pull/47234 * script: Make paint timing unit test wait for performance observer. by @jdm in https://github.com/servo/servo/pull/47201 * webdriver: Support latest "Get Element Tag Name" by @yezhizhen in https://github.com/servo/servo/pull/47216 * servo: Wait for URL change notification in unit test. by @jdm in https://github.com/servo/servo/pull/47240 * script: Implement source set operations for `<link>` by @lumiscosity in https://github.com/servo/servo/pull/47103 * net: use serde_bytes to serialize ResponseBody by @webbeef in https://github.com/servo/servo/pull/47250 * script: Small performance improvements in queue_a_mutation_record by @Narfinger in https://github.com/servo/servo/pull/47251 * net: Add AuthCache and Cookie Storage to memory reporting by @Narfinger in https://github.com/servo/servo/pull/47248 * fonts: Do not copy FontDescriptor needlesly by @Narfinger in https://github.com/servo/servo/pull/47249 * net: Cleanup subresource integrity by @Narfinger in https://github.com/servo/servo/pull/47219 * script: Move single usage files into subdirectories by @TimvdLippe in https://github.com/servo/servo/pull/47254 * net: Fix logic error in disk cache pref parsing by @Narfinger in https://github.com/servo/servo/pull/47245 * layout: Use phfmap for quotation by @Narfinger in https://github.com/servo/servo/pull/47221 * script: Make about:blank documents load synchronously without a parser. by @jdm in https://github.com/servo/servo/pull/47050 * wpt: Enable srcdoc referrer-policy tests. by @jdm in https://github.com/servo/servo/pull/47260 * script_webgpu: Enable webgpu feature on bindings by @jschwe in https://github.com/servo/servo/pull/47262 * script: Avoid binding link element with empty href by @lumiscosity in https://github.com/servo/servo/pull/47266 * url: Avoid allocation when serializing opaque origins by @yezhizhen in https://github.com/servo/servo/pull/47264 * servoshell: Only hide toolbar when full-screen is from Web API by @shubhamg13 in https://github.com/servo/servo/pull/47088 * script_bindings: Deduplicate wrap by @jschwe in https://github.com/servo/servo/pull/47211 * script: Fix handling of blobs for hyperlinks by @TimvdLippe in https://github.com/servo/servo/pull/47226 * layout: Wrap up LCP Image things into PendingImageRecord by @shubhamg13 in https://github.com/servo/servo/pull/47215 * script: Fix iframe name for initial navigation by @TimvdLippe in https://github.com/servo/servo/pull/47270 * script: Move files into `script/{css,fetch}` by @TimvdLippe in https://github.com/servo/servo/pull/47271 * wpt: Remove all skipped test files from include.ini by @jdm in https://github.com/servo/servo/pull/47274 * script: Add error messages for `Node` by @eachra-bawn in https://github.com/servo/servo/pull/47168 * android: Remove uninvoked `onRedrawing` callback by @veyndan in https://github.com/servo/servo/pull/47276 * android: Add button to dismiss alert by @veyndan in https://github.com/servo/servo/pull/47277 * wpt: Ensure javascript: URL produces a load event. by @jdm in https://github.com/servo/servo/pull/47286 * wpt: Make domInteractive timing tests fail better. by @jdm in https://github.com/servo/servo/pull/47288 * script: Use global's active document's navigation timing for PerformanceTiming by @jdm in https://github.com/servo/servo/pull/47289 * layout: Implement `text-transform: full-width` by @SimonSapin in https://github.com/servo/servo/pull/47169 * Implement `text-transform: math-auto` by @SimonSapin in https://github.com/servo/servo/pull/47225 * script_bindings: Add efficient ASCII case-insensitive match function for `DOMString` by @yezhizhen in https://github.com/servo/servo/pull/47285 * Implement CookieStoreManager and expose ServiceWorkerRegistration.cookies by @Taym95 in https://github.com/servo/servo/pull/47044 * script: Rename `SubtleAlgorithm` and `SubtleKeyAlgorithm` by @kkoyung in https://github.com/servo/servo/pull/47292 * android: Convert `alert(string)` dialog to Material 3 by @veyndan in https://github.com/servo/servo/pull/47299 * script: Align `Node::Adopt` according to Specs by @shubhamg13 in https://github.com/servo/servo/pull/46551 * android: Remove unused `entryCal` variable by @veyndan in https://github.com/servo/servo/pull/47304 * script: Feature Flag WebCrypto crate by @Narfinger in https://github.com/servo/servo/pull/47198 * script: Use efficient `DOMString` ASCII case-insensitive match functions in more places by @yezhizhen in https://github.com/servo/servo/pull/47307 * script: Make inserttext handle surrogate pairs correctly. by @Psychpsyo in https://github.com/servo/servo/pull/47306 * script: Convert IntersectionObserver, ResizeObserver, and XMLHTTPRequest to safe_borrow_mut. by @jdm in https://github.com/servo/servo/pull/47317 * deps: Update h2 dependency by @Narfinger in https://github.com/servo/servo/pull/47325 * script: Basic support for mapping 'role' attribute into the a11y tree. by @mukilan in https://github.com/servo/servo/pull/47318 * script: Rename RSA-related structs in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47328 * mach: Simplify bootstrap by @jschwe in https://github.com/servo/servo/pull/47326 * Update stylo for clip-path damage change. by @jdm in https://github.com/servo/servo/pull/47256 * layout: Use scrollable overflow to calculate sticky offset boundary when the containing block of sticky node is a scroll node by @rayguo17 in https://github.com/servo/servo/pull/43766 * script: Switch to `safe_borrow_mut` in `CookieStorageManager` and reorder borrows by @Narfinger in https://github.com/servo/servo/pull/47296 * script: Fix borrow hazard in uncaught_exception handling by @Narfinger in https://github.com/servo/servo/pull/47323 * servoshell: Update deprecated keycodes by @eachra-bawn in https://github.com/servo/servo/pull/47330 * constellation: Queue session history traversals by @mrobinson in https://github.com/servo/servo/pull/47293 * script: Use `MouseButton` in events and add `MouseButtons` by @mrobinson in https://github.com/servo/servo/pull/47327 * script: Don't mark script-created `<title>` elements as being actively parsed by @simonwuelker in https://github.com/servo/servo/pull/47337 * layout: Consider Text as LCP candidate by @shubhamg13 in https://github.com/servo/servo/pull/47212 * servo: Fix incorrect documentation for ServoTest::spin by @simonwuelker in https://github.com/servo/servo/pull/47338 * script: Add `DragGesture` and `DragHandler` abstractions by @mrobinson in https://github.com/servo/servo/pull/47329 * layout: Reduce allocation when constructing `InnerOrOuterTextItem` by @yezhizhen in https://github.com/servo/servo/pull/47343 * script: Rename EC-related and AES-related structs in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47353 * script: Use safe variants of `throw_range_error` and `throw_type_error` by @Gae24 in https://github.com/servo/servo/pull/47340 * script: Don't store rooted value inside `DebuggerGetEnvironmentEvent` by @Gae24 in https://github.com/servo/servo/pull/47355 * fonts: Synthesize variations from `font-style` for macos & freetype systems by @simonwuelker in https://github.com/servo/servo/pull/46918 * fonts: Replace AtomicRefCell with RwLock for resolving font variant alternates by @simonwuelker in https://github.com/servo/servo/pull/47356 * base: Switch all occurences in generic_channel to use fn use_ipc instead of checking options by @Narfinger in https://github.com/servo/servo/pull/47357 * ohos: Better keyboard support by @jschwe in https://github.com/servo/servo/pull/47359 * script: Use constellation event's mouse button state instead of tracking count by @steigeo in https://github.com/servo/servo/pull/45628 * script: Prevent text editing commands from running in uneditable nodes. by @Psychpsyo in https://github.com/servo/servo/pull/47362 * fonts: Add Windows support for `PlatformFont::copy_with_variations` by @mrobinson in https://github.com/servo/servo/pull/47364 * script: Access HTMLTrackElement attributes inside synchronous section. by @jdm in https://github.com/servo/servo/pull/47316 * constellation: Move `pending_changes` to `ConstellationWebView` by @mrobinson in https://github.com/servo/servo/pull/47341 * layout: Implement bits of mark_paint_timing by @shubhamg13 in https://github.com/servo/servo/pull/47354 * script: Convert Document/ShadowRoot.details_name_groups to safe_borrow_mut. by @jdm in https://github.com/servo/servo/pull/47368 * constellation: Remove `ScriptToConstellationMessage::SetDocumentState` by @mrobinson in https://github.com/servo/servo/pull/47369 * script: Rename post_barrier to reflect its purpose. by @jdm in https://github.com/servo/servo/pull/47371 * mime_classifier: fix wrong byte matcher pattern for rar header by @wood-ghost in https://github.com/servo/servo/pull/47366 * script: Implement autofocus delegate by @skyz1 in https://github.com/servo/servo/pull/45826 * script: Reduce codegen-units to 16 to avoid ICE by @jschwe in https://github.com/servo/servo/pull/47372 * script: Rename MAC-related structs in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47390 * script: Replace initial about:blank document by @jdm in https://github.com/servo/servo/pull/46975 * Reduce owned String creation in various places by @yezhizhen in https://github.com/servo/servo/pull/47361 * fonts: Fix line height calculation on windows by @jschwe in https://github.com/servo/servo/pull/47374 * script: Small unminify-js clean-up by @Gae24 in https://github.com/servo/servo/pull/47394 * dom: Add TextEvent support by @moamenhesham0 in https://github.com/servo/servo/pull/47391 * net: Skip needless clone of response bodies if devtools are off by @jschwe in https://github.com/servo/servo/pull/47395 * script: Avoid double adjustment of Selection ranges during `contenteditable` node movement by @mrobinson in https://github.com/servo/servo/pull/47393 * mach: Let `cargo-ohos` setup the OpenHarmony build environment by @jschwe in https://github.com/servo/servo/pull/47334 * script: Remove already enabled prefs by @TimvdLippe in https://github.com/servo/servo/pull/47402 * script: Create remaining folders in `script/dom/html` by @TimvdLippe in https://github.com/servo/servo/pull/47397 * script: JSContextify more mozjs APIs by @Gae24 in https://github.com/servo/servo/pull/47398 * script: Implement indent command by @Psychpsyo in https://github.com/servo/servo/pull/47416 * script: Conversion of `SubtleEncapsulatedKey` and `SubtleEncapsulatedBits` by @kkoyung in https://github.com/servo/servo/pull/47418 * script: Remove extra allocation for each face attribute parse by @yezhizhen in https://github.com/servo/servo/pull/47427 * Parse the track url using `encoding_parse_a_url` in `htmltrackelement` by @AbdAlRahmanGad in https://github.com/servo/servo/pull/47403 * script: Move some individual files into subfolders by @TimvdLippe in https://github.com/servo/servo/pull/47401 * script: Fix borrow hazard in stream and rtcp by @Narfinger in https://github.com/servo/servo/pull/47297 * script: Clarify various error messages by @jdm in https://github.com/servo/servo/pull/47430 * script: Fix computation of contained nodes in range by @TimvdLippe in https://github.com/servo/servo/pull/47429 * script: Restrict navigator.servo to about:memory. by @jdm in https://github.com/servo/servo/pull/47434 * script: Pass `JSContext` to `Selection::active_range` by @mrobinson in https://github.com/servo/servo/pull/47437 * script: Allow reading `@font-face` descriptors from CSSOM by @simonwuelker in https://github.com/servo/servo/pull/47388 * layout: Truncate in place for each accessibility label by @yezhizhen in https://github.com/servo/servo/pull/47440 * script: Only call `Range::report_change` once per mutation by @mrobinson in https://github.com/servo/servo/pull/47438 * script: Rename remaining dictionary structs in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47441 * script: Remove last mentions of `_and_cx` by @TimvdLippe in https://github.com/servo/servo/pull/47443 * script: complete JSContextify of mozjs by @Gae24 in https://github.com/servo/servo/pull/47446 * script: Update `JSPrincipals` in `Window` when `Origin` is replaced by @mrobinson in https://github.com/servo/servo/pull/47442 * Revert "layout: Truncate in place for each accessibility label" by @yezhizhen in https://github.com/servo/servo/pull/47447 * script: Add [EnforceRange] to key length in WebCrypto by @kkoyung in https://github.com/servo/servo/pull/47452 * script: Fix the conversion behavior of RsaKeyGenParams by @kkoyung in https://github.com/servo/servo/pull/47453 * script: Finish moving all HTML elements to relevant subfolders by @TimvdLippe in https://github.com/servo/servo/pull/47435 * script: Move runtime files into `script/runtime` by @TimvdLippe in https://github.com/servo/servo/pull/47444 * script: Improve spec compliance of `Document::set_ready_state` by @mrobinson in https://github.com/servo/servo/pull/47450 * net: Shrink `completed_body` allocation when finishing HTTP load by @jschwe in https://github.com/servo/servo/pull/47454 * script: Implement insertLineBreak command by @Psychpsyo in https://github.com/servo/servo/pull/47445 * script: Move ElementInternals into `script/dom/html/internals/` by @TimvdLippe in https://github.com/servo/servo/pull/47460 * media-examples should not depend on servo by @sagudev in https://github.com/servo/servo/pull/47462 * media: Stop publishing `servo-media-examples` by @mrobinson in https://github.com/servo/servo/pull/47470 * layout: Compute and report accessibility node bounds by @philocalyst in https://github.com/servo/servo/pull/46996 * script: Reduce allocation in cross origin/referrer policy reflection getters by @yezhizhen in https://github.com/servo/servo/pull/47474 * android: Add basic Compose UI abstraction for library by @veyndan in https://github.com/servo/servo/pull/47439 * ohos: Use clang-19 instead of the SDK clang-15 by @jschwe in https://github.com/servo/servo/pull/47421 * layout: Rename `needs_accessibility_update` to `force_…` by @alice in https://github.com/servo/servo/pull/47477 * layout: Only apply `text-transform: capitalize` to lowercase typographical letter units by @mrobinson in https://github.com/servo/servo/pull/46910 * Upgrade to Stylo with `animation-composition` support by @nicoburns in https://github.com/servo/servo/pull/47405 * android: Remove constructor for XML layouts by @veyndan in https://github.com/servo/servo/pull/47491 * script: Do not consider `Document`s without browsing contexts to be active by @mrobinson in https://github.com/servo/servo/pull/47485 * script: Take form submission initiator, referrer, and referrer-policy from owning `Document` by @mrobinson in https://github.com/servo/servo/pull/47487 * fonts: Resolve ties during web font matching by cascade order of `@font-face` rules by @simonwuelker in https://github.com/servo/servo/pull/47449 * layout/script: Let layout own LCP halting logic to preempt unnecessary compute by @shubhamg13 in https://github.com/servo/servo/pull/47389 * script: Return `0` as`loadTime` value for all LCP Entries by @shubhamg13 in https://github.com/servo/servo/pull/47475 * ci: Disable `thejerrybao/setup-swap-space` by @mrobinson in https://github.com/servo/servo/pull/47508 * layout: Refactor how DOM damage is handled during accessibility updates. by @alice in https://github.com/servo/servo/pull/47480 * script: Add initial support for updating Document selection with the mouse by @mrobinson in https://github.com/servo/servo/pull/47358 * script: More faithfully implement "evaluate a JavaScript URL" by @mrobinson in https://github.com/servo/servo/pull/47486 * script: Use UnrootedDom for node variant of NodeOrString in execcommand by @TimvdLippe in https://github.com/servo/servo/pull/47510 * android: Make `ServoView.client` non-null by @veyndan in https://github.com/servo/servo/pull/47494 * script: Implement ancestorOrigins for Location by @TimvdLippe in https://github.com/servo/servo/pull/46056 * net: Cleanup variable names in http_network_fetch by @Narfinger in https://github.com/servo/servo/pull/47484 * script: Reduce allocation for "choosing a navigable", execcommand, querycommand* by @yezhizhen in https://github.com/servo/servo/pull/47506 * deps: Bump ocb3 to 0.2 by @kkoyung in https://github.com/servo/servo/pull/47505 * script: Make `Range::contained_nodes` take a `&NoGC` by @TimvdLippe in https://github.com/servo/servo/pull/47513 * webdriver: use IsArgumentsObject instead of a hand-rolled arguments check by @Lfan-ke in https://github.com/servo/servo/pull/47514 * More granular script thread memory reporting by @pylbrecht in https://github.com/servo/servo/pull/46931 * Upgrade to Taffy v0.14.0 by @nicoburns in https://github.com/servo/servo/pull/47493 * android: Stop double-trimming URI before loading by @veyndan in https://github.com/servo/servo/pull/47490 * script: use a trait for the WorkletThreadPool by @niyabits in https://github.com/servo/servo/pull/47301 * script: Only measure memory for Attr nodes once. by @jdm in https://github.com/servo/servo/pull/47532 * script: Move GPU, GPUBindGroup, GPUBindGrouplayout, GPUBuffer, GPUColorWrite and GPUConvert into script_webgpu by @Narfinger in https://github.com/servo/servo/pull/47157 * ohos: Set GITHUB_TOKEN for build to avoid rate limits by @jschwe in https://github.com/servo/servo/pull/47534 * script: Align live range update steps with specification by @mrobinson in https://github.com/servo/servo/pull/47425 * script: Make "choose a navigable" more specification compliant by @mrobinson in https://github.com/servo/servo/pull/47516 * script: Allow DOMString to convert efficiently from static strings by @Narfinger in https://github.com/servo/servo/pull/47479 * script: Update chardetng by @Narfinger in https://github.com/servo/servo/pull/47472 * script: Reduce String allocation of JS API of fetch `Headers` by @yezhizhen in https://github.com/servo/servo/pull/47530 * Grid: container baselines + use child baselines + coordinate conversion by @nicoburns in https://github.com/servo/servo/pull/47518 * layout: Fold accessibility bounds update into regular tree update. by @alice in https://github.com/servo/servo/pull/47511 * script: Fix borrow hazard in PaintWorkletGlobalScope by @Narfinger in https://github.com/servo/servo/pull/47322 * net: Instead of Duration use ApproxDuration by @Narfinger in https://github.com/servo/servo/pull/47541 * script_bindings: Add docs for make_ascii_lowercase by @Narfinger in https://github.com/servo/servo/pull/47540 * script: Handle WebDriver script execution via a native promise handler by @mrobinson in https://github.com/servo/servo/pull/47542 * script_bindings: Add a fast path to `is_platform_object_same_origin` by @mrobinson in https://github.com/servo/servo/pull/47552 * clippy: Enable `manual_string_new` linter for some components by @TimvdLippe in https://github.com/servo/servo/pull/47533 * constellation: Move `screenshot_readiness_requests` to `ConstellationWebView` by @mrobinson in https://github.com/servo/servo/pull/47476 * deps: Update quick_cache by @Narfinger in https://github.com/servo/servo/pull/47433 * script: Move more files from `script/dom/` by @TimvdLippe in https://github.com/servo/servo/pull/47535 * paint: Delete `largest_contentful_paint_calculator` by @shubhamg13 in https://github.com/servo/servo/pull/47419 * script: Reduce allocation for `Headers` iterator ops by @yezhizhen in https://github.com/servo/servo/pull/47566 * constellation: Move `pending_viewport_changes` to `ConstellationWebView` by @mrobinson in https://github.com/servo/servo/pull/47473 * script: Continue implementation of `WindowProxy` `ProxyTraps` by @mrobinson in https://github.com/servo/servo/pull/47549 * css: Implement `touch-action` (Except for pan-{up,down,left,right} that Stylo does not support) by @yezhizhen in https://github.com/servo/servo/pull/47043 * script: Reland loading state machine for documents by @TimvdLippe in https://github.com/servo/servo/pull/47426 * script: Don’t mark nodes as dirty if they were and remain selected by @SimonSapin in https://github.com/servo/servo/pull/47570 * cargo-deny: Allow yanked crates. by @jschwe in https://github.com/servo/servo/pull/47593 * deps: Bump argon2 to 0.6 by @kkoyung in https://github.com/servo/servo/pull/47598 * config: Disable SpiderMonkey's compacting GC by default. by @mukilan in https://github.com/servo/servo/pull/47596 * Update chacha20 to 0.10.2 by @atouchet in https://github.com/servo/servo/pull/47592 * paint: Remove interior mutability from `PipelineDetails` by @xbwwj in https://github.com/servo/servo/pull/47574 * script: Do not cache the active range during editing by @mrobinson in https://github.com/servo/servo/pull/47581 * script: Supply equivalant `keyCode` values as in Chrome/FF by @eachra-bawn in https://github.com/servo/servo/pull/47461 * script: Use `Selection` and `Range` JavaScript API in editing code by @mrobinson in https://github.com/servo/servo/pull/47604 * script/net: Use Bytes/BytesMut instead of Vec<u8> to avoid copying by @Narfinger in https://github.com/servo/servo/pull/47509 * android: Move handling of `ServoView` suspension to library by @veyndan in https://github.com/servo/servo/pull/47555 * gstreamer: Filter factories by any matching caps. by @jdm in https://github.com/servo/servo/pull/47612 * script: Automatically classify memory usage for webidl interfaces. by @jdm in https://github.com/servo/servo/pull/47531 * script: Run "abort_a_document_and_its_descendants" during navigation by @mrobinson in https://github.com/servo/servo/pull/47576 * serviceworker: start implementing cache interface with in-mem only backend by @gterzian in https://github.com/servo/servo/pull/47220 * script: Avoid manual lowercasing in `XMLHttpRequest::GetResponseHeader` by @yezhizhen in https://github.com/servo/servo/pull/47622 * clippy: Enable linter configuration for most crates by @TimvdLippe in https://github.com/servo/servo/pull/47624 * tidy: Add check that lints are configured in Cargo.toml files by @TimvdLippe in https://github.com/servo/servo/pull/47610 * docs: fix typo implmentation -> implementation by @vaibhav8a in https://github.com/servo/servo/pull/47626 * Update mozjs to include SpiderMonkey to 153_0esr_RELEASE by @sagudev in https://github.com/servo/servo/pull/47489 * clippy: Enable linter configuration for all media and shared crates by @TimvdLippe in https://github.com/servo/servo/pull/47625 * script: Return list of matching fonts from `FontFaceSet.load` by @simonwuelker in https://github.com/servo/servo/pull/47564 * script: Invoke decodeAudioData error callback for detached buffers by @amittenak47 in https://github.com/servo/servo/pull/46870 * android: Inline `enableLogs` as always true by @veyndan in https://github.com/servo/servo/pull/47636 * android: Remove needless tint from drawables by @veyndan in https://github.com/servo/servo/pull/47634 * net: Allow * in Access-Control-Allow-Headers to cover authorization by @yezhizhen in https://github.com/servo/servo/pull/47600 * gstreamer: Use more lenient MIME type parser for canPlayType. by @jdm in https://github.com/servo/servo/pull/47641 * script_bindings: Put unsafe code in `proxyhandler.rs` into `unsafe` blocks by @mrobinson in https://github.com/servo/servo/pull/47627 * android: Move `servo[Args][Log]` to constructor by @veyndan in https://github.com/servo/servo/pull/47644 * media-audio: Implement PeriodicWave interface and handle custom waveforms for OscillatorNode by @kevlu93 in https://github.com/servo/servo/pull/47492 * android: Merge `setExperimentalMode` methods by @veyndan in https://github.com/servo/servo/pull/47652 * script: Introduce unrooted variant of `GPUCanvasConfiguration` by @Gae24 in https://github.com/servo/servo/pull/47650 * android: Deduplicate experimental mode enablement by @veyndan in https://github.com/servo/servo/pull/47654 * android: Inline `updateSettingsIfNecessary` by @veyndan in https://github.com/servo/servo/pull/47656 * fonts: handle more CJK special characters by @RichardTjokroutomo in https://github.com/servo/servo/pull/47664 * script: Add error messages for `webgpu` and `script_webgpu` by @eachra-bawn in https://github.com/servo/servo/pull/47580 * ci: Reduce permissions and exposure in wpt-export workflow by @jschwe in https://github.com/servo/servo/pull/47665 * Update wgpu 30.0.0 -> 30.0.1 by @sagudev in https://github.com/servo/servo/pull/47678 * layout: Add tracing for `Mark Paint Timing` and `Compute New LCP Candidate` by @shubhamg13 in https://github.com/servo/servo/pull/47667 * gstreamer: Prefix-match any generic supported codec against the requested codec. by @jdm in https://github.com/servo/servo/pull/47670 * ci: Minimize try-label permissions to currently required set by @jschwe in https://github.com/servo/servo/pull/47680 * script: Drop `safe` naming from mozjs APIs by @Gae24 in https://github.com/servo/servo/pull/47482 * paint: Add tracing for various `cumulative transform` methods by @shubhamg13 in https://github.com/servo/servo/pull/47669 * layout: Send scroll updates to the accessibility tree. by @alice in https://github.com/servo/servo/pull/47551 * profile_traits: Remove unused IPC bytes channel by @leowatts in https://github.com/servo/servo/pull/47685 * android: Require `experimentalMode` in constructor by @veyndan in https://github.com/servo/servo/pull/47697 * net_traits: Replace IPCSender usage in delete cookie operation by @leowatts in https://github.com/servo/servo/pull/47691 * github: Decrease frequency of dependabot updates by @Narfinger in https://github.com/servo/servo/pull/47609 * base: Reduce allocation for generic channel select by @Narfinger in https://github.com/servo/servo/pull/47689 * script: Don't store rooted inside fontfaceset's `LoadPromiseFulfillmentHandler` by @Gae24 in https://github.com/servo/servo/pull/47698 * devtools: Implement eager evaluation by @freyacodes in https://github.com/servo/servo/pull/47527 * release: Bump version to 0.6.0 by @jschwe in https://github.com/servo/servo/pull/47710 * backport: webgl: Add webgl to default_web_features by @jschwe in https://github.com/servo/servo/pull/47888 * base: Switch to released stylo by @Narfinger in https://github.com/servo/servo/pull/48067 * backport ci: stop installing 'tools' package from android sdk (#48095) and rustls update (#48079) by @Narfinger in https://github.com/servo/servo/pull/48100 * backport: servoshell: Re-enable jemalloc on Android (#48207) by @Narfinger in https://github.com/servo/servo/pull/48245 * Backport SM-153 related fixes to the 0.6 release branch. by @jschwe in https://github.com/servo/servo/pull/48327 * release: Final backport round before release by @jschwe in https://github.com/servo/servo/pull/48353 </details> <h2 id="new-contributors">New Contributors</h2> <ul> <li>@TheZoq2 made their first contribution in <a href="https://github.com/servo/servo/pull/46938" rel="nofollow">https://github.com/servo/servo/pull/46938</a></li> <li>@wood-ghost made their first contribution in <a href="https://github.com/servo/servo/pull/47366" rel="nofollow">https://github.com/servo/servo/pull/47366</a></li> <li>@moamenhesham0 made their first contribution in <a href="https://github.com/servo/servo/pull/47391" rel="nofollow">https://github.com/servo/servo/pull/47391</a></li> <li>@philocalyst made their first contribution in <a href="https://github.com/servo/servo/pull/46996" rel="nofollow">https://github.com/servo/servo/pull/46996</a></li> <li>@Lfan-ke made their first contribution in <a href="https://github.com/servo/servo/pull/47514" rel="nofollow">https://github.com/servo/servo/pull/47514</a></li> <li>@vaibhav8a made their first contribution in <a href="https://github.com/servo/servo/pull/47626" rel="nofollow">https://github.com/servo/servo/pull/47626</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/servo/servo/compare/v0.5.0...v0.6.0" rel="nofollow">https://github.com/servo/servo/compare/v0.5.0...v0.6.0</a></p>
Source: README.md, updated 2026-09-24