Google Chrome 139

139
Added 10
  • Support font-feature-settings descriptor in @font-face rule with string-based syntax as defined in CSS Fonts Level 4
  • Add CSS custom functions that return values based on other custom properties, parameters, and conditionals
  • Enable corner-shape styling to express corner shape and curvature as a superellipse, allowing squircles, notches, and scoops
  • Support async attribute for SVG <script> element to allow asynchronous script execution
  • Add request-close invoker command for declarative control of dialog closure
  • Expose new mechanisms in WebXR depth sensing to customize behavior and improve performance, including requesting raw or smooth depth buffers and non-aligned depth buffers
Changed 4
  • Short-circuit var() and attr() functions to evaluate without looking for cycles in fallback when fallback is not taken
  • Allow active transitions to continue running when transition property is set to none, making Chrome consistent with Safari and Firefox
  • Change scroll anchoring algorithm to select the candidate as the scope or root of regular anchor selection instead of as the priority candidate
  • Relax validation of JavaScript DOM APIs to match the HTML parser and allow more characters in element and attribute names

Stable release date: August 5th, 2025 Unless otherwise noted, the following changes apply to Chrome 139 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

CSS and UI
Short-circuiting var() and attr()

When the fallback is not taken, var() and attr() functions evaluate without looking for cycles in that fallback. ChromeStatus.com entry

Support font-feature-settings descriptor in @font-face rule

This feature supports the string-based syntax for font-feature-settings as defined in CSS Fonts Level 4. Invalid or unrecognized feature tags will be ignored per specification. No binary or non-standard forms are supported. As OpenType fonts become more widely adopted, this enhancement will improve typographic control, reduce redundancy, and support a more scalable, modern approach to web design. Tracking bug #40398871 | ChromeStatus.com entry | Spec

CSS custom functions

Custom functions are similar to custom properties, but instead of returning a single, fixed value, they return values based on other custom properties, parameters, and conditionals. Tracking bug #325504770 | ChromeStatus.com entry | Spec

Continue running transitions when switching to initial transition value

When the transition related properties change, they are only supposed to affect newly started transitions. This means that if you change the transition properties, unless you also change the properties which have active transition animations, those transition animations will continue with the previously specified duration and easing. Chrome incorrectly canceled transitions when the transition property was set to none, even though it doesn't cancel them if you only change the transition-duration. This change makes Chrome consistent with Safari and Firefox, allowing active transitions to continue running, until their property value changes triggering a new transition update. ChromeStatus.com entry | Spec

Corner shaping (corner-shape, superellipse, squircle)

Enable styling corners, on top of the existing border-radius, by expressing the shape and curvature of the corner as a superellipse. This allows shapes like squircles, notches, and scoops, and animating between them. Tracking bug #393145930 | ChromeStatus.com entry | Spec

Add font-width property and descriptor and make font-stretch a legacy alias
Support async attribute for SVG element

The SVGScriptElement interface in SVG 2.0 introduces the async attribute, similar to the HTMLScriptElement. This attribute allows scripts to be executed asynchronously, improving the performance and responsiveness of web applications that use SVG. Tracking bug #40067618 | ChromeStatus.com entry | Spec

The request-close invoker command

Dialog elements can be closed through a variety of mechanisms, sometimes developers want to have the ability to prevent closure. To achieve this dialogs fire a cancel event. Originally this was only fired via a close request (for example, an ESC key press), recently a requestClose() JavaScript function was added which also fires the cancel event. The request-close command brings that new ability to the declarative invoker commands API. Tracking bug #400647849 | ChromeStatus.com entry | Spec

Scroll anchoring priority candidate fix

Changes the scroll anchoring algorithm. Instead of selecting the priority candidate as the anchor, choose the candidate as the scope or root of the regular anchor selection algorithm which will select the deepest onscreen element as the anchor. ChromeStatus.com entry

Device
WebXR depth sensing performance improvements

Exposes several new mechanisms to customize the behavior of the depth sensing feature within a WebXR session, with the goal of improving the performance of the generation or consumption of the depth buffer. The key mechanisms exposed are: the ability to request the raw or smooth depth buffer, the ability to request that the runtime stop or resume providing the depth buffer, and the ability to expose a depth buffer that does not align with the user's view exactly, so that the user agent does not need to perform unnecessary re-projections every frame. Tracking bug #410607163 | ChromeStatus.com entry | Spec

DOM
Allow more characters in JavaScript DOM APIs

The HTML parser has always (or for a long time) allowed elements and attributes to have a wide variety of valid characters and names, but the JavaScript DOM APIs to create the same elements and attributes are more strict and don't match the parser. This change relaxes the validation of the javascript DOM APIs to match the HTML parser. Tracking bug #40228234 | ChromeStatus.com entry | Spec

Graphics
WebGPU: 3D texture support for BC and ASTC compressed formats

The texture-compression-bc-sliced-3d and texture-compression-astc-sliced-3d WebGPU features add respectively 3D texture support for BC and ASTC compressed formats. Tracking bug #342840940 | ChromeStatus.com entry | Spec

Secure Payment Confirmation (SPC)
The securePaymentConfirmationAvailability API

