Chrome Release Summary

Chrome version: 159 158 157 156 155 154 153 152
+152

Chrome 159

Enabled (22) | Origin Trial (0) | Behind a flag (1) | Deprecated (0) | Removed (0)

Enabled by default in 159

This release of Chrome had 22 new features.

AccentColor & AccentColorText follows accent-color value

`AccentColor` and `AccentColorText` reflect the element's effective `accent-color` value instead of only platform-provided system accent colors. This allows CSS to reference the same colors used by `accent-color` styling, making it easier to keep custom styling consistent with form controls and other accented UI. It aligns Chromium's behavior with the CSS Color Module Level 4 specification. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://kyerebo.github.io/demos/system-accent-color/index.html

Add javascriptURLs option to SanitizerConfig and Sanitizer

https://github.com/whatwg/html/pull/12898 Sanitizer API also sanitizes javascript:-URLs, when they are used for navigation. This was originally done as a side effect of any "safe" method that uses Sanitizer, and omittted for any "unsafe" method. The HTML standard recently regularized this and made this a developer-selectable option, instead of a side-effect of a particular method. Behaviour when the option is not used remains the same.

This feature was specified in this Spec.

Resources

Docs: https://html.spec.whatwg.org/#dom-sanitizer-setjavascripturls

No linked samples

Background layer count independence

Makes the computed value of the background-* longhands keep the number of comma-separated values the author specified, instead of repeating or truncating it to the background-image layer count. Repeating and truncating are used-value behavior: "The computed values of the coordinating list properties are not affected by such truncation or repetition." This feature implements the behavior defined in the https://drafts.csswg.org/css-values-4/ Appendix A. #

This feature was specified in this Spec.

CSS corner shorthand properties

Implements the CSS corner shorthand and per-corner sub-shorthands (corner-top-left, corner-top-right, corner-bottom-left, corner-bottom-right) as well as physical (corner-top, corner-bottom) and logical (corner-block-start, corner-block-end, etc.) edge shorthands. These allow setting both border-radius and corner-shape for individual corners in a single declaration. Additionally, corners is retained as a compat alias for the corner shorthand. sampler: https://static.januschka.com/i-425897047/ CL: https://chromium-review.googlesource.com/c/chromium/src/+/7747994 #

This feature was specified in this Spec.

CSSImportRule.styleSheet

Returns null from CSSImportRule.styleSheet when an @import rule has no associated stylesheet, including when its supports() condition is false. This lets developers check whether a stylesheet is associated with the rule before accessing its properties. #

This feature was specified in this Spec.

Enhanced Canvas TextMetrics

Expand the TextMetrics Canvas API to support selection rectangles, bounding box queries, and glyph cluster-based operations. This new functionality should enable complex text editing applications with accurate selection, caret positioning, and hit testing. Additionally, cluster-based rendering facilitates sophisticated text effects such as independent character animations and styling. #

This feature was specified in this Spec.

MediaSession: Return Promise<undefined> from setMicrophoneActive() and setCameraActive()

Updates navigator.mediaSession.setMicrophoneActive() and navigator.mediaSession.setCameraActive() to return a Promise<undefined> instead of undefined, matching the W3C Media Session specification. In a fully active document, the returned promise resolves with undefined; if the associated document is not fully active, it returns a promise rejected with an InvalidStateError DOMException. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://developer.mozilla.org/en-US/docs/Web/API/MediaSession/setMicrophoneActive

Optional descriptors for registered custom properties

Allows authors to omit any descriptor in an @property rule and the corresponding optional members of CSS.registerProperty(). Omitted values default to universal syntax, inheritance, and the guaranteed-invalid initial value; invalid descriptors use normal CSS fallback behavior. #

This feature was specified in this Spec.

Prerendering cross-origin iframes

Prerenders cross-origin iframes with an opt-in response header. Browsers will now prerender all cross-origin frames if the top-level frame's HTTP response includes the Supports-Loading-Mode: prerender-cross-origin-frames. #

