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 17 new features.
CSS border-shape enables creating non-rectangular borders, with any arbitrary shape (polygon, circle, shape(), etc). Though border-shape accepts the same shapes as clip-path, it is fundamentally different: border-shape defines the shape of the border, decorates it, and clips only the inside. border-shape has two variants: one variant that strokes a shape, and another variant that fills between two shapes. #
This feature was specified in this Spec.
Samples: https://una.im/border-shape
This function is used to meet contrast requirements for accessibility. The contrast-color() function can be used anywhere in CSS where a color value is expected. It takes a color value argument, and returns either 'black' or 'white' depending on which of them gives the highest contrast against the color argument. #
This feature was specified in this Spec.
Chrome 147 aligns with updated [CSS specifications](https://www.w3.org/TR/css-2025/) regarding the behavior of `border-width`, `outline-width`, and `column-rule-width` properties. Previously, if the corresponding `border-style`, `outline-style`, or `column-rule-style` was set to `none` or `hidden`, the computed width of these properties would be forced to `0px`, regardless of the specified value. With this change, the computed values of `border-width`, `outline-width`, and `column-rule-width` will always reflect the author-specified values, independent of the `*-style` property. Additionally, the resolved values (as returned by `getComputedStyle()`) for `outline-width` and `column-rule-width` will also reflect the specified values. The change aligns Chrome with Firefox and WebKit, which have already implemented this behavior. #
This feature was specified in this Spec.
CSSPseudoElement interface is a way to represent a pseudo-element in JS. CSSPseudoElement is returned from Element.pseudo(type), where `type` is currently: ::after, ::before, ::marker. CSSPseudoElement is a proxy object that represents a pseudo-element, so, unlike a pseudo-element, CSSPseudoElement always exists. CSSPseudoElement has the following attributes/methods: - The type attribute is a string representing the type of the pseudo-element. - The element attribute is the ultimate originating element of the pseudo-element. - The parent attribute is the originating element of the pseudo-element (Either Element of CSSPseudoElement for nested pseudo-elements). - The pseudo(type) method to retrieve nested pseudo-elements. #
This feature was specified in this Spec.
Exposes element.startViewTransition() on arbitrary HTML elements. The element establishes a scope for the transition, which means that the transition pseudo-elements are affected by ancestor clips and transforms, and multiple transitions on separate elements can run concurrently. #
This feature was specified in this Spec.
Docs: https://github.com/WICG/view-transitions/blob/main/scoped-transitions.md
Samples: https://output.jsbin.com/runezug/quiet
Adds support for JSON and style module types as <link rel="modulepreload"> destinations. <link rel="modulepreload"> is already supported in Chromium (see https://chromestatus.com/feature/5762805915451392), but it currently only supports preloading script-like module scripts. This feature addresses a functionality gap, as JSON and CSS module scripts are supported in Chromium elsewhere but are not supported as <link rel="modulepreload"> destinations. Style modules can be preloaded with <link rel="modulepreload" as="style" href="..."> and JSON modules can be preloaded with <link rel="modulepreload" as="json" href="...">. #
This feature was specified in this Spec.
Local Network Access (LNA) restrictions have been recently added in the last few months to restrict web sites from unilaterally making requests to local networks and local devices (https://chromestatus.com/feature/5152728072060928). This was added for Service Worker-initiated fetch requests, but was not done for navigations done by service workers through WindowClient.navigate This launch closes this hole by adding LNA restrictions to WindowClient.navigate() calls, using the WindowClient as the initiator of the navigation to determine if the navigation is an LNA request. This only applies if the WindowClient being navigated is a subframe; Chrome does not currently enforce any LNA restrictions on main frame navigations.
Local Network Access(LNA) restrictions are being expanded to include WebSockets. WebSockets connections to local address will now start triggering permission prompts. All of the current LNA enterprise policies will still apply to the LNA WebSockets restrictions (LocalNetworkAccessAllowedForUrls, LocalNetworkAccessBlockedForUrls, and LocalNetworkAccessRestrictionsTemporaryOptOut). More information about LNA can be found at https://developer.chrome.com/blog/local-network-access #
This feature was specified in this Spec.
Samples: https://lna-testing.notyetsecure.com
Restricts the ability to make requests to the user's local network using WebTransport, gated behind a permission prompt. A local network request is any request from a public website to a local IP address or loopback, or from a local website (e.g. intranet) to loopback. Gating the ability for websites to perform these requests behind a permission reduces the ability of sites to use these requests to fingerprint the user's local network. This permission is restricted to secure contexts. This work is adding to the Local Network Access Restrictions work here: https://chromestatus.com/feature/5152728072060928 #
This feature was specified in this Spec.
Samples: https://lna-testing.notyetsecure.com
A TC39 proposal to add a method to sum multiple values to JavaScript. Add an iterable-taking `Math.sumPrecise` method which returns the sum of the values in the iterable using a more precise algorithm than naive summation. #
This feature was specified in this Spec.
Specific events are now extended to have `.pseudoTarget` that is either CSSPseudoElement (if interaction has been with pseudo-element) or null. This allows to have more specific information on the event origin, e.g. that not just an ultimate originating element (Event.target) has been clicked, but more specifically that it was ::after. Note that the Event.target is unchanged so event only has extra info on pseudo-element interaction. The events are UIEvent, AnimationEvent, TransitionEvent. mouseover, mouseout, mouseenter, mouseleave and their pointer* counterparts are not yet supported. #
This feature was specified in this Spec.
This change adds support for the path attribute on the SVG <textPath> element, allowing authors to define text path geometry inline using SVG path data and reducing the need for separately defined <path> elements. <textPath> resolves its text path geometry using the following rules: 1. If both path and href are present, geometry is resolved from the path attribute. 2. If only the path attribute is present and parses successfully, the inline path definition is used. 3. If the path attribute is absent or fails to parse, and an href attribute is provided, the referenced <path> element is used as a fallback. 4. Existing href‑only behavior is preserved without change. This implementation follows the SVG 2 specification’s definition of the path attribute on <textPath>, and the resolution behavior is consistent with other browser engines, improving interoperability and standards compliance. Note: When both path and href are specified on <textPath>, path now takes precedence, per SVG 2 specification. #
This feature was specified in this Spec.
This feature expands the set of named ranges of view timelines, adding a "scroll" range. The Scroll-Driven Animations API introduced ViewTimelines along with named ranges which refer to portions of a ViewTimeline that define an animation's range[1]. However, all the named ranges provided were restricted to the portion of the ViewTimeline where its subject is visible. It is useful for authors to be able to refer to the full extent of the scroll container underlying the timeline. This feature facilitates this by adding a named range of "scroll" to the existing set ("entry", "exit", "cover", "contain"). [1] https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/animation-range #
This feature was specified in this Spec.
Update to a new set of possible values for the Device Memory API: - Android: 1, 2, 4, 8 - Others: 2, 4, 8, 16, 32 Replacing the old values of 0.25, 0.5, 1, 2, 4, 8 which have grown outdated. This will reduce the fingerprinting risks at the lower end since device capabilities have improved since these were set. It will also allow better usage and segmenting of high-end devices as requested by developers (https://github.com/w3c/device-memory/issues/50). #
This feature was specified in this Spec.
Enables deeper integration with printer-related functionality in Isolated Web Apps. This API is targeted at Isolated Web Apps only and it's following the https://www.chromium.org/blink/launching-features/isolated-web-apps/ process. This API provides a set of JavaScript methods that allow developers to query local printers, submit print jobs to the most appropriate printers, and manage print job options and status. To represent these concepts, it relies on the attribute names and semantics from the Internet Printing Protocol (IPP) specifications. #
This feature was specified in this Spec.
WebXR Layers offers a more efficient way of drawing immersive content. In addition to support for native color and depth textures and texture arrays, it also provides support for different layer types that are managed by the system compositor (as opposed to javascript). #
This feature was specified in this Spec.
Samples: https://immersive-web.github.io/webxr-samples/layers-samples
The WebXR Plane Detection API allows sites to retrieve the set of planes detected in the user's environment. This is both less work for developers and more powerful than using the depth-sensing WebXR feature as planes such as walls that are occluded by objects can still be fully represented if the system is aware of the boundaries of the wall. (Whereas a depth map would show the wall, but it would be broken up by any objects in front of the wall, potentially obscuring the full scope of the wall). Further, semantic labeling information is exposed where the device is aware of such labels and they fit into predefined categories, allowing better knowledge about the world. #
This feature was specified in this Spec.
Samples: https://immersive-web.github.io/webxr-samples/proposals/plane-detection.html
This release of Chrome had 3 new origin trials.
Autofill is a key feature of the web that reduces friction for millions of users everyday. But getting autofill to work reliably with dynamic forms across multiple implementations requires jumping through many hoops. This feature adds an "autofill" event that would allow developers to modify their forms to fit the autofilled data and let the browser know when they have done so. #
This feature was specified in this Spec.
Samples: https://yoavweiss.github.io/autofill_demo/credit_card_autofill_demo.htmlhttps://yoavweiss.github.io/autofill_demo/autofill_event_demo.html
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.
WebNN seeks to enable web applications and frameworks to take advantage of native operating system services for machine learning and the underlying hardware capabilities available on a user's computer to implement consistent, efficient, and reliable ML experiences on the web. #
This feature was specified in this Spec.
Samples: https://webmachinelearning.github.io/webnn-sampleshttps://microsoft.github.io/webnn-developer-preview
This release of Chrome had 7 are available behind a flag.
Support for CSSPseudoElement - which is currently only defined for ::after, ::before, and ::marker - is now being extended to include several new pseudo-elements: ::backdrop: useful for closing a dialog when the backdrop is clicked, without interfering with clicks inside the dialog's content. This eliminates the need for complex intersection logic to determine where the click occurred. ::scroll-marker: can be used to collect click statistics. view transitions: enables geometry-aware view transitions.It also allows you to intercept a view transition mid-flight to start a new one, utilizing the coordinates of the currently animating element to avoid sudden visual jumps.
This feature was specified in this Spec.
When a user interacts (editing or caret navigation) with text which has ‘text-overflow: ellipsis’ set, the text switches temporarily from ellipsis to clip allowing the user to see and interact with the hidden overflow content. This feature applies to all editable and non-editable elements. For form controls (textarea, input), the behavior is already supported. #
This feature was specified in this Spec.
Enables document-policy in Dedicated Workers. This enables developers to use Document Policy feature, such as performance or security controls in workers, instead of being limited to the main document. By extending policy enforcement to dedicated workers, developers gain more consistent behavior across threads and better control over worker capabilities in complex web applications. #
This feature was specified in this Spec.
This proposal extends the Gamepad API with a new event-driven model that enables applications to receive gamepad input with lower latency. Instead of relying on frequent polling via navigator.getGamepads(), developers can now listen for a rawgamepadinputchange event, which fires whenever new input data is available from the device. This allows for more responsive input handling, particularly in latency-sensitive applications. #
This feature was specified in this Spec.
Samples: https://gabrielsanbrito.github.io/gamepad-raw-input-events
Adds the loading attribute to <video> and <audio> elements, allowing developers to defer media resource loading until the element is near the viewport using loading="lazy". This matches the existing lazy loading behavior for <img> and <iframe> elements, improving page load performance and reducing data usage. CL: https://chromium-review.googlesource.com/c/chromium/src/+/7511253 #
This feature was specified in this Spec.
Samples: https://scottjehl.com/posts/lazy-media
When a user installs a Progressive Web App (PWA), its identity and security context are tightly bound to its web origin, for example, `app.example.com`. This presents a significant challenge for developers who need to change their PWA's origin due to rebranding, domain restructuring, or technical re-architecture. Currently, such a change forces users to manually uninstall the old app and reinstall the new one, leading to a disruptive experience and a potential increase in user loss rate. Chrome 150 introduces a mechanism for developers to seamlessly migrate an installed PWA to a new, same-site origin, preserving user trust and permissions. The [WebAppInstallForceList](https://chromeenterprise.google/policies/#WebAppInstallForceList) policy will block migration. Since enterprise policies around web applications are primarily based on URLs and origins, there is a risk that a migration would bypass certain policies an admin might have configured. No migration will be offered to the user when an app is force-installed by their enterprise administrator, and instead a banner will be shown explaining this to the user. #
This feature was specified in this Spec.
Samples: https://googlechrome.github.io/samples/pwa-migration
Allows js-profiling in dedicated workers This feature enables the JavaScript Self‑Profiling (js-profiling) API in Dedicated Workers, while remaining gated by Document Policy. It allows developers to obtain low‑overhead CPU attribution for JavaScript execution in workers, with Document Policy support for workers tracked separately. #
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.
A specially crafted XML file may contain an XSL stylesheet that transforms generic XML data into an SVG file. Example: https://gist.github.com/drott/1fc70b3c7f0ac314d1fe2e5beecc5490?short_path=1c60adf This is a special case of XSLT processing that according to recently introduced use counters XSLPIInSVGImage (UseCounter id 5777), XSLPIInSVGStandaloneDoc (UseCounterId 5778) we consider virtually non-existant on the web and which we want to deprecated and remove before fully phasing out XSLT. This is rolled out in sync with experimental testing of the Rust based XML parser. This will not be immediately rolled out to 100% in the marked shipping release version. Update: https://crrev.com/c/7502375 introduced metrics that measure this feature, and it was found that this feature was not used. Which enables us to proceed with launching the Rust XML parser for SVG scenarios, too, which is https://chromestatus.com/feature/5309598397497344 . #
This release of Chrome had 0 features removed.