Firefox/Meeting/29-Apr-2025
General Topics / Roundtable
Special congratulations to the Profile Management team, who are getting top-billing in the release notes for their progressive rollout!
Lots of other goodies in there too - go check it out!
Migration of mozilla-central to GitHub is scheduled for tomorrow. See firefox-dev note from glob here
Beth is looking for feedback on adding support for beforeEach, afterEach, describe and it to our mochitest framework. See discussion on firefox-dev
Friends of the Firefox team
Introductions/Shout-Outs
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
Gautam Panakkal
Harold Camacho
Julian Gaibler
New contributors (🌟 = first patch)
(Will be filled in after the meeting)
General triage
Project Updates
Accessibility
[jamie] has flipped the UIA pref patches which would provide a native UIA support for many assistive technologies on Windows (in addition to IA2), for instance the Win-own Narrator (speech-to-text software) would be able to better catch Accessibility tree from Firefox (Meta bug 762769):
When getting a report on an assistive technology (i.e. JAWS screen reader) not working properly with Firefox, try to toggle the `accessibility.uia.enable` to 1 and 0 to find out if the UIA or IA2 are to blame
Add-ons / Web Extensions
Add-ons Manager & about:addons
Colorways built-in themes cleanup has been completed in Firefox 139 and all the expired Colorways built-in themes have been removed from mozilla-central (Bug 1875512, Bug 1815898)
Most of the clients have been migrated to AMO hosted themes 2 years ago, the subset of clients that have not been able to migrate automatically to the AMO themes are being notified about how to reach the Colorways themes hosted on AMO (with a notification box shown at browser startup and/or a message bar shown in about:addons). They will also be switched automatically to the default theme.
Deprecated app-system-default XPIProvider location has been removed (followup to migrating all system add-ons into the omni jar) - Bug 1949847, Bug 1961356
WebExtensions Framework
Implemented browser.test changes required for WPT, as part of the WECG (WebExtensions Community Group) initiative to support WPT tests WebExtensions API across browser vendors - Bug 1950639
In support to TypeScript-based type-checking initiative, we have migrated all toolkit/extensions internals to use the new type-preserving XPCOMUtils.declareLazy - Bug 1960233
Internal refactoring related to userScripts/contentScripts internals in support of the sync-about-blank work (Bug 1792685, Bug 1951688)
WebExtension APIs
As part of the work to streamline how extension developers implement user data consent experiences (see blog post), initial support for data collection permissions has landed in Nightly 139 (gated behind the "extensions.dataCollectionPermissions.enabled" pref - which is enabled by default in Nightly builds) and will be refined further in Nightly 140 - Bug 1954524, Bug 1955942, Bug 1957729, Bug 1954522, Bug 1954525, Bug 1955990, Bug 1956472, Bug 1959534, Bug 1959999, Bug 1960831, Bug 1960882, Bug 1960917, Bug 1961136, Bug 1961173
As a followup to the work for introducing “tab groups” related feature to the existing tabs API (uplifted to Firefox 138), further work to introduce support for the tabGroups WebExtensions API namespace has been prioritized and landed in Nightly 139 - Bug 1961539, Bug 1961657, Bug 1961660, Bug 1962127, Bug 1962475, Bug 1962592
DevTools
Artem Manushenkov made the Netmonitor filter buttons persist across sessions (#1835264)
Chris Shiohama fixed an issue in the Netmonitor where sorting by duration wouldn't work when new requests were added in the list (#1920146)
Abdelaziz Mokhnache cleaned up a Netmonitor helper (#1953454)
Eemeli Aro [:eemeli] migrated the Netmonitor waterfall tooltip string to Intl.ListFormat and removed the localized string we were using for that before (#1961874)
Holger Benl [:hbenl] refactored and redesigned the Debugger "Directory Root" feature
Alexandre Poirot [:ochameau] added an icon to show the exact location where the Debugger paused (#1953964)
Hubert Boma Manilla (:bomsy) fixed performance regression in the Debugger, especially for files with long lines (#1946026, #1962500)
Nicolas Chevobbe [:nchevobbe] added support for Inherited properties from element-backed pseudo elements (e.g. ::details-content (MDN) , still behind layout.css.details-content.enabled)(#1953807, #1959940)
WebDriver BiDi
Julian fixed an issue with the network.responseCompleted event which was no longer emitted for some requests (such as the 101 upgrade request created for a WebSocket connection).
Henrik has removed the fallback code for processing actions in the content process, which has not been used by default since the Firefox 135 release, with no further regressions reported. This change also removes the remote.events.async.enabled preference.
Henrik has disabled the background QoS manager on macOS and the IPC priority manager on other platforms for all Remote Protocols. Newly opened background tabs were receiving the lowest priority, leading to significant delays in automation under heavy system load. Once the underlying bug is resolved, we may reconsider enabling these features again.
Sasha improved validation of geolocation coordinates for "emulation.setGeolocationOverride" command.
Julian fixed a performance regression for data-URIs, which were triggering unnecessary IPC even if WebDriver BiDi or DevTools was not involved.
Lint, Docs and Workflow
hjones has made the stylelint-plugin-mozilla tests run in CI
standard8 fixed ./mach lint --setup to not warn about running the linters
Migration Improvements
We discovered last week that Chrome on Windows is using Application Bound Encryption for various data stores, which is great for protecting those data stores from malware, but also means that it’s very difficult for us to import things like credentials and payment methods automatically from those local data stores.
The current workaround is to use the same approach we use for Safari, and guide the user through exporting Chrome passwords to a CSV file, and importing that CSV file. We have some WIP patches up to add support for this in the migration wizard, but are exploring other options as well.
Thanks to the Credential Management team for their help with the analysis!
New Tab Page
Maxx has built out a New Tab inline message to let users know about our mobile browsers as well. We’ll be experimenting with this message in the coming months.
Train-hopping:
Today’s release of Firefox 138 goes out with New Tab packaged as a built-in add-on! Functionally, there is no difference, but will mean that we can update New Tab more rapidly in certain situations.
Punam added support for runtime-registered Glean pings and metrics for Firefox 139. This, coupled with our support for pulling in strings to our XPI, give us the ability to not be locked to a particular train for Glean or string changes.
Our current plan is to do a pilot train-hop to the Beta channel in the back-half of May, to “run water through the pipes”
Profile Management
On track for a Nimbus-driven rollout in 138, starting at 0.5% but may go larger
Sorry, we broke profiles in 139 Nightly last Wed/Thurs
Bug 1962531 - Profiles lost when the startup profile selector is enabled
If you updated and restarted and lost your profile group, you got stung by this bug.
We paused updates Friday until the fix landed (thanks Mossop!), so if you haven't seen the bug by now, you won't see it.
Your data is not lost! We've just accidentally broken the link between your default profile and the profile group database.
For help - join us in [#fx-profile-eng] on Matrix and we'll help you get reconnected (also blog post coming with details for a self-service fix)
So what happened that caused the bug? A huge refactoring landed that split the profiles feature toggle from the cross-profile shared database, and we missed the edge case where we startup into the profile selector window. See the bug 1953884 and its parent metabug 1953861 for details.
Daisuke enabled weather for Firefox Suggest by default -[1]1961069
Daisuke added getFaviconForPage to nsIFaviconService -[2]1915762
Dale added “save page” as at term one can use to see the “Save page as PDF” Quick Actions button -[3]1953492
Dale also added “manage” keyword to see quick actions related to managing settings -[4]1953486
Moritz landed a couple patches related to telemetry -[5]1788088,[6]1915252
Mark expanded search config with a new record type to allow easy retrieval of all locales used in search config -[7]1962432
Storybook/Reusable Components/Acorn Design System
Metrics updates
Stuart added new tracking of Design Tokens usage arewedesigntokensyet
Hanna added support for automatic tracking of new components to recomp-metrics
More design system components show code examples in Figma now
Acorn newsletter went out last Wednesday Web preview (images are currently broken 😞)
Pixels, Props & Progress: Your Acorn Quarterly in your inbox
Tab Groups
Firefox 138, released 29 April 2025:
Rolled out to 95% of users worldwide
You can now drag and drop entire tab groups in the tab strip
tabs Web Extension API additions to support tab groups (see also the Add-ons / Web Extensions section)
Planned for Firefox 139, now in Beta, releasing 27 May 2025:
Enabled by default worldwide
tabGroups Web Extension API additions to support tab groups (see also the Add-ons / Web Extensions section)
This week I learned
[mconley] Niklas, Katherine and I would love more volunteers to help us with the These Weeks in Firefox Nightly blog and mailing list posts! Won’t take much of your time - just stick around after this meeting and we’ll walk you through it!