Highlights
- Thanks to overholt, macOS Nightly now has support for sharing the current tab’s URL via QR Code (Right-click tab, Share > Generate QR Code). This is held to Nightly for now.
- Scott Downe fixed an issue where newtab background GIFs could max out RAM while idle in the background by throttling animated background decoding on backgrounded tabs. This fix is going out in Firefox 150.
- Special thanks to volunteer contributor 1justinpeter who just added speed unit conversion support to the AwesomeBar!
- New Tab Sections have been enabled by default in Canada!
Friends of the Firefox team
Resolved bugs (excluding employees)
Volunteers that fixed more than one bug
- Chris Vander Linden
- Itiel
- Justin Peter
- Khalid AlHaddad
- Mauro V [:cheff]
- Sam Johnson
- Sebastian Zartner [:sebo]
New contributors (🌟 = first patch)
- Mohammed Abdullah: screenshot command crops image after 10000px height
- 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
- 🌟 baris: Button does not programmatically indicate that it opens a dialog (Customize button)
Project Updates
Add-ons / Web Extensions
WebExtensions Framework
- Fixed a structuredClone regression in the MV2 userScripts sandbox, bringing it in line with the fix already applied to content scripts and MV3 userScripts sandboxes, fix applied in Nightly 150 and uplifted to Beta 149 – Bug 2020773
- Fixed a tab crash triggered by calling Document.parseHTMLUnsafe() from a browser extension content script (due to an assertion failure hit because parseHTMLUnsafe was wrongly trying to create a document that belongs to the expanded privileged principal that originated the call). The changes applied is now making sure parseHTMLUnsafe will use the webpage document’s principal (and prevent the crash as a side effect of that) – Bug 1912587
- Fixed a regression where the load event on about:blank iframes would not fire when a content script injected a style element (regressed in Firefox 148 as a side effect of the changes applied by Bug 543435, fix landed in Nightly 140 and uplifted to Beta 149 and Release 148) – Bug 2020300
- Thanks to Vincent Villa for promptly investigating and fixing this regression!
WebExtension APIs
- As part of followups related to the work to allow action.openPopup calls without user activation, action.openPopup() will reject the requests when another panel, context menu, doorhanger, or notification is already open in the window – Bug 2022281
- As part of followups to the work in support of the splitView mode support introduced in the tabs API, tabs.move() has been tweaked to correctly return all specified tabs moved in a split view – Bug 2022372
Addon Manager & about:addons
- Fixed a rendering regression where the context menu on about:addons cards would appear with a transparent background at non-default zoom levels – Bug 2006926
- Thanks to Botond Ballo for investigating and fixing this small rendering regression!
DevTools
- Chris Vander Linden moved the SearchInFileBar component to a shared folder in (#2019256, #2020518)
- Chris Vander Linden made a few Netmonitor file use proper private properties (#2021639, #2021640, #2021641, #2021642, #2021643, #2021644, #2021645)
- Mohammed Abdullah refactored screenshot dimension handling to use shared logic from ScreenshotsUtils.sys.mjs (#1942439)
- Lorenz A fixed an issue in the Flexbox Layout pane regarding base size when flex-basis was set from the flex shorthand (#1939289)
- Oriol Brufau [:Oriol] improved one of our object test (#2021445)
- Sebastian Zartner [:sebo] added a new Element-specific pseudo-classes section in the pseudo-class panel and added support for the new :open pseudo class (#2014442)
- Simon Farre [:sfarre] made it so Reporting API requests are now visible in Netmonitor (#2013043)
- Leo McArdle [:leo] fixed the Network request panel so it would show POST data even before the request was finished (#2014623)
- Leo McArdle [:leo] fixed a couple issues with the Inspector Fonts panel inputs (#2013910, #2013904)
- Julian Descottes [:jdescottes] updated the device list in Responsive Device Mode to include recent phones and tablets (#1982802)
WebDriver
- Khalid AlHaddad contributed over the past two weeks by adding a test for correct viewport dimensions on new top-level browsing contexts, improving WebDriver tests with global asyncio markers and a timeout multiplier for a better stability of slow running builds, and introducing a fixture to remove webextensions installed during a test. Thank’s a lot!
- James Teh added Marionette-prefixed commands to query extended accessibility properties and traverse the accessibility tree using UUID-identified nodes.
- Jonathan Moss updated the marionette-integration test manifest files so all tests now run as part of the OS integration CI jobs.
- Alexandra Borovova fixed a regression when prompts opened with WebDriver Classic were automatically closed by default when the `moz:debuggerAddress` capability was passed, which is still a common pattern for Selenium.
- Alexandra Borovova fixed the download events that were triggered by the requests with the `Content-Dispostion` header opened in the new tab to be linked to a navigation.
- Alexandra Borovova updated the logic to not send the “log.entryAdded” events for console APIs that don’t use the printer (e.g., `console.time` or `console.clear`).
- Henrik Skupin fixed an issue in the browsingContext.locateNodes command where the root element was not returned when using a CSS selector.
- Henrik Skupin simplified the logic for Marionette commands managing window state, size, and position to improve stability.
- Julian Descottes fixed the support of non-utf8 headers for various network module commands.
- Julian Descottes fixed a bug with keepalive requests which could still be sent after setting the network conditions to “offline”.
- Julian Descottes fixed a race condition which could lead parallel calls to browsingContext.setViewport to timeout.
Lint, Docs and Workflow
- Mossop has replaced most instances of ContentTask.spawn with SpecialPowers.spawn.
- There is a lint rule to prevent further uses.
- Feel free to help clean up existing uses if you have any.
- https://arewemozsrcyet.com/ is live and in the middle of being moved to a mozilla repo, bugs / comments can go to https://bugzilla.mozilla.org/show_bug.cgi?id=2014746
New Tab Page
- Luca Greco fixed an issue where the new tab page was broken for users who had moved their profile to a new directory. Special shout-out to Scott for driving that one over the line and getting the fix uplifted to Beta!
- baris updated a button so that it indicated that it opens a dialog (Customize button) by adding aria-haspopup=”dialog” and focus management so screen readers announce the Personalize dialog correctly.
- Maxx Crawford added the first version of a refined grid system for Nova, introducing column-based container queries and CSS tokens for more consistent responsive New Tab layouts. This is currently off by default.
- Maxx Crawford updated Widgets components to use parent grid columns so cards align to the new Nova grid across breakpoints without layout jumps.
- Mike Conley enabled the pref to communicate with MARS over OHTTP by default so New Tab network calls use OHTTP by default, reducing IP exposure for all channels. This was already enabled on Beta and Release via Nimbus, but this patch is the pref flip that will ride the trains.
- Mike Conley added a train-hoppable asrouter-newtab-message external component for inline messaging to let us update New Tab inline messages via Remote Settings without a full Firefox update. The OMC team will take over building out the actual UI for the new message surface.
- Nathan Barrett landed sections layout support for Nova, to refine section spacing and ordering using the new grid for a cleaner, denser above-the-fold.
- Maxx Crawford fixed “Weather data is not available right now message” begin shown on the Weather widget by correcting gating so the Weather widget fetches and renders data reliably on v150.
- Maxx Crawford resolved an issue where experiments could accidentally override weather preferences set by the user
- Nina Pypchenko [:nina-py] aligned the newtab devtools button to match the Personalize button to improve visual consistency and discoverability of the DevTools toggle.
Search
- Marco worked on replacing ContentTask.spawn in various tests @ 2023131, 2023134
- Dale worked on several TrustPanel UX fixes @ 2017369, 2017376
- Daisuke fixed issue with SwitchTab results with no title @ 2020341
- Moritz worked on several telemetry issues relating to the new search bar 2021927
- Moritz fixed the unified search button having no focus border @ 2023656
- Dao added support for middle clicking to search in the unified search menu @ 2011220
Smart Window
- “Beta” badges 2017667
- Added AI Controls integration, supporting the blocked state (2010599)
- Added more user choice with split memory generation (2017428)
- Added chat search in Firefox View (2009070)
- Follow-up prompts now persist across tab switches (2019696)
- Conversation starter prompts now update with the foregrounded tab (2013657)
- Current tab context is now removable (2018802)
- Keyboard fixes for smartbar input (2019556 2017939 2015090)
- Show sign in button in chat if signed out (2015720)
Storybook/Reusable Components/Acorn Design System
- Tim Giles fixed some issues with panel-list using popover:
- A macOS issue where keyboard events went to the wrong <moz-select>Bug 2017668
- Scrolling now dismisses an open panel-listBug 2018563
- akulyk updated the panel-list variant of moz-select to use role=”combobox”, improving screen reader semantics and keyboard navigation consistency.
- Dustin Whisman updated the moz- widgets CSS to pass use-design-tokens:
- Dustin Whisman updated some design token names for consistency (Bug 2013342):
- –font-size-heading-* now a font-size variant (was –heading-font-size)
- –card-border-color, –card-box-shadow, –card-box-shadow-hover, –popup-box-shadow, –tab-box-shadow (were nested as variants previously and now are under their component name)
UX Fundamentals
- Added keyboard autofocus to the “Try Again” button in Felt Privacy error pages so users who land on an error page can immediately press enter to retry. (2021447)
- Added keyboard access keys to the three primary error page buttons: G (Go Back), T (Try Again), and P (Proceed to Site). (404501)
- In progress: refactoring net error illustrations into a shared object and adding alt text so assistive technology can read out meaningful descriptions. (2022033)
- In progress: adding improved messaging to the file-not-found error page. (2018850)
- In progress: restoring the error page for Work Offline mode so users see messaging that accurately reflects that they’re in Offline mode, not that there’s a network problem. (