This feature was specified in this Spec.

Regular Expression Buffer Boundaries

A TC39 proposal introducing `\A`, `\z` and `\Z` character escapes to Unicode-mode regular expressions as synonyms for `(?-m:^)`, `(?-m:$)` and `(?=(?:\r\n|\n|\r|\u2028|\u2029)?(?-m:$))`, respectively. #

This feature was specified in this Spec.

SVG Path Data API

Adds structured JavaScript access to SVG path data through three methods on SVGPathElement: getPathData() reads the path as an array of {type, values} objects containing each segment's command and numeric parameters. setPathData() updates the path from such an array, getPathSegmentAtLength() returns the segment at a specified distance along the path. These methods let developers inspect, edit, and construct paths without manually parsing or serializing the d attribute. The optional getPathData({normalize: true}) setting simplifies path data to absolute move, line, cubic Bézier, and close commands (M, L, C, and Z). All three APIs operate on the base value of the d attribute, not CSS-computed or animated values. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1uCVUqYGKgsCCu7LEtEdO3Yuea-MT-I2XsU6Eoe3mlQI/edit?usp=sharing

No linked samples

Scroll snap for single-axis scroll containers

This feature lets a single-axis scroll container (for example, one with overflow: auto clip) handle scroll snap area propagation and alignment separately for each axis. Single-axis scroll containers are now supported (https://chromestatus.com/feature/5067363861004288). Without this feature, such a container captures a snap area on both axes, even the axis it can't scroll. The snap area then can't align on that axis. With this feature, if a snap area sets alignment on both axes, the single-axis container handles only the axis it scrolls. The other axis goes up to the nearest ancestor scroll container that scrolls in that direction. #

This feature was specified in this Spec.

Shared MessagePort for AudioWorklet

Exposes a shared MessagePort on AudioWorklet and AudioWorkletGlobalScope. This lets web applications communicate directly between the main thread AudioWorklet and the AudioWorkletGlobalScope without creating a bootstrap AudioWorkletProcessor only for message passing. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/docs/Web/API/AudioWorkletGlobalScope/port

No linked samples

SpeechRecognitionResult Timestamps (WebSpeech API)

The Web Speech API currently does not expose the acoustic timing bounds of recognized speech segments, making it difficult to associate transcribed text with media timelines or generate synchronized subtitle cues. We propose adding speechStartTime and speechEndTime (double, in seconds relative to stream start) attributes on the SpeechRecognitionResult interface. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://alan33d.github.io/web-speech-demos/live_meeting_recording_demo.htmlhttps://alan33d.github.io/web-speech-demos/webrtc_caption_sync_test.html

WebTransport Datagram readable stream type

Adds the  WebTransportOptions.datagramsReadableType  constructor option. By default, incoming WebTransport Datagrams are exposed through a default  ReadableStream . Applications that require BYOB reading can request a readable byte stream by setting  datagramsReadableType: "bytes" . #

This feature was specified in this Spec.

WebTransport Datagram writable streams and prioritization

Adds the modern WebTransport Datagram sending API. WebTransportDatagramDuplexStream.createWritable() creates independent WebTransportDatagramsWritable streams. Each writable has mutable sendGroup and sendOrder attributes for expressing relative priority among queued WebTransport data in the same send group. Chromium currently applies this ordering among Datagram writables. The implementation also reports the negotiated maximum outgoing Datagram payload size and discards oversized writes as required by the WebTransport specification. #

This feature was specified in this Spec.

WebTransport congestion control

Adds the congestionControl constructor option and read-only attribute to WebTransport. Applications can request "default", "throughput", or "low-latency" behavior, allowing the user agent to select suitable congestion-control behavior for each session. #

This feature was specified in this Spec.

WebTransport connection statistics

WebTransport.getStats() provides asynchronous statistics for an existing connection: round-trip time measurements when available, an estimated sending rate when available, and counts of expired, lost, and dropped datagrams. Statistics remain accessible after the connection closes. Chromium does not currently expose connection byte or packet totals. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/WebTransport/getStatshttps://w3c.github.io/webtransport/#web-transport-connection-stats

Samples: https://github.com/MicrosoftEdge/Demos/tree/main/webtransport-getstatshttps://microsoftedge.github.io/Demos/webtransport-getstats

WebTransport keying material export

Adds WebTransport.exportKeyingMaterial(), which allows an application to derive cryptographic keying material bound to an established WebTransport session. The method accepts application provided binary label and context values and a requested output length and returns a Promise<Uint8Array>. Chromium supports label and context values up to 255 bytes and output lengths from 1 through 4096 bytes. For WebTransport over HTTP/3, Chromium includes the WebTransport CONNECT stream ID in the TLS exporter context. This ensures that separate WebTransport sessions derive different keying material even when they share the same underlying HTTP/3 connection. #

This feature was specified in this Spec.

WebTransport receive stream

Adds the standardized WebTransportReceiveStream interface, a ReadableStream subclass used for incoming unidirectional streams and the readable side of bidirectional streams. Its getStats() method returns per-stream byte counters: bytesReceived reports bytes received from the network, while bytesRead reports bytes delivered to the application. #

This feature was specified in this Spec.

WebTransport send groups and send-stream prioritization

WebTransport already lets sites send data through WritableStreams. This feature lets applications assign outgoing streams to send groups and use sendOrder to prioritize streams within each group. It also provides sending statistics for streams and groups while preserving WritableStream transfer behavior. #

This feature was specified in this Spec.

WebTransportError API alignment and serialization

Updates Chromium WebTransportError to match the current WebTransport specification. Adds the standard (message, options) constructor while preserving the shipped dictionary constructor for compatibility; carries the full unsigned-long stream error code end to end; and makes WebTransportError structured-clonable while preserving its message, source, and nullable error code. Serialization is enabled by default behind a writer-side runtime kill switch, while decoding remains permanently enabled for persisted values. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/WebTransportErrorhttps://developer.chrome.com/docs/capabilities/web-apis/webtransport

Samples: https://developer.mozilla.org/en-US/docs/Web/API/WebTransportError

Origin Trials in-progress in 159

This release of Chrome had 0 new origin trials.

Flagged features in 159

This release of Chrome had 1 are available behind a flag.

WebTransportError API alignment and serialization

Updates Chromium WebTransportError to match the current WebTransport specification. Adds the standard (message, options) constructor while preserving the shipped dictionary constructor for compatibility; carries the full unsigned-long stream error code end to end; and makes WebTransportError structured-clonable while preserving its message, source, and nullable error code. Serialization is enabled by default behind a writer-side runtime kill switch, while decoding remains permanently enabled for persisted values. #

This feature was specified in this Spec.

Resources

Docs: https://developer.mozilla.org/en-US/docs/Web/API/WebTransportErrorhttps://developer.chrome.com/docs/capabilities/web-apis/webtransport

Samples: https://developer.mozilla.org/en-US/docs/Web/API/WebTransportError

Deprecations and Removals

Deprecation policy

To keep the platform healthy, we sometimes remove APIs from the Web Platform which have run their course. There can be many reasons why we would remove an API, such as:

Some of these changes will have an effect on a very small number of sites. To mitigate issues ahead of time, we try to give developers advanced notice so they can make the required changes to keep their sites running.

Chrome currently has a process for deprecations and removals of API's, essentially:

You can find a list of all deprecated features on chromestatus.com using the deprecated filter and removed features by applying the removed filter. We will also try to summarize some of the changes, reasoning, and migration paths in these posts.

Deprecated features in 159

This release of Chrome had 0 features deprecated.

Removed features in 159

This release of Chrome had 0 features removed.