The team is in the early stages of adding wallpaper support! This is still very preliminary, but you can test what they’ve currently landed on Nightly:
Set browser.newtabpage.activity-stream.newtabWallpapers.enabled to true in about:config
Click on the “gear” icon in the top-right of the new tab page
Choose a wallpaper! Note that you get different options depending on whether or not you’re using a light or dark theme.
Among other things, Firefox 125 is going to ship with support for the Popover Web API
This should make it easier to create dropdown / popup menus without doing so much management with JavaScript. Here are some demos.
Niklas added keyboard shortcuts for copying and downloading a screenshot in the Screenshots tool
The keyboard shortcuts work in the overlay and in the preview window
ctrl/cmd + c to copy the screenshot
ctrl/cmd + s to download/save the screenshot
Nicolas fixed some performance issues in the Rules view in the Firefox DevTools Inspector tab when there are a lot of rules with pseudo elements. For example, with 1500 pseudo elements, what was taking 3 seconds on a developer machine now only takes ~30ms! These fixes are slated to go out in Firefox 126.
jesup moved brotli decompression fully off of the main thread. This has shown major wins in the wild - we’re seeing a 10% improvement for FirstContentfulPaint pretty much across the board, and a 10% improvement on LargestContentfulPaint at the 50% percentile, 20% at the 75% percentile and 95%(!) at the 95% percentile. Nice! This improvement is rolling out in Firefox 126.
Camille
Magnus Melin [:mkmelin]
Meera Murthy
🌟 Camille added `text-align: start` to moz-message-bar so it doesn't inherit alignment from parent and updated moz-toggle to only show active state when hovering
gravyant improved error message when sending session.new without capabilities
🌟 Harshit replaced `validateURL` with `URL.parse()`
As part of the ongoing work related to improving cross-browser compatibility for Manifest Version 3 extensions:
the options_page manifest property is supported as an alias of options_page.ui - Bug 1816960
A new webRequestAuthProvider permission allows extensions to register webRequest.onAuthRequired blocking listeners (in addition to the webRequestBlocking permission, which is deprecated on Chrome but still supported by Firefox) - Bug 1820569
commands.onCommand listeners now receive details of the currently active tab - Bug 1843866
WebExtensions with a granted active tab permission can now call tabs.captureVisibleTab API method without any additional host permissions - Bug 1784920
MessageSender details received by runtime.onMessage/runtime.onConnect listeners include a new origin property - Bug 1787379
Artem Manushenkov added a setting to disable the split console (#1731635)
Yury added support for Wasm exception handling proposal in the Debugger (#1885589)
Emilio fixed a rendering issue that could happen after exiting Responsive Design Mode (#1888242)
Alex migrated the last DevTools JSMs to ESMs (#1789981, #1827382, #1888171)
Nicolas improved performance of the Inspector when modifying a single rule, in a stylesheet with a lot of rules (#1888079, #1888081)
Nicolas improved the Rules view by showing the color picker button on color functions using CSS variables in their definition (#1718894)
Bomsy fixed a crash in the netmonitor (#1884571)
Julian reverted the location of DevTools screenshots on OSX to match where Firefox screenshots are saved (#1845037)
Nicolas added @property rules (enabled on Nightly by default) in the Style Editor sidebar (#1886392)
New contributor: :gravyant improved the error message when the session.new command is used without a proper capabilities parameter (#1838152)
Julian Descottes added support for the contexts argument of the network.addIntercept command which allows to restrict a network intercept to a set of top-level browsing contexts (#1882260)
Sasha Borovova updated the storage.getCookies command to return third party cookies selectively, based on the value of the network.cookie.cookieBehavior and network.cookie.cookieBehavior.optInPartitioning preferences (#1879503)
Sasha Borovova removed the ownership and sandbox parameters for the browsingContext.locateNodes command to align with a recent specification update (#1884935)
Sasha Borovova updated the session.subscribe and session.unsubscribe commands to throw an error when the events or contexts parameters are empty arrays (#1887871)
The team completed the Milestone 10 of the project (bug list), where we implemented 50% of the commands needed to completely support Puppeteer, with 75% of the Puppeteer unit-tests passing with WebDriver BiDi. For Milestone 11 (bug list), our focus remains to implement the remaining commands and features required to fully support Puppeteer (doc).
Enabling ESLint rules for requiring JSDocs just got easier.
The rules are now enabled by default.
Places where there are currently failures are explicitly disabled in the top-level .eslintrc.js file.
Please consider enabling these (and the valid-jsdoc ones) on your area, especially if you are using (or will be using) JSDoc document generation for source docs.
eslint-plugin-mozilla now supports ESLint v9 APIs.
We still have some work to complete to fully support the new flat configuration.
We're now rejecting the JSM based ChromeUtils.import across the tree via ESLint.
Negin fixed an issue where the migration wizard title wasn’t appearing when embedded in about:welcome
Negin is working on fixing an issue on about:welcome where clicking on the browser/profile selector when the panel is already open doesn’t close the panel.
For the backup project, we’ve made some pretty big strides!
We closed out the measurement metabug, and have the measurements being collected by default starting in Firefox 126.
We’re now staging backups for various resources
We added a very simple debug tool in Nightly at chrome://browser/content/backup/debug.html. You can test staging a backup at runtime with what we have so far using this tool. It may take several minutes depending on how big your databases are, and how intensely you’re using the browser while the backup is underway.
Thanks to :joe.scott.webster for submitting a patch that fixes PiP captions issues with several Yahoo sites (bug) and filing a follow-up ticket for AOL (bug). Also thanks to Niklas Baumgardner (:niklas) for lending a hand!
Niklas made the save full page the primary action button
Thanks reusable components for moz-button-group!
Niklas fixed an issue where dragging the scrollbar could drag a region
Niklas fixed an issue where the window would sometimes scroll when focusing the download or copy button
Firefox Suggest experience
Daisuke renamed the “Learn More about Firefox Suggest" menuitem to a more direct “Manage Firefox Suggest”. Bug 1889820
Drew added new telemetry to measure in experiments the potential exposure of simulated results, depending on the typed search string. Bug 1881875
SERP categorization telemetry
James, Stephanie and Karandeep have landed many fixes to the storage, logging and measurements.
Search Config v2
Enabling new config in Nightly lowered the number of initialization errors for the Search Service
Mark fixed character-set handling. Bug 1890698
Mark added a new property covering the device type. Bug 1889910
Mandy sorted collections by engine identifier and property names, to make the config more easily navigable and diffs nicer and easier to maintain. Bug 1889247
Mandy updated the documentation. Bug 1889037
Other fixes
Marco fixed a bug causing engagement on certain results to be registered both as engagement and abandonment. Bug 1888627
Dao has fixed alignment of “switch to tab” and “visit” chiclets. Bug 1886761
Thanks to Camille Davis for fixing these two bugs!
Bug 1856717 - Set 'text-align: start' on ':host' in moz-message-bar.css
Bug 1883058 - moz-toggle should only show active state on hover
Thanks to :nordzilla for fixing a race condition in menulist
Thanks to :kcochrane for adding documentation to moz-page-nav and adding support for external and support links in moz-page-nav
:hjones fixed the interactive storybook component examples on Windows
Work is underway to remove the window.ensureCustomElements function now that we can lazy load ES modules. See Bug 1803678 - Enable on-demand/lazy loading for ESModule based reusable components for more details
big thanks to :arai for the work to make this possible! Bug 1803810 - Support synchronously loading ESMs into given global, in the same way as Services.scriptloader.loadSubScript
General triage
mconley, mkaply, Emily McMinn, kpatenio are leading this month’s general triage
Today’s release (Firefox 125) might be delayed due to an upgrade bug discovered for macOS users
The regressor was identified and backed out. New release candidates were spun out and has been signed off by QA. That release might still roll out today.
[Mossop] As well as registerCleanupFunction (runs after all tasks in a test) we also have registerTaskCleanupFunction (runs after every task), registerCurrentTaskCleanupFunction (runs after the current task) and registerTimeoutFunction (runs if the test times out) in mochitest harnesses.