13 Jan 2026
Planet Mozilla
Firefox Developer Experience: Firefox WebDriver Newsletter 147
WebDriver is a remote control interface that enables introspection and control of user agents. As such it can help developers to verify that their websites are working and performing well with all major browsers. The protocol is standardized by the W3C and consists of two separate specifications: WebDriver classic (HTTP) and the new WebDriver BiDi (Bi-Directional).
This newsletter gives an overview of the work we've done as part of the Firefox 147 release cycle.
Contributions
Firefox is an open source project, and we are always happy to receive external code contributions to our WebDriver implementation. We want to give special thanks to everyone who filed issues, bugs and submitted patches.
In Firefox 147, two WebDriver bugs were fixed by contributors:
- Sajid Anwar fixed an issue with
browsingContext.navigatewhich could return a payload with an incorrect URL. - Khalid AlHaddad added new WebDriver classic tests for the "Get All Cookies" command.
WebDriver code is written in JavaScript, Python, and Rust so any web developer can contribute! Read how to setup the work environment and check the list of mentored issues for Marionette, or the list of mentored JavaScript bugs for WebDriver BiDi. Join our chatroom if you need any help to get started!
General
- Fixed the new session response to include the required
setWindowRectproperty.
WebDriver BiDi
- Implemented the
input.fileDialogOpenedevent, which is emitted whenever a file picker is triggered by the content page, for instance after clicking on an input withtype="file". - Implemented the
emulation.setScreenSettingsOverridecommand to allow clients to emulate the screen dimensions for a list of browsing contexts or user contexts. - Fixed an issue where
browsingContext.navigatewithwait=nonedidn't always contain the real target URL. - Updated
script.evaluateandscript.callFunctionto bypass Content Security Policy (CSP). - Fixed missing
script.realmCreatedevent for new browsing contexts created viawindow.open. - Updated
emulation.setLocaleOverrideto override theAccept-Languageheader. - Updated
emulation.setLocaleOverrideto throw an error when called with thelocaleargument equal toundefined.
Marionette
13 Jan 2026 5:18pm GMT
Firefox Tooling Announcements: Engineering Effectiveness Newsletter (Q4 2025 Edition)
Highlights
-
Windows tests now start twice as fast! Thanks to improvements in how we provision Windows machines in the cloud, Yaraslau Kurmyza and RelOps cut startup delays dramatically. Since December 9th, it now takes 3 times less time to get a Windows worker ready, which has reduced Windows test wait times by half.
-
AGENTS.md and CLAUDE.md were added to the Firefox repository.
-
Calixte implemented most of the backend functionality to support reorganizing pages, splitting and merging PDFs.
Contributors
-
Arthur Silber
-
Tim van der Meij
Detailed Project Updates
AI for Development
-
AGENTS.md and CLAUDE.md were added to the Firefox repository.
-
An AI coding policy was published in the Firefox source docs.
-
Suhaib Mujahid built an MCP server to facilitate the integration of AI assistants with the Firefox development tooling, whichIt enables AI assistants to search using Searchfox, read Bugzilla bugs and Phabricator revisions, access Firefox source documentation, and streamline patch review workflows.
-
Suhaib Mujahid extended the test selection system to work with local changes, enabling AI assistants to leverage our ML-based test selection for automatic identification of relevant tests, allowing them to iterate faster during development.
-
Suhaib Mujahid implemented improvements to the Review Helper tool to improve the accuracy of suggested review comments.
Bugzilla
-
Thanks to Kohei, when a user enters a comment on the show bug page, it will update the page instantly without a reload. (see Bug 1993761)
-
Thanks to external contributor Logan Rosen for updating Bugzilla to use a newer version of libcmark-gfm which will solve some issues with rendering of Markdown in comments. (see Bug 1802047)
Build System and Mach Environment
-
The dependency on Makefile.in has been reduced. The path is still long, but it's getting a bit closer (see Bug 847009 )
-
Faster configure step thanks to faster warning flag checks (see Bug 1985940 )
-
Alex Hochheiden upgraded the JavaScript minifier from jsmin to Terser and enabled minification for pdf.js to improve loading performance.
-
Alex Hochheiden optimized glean-gradle-plugin and NimbusGradlePlugin configuration. Gained ~10s configuration time speedup and ~200MB disk space saved.
Firefox-CI, Taskcluster and Treeherder
-
Your CI tasks are going to start faster! After many changes of different sizes, the entire Release Engineering team is proud to announce that the decision task is as fast as the best record from 2019 and even faster than ever before on autoland. We intend to beat the record on try with a few more patches close to landing.
-
Windows tests now start twice as fast! Thanks to improvements in how we provision Windows machines in the cloud, Yaraslau Kurmyza and RelOps cut startup delays dramatically. Since December 9th, it now takes 3 times less time to get a Windows worker ready, which has reduced Windows test wait times by half.
-
Ever wondered if your try-push scheduled the right tasks? Treeherder now shows unscheduled jobs too. Hit s to toggle visibility and cut down CI guesswork!
-
Abhishek Madan made various performance improvements to the decision tasks totalling to around 25% improvement
-
Abhishek Madan switched Decision tasks to a faster worker-type
-
Andrew Halberstadt kicked off the CI migration from hg.mozilla.org → Github, implementing:
-
Shallow clone support in run-task
-
A dedicated Decision task that responds to Github events
-
-
Ben Hearsum added support for outputting the relationships between taskgraph kinds as Mermaid diagrams, making it easier to visualize the relationships between tasks.
-
Matt Boris added the finishing touches on D2G (Docker Worker to Generic Worker translation layer) to enable Julien Cristau to begin rolling changes out to L3 pools.
Lint, Static Analysis and Code Coverage
-
New include linter through mach lint -lincludes . Unused MFBT and standard C++ headers are reported.
-
Alex Hochheiden fixed many lint warnings and upgraded them to errors.
-
Alex Hochheiden replaced black with ruff-format.
PDF.js
-
Calixte implemented most of the backend functionality to support reorganizing pages, splitting and merging PDFs.
-
Calixte added support for tagged math in PDFs in order to make math content accessible.
-
Tim van der Meij helped with maintenance and improvements to pdf.js CI, like using OICD trusted publishing.
-
Aditi made it so we serialize pattern data into ArrayBuffer, paving the way for moving pdf.js rendering in worker threads.
-
Arthur Silber improved text rendering performance by skipping unnecessary pattern calculations, leading to up to 84% reduction in pdfpaint time for some PDFs.
-
Calixte added support for the pdfium jbig2 decoder compiled in wasm in order to replace the pure JS version.
Firefox Translations
-
(Bug 1975487, 1994794, 1995403) Erik Nordin shipped significant improvements to the Translations experience when translating web pages between left-to-right and right-to-left languages.
-
(Bug 1967758) Erik Nordin improved the algorithm for page-language detection, centralizing the behavior in the parent process, instead of creating a separate language detector instance per content process.
-
Evgeny Pavlov trained Chinese Traditional
-
Sergio Ortiz Rojas trained English to Vietnamese
-
Evgeny Pavlov created new evaluation dashboards with expanded metrics, datasets and LLM explanations
-
Evgeny Pavlov migrated the model registry from Github to Google Cloud Storage with the updated UI (new models JSON)
Phabricator, moz-phab, and Lando
-
Zeid and Olivier implemented various changes in Lando to support the GitHub pull request pilot project.
-
Zeid added support for short hash when querying git2hg commit maps in Lando.
-
Connor Sheehan implemented uplift requests as background jobs, providing many improvements to the uplift request workflow in Lando:
-
Merge conflict detection at job completion time, instead of at landing time.
-
Uplift to multiple trains at once, with failure notification emails that provide step-by-step commands to resolve the conflict and re-submit.
-
Uplift assessment form linking workflow to avoid re-submitting the same form when manually resolving merge conflicts for an uplift.
-
-
Connor Sheehan made it possible to select individual commits in the stack for uplift, instead of always uplifting the parent commits for a given revision.
-
Connor Sheehan added a new uplift assessment linking view and hooked it into moz-phab uplift, removing a few steps between submitting an uplift request and opening the form for submission or linking to the new request.
-
moz-phab had several new releases.
-
Mathew Hodson restored the --upstream argument to moz-phab submit.
-
Jujutsu support saw improvements to moz-phab patch, better handling of working copy changes and a minimum jj version bump to 0.33.
-
moz-phab uplift saw a few changes to enable better integration with the Lando-side changes.
-
See the release notes here:
-
https://discourse.mozilla.org/t/mozphab-2-6-0-released/146283
-
https://discourse.mozilla.org/t/mozphab-2-7-0-released/146293
-
https://discourse.mozilla.org/t/mozphab-2-7-1-released/146295
-
https://discourse.mozilla.org/t/mozphab-2-7-2-released/146339
-
https://discourse.mozilla.org/t/mozphab-2-8-0-released/146434
-
https://discourse.mozilla.org/t/mozphab-2-8-1-released/146774
-
-
Version Control
-
Connor Sheehan added clonebundle buckets in the us-east1 GCP region to improve clone times in CI.
-
Julien Cristau added the new tags Mercurial branches to mozilla-unified.
-
Julien Cristau and Olivier Mehani took steps to reduce OOM issues on the hg push server.
-
Julien Cristau resolved a Kafka issue by pruning try heads and resolving issues with try heads alerting, and Greg Cox increased the storage in Kafka in support of the mitigation.
-
Greg Cox implemented staggered auto-updating with reboots on the load balancers in front of hg.mozilla.org.
Thanks for reading and see you next month!
1 post - 1 participant
13 Jan 2026 1:51pm GMT
12 Jan 2026
Planet Mozilla
The Mozilla Blog: Mozilla welcomes Amy Keating as Chief Business Officer

