This Week In Servo 78

In the last week, we landed 68 PRs in the Servo organization’s repositories.

Planning and Status

Our overall roadmap is available online and now includes the initial Q3 plans. From now on, we plan to include the quarterly plan with a high-level breakdown in the roadmap page.

This week’s status updates are here.

Special thanks to canaltinova for their work on implementing the matrix transition algorithms for CSS3 transform animation. This allows (both 2D and 3D) rotate() , perspective() and matrix() functions to be interpolated, as well as interpolations between arbitrary transformations, though the last bit is yet to be implemented. In the process of implementation, we had to deal with many spec bugs, as well as implementation bugs in other browsers, which complicated things immensely – it’s very hard to tell if your code has a mistake or if the spec itself is wrong in complicated algorithms like these. Great work, canaltinova!

Notable Additions

glennw added support for scrollbars

canaltinova implemented the matrix decomposition/interpolation algorithm

nox landed a rustup to the 9/14 rustc nightly

ejpbruel added a websocket server for use in the remote debugging protocol

creativcoder implemented the postMessage() API for ServiceWorkers

API for ServiceWorkers ConnorGBrewster made Servo recycle session entries when reloading

mrobinson added support for transforming rounded rectangles

glennw improved webrender startup times by making shaders compile lazily

canaltinova fixed a bug where we don’t normalize the axis of rotate() CSS transforms

CSS transforms peterjoel added the DOMMatrix and DOMMatrixReadOnly interfaces

and interfaces Ms2ger corrected an unsound optimization in event dispatch

tizianasellitto made DOMTokenList iterable

iterable aneeshusa excised SubpageId from the codebase, using PipelineId instead

from the codebase, using instead gilbertw1 made the HTTP authentication cache use origins intead of full URLs

jmr0 fixed the event suppression logic for pages that have navigated

zakorgy updated some WebBluetooth APIs to match new specification changes

New Contributors

Interested in helping build a web browser? Take a look at our curated list of issues that are good for new contributors!

Screenshot

Some screencasts of matrix interpolation at work:

This one shows all the basic transformations together (running a tweaked version of this page. The 3d rotate, perspective, and matrix transformation were enabled by the recent change.

Servo’s new scrollbars!