Published: September 8, 2026
Chrome 153 is rolling out now, and this post shares some of the key features from the release. Read the full Chrome 153 release notes.
Highlights from this release:
- Single-axis scroll containers extends the
overflowproperty to support scrollable values combined withclip. - Capability elements:
<camera>and<microphone>provide dedicated, declarative HTML controls for single-capability media capture. - Joint Iteration adds
Iterator.zip()andIterator.zipKeyed()to synchronize the advancement of multiple iterators in JavaScript.
Single-axis scroll containers
Chrome 153 extends the CSS overflow property to support scrollable values (auto, scroll, hidden) combined with clip (for example, overflow: scroll clip or overflow: auto clip). This creates a scroll container for a single axis without turning the other axis into a scroller. This feature is now available for testing without a flag in non-stable channels (Beta, Dev, and Canary) from Chrome 153.
For detailed examples, read Ready for developer testing: Single-axis scroll containers.
Capability elements: <camera> and <microphone>
Following the launch of the <geolocation> element in Chrome 144 and <usermedia> in Chrome 151, Chrome 153 introduces dedicated <camera> and <microphone> capability elements.
These elements are declarative, user-activated HTML controls designed for single-capability use cases:
- The
<camera>element requests video capture. - The
<microphone>element requests audio capture.
Like <usermedia>, they embed a browser-controlled, strictly styled UI into the page, ensuring an intentional user click before a permission prompt is triggered or a stream is started. They maintain the same security model and built-in permission recovery path as <usermedia>, and provide more control if your application doesn't require mixed media access.
Joint Iteration
Chrome 153 adds support for the Joint Iteration TC39 proposal in JavaScript, introducing the Iterator.zip() and Iterator.zipKeyed() static methods.
Iterator.zip() aggregates elements from multiple iterable objects into a new iterator that yields arrays containing the elements at matching positions. By default, iteration completes when the shortest input iterable is exhausted:
You can customize this behavior using the mode option:
"shortest"(default): Stops when the first input iterable finishes."longest": Continues until all iterables finish, filling missing values using an optionalpaddingiterable."strict": Throws aTypeErrorif input iterables are not of equal length.
The companion Iterator.zipKeyed() method offers similar aggregation, yielding keyed objects instead of arrays.
For more details and examples, see the Iterator.zip() documentation on MDN.
Further reading
This covers only some key highlights. Check the following links for additional changes in Chrome 153:
Subscribe
To stay up to date, subscribe to the Chrome Developers YouTube channel, 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 154 is released, we'll be right here to tell you what's new in Chrome!