![Rachel Andrew](https://web.dev/images/authors/rachelandrew.jpg) Rachel Andrew Technical Writer [GitHub](https://github.com/rachelandrew) [LinkedIn](https://www.linkedin.com/in/rachelandrew) [Mastodon](https://front-end.social/@rachelandrew) [Bluesky](https://bsky.app/profile/rachelandrew.bsky.social) [Homepage](https://rachelandrew.co.uk)

<br />


Published: June 2, 2026

<br />

Chrome 149 is rolling out now, and this post shares some of the key features
from the release. Read the full [Chrome 149 release notes](https://developer.chrome.com/release-notes/149.md.txt).

Highlights from this release:

- [CSS gap decorations](https://developer.chrome.com/blog/new-in-chrome-149.md.txt#gap-decorations) let you style the gaps in container layouts like grid and flexbox.
- [Disconnect WebSockets on bfcache entry](https://developer.chrome.com/blog/new-in-chrome-149.md.txt#bfcache-websockets) lets pages with active WebSocket connections enter the Back/Forward Cache.
- [Intl.Locale.prototype.variants](https://developer.chrome.com/blog/new-in-chrome-149.md.txt#intl-locale-variants) returns or sets the variants of a locale.

## CSS gap decorations

CSS gap decorations let you style gaps in container layouts like grid and
flexbox, bringing consistency and new styling options that previously required
complex border and pseudo-element hacks. This feature is progressive-enhancement
friendly; in unsupported browsers, gaps render normally without decorations.

It introduces properties like `column-rule-inset` and `row-rule-inset` to shrink
or extend decorations, and `column-rule-visibility-items` and
`row-rule-visibility-items` to show rules only between adjacent items or in
every gap. Rule width, color, and insets are fully animatable, letting you
transition them on hover or other state changes.

Learn more in the
[CSS gap decorations stable post](https://developer.chrome.com/blog/gap-decorations-stable.md.txt).

## Disconnect WebSockets on bfcache entry

Active WebSocket connections no longer prevent a page from entering the
Back/Forward Cache (bfcache). By proactively closing WebSocket connections on
BFCache entry instead of marking the document as ineligible, the browser lets
pages with active WebSockets be stored in memory and instantly restored.

Previously, any active WebSocket connection forced the browser to discard the
page when the user navigated away,
preventing it from being stored in the Back/Forward Cache (bfcache).

## `Intl.Locale.prototype.variants`

The `Intl.Locale` object represents a Unicode locale identifier.
The main object is Baseline Widely available.

Variants are a part of the main language identifier, and select variants of a language
that the (language, region, script) triple cannot differentiate.
This feature is already shipped in Firefox and Safari, and is now available in Chrome.

For example:

```javascript
const locale = new Intl.Locale("sl-rozaj-biske");
console.log(locale.variants); // "rozaj-biske"
```

Learn more at the [MDN documentation for
Intl.Locale.prototype.variants](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/variants).

## Further reading

This covers only some key highlights. Check the following links for additional
changes in Chrome 149.

- [Release notes for Chrome 149](https://developer.chrome.com/release-notes/149.md.txt).
- [What's new in Chrome DevTools (149)](https://developer.chrome.com/blog/new-in-devtools-149.md.txt).
- [ChromeStatus.com updates for Chrome
  149](https://chromestatus.com/features#milestone%3D149).
- [Chrome release calendar](https://chromiumdash.appspot.com/schedule).

## Subscribe

To stay up to date, subscribe to the [Chrome Developers YouTube
channel](https://www.youtube.com/user/ChromeDevelopers/), and you'll get an
email notification whenever we launch a new video. Or follow us on X or LinkedIn
for new articles and blog posts.

As soon as Chrome 150 is released, we'll be right here to tell you what's new in
Chrome!