Highlights
- Starting with Firefox 150, Firefox Desktop’s theming internals have improved, allowing custom background images provided by built-in and custom themes to extend over the sidebar UI background – Bug 1952602.
- Thanks to Emilio for his work on these Firefox theme improvements!
Alpenglow theme – current (left, Firefox = 150) behavior.
- We deprecated the built-in CSS filter for WebExtensions and changed how we theme extension icons – Bug 2001318.
- If you spot any issues with extension icons, please file a bug here.
- Extensions can now rely on SVG’s native prefers-color-scheme media query support; see this comment for more information.
- The built-in CSS filter was implicitly applied to all extensions’ page action SVG icons in dark mode. It did not provide an official opt-out mechanism, resulting in poor contrast for some extension icons.
- Niklas fixed broken and missing Picture-in-Picture video controls on Disney+.
- Found a Picture-in-Picture bug? Please file one here!
Friends of the Firefox team
Resolved bugs (excluding employees)
Volunteers that fixed more than one bug
- Chris Vander Linden
- Justin Peter
New contributors (🌟 = first patch)
- Jocsan: Profile delete page title should enclose profile name in quotes
- 🌟karan68: [dialog] ‘X’ icon buttons are missing labels
- Knot False: Replace KeywordUtils use of nsIScriptableUnicodeConverter with Services.textToSubURI.ConvertAndEscape
- 🌟Pushkar Singh: Remove unused devtools.inspector.remote pref
- 🌟MUTHUSRIHEMADHARSHINI: Card images do not have an alt attribute
- Sukhmeet[:sukh]: firefox forgets open tabs depending on window close order
- 🌟Alex Reisner: Create a preference to disable the drag-and-drop method of creating tab groups
- 🌟torrenceb90: Remove unused devtools.target-switching.server.enabled pref
Project Updates
Add-ons / Web Extensions
Addon Manager & about:addons
- As part of the work for the SmartWindow mode, a new dismissible info messagebar will be shown in about:addons themes list view to users opting into SmartWindow that Firefox windows, the SmartWindow theming notice will be highlighting for the user that the SmartWindow mode will use their own custom theming – Bug 2010685
- Special thanks to Maile Lucks and Chloe Zhou for gathering the clarifications needed and working with the SmartWindow team to reach the final agreement on the desired behaviors.
- Fixed “Available Updates” about:addons view not refreshing automatically when the “Check for updates” action is clicked while the “Available updates” is already selected until manually switching about:addons view or reloading the about:addons tab – Bug 1578182
WebExtensions Framework
- As part of hardening work on the WebExtensions internals, a new option has been added to Cu.Sandbox constructor to opt-in/opt-out from freezing all the built-ins available in the Sandbox global – Bug 2017957
WebExtension APIs
- As part of the work to support Firefox Split View, additional changes have been applied to make sure that Split View mode is preserved when extensions are moving all tabs part of a Split View into a new window – Bug 2017148 / Bug 2017768 / Bug 2016754
- Fixed a regression (introduced in Firefox 149 by Bug 2013389 changes) which was reported to be breaking the Clipboard2File extension. The fix has been landed in Nightly 150 and uplifted to 149 – Bug 2017797
DevTools
- Sebastian Zartner [:sebo] added a button in the Storage panel to delete all the items of a given storage type (Local Storage, Cookies, …) (#1349533)
- Chris Vander Linden migrated devtools/client/shared/widgets/TableWidget.js to use proper private ES fields (#2015241)
- Torrence removed the unused devtools.target-switching.server.enabled pref (#2003192)
- Pushkar Singh removed the unused devtools.inspector.remote pref (#2003191)
- Andreas Farre [:farre] improved the Session History panel to easily differentiate same-document and cross-document navigation (#2016130, #2016126)
- Nicolas Chevobbe [:nchevobbe] added a button in Computed sidebar that link to the declaration in the Rules panel (#1418351)
- Alexandre Poirot [:ochameau] fixed an issue in the inactive CSS that was impacting declarations on rules with multiple pseudo elements (#1998357)
- Nicolas Chevobbe [:nchevobbe] made position-area marked as inactive when the element is not absolutely positioned or doesn’t have a default anchor (#1895185)
- Nicolas Chevobbe [:nchevobbe] added proper autocomplete for color() in the Rules view so it suggests colorspaces (#1898277)
-
Hubert Boma Manilla (:bomsy) added text in the Response panel for redirected request to explain why the panel is empty (#2016679)
WebDriver
- Alexandra Borovova implemented the “browser.setDownloadBehavior” command, which allows clients to allow or prohibit the downloads and also set a custom download folder. This behavior can be configured per session or per user contexts.
- Julian Descottes implemented the “emulation.setNetworkConditions” command for “type: offline”, which can be used to emulate offline network situations. This configuration can be applied to contexts, user contexts or globally.
- Julian Descottes updated the WebDriver classic getShadowRoot command to no longer return user agent shadow roots.
- Henrik Skupin fixed the mach test command which was not able to run Marionette tests anymore.
Lint, Docs and Workflow
- FYI to developers that stylelint changes now go to #desktop-theme-reviewers
Search
- Drew Willcoxon finished his work on Online Suggest over OHTTP. It has been enabled by default in Nightly since the 149 cycle, improving privacy for remote suggestions while we validate quality and latency at scale.
- Daisuke Akatsuka changed sponsored suggestions to no longer display the destination URL, reducing visual clutter and emphasizing brand/title. Can be tuned via remote config as we watch CTR and trust metrics.
- Voice Control users can once again focus the URL bar via “click” or numbered commands — fixed by Morgan Rae Reschenberg.
- Dale Harvey continued his work on the unified trust button and panel. The HTTP-only “Not Secure” shield now consistently shows the red slash even when tracking protection is off, avoiding misleading site trust signals.
- Justin Peter contributed a bunch of fixes:
- Unit conversion in the URL bar now handles the degree symbol (°) so temperature math returns results as expected.
- Imperial unit conversion precision is improved (e.g., inches/feet/miles rounding), yielding more accurate answers.
- Added more units and abbreviations to conversion, broadening coverage of everyday queries.
Tests
-
Ever had to deal with a test failure like? leaked 1 window(s) until shutdown [url = chrome://browser/content/browser.xhtml]and tried to follow the instructions to debug it? It just became way easier with the retention path printed directly as part of the failure:
- If you would like to see how the flakiness rate of xpcshell and mochitest harness evolve over time, you can see it on https://tests.firefox.dev/
- Dynamic chunking of test jobs landed:
- Most mochitest jobs now take 20 minutes + the setup time of the job. (charts)
- Per-manifest and job name run time info can be queried at https://tests.firefox.dev/manifests.html
UX Fundamentals
- In progress:
- Update messaging on file:// not-found error pages. The intro will show the actual file path instead of “local file”, and the “What can you do?” section gives file-oriented advice rather than website-oriented advice.
- Adding access keys to error pages. All buttons on the error pages will have keyboard shortcuts.
- Updating the netTimeout error to use correct l10n IDs and whole origin with subdomains.