Web Engines Hackfest 2019
A month ago Igalia hosted another edition of the Web Engines Hackfest in our office in A Coruña. This is my personal summary of the event, obviously biased as I’m part of the organization.
Talks #
During the event we arranged six talks about a variety range of topics:
-
MathML in Browsers by Frédéric Wang: During this talk Fred explained the current status of MathML in the different browser engines, and also the work Igalia has been doing during the this year to bring back MathML support into Chromium.
-
Implementing Accessibility for the Web Platform by Martin Robinson: In this presentation Martin talked about why accessibility is important, how is it implemented in the web platform and some specific details about how it’s done in Chromium.
-
Chromium updates from Arm: higher, faster, stronger by Adenilson Cavalcanti & Dave Rodgman: During their talk Adenilson and Dave explained the work Arm has been doing around Chromium highlighting their improvements on performance and security.
-
Implementing one feature set in two JavaScript engines by Caio Lima & Joyee Cheung: This talk was about explaining what it takes to implement a new JavaScript features like Class Fields in V8 and JSC. If you are curious about JavaScript implementations on the different engines, Caio and Joyee provided lots of interesting details during the talk.
-
about:standardization by Elika J. Etemad: In her talk fantasai shared lots of information about how the standardization process works, and encouraged everybody to provide feedback and participate in the process.
-
Finding browser bugs the easy way by Emilio Cobos Álvarez: Emilio talked about an experiment related to running crash tests from different web engines in each other. Opening the door to maybe start putting crash tests on the shared Web Platform Tests repository so all browsers, which looks like a good idea.
Web Platform Tests (WPT) #
Apart from the talks, the main and most important part of the hackfest (at least from my personal point of view) are the breakout sessions and discussions we organize about different interest topics.
During one of these sessions we talked about the status of things regarding WPT. WPT is working really fine for Chromium and Firefox, however WebKit is still lagging behind as synchronization is still manual there. Let’s hope things will improve in the future on the WebKit side.
We also highlighted that the number of dynamic tests on WPT are less than expected, we discarded issues with the infrastructure and think that the problems are more on the side of people writing the tests, that somehow forget to cover cases when things changes dynamically.
Apart from that James Graham put over the table the results from the last MDN survey, which showed interoperability as one of the most important issues for web developers. WPT is helping with interop but despite of the improvements on that regard this is still a big problem for authors. We didn’t have any good answer about how to fix that, in my case I shared some ideas that could help to improve things at some point:
- Mandatory tests for specs: This is already happening for some specs like HTML but not for all of them. If we manage to reach a point where every change on a spec comes with a test, probably interoperability on initial implementations will be much better. It’s easy to understand why this is not happening as people working on specs are usually very overloaded.
- Common forum to agree on shipping features: This is a kind of utopia, as each company has their own priorities, but if we had a place were the different browser vendors talk in order to reach an agreement about when to ship a feature, that would make web author’s lifes much easier. We somehow managed to do that when we shipped CSS Grid Layout almost simultaneously in the different browsers, if we could repeat that success story for more features in the future that would be awesome.
Debugging tools #
One of the afternoons we did a breakout session related to debugging tools.
First Christian Biesinger showed us JdDbg which is an amazing tool to explore data structures in the web browser (like the DOM, layout or accessibility trees). All the information is updated live while you debug your code, and you can access all of them on a single view very comfortably.
Afterwards Emilio Cobos explained how to use the reverse debugger rr. With this tool you can record a bug and then replay it as many times as you need going back and forward in time. Also Emilio showed how to annotate all the output so you can go directly to that moment in time, or how to randomize the execution to help caught race conditions. As a result of this explanation we got a bug fixed in WebKitGTK+.
Other #
About MathML Fred’s talk finished sending the intent-to-implement mail to blink-dev officially announcing the beginning of the upstreaming process. Since then a bunch of patches have already landed behind a runtime flag, you can follow the progress on Chromium issue #6606 if you’re interested.
On the last day a few of us even attended the CSS Working Group confcall during the hackfest, which worked as a test for Igalia office’s infrastructure thinking on the face-to-face meeting we’ll be hosting next January.
As a side note, this time we arranged a guided city tour around A Coruña and, despite of the weather, people seemed to have enjoyed it.
Acknowledgements #
Thanks to everyone coming, we’re really happy for the lovely feedback you always share about the event, you’re so kind! ☺
Of course, kudos to the speakers for the effort working on such a nice set of interesting talks. 👏
Last, but not least, big thanks to the hackfest sponsors: Arm, Google, Igalia and Mozilla. Your support is critical to make this event possible, you rock. 🎸
See you all next year. Some news about the next edition will be announced very soon, stay tuned!