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 overflow property to support scrollable values combined with clip.
Capability elements: <camera> and <microphone> provide dedicated, declarative HTML controls for single-capability media capture.
Joint Iteration adds Iterator.zip() and Iterator.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 optional padding iterable.
โstrictโ: Throws a TypeError if 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:
Release notes for Chrome 153.
ChromeStatus.com updates for Chrome 153.
Chrome release calendar.
