CSS

AccentColor & AccentColorText follows accent-color value Link copied!

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.

Background layer count independence Link copied!

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.

CSS corner shorthand properties Link copied!

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

Pending review

Scroll snap for single-axis scroll containers Link copied!

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.

Miscellaneous

Add javascriptURLs option to SanitizerConfig and Sanitizer Link copied!

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.

Pending review

SpeechRecognitionResult Timestamps (WebSpeech API) Link copied!

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.

Graphics

Pending review

Enhanced Canvas TextMetrics Link copied!

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.

Multimedia

Pending review

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

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.

Pending review

Shared MessagePort for AudioWorklet Link copied!

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.

JavaScript

DOM

Pending review

SVG Path Data API Link copied!

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.

Network / Connectivity

WebTransport Datagram writable streams and prioritization Link copied!

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.

Pending review

WebTransport connection statistics Link copied!

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.

WebTransport keying material export Link copied!

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.

WebTransport receive stream Link copied!

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.

WebTransport send groups and send-stream prioritization Link copied!

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.

Pending review

WebTransportError API alignment and serialization Link copied!

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.