This month in Servo: upcoming events, new browser UI, and more!

2023-09-15 Conferences and booths you can find us at in September, plus nightly updates around rustls, WebGPU, ARM32, floats, white-space, crash handling, and browser UI.

Servo has had some exciting changes land in our nightly builds over the last month:

  • as of 2023-08-09, we now use rustls instead of OpenSSL (#30025)
  • as of 2023-08-21, our experimental WebGPU support was updated (#29795, #30359)
  • as of 2023-08-26, we can now build on ARM32 in addition to ARM64 (#30204)
  • as of 2023-09-01, CSS floats are now supported again (#30243 et al)
  • as of 2023-09-05, ‘white-space: nowrap’ is now supported again (#30259)
  • as of 2023-09-07, we have an improved crash error page (#30290)
  • as of 2023-09-15, our new browser UI is enabled by default (#30049)
WebGPU game of life, showing a 32x32 grid where the living cells are shaded with a rainbow texture

While our WebGPU support is still very much experimental (--pref dom.webgpu.enabled), it now passes over 5000 more tests in the Conformance Test Suite, after an upgrade from wgpu 0.6 (2020) to 0.16 (2023) and the addition of GPUSupportedFeatures. A few WebGPU demos now run too, notably those that don’t require changing the width or height on the fly, such as the Conway’s Game of Life built in Your first WebGPU app.

Both of these were contributed by Samson @sagudev, who has also done a lot of work on our DOM bindings, SpiderMonkey integration, and CI workflows, and we’re pleased to now have them join Servo as a reviewer too!

Wikipedia article for Servo, showing article text flowing around the floating infobox on the right

On the CSS front, floats and ‘white-space: nowrap’ were previously only supported in our legacy layout engine (--legacy-layout), but now they are supported again, and better than ever before! Floats in particular are one of the trickiest parts of CSS2, and our legacy version had many bugs that were essentially unfixable due to the legacy layout architecture.

Sometimes Servo crashes due to bugs or unimplemented features, and Rust helps us ensure that they almost always happen safely by panicking, but there’s still a lot we can do to improve the user experience while surfacing those panics, especially on platforms without stdio like Windows.

Our new crash error page shows the panic message and stack trace, instead of a confusing “unexpected scheme” error, and allows the user to reload the page. Note that not all crashes are handled gracefully yet — more work is needed to allow recovery from crashes in style and layout.

Servo’s new crash error page, showing a fake panic!() inserted at the start of Document::Write

Servo’s example browser — the nightly version of Servo you can download and run — now has a location bar! This new browser UI, or “minibrowser” mode, is now enabled by default, though you can disable it with --no-minibrowser if you run into any problems. See also #30049 for known issues with the minibrowser.

Servo’s new browser UI, showing a toolbar with a location field and go button

Upcoming events

September is also a big month for Servo as a project! We have joined Linux Foundation Europe, and we’re also attending several events in Bilbao, Spain, and Shanghai, China.

Servo will be at the LF Europe Member Summit in Bilbao, with a brief project update on 18 September at 10:45 local time (08:45 UTC), and the Open Source Summit Europe, with Manuel Rego speaking about Servo on 21 September at 11:55 local time (09:55 UTC).

At both events, we will also have a booth where you can play with Servo on a real device and ask us questions about the project, all day from 18 September through 21 September.

The following week, you can find us at the GOSIM workshop and conference in Shanghai, with Martin Robinson presenting one workshop and one talk: