Firefox 121 Release: What’s New
The release of the web browser Firefox 121 has been announced, along with an update to the long-term support branch, version 115.6.0. Firefox 122 has entered beta testing, with its release scheduled for January 23.
Main New Features in Firefox 121
- Wayland by Default on Linux: Firefox now uses the Wayland compositor server by default instead of XWayland. This change resolves issues with touchpad functionality, gesture support on touchscreens, and per-monitor DPI settings in Wayland-based environments. Wayland also improves graphics performance. However, due to protocol limitations, there are still issues with bringing “picture-in-picture” windows to the foreground.
- Link Underlining Option: A new option in the Browsing section of settings allows users to force underline links, regardless of a website’s CSS. This can be helpful for users with color perception difficulties.
- PDF Viewer Improvements: The PDF viewer now displays a floating trash button for deleting drawings, text, and images added during PDF editing.
- AV1 Video Extension on Windows: On Windows, Firefox now prompts users to install the AV1 Video Extension, enabling hardware-accelerated AV1 video decoding.
- Voice Command Support on macOS: Added support for browser control using voice commands on macOS.
- New CSS Features:
- Added the
:has()
pseudo-class, allowing selection of parent elements based on the presence of a child element (e.g.,p:has(span)
selects<p>
elements containing a<span>
). - The
text-indent
property now supports “hanging” and “each-line” values, making it easier to style paragraphs, bibliographies, and poetry. Multiple values can now be combined (e.g.,text-indent: 3em hanging each-line
). - The
text-wrap
property now supports “balance” (for more uniform multi-line text blocks, such as long headlines) and “stable” (prevents reformatting during editing).
- Added the
- JavaScript and Web Features:
Date.parse()
now supports additional formats, including MMM-DD-YYYY, milliseconds, day of the week before the date (e.g., “Wed, 1970-01-01”), and ignores errors in the day of the week (e.g., “foo 1970-01-01”).- Support for lazy loading of iframes has been added. Content outside the visible area is not loaded until the user scrolls near it. The
loading
attribute in the<iframe>
tag can be set to “lazy” (<iframe loading="lazy">
). This reduces memory usage, traffic, and speeds up initial page loads. - Added the static method
Promise.withResolvers()
, allowing the use of resolve and reject callback functions to handle Promises after creation. - WebAssembly now supports
return_call
andreturn_call_indirect
instructions for tail-call optimization, reducing stack memory usage, improving performance, and enhancing support for functional programming languages. - The WebTransport API now includes the
sendOrder
property, allowing relative priorities to be set for bidirectional streams.
- Developer Tools: Accessibility improvements have been made, such as a unified and enlarged focus indicator across tools. The built-in JavaScript debugger now includes a “Pause on debugger statement” option to disable the debugger.
Android Version Updates
- Fixed crashes when copying to the clipboard and displaying fullscreen notifications.
- Resolved rendering issues on Google Pixel 8 and Samsung Galaxy S22 smartphones.
- Introduced an add-ons catalog.
- Private browsing mode now blocks third-party cookies and access to local storage.
- Manual Enhanced Tracking Protection now blocks tracking code used by social networks.
Security Fixes
In addition to new features and bug fixes, Firefox 120 addressed 27 vulnerabilities. Thirteen of these (11 grouped under CVE-2023-6864 and CVE-2023-6873) are marked as critical and are related to memory management issues, such as buffer overflows and use-after-free errors. These could potentially allow attackers to execute code when opening specially crafted pages. Another critical vulnerability (CVE-2023-6135) involves the NSS library’s susceptibility to the “Minerva” attack, which could allow reconstruction of a private key through side-channel data analysis.