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
This release of Chrome had 25 new features.
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.
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.
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.
Samples: https://tungnh28.github.io/pepc
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.
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.
Docs: https://docs.google.com/document/d/1zrhTooMd0Pqee8R0dJggDUeAgvt_3na_MaVefPpLG7o/edit?tab=t.0
No linked samplesThe 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.
Samples: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/autocorrect#examples
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.
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.
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.
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.
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 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.
Samples: https://microsoftedge.github.io/Demos/reference-target
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.
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.
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.
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.
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.
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.
Docs: https://docs.google.com/document/d/13Xr_kSYZtvhRNaKpCiP7wLKYtDcpLdDWSH4y6gHq0kQ/edit?usp=sharing
Samples: https://chrome.dev/prerender-demos/prerender-get-form.html
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.
Samples: https://speech.evanliu.com
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.
Samples: https://codepen.io/mustaqahmed/full/MYjGMVG
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.
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.
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.
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.
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.
This release of Chrome had 1 new origin trials.
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.
This release of Chrome had 2 are available behind a flag.
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.
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.
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.
This release of Chrome had 1 features deprecated.
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.
This release of Chrome had 0 features removed.