Download Latest Version servo-x86_64-windows-msvc.exe (115.0 MB)
Home / v0.8.0
Name Modified Size InfoDownloads / Week
Parent folder
servo-aarch64-apple-darwin.dmg 2026-11-09 114.3 MB
servo-aarch64-apple-darwin.dmg.sha256 2026-11-09 97 Bytes
servo-x86_64-apple-darwin.dmg 2026-11-09 117.9 MB
servo-x86_64-apple-darwin.dmg.sha256 2026-11-09 96 Bytes
servo-aarch64-linux-ohos.hap.sha256 2026-11-06 94 Bytes
servo-x86_64-windows-msvc.zip.sha256 2026-11-06 95 Bytes
servo-aarch64-linux-ohos.hap 2026-11-06 93.0 MB
servo-aarch64-android.aar.sha256 2026-11-06 91 Bytes
servo-aarch64-linux-ohos.so.sha256 2026-11-06 93 Bytes
servo-x86_64-windows-msvc.zip 2026-11-06 103.5 MB
servo-aarch64-android.aar 2026-11-06 40.2 MB
servo-x86_64-windows-msvc.exe.sha256 2026-11-06 95 Bytes
servo-aarch64-android.apk.sha256 2026-11-06 91 Bytes
servo-aarch64-linux-ohos.so 2026-11-06 121.7 MB
servo-x86_64-linux-gnu.tar.gz.sha256 2026-11-06 95 Bytes
servo-aarch64-linux-gnu.tar.gz.sha256 2026-11-06 96 Bytes
servo-x86_64-linux-gnu.tar.gz 2026-11-06 49.4 MB
servo-x86_64-windows-msvc.exe 2026-11-06 115.0 MB
servo-aarch64-linux-gnu.tar.gz 2026-11-06 48.5 MB
servo-aarch64-android.apk 2026-11-06 124.9 MB
servo-v0.8.0-src-vendored.tar.gz 2026-11-06 378.1 MB
README.md 2026-11-05 64.6 kB
v0.8.0 source code.tar.gz 2026-11-05 172.0 MB
v0.8.0 source code.zip 2026-11-05 302.5 MB
Totals: 24 Items   1.8 GB 1

