New to the web platform in January

Discover some of the interesting features that have landed in stable and beta web browsers during January 2025.

Published: January 29, 2025

Stable browser releases

In January 2025 Firefox 134, Safari 18.3, and Chrome 132 became stable. This post looks at the new features added to the web platform.

Promise.try is now Baseline Newly available

Promise.try is a convenience method that makes error handling for synchronous callback functions easier. It's available from Firefox 134, making it Baseline Newly available. Learn more in Promise.try is now Baseline Newly available.

CSS alignment properties for absolute positioned elements

Also in Firefox 134, the align-self and justify-self CSS properties along with the place-self CSS shorthand property are now supported for absolutely positioned elements.

Browser Support

  • Chrome: 122.
  • Edge: 122.
  • Firefox: 134.
  • Safari: not supported.

CSS sideways writing modes

Support of sideways-rl and sideways-lr keywords for the writing-mode CSS property have been added to Chrome 132. The sideways-rl and sideways-lr are helpful to write non-CJK text vertically, when you want to display vertical text for design purposes.

Browser Support

  • Chrome: 132.
  • Edge: 132.
  • Firefox: 43.
  • Safari: not supported.

Fixes to mobile support for popover

Safari 18.3 is a release fixing various interoperability issues. A key issue is a fix for popover. Previously, touching or clicking outside of the popover failed to close it on iOS and iPadOS. This has now been fixed.

Request.bytes() and Response.bytes() are Baseline Newly available

Chrome 132 adds a bytes() method to the Request and Response interfaces of Fetch, which returns a promise that resolves with a Uint8Array. While Request and Response have an arrayBuffer() method, you can't read directly from a buffer. You have to create a view such as a Uint8Array to read it. The bytes() method improves the ergonomics of getting the body of Request and Response.

Browser Support

  • Chrome: 132.
  • Edge: 132.
  • Firefox: 128.
  • Safari: 18.

Source

Device Posture API

Chrome 132 includes the Device Posture API, designed to help when designing for foldable screens. This implementation includes a new device-posture CSS media feature that can be used to detect the device's current posture. It also includes a JavaScript interface to detect and react to changes in posture. Postures are defined as:

  • continuous: Indicates a flat screen—this can include a foldable device while it is being used flat, and flat or curved screens.
  • folded: Indicates a folded screen—this can include a foldable device being used in a book or laptop posture.

Browser Support

  • Chrome: 132.
  • Edge: 132.
  • Firefox: not supported.
  • Safari: not supported.

WebAuthn Signal API

Chrome 132 also includes the WebAuthn Signal API which Allows WebAuthn relying parties to signal information about existing credentials back to credential storage providers, so that incorrect or revoked credentials can be updated or removed from provider and system UI.

Learn more about the Signal API for passkeys on Chrome desktop.

Beta browser releases

Beta browser versions give you a preview of things that will be in the next stable version of the browser. It's a great time to test new features, or removals, that could impact your site before the world gets that release. New betas are Firefox 135 and Chrome 133. These releases bring many great features to the platform. Check out the release notes for all of the details. Here are just a few highlights.

Chrome 133 is an exciting release for CSS. It includes the advanced attr() function, scroll state container queries, and CSS text-box, text-box-trim, and text-box-edge.

Chrome 133 also includes the FileSystemObserver interface, and a DOM primitive (Node.prototype.moveBefore) that lets you move elements around a DOM tree, without resetting the element's state.

Firefox 135 includes the JSON parse with source proposal, which aims to provide features to mitigate issues around loss of precision when converting values such as large floats and date values between JavaScript values and JSON text.