Chrome Release Summary

Chrome version: 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

Chrome 130

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

Enabled by default in 130

This release of Chrome had 12 new features.

CSS Container Queries flat tree lookup

Look up query containers in the flat tree ancestor order instead of shadow-including order. The specification for container queries changed to look up flat tree ancestors. This change is only relevant for shadow DOM where an element will now be able to see non-named containers inside shadow trees into which the element or one of its ancestors are slotted, even if the CSS rule does not use ::part() or ::slotted(). #

This feature was specified in this Spec.

Coalesced/predicted events in untrusted PointerEvents will retain original targets

For untrusted (i.e. JS constructed) PointerEvents, the events returned by PointerEvent.getCoalescedEvents() and PointerEvent.getPredictedEvents() will maintain their original targets and offsetX/Y coordinates, instead of behaving like trusted events where these fields are affected by the parent (container) event. #

This feature was specified in this Spec.

Compression dictionary transport with Shared Brotli and Shared Zstandard

This feature adds support for using designated previous responses, as an external dictionary for content encoding compressing responses with Brotli or Zstandard. Enterprises might experience potential compatibility issues with enterprise network infrastructure that intercepts HTTPS traffic and is sensitive to unknown content encodings. The enterprise policy "CompressionDictionaryTransportEnabled" is available to turn off the compression dictionary transport feature. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1IcRHLv-e9boECgPA5J4t8NDv9FPHDGgn0C12kfBgANg/edithttps://github.com/WICG/compression-dictionary-transporthttps://datatracker.ietf.org/doc/draft-ietf-httpbis-compression-dictionaryhttps://docs.google.com/document/d/1WCK965Ew0hTN6k05o2JFi9Y-AdGfkB1io_i6LrTSeQs/edit?usp=sharing

Samples: https://compression-dictionary-transport-threejs-demo.glitch.mehttps://compression-dictionary-transport-shop-demo.glitch.me

Concurrent Smooth scrollIntoViews

This feature allows scrollIntoView with behavior: "smooth" to run concurrently on scroll containers which are neither descendants nor ancestors of one another. scrollIntoView with behavior: "smooth" is a JavaScript method developers can use to cause scroll containers to scroll to their descendants via a gentle scroll animation. This feature fixes Chrome's implementation of the API so that ongoing scrollIntoView animations are not cancelled by unrelated scrolls on other scroll containers. This codepen[1] demonstrates the difference in behavior between Chrome and other browsers. The features also fixes cases where Chrome fails to scroll to a page's fragment anchor because of a competing scrollIntoView that is invoked when the page loads. [1] https://codepen.io/awogbemila/pen/GRaJQMG #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://davmila.github.io/MultiSmoothScrollDemohttps://codepen.io/awogbemila/pen/GRaJQMG

Document picture-in-picture: add option to ignore window bounds cache

This adds a new parameter ("preferInitialWindowPlacement") to the document picture-in-picture API that, when set to true, hints to the user agent that it should not try to reuse the position or size of the previous document picture-in-picture from this site when opening this one. Often, a document picture-in-picture window will close and re-open multiple times for the same site, such as moving a video conference to and from PiP. The user agent is free to re-open the PiP window at its most recent size / location, so that it stays where the user last moved it and provides continuity between the PiP windows. However, if the new window is semantically unrelated to the previous window, such as if it is a new VC, then the developer can use this parameter provide a hint to the user agent that this window might be better opened in its default position / size instead. #

This feature was specified in this Spec.

Full and unprefixed box-decoration-break support

Support box-decoration-break:clone both for inline fragmentation (line layout) and block fragmentation (pagination for printing, multicol). Traditionally in Blink, only box-decoration-break:slice (the initial value) has been supported for block fragmentation, whereas for inline fragmentation, box-decoration-break:clone was also supported, but only when using the prefixed -webkit-box-decoration-break property. See https://drafts.csswg.org/css-break/#break-decoration #

This feature was specified in this Spec.

Improved error reporting in IndexedDB for large value read failures

Change to reporting for certain error cases that were previously reported with a DOMException and the message "Failed to read large IndexedDB value". Chromium will now raise a DOMException with the name "NotFoundError" when the file containing the data being read by an IDBRequest is missing from the disk so that sites can take the appropriate corrective action when an unrecoverable failure occurs. Corrective actions could include deleting the entry from the DB, notifying the user, re-fetching the data from servers, etc. More details: a large value (above a specific size threshold) written to IndexedDB is not stored directly in the underlying LevelDB database but instead stored as a separate file. An IndexedDB read request for this value looks up the blob reference from LevelDB, reads the blob, then unwraps and returns the stored value. If a failure occurs in this process, the browser fires an "error" event and sets the error property on the IDBRequest to a DOMException with the message "Failed to read large IndexedDB value". The failure could be recoverable (caused by low memory) or unrecoverable (the blob file is missing from the disk). This feature updates the DOMException name to enable distinguishing recoverable and unrecoverable cases. The name remains “DataError” for all other cases not arising from missing files. #

