Google Chrome 151 stable version released, adding a Web API that makes it easy to stream text.



The latest stable version of the web browser ' Google Chrome ,' version 151, has been released. A Web API has been added to the byte stream interface that allows you to stream text, making it easier than ever to process text in a stream.

New in Chrome 151 | Blog | Chrome for Developers
https://developer.chrome.com/blog/new-in-chrome-151

◆Addition of textStream() method
We will add a textStream() method to the byte stream ( Request , Response , Blob ) interface. Previously, reading a decoded text string from a byte stream required piping the byte stream to a TextDecoderStream object.
[code]
const response = await fetch('https://example.com');
const stream = response.body.pipeThrough(new TextDecoderStream());
[code]


Replacing this with the textStream() method improves readability and prevents common mistakes such as forgetting to pipe the data.
[code]
const response = await fetch('https://example.com');
const stream = response.textStream();
[code]



◆Introduction of the functional element <usermedia>
We introduce the `<usermedia> ` functional element as a declarative user-initiated control for starting and manipulating media streams. Embedding browser control elements directly into HTML improves the user experience because permission requests are explicitly associated with user intent rather than being called `getUserMedia()` . For example, it provides an easy way to restore permissions for users who have previously been denied them.

You can check the functionality of the <usermedia> feature by browsing the following demo site with Chrome 151.

permission.site (media capture elements)
https://permission.site/media_capture_element

◆Declarative Shadow DOM: Adding the shadowrootslotassignment attribute
By adding the `shadowrootslotassignment` attribute to the `<template>` element, you can now build declarative shadow roots that allow you to manually assign slots directly within the HTML. Previously, manual slot assignment was only available imperatively via `attachShadow ({slotAssignment: 'manual'})` , preventing components that relied on manual assignment from declaratively creating shadow roots. With this update, you can now specify manual slot assignment in the `shadowrootslotassignment='manual'` shadow root template.

◆Timeline entries for PerformanceSoftNavigation and InteractionContentfulPaint
This update adds a PerformanceEntry type to the Web Performance API timeline.

soft navigation
interaction-contentful-paint

The added entries build upon existing Core Web Vitals metrics such as Largest Contentful Paint (LCP) and Interaction to Next Paint (INP) , helping developers track interaction-driven performance and latency in single-page applications (SPAs) . Because SPAs use JavaScript for route transitions, they do not trigger traditional browser page loads.

The `soft-navigation` entry captures historical state changes within the same document initiated by user interaction, and because the browser establishes a new time starting point when soft navigation occurs, subsequent performance data can be accurately attributed to the active SPA route rather than the initial document URL. On the other hand, the `interaction-contentful-paint` entry measures the rendering of new content within DOM regions modified by user interaction, making interaction loading delays visible even when content updates rely on asynchronous operations such as `fetch()` requests.
[code]
const observer = new PerformanceObserver(console.log);
observer.observe({ type: 'soft-navigation', buffered: true });
[code]



◆Other updates
CSS: Added the `animation` read-only attribute to the `AnimationEvent` and `TransitionEvent` interfaces.
- CSS: Added support for the ruby-overhang property: Controls the overhang of ruby annotation text ( auto , spaces , none )
CSS: Changed the default value of position-anchor to normal : to unify behavior across multiple browsers.
- CSS: Automatic rewinding of AnimationTrigger playback methods ( play , play-forwards , play-backwards ) has been removed: Completed animations will no longer be resumed.
DOM: Replaces XML parsing in non- XSLT scenarios with a Rust implementation.
- Cross-origin redirect timing: Changed so that the origin server can share timing details with the destination origin of the navigation.
- Navigation: Changed to ignore duplicate navigation.
- Permission policies: Updates to Direct Sockets permission policies: Split the direct-sockets-private policy into local-network and loopback-network policies.
- Speculative rules: The syntax for speculative rules has been extended to allow specifying the form_submission field.
- Web API: Added the DeviceOrientationEvent.requestPermission () method: This method requests the user agent to share device orientation and movement data with the page.
- Momentum attribute of wheel events: Allows for the distinction between simulated inertia events resulting from fling operations and direct user operations.
• Accessibility: aria-actions attribute support: Directly exposes complex UI patterns, such as tab close buttons, to assistive technologies , increasing the likelihood of detection by accessibility features.
Web Speech API : Add an `unspokenPunctuation` boolean attribute to the interface: When true, the interface will automatically infer and insert punctuation even if it is not explicitly specified.
LanguageDetector : Supports Traditional Chinese ( zh-Hant ) and Simplified Chinese ( zh-Hans )

◆Origin Trial
WebCrypto algorithm updates: ML-KEM (768, 1024), ML-DSA (44, 65, 87), ChaCha20-Poly1305, X-Wing
• Declarative performance observer
- Prefetch activation beacon: Introduction of the on-prefetch-activation HTTP response header.
WebRTC data channel: Accelerates the establishment of data channels for the Stream Controlled Transmission Protocol (SCTP).

◆Abolished/Deleted
- End of support for macOS 12
- FontFaceSet : Remove the [LegacyNoInterfaceObject] attribute from the Web IDL definition.
- Manifest V2 extension functionality is completely disabled.

The next stable version, 'Google Chrome 152,' is scheduled for release on Tuesday, August 25, 2026 (local time).

in Software, Posted by log1c_sh