Firefox 140 goes out today! This one is pretty packed.
The 140 ESR is also going out soon.
Friends of the Firefox team
Resolved bugs (excluding employees)
Script to find new contributors from bug list
Volunteers that fixed more than one bug
- Gabriel Astorgano
- Gregory Pappas [:gregp]
- Masatoshi Kimura [:emk]
New contributors (🌟 = first patch)
Gabriel Astorgano:
Bug 1828299 — [Picture-in-Picture] Popping out the video when it's buffering causes the Play/Pause button to get stuck [display] as the Play button + this button doesn't work
Bug 1959029 — Sidebar icon does not reflect sidebar position (left/right)
- Jason Jones: Bug 1959616 — Move browser-window UI functionality for session restore from browser.js and BrowserGlue.sys.mjs to a session restore module
- 🌟Nick Crast: Bug 1965895 — Add Peacock, SkyShowtime, Showmax, and Now TV to Picture-In-Picture video wrappers
General triage
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
- Fixed attention dot on pinned extension not updated in non-active windows - Bug 1967564
- Fixed data collection permissions removed from the manifest between add-on updates not being revoked from the set of granted permissions (fixed in Nightly 141 and uplifted to Beta 140) - Bug 1971414
- Set a fixed uuid in the moz-extension url for the webcompat built-in add-on, as a short term mitigation to prevent webcompat moz-extensions urls to be used for user fingerprinting - Bug 1717672
WebExtension APIs
- Fixed a regression introduced in Firefox 139, which prevented browser.notifications.create non-system notifications from showing icons set as data and/or blob urls (fixed in Nightly 141, uplift requested to ESR 140) - Bug 1970075
- Emilio investigated and fixed a recent regression related to the browserSettings.useDocumentFonts, which was preventing the browser settings from affecting the webpages until the next page reload (regressed in 138, fixed in nightly 142 and uplift requested for ESR 140 and Beta 141) - Bug 1972971
- Carlos contributed a new i18n.getPreferredSystemLanguages API method (an addition to the i18n discussed in the W3C WebExtensions Community Group and now implemented by Safari and Firefox) - Bug 1888486
- Christina introduced support for filtering by cookieStoreId the tabs.onUpdated events - Bug 1960011
DevTools
- Serah Nderi added the ability to print stacktrace for logpoints (#1602351)
- Alex Jakobi [:ajakobi] added Dynamic toolbar in RDM, under the devtools.responsive.dynamicToolbar.enabled pref (#1970616, #1970617, #1970618)
- James Teh [:Jamie] made it possible to pick menu items in XUL menus with the accessibility inspector picker (#1972759)
- Holger Benl [:hbenl] fixed the color picker in RDM when touch simulation is enabled (#1932143) and made sure the underlying screenshot we take for the picker is updated when the page is resized (#1295057)
- Nicolas Chevobbe [:nchevobbe] invalid cookies error message in the storage panel (#1967707)
- Hubert Boma Manilla (:bomsy) fixed an issue in the Debugger when switching sources while the file search panel was open (#1971094)
- Hubert Boma Manilla (:bomsy) also fixed inline previews and preview popup for expressions which aren't in a function scope (#1957885)
WebDriver BiDi
- Henrik updated our in-tree Puppeteer to version 24.10.0 and upgraded Node.js to 22.16.0 across all test jobs to enable ESM support by default.
- Ben Chatterton improved the error message shown when attempting to permanently install an unpacked, unsigned web extension.
- Spencer introduced a WindowManager.supportsWindows() helper to make it easier to detect whether the application supports multiple windows.
- To address unnecessary 200ms delays on each click; even when no navigation occurred; Henrik lowered the Selenium click-and-wait timeout for possible navigations to 50ms for backward compatibility. The timeout is now also configurable and can be completely disabled by users through a preference.
Lint, Docs and Workflow
- :gerard-majax added a linter to remind developers to use proper XDG handling rather than .mozilla directory references.
- Standard8 fixed the rejected-words and codespell linters to properly check .jsx files (a typo meant they were checking .jxs files).
- Standard8 also tidied up some of the top-level ESLint configuration files following the v9 upgrade.
Migration Improvements
- Opera has changed where and how they store profile data in a recent release, which has broken importing from that browser. We’re hoping to get this sorted during the 142 cycle.
New Tab Page
Thanks to the WebExtensions team, we’ve got line-of-sight for performing train-hopping to the release channel starting with Firefox 142. The plan is to use Nimbus / Experimenter to distribute the newtab XPI, rather than Balrog.
See this bug and what it blocks for more details
- We’ve rolled out a change that removes story descriptions, to streamline the contents on the page!
- The team has landed some support for more variations of showing “trending searches” on the newtab page, which we’ll be experimenting with soon.
- Nina has been on a tear, cleaning up a bunch of Pocket-related code in the newtab codebase. Most recently, she removed a bunch of telemetry support for Pocket events.
Picture-in-Picture
- kpatenio fixed PiP play/pause not working when watching videos on the apple events page
- Thanks to nrcrast for adding a new PiP wrapper for Peacock, SkyShowtime and Showmax, overall improving video playback and supporting PiP captions for those sites.
- Thanks to gaastorgano for resolving an issue with the PiP window failing to function when a video is still buffering
Profile Management
User-facing plans for 142:
Improved avatar and theme customization
Possibly roll out to a slightly larger audience (from 0.5% to a few percent, TBD)
- James fixed an issue where search terms might persist in the address bar.
- Moritz enabled the add search engine context menu option for POST forms with role=search (previously it was disabled on all POST forms).
- Yazan fixed an issue where unit conversions may be incorrect when dealing with long numbers.
Storybook/Reusable Components/Acorn Design System
- Bug 1972885 - Add --icon-size-xsmall token
Bug 1962151 - Implement the listbox type of moz-visual-picker
This version of moz-visual-picker will not automatically select the item when it is focused with the arrow keys, unlike a radio input (selection does not follow focus)
Bug 1956853 - Ensure grouped box items have the correct role in assistive technology
This variant of moz-box-group treats its children as a single focus target and provides navigation with the arrow keys
Bug 1966426 - Create a basic moz-promo element
A basic element for displaying promotional messages with future support for illustrations and actions. This component is still in development, expect more updates in the future.
This week I learned
- [standard8] It is possible to use top-level await in modules but use static imports for the files (example part A, example part B)
- [mconley] mozfile.json is sometimes preferable to the json module for Python code. See details here.
- [mconley] JSON modules now available as of Firefox 138 (MDN documentation)