Firefox 160 release notes for developers (Stable)

This article provides information about the changes in Firefox 160 that affect developers. Firefox 160 was released on November 10, 2026.

Changes for web developers

HTML

No notable changes.

CSS

JavaScript

No notable changes.

APIs

Removals

  • The non-standard MozScrolledAreaChanged event is no longer dispatched to web pages. It used to be fired at the document when the size of the page's scrollable area changed. It is now available only to Firefox user interface. You can restore the event for web pages by setting the layout.scrolled-area-changed.content.enabled preference to true. (Firefox bug 2079865).

Changes for add-on developers

  • runtime.PlatformInfo now returns arch as arm64 for ARM64 platforms. Previously, it returned aarch64. This aligns the value returned by Firefox for ARM64 platforms with Chrome. (Firefox bug 2080310).

Experimental web features

These features are shipping in Firefox 160 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.

  • Render blocking: dom.element.blocking.enabled

    The blocking="render" attribute and value is now supported for the <link>, <script>, and <style> HTML elements. This allows for rendering to be blocked until the element's stylesheet has loaded or its script has run, including for elements that don't block rendering by default, such as scripts and stylesheets added with JavaScript. (Firefox bug 1751383).

  • Lazy loading for video and audio: media.lazy_loading.enabled

    The loading attribute of the <video> and <audio> elements, and the HTMLMediaElement.loading property that reflects it, are now supported. With loading="lazy", the browser defers loading the media, loading the video's poster image, and starting autoplay playback until the element is near the viewport. (Firefox bug 2005072).

  • Speculation rules: Speculation-Rules header: dom.speculation_rules.enabled

    Support for the Speculation-Rules HTTP response header is enabled by default in Nightly. It lists the URLs of external files containing speculation rules, as an alternative to an inline <script type="speculationrules"> element. The header applies to top-level documents only, and each file must be served with the application/speculationrules+json MIME type. (Firefox bug 2020709).

  • CSSNumericValue arithmetic methods: layout.css.typed-om.enabled

    The add(), sub(), mul(), and div() methods of the CSSNumericValue interface in the CSS Typed Object Model API are now supported in Nightly. They add, subtract, multiply, or divide numeric values, respectively; for example, CSS.px(10).add(CSS.px(5)) adds two pixel values. The result is a CSSUnitValue (15px in this example) when it can be simplified to a single unit, or a math expression such as a CSSMathSum when it can't be simplified (for example, when adding px to %). (Firefox bug 2081689).

  • Canvas 2D color space: gfx.canvas.colorspace.enabled

    The colorSpace option of HTMLCanvasElement.getContext() and OffscreenCanvas.getContext() is now supported for 2d contexts. CanvasRenderingContext2D.getContextAttributes() returns the selected color space. Image data also has a color space: the ImageData.colorSpace property returns it. The colorSpace setting of the ImageData() constructor and the createImageData() and getImageData() methods sets it. The supported values are "srgb" and "display-p3". Pixel data isn't converted between color spaces yet, so getImageData() returns the same pixels whichever color space is requested. (Firefox bug 1841326).