Google Chrome Release Notes

Last updated: Sep 26, 2025

Stay up to date on Google Chrome releases

Join Releasebot and subscribe to release note updates from hundreds of products.

  • Sep 24, 2025
    • Parsed from source:
      Sep 24, 2025
    • Detected by Releasebot:
      Sep 26, 2025

    Google Chrome by Google

    What's New in WebGPU (Chrome 141)

    Chrome WebGPU release includes Tint IR completed with a full backend shift to IR for faster performance, SPIR-V frontend now emitting IR, integer range analysis rolling out, SPIR-V 1.4 support on Android/ChromeOS, and Dawn updates with a stable webgpu.h and CI binaries.

    What's New in WebGPU

    Tint IR completed

    A long running project (over 2.5 years) to increase the performance of the internals of Tint, the WGSL compiler has been completed. An Intermediate Representation (IR) was inserted into the backend between the current Abstract Syntax Tree (AST) and the backend code generators. The introduction of the IR allowed the Chrome team to remove all of the AST transformations and re-create them as IR transformations which, due to architectural differences, are substantially faster. The internals of Tint, on some platforms saw up to a seven times speed improvement from these changes.

    This new IR unlocks significant potential for sophisticated, large-scale shader analysis and transformation, promising not just notable performance gains but also a smoother path for Chrome to deliver exciting new WebGPU features down the line.

    From this milestone all backend code generators work from the IR representation, all AST transformations have been deleted, and all of the AST support code to run the transformations has been removed.

    As part of the IR improvement work, the SPIR-V frontend (used by applications to convert SPIR-V to WGSL) was converted from generating an AST representation to generating directly to IR. This enhancement also introduces long-awaited features like float 16 support to the SPIR-V frontend.

    Integer range analysis in WGSL compiler

    The Chrome team is progressively rolling out a new integer range analysis for Tint, the WebGPU shader language compiler. Integer range analysis estimates the minimum and maximum values an integer variable can take during program execution without actually running the program. This feature aims to improve efficiency by reducing the need for costly bounds checking and will soon be enabled by default across all platforms. See issue 348701956.

    SPIR-V 1. 4 update for Vulkan backend

    SPIR-V 1.4 support is rolled out where available on Android and ChromeOS devices. This update enables Tint, the WGSL compiler, to take advantage of new SPIR-V features, relaxations, and new instructions for more efficient code generation in certain scenarios when compiling Vulkan shaders. See issue 427717267.

    Dawn updates

    The standardized webgpu.h header, which defines the core WebGPU C API, is now finally considered stable. This stability applies specifically to the core API defined upstream, not including implementation extensions (for example, from Dawn or Emdawnwebgpu), so it is best to use the webgpu.h provided by the exact implementation you're linking against. While the header is stable, you might still encounter unintended differences between implementations as we continue to fix bugs and address compatibility across the ecosystem. If you do, file a bug.

    Thanks to external contributor William Candillon, you can now find prebuilt Dawn binaries as artifacts on GitHub Actions. Those include static .lib files for Android, an .XCFramework bundle for Apple, and all the necessary header files. See Dawn PR #39 and an example of the artifacts.

    This covers only some of the key highlights. Check out the exhaustive list of commits.

    What's New in WebGPU

    A list of everything that has been covered in the What's New in WebGPU series.

    Chrome 141

    • Tint IR completed
    • Integer range analysis in WGSL compiler
    • SPIR-V 1.4 update for Vulkan backend
    • Dawn updates
  • Sep 2, 2025
    • Parsed from source:
      Sep 2, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    Chrome 140

    Chrome 140 stable lands a wide Web Platform and CSS drop: Typed CSS arithmetic, caret-animation control, richer view transitions, root-based overscroll behavior, accessibility tweaks like counter() in alt text, and new scroll-target-group. It also expands APIs (FromPoint, Uint8Array/base64, ReadableStream min, Get Installed Related Apps on desktop, crash reporting, clipboardchange) and enables a11

    CSS typed arithmetic

    Typed arithmetic lets you write expressions in CSS such as calc(10em / 1px) or calc(20% / 0.5em * 1px). This is useful in, for example, typography, as it lets you convert a typed value into an untyped one and reuse it for number accepting properties. Another use case is to multiply the unitless value by another type. For example, you can now cast from pixels to degrees. Tracking bug #40768696 | ChromeStatus.com entry | Spec

    CSS caret-animation property

    Chromium supports animation of the caret-color property. However, when animated, the caret's default blinking behavior interferes with the animation. The CSS caret-animation property has two possible values: auto and manual. auto means browser default (blinking), and manual means the developer controls the caret animation. Additionally, users who are disturbed by or have adverse reactions to blinking or flashing visuals can disable the blinking with a user stylesheet. Tracking bug #329301988 | ChromeStatus.com entry | Spec

    highlights From Point API

    The highlightsFromPoint API lets developers interact with custom highlights. It detects which highlights exist at a specific point within a document. This interactivity is valuable for complex web features where multiple highlights may overlap or exist within shadow DOM. By providing precise point-based highlight detection, the API empowers developers to manage dynamic interactions with custom highlights more effectively. For example, developers can respond to user clicks or hover events on highlighted regions to trigger custom tooltips, context menus, or other interactive features. Tracking bug #365046212 | ChromeStatus.com entry | Spec

    Scroll Into View container option

    The ScrollIntoViewOptions container option allows developers to perform a scrollIntoView operation that only scrolls the nearest ancestor scroll container. For example, the following snippet only scrolls the scroll container of target to bring target into view, but won't scroll all of the scroll containers to the viewport: target.scrollIntoView({ container: 'nearest' }); ChromeStatus.com entry | Spec

    View transitions: Inherit more animation properties

    Adds more animation properties to inherit through the view transition pseudo tree:

    • animation-timing-function
    • animation-iteration-count
    • animation-direction
    • animation-play-state Tracking bug #427741151 | ChromeStatus.com entry | Spec

    View transition pseudos inherit animation-delay.

    In addition to the previous update, the animation-delay property is now inherited through the view transition pseudo tree. ChromeStatus.com entry | Spec

    Nested view transitions groups

    This feature allows view transitions to generate a nested pseudo-element tree rather than a flat one. This allows the view transition to appear more in line with its original elements and visual intent. It enables clipping, nested 3D transforms, and proper application of effects like opacity, masking, and filters. Tracking bug #399431227 | ChromeStatus.com entry | Spec

    Propagate viewport overscroll-behavior from root

    This change propagates overscroll-behavior from the root instead of the body. The CSS working group resolved not to propagate properties from the to the viewport. Instead, properties of the viewport propagate from the root () element. As such, overscroll-behavior should propagate from the root element. However, Chrome has had a longstanding issue: it propagates overscroll-behavior from the rather than the root. This behavior is not interoperable with other browsers. This change makes Chrome comply with the specification and become interoperable with other implementations. Tracking bug #41453796 | ChromeStatus.com entry | Spec

    CSS counter() and counters() in alt text of content property

    This feature adds the ability to use counter() and counters() in the alt text of the content property. This provides more meaningful information to improve accessibility. Tracking bug #417488055 | ChromeStatus.com entry | Spec

    CSS scroll-target-group property

    The scroll-target-group property specifies whether the element is a scroll marker group container. It accepts one of the following values:

    • 'none': The element does not establish a scroll marker group container.
    • 'auto': The element establishes a scroll marker group container forming a scroll marker group containing all of the scroll marker elements for which this is the nearest ancestor scroll marker group container. Establishing a scroll marker group container lets any anchor HTML elements with a fragment identifier that are inside such a container to be the HTML equivalent of ::scroll-marker pseudo-elements. The anchor element whose scroll target is currently in view can be styled using the :target-current pseudo-class. Tracking bug #6607668 | ChromeStatus.com entry | Spec

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

    CSS allows developers to adjust a font's weight, width, slant, and other axes using the font-variation-settings property on individual elements. However, Chromium-based browsers lack support for this property within @font-face declarations. This feature supports the string-based syntax for font-variation-settings as defined in CSS Fonts Level 4. Invalid or unrecognized feature tags are ignored per specification. No binary or non-standard forms are supported. Variable fonts are becoming more widely adopted for both performance and typographic flexibility. Adding support for this descriptor in Chromium enhances control, reduces repetition, and supports a more scalable, modern approach to web typography. Tracking bug #40398871 | ChromeStatus.com entry | Spec

    DOM

    ToggleEvent source attribute

    The source attribute of a ToggleEvent contains the element that triggered the ToggleEvent to be fired, if applicable. For example, if a user clicks a element with the popovertarget or commandfor attribute set to open a popover, the ToggleEvent fired on the popover will have its source attribute set to the invoking . ChromeStatus.com entry | Spec

    Isolated Web Apps (IWAs)

    Controlled Frame API (available only to IWAs)

    This feature adds a Controlled Frame API available only to Isolated Web Apps (IWAs). Like similarly-named APIs on other platforms, Controlled Frame allows embedding all content, even third-party content that cannot be embedded in . Controlled Frame also allows controlling embedded content with a collection of API methods and events. For more information about Isolated Web Apps, see the Isolated Web Apps explainer. Tracking bug #40191772 | ChromeStatus.com entry | Spec

    JavaScript

    Uint8Array to and from base64 and hex

    Base64 is a common way to represent arbitrary binary data as ASCII. JavaScript has Uint8Arrays for binary data. However, it lacks a built-in mechanism to encode that data as base64, or to take base64 data and produce a corresponding Uint8Array. This feature adds the ability and methods for converting between hex strings and Uint8Arrays. ChromeStatus.com entry | Spec

    View transition finished promise timing change

    The current finished promise timing happens within the rendering lifecycle steps. This means that code that runs as a result of promise resolution happens after the visual frame that removes the view transition has been produced. This can cause a flicker at the end of the animation if the script moves styles to preserve a visually similar state. This change resolves the issue by moving the view transition cleanup steps to run asynchronously after the lifecycle is completed. Tracking bug #430018991 | ChromeStatus.com entry

    Web APIs

    ReadableStreamBYOBReader min option

    This feature introduces a min option to the existing ReadableStreamBYOBReader.read(view) method. The method already accepts an ArrayBufferView into which it reads data, but currently does not guarantee how many elements are written before the read resolves. By specifying a min value, you can require that the stream wait until at least that many elements are available before resolving the read. This improves upon the current behavior, where reads may resolve with fewer elements than the view can hold. Tracking bug #40942083 | ChromeStatus.com entry | Spec

    Get Installed Related Apps API on desktop

    The Get Installed Related Apps API (navigator.getInstalledRelatedApps) provides sites access to if their corresponding related applications are installed. Sites are only allowed to use this API if the application has an established association with the web origin. The API was launched in Chrome 80 for Android. Additional support for web apps on Desktop was enabled in Chrome 140. Docs | Tracking bug #895854 | ChromeStatus.com entry | Spec

    Http cookie prefix

    In some cases, it's important to distinguish on the server side between cookies set by the server and those set by the client. One such case involves cookies normally always set by the server. However, unexpected code (such as an XSS exploit, a malicious extension, or a commit from a confused developer) might set them on the client. This proposal adds a signal that lets servers make such a distinction. More specifically, it defines the __Http and __HostHttp prefixes, which ensure a cookie is not set on the client side using script. Tracking bug #426096760 | ChromeStatus.com entry | Spec

    Service worker

    SharedWorker script inherits controller for blob script URL

    The specification states that workers should inherit controllers for the blob URL. However, existing code allows only dedicated workers to inherit the controller; shared workers don't. This fixes Chrome's behavior to align with the specification. The SharedWorkerBlobURLFixEnabled enterprise policy controls this feature. Tracking bug #324939068 | ChromeStatus.com entry | Spec

    Add ServiceWorkerStaticRouterTimingInfo

    This feature adds timing information for the ServiceWorker Static routing API, exposed in the navigation timing API and resource timing API for developer use. ServiceWorker provides timing information to mark certain points in time. This feature adds two pieces of Static routing API-relevant timing information:

    • RouterEvaluationStart: Time to start matching a request with registered router rules.
    • CacheLookupStart: Time to start looking up the cache storage if the source is "cache". Additionally, this feature adds two pieces of router source information: the matched router source and the final router source. Tracking bug #41496865 | ChromeStatus.com entry | Spec

    Origin trials

    Enable incoming call notifications

    This feature extends the Notifications API to allow installed PWAs to send incoming call notifications—notifications with call-styled buttons and a ringtone. This extension helps VoIP web apps create more engaging experiences by making it easier for users to recognize and answer calling notifications. Additionally, this feature helps bridge the gap between native and web implementations of apps that have them both. Origin Trial | Tracking bug #detail?id=1383570 | ChromeStatus.com entry | Spec

    Crash Reporting key-value API

    This feature introduces a new key-value API, tentatively window.crashReport, backed by a per-document map that holds data appended to crash reports. The data placed in this API's backing map is sent in the CrashReportBody if any renderer process crashes occur on the site. This lets developers debug what specific state in their application might be causing a given crash. Origin Trial | Tracking bug #400432195 | ChromeStatus.com entry | Spec

    Add the clipboardchange event

    The clipboardchange event fires whenever a web app or any other system application changes the system clipboard contents. This allows web apps like remote desktop clients to keep their clipboards synchronized with the system clipboard. It provides an efficient alternative to polling the clipboard with JavaScript for changes. Origin Trial | Tracking bug #41442253 | ChromeStatus.com entry | Spec

    Enable SharedWorker on Android

    The long-standing demand for SharedWorker support on Android stems from several needs expressed by web developers:

    • Resource sharing and efficiency: Developers aim to share a single WebSocket or Server-Sent Events (SSE) connection across multiple tabs, thereby conserving resources.
    • Persistent resource management: A requirement to share and persist resources across tabs, particularly for technologies like WASM-based SQLite.
    • Closing a feature gap: Other major mobile browsers, including Safari on iOS and Firefox on Android, already support SharedWorker, making Chrome on Android the last major browser to address this gap. Origin Trial | ChromeStatus.com entry | Spec
    Removals
    • Stop sending Purpose: prefetch header from prefetches and prerenders Prefetches and prerenders now use the Sec-Purpose header, therefore the legacy Purpose: prefetch header is being removed. This will be scoped to speculation rules prefetch, speculation rules prerender, , and Chromium's non-standard . Tracking bug #420724819 | ChromeStatus.com entry | Spec

    • Deprecate special font size rules for H1 within some elements The HTML spec contains a list of special rules for

      tags nested within , , , or tags: These special rules are deprecated, because they cause accessibility issues. Namely, they visually reduce the font size for nested elements so that they "look" like elements, but nothing in the accessibility tree reflects this demotion. Tracking bug #394111284 | ChromeStatus.com entry | Spec

  • Sep 1, 2025
    • Parsed from source:
      Sep 1, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's new in DevTools, Chrome 140

    DevTools ships multiple feature updates: Debug with AI in Performance Insights, Save-Data header emulation, Baseline status tooltips for CSS, form-factorOverride in UA-CH hints, Lighthouse 12.8.0 (new Dom-based XSS report), plus numerous accessibility, Elements, and Network fixes and the option to use preview channels.

    Debug more insights with Gemini

    Copy link to this section: Debug more insights with Gemini

    In Performance > Insights, you can now click Debug with AI (previously Ask AI) to chat and debug with Gemini in the AI assistance panel more performance insights:

    • Improve image delivery
    • Legacy JavaScript
    • Duplicated JavaScript
    • Modern HTTP

    The before and after adding the 'Debug with AI' button to more performance insights.

    Emulate the 'Save-Data' header in 'Network conditions'

    In the Network conditions panel, you can now emulate the behaviour of the Save-Data request header. This header is a network client hint which indicates the client's preference for reduced data usage. It's also available through the navigator.connection.saveData API.

    The before and after adding the 'Save-Data' request header emulation to 'Network conditions'. Chromium issue: 40668980.

    See the Baseline status in a CSS property tooltip

    In Elements > Styles, when you hover over any CSS property, you can now see, under the property's definition, its availability across major browsers according to its Baseline status.

    The before and after adding the Baseline status to the CSS property tooltips. Chromium issue: 417749762.

    Override form factors in user agent client hints

    In the Network conditions > User agent client hints drop-down, you now have options to override form factors, specifically, the values of the Sec-CH-UA-Form-Factors request header.

    The before and after adding the options for form factor override to user agent client hints. Chromium issue: 422218341.

    Lighthouse 12.8.0

    The Lighthouse panel now runs Lighthouse 12.8.0.

    Most notably in this version, Lighthouse adds a new report: Mitigate DOM-based XSS with trusted types.

    See also the full list of changes.

    To learn the basics of using the Lighthouse panel in DevTools, see Lighthouse: Optimize website speed.

    Chromium issue: 40543651.

    Miscellaneous highlights

    These are some of many notable fixes and improvements in this release:

    • AI assistance:
      • Chat history is now cleared when you disable the corresponding AI feature in Settings.
      • Accessibility: Screen readers now announce context titles early, "Answer loading" when the answer starts streaming and "Answer ready" when the answer is complete.
    • Elements:
      • The Styles tab can now evaluate sibling-index(), sibling-count(), and env() CSS functions (crbug.com/417128001, crbug.com/40196710).
      • Added support for ::view-transition-group-children pseudo element (crbug.com/425901164).
      • Added support for accessibility issues about interactive content in the element (crbug.com/427172874).
      • From the Computed tab, you can now navigate to longhand properties in Styles (crbug.com/41486012).
      • Easing, Color editors: You can now interact with bezier swatches for animation transitions and color swatches using the keyboard (crbug.com/401213421).
    • Network: HAR files import now also includes request and response cookies (crbug.com/432995868).
    • Device mode: Updated user agents for Apple devices to latest Safari 18.5.

    Download the preview channels

    Consider using the Chrome Canary, Dev, or Beta as your default development browser. These preview channels give you access to the latest DevTools features, let you test cutting-edge web platform APIs, and help you find issues on your site before your users do!

    Get in touch with the Chrome DevTools team

    Use the following options to discuss the new features, updates, or anything else related to DevTools.

    • Submit feedback and feature requests to us at crbug.com.
    • Report a DevTools issue using the More options > Help > Report a DevTools issue in DevTools.
    • Tweet at @ChromeDevTools.
    • Leave comments on What's new in DevTools YouTube videos or DevTools Tips YouTube videos.

    What's new in DevTools

    A list of everything that has been covered in the What's new in DevTools series.

  • Aug 27, 2025
    • Parsed from source:
      Aug 27, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's New in WebGPU (Chrome 140)

    Chrome 140 ships WebGPU updates: adapters can be consumed after a device request; you can bind a texture directly as a GPUBindingResource; WGSL now supports 1D textures via textureSampleLevel; deprecates bgra8unorm read-only storage textures; removes the isFallbackAdapter attribute; Dawn updates and Vulkan backend tweaks noted.

    Device requests consume adapter

    According to the WebGPU specification, an adapter is marked as "consumed" upon a successful device request. Consequently, any subsequent requestDevice() calls using the same adapter will now result in a rejected promise. Previously, these calls would return a device that was lost at creation. See issue 415825174.

    Shorthand for using texture where texture view is used

    A GPUTexture can now be used directly as a GPUBindingResource to expose to the shader for binding. It can also be used as a GPURenderPassColorAttachment view, a GPURenderPassColorAttachment resolveTarget, and a GPURenderPassDepthStencilAttachment view for improved ergonomics. This offers a simpler approach than using a GPUTextureView to get a default view. See issue 425906323.

    WGSL textureSampleLevel supports 1D textures

    1D textures can now be sampled using textureSampleLevel() for consistency with 2D textures. This lets you sample a 1D texture from a vertex shader which was previously only possible from a fragment shader with textureSample(). See issue 382514673.

    Deprecate bgra8unorm read-only storage texture usage

    Using "bgra8unorm" format with read-only storage textures is now deprecated. The WebGPU specification explicitly disallows this, and its prior allowance in Chrome was a bug, as this format is intended for write-only access and is not portable. See issue 427681156.

    Remove GPUAdapter isFallbackAdapter attribute

    As previously announced, the GPUAdapter isFallbackAdapter attribute is now removed. It's replaced by the GPUAdapterInfo isFallbackAdapter attribute that was introduced in Chrome 136. See intent to remove.

    Dawn updates

    The wgpuInstanceGetWGSLLanguageFeatures() function is used to get a list of WGSL language features supported by the instance. Previously it returned a WGPUStatus value. It has been updated to not return a value since it can't fail. See issue 429178774. The wgpuSurfacePresent() function now returns a WGPUStatus error if the surface doesn't have a current texture. See issue 425930323. The new wgpu::InstanceFeatureName::MultipleDevicesPerAdapter feature lets adapters create multiple devices without being "consumed". See issue 415825174. The dump_shaders_on_failure device toggle lets you dump shaders only on failure for debugging purposes. It applies exclusively to D3 backends, though future expansion to other backends is possible. See issue 429187478. Multiple changes have been made to the Vulkan backend to reduce overhead when submitting render passes, especially for improved performance on mobile GPUs. For example: caching VkFramebuffers. This covers only some of the key highlights. Check out the exhaustive list of commits.

    What's New in WebGPU

    A list of everything that has been covered in the What's New in WebGPU series.

    Chrome 140
    • Device requests consume adapter
    • Shorthand for using texture where texture view is used
    • WGSL textureSampleLevel supports 1D textures
    • Deprecate bgra8unorm read-only storage texture usage
    • Remove GPUAdapter isFallbackAdapter attribute
    • Dawn updates
  • Aug 5, 2025
    • Parsed from source:
      Aug 5, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    Chrome 139

    Chrome 139 stable ships a broad raft of improvements across CSS, rendering, WebGPU, security, and performance. Highlights include corner shapes and new font features, async SVG scripts, on‑device AI, reduced fingerprinting, better navigation and performance, and policy deprecations.

    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.

    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.

    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.

    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.

    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.

    Add font-width property and descriptor and make font-stretch a legacy alias

    Note: Previously the font-width property was added to these release notes. THis was an error as the property did not ship.

    Support async attribute for SVG
  • Jul 30, 2025
    • Parsed from source:
      Jul 30, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's New in WebGPU (Chrome 139)

    WebGPU shines with 3D texture support for BC and ASTC slices, enabling efficient volumetric textures and shrinking memory/bandwidth footprints. A new core-features-and-limits flag prepares compatibility mode, plus origin trials and Dawn updates drive broader reach and future-proofing. Chrome notes recap ongoing milestones across multiple versions with 3D texture support, compatibility mode, and an

    3D texture support for BC and ASTC compressed formats

    The "texture-compression-bc-sliced-3d" and "texture-compression-astc-sliced-3d" WebGPU features add support for 3D textures using Block Compression (BC) and Adaptive Scalable Texture Compression (ASTC) formats. This lets you take advantage of the efficient compression capabilities of BC and ASTC formats for volumetric texture data, offering significant reductions in memory footprint and bandwidth requirements without substantial loss in visual quality. This is particularly valuable in fields such as scientific visualization, medical imaging, and advanced rendering techniques.

    The following code snippet checks whether the adapter supports 3D textures with BC and ASTC compressed formats and requests a device with these features if they are available.

    const adapter = await navigator.gpu.requestAdapter();
    const requiredFeatures = [];
    if (adapter?.features.has("texture-compression-bc-sliced-3d")) {
      requiredFeatures.push(
        "texture-compression-bc",
        "texture-compression-bc-sliced-3d",
      );
    }
    if (adapter?.features.has("texture-compression-astc-sliced-3d")) {
      requiredFeatures.push(
        "texture-compression-astc",
        "texture-compression-astc-sliced-3d",
      );
    }
    const device = await adapter?.requestDevice({
      requiredFeatures
    });
    // Later on...
    if (device.features.has("texture-compression-astc-sliced-3d")) {
      // Create a 3D texture using ASTC compression
    } else if (device.features.has("texture-compression-bc-sliced-3d")) {
      // Create a 3D texture using BC compression
    } else {
      // Fallback: Create an uncompressed 3D texture
    }
    

    Explore 3D brain scans by checking out the Volume Rendering - Texture 3D WebGPU sample and see the chromestatus entry. A brain scan image from a 3D texture with ASTC compressed format.

    New "core-features-and-limits" feature

    A new "core-features-and-limits" feature is being introduced for the upcoming WebGPU compatibility mode. This feature indicates that the adapter or device supports core features and limits of the WebGPU spec. "core" WebGPU is the only version available at the moment, so all WebGPU implementations must include "core-features-and-limits" in their supported features. In the future, when WebGPU compatibility mode ships, an adapter or a device may not have this feature to signify it is a compatibility mode adapter or device and not a core one. When enabled on a device, this lifts all compatibility mode restrictions (features and limits). For a detailed explanation and usage in WebGPU compatibility mode, refer to the explainer and the following section. See issue 418025721.

    Origin trial for WebGPU compatibility mode

    WebGPU is a powerful API designed for modern graphics, aligning with technologies like Vulkan, Metal, and Direct3D 12. However, a significant number of devices still lack support for these newer APIs. For example, on Windows, 31% of Chrome users don't have Direct3D 11.1 or higher. On Android, 15% of Android users don't have Vulkan 1.1, including 10% who don't have Vulkan at all. This creates a challenge for developers who want to maximize their application's reach. They're often forced to develop multiple implementations (for example, WebGPU and WebGL), accept a more limited audience with core WebGPU, or stick to WebGL, missing out on WebGPU's advanced features like GPU compute. This creates a challenge for developers who want to maximize their application's reach. They're often forced to develop multiple implementations (for example, WebGPU and WebGL), accept a more limited audience with core WebGPU, or stick to WebGL, missing out on WebGPU's advanced features like GPU compute. WebGPU compatibility mode offers a solution by providing an opt-in, slightly restricted version of the WebGPU API. This mode is designed to run older graphics APIs like OpenGL ES 3.1 and Direct3D11, significantly expanding your application's reach to devices that don't support modern, explicit graphics APIs required by core WebGPU. Because compatibility mode is a subset of WebGPU, applications built with it are also valid WebGPU "core" applications. This means they will seamlessly run even on browsers that don't specifically support compatibility mode. For many basic applications, enabling compatibility mode is as straightforward as passing featureLevel: "compatibility" when you call requestAdapter(). More complex applications might require minor adjustments to fit within the mode's restrictions. The Generate Mipmap WebGPU sample is a good example. // Request a GPUAdapter in compatibility mode const adapter = await navigator.gpu.requestAdapter({ featureLevel: "compatibility", }); const hasCore = adapter?.features.has("core-features-and-limits"); const device = await adapter?.requestDevice({ requiredFeatures: (hasCore ? ["core-features-and-limits"] : []), }); if (device?.features.has("core-features-and-limits")) { // Compatibility mode restrictions will apply }

    Enable the feature

    By default, WebGPU compatibility mode is not enabled in Chrome, but it can be experimented with in Chrome 139 by explicitly enabling the functionality. You can activate it locally by enabling the "Experimental Web Platform Features" flag at chrome://flags/#enable-experimental-web-platform-features. To enable it for all visitors to your app, an origin trial is underway and set to end in Chrome 145 (Apr 21, 2026). To participate in the trial, refer to the Get started with origin trials post.

    Dawn updates

    A message argument is added to the WGPUQueueWorkDoneCallback function to be more consistent with other callback functions that take a status as well. See webgpu-headers PR. When emdawnwebgpu is linked with -sSHARED_MEMORY, its webgpu.cpp file is also compiled with this flag. See Dawn CL 244075. This covers only some of the key highlights. Check out the exhaustive list of commits.

    What's New in WebGPU

    A list of everything that has been covered in the What's New in WebGPU series.

    Chrome 140

    • Device requests consume adapter
    • Shorthand for using texture where texture view is used
    • WGSL textureSampleLevel supports 1D textures
    • Deprecate bgra8unorm read-only storage texture usage
    • Remove GPUAdapter isFallbackAdapter attribute
    • Dawn updates

    Chrome 139

    • 3D texture support for BC and ASTC compressed formats
    • New "core-features-and-limits" feature
    • Origin trial for WebGPU compatibility mode
    • Dawn updates

    Chrome 138

    • Shorthand for using buffer as a binding resource
    • Size requirement changes for buffers mapped at creation
    • Architecture report for recent GPUs
    • Deprecate GPUAdapter isFallbackAdapter attribute
    • Dawn updates

    Chrome 137

    • Use texture view for externalTexture binding
    • Buffers copy without specifying offsets and size
    • WGSL workgroupUniformLoad using pointer to atomic
    • GPUAdapterInfo powerPreference attribute
    • Remove GPURequestAdapterOptions compatibilityMode attribute
    • Dawn updates

    Chrome 136

    • GPUAdapterInfo isFallbackAdapter attribute
    • Shader compilation time improvements on D3D12
    • Save and copy canvas images
    • Lift compatibility mode restrictions
    • Dawn updates

    Chrome 135

    • Allow creating pipeline layout with null bind group layout
    • Allow viewports to extend past the render targets bounds
    • Easier access to the experimental compatibility mode on Android
    • Remove maxInterStageShaderComponents limit
    • Dawn updates

    Chrome 134

    • Improve machine-learning workloads with subgroups
    • Remove float filterable texture types support as blendable
    • Dawn updates

    Chrome 133

    • Additional unorm8x4-bgra and 1-component vertex formats
    • Allow unknown limits to be requested with undefined value
    • WGSL alignment rules changes
    • WGSL performance gains with discard
    • Use VideoFrame displaySize for external textures
    • Handle images with non-default orientations using copyExternalImageToTexture
    • Improving developer experience
    • Enable compatibility mode with featureLevel
    • Experimental subgroup features cleanup
    • Deprecate maxInterStageShaderComponents limit
    • Dawn updates

    Chrome 132

    • Texture view usage
    • 32-bit float textures blending
    • GPUDevice adapterInfo attribute
    • Configuring canvas context with invalid format throw JavaScript error
    • Filtering sampler restrictions on textures
    • Extended subgroups experimentation
    • Improving developer experience
    • Experimental support for 16-bit normalized texture formats
    • Dawn updates

    Chrome 131

    • Clip distances in WGSL
    • GPUCanvasContext getConfiguration()
    • Point and line primitives must not have depth bias
    • Inclusive scan built-in functions for subgroups
    • Experimental support for multi-draw indirect
    • Shader module compilation option strict math
    • Remove GPUAdapter requestAdapterInfo()
    • Dawn updates

    Chrome 130

    • Dual source blending
    • Shader compilation time improvements on Metal
    • Deprecation of GPUAdapter requestAdapterInfo()
    • Dawn updates

    Chrome 129

    • HDR support with canvas tone mapping mode
    • Expanded subgroups support
    • Dawn updates

    Chrome 128

    • Experimenting with subgroups
    • Deprecate setting depth bias for lines and points
    • Hide uncaptured error DevTools warning if preventDefault
    • WGSL interpolate sampling first and either
    • Dawn updates

    Chrome 127

    • Experimental support for OpenGL ES on Android
    • GPUAdapter info attribute
    • WebAssembly interop improvements
    • Improved command encoder errors
    • Dawn updates

    Chrome 126

    • Increase maxTextureArrayLayers limit
    • Buffer upload optimization for Vulkan backend
    • Shader compilation time improvements
    • Submitted command buffers must be unique
    • Dawn updates

    Chrome 125

    • Subgroups (feature in development)
    • Render to slice of 3D texture
    • Dawn updates

    Chrome 124

    • Read-only and read-write storage textures
    • Service workers and shared workers support
    • New adapter information attributes
    • Bug fixes
    • Dawn updates

    Chrome 123

    • DP4a built-in functions support in WGSL
    • Unrestricted pointer parameters in WGSL
    • Syntax sugar for dereferencing composites in WGSL
    • Separate read-only state for stencil and depth aspects
    • Dawn updates

    Chrome 122

    • Expand reach with compatibility mode (feature in development)
    • Increase maxVertexAttributes limit
    • Dawn updates

    Chrome 121

    • Support WebGPU on Android
    • Use DXC instead of FXC for shader compilation on Windows
    • Timestamp queries in compute and render passes
    • Default entry points to shader modules
    • Support display-p3 as GPUExternalTexture color space
    • Memory heaps info
    • Dawn updates

    Chrome 120

    • Support for 16-bit floating-point values in WGSL
    • Push the limits
    • Changes to depth-stencil state
    • Adapter information updates
    • Timestamp queries quantization
    • Spring-cleaning features

    Chrome 119

    • Filterable 32-bit float textures
    • unorm10-10-10-2 vertex format
    • rgb10a2uint texture format
    • Dawn updates

    Chrome 118

    • HTMLImageElement and ImageData support in copyExternalImageToTexture()
    • Experimental support for read-write and read-only storage texture
    • Dawn updates

    Chrome 117

    • Unset vertex buffer
    • Unset bind group
    • Silence errors from async pipeline creation when device is lost
    • SPIR-V shader module creation updates
    • Improving developer experience
    • Caching pipelines with automatically generated layout
    • Dawn updates

    Chrome 116

    • WebCodecs integration
    • Lost device returned by GPUAdapter requestDevice()
    • Keep video playback smooth if importExternalTexture() is called
    • Spec conformance
    • Improving developer experience
    • Dawn updates

    Chrome 115

    • Supported WGSL language extensions
    • Experimental support for Direct3D 11
    • Get discrete GPU by default on AC power
    • Improving developer experience
    • Dawn updates

    Chrome 114

    • Optimize JavaScript
    • getCurrentTexture() on unconfigured canvas throws InvalidStateError
    • WGSL updates
    • Dawn updates

    Chrome 113

    • Use WebCodecs VideoFrame source in importExternalTexture()
  • Jul 22, 2025
    • Parsed from source:
      Jul 22, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's new in Dev Tools, Chrome 139

    Chrome DevTools delivers broad bug fixes, stronger test coverage, and new AI-assisted features, plus performance insights and workflow tweaks across Elements, Network, and Sources to improve reliability and debugging.

    In this version, Chrome DevTools prioritized product excellence. This involved tackling a wide array of known issues, from long-standing visual glitches, usability concerns, and inconsistencies in design to performance and functional issues. Overall, we reduced the number of open issues by 27%.

    We finally addressed some years-old issues, but we also made improvements in newer features, for example, in the Performance panel and AI assistance. The result is a significantly improved developer experience across the board.

    Behind the scenes, we undertook a massive effort to enhance our test coverage, investigated complex test failures, migrated tests to more robust foundations, and resolved bugs that we discovered along the way. We managed to reduce the number of test related issues by 54%.

    We hope you will experience these numerous subtle fixes and refinements across various panels, making your daily debugging and development workflows smoother, more reliable, and more productive.

    Upload images in AI assistance for styling

    To provide additional visual context to your prompts, you can now not only take automatic screenshots but also upload arbitrary images to your chats with Gemini in the AI assistance panel.

    Start your conversation from the Elements panel by selecting a DOM element and clicking Ask AI, so the element is specified as conversation context. Then click Add image in the input field.

    Add request headers to the table in Network

    In the Network panel, you can now right-click a column name in the requests table and select multiple request headers to add them as columns.

    Chromium issue: 397481040.

    Check out the highlights from Google I/O 2025

    If you haven't yet, try the new major Chrome DevTools features highlighted on Google I/O 2025, including but not limited to:

    • Sources: Connect a workspace folder and save changes back to your source files.
    • Gemini-powered:
      • Modify and seamlessly save CSS changes to your workspace.
      • Ask about performance insights.
      • Annotate performance findings automatically.
      • Add screenshots to your AI chats. Additionally, check out new Performance insights: Duplicated JavaScript and Legacy JavaScript.

    Miscellaneous highlights

    These are some of many notable fixes and improvements in this release:

    • Application: There's now a confirmation dialog to clear IndexedDB object stores because it's an irreversible action (crbug.com/326987147).
    • Sources: Logpoints and conditional breakpoint badges next to code lines now show a tooltip on hover with their corresponding log message or condition (crbug.com/40266230).
    • Performance:
      • The Layout shift culprits insight now shows links to unsized images (crbug.com/416449602).
      • The LCP request discovery insight now shows image load delay after earliest start point.
      • Throttling: Fixed the outdated format of throttling settings that some users had stored locally.
      • Event log: Filtering got a speed boost (crbug.com/40783421).
    • Animations: Deprecated preview screenshots because click-to-preview an animation group provides similar and better experience (crbug.com/330179643).
    • Accessibility:
      • Added aria-labels to Sources > DOM breakpoints sidebar, when present.
      • Fixed Shift + Tab keyboard navigation within the Live expression text field in the Console (crbug.com/408398435, crbug.com/420344137).
      • Settings now supports zoom in/out/reset shortcuts: Cmd/Ctrl + +/-/0 (crbug.com/41484555).
      • Elements > Styles: CSS hint and warning icons (crbug.com/40706851) and Angle clock are now keyboard focusable (crbug.com/401212624, crbug.com/401213524).

    Download the preview channels

    Consider using the Chrome Canary, Dev, or Beta as your default development browser. These preview channels give you access to the latest DevTools features, let you test cutting-edge web platform APIs, and help you find issues on your site before your users do!

    Get in touch with the Chrome DevTools team

    Use the following options to discuss the new features, updates, or anything else related to DevTools.

    • Submit feedback and feature requests to us at crbug.com.
    • Report a DevTools issue using the More options > Help > Report a DevTools issue in DevTools.
    • Tweet at @ChromeDevTools.
    • Leave comments on What's new in DevTools YouTube videos or DevTools Tips YouTube videos.

    What's new in DevTools

    A list of everything that has been covered in the What's new in DevTools series.

  • Jun 24, 2025
    • Parsed from source:
      Jun 24, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    Chrome 138

    Chrome 138 stable adds CSS math funcs (abs, sign), progress() and viewport segments, stretch sizing with -webkit-fill-available, OS font scale env, Web Serial over Bluetooth, translation/detection/summarizer APIs, crash-report fields, WebCodecs rotation, Clear-Site-Data preref/prerender cache, speculation rules, and ServiceWorker prefetch.

    CSS and UI

    CSS Sign-Related Functions: abs(), sign()

    The sign-related functions abs() and sign() compute various functions related to the sign of their argument. The abs(A) function contains one calculation A, and returns the absolute value of A, as the same type as the input: if A's numeric value is positive or 0⁺, just A again; otherwise -1 * A. The sign(A) function contains one calculation A, and returns -1 if A's numeric value is negative, +1 if A's numeric value is positive, 0⁺ if A's numeric value is 0⁺, and 0⁻ if A's numeric value is 0⁻. The return type is a , made consistent with the type of the input calculation.

    Interpolation progress functional notation: CSS progress() function

    The progress() functional notation returns a value representing the position of one calculation (the progress value) between two other calculations (the progress start value and progress end value). The progress() function is a math function.

    CSS sibling-index() and sibling-count()

    The sibling-index() and sibling-count() functions can be used as integers in CSS property values to style elements based on their position among its siblings, or the total number of siblings respectively. These functions can be used directly as integer values, but more interestingly inside calc() expressions.

    CSS stretch sizing keyword

    A keyword for CSS sizing properties (for example, width and height) that lets elements grow to exactly fill their containing block's available space. It is similar to '100%', except the resulting size is applied to the element's margin box instead of the box indicated by box-sizing. Using this keyword lets the element keep its margins while still being as large as possible. An unprefixed version of -webkit-fill-available.

    CSS env variable for OS-level font scale

    Exposes a user's preferred font scale to CSS. Without this, it's not practical for a page to detect if the user has changed their preferred font size using the Operating System's preferences. This CSS environment variable will reflect the scale chosen by the user.

    Devices

    Web serial over Bluetooth on Android

    This feature lets web pages and web apps connect to serial ports over Bluetooth on Android devices. Chrome on Android now supports Web Serial API over Bluetooth RFCOMM. Existing enterprise policies (DefaultSerialGuardSetting, SerialAllowAllPortsForUrls, SerialAllowUsbDevicesForUrls, SerialAskForUrls, and SerialBlockedForUrls) on other platforms are enabled in future_on states for Android. All policies except SerialAllowUsbDevicesForUrls will be enabled after the feature is enabled. SerialAllowUsbDevicesForUrls will be enabled in a future launch after Android provides system level support of wired serial ports.

    Viewport Segments Enumeration API

    The Viewport Segments API allows developers to adapt their web layout to target foldable devices. The viewport segments defines the position and dimensions of a logically separate region of the viewport. Viewport segments are created when the viewport is split by one or more hardware features (such as a fold or a hinge between separate displays) that act as a divider; segments are the regions of the viewport that can be treated as logically distinct by the developer.

    JavaScript

    Update QuotaExceededError to a DOMException derived interface

    Previously, when the web platform wants to tell you when you've exceeded quota, it will use DOMException with the specific name property set to QuotaExceededError. However this does not allow carrying additional information. This proposes removing "QuotaExceededError" from the list of built-in DOMException names, and instead creates a class name QuotaExceededError from the list of built-in DOMException and has the additional optional properties quota and requested. We propose all instances of specs that throw "QuotaExceededError" DOMExceptions get upgraded to instead throw QuotaExceededErrors. For now, such specs would leave the quota and requested properties at their default value of null, but they could eventually upgrade to include that data, if it's useful for their use case (and isn't, e.g., a privacy leak).

    Web APIs

    Translator API

    A JavaScript API to provide language translation capabilities to web pages. Browsers are increasingly offering language translation to their users. Such translation capabilities can also be useful to web developers. This is especially the case when browser's built-in translation abilities cannot help. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable.

    Language Detector API

    A JavaScript API for detecting the language of text, with confidence levels. An important supplement to translation is language detection. This can be combined with translation, for example, taking user input in an unknown language and translating it to a specific target language. Browsers today often already have language detection capabilities, and we want to offer them to web developers through a JavaScript API, supplementing the translation API. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable.

    Summarizer API

    Summarizer API is a JavaScript API for producing summaries of input text, backed by an AI language model. Browsers and operating systems are increasingly expected to gain access to a language model. By exposing this built-in model, we avoid every website needing to download their own multi-gigabyte language model, or send input text to third-party APIs. The summarizer API in particular exposes a high-level API for interfacing with a language model in order to summarize inputs for a variety of use cases (GitHub), in a way that does not depend on the specific language model in question. An enterprise policy (GenAILocalFoundationalModelSettings) is available to disable the underlying model downloading which would render this API unavailable.

    Escape < and > in attributes on serialization

    Escape < and > in values of attributes on serialization. This mitigates the risk of mutation XSS attacks, which occur when value of an attribute is interpreted as a start tag token after being serialized and re-parsed.

    Crash Reporting API: is_top_level and visibility_state

    This feature adds is_top_level and visibility_state string fields to the crash reporting API body that gets sent to the default reporting endpoint for crash reports.

    Fire the pushsubscriptionchange event upon resubscription

    Fire the pushsubscriptionchange event in service workers when an origin for which a push subscription existed in the past, but which was revoked because of a permission change (from granted to deny/default), is re-granted notification permission. The event will be fired with an empty oldSubscription and newSubscription.

    Multimedia

    Add support for video frame orientation metadata to WebCodecs

    Introduces rotation: int and flip: bool values to various video related interfaces in WebCodecs so that developers can work with frame sources that have orientation (For example, Android cameras, certain media). The VideoFrame interface grows the ability to create VideoFrames with arbitrary rotation and flip as well as accessors for this information on the VideoFrame object. The VideoDecoderConfig object gains rotation and flip fields that are emitted on decoded VideoFrame objects automatically. The VideoEncoder class gains mechanisms for passing rotation and flip information from encode() to the VideoDecoderConfig emitted as part of EncodedVideoChunkMetadata. If encode() is called with frames with different orientations a nonfatal exception will be thrown. configure() may be used to reset the allowed orientation.

    Performance

    Add prefetchCache and prerenderCache to Clear-Site-Dataheader

    Two new values for the Clear-Site-Data header to help developers target clearing the prerender and prefetch cache: "prefetchCache" and "prerenderCache".

    Speculation rules: target_hint field

    This extends speculation rules syntax to allow developers to specify the target_hint field. This field provides a hint to indicate a target navigable where a prerendered page will eventually be activated. For example, when _blank is specified as a hint, a prerendered page can be activated for a navigable opened by window.open(). The field has no effect on prefetching. The specification allows this field to accept any strings that are valid as navigable target name or keyword as the value, but this launch supports only one of "_self" or "_blank" strings. If the hint is not specified, it's treated like "_self" is specified.

    Security

    Integrity Policy for scripts

    Subresource-Integrity (SRI) enables developers to make sure the assets they intend to load are indeed the assets they are loading. But there's no current way for developers to be sure that all of their scripts are validated using SRI. The Integrity-Policy header gives developers the ability to assert that every resource of a given type needs to be integrity-checked. If a resource of that type is attempted to be loaded without integrity metadata, that attempt will fail and trigger a violation report.

    Service Worker

    ServiceWorker support for Speculation Rules Prefetch

    This feature enables ServiceWorker-controlled prefetches, that is a speculation rules prefetch to URLs controlled by a Service Worker. Previously, the prefetch is cancelled upon detecting a controlling Service Worker, thus subsequent navigation to the prefetch target is served by the non-prefetch path. This feature will enable the prefetch request to go through the Service Worker's fetch handler and the response with the Service Worker interception is cached in the prefetch cache, resulting in a subsequent navigation being served by the prefetch cache. Use the enterprise policy PrefetchWithServiceWorkerEnabled to control this feature.

    Deprecations and removals

    WebGPU: Deprecate GPUAdapter isFallbackAdapter attribute

    Deprecates the GPUAdapter isFallbackAdapter boolean attribute from WebGPU, which is redundant with the GPUAdapterInfo isFallbackAdapter boolean attribute. This upcoming removal is a minor breaking change as support for fallback adapters has not yet been implemented in any browser, thereby resulting in both isFallbackAdapter attributes consistently returning a falsy value.

    Deprecate asynchronous range removal for Media Source Extensions

    The Media Source standard long ago changed to disallow ambiguously defined behavior involving asynchronous range removals: • SourceBuffer.abort() no longer aborts SourceBuffer.remove() operations. • Setting MediaSource.duration can no longer truncate currently buffered media. Exceptions will be thrown in both of these cases now. Safari and Firefox have long shipped this behavior, Chromium is the last browser remaining with the old behavior. Use counters show that around 0.001%-0.005% of page loads hit the deprecated behavior. If a site hits this issue, playback may now break. Usage of abort() cancelling removals is increasing, so it's prudent to resolve this deprecation before more incompatible usage appears.

  • Jun 17, 2025
    • Parsed from source:
      Jun 17, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's new in DevTools, Chrome 138

    This release enhances DevTools across Performance, Elements, and Network panels. Highlights include preconnected origins and latency insights, redirect details, reduced trace noise, deprecation of JS samples, geolocation accuracy testing, richer CSS debugging, and Direct Sockets for Isolated Web Apps, plus assorted fixes.

    This version brings several improvements to the Performance panel.

    Preconnected origins in 'Network dependency tree' insight

    The Performance > Insights > Network dependency tree insight now shows you a list of used or unused preconnected origins and preconnect candidates, if any. Preconnect hints let your site establish early connections to important third-party origins and improve page load speed.

    Server response and redirection times in 'Document request latency' insight

    The Performance > Insights > Document request latency insight now shows you server response time and, if any, the number or redirects and redirection time.

    Redirects in Summary of network requests

    The Performance panel now shows redirect URLs in the Summary of network requests and in their tooltips.

    Reduced noise in the performance trace

    The Performance panel now won't show events from the compile category of the v8 JavaScript engine. Previously, these events caused a lot of unnecessary overhead and noise, the compile code event in particular.

    Deprecated 'Disable JavaScript samples'

    The Disable JavaScript samples option in Performace > Captures settings has been deprecated and removed due to rare usefulness and low usage.

    Geolocation accuracy parameter in Sensors

    The Sensors panel now lets you set accuracy in geolocation emulation. This way, you can test the handling of different levels of GPS accuracy.

    Elements panel improvements

    This version brings several improvements to the Elements panel.

    Debug complex CSS values easier

    To help you debug complex CSS values, the Elements > Styles tab now shows you in a tooltip on hover:

    • The full definition chain of CSS variables, so that you don't need to click through multiple links.
    • A step-by-step evaluation of complex CSS calculations, so you can identify bugs more efficiently and gain a deeper understanding of how a value is computed. The tooltip shows definition chains in multiple lines, one for each definition, and you can expand complex calculations and hover over values to highlight and trace the computed value back to its initial expression.

    @function support in Elements > Styles

    In preparation for @function support in Chrome, the Elements > Styles tab now links your custom function names to their definitions in a dedicated section.

    Network panel improvements

    This version brings several improvements to the Network panel.

    • has-request-header filter The Network panel now supports the has-request-header filter that lets you filter by a specific request header name.

    Direct Sockets in Isolated Web Apps

    In the Network panel, you can now monitor the traffic of Isolated Web Apps (IWAs) through TCPSocket, UDPSocket (in bound mode), UDPSocket (in connected mode). To do this, select a directscoket connection next to regular requests in the table and, in the Messages tab, select a message. Isolated Web Apps (IWAs) provide a high-trust security model for web applications. For more information, see Getting started with Isolated Web Apps and check out the demo app that implements the Direct Sockets API.

    Miscellaneous highlights

    These are some noteworthy fixes and improvements in this release:

    • Application > Storage: Removed the deprecated Web SQL option (crbug.com/412707590).
    • Elements:
      • Enabled by default the highlighting of issues with elements and attributes in DOM.
      • Styles: Added the clip value to overflow autocomplete options.
    • Network: Removed the Referrer-Policy HTTP header from the Copy as fetch option because it is a response header to control browser behavior, not a client-side instruction (crbug.com/413904896).
    • Performance: Removed 'long task' warnings from worker threads because they don't block main threads (crbug.com/40248589).
    • Issues. Now reports:
      • If any resources suspected of tracking users are blocked.
      • Bounce tracking mitigations regardless of whether they access storage during a redirect or not.
    • Accessibility. The following elements in Elements > Styles are now keyboard-focusable:
      • Shadow swatches (crbug.com/401213105).
      • Anchor positioning name links (crbug.com/401213107).
      • Flex and grid editor buttons (crbug.com/401213522).
      • Lengths (crbug.com/401211976).
      • URL links (crbug.com/401213104).
      • Property names and values (crbug.com/417458979).

    Download the preview channels

    Consider using the Chrome Canary, Dev, or Beta as your default development browser. These preview channels give you access to the latest DevTools features, let you test cutting-edge web platform APIs, and help you find issues on your site before your users do!

    Get in touch with the Chrome DevTools team

    Use the following options to discuss the new features, updates, or anything else related to DevTools.

    • Submit feedback and feature requests to us at crbug.com.
    • Report a DevTools issue using the More options > Help > Report a DevTools issue in DevTools.
    • Tweet at @ChromeDevTools.
    • Leave comments on What's new in DevTools YouTube videos or DevTools Tips YouTube videos.

    What's new in DevTools

    A list of everything that has been covered in the What's new in DevTools series.

  • Jun 17, 2025
    • Parsed from source:
      Jun 17, 2025
    • Detected by Releasebot:
      Sep 18, 2025

    Google Chrome by Google

    What's New in WebGPU (Chrome 138)

    The release adds direct GPUBindingResource support for GPUBuffer, enforces 4-byte alignment for mappedAtCreation sizes, updates GPUAdapterInfo architectures, deprecates isFallbackAdapter, and enhances Emscripten/WebGPU integration with Dawn/Emdawnwebgpu, updated docs, and remote port support.

    Developers can now use a GPUBuffer directly as a GPUBindingResource to expose to the shader for binding.

    This makes it consistent with other binding types and even simpler to use than a GPUBufferBinding when both size and offset use default values. See issue 419223794.

    const bindGroup = myDevice.createBindGroup({
      layout: myPipeline.getBindGroupLayout(0),
      entries: [
        { binding: 0, resource: mySampler },
        { binding: 1, resource: myTextureView },
        { binding: 2, resource: myExternalTexture },
        { binding: 3, resource: myBuffer },
        // Same as { buffer: myBuffer }
        { binding: 4, resource: { buffer: myOtherBuffer, offset: 42 } },
      ],
    });
    

    Creating a buffer with mappedAtCreation set to true now throws a RangeError if size is not a multiple of 4.

    This was previously enforced with a GPUValidationError only. See issue 405883445.

    myDevice.createBuffer({
      mappedAtCreation: true,
      size: 42,
      usage: GPUBufferUsage.STORAGE,
    });
    // Throws RangeError
    

    The latest GPUs from Nvidia and AMD now report their architecture in GPUAdapterInfo as "blackwell" and "rdna4" respectively, as well as a few other minor additions to the GPU architecture listings. See issue 417202748.

    The GPUAdapter isFallbackAdapter attribute is deprecated. It's replaced by the GPUAdapterInfo isFallbackAdapter attribute that was introduced in Chrome 136. See intent to deprecate.

    Emscripten is supported in Dawn GLFW for CMake builds allowing developers to simplify even further their WebGPU cross-platform app code when using Emdawnwebgpu, which implements the latest standardized webgpu.h over the browser API. See change dawn:242894.

    For a complete guide, check out the updated Build an app with WebGPU documentation.

    A "remote" Emdawnwebgpu port is now included in package releases. A snapshot of this port is included in Emscripten 4.0.10+, which now supports externally hosted ports. Switching to Emdawnwebgpu is now a single flag change from emcc -sUSE_WEBGPU to emcc --use-port=emdawnwebgpu. See Emscripten PR #24303, #24220, and Dawn CL 243214.

    This covers only some of the key highlights. Check out the exhaustive list of commits.

    A list of everything that has been covered in the What's New in WebGPU series.