files/en-us/mozilla/firefox/releases/126/index.md
This article provides information about the changes in Firefox 126 that affect developers. Firefox 126 was released on May 14, 2024.
No notable changes.
mathml.centered_operators.disabled config to false. (Firefox bug 1890531).No notable changes.
zstd directive of the Content-Encoding HTTP header is now supported, allowing decoding of server-sent content encoded with the {{glossary("Zstandard compression")}} algorithm (Firefox bug 1871963).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 creating URL objects. This returns null if the passed parameters do not define a valid URL, and can hence be used as a non-throwing alternative to creating URL object with the URL 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 {{domxref("Navigator.wakeLock")}} in secure contexts, which returns a {{domxref("WakeLock")}}. This allows you to request a {{domxref("WakeLockSentinel")}}, 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 unimplemented relayProtocol and url properties. The following changes were made to the properties of RTCIceCandidate:
candidate, sdpMid, sdpMLineIndex, and usernameFragment.foundation, component, priority, address, protocol, port, type, tcpType, relatedAddress, relatedPort, and usernameFragment.The {{domxref("Element.currentCSSZoom")}} read only property is now supported for getting the effective CSS zoom of an element (Firefox bug 1880189).
: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).<marquee> HTML element events bounce, finish, and start have been removed from HTMLMarqueeElement, along with the corresponding event handler attributes (Firefox bug 1689705).contexts argument to the network.addIntercept command to limit the interception of network requests to particular top-level browsing contexts (Firefox bug 1882260).session.subscribe and session.unsubscribe now raise an invalid argument error when the value of the arguments events or contexts are empty arrays (Firefox bug 1887871).storage.getCookies command to align with the Gecko default cookie behavior. This allows the removal of the user value for the preference network.cookie.cookieBehavior, which was only expected to be set for our CDP implementation (Firefox bug 1879503).ownership and sandbox arguments for the browsingContext.locateNodes command because they are no longer necessary (Firefox bug 1884935).session.new command when no capabilities are specified (Firefox bug 1838152).tab 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 the tabs.query() method (Firefox bug 1843866).origin 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)."webRequestAuthProvider" permission is now supported. This provides compatibility with Chrome for requesting permission for {{WebExtAPIRef("webRequest.onAuthRequired")}} in Manifest V3 (Firefox bug 1820569).options_page manifest key is provided as an alias of the options_ui key. This has been provided to offer extensions better compatibility with Chrome (Firefox bug 1816960).activeTab permission, providing compatibility with Chrome and Safari (Firefox bug 1784920).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 {{domxref("Selection.getComposedRanges()")}} method can be used to get selection ranges that have anchor or focus nodes inside a shadow DOM — provided it is passed the {{domxref("ShadowRoot")}} objects that contain those nodes. Selection methods {{domxref("Selection.setBaseAndExtent()","setBaseAndExtent()")}}, {{domxref("Selection.collapse()","collapse()")}}, and {{domxref("Selection.extend()","extend()")}} 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 {{cssxref("basic-shape/shape","shape()")}} function to define shapes in the {{cssxref("clip-path")}} and {{cssxref("offset-path")}} properties. This function gives you more fine-grained control over the shapes you can define and offers several advantages over the {{cssxref("basic-shape/path","path()")}} function (Firefox bug 1823463 for shape() function support in clip-path, Firefox bug 1884424 for shape() function support in offset-path, Firefox bug 1884425 for shape() interpolation support).