Firefox 158 release notes for developers (Stable)
This article provides information about the changes in Firefox 158 that affect developers. Firefox 158 was released on October 13, 2026.
Changes for web developers
>Accessibility
- The
aria-busyattribute is now supported in Firefox for Android (desktop support has been available for a long time). This ARIA state indicates whether an element is currently being modified. It allows assistive technologies to wait until changes to the content are complete before informing users of the update. For example, a screen reader can wait until a live region has finished updating before announcing the changes. (Firefox bug 908042).
HTML
No notable changes.
CSS
- CSS typed arithmetic is now supported, which enables using functions such as
calc()to divide two values of the same data type, even if they use different units. The resulting unitless quotients can then be converted to other data types, creating useful relationships between different values on a page. (Firefox bug 2067411).
JavaScript
No notable changes.
HTTP
- The default HTTP
Acceptheader for image requests now includesimage/jxl, following support for the JPEG XL image format. The new value isimage/avif,image/jxl,image/webp,image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5(see List of default Accept values). (Firefox bug 2065096).
APIs
- The
WebTransport.getStats()method is now supported. This method returns statistics for the transport's underlying connection and its datagrams. (Firefox bug 2007202). - The
WebTransport.supportsReliableOnlystatic property is now supported. This property indicates whether the browser supports WebTransport sessions over exclusively reliable transports, such as HTTP/2. Firefox doesn't support WebTransport over HTTP/2 yet, so the property always returnsfalse. (Firefox bug 2007783). - The
navigateoption of theNotification()constructor and theServiceWorkerRegistration.showNotification()method is now supported. This option specifies a URL to navigate to after the user clicks the generated system notification. Once a notification is created, you can retrieve the URL from theNotification.navigateproperty. (Firefox bug 2069920). - The WebGPU
float32-blendablefeature is now supported (seeGPUSupportedFeatures). This allows blending ofGPUTextures that use ther32float,rg32float, orrgba32floatformat. (Firefox bug 1931630). - The WebGPU
clip-distancesfeature is now supported on macOS (seeGPUSupportedFeatures). This allows vertex shaders to outputclip_distancesin WGSL, which cut away the parts of a triangle or line that fall on one side of a custom plane, while the rest is still drawn. This is useful for effects such as reflections in water or cutaway views in CAD applications. (Firefox bug 1931629). - The WebGL
EXT_polygon_offset_clampextension is now available on compatible devices. ItspolygonOffsetClampEXT()method works likepolygonOffset(), with an extra argument that limits the depth offset. This helps avoid holes in shadows when using shadow mapping. (Firefox bug 1854003). - The
PerformanceResourceTiming.deliveryTypeproperty is now supported, which indicates how a resource was delivered. The initial release supports thecachevalue, which indicates that the resource came from the cache. (Firefox bug 1914120, Firefox bug 2071913).
DOM
- The
SVGGraphicsElement.getBBox()method now honors thefillandstrokeproperties of itsoptionsargument when called on<tspan>and<textPath>elements. This allows you to get a bounding box that includes the stroke of a text span, as you already could for a whole<text>element. (Firefox bug 2072680). - The
javascriptURLsoption of the HTML Sanitizer API configuration and theSanitizer.setJavascriptURLs()method are now supported. They set whether a sanitizer removes attributes that containjavascript:URLs, such as<a href="javascript:…">, when it's used with an unsafe method likeElement.setHTMLUnsafe(). The safe methods, likeElement.setHTML(), still always remove them. As a result, the unsafe methods now removejavascript:URLs when used with the default sanitizer, or with a sanitizer afterSanitizer.removeUnsafe()is called. (Firefox bug 2068934).
Media, WebRTC, and Web Audio
- When sending H.264 or AV1 video with WebRTC, Firefox now lowers the resolution and frame rate as needed to stay within the codec level negotiated with the remote peer, set by the
profile-level-idparameter for H.264 andlevel-idxfor AV1. As a result,MediaCapabilities.encodingInfo()now reports awebrtcconfiguration as supported even if its resolution and frame rate exceed the level in itscontentType. (Firefox bug 2013936).
WebDriver conformance (WebDriver BiDi, Marionette)
General
- Added support for setting the
cameraandmicrophonepermissions with thepermissions.setPermissioncommand in WebDriver BiDi and theWebDriver:SetPermissioncommand in Marionette. This allows tests to grant or deny access to media devices without prompting the user. (Firefox bug 2070577). - Changed the touch start and touch move tolerances to zero in automation, so that touch actions now scroll from exactly the position at which they are dispatched, without small initial movements being absorbed. (Firefox bug 2055661).
WebDriver BiDi
- Added support for the
imageSizeargument to thebrowsingContext.captureScreenshotcommand, which allows clients to specify the maximum size of the resulting screenshot image. (Firefox bug 2069002). - Added support for the
destinationFolderargument to thebrowsingContext.startScreencastcommand, which allows clients to choose the folder where the recorded video file is saved. (Firefox bug 2072616).
Marionette
- Fixed the
WebDriver:TakeScreenshotcommand to return anunable to capture screenerror when the width or height of the captured image is zero. (Firefox bug 1492357).
Other
- Support for the JPEG XL image format (
image/jxl) is now enabled by default. JPEG XL is a royalty-free raster image format that supports lossy and lossless compression, transparency, animation, and HDR. It can also losslessly transcode existing JPEG images. (Firefox bug 2065096).
Changes for add-on developers
publicSuffix.isKnownSuffix()now throws an error when passed an invalid hostname, instead of returningfalse. (Firefox bug 2066620)- Adds
runtime.getVersion()to return the extension's version as declared in the manifest. (Firefox bug 1992418)
Experimental web features
These features are shipping in Firefox 158 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.
-
random()CSS function:layout.css.random.enabledThe
random()CSS function generates a random value within a specified range, optionally limiting the possible values to step size intervals between those limits. An optional<random-key>parameter controls whichrandom()functions share a random value, for example across elements or properties. (Firefox bug 2071165). -
corner-shapeproperties:layout.css.corner-shape.enabledThe
corner-shapeshorthand property and its constituent longhand properties are now supported in Nightly. These properties let you customize corner shapes using one of the<corner-shape-value>keyword values or thesuperellipse()function. (Firefox bug 2070927). -
Deferred module evaluation (Nightly):
javascript.options.experimental.defer_import_evalThe
import deferdeclaration and theimport.defer()syntax are now available in Nightly behind a preference. They load a module and its dependencies up front, but run the module's code only when one of its exports is first accessed, so modules that aren't needed right away don't slow down startup. Modules that use top-levelawaitstill run right away. (Firefox bug 1952263). -
On-device speech recognition:
media.webspeech.recognition.enableOn-device speech recognition is now supported in Nightly, on desktop only. This allows you to perform speech recognition via the Web Speech API directly in the browser, rather than relying on a cloud service. (Firefox bug 2069803).
-
Speculation rules: moderate eagerness:
dom.speculation_rules.enabledThe Speculation Rules API provides a mechanism to improve performance for future navigations by specifying which resources should be prefetched or prerendered based on factors such as user behavior towards links. Firefox 158 Nightly adds support for
moderateeagerness: a matching prefetch starts once the user hovers over a link for a short time (200 milliseconds by default). (Firefox bug 2061013). -
Streaming request bodies:
dom.fetch.streaming_uploadEnabled in Nightly only, you can now set a
ReadableStreamas a request body (for example, via theRequest()constructor or theWindow.fetch()method). This allows you to stream uploads incrementally rather than having to wait for the whole body to be available. (Firefox bug 1594633). -
CSSNumericValue.equals():layout.css.typed-om.enabledThe
CSSNumericValue.equals()method of the CSS Typed Object Model API is now supported in Nightly. It returnstrueif every value passed to it is the same as the numeric value it's called on, andfalseotherwise. Values are compared as written, without converting units. For example,1inand2.54cmare different, as arecalc(1px + 2px)andcalc(2px + 1px). (Firefox bug 2074503).