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
Due to time-constraints these release notes unfortunately don't have a curated summary of the changes, but as usual there will be a monthly blog-post at https://servo.org/blog/ covering the changes of this release (May). The blog post will be published at a later point in time.
Full Changelog: v0.2.0...v0.3.0
Generated Release notes
What's Changed
font-kerning is none by @simonwuelker in #44634
Credential & HTMLCanvasElement by @yezhizhen in #44647
&mut JSContext to more accessors by @TimvdLippe in #44659
&mut JSContext to set_string_attribute by @TimvdLippe in #44660
&mut JSContext to most attribute modification methods by @TimvdLippe in #44664
redirectStart to document and expose it to PerformanceMark by @shubhamg13 in #44624
pointerup events by @mrobinson in #44666
&mut JSContext to handle_attribute_changes by @TimvdLippe in #44668
HTMLFormControlsCollection & HTMLFormElement to &mut JSContext by @yezhizhen in #44653
redirectEnd to document and expose it to PerformanceMark by @shubhamg13 in #44673
OffscreenCanvas & Navigator to &mut JSContext by @yezhizhen in #44671
ForOfIterator more convenient to use by @simonwuelker in #44356
canGc by @yezhizhen in #44678
IntersectionObserver,DOMRectReadOnly, ResizeObservor by @yezhizhen in #44681
PerformanceMark constructor by @shubhamg13 in #44702
SubtleCrypto.supports() for ECDH and X25519 by @kkoyung in #44706
zeroize_derive for zeroize crate by @shubhamg13 in #44705
&mut JSContext to HTMLTextAreaElement::handle_text_content_changed by @Gae24 in #44712
MediaDevices to &mut JSContext; Remove stale canGc for SVGElement by @yezhizhen in #44717
Document::Fonts&FontFaceSet by @yezhizhen in #44733
secureConnectionStart to document and expose it to PerformanceMark by @shubhamg13 in #44739
unrooted_must_root expect on AttributeStorage::remove by @mvanhorn in #44740
FrameState by @atbrakhi in #44744
HTMLStyleElement to &mut JSContext by @yezhizhen in #44686
&mut CurrentRealm to Promise::append_native_handler by @Gae24 in #44759
coalesced_move_event_ids to coalesced_mouse_move_event_ids by @yezhizhen in #44782
ShapedTextSlice and use it for line break opportunities by @mrobinson in #44609
DiagnosticsLogging configuration. by @mukilan in #44703
GlobalScope::broadcast_message_event. by @MavenRain in #44797
Blob and File by @yezhizhen in #44803
:active state across input events by @SharanRP in #43953
derive(DenyPublicFields) and make it's contain it's own tests by @sagudev in #44809
RUSTFLAGS=-D warnings by @sagudev in #44814
cross_origin_resource_policy_check to follow spec by @Gae24 in #44828
responseEnd to document and expose it to PerformanceMark by @shubhamg13 in #44850
&mut JSContext in MessagePort::pack_and_post_message and post_message_impl. by @MavenRain in #44806
DocumentFocusHandler::focused_area by @mrobinson in #44857
HttpsState by @Gae24 in #44852
<color> values in getComputedStyle for registered custom properties by @Loirooriol in #44856
dom/document/focus.rs by @mrobinson in #44867
FileReader.readAsBinaryString; Housekeep FileReader docs by @yezhizhen in #44858
<input> and <textarea> by @mrobinson in #44870
Document::performance_timing_attribute for getting timing-related values by @shubhamg13 in #44864
is_custom_data_attribute function to domname.rs by @kkoyung in #44876
&mut JSContext to AttributeStorage::ensure_dom by @Gae24 in #44879
FragmentTree immutable by @mrobinson in #44849
Script::update_style_attribute by @mrobinson in #44881
InlineFormattingContextLayout::push_glyph_store_to_unbreakable_segment by @mrobinson in #44905
RFC2397 data URL format; Use application/octet-stream for unspecified Blob type by @yezhizhen in #44897
FileReaderSync.ReadAsDataURL by @yezhizhen in #44924
SharedRwLock per-ScriptThread by @mrobinson in #44883
&mut JSContext by @MavenRain in #44930
busted subcommand by @simonwuelker in #44934
&mut JSContext by @MavenRain in #44942
<form> data by @yezhizhen in #44943
ClipPath for every single Fragment in the tree by @mrobinson in #44945
&mut JSContext in structuredclone::write by @MavenRain in #44946
font-variant-ligatures by @simonwuelker in #44903
font-variant-numeric by @simonwuelker in #44950
<form> POST by @yezhizhen in #44953
<form> escaped values by @yezhizhen in #44954
Document.parseHTML() by @kkoyung in #44952
<form> GET by @yezhizhen in #44957
mozilla\ElementInternals-setFormValue.html by @yezhizhen in #44960
Element.setHTML() and ShadowRoot.setHTML() by @kkoyung in #44983
&mut JSContext to spawn_pipeline by @TimvdLippe in #44992
initial-scale by @yezhizhen in #44979
&mut JSContext to XPath DOM objects by @TimvdLippe in #45000
AttrValue by @mrobinson in #44931
&mut JSContext to structuredclone::read by @Gae24 in #45014
ignore_malloc_size_of on AudioNode::node_id by @niyabits in #45026
Element::get_attribute_string_value by @TimvdLippe in #45023
font-variant-east-asian by @simonwuelker in #44989
get_attribute_string_value by @TimvdLippe in #45031
border-image-outset clipping by @lumiscosity in #45039
use accesskit::NodeId in accessibility_tree.rs. by @alice in #45033
root_node_id a member of AccessibilityTree by @alice in #45034
servoparser/mod.rs by @kkoyung in #45053
&mut JSContext to Serializable::deserialize by @Gae24 in #45058
structuredclone.rs migration to &mut JSContext by @Gae24 in #45061
&mut JSContext to Blob::new by @Gae24 in #45076
get_attribute_string_value by @TimvdLippe in #45060
hash field of SubtleHmacKeyAlgorithm by @kkoyung in #45075
<form enctype="multipart/form-data"> by @yezhizhen in #45028
webxr crate as optional dependency for all targets. by @mukilan in #45079
&mut JSContext to dictionary constructors by @Gae24 in #45098
get_attribute with with_attribute by @TimvdLippe in #45081
rustfmt::skip by @mrobinson in #45096
ontransitionstart EventHandler by @lumiscosity in #45106
&mut JSContext to XPath evaluation by @TimvdLippe in #45009
FromJSValConvertible::safe_from_jsval in codegen by @Gae24 in #45110
<form enctype="text/plain"> correctly by @yezhizhen in #45111
GPUMipmapFilterMode by @sagudev in #45132
ownPropertyLength by @eerii in #45054
font-feature-settings by @simonwuelker in #45059
GPUTexture and GPUBuffer for GPUBindingResource by @sagudev in #45140
safe_from_jsval by @Gae24 in #45149
font-variant-position by @simonwuelker in #45142
FromJSValConvertible::safe_from_jsval for string types by @Gae24 in #45117
GPUTexture in all places where GPUTextureView is allowed by @sagudev in #45154
CryptoKey interface by @kkoyung in #45163
CSSKeyframesRuleMethods::AppendRule by @mrobinson in #45173
safe_from_jsval for Record by @Gae24 in #45184
NavigatorStorageUtils by @shubhamg13 in #45194
PrintTree::new accept impl Display by @mrobinson in #45195
from_jsval to safe_from_jsval by @Gae24 in #45201
script/dom/console.rs to use &mut JSContext by @SteveSharonSam in #45181
webgl_testing_context_creation_error for testing by @AbdAlRahmanGad in #45213
GenericSharedMemory::into_arc_vec for SerializableImageData -> ImageData by @yezhizhen in #45223
&mut JSContext to CharacterData::content_changed by @TimvdLippe in #45225
temp_cx in Drop of LoadBlocker by @TimvdLippe in #45087
String::from instead of to_string in script/dom/console.rs by @SteveSharonSam in #45231
BaseFragment by @mrobinson in #45197
NonCustomPropertyId::enabled_for_all_content by @mrobinson in #45226
Painter animating image cache by @Narfinger in #45209
IFrameCollection on tree changes by @mrobinson in #45236
&mut JSContext to CSSStyleDeclaration::new by @TimvdLippe in #45244
CanGc in contenteditable/ by @TimvdLippe in #45245
CanGc from some more directories by @TimvdLippe in #45247
mask-* properties enabled by @nicoburns in #45136
find_child in get_applied by @eerii in #45250
&mut JSContext to Console::internal_warn by @kunalmohan in #45259
New Contributors