v0.5.0
Added 4
- Implement importKey and exportKey operation of Ed448
- Define scoped document set for CustomElementRegistry
- Support GPUExternalTexture
- Add crate level documentation to libservo
Changed 15
- Convert refresh button on large screen to Compose UI on Android
- Store unminified data: URL scripts under a generated file name
- Set AR and RANLIB on Android
- Determine default config dir and lower minSdk on Android
- Switch reporting_observer_list to store Dom instead of DomRoot
- Use range boundary point position algorithm
- Upgrade to Stylo with touch action property
- Pass &mut JSContext to get_in_memory_bytes
- Migrate dom/media to &mut JSContext
- Refactor accessibility tree child node update logic
- Set explicit panic hook on Android
- Drop ModuleFetchClient in favour of RequestClient
- Convert navigation bar to Compose UI on Android
- Make accessibility tree an actual tree
- Update select shadow tree after call to setValue
Fixed 1
- Avoid creating empty cookie map entries on cookie deletion
From servo
See our July blog post for a curated overview of the changes in this release.
Trying out the Servo Tech Demo
Linux
If you see an error loading shared libraries when starting servo on Linux, please refer to the troubleshooting guide.
HarmonyOS
Please note that the servo-aarch64-linux-ohos.hap attached here is signed for OpenHarmony, not HarmonyOS.
For HarmonyOS self-signing is currently required - You can download the servo-aarch64-linux-ohos.so shared library and use DevEco Studio to follow the instructions in the ArkTS Servo Demo repository
What's Changed
Please check out our July blog post to get a curated overview over the recent changes.
What's Changed
- android: Convert refresh button on large screen to Compose UI by @veyndan in https://github.com/servo/servo/pull/46085
- script: Implement importKey and exportKey operation of Ed448 by @kkoyung in https://github.com/servo/servo/pull/46141
- net: Avoid creating empty cookie map entries on cookie deletion by @arayaryoma in https://github.com/servo/servo/pull/46124
- script: Store unminified data: URL scripts under a generated file name by @officialasishkumar in https://github.com/servo/servo/pull/45119
- android: Set AR and RANLIB by @jschwe in https://github.com/servo/servo/pull/46128
- android: Determine default config dir and lower minSdk by @jschwe in https://github.com/servo/servo/pull/46142
- script: Define scoped document set for CustomElementRegistry by @shubhamg13 in https://github.com/servo/servo/pull/46073
- script: Switch reporting_observer_list to store Dom instead of DomRoot by @cychronex-labs in https://github.com/servo/servo/pull/46139
- script: Remove
GlobalScope::get_cx()by @TimvdLippe in https://github.com/servo/servo/pull/46147 - script: Use range boundary point position algorithm by @SimonSapin in https://github.com/servo/servo/pull/46126
- script: Remove
ScriptThread::get_cx()by @TimvdLippe in https://github.com/servo/servo/pull/46150 - script: Remove SafeJSContext by @TimvdLippe in https://github.com/servo/servo/pull/46151
- Upgrade to Stylo with touch action property by @nicoburns in https://github.com/servo/servo/pull/46159
- script: Pass &mut JSContext to get_in_memory_bytes by @kunalmohan in https://github.com/servo/servo/pull/46166
- script: Migrate
dom/mediato&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46156 - layout: Refactor accessibility tree child node update logic by @alice in https://github.com/servo/servo/pull/45971
- dependabot: Group wgpu and only allow patch updates by @sagudev in https://github.com/servo/servo/pull/46177
- deny: Allow some
quick-xmladvistories by @mrobinson in https://github.com/servo/servo/pull/46192 - android: Set explicit panic hook by @jschwe in https://github.com/servo/servo/pull/46157
- net: Catch panics in
resvg::renderwithcatch_unwind. by @mukilan in https://github.com/servo/servo/pull/46185 - script/net: Drop
ModuleFetchClientin favour ofRequestClientby @Gae24 in https://github.com/servo/servo/pull/46163 - devtools: keep object actor identity stable across grips by @atbrakhi in https://github.com/servo/servo/pull/46201
- script: Make
IframeCollection::set_viewport_detailsresilient to missing<iframe>s by @mrobinson in https://github.com/servo/servo/pull/46194 - script: Implement sign, verify and generateKey operations of Ed448 by @kkoyung in https://github.com/servo/servo/pull/46180
- script: Remove
FromJSValConvertible::from_jsvalby @Gae24 in https://github.com/servo/servo/pull/46191 - mach: Use git diff-tree to extract WPT changes in the export script by @jschwe in https://github.com/servo/servo/pull/46227
- script: Remove dead code in document module by @yezhizhen in https://github.com/servo/servo/pull/46228
- android: Convert navigation bar to Compose UI by @veyndan in https://github.com/servo/servo/pull/46164
- mach: Add necessary space between command-line arguments
windows.pyand handle GStreamer failed installation by @dDostalker in https://github.com/servo/servo/pull/46181 - script: Remove dead code from
HTMLCanvasElement&CanvasRenderingContext2Dby @yezhizhen in https://github.com/servo/servo/pull/46225 - mach: Add debugmozjs support to the try-parser by @jschwe in https://github.com/servo/servo/pull/46222
- layout: Make accessibility tree an actual tree. by @alice in https://github.com/servo/servo/pull/45798
- libservo: Add crate level documentation by @mukilan in https://github.com/servo/servo/pull/46193
- webgpu: Support
GPUExternalTextureby @sagudev in https://github.com/servo/servo/pull/45873 - script: Update
<select>shadow tree after call to setValue by @simonwuelker in https://github.com/servo/servo/pull/46230 - script: Remove clippy lint by refactoring code and using FxHashSet for intermediate hashset by @Narfinger in https://github.com/servo/servo/pull/46238
- script: Do not trigger restyles on light tree children not in the flat tree by @mrobinson in https://github.com/servo/servo/pull/46188
- script: JSContextify serviceworker by @Narfinger in https://github.com/servo/servo/pull/46243
- script: JSContextify fetch, elementinteral/servointernal and webrtc by @Narfinger in https://github.com/servo/servo/pull/46248
- layout: Explicitly collect
Vecintable/layout.rsto avoid clippy exception by @Narfinger in https://github.com/servo/servo/pull/46239 - android: Replace
dispatchActionwith regular functions by @veyndan in https://github.com/servo/servo/pull/46253 - mach: Fix confusing servo_binary arg on android / ohos by @jschwe in https://github.com/servo/servo/pull/46198
- script: Migrate
dom/webvttto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46254 - Update stylo (enable scrollbar-color/scrollbar-width behind a pref for the servo engine) by @UMCEKO in https://github.com/servo/servo/pull/46256
- layout: Do not create widgets for elements with the
contentproperty by @mrobinson in https://github.com/servo/servo/pull/46249 - script: Pass
&mut JSContextto conversions by @TimvdLippe in https://github.com/servo/servo/pull/46229 - script: Remove dead code in module
nodeby @yezhizhen in https://github.com/servo/servo/pull/46260 - script: Do not clone nodes into a live document for SVG's
<use>by @mrobinson in https://github.com/servo/servo/pull/46261 - script: Use
safe_to_jsvalwhere possible by @TimvdLippe in https://github.com/servo/servo/pull/46262 - net: Gracefully handle Servo crashes in the
FetchThreadby @mrobinson in https://github.com/servo/servo/pull/46264 - script: Do not crash with delete command when cursor is at start of the editing host by @TimvdLippe in https://github.com/servo/servo/pull/46265
- script: JSContextify
get_cssom_stylesheetby @lumiscosity in https://github.com/servo/servo/pull/46267 - script: Migrate
dom/debuggerto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46268 - script: Clean up and fully migrate
dom/geometryto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46269 - script: JSContextify
dom/node/nodelist.rsby @lumiscosity in https://github.com/servo/servo/pull/46270 - stylo: Don't traverse text nodes by @simonwuelker in https://github.com/servo/servo/pull/46272
- Upgrade num-bigint from v0.4.7 (yanked) to v0.4.8 by @Loirooriol in https://github.com/servo/servo/pull/46275
- android: Convert toolbar buttons on large screens to Compose UI by @veyndan in https://github.com/servo/servo/pull/46257
- dom_struct: Stop expecting dead code; script: Remove dead code in servoparser & pointerevent by @yezhizhen in https://github.com/servo/servo/pull/46278
- CI: Install shellcheck dependency for test-scripts by @cychronex-labs in https://github.com/servo/servo/pull/46276
- script: Migrate
dom/workersanddom/permissionsto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46284 - script: Migrate
dom/documentto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46285 - script: Do not clone script data unnecessarily by @Narfinger in https://github.com/servo/servo/pull/46072
- script: Do not panic on WebGL command errors in debug mode by @mrobinson in https://github.com/servo/servo/pull/46282
- script: Enable serviceworker flag for CSP tests by @TimvdLippe in https://github.com/servo/servo/pull/46279
- android: Remove unused resources by @veyndan in https://github.com/servo/servo/pull/46287
- script: Refactor GL_POINT_SPRITE / GL_PROGRAM_POINT_SIZE into a helper function by @mrobinson in https://github.com/servo/servo/pull/46283
- deps: Bump ecdsa to 0.17 and p256 to 0.14 by @kkoyung in https://github.com/servo/servo/pull/46299
- android: Redownload all Material drawables by @veyndan in https://github.com/servo/servo/pull/46290
- android: Add CI smoketest by @jschwe in https://github.com/servo/servo/pull/46158
- mach: Remove support for installing dependencies via Chocolately by @dpaoliello in https://github.com/servo/servo/pull/42372
- script: Don't store
DomRootinsidePerformanceinterfaces by @Gae24 in https://github.com/servo/servo/pull/46301 - script: Avoid creating a
Trusted<Document>during GC by @jschwe in https://github.com/servo/servo/pull/46255 - script: JSContextify credentialsmanager and formdata by @Narfinger in https://github.com/servo/servo/pull/46246
- net: Expose thread-local bool to suppress custom panic hook. by @mukilan in https://github.com/servo/servo/pull/46226
- android: Support Android 10 and unify API-level definition by @jschwe in https://github.com/servo/servo/pull/46308
- layout: Clear fragments and caches under layout roots after failed layout root layout by @mrobinson in https://github.com/servo/servo/pull/46127
- layout: Fix
<textarea>selection hit testing for 2+ words per line by @SimonSapin in https://github.com/servo/servo/pull/46309 - script: JSContextify fontface, WebGPU, formdata by @Narfinger in https://github.com/servo/servo/pull/46310
- layout: Clear laid out fragments of descendants when
contentis replaced by @Loirooriol in https://github.com/servo/servo/pull/46314 - android: Remove setting to show if screen is redrawing by @veyndan in https://github.com/servo/servo/pull/46311
- mach: Fix flaky fail in test-scripts by @jschwe in https://github.com/servo/servo/pull/46315
- script: Disable incremental garbage collection by @mrobinson in https://github.com/servo/servo/pull/46316
- script: Relax lifetime requirements on UnrootedIterators by @Narfinger in https://github.com/servo/servo/pull/46143
- deps: Update crossbeam-epoch from 0.9.18 to 0.9.20 (RUSTSEC-2026-0204) by @Loirooriol in https://github.com/servo/servo/pull/46324
- script: Migrate
dom/performanceto&mut JSContextby @lumiscosity in https://github.com/servo/servo/pull/46318 - net: Fix heuristic cache behavior to require revalidation by default by @arayaryoma in https://github.com/servo/servo/pull/46307
- script: Remove some unnecessary JSContext arguments. by @jdm in https://github.com/servo/servo/pull/46330
- script: Move MutationObserver and VisualViewport to JSContext by @Narfinger in https://github.com/servo/servo/pull/46312
- script: Align
Node::Insertaccording to Specs by @shubhamg13 in https://github.com/servo/servo/pull/46328 - android: Remove usage of Fragments by @veyndan in https://github.com/servo/servo/pull/46317
- script: Implement fetching request for track elements by @TimvdLippe in https://github.com/servo/servo/pull/46289
- script: Move html elements into documentmetadata by @TimvdLippe in https://github.com/servo/servo/pull/46331
- script: Implement importKey and exportKey operation of X448 by @kkoyung in https://github.com/servo/servo/pull/46334
- layout: Incrementally update accessibility tree based on DOM changes by @alice in https://github.com/servo/servo/pull/45578
- script: Finish JSContextify, remove CanGc and CanGc reflect methods by @Narfinger in https://github.com/servo/servo/pull/46333
- script: Ignore non-activatable
<area>elements when clicking a image by @simonwuelker in https://github.com/servo/servo/pull/46341 - ci: Remove unneeded install step by @jschwe in https://github.com/servo/servo/pull/46342
- wpt: Wait for document.fonts.ready in empty-text-baseline-001/002.html by @simonwuelker in https://github.com/servo/servo/pull/46344
- script: Immediately root permissions descriptor objects by @Narfinger in https://github.com/servo/servo/pull/46195
- android: Replace
ConstraintLayoutwithLinearLayoutby @veyndan in https://github.com/servo/servo/pull/46345 - script: Throw meaningful exception for Element.matches. by @jdm in https://github.com/servo/servo/pull/46352
- Upgrade Stylo to 2026-07-01 by @Loirooriol in https://github.com/servo/servo/pull/46129
- layout: Don't shrink static position rect in
HoistedAbsolutelyPositionedBox::layoutwhen aligning with containing block by @simonwuelker in https://github.com/servo/servo/pull/46358 - Upgrade to Stylo with scroll-behavior props gated at runtime by @nicoburns in https://github.com/servo/servo/pull/46357
- script: Implement deriveBits and generateKey operations of X448 by @kkoyung in https://github.com/servo/servo/pull/46376
- script: Remove cx argument from macros by @TimvdLippe in https://github.com/servo/servo/pull/46375
- Replace
RefCell<bool / u32 / usize>withCellby @SimonSapin in https://github.com/servo/servo/pull/46377 - script: Fix crash when assigning invalid values to adoptedStylesheets by @TimvdLippe in https://github.com/servo/servo/pull/46373
- script: Cleanup codegen after JSContext migration by @TimvdLippe in https://github.com/servo/servo/pull/46374
- script: Implement
KeyframeEffect::{getKeyframes/setKeyframes}by @simonwuelker in https://github.com/servo/servo/pull/46118 - script: Fix some potential borrow hazards by @Narfinger in https://github.com/servo/servo/pull/46381
- android: Convert progress indicator to Compose UI by @veyndan in https://github.com/servo/servo/pull/46353
- Unpin some crypto dependencies by @atouchet in https://github.com/servo/servo/pull/46401
- script: Implement getPublicKey operations of Ed448 and X448 by @kkoyung in https://github.com/servo/servo/pull/46402
- layout: Use
Vec::clear()instead ofVec::truncate(0)intable/construct.rsby @Narfinger in https://github.com/servo/servo/pull/46408 - ci: Remove vello compilation check from Windows by @yezhizhen in https://github.com/servo/servo/pull/46409
- url: Add a fast path for matching about:blank against non about: URLs. by @jdm in https://github.com/servo/servo/pull/46411
- layout: Use the
Stylistto get list of@font-facerules by @simonwuelker in https://github.com/servo/servo/pull/46271 - script: Consolidate Window-specific request client logic. by @jdm in https://github.com/servo/servo/pull/46412
- net: Support stale-while-revalidate directive by @arayaryoma in https://github.com/servo/servo/pull/46060
- script: Don't store rooted values inside
ElementInternalsandFormDataby @Gae24 in https://github.com/servo/servo/pull/46349 - script: Add unrooted variant of
MessageSourceby @Gae24 in https://github.com/servo/servo/pull/46419 - script: Fix Borrow Hazards in ByteTeeUnderlyingSource by @Narfinger in https://github.com/servo/servo/pull/46384
- servoshell: Align console behavior for shell and double‑click launches by @yezhizhen in https://github.com/servo/servo/pull/43010
- script: Convert
DomRootusages toDominside event types by @Gae24 in https://github.com/servo/servo/pull/46418 - script: Update shadow tree after an element is picked to update visuals of element by @rhit-kapilaar in https://github.com/servo/servo/pull/46386
- script: Migrate some calls from
DomRefCell::borrow_muttosafe_borrow_mut(cx.no_gc())by @simonwuelker in https://github.com/servo/servo/pull/46435 - net/script: Allow Content-Length header to inform buffers downstream by @Narfinger in https://github.com/servo/servo/pull/45758
- fonts: Properly resolve conflicts between
@font-facerules by @simonwuelker in https://github.com/servo/servo/pull/46436 - script: Reduce unnecessary rooting in
ScriptWindowProxies::insertby @yezhizhen in https://github.com/servo/servo/pull/46430 - layout: Properly account for nested PBM of ancestor inline boxes for floats inside inline boxes by @Loirooriol in https://github.com/servo/servo/pull/46407
- layout: add support for box-decoration-break by @Psychpsyo in https://github.com/servo/servo/pull/45492
- script: Have
SVGSVGElementstoreUuiddirectly instead of theStringrepresentation of aUuidby @Narfinger in https://github.com/servo/servo/pull/46438 - script: avoid
DomRootinsideIDBIndex,GPUCompilationMessageandXRInputSourceby @Gae24 in https://github.com/servo/servo/pull/46420 - webgpu: Update to wgpu v30 by @sagudev in https://github.com/servo/servo/pull/46178
- Script: Enable SVG presentation attributes with updated stylo dependency by @mu-mostafa98 in https://github.com/servo/servo/pull/45405
- script: Reduce rooting in Headers, Response, Request, FetchContext by @yezhizhen in https://github.com/servo/servo/pull/46446
- script: Support font in in svg by @yodalee in https://github.com/servo/servo/pull/45979
- script: Fix Web Audio borrow hazards by @Taym95 in https://github.com/servo/servo/pull/46452
- deny: Ignore
rustybuzzunmaintained by @yezhizhen in https://github.com/servo/servo/pull/46457 - fonts-traits: Don't implement Eq for FontTemplateDescriptor by @Loirooriol in https://github.com/servo/servo/pull/46453
- script: Use safe typed array slice APIs. by @jdm in https://github.com/servo/servo/pull/46416
- base: Improve documentation for GenericOneshot channel by @Narfinger in https://github.com/servo/servo/pull/42116
- tracing: Implement instrument_all macro by @Narfinger in https://github.com/servo/servo/pull/42578
- canvas: Enable multithreading in vello_cpu & workaround panic (improve 27% FPS , 7% power efficiency) by @yezhizhen in https://github.com/servo/servo/pull/46410
- deps: Update freetype and harfbuzz by @jschwe in https://github.com/servo/servo/pull/46233
- deps: Update mozangle by @jschwe in https://github.com/servo/servo/pull/46455
- script: Don't always allocate
NodeRareDatawhen accessingWeakRangeVecby @mrobinson in https://github.com/servo/servo/pull/46440 - fonts: Fix unused_mut warning on ohos by @jschwe in https://github.com/servo/servo/pull/46473
- script_bindings: Pass cx to Setlike/Maplike/Iterable methods by @simonwuelker in https://github.com/servo/servo/pull/46472
- servoshell: Flip width and height to correct order by @janeoa in https://github.com/servo/servo/pull/46477
- ci: Pin versions for install-action to avoid breakage by @jschwe in https://github.com/servo/servo/pull/46492
- script: Store
DocumentLoader::blocking_loadsin aHashSetinstead of aVecby @Narfinger in https://github.com/servo/servo/pull/45974 - fonts: Always bundle freetype on android and ohos by @jschwe in https://github.com/servo/servo/pull/46480
- script: Flush author fonts when accessing document.fonts by @simonwuelker in https://github.com/servo/servo/pull/46495
- layout: Avoid extra tree walks when removing accessibility nodes. by @alice in https://github.com/servo/servo/pull/46348
- script: Reduce rooting in various places by @yezhizhen in https://github.com/servo/servo/pull/46498
- script_bindings: Use
PhantomDatainUnrootedDomand implementDebugandCloneby @mrobinson in https://github.com/servo/servo/pull/46499 - script: Require rooted handles in HeapBufferSource::new by @Taym95 in https://github.com/servo/servo/pull/46462
- webcrypto: Add error messages for
webcryptocrate. by @eachra-bawn in https://github.com/servo/servo/pull/46478 - webgpu: Support
GPUTextureUsage::TRANSIENT_ATTACHMENTandGPUCanvasContext::getConfigurationby @sagudev in https://github.com/servo/servo/pull/46286 - layout/script/fonts: Implement size_hint for iterator if easy by @Narfinger in https://github.com/servo/servo/pull/46437
- servoshell: Call
RenderingContext::resizewhen a window is resized synchronously afterWindow::request_inner_sizeby @janeoa in https://github.com/servo/servo/pull/46475 - script: Bump to mozjs with safe APIs by @Gae24 in https://github.com/servo/servo/pull/46461
- layout: Account for nested inline boxes when adjusting floats in RTL inline layout by @Loirooriol in https://github.com/servo/servo/pull/46500
- script_bindings: Remove the
LayoutFromRawtrait by @mrobinson in https://github.com/servo/servo/pull/46506 - layout: Remove some unnecessary mut by @Narfinger in https://github.com/servo/servo/pull/46496
- webgpu: Proper cleanup in GPUBuffer by @sagudev in https://github.com/servo/servo/pull/46415
- script: WeakReferenceable as Rc-ed dom_struct by @sagudev in https://github.com/servo/servo/pull/42311
- script: Centralize
get_buffer_source_copy/slicelogic by @shubhamg13 in https://github.com/servo/servo/pull/46069 - android: Remove needless key interceptors in
MainActivityby @veyndan in https://github.com/servo/servo/pull/46355 - script: Populate
document.fontswith web fonts from CSS by @simonwuelker in https://github.com/servo/servo/pull/46509 - script: Align
lookup_custom_element_definitionaccording to specs by @shubhamg13 in https://github.com/servo/servo/pull/46179 - ci: Fix broken windows self-hosted builds by @jschwe in https://github.com/servo/servo/pull/46533
- script: Mechanically migrate to
reflect_dom_object_with_protoby @TimvdLippe in https://github.com/servo/servo/pull/46529 - ci: Disable macOS's C API job on push to 'main'. by @mukilan in https://github.com/servo/servo/pull/45703
- net: Handle brotli/zstd decode failures as
DecompressionErrorby @arayaryoma in https://github.com/servo/servo/pull/46508 - script: Implement table-related TODO of the delete command by @Psychpsyo in https://github.com/servo/servo/pull/46539
- fonts: Deduplicate web font requests to the same URL by @simonwuelker in https://github.com/servo/servo/pull/46526
- script: Reduce rooting in Stream by @yezhizhen in https://github.com/servo/servo/pull/46548
- Use
fontsanwithwuff-backed (pure rust) WOFF decoding by @nicoburns in https://github.com/servo/servo/pull/46439 - net: Parse proxy auth by @Narfinger in https://github.com/servo/servo/pull/46521
- layout: Adjust the static position of abspos inside float in inline layout by @Loirooriol in https://github.com/servo/servo/pull/46505
- script: Remove duplicate
LargestContentfulPaintinBindings.confby @shubhamg13 in https://github.com/servo/servo/pull/46552 - script: Always reset document.fonts.ready after starting to load web fonts by @simonwuelker in https://github.com/servo/servo/pull/46541
- script: Remove Borrow Hazard in HTMLImageElement:react_to_environment_changes_sync_step by @Narfinger in https://github.com/servo/servo/pull/46405
- fonts: Small optimization in WebFont download handler by @Narfinger in https://github.com/servo/servo/pull/46528
- script: Switch GetClientRect and dirty_all_nodes to use unrooted iterators by @Narfinger in https://github.com/servo/servo/pull/46144
- net: Do not return svg rasterization if requested size is zero width/height by @Narfinger in https://github.com/servo/servo/pull/46199
- script: Poll gamepad events in a seperate thread by @log101 in https://github.com/servo/servo/pull/44792
- layout: Treat
<button>as a widget by @Loirooriol in https://github.com/servo/servo/pull/46536 - script: Initialize descriptor fields of css-connected FontFace objects by @simonwuelker in https://github.com/servo/servo/pull/46537
- script: Use
as_slice_safeforget_buffer_source_sliceby @shubhamg13 in https://github.com/servo/servo/pull/46550 - layout: Add statistics for accessibility updates. by @alice in https://github.com/servo/servo/pull/46385
- script: Remove
Document::switch_the_fontfaceset_to_loading_if_neededby @simonwuelker in https://github.com/servo/servo/pull/46557 - script: Implement insertimage command by @Psychpsyo in https://github.com/servo/servo/pull/46538
- deps: Upgrade rusqlite, sea-query and sea-query-rusqlite by @Narfinger in https://github.com/servo/servo/pull/46559
- layout: Minor optimization in flex layout by @Narfinger in https://github.com/servo/servo/pull/46563
- script: Make
bp_positioncomply more closely to the specification by @mrobinson in https://github.com/servo/servo/pull/46532 - layout: Trace
reflow_goalparameter inLayout::handle_reflowby @jschwe in https://github.com/servo/servo/pull/46554 - android: Convert omnibox to Compose UI by @veyndan in https://github.com/servo/servo/pull/46565
- Script: Create DOM element types for SVG shapes, gradients, and structural elements by @mu-mostafa98 in https://github.com/servo/servo/pull/46558
- servo: Allow registering the
WebXrRegistryafterServohandle creation by @Narfinger in https://github.com/servo/servo/pull/46494 - webgpu: Split GPUAdapterInfo into separate crate by @Narfinger in https://github.com/servo/servo/pull/46111
- script: Mechanically migrate more to
reflect_dom_object_with_protoby @TimvdLippe in https://github.com/servo/servo/pull/46584 - script: Implement importKey and exportKey operation of KMAC by @kkoyung in https://github.com/servo/servo/pull/46583
- mach/uv: Switch from native-tls to system-certs by @Narfinger in https://github.com/servo/servo/pull/45024
- script: Move more into script_webgpu crate by @Narfinger in https://github.com/servo/servo/pull/46534
- script: Port FontFace to use
reflect_dom_object_with_protoby @TimvdLippe in https://github.com/servo/servo/pull/46585 - fonts+layout: Support
font-variant-alternatesby @simonwuelker in https://github.com/servo/servo/pull/45308 - layout: Avoid potential n² comparisons when updating children of accessibility nodes by @alice in https://github.com/servo/servo/pull/46530
- webxr: Properly destroy layer
Surfaces if removal happens betweenbegin_frameandend_frameby @mrobinson in https://github.com/servo/servo/pull/46588 - Upgrade to WiX 7 by @dpaoliello in https://github.com/servo/servo/pull/46208
- Use subfont when setting harfbuzz font funcs by @nicoburns in https://github.com/servo/servo/pull/46560
- script: Move textcontrol and related structs into
dom/html/form_controlsby @TimvdLippe in https://github.com/servo/servo/pull/46332 - script: Mechanically migrate more to
reflect_dom_object_with_protoby @TimvdLippe in https://github.com/servo/servo/pull/46593 - script: Implement IDBIndex.name attribute. by @skyz1 in https://github.com/servo/servo/pull/45512
- script: Optimize element::has_class() by @Narfinger in https://github.com/servo/servo/pull/46594
- script: Implement inserthorizontalrule command by @Psychpsyo in https://github.com/servo/servo/pull/46597
- script: Dirty old parents during
moveByby @mrobinson in https://github.com/servo/servo/pull/46599 - script: Reduce rooting in serialization of
DOMQuadby @yezhizhen in https://github.com/servo/servo/pull/46598 - script: Ensure event handlers on adopted elements check the owner document. by @jdm in https://github.com/servo/servo/pull/46596
- paint: Fix a race condition in the WebGL image handler by @mrobinson in https://github.com/servo/servo/pull/46601
- script: Don't store rooted values inside
ControlElementby @Gae24 in https://github.com/servo/servo/pull/46460 - script: Implement generateKey and get key length operations of KMAC by @kkoyung in https://github.com/servo/servo/pull/46606
- script: Allow calling get_buffer_source_copy with members of webidl unions. by @jdm in https://github.com/servo/servo/pull/46605
- script: Mark document tree as dirty when web fonts are removed by @simonwuelker in https://github.com/servo/servo/pull/46568
- android: Extract omnibox into own function by @veyndan in https://github.com/servo/servo/pull/46609
- script: Halt "update the rendering" for
Documentif rAF blocks rendering by @mrobinson in https://github.com/servo/servo/pull/46604 - script: Make iframe resizes immediately observable in child. by @jschwe in https://github.com/servo/servo/pull/46587
- script: Parse vtt payload for track elements by @TimvdLippe in https://github.com/servo/servo/pull/46383
- script: Decrement running count of loading fonts only after marking document tree as dirty by @simonwuelker in https://github.com/servo/servo/pull/46586
- layout: clamp rather than panicking when converting out of range value to 16bit integer for Taffy by @nicoburns in https://github.com/servo/servo/pull/46119
- script: Replace deprecated as_mut_slice with as_mut_slice_safe by @log101 in https://github.com/servo/servo/pull/46614
- android: Convert toolbar on large screens to Compose UI by @veyndan in https://github.com/servo/servo/pull/46612
- layout: Remove outdated comment. by @jdm in https://github.com/servo/servo/pull/46620
- script: Implement sign and verify operations of KMAC by @kkoyung in https://github.com/servo/servo/pull/46622
- layout: Implement block-axis centering for buttons by @Loirooriol in https://github.com/servo/servo/pull/46590
- script: Store microtasks as
Box<dyn MicroTaskRunnable>by @sagudev in https://github.com/servo/servo/pull/46607 - script: Remove unused net dependency. by @jdm in https://github.com/servo/servo/pull/46623
- webvtt: Remove interior mutability from the parser by @simonwuelker in https://github.com/servo/servo/pull/46630
- indexeddb: Move handling of
SyncOperation::Abortto a method by @mrobinson in https://github.com/servo/servo/pull/46629 - script: Remove unnecessary rooting & conversion in
htmlmediaelement.rsby @yezhizhen in https://github.com/servo/servo/pull/46632 - indexeddb: Always consider
versionupgradeevents to be exclusive by @mrobinson in https://github.com/servo/servo/pull/46610 - script: Handle CSS-connected font faces in
FontFaceSet::{Add, Delete}by @simonwuelker in https://github.com/servo/servo/pull/46634 - script: don't store a
WindowinsideRefreshRedirectDueby @Gae24 in https://github.com/servo/servo/pull/46633 - fonts: Support
font-language-overrideby @simonwuelker in https://github.com/servo/servo/pull/46618 - layout: Improvements to a11y update counters, and some extra tests by @alice in https://github.com/servo/servo/pull/46589
- layout: Don't use safe alignment for abspos children of flex containers by @simonwuelker in https://github.com/servo/servo/pull/46637
- script: Don't store rooted values inside
ElementsFilterand microtasks by @Gae24 in https://github.com/servo/servo/pull/46638 - script: Close open IndexedDB databases when tearing down a
Documentby @mrobinson in https://github.com/servo/servo/pull/46636 - script: Move htmlinputelement into
script/dom/html/form_controlsby @TimvdLippe in https://github.com/servo/servo/pull/46653 - android: Convert toolbar on small screens to Compose UI by @veyndan in https://github.com/servo/servo/pull/46626
- script: replace deprecated as_slice method with as_slice_safe method by @log101 in https://github.com/servo/servo/pull/46654
- script: Implement forwarddelete command by @Psychpsyo in https://github.com/servo/servo/pull/46608
- script: Reduce rooting in
useractivation.rsby @yezhizhen in https://github.com/servo/servo/pull/46656 - script: Do not panic when getting contents of detached array buffers. by @jdm in https://github.com/servo/servo/pull/46504
- script: Move more files to script_webgpu crate by @Narfinger in https://github.com/servo/servo/pull/46657
- layout: Avoid setting FragmentFlags for HTML elements on pseudo-elements by @Loirooriol in https://github.com/servo/servo/pull/46640
- net: Fix CSP trailing-dot host WPT resolution by @Taym95 in https://github.com/servo/servo/pull/46121
- script: Use NoGC for note_dirty_descendants by @Narfinger in https://github.com/servo/servo/pull/46659
- android: Upgrade all dependencies by @veyndan in https://github.com/servo/servo/pull/46666
- net: Store original response for preload requests. by @jdm in https://github.com/servo/servo/pull/46668
- image-rs: Remove unneeded
aviffeature by @jschwe in https://github.com/servo/servo/pull/46661 - android: Convert main activity to Compose UI by @veyndan in https://github.com/servo/servo/pull/46663
- layout: Improve paralelization and memory consumption in
InitialFlexBoxLayout::newby @Narfinger in https://github.com/servo/servo/pull/46595 - net: Allow starting the
FetchThreadasynchronously by @mrobinson in https://github.com/servo/servo/pull/46682 - script: Reduce GC-rooting in
NodeListby @SimonSapin in https://github.com/servo/servo/pull/46664 - serviceworkers: initial plumbing into storage endpoint for service worker caches by @gterzian in https://github.com/servo/servo/pull/46247
- android: Remove usage of appcompat by @veyndan in https://github.com/servo/servo/pull/46694
- script: Don't store rooted values inside
XPathResultValueby @Gae24 in https://github.com/servo/servo/pull/46690 - script: Address borrow hazard in DocumentEventHandler::handle_touch_event by @jdm in https://github.com/servo/servo/pull/46693
- indexeddb: Handle schema changes asynchronously by @mrobinson in https://github.com/servo/servo/pull/46615
- script: Account for nested rules when parsing selectors for CSSOM by @simonwuelker in https://github.com/servo/servo/pull/46687
- android: Remove View-based Material library by @veyndan in https://github.com/servo/servo/pull/46700
- script: Remove temporary root in
fn is_element_in_viewby @yezhizhen in https://github.com/servo/servo/pull/46678 - script: Replace raw pointer comparison with
==for DOM identity comparison by @yezhizhen in https://github.com/servo/servo/pull/46718 - tidy: Limit number of allowed Error::something uses in script crates. by @jdm in https://github.com/servo/servo/pull/46699
- ci: Disable choco / WiX installation on self-hosted runners by @mrobinson in https://github.com/servo/servo/pull/46724
- ci: Enable
allow-unsafe-pr-checkoutfor WPT runs by @mrobinson in https://github.com/servo/servo/pull/46721 - Update quick-xml and remove a couple of RUSTSEC ignored advisories by @atouchet in https://github.com/servo/servo/pull/46737
- android: Move dependencies to version catalog by @veyndan in https://github.com/servo/servo/pull/46727
- Fix adopted stylesheet borrow hazard by @SharanRP in https://github.com/servo/servo/pull/46684
- layout: Accessibility code cleanups by @alice in https://github.com/servo/servo/pull/46691
- stylo: Also update
AnimationState::PausedinAnimation::update_from_otherif delay changes by @mrobinson in https://github.com/servo/servo/pull/46689 - Use
ci-runners/actions/checkoutconsistently by @mrobinson in https://github.com/servo/servo/pull/46725 - script/layout: Add initial support for visible selections by @mrobinson in https://github.com/servo/servo/pull/46698
- script: Invalidate shadow root stylesheets after assigning to
adoptedStyleSheetsproperty by @simonwuelker in https://github.com/servo/servo/pull/46738 - script: Implement a readonly version of
CSSFontFeatureValuesRuleby @simonwuelker in https://github.com/servo/servo/pull/46728 - script: Implement
Touch::newby @yezhizhen in https://github.com/servo/servo/pull/46741 - base: Rework UTF-8/16/32 offset/length wrapper types by @SimonSapin in https://github.com/servo/servo/pull/46742
- media: Add cycle detection in WebAudio graphs by @Taym95 in https://github.com/servo/servo/pull/46451
- script: Implement
Animation.effect,AnimationEffect.getTiming(),AnimationEffect.getComputedTiming()andAnimationEffect.updateTiming()by @simonwuelker in https://github.com/servo/servo/pull/46677 - android: Move plugins to version catalog by @veyndan in https://github.com/servo/servo/pull/46746
- script: Avoid uncollectible cycles from IntersectionObserver.root by @apoorvapendse in https://github.com/servo/servo/pull/46739
- script: remove rooted variant of
MessageSourceby @Gae24 in https://github.com/servo/servo/pull/46745 - android: Add back icon in toolbar to settings and history by @veyndan in https://github.com/servo/servo/pull/46747
- Implement text-decoration-thickness by @nicoburns in https://github.com/servo/servo/pull/46592
- script: Use AtomicRefCell for layout-borrowed data in SVGSVGElement. by @jdm in https://github.com/servo/servo/pull/46757
- script: Use AtomicRefCell for CustomStateSet internal set. by @jdm in https://github.com/servo/servo/pull/46758
- script: Restrict borrow scope in XRTest::DisconnectAllDevices by @amittenak47 in https://github.com/servo/servo/pull/46743
- script: Don't store rooted values inside
TransformerTypeby @Gae24 in https://github.com/servo/servo/pull/46726 - layout: Simplify the way that document selection is handled in traversals by @mrobinson in https://github.com/servo/servo/pull/46762
- script: Use AtomicRefCell for text node contents. by @jdm in https://github.com/servo/servo/pull/46756
- android: Remove
GfxCallbacksas never invoked by @veyndan in https://github.com/servo/servo/pull/46765 - android: Fix back navigation when
ServoViewdisplayed by @veyndan in https://github.com/servo/servo/pull/46766 - Update rand crates by @atouchet in https://github.com/servo/servo/pull/46767
- ci: Fix ohos bencher error by reverting to
actions/checkoutby @yezhizhen in https://github.com/servo/servo/pull/46768 - android: Replace deprecated
onBackPressedby @veyndan in https://github.com/servo/servo/pull/46769 - android: Stop using hungarian notation by @veyndan in https://github.com/servo/servo/pull/46772
- android: Make
JNIServohidden to library consumers by @veyndan in https://github.com/servo/servo/pull/46771 - layout: Expand comment for BoxTreeString. by @jdm in https://github.com/servo/servo/pull/46778
- android: Let
ServoandServoViewtake any type ofContextby @veyndan in https://github.com/servo/servo/pull/46779 - fix Borrow Hazard in ResizeObserver::broadcast_active_resize_observations by @agrawalx in https://github.com/servo/servo/pull/46770
- layout: Use
f64when blending table content sizes by @mrobinson in https://github.com/servo/servo/pull/46775 - android: Remove duplicate
Contextby @veyndan in https://github.com/servo/servo/pull/46787 - script: Implement
safe_to_jsvalfor more types by @Gae24 in https://github.com/servo/servo/pull/46777 - canvas: Adjust memory pressure heuristic by @jschwe in https://github.com/servo/servo/pull/46786
- android: Remove native symbols if no corresponding implementation by @veyndan in https://github.com/servo/servo/pull/46782
- script: Make gamepad attribute optional in GamepadEvent by @log101 in https://github.com/servo/servo/pull/46788
- android: Remove theoretical origin customisation by @veyndan in https://github.com/servo/servo/pull/46784
- android: Remove
gstDebugStras unused by @veyndan in https://github.com/servo/servo/pull/46791 - android: Fix enablement of log filter groups by @veyndan in https://github.com/servo/servo/pull/46792
- android: Remove empty
AndroidManifestby @veyndan in https://github.com/servo/servo/pull/46793 - wpt: Add missing message type to autoplay permission query. by @jdm in https://github.com/servo/servo/pull/45962
- devtools: Add an initial basic autocomplete implementation by @freyacodes in https://github.com/servo/servo/pull/46382
- ci: Add support for nightly arm64 linux builds by @mukilan in https://github.com/servo/servo/pull/46760
- net: Use generic channels for fetch responses. by @jdm in https://github.com/servo/servo/pull/46807
- script: Add benchmark for DOM comparison by @yezhizhen in https://github.com/servo/servo/pull/46722
- android: Remove unused drawable by @veyndan in https://github.com/servo/servo/pull/46815
- android: Replace magic value with named constant by @veyndan in https://github.com/servo/servo/pull/46816
- android: Convert
JNIServoto Kotlin by @veyndan in https://github.com/servo/servo/pull/46817 - script: Add skeleton for
FileSystem*and implementDataTransferItem.webkitGetAsEntryby @yezhizhen in https://github.com/servo/servo/pull/46456 - layout: Fix baseline alignment of horizontal text in column flex container by @simonwuelker in https://github.com/servo/servo/pull/46697
- ci: Pass the 'force-github-hosted-runner' to common linux workflow. by @mukilan in https://github.com/servo/servo/pull/46825
- layout: Resolve accessibility damage in a single tree walk. by @alice in https://github.com/servo/servo/pull/46740
- media: Temporarily disable
vaandvaapiplugins to work around driver issues by @calvaris in https://github.com/servo/servo/pull/46489 - script: Remove note about resolved web-animations issue by @simonwuelker in https://github.com/servo/servo/pull/46831
- script: Fix borrow hazard when resolving XRSession end promises by @amittenak47 in https://github.com/servo/servo/pull/46830
- fonts: Apply Harfbuzz features globally when shaping by @mrobinson in https://github.com/servo/servo/pull/46837
- layout: Use a total order comparator when distributing extra space to rowspans by @mrobinson in https://github.com/servo/servo/pull/46841
- script: Implement inserttext command by @Psychpsyo in https://github.com/servo/servo/pull/46838
- script: Implement async FileSystemFileEntry.file() success callback by @yezhizhen in https://github.com/servo/servo/pull/46832
- layout: Have
InlineItem::EndInlineBoxcarry a reference to the box by @mrobinson in https://github.com/servo/servo/pull/46840 - layout: Separate
FontAndScriptInfointoFontAndScriptInfoandFontInfoby @mrobinson in https://github.com/servo/servo/pull/46839 - layout: Properly set IS_BLEND_CONTAINER when creating WebRender stacking contexts by @mrobinson in https://github.com/servo/servo/pull/45624
- script: Use
is_in_a_document_tree()to check if a node is in a tree by @SimonSapin in https://github.com/servo/servo/pull/46866 - script: Remove Element::set_attribute_from_parser's unused prefix argument by @Ms2ger in https://github.com/servo/servo/pull/46868
- test: Delay webxr test completion until all checks have completed. by @jdm in https://github.com/servo/servo/pull/46880
- android: Replace
servo.propertieswith version catalog by @veyndan in https://github.com/servo/servo/pull/46814 - layout: Map document selection offsets across inline formatting context text transformations by @mrobinson in https://github.com/servo/servo/pull/46864
- Make sure virtual keyboard is hidden when and is no longer focused on OHOS by @BudiArb in https://github.com/servo/servo/pull/46885
- fetch: Add support for
Request::duplexby @Taym95 in https://github.com/servo/servo/pull/46858 - Skip selection offsets when an entire node is selected by @SimonSapin in https://github.com/servo/servo/pull/46889
- dom: Follow the specification more closely when determining form submitter element action by @kevlu93 in https://github.com/servo/servo/pull/46860
- android: Replace
ServoCoordinateswith built-inSizeby @veyndan in https://github.com/servo/servo/pull/46869 - script: Ignore http status code error in image fetching by @yodalee in https://github.com/servo/servo/pull/46892
- android: Make
Servo.Callbacksa static class by @veyndan in https://github.com/servo/servo/pull/46895 - script: Implement async FileSystemEntry.getParent() success callback by @yezhizhen in https://github.com/servo/servo/pull/46879
- script: Expose
idtoLargestContentfulPaintby @shubhamg13 in https://github.com/servo/servo/pull/46828 - script: Claim blob URLs before fetching script sources. by @jdm in https://github.com/servo/servo/pull/46881
- ohos: Add target ohos to the hitrace feature guards to address clippy warnings by @janeoa in https://github.com/servo/servo/pull/46861
- script: Drop unsafe
ToJSValConvertible::to_jsvaland wrapper traitSafeToJSValConvertibleby @Gae24 in https://github.com/servo/servo/pull/46890 - script: Don't store rooted values inside
FocusableAreaby @Gae24 in https://github.com/servo/servo/pull/46564 - fetch: fix HTTP/2 ReadableStream request uploads by @Taym95 in https://github.com/servo/servo/pull/46888
- canvas: Box the enum with large size difference in variants by @janeoa in https://github.com/servo/servo/pull/46863
- script: Borrow hazard in Sanitizer::AllowElement by @sungmen in https://github.com/servo/servo/pull/46763
- script: Gracefully handle when password and username cannot be set in
XMLHttpRequestby @mrobinson in https://github.com/servo/servo/pull/46911 - audio: Rename
node.rstoaudio_node.rsby @mrobinson in https://github.com/servo/servo/pull/46913 - android: Inline
ServoOptionsby @veyndan in https://github.com/servo/servo/pull/46916 - script: Wire
elementforLargestContentfulPaintby @shubhamg13 in https://github.com/servo/servo/pull/46553 - fetch: implement Request navigation flags by @Taym95 in https://github.com/servo/servo/pull/46917
- android: Make
ServoView.GLThreada static class by @veyndan in https://github.com/servo/servo/pull/46926 - More gracefully handle header parsing errors by @mrobinson in https://github.com/servo/servo/pull/46923
- script: Stop using an unforgeable holder for global objects with unforgeable properties by @sagudev in https://github.com/servo/servo/pull/46930
- Upgrade to resvg v0.48.0 by @nicoburns in https://github.com/servo/servo/pull/46937
- script: Don't cache HTTP errors in the module map by @Gae24 in https://github.com/servo/servo/pull/46919
- android: Convert
Servoto Kotlin by @veyndan in https://github.com/servo/servo/pull/46925 - android: Remove unused code in
ServoViewby @veyndan in https://github.com/servo/servo/pull/46940 - script: More consistent compareDocumentPosition for disconnected nodes by @SimonSapin in https://github.com/servo/servo/pull/46886
- android: Make
glThreadimmutable by @veyndan in https://github.com/servo/servo/pull/46951 - layout: Allow shaping across inline box boundaries by @mrobinson in https://github.com/servo/servo/pull/46829
- font: Expose
ShapedTextSliceTypeto clarify differentShapedTextSlices by @mrobinson in https://github.com/servo/servo/pull/46836 - android: Split
SurfaceHolderCallbackinto own class by @veyndan in https://github.com/servo/servo/pull/46955 - mach: Fix windows servoshell version bump regex by @jschwe in https://github.com/servo/servo/pull/46959
- webcrypto: Add remaining error messages. by @eachra-bawn in https://github.com/servo/servo/pull/46960
- release: Validate tag before release workflow by @jschwe in https://github.com/servo/servo/pull/46956
- release: Bump version to 0.5.0 by @jschwe in https://github.com/servo/servo/pull/46962
- release: Switch to crates.io stylo crates by @jschwe in https://github.com/servo/servo/pull/46984
New Contributors
- @dDostalker made their first contribution in https://github.com/servo/servo/pull/46181
- @UMCEKO made their first contribution in https://github.com/servo/servo/pull/46256
- @mu-mostafa98 made their first contribution in https://github.com/servo/servo/pull/45405
- @apoorvapendse made their first contribution in https://github.com/servo/servo/pull/46739
- @amittenak47 made their first contribution in https://github.com/servo/servo/pull/46743
- @agrawalx made their first contribution in https://github.com/servo/servo/pull/46770
- @kevlu93 made their first contribution in https://github.com/servo/servo/pull/46860
- @sungmen made their first contribution in https://github.com/servo/servo/pull/46763
Full Changelog: https://github.com/servo/servo/compare/v0.4.0...v0.5.0