Firefox 126 for developers
This article provides information about the changes in Firefox 126 that affect developers. Firefox 126 was released on May 14, 2024.
Changes for web developers
Developer Tools
- Added an option to disable split console (Firefox bug 1731635).
HTML
No notable changes.
MathML
Removals
- The automatic adjustment for vertically centered operators (+, =, <, etc.) has been disabled by default. This behavior is not defined in MathML Core and was only necessary as a workaround for non-math fonts. It can still be enabled by setting the
mathml.centered_operators.disabled
config tofalse
. (Firefox bug 1890531).
CSS
- The
zoom
property is now supported. It can be used to increase or decrease the size of an element and its contents (Firefox bug 390936).
JavaScript
No notable changes.
HTTP
- The
zstd
directive of theContent-Encoding
HTTP header is now supported, allowing decoding of server-sent content encoded with the Zstandard compression algorithm (Firefox bug 1871963).
APIs
-
IDBFactory.databases()
is now supported for enumerating available IndexedDB API databases (Firefox bug 934640). -
IDBTransaction.durability
can now be used for querying the transaction durability hint that the transaction was created with (Firefox bug 1878143). -
The
URL.parse()
static method is now supported for creatingURL
objects. This returnsnull
if the passed parameters do not define a validURL
, and can hence be used as a non-throwing alternative to creatingURL
object with theURL
constructor (Firefox bug 1823354). -
The Screen Wake Lock API is now supported, allowing a web application to request that the screen not be dimmed or locked while it is active. This is particularly useful for navigation and reading applications, as well as other applications where the screen may not receive regular tactile input when in use that would typically keep it awake. The API is accessed through
Navigator.wakeLock
in secure contexts, which returns aWakeLock
. This allows you to request aWakeLockSentinel
, which can be used to monitor the status of the wake lock and release it manually (Firefox bug 1589554, Firefox bug 1874849). -
All
RTCIceCandidate
properties and methods are now supported and match the specification, with the exception of the unimplementedrelayProtocol
andurl
properties. The following changes were made to the properties ofRTCIceCandidate
:- The following properties were made read-only:
candidate
,sdpMid
,sdpMLineIndex
, andusernameFragment
. - The following properties were added:
foundation
,component
,priority
,address
,protocol
,port
,type
,tcpType
,relatedAddress
,relatedPort
, andusernameFragment
.
- The following properties were made read-only:
-
The
Element.currentCSSZoom
read only property is now supported for getting the effective CSS zoom of an element (Firefox bug 1880189).
DOM
- The ability to define states for custom elements and match them using CSS selectors is now available by default.
The custom states are represented as custom identifiers that can be added to or removed from the element's
ElementInternals.states
property (aCustomStateSet
). The CSS:state()
pseudo-class takes a custom identifier as an argument and matches custom elements if the identifier is present in their set of states (Firefox bug 1887543). - The
Selection.direction
property is now supported for indicating the direction of a range (Firefox bug 1867058).
Media, WebRTC, and Web Audio
Removals
- The
<marquee>
HTML element eventsbounce
,finish
, andstart
have been removed fromHTMLMarqueeElement
, along with the corresponding event handler attributes (Firefox bug 1689705). - The Theora codec was disabled by default, and will be removed in a future release (Firefox bug 1860492).
WebDriver conformance (WebDriver BiDi, Marionette)
WebDriver BiDi
- Added the
contexts
argument to thenetwork.addIntercept
command to limit the interception of network requests to particular top-level browsing contexts (Firefox bug 1882260). - Both the commands
session.subscribe
andsession.unsubscribe
now raise aninvalid argument
error when the value of the argumentsevents
orcontexts
are empty arrays (Firefox bug 1887871). - Updated the implementation of the
storage.getCookies
command to align with the Gecko default cookie behaviour. This allows the removal of the user value for the preferencenetwork.cookie.cookieBehavior
, which was only expected to be set for our CDP implementation (Firefox bug 1879503). - Removed the
ownership
andsandbox
arguments for thebrowsingContext.locateNodes
command because they are no longer necessary (Firefox bug 1884935). - Improved error message for the
session.new
command when no capabilities are specified (Firefox bug 1838152).
Changes for add-on developers
- The
commands.onCommand
event now passes thetab
argument to the event listener. This enables extensions to apply a triggered shortcut to the page in which it was issued, without the need to call thetabs.query()
method (Firefox bug 1843866). - The
runtime.MessageSender
type now includes theorigin
property. This enables message or connection requests to see the page or frame that opened the connection. This is useful for identifying if the origin can be trusted if it isn't apparent from the URL (Firefox bug 1787379). - The
"webRequestAuthProvider"
permission is now supported. This provides compatibility with Chrome for requesting permission forwebRequest.onAuthRequired
in Manifest V3 (Firefox bug 1820569). - The
options_page
manifest key is provided as an alias of theoptions_ui
key. This has been provided to offer extensions better compatibility with Chrome (Firefox bug 1816960). - The
tabs.captureVisibleTab
method is now also enabled by theactiveTab
permission, providing compatibility with Chrome and Safari (Firefox bug 1784920).
Experimental web features
These features are newly shipped in Firefox 126 but are disabled by default. To experiment with them, search for the appropriate preference on the about:config
page and set it to true
. You can find more such features on the Experimental features page.
-
Selections crossing shadow DOM boundary:
dom.shadowdom.selection_across_boundary.enabled
.The
Selection.getComposedRanges()
method can be used to get selection ranges that have anchor or focus nodes inside a shadow DOM — provided it is passed theShadowRoot
objects that contain those nodes.Selection
methodssetBaseAndExtent()
,collapse()
, andextend()
have also been modified to accept nodes inside a shadow root (Firefox bug 1867058). -
CSS
shape()
function:layout.css.basic-shape-shape.enabled
.You can use the
shape()
function to define shapes in theclip-path
andoffset-path
properties. This function gives you more fine-grained control over the shapes you can define and offers several advantages over thepath()
function (Firefox bug 1823463 forshape()
function support inclip-path
, Firefox bug 1884424 forshape()
function support inoffset-path
, Firefox bug 1884425 forshape()
interpolation support).
Older versions
- Firefox 125 for developers
- Firefox 124 for developers
- Firefox 123 for developers
- Firefox 122 for developers
- Firefox 121 for developers
- Firefox 120 for developers
- Firefox 119 for developers
- Firefox 118 for developers
- Firefox 117 for developers
- Firefox 116 for developers
- Firefox 115 for developers
- Firefox 114 for developers
- Firefox 113 for developers
- Firefox 112 for developers
- Firefox 111 for developers
- Firefox 110 for developers
- Firefox 109 for developers
- Firefox 108 for developers
- Firefox 107 for developers
- Firefox 106 for developers
- Firefox 105 for developers
- Firefox 104 for developers
- Firefox 103 for developers
- Firefox 102 for developers
- Firefox 101 for developers
- Firefox 100 for developers
- Firefox 99 for developers
- Firefox 98 for developers
- Firefox 97 for developers
- Firefox 96 for developers
- Firefox 95 for developers