📃 April 2025 release notes
Newly available
The following features are newly available:
-
Atomics.pause():
The
Atomics.pause()
static method gives a hint to the CPU that the code calling the method is in a short-duration wait for shared memory, known as spinning or a spinlock. - Float16Array: Float16Array is a typed array of 16-bit floating point numbers.
-
JSON import attributes:
Module
import … with { type: "json" }
statements load JSON data. Also known as JSON module scripts. -
Single color stop gradients:
A single color stop can be provided to the
linear-gradient()
,radial-gradient()
, andconic-gradient()
CSS functions, and their repeating counterparts, to create a solid color background.
Widely available
The following features are now widely available:
-
Grid animation:
Grid animation allows you to animate the
grid-template-columns
andgrid-template-rows
CSS properties. -
ic unit:
The
ic
CSS length unit corresponds to the width of CJK ideographic characters.
New in Chrome
The following features are now available in Chrome:
-
Customizable <select>:
The
<select>
element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS. -
fetchLater:
The
fetchLater()
method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response. -
interactivity:
The
interactivity: inert
CSS declaration makes an element and its descendants inert, like when using theinert
HTML attribute. Inert elements can't be focused or clicked, their text can't be selected or found using the browser's find-in-page feature. -
Invoker commands:
The
command
andcommandfor
attributes for the<button>
HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative toaddEventListener()
calls oronclick
attribute handlers. -
Observable:
The
when()
method on a event target returns anObservable
object, which provides a declarative API for subscribing to and operating on events. It's an alternative toaddEventListener()
callbacks. -
print-color-adjust:
The
print-color-adjust
CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background. -
RegExp.escape():
The
RegExp.escape()
static method takes a string and replaces any characters that are potentially special characters of a regular expression with equivalent escape sequences. For example,RegExp.escape("[abc]")
returns"\\[abc\\]"
. -
Scroll markers:
A scroll container can be navigated by activating
::scroll-marker
pseudo-elements which appear in a generated::scroll-marker-group
pseudo-element, either before or after the scroll container.
New in Chrome Android
The following features are now available in Chrome Android:
-
Customizable <select>:
The
<select>
element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS. -
fetchLater:
The
fetchLater()
method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response. -
Invoker commands:
The
command
andcommandfor
attributes for the<button>
HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative toaddEventListener()
calls oronclick
attribute handlers. -
Observable:
The
when()
method on a event target returns anObservable
object, which provides a declarative API for subscribing to and operating on events. It's an alternative toaddEventListener()
callbacks. -
print-color-adjust:
The
print-color-adjust
CSS property sets whether styles of printed pages should be adjusted to use less ink, in cases such as light text on a dark background. -
RegExp.escape():
The
RegExp.escape()
static method takes a string and replaces any characters that are potentially special characters of a regular expression with equivalent escape sequences. For example,RegExp.escape("[abc]")
returns"\\[abc\\]"
.
New in Edge
The following features are now available in Edge:
-
Customizable <select>:
The
<select>
element's appearance, including the button, selected option, picker dropdown, and options, can be customized using CSS. -
fetchLater:
The
fetchLater()
method requests a deferred fetch sent at an unknown time. The browser chooses a reliable time to send the request, ideally when the document is unloaded, and ignores the response. This API is useful for sending beacons to a server without expecting a particular response. -
interactivity:
The
interactivity: inert
CSS declaration makes an element and its descendants inert, like when using theinert
HTML attribute. Inert elements can't be focused or clicked, their text can't be selected or found using the browser's find-in-page feature. -
Invoker commands:
The
command
andcommandfor
attributes for the<button>
HTML element dispatch an action to an element when the button is invoked (by click or keystroke), as a declarative alternative toaddEventListener()
calls oronclick
attribute handlers. -
Observable:
The
when()
method on a event target returns anObservable
object, which provides a declarative API for subscribing to and operating on events. It's an alternative toaddEventListener()
callbacks. -
Scroll markers:
A scroll container can be navigated by activating
::scroll-marker
pseudo-elements which appear in a generated::scroll-marker-group
pseudo-element, either before or after the scroll container.
New in Firefox
The following features are now available in Firefox:
-
Hyphenate limit chars:
The
hyphenate-limit-chars
CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen. -
Error.isError():
The
Error.isError()
static method checks whether a value is anError
object. -
Math.sumPrecise():
The
Math.sumPrecise()
static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found usingreduce()
or a loop to add together an array of values.
New in Firefox for Android
The following features are now available in Firefox for Android:
-
Hyphenate limit chars:
The
hyphenate-limit-chars
CSS property sets the number of characters in a word before it is hyphenated and the minimum number of characters on either side of the hyphen. -
Error.isError():
The
Error.isError()
static method checks whether a value is anError
object. -
Math.sumPrecise():
The
Math.sumPrecise()
static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found usingreduce()
or a loop to add together an array of values.