Download Latest Version servo-x86_64-linux-gnu.tar.gz (46.5 MB)
Email in envelope

Get an email when there's a new version of Servo

Home / v0.0.5
Name Modified Size InfoDownloads / Week
Parent folder
servo-x86_64-apple-darwin.dmg.sha256 2026-02-28 95 Bytes
servo-x86_64-apple-darwin.dmg 2026-02-28 113.4 MB
servo-aarch64-apple-darwin.dmg.sha256 2026-02-28 96 Bytes
servo-aarch64-apple-darwin.dmg 2026-02-28 110.2 MB
servo-x86_64-windows-msvc.zip.sha256 2026-02-28 95 Bytes
servo-x86_64-windows-msvc.zip 2026-02-28 100.3 MB
servo-x86_64-windows-msvc.exe.sha256 2026-02-28 95 Bytes
servo-x86_64-windows-msvc.exe 2026-02-28 138.9 MB
servo-v0.0.5-src-vendored.tar.gz 2026-02-28 349.2 MB
servo-aarch64-linux-ohos.hap.sha256 2026-02-28 94 Bytes
servo-aarch64-linux-ohos.hap 2026-02-28 96.5 MB
servo-aarch64-linux-ohos.so.sha256 2026-02-28 93 Bytes
servo-aarch64-linux-ohos.so 2026-02-28 115.6 MB
servo-x86_64-linux-gnu.tar.gz.sha256 2026-02-28 95 Bytes
servo-x86_64-linux-gnu.tar.gz 2026-02-28 46.3 MB
servo-aarch64-android.aar.sha256 2026-02-28 91 Bytes
servo-aarch64-android.aar 2026-02-28 54.2 MB
servo-aarch64-android.apk.sha256 2026-02-28 91 Bytes
servo-aarch64-android.apk 2026-02-28 162.8 MB
README.md 2026-02-28 40.7 kB
v0.0.5 source code.tar.gz 2026-02-28 140.2 MB
v0.0.5 source code.zip 2026-02-28 218.6 MB
Totals: 22 Items   1.6 GB 2

v0.0.5

