Web engine CI on a shoestring budget
at Igalia impromptu CI conference, December 2025 [video] [slides] [transcript]
Servo is a greenfield web browser engine that supports many platforms. Automated testing for the project requires building Servo for all of those platforms, plus several additional configurations, and running nearly two million tests including the entire Web Platform Tests. How do we do all of that in under half an hour, without a hyperscaler budget for compute and an entire team to keep it all running smoothly, and securely enough to run untrusted code from contributors?
We’ve answered these questions by building a CI runner orchestration system for GitHub Actions that we can run on our own servers, using ephemeral virtual machines for security and reproducibility. We also discuss how we implemented graceful fallback from self-hosted runners to GitHub-hosted runners, the lessons we learned in automating image rebuilds, and how we could port the system to other CI platforms like Forgejo Actions.
Customising the web: browsers as user agents
at Igalia web platform meetup, November 2023 [video] [slides]
The ability for users to customise the websites they use is something that empowers them to interact with the web on their own terms, and this is a big part of what makes a browser a user agent.
This talk explains why user customisation is important for the web, with a focus on userstyles, userscripts, and bookmarklets. I analyse how people use them, point out what we can learn from those use cases, demonstrate how you can use them yourself, explain their limitations, and discuss how we can make them better.
Servo is a web engine written in Rust. After parts of it were integrated into Mozilla Firefox, the project became independent but dormant in 2020. This year, with renewed interest in using it as a standalone embeddable engine, Servo is returning to active development.
This talk will go over the work we’ve done so far and our plans for the rest of 2023, particularly in Servo’s layout system, as well as how you can help.
CSS highlight pseudos extend the familiar ::selection feature into a far more powerful system that coherently integrates user selections, spelling and grammar errors, author highlights, and more.
Now that Blink’s implementation is nearing completion, this talk will explain how we were able to support that powerful system reasonably performantly, and without regressing existing content.
A quick progress update on Igalia’s work implementing the new highlight pseudo system in Chromium.