Chrome Release Summary

Chrome version: 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 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 151

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

Enabled by default in 151

This release of Chrome had 25 new features.

CPU Performance API

Starting in Chrome 151, Chrome will introduce the CPU Performance API, which allows web applications to determine the performance tier of a user's device. This API targets web applications that will use this information to provide an improved user experience, possibly in combination with the Compute Pressure API, which provides information about the user device’s CPU pressure/utilization and allows applications to react to changes in CPU pressure. Users can override the reported performance tier in Chrome's Performance settings. Administrators can also control this behavior using the [CpuPerformanceTierOverride](https://chromeenterprise.google/policies/#CpuPerformanceTierOverride) policy (which takes precedence over the user setting). For more details, see [CPU Performance API Explainer](https://github.com/WICG/cpu-performance). #

This feature was specified in this Spec.

CSS ruby-overhang property

Support of new CSS property `ruby-overhang` is added. The property accepts one of `auto`, `spaces` and `none` keywords to control overhang of ruby annotation text. Per CSSWG, none is aliased to spaces, allowing overhang only over whitespace and CJK punctuation. This prevents unnecessary layout gaps while preserving text readability. #

This feature was specified in this Spec.

Capability Elements <usermedia> MVP

Usermedia Capability Element, is a declarative, user-activated control for accessing the starting and interacting with media streams. This addresses the long-standing problem of permission prompts being triggered directly from JavaScript without a strong signal of user intent. By embedding a browser-controlled element in the page, the user's click provides a clear, intentional signal. This enables a much better prompt UX and, crucially, provides a simple recovery path for users who have previously denied the permission. Note: This feature was previously developed and tested in an Origin Trial as the more generic <permission> element. Based on feedback from developers and other browser vendors, it has evolved into capability-specific elements to provide a more tailored and powerful developer experience. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://tungnh28.github.io/pepc

Change the "position-anchor" initial value to "normal"

We are changing the initial value of the "position-anchor" CSS property from "none" to normal to align with other browsers and the specification. "normal" behaves like "none" if the "position-area" CSS property is "none", otherwise behaves as "auto".

This feature was specified in this Spec.

DeviceOrientation Events permission request API

Allows web developers to call Device{Motion,Orientation}Event.requestPermission() to ask the user agent for device orientation and motion data to be shared with the page. Those two static methods return a promise that resolves to either "granted" or "denied" based on whether the user has allowed the user agent to share sensor data with pages. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/1zrhTooMd0Pqee8R0dJggDUeAgvt_3na_MaVefPpLG7o/edit?tab=t.0

No linked samples

Expose the 'autocorrect' global html attribute

The HTML autocorrect attribute allows web authors to control whether autocorrection should be applied to user input in editable elements including <input>, <textarea>, and contenteditable hosts. The feature makes the 'autocorrect' attribute to be exposed to web authors. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/autocorrect#examples

LanguageDetector support for Traditional vs. Simplified Chinese

Two new detectable language codes, "zh-Hant" and "zh-Hans" will be added. Detection results that previously returned "zh" will now return one of these new values. While this is a developer-visible change it fits within the framework already present in the API for returning more specific language codes. For example ja vs. ja-Latn. This notice is being sent as a PSA for developers who have requested these more specific detection results. #

This feature was specified in this Spec.

Navigation: Ignore duplicate navigations

Prevents an ongoing navigation from being unnecessarily canceled by a new, identical navigation that is initiated in quick succession. This optimization improves performance and the user experience by not wasting resources on a duplicate request, which can be caused by accidental double-clicks. #

This feature was specified in this Spec.

No Auto-Rewind for AnimationTrigger Play Methods

AnimationTrigger Play Methods will not auto-rewind, i.e. will not restart a finished animation. "play", "play-forwards" and "play-backwards" are values that, when specified in the association between an AnimationTrigger and an Animation, instructs the trigger to play the animation. This Chromestatus feature covers a specific aspect of the behavior of these keywords: when the relevant animation has already run to completion and these actions (play, play-forwards, play-backwards) are invoked, they will not cause the animation to restart, i.e. the animation will not "auto-rewind." #

This feature was specified in this Spec.

Permission Policy Merger: "direct-sockets-private" with "local-network" and "loopback-network"

Isolated Web App manifests now require specific "local-network" and/or "loopback-network" permission policies to enable Direct Sockets connections to local or loopback network addresses, respectively. This change replaces the existing "direct-sockets-private" permission policy. This provides developers with more granular control over network access and enhances application security by making network requirements more transparent within the manifest.

This feature was specified in this Spec.

Permissions Policy: focus-without-user-activation

Gives embedders control over programmatic focus from embedded content via the focus-without-user-activation permissions policy. When the policy is denied for a frame, programmatic focus calls (element.focus(), autofocus, window.focus(), dialog.showModal(), and popover focusing) are blocked unless triggered by user activation. User-initiated focus such as clicking or tabbing is never affected. The policy can be set via a Permissions-Policy HTTP response header or the iframe allow attribute. Focus delegation is supported: a parent frame that has focus can programmatically pass focus to a child iframe, even if the child has the policy denied, and once a frame has focus it can move focus within its own subtree. #

This feature was specified in this Spec.

Reference Target for Cross-root ARIA

Reference Target enables ID attributes like <label for>, aria-labelledby, popovertarget, and commandfor to be forwarded to elements inside a component's shadow DOM, while maintaining the shadow's encapsulation of its internal state. When a shadow host specifies an element in its shadow tree to act as its reference target, all ID references pointing to the shadow host are forwarded to the reference target element instead. <label for="my-checkbox">Checkbox value (click me to toggle checkbox)</label> <custom-checkbox id="my-checkbox"> <template shadowrootmode="open" shadowrootreferencetarget="real-checkbox"> <input id="real-checkbox" type="checkbox"> </template> </custom-checkbox> The reference target can be set declaratively like in the above example, or in JavaScript with ShadowRoot's referenceTarget property. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://microsoftedge.github.io/Demos/reference-target

Relative Alpha Colors (CSS Color 5 alpha() function)

Relative alpha colors refer to an origin color, and only change the alpha channel. The meaning of alpha channels is defined in CSS Color 4 § 4.2 Representing Transparency in Colors: the <alpha-value> syntax. #

This feature was specified in this Spec.

Remove [LegacyNoInterfaceObject] from FontFaceSet IDL

Chromium's FontFaceSet IDL previously used [LegacyNoInterfaceObject], which hid FontFaceSet as a global property and deleted the constructor property from its prototype. This deviated from the CSS Font Loading spec and differed from Safari and Firefox behavior. This change removes [LegacyNoInterfaceObject] from the FontFaceSet IDL, so FontFaceSet is properly exposed as a global property. Since no constructor() is defined in the IDL, calling new FontFaceSet() from JavaScript now throws TypeError: Illegal constructor, matching the spec. This also fixes the historical.html WPT, which was previously failing in Chromium. #

This feature was specified in this Spec.

Renewed HTML insertion&streaming methods

Expose multiple HTML setting methods that provide a coherent story for dynamically inserting markup into an existing document. - Positional methods (before/after/append/prepend/replaceWith) that take HTML as argument, effectively replacing insertAdjacentHTML. - Streaming methods (stream{Append}HTML{Unsafe}) which return a WritableStream - Sending {runScripts} as part of SetHTMLUnsafeOptions, mimicking createContextualFragment behavior. - Supporting createParserOptions in trusted types, allowing trusted types to override scripting mode and sanitizer. #

This feature was specified in this Spec.

Responsively-sized <iframe>

Allow sites to opt into iframes having responsive sizing (sizing the <iframe> element in the parent document to the iframe document's layout overflow sizing, so that scrolling in the child document is avoided). #

This feature was specified in this Spec.

SoftNavigation performance entry

This feature implements two new PerformanceEntry types, added to the performance timeline (i.e. via PerformanceObserver): "soft-navigation", and "interaction-contentful-paint". The `InteractionContentfulPaint` PerformanceEntry reports any new Contentful Paints within parts of the page that are known to have been previously modified by an Interaction. The `PerformanceSoftNavigation` PerformanceEntry reports on same document history state changes that are known to have been initiated by an Interaction, but only if it has also made some contentful update to the page. This new entry helps define the criteria, and establish a new "time origin" for "slicing" the performance timeline by "soft-navigations" (i.e. attributing all performance data to the correct url/route, rather than the initial URL of the initial document). Both entries rely on a common infrastructure: - Observing new Interactions (via Event Timing integrations) - Establishing a Task-scheduling-persistent "context"(i.e. AsyncContext, via Task Attribution) - Observing effects such as dom content modifications, or same document history state changes, and checking if the currently running task has an "active context" to attribute this change to. - Integration with Paint Timing and LCP (partially modelling new Container Timing concepts). #

This feature was specified in this Spec.

Speculation rules: form_submission field

This extends speculation rules syntax to allow developers to specify the form_submission field for prerender. This field directs the browser to prepare the prerender as a form submission, so that it can be activated by real form submission navigations. Examples include a simple search form which results in a /search?q=XXX GET request navigation, support of which has been requested by web developers. #

This feature was specified in this Spec.

Resources

Docs: https://docs.google.com/document/d/13Xr_kSYZtvhRNaKpCiP7wLKYtDcpLdDWSH4y6gHq0kQ/edit?usp=sharing

Samples: https://chrome.dev/prerender-demos/prerender-get-form.html

Web Speech API: Unspoken Punctuation

Adds the unspokenPunctuation boolean attribute to the SpeechRecognition interface of the Web Speech API. When enabled (true), this attribute directs the speech recognition engine to automatically infer and insert punctuation marks (such as periods, commas, and question marks) based on the user's natural pauses, grammatical structure, and prosody, without requiring explicit spoken punctuation commands. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://speech.evanliu.com

Wheel event momentum

The wheel events on many native platforms simulate scrolling inertia: the events continue to fire for a while after the user has lifted the finger from the trackpad after a fling interaction. This feature exposes a momentum attribute in wheel events which is true only for those simulated events, differentiating them from the events fired during the physical scroll interaction. This lets web developers ignore fling events or customize rich fling effects. #

This feature was specified in this Spec.

Resources

No linked docs

Samples: https://codepen.io/mustaqahmed/full/MYjGMVG

XML Parsing in Rust for non XSLT scenarios

To improve browser security and protect users against memory-related vulnerabilities, Chrome 151 is changing its XML parsing engine to a memory-safe Rust implementation for several common scenarios. This foundational update eliminates potential memory corruption bugs while maintaining full compatibility with existing web standards. Chrome has already begun to deprecate and remove XSLT. While this process continues, the new, safer parser will handle the following scenarios where no XSLT is required: 1. DOMParser Web API. 2. Accessing responseXML of XMLHttpRequest. 3. SVG standalone images (that is, accessing a `image.svg` document directly as a top level navigation). 4. SVG external images (including a main document embedding an SVG as an external image resource). #

This feature was specified in this Spec.

aria-actions

Support aria-actions attribute. There is a common UI pattern where secondary actions are placed within composite interactive widgets. The aria-actions attribute allows us to expose these secondary action buttons directly for improved discoverability. #

This feature was specified in this Spec.

shadowrootslotassignment attribute for declarative shadow DOM

Adds the shadowrootslotassignment attribute to the <template> element, allowing declarative shadow roots to use manual slot assignment. Until now this option was only available imperatively, via attachShadow({slotAssignment: "manual"}), so components that rely on manual assignment could not create their shadow roots declaratively. The attribute accepts "named" (the default, preserving current behavior) and "manual", and is reflected by the shadowRootSlotAssignment property on HTMLTemplateElement. #

This feature was specified in this Spec.

textStream() for response/request/blob

Add textStream() to interfaces that represent a byte stream (request, response, blob). This is equivalent to piping the byte stream through a TextDecoderStream(), and reduces this small piece of broilerplate for commoncases. #

This feature was specified in this Spec.

window-drag

The `window-drag` CSS property allows web content to designate regions of an installed desktop web app’s UI that should behave as draggable window titlebar areas. When applied, user pointer interactions (e.g., click-and-drag) on that region move the top-level application window rather than triggering normal page interaction. This is primarily used by desktop PWAs or apps using features like Window Controls Overlay to implement custom title bars and draggable areas when the browser-provided title bar is hidden. This feature standardizes and renames the existing `app-region` CSS property, changes its value names to `move` and `none`, and adds explicit inheritance behavior. This property is used by installed web apps and Electron-based applications for the same purpose. #

This feature was specified in this Spec.

Origin Trials in-progress in 151

This release of Chrome had 1 new origin trials.

Algorithm Updates in WebCrypto

Add post-quantum cryptography and a common symmetric AEAD to the set of cryptographic algorithms available in the Web Cryptography API. This will enable developers to have access browser-provided implementations of common quantum-resistant cryptographic algorithms standardized by NIST. * ML-KEM - 768, 1024 * ML-DSA - 44, 65, 87 * ChaCha20-Poly1305 * X-Wing #

This feature was specified in this Spec.

Flagged features in 151

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

Animation accessor on animation and transition events

Adds a read-only animation attribute to the AnimationEvent and TransitionEvent interfaces. This attribute returns the associated Animation object that triggered the event. #

This feature was specified in this Spec.

Protocol filtering in Digital Credential API

Starting in Chrome 151, Chrome will begin deprecating support for unspecified presentation and issuance protocols in the **Digital Credentials API**, with final removal scheduled for Chrome 160. The Digital Credentials API was originally designed to be an opaque pipeline for arbitrary exchange protocols. In November 2025, the [FedID WG resolved](https://github.com/w3c-fedid/digital-credentials/issues/396) to change this so that the spec normatively referenced only a specific set of exchange protocols. The removal of support for arbitrary, opaque pipelines ensures that only verified protocols are used, enabling a more robust privacy and security threat model for identity verification. This change aligns Chromium with updated industry specifications that normatively reference only a specific set of exchange protocols. #

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 151

This release of Chrome had 1 features deprecated.

Chrome will remove support for macOS 12

Chrome 150 will be the last release to support macOS 12; Chrome 151+ will no longer support macOS 12, which is outside of its support window with Apple. Running on a supported operating system is essential to maintaining security. On Macs running macOS 12, Chrome will continue to work, showing a warning infobar, but will not update any further. If users wish to have Chrome updated, they need to update their computer to a supported version of macOS. For new installations of Chrome 151+, macOS 13+ will be required.

Removed features in 151

This release of Chrome had 0 features removed.