Technology1 min read

September in Servo: <progress>, rounded rectangles, and more

By · Published by Everything Blog

In short

The release implements vital CSS and DOM specifications, including typed arithmetic, the alpha function, and rounded rectangle methods on 2D canvas contexts. Security and performance were strengthened through core updates to SpiderMonkey and mozangle, alongside eager JavaScript evaluation in the developer console. Additionally, underlying graphics work improved WebGL2 conformance and enabled the egui.rs demo with WebGPU. These combined additions also make the Candy Crush web game fully playable within the engine.

Key points

  • Real-world compatibility improvements now allow users to play Candy Crush and run the egu…: Real-world compatibility improvements now allow users to play Candy Crush and run the egui.rs demo with WebGPU.
  • Developer experience is improved through eager JavaScript evaluation in the developer too…: Developer experience is improved through eager JavaScript evaluation in the developer tools console for faster feedback.
  • Embedding APIs were refined to automatically throttle hidden views and support clearing s…: Embedding APIs were refined to automatically throttle hidden views and support clearing session history.

Sources checked by our analysis pipeline: 1

Servo 0.7.0 contains all of the changes we landed in September, spanning 527 commits!

The developer tools console now eagerly evaluates JS inputs, allowing faster feedback (@freyacodes, #47527).

We’ve shipped new web platform features:

- the :checked pseudoclass (@skyz1, #47987)

- the user-select property (@SimonSapin, @mrobinson, #48137, #48242)

- the <progress> element (@rayguo17, #46974)

- CSS typed arithmetic (@Loirooriol, #48338)

- the alpha() CSS function (@Loirooriol, #48344)

- the font-width property (@Loirooriol, #47914)

Plus a bunch of new DOM APIs:

- parentRule on CSSRule and CSSStyleDeclaration (@skyz1, #47743)

- version on HTMLHtmlElement (@SilvioPilato, #47786)

- getComposedRanges() and direction on Selection (@mrobinson, #47683)

- baseURL on CSSStyleSheet (@Gae24, #47783)

- CSS modules(@Gae24, #47813) and text modules (@Gae24, #47863)

- getContextAttributes() on CanvasRenderingContext2D and OffscreenCanvasRenderingContext2D (@Taym95, #47868)

- the Content-Language header (@TimvdLippe, #47930)

- dir on Document (@yezhizhen, #48170)

- SVGAElement, SVGPatternElement, SVGTSpanElement, SVGTextContentElement, SVGTextElement, SVGTextPositioningElement (@mu-mostafa98, #48174)

- the MLKEM768-X25519 algorithm for WebCrypto (@kkoyung, #48240, #48282, #48313, #48350)

- roundRect() on CanvasRenderingContext2D (@yezhizhen, #48293)

- paintTime and presentationTime on PerformancePaintTiming (@shubhamg13, #47926)

- getCueAsHTML() on VTTCue (@TimvdLippe, #48146)

Security

We upgraded…

Technology