This is a JavaScript API to provide an easier way to check if the Secure Payment Confirmation (SPC) feature is available. With this API, the only way to determine SPC's availability was to create a PaymentRequest with the required parameters, which is clunky and difficult in the case where a developer wants to check for SPC before starting to process a payment. Tracking bug #40258712 | ChromeStatus.com entry | Spec

Secure Payment Confirmation: Browser Bound Keys

Adds an additional cryptographic signature over Secure Payment Confirmation assertions and credential creation. The corresponding private key is not synced across devices. This helps web developers meet requirements for device binding for payment transactions. Tracking bug #377278827 | ChromeStatus.com entry | Spec

On-device AI
On-device Web Speech API

This feature adds on-device speech recognition support to the Web Speech API, allowing websites to ensure that neither audio nor transcribed speech are sent to a third-party service for processing. Websites can query the availability of on-device speech recognition for specific languages, prompt users to install the necessary resources for on-device speech recognition, and choose between on-device or cloud-based speech recognition as needed. ChromeStatus.com entry | Spec

Navigation
Clear window name for cross-site navigations that switches browsing context group

Clears the value of the window.name property when navigation switches browsing context groups, to avoid leaking information that could be used as a tracking vector. Tracking bug #1090128 | ChromeStatus.com entry | Spec

Network
Reduce fingerprinting in Accept-Language header information

Reduces the amount of information the Accept-Language header value string exposes in HTTP requests and in navigator.languages. Instead of sending a full list of the user's preferred languages on every HTTP request using the Accept-Language header, Chrome only sends the user's most preferred language. Tracking bug #1306905 | ChromeStatus.com entry

Randomize TCP port allocation on Windows

This launch enables TCP port randomization on versions of Windows (2020 or later) where we don't expect to see issues with re-use of prior ports occurring too fast (causing rejection due to timeouts on port re-use). The rapid port re-use issue arises from the Birthday problem, where the probability of randomly re-picking a port already seen rapidly converges with 100% for each new port chosen when compared to port re-use in a sequential model. Tracking bug #40744069 | ChromeStatus.com entry

Performance
Faster background freezing on Android

Shortens the time to freezing background pages (and associated workers) from five minutes to one minute on Android. Tracking bug #435623337 | ChromeStatus.com entry

Security
Fire error event for Content Security Policy (CSP) blocked worker

Makes Chrome conform to the specification, checking the CSP during fetch and firing the error event asynchronously instead of throwing exception when script runs "new Worker(url)" or "new SharedWorker(url)". Tracking bug #41285169 | ChromeStatus.com entry | Spec

WebRTC
Audio level for RTC encoded frames

This feature exposes to the web the audio level of an encoded frame transmitted using RTCPeerConnection and exposed using WebRTC encoded transform. Tracking bug #418116079 | ChromeStatus.com entry | Spec

Web APIs
Web app scope extensions

Adds a scope_extensions web app manifest field that enables web apps to extend their scope to other origins. This allows sites that control multiple subdomains and top level domains to be presented as a single web app. Requires listed origins to confirm association with the web app using a .well-known/web-app-origin-association configuration file. Tracking bug #detail?id=1250011 | ChromeStatus.com entry | Spec

Specification-compliant JSON MIME type detection

Chrome now recognizes all valid JSON MIME types as defined by the WHATWG mimesniff specification. This includes any MIME type whose subtype ends with +json, in addition to application/json and text/json. This change ensures that web APIs and features relying on JSON detection behave consistently with the web platform standard and other browsers. ChromeStatus.com entry | Spec

WebGPU core-features-and-limits

The core-features-and-limits feature signifies a WebGPU adapter and device support the core features and limits of the spec. Tracking bug #418025721 | ChromeStatus.com entry | Spec

Crash Reporting API: Specify crash-reporting to receive only crash reports

This feature ensures developers receive only crash reports by specifying the endpoint named crash-reporting. By default, crash reports are delivered to the default endpoint which receives many other kinds of reports besides crash reports. Developers can supply a separate URL to the well-known endpoint named crash-reporting, to direct crash reports there, instead of the default endpoint. Tracking bug #414723480 | ChromeStatus.com entry | Spec

Origin trials
Prompt API

An API designed for interacting with an AI language model using text, image, and audio inputs. It supports various use cases, from generating image captions and performing visual searches to transcribing audio, classifying sound events, generating text following specific instructions, and extracting information or insights from text. It supports structured outputs which ensure that responses adhere to a predefined format, typically expressed as a JSON schema, to enhance response conformance and facilitate seamless integration with downstream applications that require standardized output formats. This API is also exposed in Chrome Extensions. This feature entry tracks the exposure on the web. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable. Origin Trial | Origin trial blog post | Tracking bug #417530643 | ChromeStatus.com entry

Extended lifetime shared workers

This adds a new option, extendedLifetime: true, to the SharedWorker constructor. This requests that the shared worker be kept alive even after all current clients have unloaded. The primary use case is to allow pages to perform asynchronous work that requires JavaScript after a page unloads, without needing to rely on a service worker. Origin Trial | Origin trial blog post | Tracking bug #400473072 | ChromeStatus.com entry

SoftNavigation performance entry

Exposes the (experimental) soft navigation heuristics to web developers, using both PerformanceObserver and the performance timeline. This feature reports two new performance entries:

  • soft-navigation, for user interactions which navigate the page. Defines a new timeOrigin to help slice the performance timeline. …
View original

Upgraded? How did it go?

Discussion