Servo 0.0.5 includes:

  • <link rel=preload> (@TimvdLippe, @jdm, [#40059])
  • <style blocking> and <link blocking> (@TimvdLippe, [#42096])
  • <img align> (@mrobinson, [#42220])
  • <select disabled> (@simonwuelker, [#42036])
  • OGG files can now be played in <audio> (@jdm, [#41789])
  • ‘cursor-color’ (@mrobinson, [#41976])
  • ‘content: <image>’ works on all elements (@andreubotella, [#41480])
  • ‘::details-content’ on <details> (@lukewarlow, [#42107])
  • ‘:open’ on <details> (@lukewarlow, [#42195])
  • ‘:active’ on <input type=button> (@mrobinson, [#42095])
  • Origin API (@WaterWhisperer, [#41712])
  • MouseEvent.detail (@mrobinson, [#41833])
  • Request.keepalive (@TimvdLippe, @WaterWhisperer, [#41457], [#41811])
  • Cyclic imports, import attributes, and JSON modules (@Gae24, [#41779])
  • navigator.sendBeacon() is enabled by default (@TimvdLippe, [#41694])
  • https_proxy, HTTPS_PROXY, and NO_PROXY (@Narfinger, [#41689])
  • ML-KEM, ML-DSA, and AES-OCB in Crypto (@kkoyung, [#41604], [#41617], [#41615], [#41627], [#41628], [#41647], [#41659], [#41676], [#41791], [#41822], [#41813], [#41829])

See our January blog post for a curated overview of the changes in this release.

Trying out the Servo Tech demo

MacOS

The macOS releases are not signed yet, so you will need to follow the troubleshooting guide in order to run the Servo Tech Demo binary on your Mac.

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

Please check out our January blog post to get a curated overview over the recent changes.

Generated Release notes * ohos CI: Add a proper name for scenario test screenshot artifacts by @yezhizhen in https://github.com/servo/servo/pull/41614 * script: Implement generate key operation of ML-KEM by @kkoyung in https://github.com/servo/servo/pull/41615 * script: Implement WebCrypto encapsulation and decapsulation with ML-KEM by @kkoyung in https://github.com/servo/servo/pull/41617 * Refactor allow to expect by @waynevanson in https://github.com/servo/servo/pull/41586 * layout: Stop splitting inline boxes when they contain block-levels by @Loirooriol in https://github.com/servo/servo/pull/41492 * deps: Bump wayland-related together by @yezhizhen in https://github.com/servo/servo/pull/41621 * script: Fix `alg` field of exported ML-KEM key in JWK format by @kkoyung in https://github.com/servo/servo/pull/41627 * script: Implement import key operations of ML-DSA by @kkoyung in https://github.com/servo/servo/pull/41628 * Replace NetworkError::Internal with structured enum variants for calls with literal strings by @uthmaniv in https://github.com/servo/servo/pull/36599 * layout: Fix size of anonymous not marked as depending on block constraints by @Loirooriol in https://github.com/servo/servo/pull/41632 * layout: Handle block-in-inline dependency on block constraints by @Loirooriol in https://github.com/servo/servo/pull/41624 * script: Skip some steps when determining encoding for XML document by @simonwuelker in https://github.com/servo/servo/pull/41637 * script: Implement export key operation of ML-DSA by @kkoyung in https://github.com/servo/servo/pull/41647 * change #[allow]s to #[expect]s by @TimurBora in https://github.com/servo/servo/pull/41635 * Correct path to twin `find_python()` functions in `servo` and `script_bindings` `build.rs` by @leo030303 in https://github.com/servo/servo/pull/41649 * layout: Fix intrinsic contribution of anonymous not marked as depending on block constraints by @Loirooriol in https://github.com/servo/servo/pull/41652 * libservo: Refactor site data integration test to enable reuse by @janvarga in https://github.com/servo/servo/pull/41609 * package: Make Windows installer respect customized path by @yezhizhen in https://github.com/servo/servo/pull/41653 * layout: Fix intrinsic size of block-in-inline not marked as depending on block constraints by @Loirooriol in https://github.com/servo/servo/pull/41655 * Retry EventSource after temporary failures using `is_permanent_failure` by @WaterWhisperer in https://github.com/servo/servo/pull/41651 * script: Implement generate key operation of ML-DSA by @kkoyung in https://github.com/servo/servo/pull/41659 * Implement pending preload responses with futures by @TimvdLippe in https://github.com/servo/servo/pull/40059 * cargo: Move shared tokio dependency to the root by @yezhizhen in https://github.com/servo/servo/pull/41677 * deps: Make bot update `tokio-rs` repository together by @yezhizhen in https://github.com/servo/servo/pull/41679 * libservo: Add initial support for `SiteDataManager::clear_site_data` by @janvarga in https://github.com/servo/servo/pull/41618 * script: Implement sign and verify operations of ML-DSA by @kkoyung in https://github.com/servo/servo/pull/41676 * script: Remove pointless rename. by @jdm in https://github.com/servo/servo/pull/41680 * webdriver: Fix outdated timeouts test and remove redundant check by @yezhizhen in https://github.com/servo/servo/pull/41631 * Fix WebIDL clamp conversion to use round-half-to-even by @Taym95 in https://github.com/servo/servo/pull/41640 * script: Store a `Weak` handle to `ScriptThread` in both `ScriptThread` and `Window` by @Narfinger in https://github.com/servo/servo/pull/40645 * script: Properly handle messaging errors in `components/constellation/constellation.rs` by @j-mendez in https://github.com/servo/servo/pull/41419 * Unit Tests: Disable proxy for local tests by @Narfinger in https://github.com/servo/servo/pull/41688 * Build/Canvas: Vello or Vello CPU feature flags by @Narfinger in https://github.com/servo/servo/pull/41686 * devtools: Implement ActorEncode and clean inspector sub-actors by @eerii in https://github.com/servo/servo/pull/41685 * Expose nested browsing context status in RequestClient by @WaterWhisperer in https://github.com/servo/servo/pull/41661 * Stylo: Fix mismatched_lifetime_syntaxes warnings by @Loirooriol in https://github.com/servo/servo/pull/41690 * ohos CI: pass through results of optional jobs to try-label result by @jschwe in https://github.com/servo/servo/pull/41601 * net: Keep track of size of keep-alive records by @TimvdLippe in https://github.com/servo/servo/pull/41457 * script: Fix fetch-later length and quota computation by @TimvdLippe in https://github.com/servo/servo/pull/41665 * script: Ship `navigator.sendBeacon` by @TimvdLippe in https://github.com/servo/servo/pull/41694 * ohos ci: Attempt to close USB mode popup by @jschwe in https://github.com/servo/servo/pull/41695 * CODEOWNERS: Add jschwe & yezhizhen as CI scenario tests owners by @yezhizhen in https://github.com/servo/servo/pull/41706 * Revert "Build/Canvas: Vello or Vello CPU feature flags (#41686)" by @mrobinson in https://github.com/servo/servo/pull/41698 * script: Add a `Rope` type and use it for `TextInput` by @mrobinson in https://github.com/servo/servo/pull/41650 * net: Support no_proxy and https_proxy by @Narfinger in https://github.com/servo/servo/pull/41689 * net: Remove NetworkError::Internal by @TimvdLippe in https://github.com/servo/servo/pull/41693 * libservo: Stop exporting `ipc-channel` for gamepad responders and use callbacks by @Narfinger in https://github.com/servo/servo/pull/41412 * libservo: Extend `SiteDataManager::clear_site_data` to clear sessionStorage by @janvarga in https://github.com/servo/servo/pull/41709 * script: Init and pass down &mut JSContext in script-related threads by @sagudev in https://github.com/servo/servo/pull/41692 * Upgrade Stylo to 2025-12-01 by @Loirooriol in https://github.com/servo/servo/pull/41696 * Base: Implement GenericReceiverSet by @Narfinger in https://github.com/servo/servo/pull/41071 * 26488 - Moves WebGLRenderingContext cleanup to a dedicated struct by @willypuzzle in https://github.com/servo/servo/pull/41717 * script: Capitalize Content-Type key in formdata. by @jdm in https://github.com/servo/servo/pull/41722 * script: Consolidate global initialization for fetch requests by @TimvdLippe in https://github.com/servo/servo/pull/41663 * fonts: Fix loading local web font by @TimvdLippe in https://github.com/servo/servo/pull/41714 * servoshell: Support tracing-rs events when using hitrace by @janeoa in https://github.com/servo/servo/pull/41708 * devtools: Implement ActorEncode for NetworkEventActor by @eerii in https://github.com/servo/servo/pull/41731 * fonts: Use `GenericChannel` instead of IPC channels by @Narfinger in https://github.com/servo/servo/pull/41733 * webxr: Remove the `ipc` feature by @Narfinger in https://github.com/servo/servo/pull/41736 * mach: linux bootstrap: Remove unused constant by @jschwe in https://github.com/servo/servo/pull/41745 * mach: Break the shackle that restricts cross-compilation from Windows by @yezhizhen in https://github.com/servo/servo/pull/41748 * script: Pass `&mut JSContext` to tasks by @sagudev in https://github.com/servo/servo/pull/41756 * net: Remove CoreResourceManager ThreadPool by @Narfinger in https://github.com/servo/servo/pull/41740 * webdriver: Unify "Element Click" for touch & mouse + Improve PointerMove compliance by @yezhizhen in https://github.com/servo/servo/pull/41726 * mach: Fix link to building section of the book in `python/servo/platform/linux.py` by @jschwe in https://github.com/servo/servo/pull/41772 * script: Implement Origin API by @WaterWhisperer in https://github.com/servo/servo/pull/41712 * servoshell: Remove `HeadedWindow`-specific methods from `PlatformWindow` by @mrobinson in https://github.com/servo/servo/pull/41773 * indexeddb: implement connection queue by @gterzian in https://github.com/servo/servo/pull/41500 * Base: Dependency cleanup by @Narfinger in https://github.com/servo/servo/pull/41777 * Base: Remove unneded cargo deny entries by @Narfinger in https://github.com/servo/servo/pull/41778 * script: Fix same origin restriction for document.domain by @TimvdLippe in https://github.com/servo/servo/pull/41780 * 26488 - Moves CookieStore drop logic to a separate struct by @willypuzzle in https://github.com/servo/servo/pull/41783 * script: Use `&mut JSContext` in `html_constructor` by @sagudev in https://github.com/servo/servo/pull/41782 * script: Implement all user agent widgets for form controls with shadow DOM by @mrobinson in https://github.com/servo/servo/pull/41760 * devtools: Remove ActorRegistry shareable and start_stamp by @eerii in https://github.com/servo/servo/pull/41767 * Update fetch-later quota expectations by @TimvdLippe in https://github.com/servo/servo/pull/41776 * fonts: Create resource timing entries when loading web fonts (#41660) by @lumi-me-not in https://github.com/servo/servo/pull/41784 * WebXR: Cleanup of WebXrReceiver/Sender/Channel to Ipc. by @Narfinger in https://github.com/servo/servo/pull/41771 * deps: Update media crates to enable ogg playback. by @jdm in https://github.com/servo/servo/pull/41789 * script: Implement import key operation of AES-OCB by @kkoyung in https://github.com/servo/servo/pull/41791 * layout: Offset scrollable overflow hit test item by containing block by @stevennovaryo in https://github.com/servo/servo/pull/41707 * Script: Convert routed_promise to GenericCallback by @Narfinger in https://github.com/servo/servo/pull/41380 * devtools: Implement Default for ActorRegistry by @eerii in https://github.com/servo/servo/pull/41795 * ohos: Fix build with tracing feature by @yezhizhen in https://github.com/servo/servo/pull/41803 * script: More &mut JSContext in codegen by @sagudev in https://github.com/servo/servo/pull/41808 * devtools: Fix panic when getting AutoMargins of node without style by @eerii in https://github.com/servo/servo/pull/41800 * devtools: Compute Actor base name per type by @eerii in https://github.com/servo/servo/pull/41769 * constellation: Change most of the channels to be GenericChannels by @Narfinger in https://github.com/servo/servo/pull/41806 * layout: Consider margin of preceding block when placing abspos inside inline by @Loirooriol in https://github.com/servo/servo/pull/41683 * script: Set keepalive flag in Request's constructor by @WaterWhisperer in https://github.com/servo/servo/pull/41811 * script: Implement export key operation of AES-OCB by @kkoyung in https://github.com/servo/servo/pull/41813 * Replace allow(crown::unrooted_must_root) with expect(crown::unrooted_must_root) by @WaterWhisperer in https://github.com/servo/servo/pull/41815 * script: Implement generate key operation of AES-OCB by @kkoyung in https://github.com/servo/servo/pull/41822 * Lint: Fix some wrong compile-time expectations for OHOS by @yezhizhen in https://github.com/servo/servo/pull/41821 * webdriver: Allow Promise for synchronous script execution by @yezhizhen in https://github.com/servo/servo/pull/41823 * Rename pauseCompositor/resumeCompositor in JNIServo by @NiklasMerz in https://github.com/servo/servo/pull/41827 * script: Implement encrypt and decrypt operations of AES-OCB by @kkoyung in https://github.com/servo/servo/pull/41829 * webdriver: Consolidates synchronous and asynchrounous script execution by @yezhizhen in https://github.com/servo/servo/pull/41830 * ci: Use checkout SHA for WPT GitHub check by @sagudev in https://github.com/servo/servo/pull/41831 * net: Change mixed content check to use request's current url by @WaterWhisperer in https://github.com/servo/servo/pull/41832 * net: Align redirect HTTP Fetch with spec comments by @TimvdLippe in https://github.com/servo/servo/pull/41798 * net: Implement redirect taint for requests by @TimvdLippe in https://github.com/servo/servo/pull/41824 * lint: Update deny.toml by @yezhizhen in https://github.com/servo/servo/pull/41846 * devtools: Improve serialization and remove mutability from NetworkEventActor by @eerii in https://github.com/servo/servo/pull/41741 * script: Include click count as the `detail` of `mouseup` and `mousedown` events by @mrobinson in https://github.com/servo/servo/pull/41833 * CI: Make HarmonyOS build job mandatory by @jschwe in https://github.com/servo/servo/pull/41810 * mach: Upgrade `cargo-deny` and report unknown errors in `test-tidy` by @mukilan in https://github.com/servo/servo/pull/41853 * bluetooth: Use GenericChannel by @Narfinger in https://github.com/servo/servo/pull/41809 * mach: Remove limits on the number of Rayon threads by @mrobinson in https://github.com/servo/servo/pull/41854 * layout: Remove outer `Option` on `BoxSlot` by @mrobinson in https://github.com/servo/servo/pull/41858 * script/dom: Remove unused creator-related methods from WindowProxy. by @TimurBora in https://github.com/servo/servo/pull/41860 * Remove the `vello_cpu` compilation option and enable it by default by @mrobinson in https://github.com/servo/servo/pull/41820 * mach: Parse URL arguments to `update-wpt` from `sys.argv` by @mrobinson in https://github.com/servo/servo/pull/41851 * script: Move AES-CTR to individual submodule by @kkoyung in https://github.com/servo/servo/pull/41856 * ci: Skip installing cargo-deny on self-hosted runners. by @mukilan in https://github.com/servo/servo/pull/41866 * cargo/bot: Update zbus and zbus-lockstep together by @yezhizhen in https://github.com/servo/servo/pull/41875 * script: Implement "Location-navigate a location" by @TimvdLippe in https://github.com/servo/servo/pull/41805 * devtools: Remove find_mut and make all actors immutable by @eerii in https://github.com/servo/servo/pull/41744 * layout: Store `FontMetrics` in an `Arc` by @mrobinson in https://github.com/servo/servo/pull/41876 * libservo: Extend `SiteDataManager::clear_site_data` to clear localStorage by @janvarga in https://github.com/servo/servo/pull/41852 * webxr: Switch most of the uses of `ipc-channel` to `GenericChannel` by @Narfinger in https://github.com/servo/servo/pull/41774 * script: add &mut JSContext to codegened `toJSON` by @sagudev in https://github.com/servo/servo/pull/41878 * Remove Servo's custom `Range` implementation by @mrobinson in https://github.com/servo/servo/pull/41880 * layout: Don't wrap `InlineItem` with `ArcRefCell` in `LayoutBox` by @Loirooriol in https://github.com/servo/servo/pull/41877 * script: &mut JSContext in `cross_origin_own_property_keys` and `append_cross_origin_allowlisted_prop_keys` by @sagudev in https://github.com/servo/servo/pull/41879 * devtools: Consolidate register/register_later by @eerii in https://github.com/servo/servo/pull/41796 * layout: Let floats know that margins can collapse thru phantom lines by @Loirooriol in https://github.com/servo/servo/pull/41812 * webdriver: Dispatch embedder `TouchEventType::Move` by @yezhizhen in https://github.com/servo/servo/pull/41801 * net: Set a timeout for connecting by @Narfinger in https://github.com/servo/servo/pull/41710 * bhm: improve shutdown sequence by @webbeef in https://github.com/servo/servo/pull/41862 * CI: use git log to obtain latest commit SHA by @sagudev in https://github.com/servo/servo/pull/41903 * script: Move AES-CBC to individual submodule by @kkoyung in https://github.com/servo/servo/pull/41883 * mach: mark the doc.servo.org site as `.nojekyll` by @delan in https://github.com/servo/servo/pull/41904 * devtools: Hide `extension-backgroundscript-status` warning by @eerii in https://github.com/servo/servo/pull/41886 * script: Move AES-GCM to individual submodule by @kkoyung in https://github.com/servo/servo/pull/41908 * script: Some failed requests should record resource timing entries by @bellau in https://github.com/servo/servo/pull/41804 * script: Add error messages in `ed25519_operation.rs` by @danilopedraza in https://github.com/servo/servo/pull/41902 * script: Add support for setting the edit point with the mouse in `<input>` and `<textarea>` by @mrobinson in https://github.com/servo/servo/pull/41906 * layout: Track parentage in the box tree by @Loirooriol in https://github.com/servo/servo/pull/41884 * servoshell: ohos / android: Decouple initialization and window creation by @jschwe in https://github.com/servo/servo/pull/41532 * CI: Refactor nightly release process by @jschwe in https://github.com/servo/servo/pull/41882 * script: Move adapter dropping to a dedicated struct by @willypuzzle in https://github.com/servo/servo/pull/41911 * layout: Add support for clicking past the end of multiline inputs by @mrobinson in https://github.com/servo/servo/pull/41909 * Upgrade Stylo to 2026-01-01 by @Loirooriol in https://github.com/servo/servo/pull/41916 * devtools: Register workers in workers list, not tabs by @atbrakhi in https://github.com/servo/servo/pull/41929 * Move upload_nightly to a dedicated script by @jschwe in https://github.com/servo/servo/pull/41922 * devtools: Correctly cache console messages by @eerii in https://github.com/servo/servo/pull/41895 * devtools: Restrict visibility of actors in devtools by @SeiRann in https://github.com/servo/servo/pull/41935 * script: Extend AES-GCM in WebCrypto to support more tag lengths by @kkoyung in https://github.com/servo/servo/pull/41950 * script: Move AES-KW to individual submodule by @kkoyung in https://github.com/servo/servo/pull/41949 * script: Implement navigate to fragment algorithm by @TimvdLippe in https://github.com/servo/servo/pull/41834 * Use published CSP crate by @TimvdLippe in https://github.com/servo/servo/pull/41952 * devtools: Handle the `setBreakpoint` message. by @eerii in https://github.com/servo/servo/pull/41925 * webdriver: Rename `source_id` to `input_id` for Actions by @yezhizhen in https://github.com/servo/servo/pull/41948 * script: use `&mut CurrentRealm` in `cross_origin_has_own` by @sagudev in https://github.com/servo/servo/pull/41955 * Plumb accessibility tree updates from layout to embedder by @delan in https://github.com/servo/servo/pull/41924 * net: Transform filemanager to async code by @Narfinger in https://github.com/servo/servo/pull/41857 * script: Do not allow pasting newlines in single line text boxes by @mrobinson in https://github.com/servo/servo/pull/41934 * indexeddb: fix crash in worker abort by @gterzian in https://github.com/servo/servo/pull/41960 * layout: Ensure that anonymous flex items are properly stored in a `BoxSlot` by @mrobinson in https://github.com/servo/servo/pull/41951 * script: Add selection behavior for double and triple click in text fields by @mrobinson in https://github.com/servo/servo/pull/41926 * layout: Fix interaction of `overflow-clip-margin` and `border-radius` by @Loirooriol in https://github.com/servo/servo/pull/41967 * webdriver: Implement pointerCancel for touch chain by @yezhizhen in https://github.com/servo/servo/pull/41937 * script: Add error messages for the ECDH cryptographic functions by @PaulTreitel in https://github.com/servo/servo/pull/41468 * script: Use document origin instead of URL when manipulating blobs. by @jdm in https://github.com/servo/servo/pull/41966 * script: Check node document instead of current global when getting iframe's content document. by @jdm in https://github.com/servo/servo/pull/41970 * script: Reset form controls immediately after parsing them by @mrobinson in https://github.com/servo/servo/pull/41962 * script: Do not adjust the edit point in text fields when non-primary buttons are pressed by @mrobinson in https://github.com/servo/servo/pull/41974 * script: Simplify `TextInput::new` by @mrobinson in https://github.com/servo/servo/pull/41975 * [26488] - Refactors GPUBindGroup drop implementation by @willypuzzle in https://github.com/servo/servo/pull/41977 * script: Ignore empty composition events in text inputs by @mrobinson in https://github.com/servo/servo/pull/41979 * script: Check same-origin-domain when evaluating javscript: URLs. by @jdm in https://github.com/servo/servo/pull/41969 * layout: Properly account for transforms when finding glyph index by @mrobinson in https://github.com/servo/servo/pull/41931 * script: Add error messages for cSHAKE and HKDF by @danilopedraza in https://github.com/servo/servo/pull/41964 * script: Update mozjs to include with more safe wrappers and debugmozjs artifacts by @sagudev in https://github.com/servo/servo/pull/41971 * devtools: Fix devtools source content being empty for small documents by @atbrakhi in https://github.com/servo/servo/pull/41983 * layout: Remove an unnecessary borrow in stacking context tree construction by @mrobinson in https://github.com/servo/servo/pull/41982 * [26488] - Moves drop logic to inner struct for GPUBindGroupLayout by @willypuzzle in https://github.com/servo/servo/pull/41984 * script: Implement link fetch resource steps for stylesheet by @TimvdLippe in https://github.com/servo/servo/pull/41987 * chore: suppress warnings when building without the testbinding feature by @webbeef in https://github.com/servo/servo/pull/42003 * ci: Run WPT jobs on self-hosted runners by @delan in https://github.com/servo/servo/pull/41062 * layout: Accept lengths in arbitrary units for SVG width and height by @rodio in https://github.com/servo/servo/pull/40761 * layout: Simplify `process_soft_wrap_opportunity()` by @Loirooriol in https://github.com/servo/servo/pull/42008 * script: Consider a selection collapsed when the edit point equals the selection origin by @mrobinson in https://github.com/servo/servo/pull/41978 * devtools: Fix failures in `mach test-devtools` by @eerii in https://github.com/servo/servo/pull/42006 * fonts: Store `ByteIndex` as a `usize` by @mrobinson in https://github.com/servo/servo/pull/42012 * devtools: Handle pause in the debugger by @eerii in https://github.com/servo/servo/pull/42007 * script: Set `MouseEvent` properties according to the UI Events specification by @mrobinson in https://github.com/servo/servo/pull/42013 * layout: Reduce visibility in `components/layout/flow/inline/mod.rs` by @Loirooriol in https://github.com/servo/servo/pull/42015 * CI: update OHOS hitrace-bench version by @Narfinger in https://github.com/servo/servo/pull/42028 * base: Set github revisions in Cargo.toml by @Narfinger in https://github.com/servo/servo/pull/42029 * indexeddb: track open requests by id by @gterzian in https://github.com/servo/servo/pull/41933 * layout: Create box slots for anonymous modern layout boxes serially by @mrobinson in https://github.com/servo/servo/pull/42026 * net: Fix unit test unused warnings by @Narfinger in https://github.com/servo/servo/pull/42031 * fetch: Preserve AbortError on repeated body consumption for errored stream by @Taym95 in https://github.com/servo/servo/pull/42016 * script: Fix timing of update-a-style-block by @TimvdLippe in https://github.com/servo/servo/pull/41986 * script: Ignore platform mouse move events that do not change the cursor location by @mrobinson in https://github.com/servo/servo/pull/42034 * script: Implement full logic for script-blocking stylesheets by @TimvdLippe in https://github.com/servo/servo/pull/41988 * CI: force GitHub hosted runners if wpt-args is not empty by @sagudev in https://github.com/servo/servo/pull/42035 * WebGPU: Use GenericChannel by @Narfinger in https://github.com/servo/servo/pull/42032 * webdriver: Reset prefs to the values present at server start. by @jdm in https://github.com/servo/servo/pull/42044 * layout: Handle selection during display list construction by @mrobinson in https://github.com/servo/servo/pull/41963 * layout: Add support for `caret-color` by @mrobinson in https://github.com/servo/servo/pull/41976 * layout: Fix WebRender hit test item's offset by @stevennovaryo in https://github.com/servo/servo/pull/42005 * script: Move `RGBA8` constant from WebGL2RenderingContext to WebGLRenderingContext by @simonwuelker in https://github.com/servo/servo/pull/42048 * net: Convert blocking embedder communication to async by @jdm in https://github.com/servo/servo/pull/41965 * ci: Run mach bootstrap with --yes by @delan in https://github.com/servo/servo/pull/42058 * script: Fix unfulfilled lint expectation in htmlstyleelement.rs by @CanadaHonk in https://github.com/servo/servo/pull/42059 * layout: Support style inheritance for `display: contents` and `<slot>` elements by @longvatrong111 in https://github.com/servo/servo/pull/41855 * script: Replace uses of `RootedVec<JSVal>` with `Rooted<Vec<JSVal>>`. by @jdm in https://github.com/servo/servo/pull/41921 * script: Include font-variation-settings on `parse_font_face_descriptors` by @muse254 in https://github.com/servo/servo/pull/41968 * Further release workflow improvements by @jschwe in https://github.com/servo/servo/pull/41932 * mach: Use `uv` to manage the virtual environment by @jschwe in https://github.com/servo/servo/pull/41861 * script: Fix unneeded .to_owned() by @CanadaHonk in https://github.com/servo/servo/pull/42057 * script: Allow selecting text in input fields with the mouse by @mrobinson in https://github.com/servo/servo/pull/42049 * script: revamp module script loading to follow current spec by @Gae24 in https://github.com/servo/servo/pull/41779 * Use fontsan release from crates.io by @jschwe in https://github.com/servo/servo/pull/42072 * Implement html5ever hooks for customizable `<select>` elements by @simonwuelker in https://github.com/servo/servo/pull/42036 * servoshell: Surrender focus when clicking on the WebView on desktop by @mrobinson in https://github.com/servo/servo/pull/42080 * script: remove more unused code by @Gae24 in https://github.com/servo/servo/pull/42081 * script: Do not assume that every textual `<input>` is a focusable area by @mrobinson in https://github.com/servo/servo/pull/42078 * script: Prevent activation of disabled select elements by @simonwuelker in https://github.com/servo/servo/pull/42079 * script: Don't let LossyDecoder handle the BOM by @simonwuelker in https://github.com/servo/servo/pull/41732 * script: Allow `<input type=button>` to be activatable by @mrobinson in https://github.com/servo/servo/pull/42095 * webgpu: Fix borrow hazards in GPUBuffer by @WaterWhisperer in https://github.com/servo/servo/pull/42050 * net: Cleanup some visibility and unused async by @Narfinger in https://github.com/servo/servo/pull/42102 * Indexeddb: move opening of connection message handling to factory by @gterzian in https://github.com/servo/servo/pull/42053 * tidy: Improve `check_shell` substitution lint by @jschwe in https://github.com/servo/servo/pull/42099 * layout: Add unit types to most layout queries by @mrobinson in https://github.com/servo/servo/pull/42002 * net: Devtools Channel does not need mutability. by @Narfinger in https://github.com/servo/servo/pull/42114 * script: Use OnceCell instead of RefCell for some module fields. by @jdm in https://github.com/servo/servo/pull/42119 * Add devcontainer configuration by @jschwe in https://github.com/servo/servo/pull/40500 * Rename `compositing` and `compositing_traits` to `paint` and `paint_api` by @mrobinson in https://github.com/servo/servo/pull/42066 * script: Expose `toJSON` on `LargestContentfulPaint` by @shubhamg13 in https://github.com/servo/servo/pull/42004 * script: Fix handling of invalid fetch responses for link stylesheets by @TimvdLippe in https://github.com/servo/servo/pull/42037 * script: Port indexddb to `&mut JSContext` by @sagudev in https://github.com/servo/servo/pull/42123 * script: Pass `&CStr` insted of `&str` in `{set,get}_dictionary_property` by @sagudev in https://github.com/servo/servo/pull/42125 * Don't persist session storage changes by @arihant2math in https://github.com/servo/servo/pull/41326 * script: Fix EventSourceContext using too-fresh last_event_id when reconnecting by @WaterWhisperer in https://github.com/servo/servo/pull/42103 * net: Move listing of directories to async code by @Narfinger in https://github.com/servo/servo/pull/42108 * script: Take &CStr instead of &str in get_property_jsval by @simonwuelker in https://github.com/servo/servo/pull/42132 * script: Modify ModuleObject::handle() to return a handle with a lifetime by @krzyz in https://github.com/servo/servo/pull/42071 * build.rs: try harder to find a suitable python by @jschwe in https://github.com/servo/servo/pull/42131 * script: move stream-related files into `script/dom/stream` by @hyuraku in https://github.com/servo/servo/pull/42010 * Expand set of permanent network failures to include all fetch preconditions by @WaterWhisperer in https://github.com/servo/servo/pull/42137 * webdriver: Test interactability for Element Clear by @yezhizhen in https://github.com/servo/servo/pull/42124 * script: Drop `ModuleTree` `network_error` and simplify pending fetches logic by @Gae24 in https://github.com/servo/servo/pull/42127 * script: Evict stale SVGs from image cache by @TomRCummings in https://github.com/servo/servo/pull/41675 * script: Support blocking attribute for style and link elements by @TimvdLippe in https://github.com/servo/servo/pull/42096 * mach: Move package list to a text based format by @jschwe in https://github.com/servo/servo/pull/41775 * ci: Disable self-hosted WPT runs by @mrobinson in https://github.com/servo/servo/pull/42155 * script: Update documentation and minor conformance improvement for `Fullscreen` API by @stevennovaryo in https://github.com/servo/servo/pull/42068 * profile: Implement MallocSizeOf for GenericCallback by @Narfinger in https://github.com/servo/servo/pull/42152 * net/fetch: Improve HTTP fetch error handling for gzip content decompressions by @arayaryoma in https://github.com/servo/servo/pull/39438 * script: Remove `AsVoidPtr` and `AsCCharPtrPtr` traits by @sagudev in https://github.com/servo/servo/pull/42153 * script: Handle when debugger global is active in `DedicatedWorkerGlobalScope` interrupt by @mrobinson in https://github.com/servo/servo/pull/42159 * fonts: Store shaping output per-character rather than per-code point by @mrobinson in https://github.com/servo/servo/pull/42105 * webgl: Move from IpcChannel to GenericChannel by @Narfinger in https://github.com/servo/servo/pull/42033 * Update `servo.exe.manifest` for servoshell by @arihant2math in https://github.com/servo/servo/pull/42167 * layout: Do not enable `letter-spacing` for cursive scripts by @mrobinson in https://github.com/servo/servo/pull/42165 * fonts: Ensure detailed glyphs are also added to the glyph buffer by @mrobinson in https://github.com/servo/servo/pull/42162 * net: Remove exterior mutability from FileManager by @Narfinger in https://github.com/servo/servo/pull/42111 * script: Fix render blocking stylesheet load fire ordering by @TimvdLippe in https://github.com/servo/servo/pull/41973 * layout: Improve and make consistent the look of various form controls by @mrobinson in https://github.com/servo/servo/pull/42085 * devtools: Handle messages in object actor by @eerii in https://github.com/servo/servo/pull/42186 * devtools: implement `clearBreakpoint` by @atbrakhi in https://github.com/servo/servo/pull/42154 * script: Fix cycle in TransmitBodyConnectHandler by @Narfinger in https://github.com/servo/servo/pull/42183 * script: Add about_base_url by @TimvdLippe in https://github.com/servo/servo/pull/42104 * webgl: Get rid of a silly `expect(unused)` by @simonwuelker in https://github.com/servo/servo/pull/42193 * deny: Ignore `GHSA-hcp2-x6j4-29j7` to unblock CI. by @yezhizhen in https://github.com/servo/servo/pull/42203 * devcontainer: Use our own dockerfile by @jschwe in https://github.com/servo/servo/pull/42166 * script: Use global's origin in Request constructor. by @jdm in https://github.com/servo/servo/pull/42207 * script: Do not track outdated oustanding loads for stylesheets. by @jdm in https://github.com/servo/servo/pull/42208 * layout: Suppress soft wrap opportunities between NU/AL/AI/ID characters to respect `word-break: keep-all` by @RichardTjokroutomo in https://github.com/servo/servo/pull/42088 * CI/mach: Run wpt tests, smoketest and devtools tests in multiprocess mode by @Narfinger in https://github.com/servo/servo/pull/41684 * script: Notify `PinchZoom` resizes to `ScriptThread`'s `VisualViewport` by @stevennovaryo in https://github.com/servo/servo/pull/41754 * ci: bump upload-artifact to v6 by @Olexandr88 in https://github.com/servo/servo/pull/42212 * deps: Switch to the `webrender@0.68` from crates.io by @mrobinson in https://github.com/servo/servo/pull/42213 * mach: Do not track the `uv.lock` file by @mrobinson in https://github.com/servo/servo/pull/42214 * painter: Insert a cache for animation with smarter updates by @Narfinger in https://github.com/servo/servo/pull/41956 * Update details to support `::details-content` pseudo element. by @lukewarlow in https://github.com/servo/servo/pull/42107 * Increase stylo stack size in asan and debug builds by @jschwe in https://github.com/servo/servo/pull/42115 * devtools: Remove unsupported serde annotations from `shared/devtools.rs` by @eerii in https://github.com/servo/servo/pull/42219 * layout: Ensure legacy alignment-related presentational hints match specification by @mrobinson in https://github.com/servo/servo/pull/42220 * wpt: Unskip `css-properties-values-api` tests by @yezhizhen in https://github.com/servo/servo/pull/42222 * layout: Properly propagate baselines of flex items that do not participate in baseline alignment by @lukewarlow in https://github.com/servo/servo/pull/42038 * layout: Support `content: <image>` on non-pseudo-elements by @andreubotella in https://github.com/servo/servo/pull/41480 * script: Enable module scripts import attributes by @Gae24 in https://github.com/servo/servo/pull/42185 * script: Ensure UA shadow DOM is initialized on `<textarea>` bind to tree by @stevennovaryo in https://github.com/servo/servo/pull/42233 * layout: Do not send display lists over a `ipc::bytes_channel()` by @Narfinger in https://github.com/servo/servo/pull/41178 * devcontainer: Use copy instead of mount for package list by @Narfinger in https://github.com/servo/servo/pull/42223 * base: When normalizing `RopeIndex` ensure it does not intersect a character by @mrobinson in https://github.com/servo/servo/pull/42240 * script: Clear layout data on shadow root during `attachShadow` by @mrobinson in https://github.com/servo/servo/pull/42237 * mach (Android): Use `CC` instead of forcing `CMake` to build `aws-lc-sys` by @yezhizhen in https://github.com/servo/servo/pull/42232 * script: Add support for `:open` pseudo-class by @lukewarlow in https://github.com/servo/servo/pull/42195 * [26488] Refactors GPUCanvasContext to manage context dropping. by @willypuzzle in https://github.com/servo/servo/pull/42243 * wpt: Use Webdriver for all WPT runs by @TimvdLippe in https://github.com/servo/servo/pull/41511 * wpt: Add a test ensuring non-autoplay audio stays paused after a back navigation by @Taym95 in https://github.com/servo/servo/pull/42109 * script: Ensure web fonts in shadow root stylesheets are downloaded by @minghuaw in https://github.com/servo/servo/pull/42151 * ci: Add 30 mins timeout to bootstrap of bencher, android, ohos, linux UT & WPT by @yezhizhen in https://github.com/servo/servo/pull/42249 * script/storage: Switch remaining instances of bincode to postcard by @Narfinger in https://github.com/servo/servo/pull/42236 * webdriver: Wait indefinitely with `None` timeout by @yezhizhen in https://github.com/servo/servo/pull/42184 * script: Change some HashSets to FxHashSet by @Narfinger in https://github.com/servo/servo/pull/42257 * script: Add basic memory pressure reporting to SpiderMonkey by @sagudev in https://github.com/servo/servo/pull/42180 * constellation: Gracefully handle non-existent `WebView`s in history changes by @mrobinson in https://github.com/servo/servo/pull/42238 * script: support JSON modules by @Gae24 in https://github.com/servo/servo/pull/42138 * dom: reduce traversal in CompareDocumentPosition by @webbeef in https://github.com/servo/servo/pull/42260 * script: Fix timing of frozen base URL by @TimvdLippe in https://github.com/servo/servo/pull/42255 * script: Do not consider a node an ancestor of itself in `Node::is_ancestor_of` by @mrobinson in https://github.com/servo/servo/pull/42263 * css: Enable registered custom properties with CSSOM but stay unanimatable by @yezhizhen in https://github.com/servo/servo/pull/42136 * layout: Simplify logic for border specificity by @Loirooriol in https://github.com/servo/servo/pull/42264 * Merge `DomObject` proc-macro into `#[dom_struct]` by @sagudev in https://github.com/servo/servo/pull/42262 * layout: Add support for `-webkit-text-security` by @mrobinson in https://github.com/servo/servo/pull/42181

New Contributors

Full Changelog: https://github.com/servo/servo/compare/v0.0.4...v0.0.5

Source: README.md, updated 2026-02-28