Servo v0.8.0 is ready, containing all the changes from October.

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 October 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 * android: Remove `SurfaceHolderCallback` dependence on `ServoView` by @veyndan in https://github.com/servo/servo/pull/48544 * android: Replace deprecated `onActivityResult` with Activity Result API by @veyndan in https://github.com/servo/servo/pull/48518 * script: fix the borrow hazard panics in KeyframeEffect::GetKeyframes by @MohamedAli00949 in https://github.com/servo/servo/pull/48546 * Enable container timing in WPT by @jasonwilliams in https://github.com/servo/servo/pull/48290 * script: Reduce alloc when checking if element is nonceable by @yezhizhen in https://github.com/servo/servo/pull/48549 * script: Move `handle_mousedown_event` from `VirtualMethods` to `EditingContext` by @SimonSapin in https://github.com/servo/servo/pull/48497 * script_bindings: Enforce no_gc for lifetime of byte array in DOMString calls by @Narfinger in https://github.com/servo/servo/pull/48251 * script: Rename traverse_preorder_non_rooting to traverse_preorder_unrooted by @Narfinger in https://github.com/servo/servo/pull/48555 * layout: Simplify implementation of `box-decoration-break: clone` by @mrobinson in https://github.com/servo/servo/pull/48559 * script: Preallocate timer array by @Narfinger in https://github.com/servo/servo/pull/48558 * webgl: Validate internalformat in getInternalformatParameter by @mxmgorin in https://github.com/servo/servo/pull/48560 * script: Ensure unminified script source outlives JS compilation. by @jdm in https://github.com/servo/servo/pull/48567 * Avoid cloning namespace prefixes during namespace lookup by @Taym95 in https://github.com/servo/servo/pull/48568 * Fix/devtools object prototype by @sahilnyk in https://github.com/servo/servo/pull/48208 * base: Switch from Box::leak to Box::into_raw by @Narfinger in https://github.com/servo/servo/pull/48563 * encoding: switch to explicit dom string replacement in text encoder by @gterzian in https://github.com/servo/servo/pull/48183 * layout: Alter ratio_from_view_box to allow fractional values by @leowatts in https://github.com/servo/servo/pull/48556 * android: Move URI loading to `ServoNavigator` by @veyndan in https://github.com/servo/servo/pull/48573 * android: Move `FrameCallback` where needed by @veyndan in https://github.com/servo/servo/pull/48574 * script: Introduce helper trait for creating UA Shadow roots by @TimvdLippe in https://github.com/servo/servo/pull/48572 * wpt: Enable web animations for `touch-events` by @yezhizhen in https://github.com/servo/servo/pull/48557 * webdriver: Remove redundant invalidation check by @yezhizhen in https://github.com/servo/servo/pull/48566 * svg: add the data model by @mu-mostafa98 in https://github.com/servo/servo/pull/48467 * media-audio: Implement DelayNode interface (no cycle handling) by @kevlu93 in https://github.com/servo/servo/pull/47957 * webgl: Fix clippy warning by @shubhamg13 in https://github.com/servo/servo/pull/47853 * webgl: Initialize framebuffers before blitFramebuffer by @mxmgorin in https://github.com/servo/servo/pull/48571 * constellation: Move `BrowsingContextGroup` to `ConstellationWebView` by @mrobinson in https://github.com/servo/servo/pull/48017 * script_bindings: Ensure that raw JS types are not wrapped in a `RootedTraceableBox` inside WebIDL dictionaries by @Gae24 in https://github.com/servo/servo/pull/48147 * script: Update `connected_to_document` state when disconnecting `IntersectionObserver` by @shubhamg13 in https://github.com/servo/servo/pull/48581 * mach: Support running unit-tests on ohos by @jschwe in https://github.com/servo/servo/pull/47988 * layout: Rewind inline box starts at soft wrap line breaks by @mrobinson in https://github.com/servo/servo/pull/48564 * script: Clean up `JSContext` usages for htmlelements by @Gae24 in https://github.com/servo/servo/pull/48593 * android: Use property delegation for Compose states by @veyndan in https://github.com/servo/servo/pull/48595 * macro: Reduce alloc in `make_enumerated_getter` by @yezhizhen in https://github.com/servo/servo/pull/48598 * android: Remove unused code by @veyndan in https://github.com/servo/servo/pull/48596 * webdriver: Invalidate duration of null/key/pointer/wheel action by @yezhizhen in https://github.com/servo/servo/pull/48585 * script: Implement beforeinput by @dzfrias in https://github.com/servo/servo/pull/48519 * script: Implement UAShadowRoot for input types by @TimvdLippe in https://github.com/servo/servo/pull/48586 * script: Ensure pending timer callbacks are always reachable from GC roots. by @jdm in https://github.com/servo/servo/pull/48548 * script_bindings: Remove `PromiseJobCallback` by @Gae24 in https://github.com/servo/servo/pull/48600 * android: Move resume lifecycle callback to Compose by @veyndan in https://github.com/servo/servo/pull/48601 * android: Move frame updates to Compose by @veyndan in https://github.com/servo/servo/pull/48592 * script: Do not consider `width` a relevant `` mutation by @mrobinson in https://github.com/servo/servo/pull/48599 * wpt: Bounce CSP errors to opener immediately in `navigation-support.js` by @mrobinson in https://github.com/servo/servo/pull/48602 * script: Add support for <input type="image"> by @SilvioPilato in https://github.com/servo/servo/pull/48265 * script: Reduce alloc in "fetch and process the linked resource" by @yezhizhen in https://github.com/servo/servo/pull/48615 * android: Move stop navigation to `ServoNavigator` by @veyndan in https://github.com/servo/servo/pull/48608 * script: Implement dimension attributes for `<marquee>` by @TimvdLippe in https://github.com/servo/servo/pull/48604 * layout: Layout flex items once when their cross size is known upfront by @webbeef in https://github.com/servo/servo/pull/48485 * stylo: Enable `layout.css.progress-function.enabled` by default by @Loirooriol in https://github.com/servo/servo/pull/48474 * script: Move more call from reflect_dom_object_with_cx by @Narfinger in https://github.com/servo/servo/pull/48468 * script: Smaller memory improvements by @Narfinger in https://github.com/servo/servo/pull/48565 * paint: Make the GL context current before creating the glow context by @yezhizhen in https://github.com/servo/servo/pull/48636 * net: Add some limits to `hyper`'s open `keep-alive` connections by @mrobinson in https://github.com/servo/servo/pull/48645 * script: Raise file handle limits on all Unix platforms by @mrobinson in https://github.com/servo/servo/pull/48648 * canvas: Don't panic in measureText when no font is available by @mxmgorin in https://github.com/servo/servo/pull/48621 * wpt: Raise the file handle limit in Servo code when running WPT by @mrobinson in https://github.com/servo/servo/pull/48649 * Upgrade Stylo to 2026-10-01 by @Loirooriol in https://github.com/servo/servo/pull/48528 * script: Avoid temporary allocation when reading stream chunks by @Taym95 in https://github.com/servo/servo/pull/48646 * script: Prioritize converting JS values to interfaces (ie. typed arrays) over sequences. by @jdm in https://github.com/servo/servo/pull/48640 * Avoid temporary input copies in compression and decompression streams by @Taym95 in https://github.com/servo/servo/pull/48654 * webgl: Read WebGL 2 *_BITS from the draw framebuffer attachments by @mxmgorin in https://github.com/servo/servo/pull/48651 * script: Move remaining reflect_dom_object_with_cx to reflect_dom_object by @Narfinger in https://github.com/servo/servo/pull/48643 * a11y: Remove unused variables in accessibility integration test. by @alice in https://github.com/servo/servo/pull/48653 * android: Create media notification channel immediately by @veyndan in https://github.com/servo/servo/pull/48607 * script: Create a way to get attribute as str ref by @Narfinger in https://github.com/servo/servo/pull/48569 * webgl: Map BACK on the default framebuffer and drop stale errors on swap by @mxmgorin in https://github.com/servo/servo/pull/48620 * android: Exclusively request focus using Compose by @veyndan in https://github.com/servo/servo/pull/48609 * android: Use correct flag constant reference by @veyndan in https://github.com/servo/servo/pull/48594 * script: Ensure underlying sink type passed to writable stream is always rooted. by @jdm in https://github.com/servo/servo/pull/48656 * webgpu: new buffer content paradigm by @sagudev in https://github.com/servo/servo/pull/48372 * script: make range input interactive by @webbeef in https://github.com/servo/servo/pull/48342 * script: Move `StructuredData` to script_bindings by @kkoyung in https://github.com/servo/servo/pull/48667 * layout: Pass URL for ResolvedImage to use for LCP. by @shubhamg13 in https://github.com/servo/servo/pull/48668 * mach: Bump required cargo-deny version by @jschwe in https://github.com/servo/servo/pull/48673 * script_bindings: Create TracedDOMString and make DOMString RootTraceableBox<traceddomstring> by @Narfinger in https://github.com/servo/servo/pull/48360 * script: implement IDBCursor update and delete methods by @kuntal-devrat in https://github.com/servo/servo/pull/48402 * net: Create timer for http2 by @Narfinger in https://github.com/servo/servo/pull/48657 * script: Dispatch touch compatibility mouse events synchronously in `ScriptThread` by @yezhizhen in https://github.com/servo/servo/pull/48671 * script: Support unwrap_or_default on return of get_attribute_str_ref by @Narfinger in https://github.com/servo/servo/pull/48677 * webgl: Fix vertexAttribIPointer and the attribute type check by @mxmgorin in https://github.com/servo/servo/pull/48678 * script: Implement margin dimension attributes for `` by @TimvdLippe in https://github.com/servo/servo/pull/48605 * script: Dedupe callbacks for handling lenght percentages by @TimvdLippe in https://github.com/servo/servo/pull/48688 * script: Reset click count when touchend doesn't synthesize mouse events by @yezhizhen in https://github.com/servo/servo/pull/48699 * ohos servoshell: Improve error message for load failures by @jschwe in https://github.com/servo/servo/pull/48687 * script: Make srcset creation, update and select_image_source more efficient by @Narfinger in https://github.com/servo/servo/pull/48562 * ohos: Write the font cache atomically by @TTyChud in https://github.com/servo/servo/pull/48542 * net: Less allocation in net by @Narfinger in https://github.com/servo/servo/pull/48588 * ohos servoshell: Various ArkUI QoL fixes by @jschwe in https://github.com/servo/servo/pull/48684 * fonts: make for_each_font_family return &str instead of String by @Narfinger in https://github.com/servo/servo/pull/48650 * grid: Pass the correct min & max values in the case when the container size is not definite by @RichardTjokroutomo in https://github.com/servo/servo/pull/48644 * service worker: add messaging-related event handlers to container. by @gterzian in https://github.com/servo/servo/pull/48680 * servoshell: Add benchmark flag for memory report by @Narfinger in https://github.com/servo/servo/pull/48393 * FileManager: Avoid file chunk buffer copy by @Taym95 in https://github.com/servo/servo/pull/48702 * script: Move some usages of get_attribute_string_value to get_attribute_string_ref by @Narfinger in https://github.com/servo/servo/pull/48675 * script_bindings: Allow more efficient DOMString clone if it is a JSString by @Narfinger in https://github.com/servo/servo/pull/48589 * script: Replace nullable mutable DOM pointers with MutNullableDom by @yug105 in https://github.com/servo/servo/pull/48715 * script: Remove click element workaround for elements in UA ShadowRoot by @TimvdLippe in https://github.com/servo/servo/pull/48712 * config: Remove `layout_grid_enabled` pref by @Loirooriol in https://github.com/servo/servo/pull/48718 * Fetch: Avoid multipart field copy by @Taym95 in https://github.com/servo/servo/pull/48720 * Fetch: Avoid multipart boundary clone by @Taym95 in https://github.com/servo/servo/pull/48721 * script: Add cx argument to stylesheet loading task by @gabrix73 in https://github.com/servo/servo/pull/48729 * wpt: Run CSS fetching tests by @jdm in https://github.com/servo/servo/pull/48716 * script: Prevent post-parsing stylesheet tasks from running on unloaded documents. by @jdm in https://github.com/servo/servo/pull/48714 * a11y: Refactor how accessibility data gets updated. by @alice in https://github.com/servo/servo/pull/48707 * script: Move composition handling to `EditingAction` by @dzfrias in https://github.com/servo/servo/pull/48690 * script: Add `RootedSelectionBoundary` by @mrobinson in https://github.com/servo/servo/pull/48709 * script/net: Cleanup some parts of FetchMetadata metadata extracing and cors checking by @Narfinger in https://github.com/servo/servo/pull/48682 * base: Update serde_with by @Narfinger in https://github.com/servo/servo/pull/48738 * script: Put PolicyContainer in document into an Arc by @Narfinger in https://github.com/servo/servo/pull/47720 * script: Drop extra clone in several places for `Request` by @yezhizhen in https://github.com/servo/servo/pull/48745 * webgl: Treat DEPTH_STENCIL_ATTACHMENT as an alias in WebGL 2 by @mxmgorin in https://github.com/servo/servo/pull/48689 * servoshell: Replace `count_threads.c` with a version written in Rust by @mrobinson in https://github.com/servo/servo/pull/48742 * layout: Better track hanging and removed whitespace in line layout by @mrobinson in https://github.com/servo/servo/pull/48591 * layout: Create separate stacking contexts for elements that establish 3d stacking contexts by @mrobinson in https://github.com/servo/servo/pull/47933 * net: Small optimizations in net code by @Narfinger in https://github.com/servo/servo/pull/48703 * script: Fix TimerListener leak by @jschwe in https://github.com/servo/servo/pull/48752 * script: Move more attribute getting to use AttrStrRef by @Narfinger in https://github.com/servo/servo/pull/48750 * webgl: Return null from getUniformLocation for uniform block members by @mxmgorin in https://github.com/servo/servo/pull/48751 * layout: Don't paint fragment of inline box containing a block-level by @Loirooriol in https://github.com/servo/servo/pull/46445 * layout: Remove the empty `<input>` zero-width space hack by @mrobinson in https://github.com/servo/servo/pull/48652 * layout: Add support for the `<wbr>` element by @mrobinson in https://github.com/servo/servo/pull/48755 * script: ClearKeptObjects in microtask checkpoint by @jschwe in https://github.com/servo/servo/pull/48739 * Update vello. by @jdm in https://github.com/servo/servo/pull/48765 * script: Don't fire pointer events for touch compatibility mouse events by @yezhizhen in https://github.com/servo/servo/pull/48701 * android: Move show/hide keyboard logic into lib by @veyndan in https://github.com/servo/servo/pull/48757 * script: Update `Element` and `Window` spec steps to reflect current spec by @stevennovaryo in https://github.com/servo/servo/pull/38542 * a11y: Set the focused node for AccessKit by @alice in https://github.com/servo/servo/pull/48708 * script_bindings: Get values of Stylo's preferences from Stylo by @Loirooriol in https://github.com/servo/servo/pull/48719 * script: Move `Serializable` to script_bindings by @kkoyung in https://github.com/servo/servo/pull/48769 * flex: Consider precomputed min/max_main size when doing layout on indefinite sizing item of flex:column by @rayguo17 in https://github.com/servo/servo/pull/48670 * WebDriver: Implement 'Get Computed Role' Method Correctly by @lolaodelola in https://github.com/servo/servo/pull/47339 * net: Clone supplied MIME type only when necessary by @yezhizhen in https://github.com/servo/servo/pull/48770 * constellation: Restore debug_assert by @jschwe in https://github.com/servo/servo/pull/48771 * webgl: Fix intermittent cross-origin image timeout by @mxmgorin in https://github.com/servo/servo/pull/48775 * android: Stop delegating calls to `Servo` from `ServoView` by @veyndan in https://github.com/servo/servo/pull/48778 * ci: Use taiki-e/install-action in lint.yml by @jschwe in https://github.com/servo/servo/pull/48776 * script: Finish UAShadowRoot migration by @TimvdLippe in https://github.com/servo/servo/pull/48686 * android: Make `ServoView` private to library by @veyndan in https://github.com/servo/servo/pull/48780 * Add Support for the ContainerTiming PaintMetric by @jasonwilliams in https://github.com/servo/servo/pull/46966 * script_bindings: remove obsolete permanent JS roots by @Amrit-04 in https://github.com/servo/servo/pull/48772 * android: Move focus handling to Compose by @veyndan in https://github.com/servo/servo/pull/48782 * script: Add cmd-delete shortcut for macOS by @dzfrias in https://github.com/servo/servo/pull/48781 * script: Move `get_property` and `get_property_jsval` to script_bindings by @kkoyung in https://github.com/servo/servo/pull/48787 * net: Reduce a few clones when flitering response by @yezhizhen in https://github.com/servo/servo/pull/48789 * script: don't add task that won't run anything by @webbeef in https://github.com/servo/servo/pull/48788 * script: Add error messages for XMLHttpRequest. by @jdm in https://github.com/servo/servo/pull/48786 * video: Pass resolved_block_size of replaced item when layout for video control widget. by @rayguo17 in https://github.com/servo/servo/pull/44956 * stylo: Adjust `display: contents` to `none` on some elements by @Loirooriol in https://github.com/servo/servo/pull/48784 * script: Remove last naming of `reflect_dom_object_with_cx` by @TimvdLippe in https://github.com/servo/servo/pull/48794 * script: Make all JSContext first argument in `script/event_loop` by @TimvdLippe in https://github.com/servo/servo/pull/48795 * layout: Don't treat `display: contents` as `none` on replaced elements by @Loirooriol in https://github.com/servo/servo/pull/48785 * ci: Run `servo/perf-analysis-tool` in try Job by @shubhamg13 in https://github.com/servo/servo/pull/47820 * net/script/layout: Complete Wiring of `loadTime` for Images, used for LCP by @shubhamg13 in https://github.com/servo/servo/pull/48676 * nix: Upgrade nixpkgs to tip of nixos-unstable by @veyndan in https://github.com/servo/servo/pull/48800 * script: Move scripts related code to new module `scripting` by @Gae24 in https://github.com/servo/servo/pull/48801 * net: Rename `FetchCanceller` to `FetchController` by @TimvdLippe in https://github.com/servo/servo/pull/48799 * script: Update source set synchronously for `` style computation by @TimvdLippe in https://github.com/servo/servo/pull/48790 * DecompressionStream: Avoid decompression output copy by @Taym95 in https://github.com/servo/servo/pull/48754 * script: Move MediaFrameRenderer into separate file by @TimvdLippe in https://github.com/servo/servo/pull/48805 * wpt: Enable ecmascript subfolder by @jschwe in https://github.com/servo/servo/pull/48810 * script: Move `Crypto` interface to script_webcrypto by @kkoyung in https://github.com/servo/servo/pull/48803 * wpt: Enable acid tests by @jschwe in https://github.com/servo/servo/pull/48813 * Bump to Stylo with legacy justify-align fix by @nicoburns in https://github.com/servo/servo/pull/48806 * layout: Replace `Direction` with `LogicalAxis` by @Loirooriol in https://github.com/servo/servo/pull/48815 * net: Avoid cloning the whole CorsCache when cleaning by @yezhizhen in https://github.com/servo/servo/pull/48828 * a11y: Add more helper functions in integration test. by @alice in https://github.com/servo/servo/pull/48777 * deny: Allow unused-allowed-org by @jschwe in https://github.com/servo/servo/pull/46281 * script: Fix assertion failure when track with no cues is rendered by @TimvdLippe in https://github.com/servo/servo/pull/48827 * devtools: feature guard by @janeoa in https://github.com/servo/servo/pull/47255 * layout: Split `accessibility/mod.rs` into separate files by @alice in https://github.com/servo/servo/pull/48830 * url: Faster url to string conversion by @Narfinger in https://github.com/servo/servo/pull/48838 * pixels: avoid snapshot copies in single-process mode by @Taym95 in https://github.com/servo/servo/pull/48836 * layout: Treat preserved tabs as conditionally hanging under `white-space: pre-wrap` by @mrobinson in https://github.com/servo/servo/pull/48753 * script: set checked element state when cloning input element by @skyz1 in https://github.com/servo/servo/pull/48845 * script: Small clean-up in `HTMLScriptElement`'s `get_script_type` by @Gae24 in https://github.com/servo/servo/pull/48831 * script: Update radio group when checked radio button joins by changing form owner by @skyz1 in https://github.com/servo/servo/pull/48069 * Font: avoid copying memory mapped font data on macOS by @Taym95 in https://github.com/servo/servo/pull/48841 * script_bindings/script: Unify valid_floating_point_number_string by @Narfinger in https://github.com/servo/servo/pull/48844 * base: Use serde_json::from_reader instead of allocating a string by @Narfinger in https://github.com/servo/servo/pull/48843 * net: Store connection error for introspection. by @jdm in https://github.com/servo/servo/pull/48861 * script: Make "insertCompositionText" in `beforeinput` uncancelable by @dzfrias in https://github.com/servo/servo/pull/48825 * script: Also update selection in placeholder by @mrobinson in https://github.com/servo/servo/pull/48513 * dependabot: Make the `cooldown` `include` parameter be an array by @Narfinger in https://github.com/servo/servo/pull/48862 * script/layout: Add support for double/triple click selection extension by @mrobinson in https://github.com/servo/servo/pull/48767 * layout: Consider only `paintable` elements for `FCP`, `LCP` and `Conatainer-Timing` by @shubhamg13 in https://github.com/servo/servo/pull/48856 * mach: Support `--no-run` in test-unit by @jschwe in https://github.com/servo/servo/pull/48858 * script: Map ARIA role for computed AccessKit role by @alice in https://github.com/servo/servo/pull/48839 * style: Add `layout.writing-mode.sideways.enabled` pref by @Loirooriol in https://github.com/servo/servo/pull/48865 * script_bindings: Drop duplicated mapping between Servo and Stylo prefs by @Loirooriol in https://github.com/servo/servo/pull/48866 * script: Use TracedDOMString in dom_structs for audio, bluetooth, characterdata by @Narfinger in https://github.com/servo/servo/pull/48832 * net: Avoid cloning cached headers on HTTP cache hits by @yezhizhen in https://github.com/servo/servo/pull/48867 * script: Extract common code from Promise::new_resolved/Promise::new_rejected by @CynthiaOketch in https://github.com/servo/servo/pull/48880 * script: properly implement the `:indeterminate` pseudoclass by @skyz1 in https://github.com/servo/servo/pull/48070 * net/devtools: Move RequestId to use UUID directly instead of converting to String by @Narfinger in https://github.com/servo/servo/pull/48882 * script: Migrate borrow_mut to safe_borrow_mut in FormData by @CynthiaOketch in https://github.com/servo/servo/pull/48889 * net: Do not force mime type to be serialized for cache by @Narfinger in https://github.com/servo/servo/pull/48842 * script: Use TracedDOMString ffor datatransfer, file, form, geolocation and globalscope by @Narfinger in https://github.com/servo/servo/pull/48887 * Create safe wrapper around JS_DefineProperty by @sabbCodes in https://github.com/servo/servo/pull/48868 * tests: Make `WebViewDelegateImpl::reset` reset all fields by @dzfrias in https://github.com/servo/servo/pull/48895 * net: Reduce cloning of `ImmutableOrigin` in `ImageCache` methods by @Narfinger in https://github.com/servo/servo/pull/48840 * script_bindings: Make conversion from jsid_to_string of PropertyId, find_enum_value and get_own_property_descriptor use lazy initiated domstring by @Narfinger in https://github.com/servo/servo/pull/48881 * script: Move `CryptoKey` and `SubtleCrypto` to script_webcrypto by @kkoyung in https://github.com/servo/servo/pull/48826 * net: Avoid cloning response type in main fetch by @yezhizhen in https://github.com/servo/servo/pull/48899 * fonts: optimize font list sorting on OHOS by @RichardTjokroutomo in https://github.com/servo/servo/pull/48900 * layout: Accumulate ancestors's opacity for `paintable` by @shubhamg13 in https://github.com/servo/servo/pull/48898 * script: Ensure `` dimensions are updated when `` is removed by @TimvdLippe in https://github.com/servo/servo/pull/48902 * deps: Upgrade to `rustls@0.23.46` by @Narfinger in https://github.com/servo/servo/pull/48910 * script: migrate borrow_mut to safe_borrow_mut in htmloutputelement.rs by @Siddhi-sahu in https://github.com/servo/servo/pull/48912 * Upgrade to Stylo with `layout.unimplemented` replaced by @nicoburns in https://github.com/servo/servo/pull/48915 * script_bindings: Add safe wrapper for JS_SetPendingException by @sabbCodes in https://github.com/servo/servo/pull/48921 * net: Reduce chance of alloc when creating cookie by @yezhizhen in https://github.com/servo/servo/pull/48924 * fonts: Update OHOS font list cache's version number by @RichardTjokroutomo in https://github.com/servo/servo/pull/48923 * layout: Support text-decoration-line: spelling-error/grammar-error by @yezhizhen in https://github.com/servo/servo/pull/48883 * script: Don't store a rooted element in `ConstructionStackEntry` by @Gae24 in https://github.com/servo/servo/pull/48913 * layout: Apply the iso-8859-8 stylesheet when the document encoding matches by @TTyChud in https://github.com/servo/servo/pull/48444 * webgl: Keep the attribute array type when setting a constant attribute by @mxmgorin in https://github.com/servo/servo/pull/48681 * script: abort_signal_dependents does not need to have IndexSet by @Narfinger in https://github.com/servo/servo/pull/48925 * script: migrate borrow_mut to safe_borrow_mut in texttracklist.rs by @Siddhi-sahu in https://github.com/servo/servo/pull/48928 * script: Replace uses of borrow_mut with safe_borrow_mut in PointerEvent. by @jayant911 in https://github.com/servo/servo/pull/48857 * layout: Box AnonymousTableContent::Element by @Narfinger in https://github.com/servo/servo/pull/48906 * script: Avoid offline audio buffer copies in `AudioBuffer` by @Taym95 in https://github.com/servo/servo/pull/48904 * net: Replace all matching HTTP cached resources when revalidating by @mrobinson in https://github.com/servo/servo/pull/48927 * script: reduce the size of DOM elements by @webbeef in https://github.com/servo/servo/pull/48082 * layout: Optimize size overhead of capitalization by @jschwe in https://github.com/servo/servo/pull/48893 * script: Pass Video Src Url when poster flag is unset by @shubhamg13 in https://github.com/servo/servo/pull/48931 * script: Check for window global in XHR Open_ before throwing InvalidAccessError by @CynthiaOketch in https://github.com/servo/servo/pull/48854 * script: migrate borrow_mut to safe_borrow_mut by @Siddhi-sahu in https://github.com/servo/servo/pull/48937 * script: Calculate PerformanceResourceTiming duration dynamically. by @jdm in https://github.com/servo/servo/pull/48936 * script: Replace uses of borrow_mut with safe_borrow_mut in EventTarget by @jayant911 in https://github.com/servo/servo/pull/48859 * webgl: Support the WebGL 2 UNPACK_* pixel store parameters by @mxmgorin in https://github.com/servo/servo/pull/48911 * script_bindings: Add safe wrapper for JS_IsExceptionPending by @sabbCodes in https://github.com/servo/servo/pull/48940 * Allow embedders to report online/offline changes by @xbwwj in https://github.com/servo/servo/pull/47568 * tests: Do not wait for a `load` event in `window-resize-event.html` by @mrobinson in https://github.com/servo/servo/pull/48938 * script: Properly fetch the `Element` title for stylesheets by @mrobinson in https://github.com/servo/servo/pull/48935 * script: switch to safe_borrow_mut in HTMLFormElement by @BlessedOneKobo in https://github.com/servo/servo/pull/48946 * service workers: implement update worker state by @gterzian in https://github.com/servo/servo/pull/48749 * wpt: Update metadata for fixed intermittent test. by @jdm in https://github.com/servo/servo/pull/48945 * script_bindings: Add safe wrapper for JS_IdToValue by @sabbCodes in https://github.com/servo/servo/pull/48947 * script_bindings: Add safe wrapper for JS_GetPropertyById by @sabbCodes in https://github.com/servo/servo/pull/48948 * script: Change to TracedDOMString in serviceworker, shadowroot, trustedtypes, webgl, webrtc, webvtt, window, workers, xpath by @Narfinger in https://github.com/servo/servo/pull/48903 * wpt: Wait more than a single frame for a resize event by @mrobinson in https://github.com/servo/servo/pull/48939 * layout: Align `justify-content: left/right` properly on the block axis by @yezhizhen in https://github.com/servo/servo/pull/48746 * script: switch to safe_borrow_mut in form input types by @BlessedOneKobo in https://github.com/servo/servo/pull/48950 * net: Hold ref instead of owned String in `SriEntry` by @yezhizhen in https://github.com/servo/servo/pull/48949 * script: Fix a memory leak with module scripts by @mrobinson in https://github.com/servo/servo/pull/48952 * layout: Implement the stretch quirks for `` and `` by @Loirooriol in https://github.com/servo/servo/pull/48942 * Fix WPT `percentage-height-calculation.html` to wait for image loading by @Loirooriol in https://github.com/servo/servo/pull/48944 * layout: Implement the percentage height calculation quirk by @Loirooriol in https://github.com/servo/servo/pull/39869 * script: Make PerformanceResourceTiming InitiatorType::LocalName an actual LocalName by @Narfinger in https://github.com/servo/servo/pull/48953 * script: switch to safe_borrow_mut in form controls by @BlessedOneKobo in https://github.com/servo/servo/pull/48960 * script_bindings: Add safe wrapper for JS_NewObjectWithGivenProto by @rogerkorantenng in https://github.com/servo/servo/pull/48962 * layout: Position absolute fragments relative to the content box of their parent by @mrobinson in https://github.com/servo/servo/pull/48846 * script: Move to traceddomstring in webgpu by @Narfinger in https://github.com/servo/servo/pull/48965 * script: switch to safe_borrow_mut in indexeddb by @BlessedOneKobo in https://github.com/servo/servo/pull/48966 * script: Only try to stop animations for nodes that have ever animated by @mrobinson in https://github.com/servo/servo/pull/48968 * script: Handle dropping `TrustedPromise` by @mrobinson in https://github.com/servo/servo/pull/48957 * webgl: Allow drawing to a framebuffer without a color attachment by @mxmgorin in https://github.com/servo/servo/pull/48972 * layout: Reuse one glyph buffer across text fragments by @mxmgorin in https://github.com/servo/servo/pull/48969 * script: Add the caller's source location to WebGL error warnings by @jayant911 in https://github.com/servo/servo/pull/48973 * Remove `InputEventType::Nothing` by @dzfrias in https://github.com/servo/servo/pull/48974 * script: switch to safe_borrow_mut in RTCPeerConnection by @BlessedOneKobo in https://github.com/servo/servo/pull/48975 * script: No longer throttle `PerformanceTimeline` tasks by @mrobinson in https://github.com/servo/servo/pull/48964 * script: Reduce size of `HtmlInputElement` by boxing `WebDriverResponse` by @Narfinger in https://github.com/servo/servo/pull/48954 * CI: Use `RUSTFLAGS=-D warnings` when building for Android by @veyndan in https://github.com/servo/servo/pull/48941 * net: Replace RequestBuilder::url_list's ServoUrl with UrlWithBlobClaim by @CynthiaOketch in https://github.com/servo/servo/pull/48971 * net: Remove redundant clone in `HstsList::push` by @yezhizhen in https://github.com/servo/servo/pull/48980 * script: Add a test which shows remote script modules leaking by @mrobinson in https://github.com/servo/servo/pull/48982 * script_bindings: Add safe wrapper for JS_GetProperty by @rogerkorantenng in https://github.com/servo/servo/pull/48987 * script: Do less rooting when getting owner `Document` and downcasting by @mrobinson in https://github.com/servo/servo/pull/48984 * deny: Accept unmaintained `zbus`-related crates by @mrobinson in https://github.com/servo/servo/pull/48994 * script_bindings: Add safe wrapper for JS_GetPrototype by @rogerkorantenng in https://github.com/servo/servo/pull/48956 * script: Use create_a_potential_cors_request_with_claim in cspviolationreporttask.rs by @rogerkorantenng in https://github.com/servo/servo/pull/48990 * script: Convert Document::nth_element_by_name() to an iterator by @pylbrecht in https://github.com/servo/servo/pull/49011 * script: migrate borrow_mut to safe_borrow_mut in HTMLDialogElement by @gabrielecabrini in https://github.com/servo/servo/pull/49014 * migrate fontface by @Siddhi-sahu in https://github.com/servo/servo/pull/49013 * stylo: Restore `layout.css.content.alt-text.enabled` check for Servo by @Loirooriol in https://github.com/servo/servo/pull/49022 * Upgrade to Stylo with text properties enabled behind prefs by @nicoburns in https://github.com/servo/servo/pull/48958 * Update ml-kem and de-duplicate sha3 by @atouchet in https://github.com/servo/servo/pull/49027 * script: Add getter/setter for cite and datetime in HTMLModELement by @evuez in https://github.com/servo/servo/pull/49017 * script/devtools: Drop some extra clone by @yezhizhen in https://github.com/servo/servo/pull/49028 * script: migrate more borrow_mut calls to safe_borrow_mut by @gabrielecabrini in https://github.com/servo/servo/pull/49019 * ci: Remove `release` profile check for `perf-analysis` as default run passes `checked-release` by @shubhamg13 in https://github.com/servo/servo/pull/48807 * script: use encoding-parse algorithm in HTMLImageElement by @Siddhi-sahu in https://github.com/servo/servo/pull/49020 * script: For PerformanceEntry, lazily convert url to string by @Narfinger in https://github.com/servo/servo/pull/48885 * cargo: Enable GStreamer by default on desktop platforms by @mrobinson in https://github.com/servo/servo/pull/48934 * layout: Initial Implementation of `backdrop-filter` by @shubhamg13 in https://github.com/servo/servo/pull/48829 * wpt: enable inert tests by @skyz1 in https://github.com/servo/servo/pull/49030 * script: Change event_loop/ to TracedDOMString by @Narfinger in https://github.com/servo/servo/pull/48905 * script: Use DOMString::from_static for HTMLDetailsElement DefaultSummary by @Narfinger in https://github.com/servo/servo/pull/49035 * storage: Avoid redundant copies and skip setting identical values by @Taym95 in https://github.com/servo/servo/pull/49038 * Upgrade to Stylo with `::first-line` enabled behind a pref by @nicoburns in https://github.com/servo/servo/pull/49039 * layout: Align `justify-content: left/right` for in-flow children of flex containers by @yezhizhen in https://github.com/servo/servo/pull/48988 * wpt: Run fetch-resources test over HTTPS by @yug105 in https://github.com/servo/servo/pull/49021 * net: Start tracking timing info with FetchParams by @TimvdLippe in https://github.com/servo/servo/pull/49040 * cargo: Move two build environment variables from `mach` to `config.toml` by @mrobinson in https://github.com/servo/servo/pull/49064 * script: Switch from DOMString to TracedDOMString for credentialmanagment, datatransfer,debugger,event by @Narfinger in https://github.com/servo/servo/pull/48834 * script_bindings: Add safe wrapper for GetPropertyKeys by @CynthiaOketch in https://github.com/servo/servo/pull/49067 * script: Add dimension attributes to `<input>` and `<marquee>` by @TimvdLippe in https://github.com/servo/servo/pull/49031 * script: Render cues for a `` by @TimvdLippe in https://github.com/servo/servo/pull/48809 * script: Update rendering after setRangeText() on textarea and input by @gabrielecabrini in https://github.com/servo/servo/pull/49072 * net: Remove timing from `FetchContext` by @TimvdLippe in https://github.com/servo/servo/pull/49046 * script: Ensure that captured fetch state is traced by @mrobinson in https://github.com/servo/servo/pull/49032 * script_bindings: Add safe wrapper for JS_GetOwnPropertyDescriptorById by @rogerkorantenng in https://github.com/servo/servo/pull/48986 * layout: Upgrade Taffy to v0.15.0 by @nicoburns in https://github.com/servo/servo/pull/49024 * script: Use AtomicRefCell for Selection::visible_range by @gabrielecabrini in https://github.com/servo/servo/pull/49068 * script: Use `AtomicRefCell` for `HTMLVideoElement::poster_url` by @morehwachege in https://github.com/servo/servo/pull/49069 * script_bindings: Add cross-origin check to JS proxy handler className by @sabbCodes in https://github.com/servo/servo/pull/49079 * script: Ensure that `PendingScript`, `HTMLScriptElement` and `ModuleTree` don't store rooted values by @Gae24 in https://github.com/servo/servo/pull/48855 * layout: Reuse the unbreakable segment's line item buffer by @mxmgorin in https://github.com/servo/servo/pull/48991 * script: Move html/ to TracedDOMString by @Narfinger in https://github.com/servo/servo/pull/49083 * base: Remove more ignore_malloc_size_of calls by @Narfinger in https://github.com/servo/servo/pull/48864 * paint: Avoid cloning full image when reading framebuffer to image by @yezhizhen in https://github.com/servo/servo/pull/49084 * layout: Add a `StackingContextParentInfo` by @mrobinson in https://github.com/servo/servo/pull/49089 * layout: Optimize flex column layout by caching default content block size by @Loirooriol in https://github.com/servo/servo/pull/49073 * script: Determine dimensions for `` and `<input>` by @TimvdLippe in https://github.com/servo/servo/pull/49085 * script: Use AtomicRefCell for HTMLMediaElement::current_src by @CynthiaOketch in https://github.com/servo/servo/pull/49087 * script: Use `AtomicRefCell` for `HTMLImageElement::current_request` by @CynthiaOketch in https://github.com/servo/servo/pull/49094 * script: Clear `FetchThread` callbacks when tearing down `Document` by @mrobinson in https://github.com/servo/servo/pull/49049 * script: Move document, node, reporting, security, testing to TracedDOMString by @Narfinger in https://github.com/servo/servo/pull/49082 * script: Move to TracedDOMString for attributes, css, document, mutationobserver by @Narfinger in https://github.com/servo/servo/pull/49081 * devtools: fix shadow roots display in inspector by @Siddhi-sahu in https://github.com/servo/servo/pull/49088 * deps: Upgrade dependencies to address RUSTSEC-2026-0381/0382/0383 by @Loirooriol in https://github.com/servo/servo/pull/49124 * script: check if Document is fully active before trying to open by @BlessedOneKobo in https://github.com/servo/servo/pull/48992 * script: Drop tasks for closed pipelines by @jschwe in https://github.com/servo/servo/pull/48747 * script: add error messages for Range, Selection, Element, CharacterData and DOMTokenList by @gabrielecabrini in https://github.com/servo/servo/pull/49102 * script: Use create_a_potential_cors_request_with_claim in processingoptions.rs by @rogerkorantenng in https://github.com/servo/servo/pull/49074 * script: Implement HTMLBaseElement.target attribute by @sabbCodes in https://github.com/servo/servo/pull/48985 * script: Use create_a_potential_cors_request_with_claim in reportingendpoint.rs by @rogerkorantenng in https://github.com/servo/servo/pull/48989 * script_bindings: Avoid additional rooting for objects sequence when it's a dictionary member by @Gae24 in https://github.com/servo/servo/pull/49096 * script: Acknowledge that `text` attribute of `` affects preshints by @Loirooriol in https://github.com/servo/servo/pull/49108 * script: complete geolocation DOM api implementation by @webbeef in https://github.com/servo/servo/pull/48406 * script: Terminate `DedicatedWorker` fetch groups when tearing down by @mrobinson in https://github.com/servo/servo/pull/49092 * script: Use AtomicRefCell for Element::id_attribute by @gabrielecabrini in https://github.com/servo/servo/pull/49071 * wdspec: Should not dispatch mousemove if already at target by @yezhizhen in https://github.com/servo/servo/pull/48365 * servoshell: Fix inconsistent tab hover highlight by @gabrielecabrini in https://github.com/servo/servo/pull/49105 * media-audio: Refactor AudioNode Creation by @kevlu93 in https://github.com/servo/servo/pull/48926 * servo: Add a smoke test for about:memory by @pylbrecht in https://github.com/servo/servo/pull/48996 * ohos: Enable RELR for smaller executables by @jschwe in https://github.com/servo/servo/pull/49099 * Skip Stylo element snapshot for disconnected elements by @SimonSapin in https://github.com/servo/servo/pull/49100 * devtools: Bump reported Firefox version to 157 by @Daniel-1600 in https://github.com/servo/servo/pull/49106 * script: Enforce the timeout of synchronous XHR in workers by @CynthiaOketch in https://github.com/servo/servo/pull/49023 * script: Remove a leak in `FileReaderResult` by @mrobinson in https://github.com/servo/servo/pull/49134 * Avoid cloning Fetch body bytes for conversions that only need a slice by @Taym95 in https://github.com/servo/servo/pull/49131 * style: Implement `may_have_animations` optimization by @nicoburns in https://github.com/servo/servo/pull/49137 * Don’t update shadow DOM of disconnected <input> by @SimonSapin in https://github.com/servo/servo/pull/49098 * build: Fix cc-rs not picking up sanitizer flags by @jschwe in https://github.com/servo/servo/pull/49144 * layout: Treat `<meter>` and `<progress>` as widgets by @Loirooriol in https://github.com/servo/servo/pull/49143 * net: Take borrow when matching Request method for CorsCache by @yezhizhen in https://github.com/servo/servo/pull/49125 * layout: Fix quadratic blowup in flexbox wrapping code by @nicoburns in https://github.com/servo/servo/pull/49148 * script: Acknowledge that `cellspacing` attribute of `` affects preshints by @Loirooriol in https://github.com/servo/servo/pull/49150 * layout: Remove `StackingContextBuildMode` by @mrobinson in https://github.com/servo/servo/pull/49128 * script: Do less rooting of `Document` by @mrobinson in https://github.com/servo/servo/pull/49140 * allocator: Disable jemalloc at build-time when any sanitizers is enabled by @mrobinson in https://github.com/servo/servo/pull/49065 * mach: No longer set the `CC` and `CXX` environment variables by @mrobinson in https://github.com/servo/servo/pull/49066 * script: Remove a rooting cycle in fetch body transmission by @mrobinson in https://github.com/servo/servo/pull/49139 * script: Use DOMString in CharacterData::SetData instead of using the reference by @Narfinger in https://github.com/servo/servo/pull/48951 * script: Finish TracedDOMString move with indexeddb, performance and miscellaneous by @Narfinger in https://github.com/servo/servo/pull/49130 * script: Store `TracedDOMString` in `FileReaderResult` by @Narfinger in https://github.com/servo/servo/pull/49135 * deps: Upgrade to `tokio@1.54.1` by @Narfinger in https://github.com/servo/servo/pull/49161 * layout: Avoid collecting an unnecessary vector in multiline flexbox by @Loirooriol in https://github.com/servo/servo/pull/49154 * net: Remove redundant clone when loading data: url scheme by @yezhizhen in https://github.com/servo/servo/pull/49160 * wpt: Ensure that Servo leak tests always use HTTPS by @mrobinson in https://github.com/servo/servo/pull/49167 * media-audio: Implement ConvolverNode by @kevlu93 in https://github.com/servo/servo/pull/48658 * wpt: Enable mathml tests by @tannal in https://github.com/servo/servo/pull/49127 * script: Acknowledge that `border` attribute of `
` affects preshints by @Loirooriol in https://github.com/servo/servo/pull/49156 * script: Use AtomicRefCell for Document::url and Document::default_language by @Siddhi-sahu in https://github.com/servo/servo/pull/49136 * webgl: Validate texStorage against its own targets and limits by @mxmgorin in https://github.com/servo/servo/pull/48590 * script_bindings: Add safe wrapper for JS_NewObject by @Siddhi-sahu in https://github.com/servo/servo/pull/49166 * ohos: Attempt to fix spurious ci failure by @jschwe in https://github.com/servo/servo/pull/49175 * build: bump ctutils by @janeoa in https://github.com/servo/servo/pull/49187 * layout: Implement title-casing with `icu_casemap` by @jschwe in https://github.com/servo/servo/pull/48901 * layout: Account for percentage quirk during intrinsic sizing by @Loirooriol in https://github.com/servo/servo/pull/48978 * script: Implement dimensions for `<embed>` and `<object>` by @TimvdLippe in https://github.com/servo/servo/pull/49172 * net: send CORS preflight requests to devtools network monitor (#39160) by @willypuzzle in https://github.com/servo/servo/pull/49151 * layout: Use `IndependentFormattingContext::content_block_size_under_default_constraint` in grid by @mrobinson in https://github.com/servo/servo/pull/49164 * layout: When style of table grid changes, repair its fragments by @Loirooriol in https://github.com/servo/servo/pull/49176 * script/dom: Implement basic MathML DOM interfaces and bindings by @tannal in https://github.com/servo/servo/pull/48631 * script: Do not root nodes in the `static_node_list` during insertion by @mrobinson in https://github.com/servo/servo/pull/49195 * script: Add error messages for `window` by @gabrielecabrini in https://github.com/servo/servo/pull/49146 * script: Acknowledge that `bgcolor` attribute of `
` affects preshints by @Loirooriol in https://github.com/servo/servo/pull/49120 * net: Reduce alloc when parsing header MIME by @yezhizhen in https://github.com/servo/servo/pull/49198 * script: Clear the `GlobalScope` module map when tearing down by @mrobinson in https://github.com/servo/servo/pull/49132 * script: Use `SmallVec` for temporary allocation in `serialize_html_fragment` by @Narfinger in https://github.com/servo/servo/pull/49202 * servoshell: Add CJK fonts to the end of the egui font list by @mrobinson in https://github.com/servo/servo/pull/49204 * net: Clear relevant CORS cache entries on network error by @sabbCodes in https://github.com/servo/servo/pull/49055 * CompressionStream: Avoid compression output copy by @Taym95 in https://github.com/servo/servo/pull/49194 * script_bindings: Implement ObservableArray by @jerensl in https://github.com/servo/servo/pull/48506 * cargo: Bump crypto-biginit to resolve cargo-deny error by @TimvdLippe in https://github.com/servo/servo/pull/49218 * script: Do not borrow `ResizeObservers` mutably when gathering by @mrobinson in https://github.com/servo/servo/pull/49189 * fonts: Use system APIs to handle font matching on Android platform by @RichardTjokroutomo in https://github.com/servo/servo/pull/42287 * net: Reduce allocations when listing local directory by @yezhizhen in https://github.com/servo/servo/pull/49219 * layout: use `AvailableSpace::MaxContent` when measuring Grid height by @nicoburns in https://github.com/servo/servo/pull/49232 * script: Do not try to scroll discarded browsing contexts by @mrobinson in https://github.com/servo/servo/pull/49230 * Remove xml from Cargo.toml by @atouchet in https://github.com/servo/servo/pull/49236 * script_webcrypto: Use `sha1` and `sha2` crate for SHA support by @kkoyung in https://github.com/servo/servo/pull/49253 * script: switch to safe_borrow_mut in HTMLLinkElement by @BlessedOneKobo in https://github.com/servo/servo/pull/49250 * script_webcrypto: Use `pbkdf2` crate for PBKDF2 support by @kkoyung in https://github.com/servo/servo/pull/49227 * Add `webview_id` to `handle_reflow` tracing span by @nicoburns in https://github.com/servo/servo/pull/49259 * script: switch to safe_borrow_mut in HTMLStyleElement by @BlessedOneKobo in https://github.com/servo/servo/pull/49257 * layout: Floor stretch size by zero in block layout heuristics by @Loirooriol in https://github.com/servo/servo/pull/49239 * layout: Avoid negative size when stretching element that avoids floats by @Loirooriol in https://github.com/servo/servo/pull/49237 * script/net: Avoid intermediate String when appending to String by @yezhizhen in https://github.com/servo/servo/pull/49258 * android: Remove unusable media support by @veyndan in https://github.com/servo/servo/pull/49265 * layout: Do not override the default border color on table elements by @adoublebarrel in https://github.com/servo/servo/pull/47684 * android: Move deduplication of experimental mode enablement to lib by @veyndan in https://github.com/servo/servo/pull/49266 * layout: Use `:root` for canvas text color by @TimvdLippe in https://github.com/servo/servo/pull/48514 * script: switch to safe_borrow_mut in HTMLCanvasElement by @BlessedOneKobo in https://github.com/servo/servo/pull/49271 * script: switch to safe_borrow_mut in HTMLImageElement by @BlessedOneKobo in https://github.com/servo/servo/pull/49272 * script: switch to safe_borrow_mut in HTMLVideoElement by @BlessedOneKobo in https://github.com/servo/servo/pull/49273 * fonts: Revert "Use system APIs to handle font matching on Android platform" by @jdm in https://github.com/servo/servo/pull/49270 * script: Consolidate common code in Window runtime teardown by @Maaz2212 in https://github.com/servo/servo/pull/49212 * net: Avoid cloning PathBuf by @yezhizhen in https://github.com/servo/servo/pull/49275 * net, script: Partition CORS preflight cache by top-level site by @sabbCodes in https://github.com/servo/servo/pull/49252 * script: rewrite uses of handle_potential_webgl_error macro in webglrenderingcontext by @Siddhi-sahu in https://github.com/servo/servo/pull/49274 * script: Align form-control selectedness and disabledness with the specification by @mrobinson in https://github.com/servo/servo/pull/49225 * layout: Integrate more logic into helper for drawing text decorations by @shubhamg13 in https://github.com/servo/servo/pull/48580 * webgl: Fix texImage3D size limits for levels and 2D arrays by @mxmgorin in https://github.com/servo/servo/pull/49201 * Enable /css/css-writing-modes in WPT by @SimonSapin in https://github.com/servo/servo/pull/49278 * Remove layout assertions that writing modes are horizontal by @SimonSapin in https://github.com/servo/servo/pull/49288 * script: Set `:focus-visible` for textual input elements by @TimvdLippe in https://github.com/servo/servo/pull/49255 * script: Remove duplicate Window::webgl_chan_value by @CynthiaOketch in https://github.com/servo/servo/pull/49291 * net: Sort `HeaderName`s in place by @yezhizhen in https://github.com/servo/servo/pull/49295 * layout: Account for percentage quirk during intrinsic sizing (part 2) by @Loirooriol in https://github.com/servo/servo/pull/49211 * android: Reduce exposure of `MutableList` by @veyndan in https://github.com/servo/servo/pull/49293 * script: Use DOMString::from_static in queue_dialog_toggle_event_task by @CynthiaOketch in https://github.com/servo/servo/pull/49298 * script: Use DOMString::from_static for MutationRecord::new_inherited by @sabbCodes in https://github.com/servo/servo/pull/49300 * script: basic inertness implementation by @skyz1 in https://github.com/servo/servo/pull/48967 * layout: Do not paint collapsed box fragments by @mrobinson in https://github.com/servo/servo/pull/49287 * layout: Properly clear cached widget layouts by @mrobinson in https://github.com/servo/servo/pull/49283 * layout: Create non-transform stacking contexts with `PrimitiveFlags::default` by @mrobinson in https://github.com/servo/servo/pull/49196 * script: Do not run the insertion steps as part of the moving steps by @mrobinson in https://github.com/servo/servo/pull/49226 * chore: Bump default toolchain to 1.99.1 by @Gae24 in https://github.com/servo/servo/pull/49310 * layout: Add methods for inline&block stretch sizes of containing blocks by @Loirooriol in https://github.com/servo/servo/pull/49307 * script: Introduce `owner_window_unrooted` on `NodeTraits` by @Narfinger in https://github.com/servo/servo/pull/49200 * capi: get and set f64 and f64 array preferences by @fran6co in https://github.com/servo/servo/pull/49325 * script: Prevent media elements from being GCed while playing by @sabbCodes in https://github.com/servo/servo/pull/48979 * dependabot: Add group for compression related crates by @TimvdLippe in https://github.com/servo/servo/pull/49350 * script: Eliminate more uses of `handle_potential_webgl_error` by @Siddhi-sahu in https://github.com/servo/servo/pull/49352 * webaudio: Reduce decode audio allocations by @Taym95 in https://github.com/servo/servo/pull/49320 * script_bindings/script: Allow more efficient DOMString::from for Atom types by @Narfinger in https://github.com/servo/servo/pull/49323 * layout: Count the flex gap only once when sizing items in multi-line flex containers by @yezhizhen in https://github.com/servo/servo/pull/49335 * constellation: Reply to WebGPU requests from opaque origins by @gabrielecabrini in https://github.com/servo/servo/pull/49207 * servoshell: Switch to `rfd` for file selection dialogs by @mrobinson in https://github.com/servo/servo/pull/49306 * net: Avoid cloning headers twice when filtering response by @yezhizhen in https://github.com/servo/servo/pull/49313 * layout: Following containing block rules when determining containing block for text for LCP by @shubhamg13 in https://github.com/servo/servo/pull/48551 * android: Write compact JSON to history file by @veyndan in https://github.com/servo/servo/pull/49294 * webgl: Don't throw SecurityError while the image is loading by @mxmgorin in https://github.com/servo/servo/pull/49289 * script: Make `InputEvent` use bitflags over booleans by @dzfrias in https://github.com/servo/servo/pull/49269 * script: Pass JSContext to current_css_zoom_query and Element::CurrentCSSZoom by @rishiiicreates in https://github.com/servo/servo/pull/49328 * script: GC media elements after playback ends by @sabbCodes in https://github.com/servo/servo/pull/49367 * Upgrade Taffy to v0.15.1 by @nicoburns in https://github.com/servo/servo/pull/49370 * capi: get and set the WebView HiDPI scale factor by @fran6co in https://github.com/servo/servo/pull/49327 * ohos: Deny build warnings by @jschwe in https://github.com/servo/servo/pull/49368 * webaudio: Avoid copying audio samples when constructing buffer source nodes by @Taym95 in https://github.com/servo/servo/pull/49373 * script: Open links in a new WebView when clicking with middle click by @SteveSharonSam in https://github.com/servo/servo/pull/46000 * script: remove unsafe code from UTF-16 decoding by @Taym95 in https://github.com/servo/servo/pull/49377 * script: Pass `JSContext` to `get_iframe_viewport_details_if_known` by @programskillforverification in https://github.com/servo/servo/pull/49375 * script: No longer rely on the incumbent global when getting JSON attributes by @mrobinson in https://github.com/servo/servo/pull/49374 * script: Fix HTMLTextAreaElement to be multiline by @jschwe in https://github.com/servo/servo/pull/49369 * script: Update Gamepad IDL to more closely track spec by @msub2 in https://github.com/servo/servo/pull/49381 * script: Pass `JSContext` to `accesskit_node_query` by @programskillforverification in https://github.com/servo/servo/pull/49382 * ci: Try dependabot timezone with quotes by @Narfinger in https://github.com/servo/servo/pull/49363 * net: Continue to clean up of `FetchMetadata` by @Narfinger in https://github.com/servo/servo/pull/48748 * script: Pass `JSContext` to `resolved_font_style_query` by @programskillforverification in https://github.com/servo/servo/pull/49384 * layout: Remove one more mixed writing mode assertion by @mrobinson in https://github.com/servo/servo/pull/49378 * net: Reduce clone for image cache load/response notification by @yezhizhen in https://github.com/servo/servo/pull/49380 * layout: Do not combine perspective with transform matrix by @mrobinson in https://github.com/servo/servo/pull/49174 * deps: Upgrade webrender to 0.70.1 by @jschwe in https://github.com/servo/servo/pull/49329 * chore: Bump libz-sys by @Gae24 in https://github.com/servo/servo/pull/49405 * capi: add servo_webview_resize by @fran6co in https://github.com/servo/servo/pull/49326 * base: Remove unsafe code from WebRender pipeline ID conversion by @Taym95 in https://github.com/servo/servo/pull/49402 * paint: Update pinch zoom transformation using dynamic WebRender property by @stevennovaryo in https://github.com/servo/servo/pull/43561 * script: Enter realm in `ByteTeeReadIntoRequestMicrotask::handler` and `ByteTeeReadRequestMicrotask::handler` by @Narfinger in https://github.com/servo/servo/pull/49311 * wpt: Add tests for resolved inset for relpos inline and block-in-inline by @Loirooriol in https://github.com/servo/servo/pull/49408 * script: Pass JSContext to text_index_query_on_node_for_event by @rishiiicreates in https://github.com/servo/servo/pull/49409 * script: Bring back offthread compilation by @Gae24 in https://github.com/servo/servo/pull/45687 * stylo: Group media data into a struct by @Loirooriol in https://github.com/servo/servo/pull/49410 * script: implement CloseWatcher for dialogs by @skyz1 in https://github.com/servo/servo/pull/48955 * script: Set focus-visible for HTML elements by @TimvdLippe in https://github.com/servo/servo/pull/49304 * Upgrade to Stylo with `background-clip:text` behind a pref by @nicoburns in https://github.com/servo/servo/pull/49416 * script: Remove the `<input type="file">` button activation workaround by @mrobinson in https://github.com/servo/servo/pull/49379 * script: Pass `JSContext` to `query_text_segment` by @programskillforverification in https://github.com/servo/servo/pull/49420 * script: Pass `JSContext` to `HTMLElement::get_inner_outer_text` by @CynthiaOketch in https://github.com/servo/servo/pull/49422 * script: Use MaybeGC on Window::suspend by @jschwe in https://github.com/servo/servo/pull/49425 * net: Do not unconditionally overwrite origin when handling CORS by @TimvdLippe in https://github.com/servo/servo/pull/48793 * wpt: Fix missed edits on readable-byte-stream crashtest tee-from-scroll-crash by @Narfinger in https://github.com/servo/servo/pull/49421 * net: Cap natural_size fallback by MAX_SVG_PIXMAP_DIMENSION by @sabbCodes in https://github.com/servo/servo/pull/49264 * script: Use create_a_potential_cors_request_with_claim in htmlmediaelement.rs by @rogerkorantenng in https://github.com/servo/servo/pull/49206 * script: Fix failing close watcher assertion in dialog element. by @lukewarlow in https://github.com/servo/servo/pull/49431 * Upgrade to Stylo with -webkit-text-fill-color behind a pref by @nicoburns in https://github.com/servo/servo/pull/49418 * devtools: Reorganize tests by tab by @Daniel-1600 in https://github.com/servo/servo/pull/49336 * script: Add error messages to `validate_and_extract` by @gabrielecabrini in https://github.com/servo/servo/pull/49145 * script+storage: Clean up more doc comments by @leowatts in https://github.com/servo/servo/pull/48706 * script: Disable file selector buttons when the input is disabled by @lukewarlow in https://github.com/servo/servo/pull/49163 * script: Cancel and do not run tasks for replaced documents by @mrobinson in https://github.com/servo/servo/pull/49399 * net: Account for a trailing dot in public suffix lookups by @Sharadhi-v98 in https://github.com/servo/servo/pull/49302 * script: Implement readEntries() state machine + Chromium style batching by @yezhizhen in https://github.com/servo/servo/pull/49417 * script: Reduce alloc when processing image load callback by @yezhizhen in https://github.com/servo/servo/pull/49439 * android: Replace `ServoView` with `AndroidExternalSurface` by @veyndan in https://github.com/servo/servo/pull/49268 * android: Preserve history title nullability by @veyndan in https://github.com/servo/servo/pull/49292 * devtools: Add mimeType and sizes to responses by @Daniel-1600 in https://github.com/servo/servo/pull/49152 * script: Use encoding_parse_a_url in handle_stylesheet_url by @sabbCodes in https://github.com/servo/servo/pull/49199 * webgl: Implement WEBGL_debug_renderer_info extension by @sabbCodes in https://github.com/servo/servo/pull/49435 * layout: Replace deprecated std::f32::INFINITY and std::u32 in tests by @rishiiicreates in https://github.com/servo/servo/pull/49415 * devtools: Implement getFavicon message by @sabbCodes in https://github.com/servo/servo/pull/49297 * deps: Update read-fonts and skrifa together by @Narfinger in https://github.com/servo/servo/pull/49438 * net: Small cleanup of CachedResource and CachedMetadata by @Narfinger in https://github.com/servo/servo/pull/49434 * script: Pass `&mut JSContext` to `box_areas_query` by @MohamedAli00949 in https://github.com/servo/servo/pull/49445 * android: Add Gradle to Dependabot by @veyndan in https://github.com/servo/servo/pull/49452 * build: Replace webcrypto with subtlecrypto feature by @jschwe in https://github.com/servo/servo/pull/48860 * constellation: Abort older pending changes when `<iframe>` is navigated by @mrobinson in https://github.com/servo/servo/pull/49426 * android: Make `Servo` constructor `internal` by @veyndan in https://github.com/servo/servo/pull/49472 * android: Replace deprecated `srcDirs` with `directories` by @veyndan in https://github.com/servo/servo/pull/49478 * android: Remove needless `lint.targetSdk` by @veyndan in https://github.com/servo/servo/pull/49475 * android: Remove `:servoview-local` by @veyndan in https://github.com/servo/servo/pull/49473 * android: Remove all unused resources by @veyndan in https://github.com/servo/servo/pull/49474 * android: Upgrade Android Gradle Plugin to 9.4.1 by @veyndan in https://github.com/servo/servo/pull/49477 * script: Add error messages for `audio` by @gabrielecabrini in https://github.com/servo/servo/pull/49147 * script: Implement console.table by @willypuzzle in https://github.com/servo/servo/pull/49314 * script: Use `encoding_parse_a_url` in `HTMLMediaElement` resource selection by @programskillforverification in https://github.com/servo/servo/pull/49471 * script: Avoid cloning url when parsing Reporting-Endpoints header by @yezhizhen in https://github.com/servo/servo/pull/49469 * android: Move back handling to library by @veyndan in https://github.com/servo/servo/pull/49476 * servo/script: Add initial support for handling stopped loads by @mrobinson in https://github.com/servo/servo/pull/49427 * android: Manage JSON serialization using KotlinX Serialization by @veyndan in https://github.com/servo/servo/pull/49451 * release: Bump version to 0.8.0 by @jschwe in https://github.com/servo/servo/pull/49467 * release: Use released stylo version by @jschwe in https://github.com/servo/servo/pull/49572 * backport: release: Disable publishing of servo-svg by @jschwe in https://github.com/servo/servo/pull/49639 </details> <h2 id="new-contributors">New Contributors</h2> <ul> <li>@gabrix73 made their first contribution in <a href="https://github.com/servo/servo/pull/48729" rel="nofollow">https://github.com/servo/servo/pull/48729</a></li> <li>@lolaodelola made their first contribution in <a href="https://github.com/servo/servo/pull/47339" rel="nofollow">https://github.com/servo/servo/pull/47339</a></li> <li>@Amrit-04 made their first contribution in <a href="https://github.com/servo/servo/pull/48772" rel="nofollow">https://github.com/servo/servo/pull/48772</a></li> <li>@adoublebarrel made their first contribution in <a href="https://github.com/servo/servo/pull/47684" rel="nofollow">https://github.com/servo/servo/pull/47684</a></li> <li>@programskillforverification made their first contribution in <a href="https://github.com/servo/servo/pull/49375" rel="nofollow">https://github.com/servo/servo/pull/49375</a></li> <li>@Sharadhi-v98 made their first contribution in <a href="https://github.com/servo/servo/pull/49302" rel="nofollow">https://github.com/servo/servo/pull/49302</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/servo/servo/compare/v0.7.0...v0.8.0" rel="nofollow">https://github.com/servo/servo/compare/v0.7.0...v0.8.0</a></p>
Source: README.md, updated 2026-11-05