Firefox 151 release notes for developers (Beta)

This article provides information about the changes in Firefox 151 that affect developers. Firefox 151 is the current Beta version of Firefox and ships on May 19, 2026.

Note: The release notes for this Firefox version are still a work in progress.

Changes for web developers

HTML

CSS

APIs

  • The Sanitizer.replaceElementWithChildren() method now returns false if the element to be replaced is <svg> in the SVG namespace or <math> in the MathML namespace (joining <html>, which was disallowed in Firefox 150). (Firefox bug 2032359).
  • The Document Picture-in-Picture API is now supported on desktop platforms. This makes it possible to open an always-on-top window that can be populated with arbitrary HTML content. It can be used to display any content that a user might want to view separate from the launching page (or even the browser), such as a set of streams showing the participants of a video conference call, a stock ticker, or a countdown timer. (Firefox bug 2006594).
  • The CanvasRenderingContext2D.lang property is supported for setting the language of the canvas drawing context. While a DOM canvas can inherit this context from the lang attribute of its associated <canvas> element, this is useful for setting the context for an offscreen canvas, which may be rendered before being associated with a <canvas>. (Firefox bug 1943070).
  • The options.keyboardLock property can now be passed as an option to Element.requestFullscreen(), allowing websites to request keyboard lock when the element is displayed in fullscreen mode. This stops the Esc key from causing the element to leave fullscreen (a long-press is required instead), and some formerly-reserved browser hotkeys can now be intercepted and their default action prevented. (Firefox bug 2032302).
  • The CanvasRenderingContext2D.lang property is now supported, allowing the rendering language of an offscreen canvas to be explicitly specified and changed after the rendering context is created. (Firefox bug 1943070).

Changes for add-on developers

  • tabs.group() and tabs.ungroup() now correctly add and remove a split view when a call includes one of the split view's tabs. Previously, a call would fail or separate the split view. (Firefox bug 2029099)
  • tabs.move() now correctly moves a split view to the right when a call includes one of the split view's tabs. Previously, a call moved a split view only to the left or to the end of the tab list. (Firefox bug 2027855)

Experimental web features

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

  • @container style() range syntax queries: layout.css.attr.enabled

    The @container CSS at-rule style() queries now supports the range syntax. This allows you to check if a container has a valid CSS custom property and compare its value with comparison operators like >, <, >=, and <= and apply styles to its children accordingly. (Firefox bug 2024601).

  • Fix for nested scrollable areas: layout.css.fake-webkit-scrollbar.enabled

    This implementation has been added in order to fix an issue where scrollable content was unreachable. If a scrollbar is set to display: none; or width: 0; then the scrollbars of nested scrollable areas would be stacked on top of each other meaning that some of the content may well be unreachable. (Firefox bug 1977511).