Mozilla is pleased to announce that Amy Keating has joined Mozilla as Chief Business Officer (CBO).
In this role, Amy will work across the Mozilla family of organizations - spanning products, companies, investments, grants, and new ventures - to help ensure we are not only advancing our mission but also financially sustainable and operationally rigorous. The core of this job: making investments that push the internet in a better direction.
Keating takes on this role at a pivotal moment for Mozilla and for the responsible technology ecosystem. As Mozilla pursues a new portfolio strategy centered on building an open, trustworthy alternative to today's closed and concentrated AI ecosystem, the organization has embraced a double bottom line economic model: one that measures success through mission impact and commercial performance. Delivering on that model requires disciplined business leadership at the highest level.
"Mozilla's mission has never been more urgent - but mission alone isn't enough to bring about the change we want to see in the world," said Mark Surman, President of the Mozilla Foundation. "To build real alternatives in AI and the web, we need to be commercially successful, sustainable, and able to invest at scale. Our double bottom line depends on it. Amy is a proven, visionary business leader who understands how to align values with viable, ambitious business strategy. She will help ensure Mozilla can grow, thrive, and influence the entire marketplace."
This role is a return to Mozilla for Keating, who previously was Mozilla Corporation's Chief Legal Officer. Keating has also served on the Boards of Mozilla Ventures and the Mozilla Foundation. Most recently, Keating held senior leadership roles at Glean and Planet Labs, and previously spent nearly a decade across Google and Twitter. She returns to Mozilla with 20 years of professional experience advising and operating in technology organizations. In these roles - and throughout her career - she has focused on building durable businesses grounded in openness, community, and long-term impact.
"Mozilla has always been creative, ambitious, and deeply rooted in community," said Amy Keating. "I'm excited to return at a moment when the organization is bringing its mission and its assets together in new ways - and to help build the operational and business foundation that allows our teams and portfolio organizations to thrive."
As Chief Business Officer, Amy brings an investment and growth lens to Mozilla, supporting Mozilla's portfolio of mission-driven companies and nonprofits, identifying investments in new entities aligned with the organization's strategy, and helping to strengthen Mozilla's leadership creating an economic counterbalance to the players now dominating a closed AI ecosystem.
This work is critical not only to Mozilla's own sustainability, but to its ability to influence markets and shape the future of AI and the web in the public interest.
"I'm here to move with speed and clarity," said Keating, "and to think and act at the scale of our potential across the Mozilla Project."
Read more here about Mozilla's next era. Read here about Mozilla's new CTO, Raffi Krikorian.
The post Mozilla welcomes Amy Keating as Chief Business Officer appeared first on The Mozilla Blog.
12 Jan 2026 7:31pm GMT