This feature was specified in this Spec.

Support non-special scheme URLs

Support non-special scheme URLs correctly. Previously, Chromium's URL parser doesn't support non-special URLs. The parser parses non-special URLs as if they had an “opaque path”, which is not aligned with the URL Standard. Now, Chromium's URL parser parses non-special URLs correctly, following the URL Standard. See http://bit.ly/url-non-special for more details. #

This feature was specified in this Spec.

Resources

Docs: http://bit.ly/url-non-special

No linked samples

Web Serial: connected attribute and RFCOMM connection events

This feature adds a boolean SerialPort.connected attribute. The attribute is true if the serial port is logically connected. For wired serial ports, a port is logically connected if the port is physically attached to the system. For wireless serial ports, a port is logically connected if the device hosting the port has any open connections to the host. Previously, only wired serial ports dispatched connect and disconnect events. With this feature, Bluetooth RFCOMM serial ports will dispatch these events when the port becomes logically connected or disconnected. This feature is intended to allow applications to detect when a Bluetooth RFCOMM serial port is available without opening the port. #

This feature was specified in this Spec.

WebAssembly JS String Builtins

This feature exposes common JS string operations for easy import into WebAssembly and optimizations thereof. This allows creating and manipulating JS strings from WebAssembly without native support within WebAssembly while still allowing for a similar performance as native string references. The mechanism works by exposing suitably strict versions of JS string operations in the WebAssembly JS API. These can be imported by modules using externref as a generic data type for storing the strings. The engine can identify that these imports can be represented by native graph operators without the need for calling into JS. This leads to a comparable peak performance as native string operations while allowing quick interoperability with JS since no copying at the boundary is required when calling into arbitrary JS functions that consume strings. #

This feature was specified in this Spec.

WebGPU: Dual source blending

Functionality added to the WebGPU spec after its first shipment in a browser. Adds the optional GPU feature "dual-source-blending" that enables combining two fragment shader outputs into a single framebuffer. This technique is particularly useful for applications that require complex blending operations, such as those based on Porter-Duff blend modes. By replacing subsequent render passes with a single render pass, dual source blending can enhance performance and flexibility #

This feature was specified in this Spec.

allow more pseudo-elements and pseudo-classes after ::part()

CSS selectors that use the ::part() pseudo-element are allowed to have other CSS pseudo-elements (except ::part()) and many types of other CSS pseudo-classes after them. (Combinators are still not allowed after :part(), and pseudo-classes that depend on tree structure are not allowed.) Previously Chrome only allowed a limited set of pseudo-classes and pseudo-elements after ::part(). This changes to allowing all of the pseudo-classes and pseudo-elements that should be allowed. It means selectors such as ::part(part-name):enabled and ::part(part-name)::marker are now allowed. #

This feature was specified in this Spec.

Origin Trials in-progress in 130

This release of Chrome had 1 new origin trials.

Keyboard-focusable scroll containers

Improves accessibility by making scroll containers focusable using sequential focus navigation. Today, the tab key doesn't focus scrollers unless tabIndex is explicitly set to 0 or more. By making scrollers focusable by default, users who can't (or don't want to) use a mouse will be able to focus clipped content using a keyboard's tab and arrow keys. This behavior is enabled only if the scroller does not contain any keyboard focusable children. This logic is necessary so we don't cause regressions for existing focusable elements that might exist within a scroller like a <textarea>. Note: The previous rollout of this feature (started in Chrome 127) was stopped due to web compatibility issues, which should be fixed in the current implementation shipping in 130. #

This feature was specified in this Spec.

Resources

Docs: https://drafts.csswg.org/css-overflow-3/#scroll-containerhttps://html.spec.whatwg.org/multipage/interaction.html#focusable-areahttps://html.spec.whatwg.org/multipage/interaction.html#dom-tabindex

No linked samples

Flagged features in 130

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

Transferable RTCDataChannel to dedicated workers

The RTCDataChannel interface is part of the WebRTC standard, and represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data. This feature tracks exposing RTCDataChannel in dedicated workers, and allowing the transfer of RTCDataChannels to them workers. This will help reduce main thread contention and lead to smoother and more reliable WebRTC applications. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://tguilbert-google.github.io/RTCDataChannel/index.html

meter element fallback styles

With this change <meter> elements with `appearance: none` will have a reasonable fallback style that matches Safari and Firefox instead of just disappearing from the page. As well developers will be able to custom style the <meter> elements. A feature flag MeterAppearanceNoneFallbackStyle is available until Chrome 133 to control this feature. #

This feature was specified in this Spec.

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 130

This release of Chrome had 0 features deprecated.

Removed features in 130

This release of Chrome had 0 features removed.