Google Chrome Updates & Release Notes

Follow

291 updates curated from 294 sources by the Releasebot Team. Last updated: Oct 12, 2026

Get this feed:
  • Oct 7, 2026
    • Date parsed from source:
      Oct 7, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Google logo

    Google Chrome by Google

    What's New in Web GPU (Chrome 155-156)

    Google Chrome adds WebGPU updates for early bindless rendering experimentation, WGSL fragment_depth, unaligned texture compression, new srgb-linear and display-p3-linear color spaces, an additional snorm10-10-10-2 vertex format, f16 support on Linux for NVIDIA, and Dawn adapter LUID queries.

    Want to try out bindless rendering? It's now available for early experimentation on Android, Linux, and Windows. Head over to Brandon's blog post to learn how to enable it and see the live demo in action!

    WGSL fragment_depth extension

    In geometry-intensive render passes, early-Z optimizations are developers' best friend. They provide a massive performance boost by letting the GPU discard hidden pixels before running expensive fragment shaders. If a rasterized depth fails the depth test, the GPU skips the fragment shader entirely, provided the shader doesn't have other side effects.

    If you want to read into how hardware handles this, MJP has an excellent write-up on When Does Early-Z Have to be Disabled?.

    While custom depth manipulation is useful, doing it in your fragment shader comes with a hidden tax. Writing to @builtin(frag_depth) inside a fragment shader typically forces drivers to disable these early-Z optimizations for the entire draw call. This happens because driver heuristics can't guarantee that the shader's calculated output depth matches the depth interpolated by the rasterizer.

    To address this performance penalty, the WGSL extension fragment_depth lets you specify a less or greater depth mode name on @builtin(frag_depth) to explicitly state how the written depth compares to the interpolated depth, enabling the GPU to safely apply early-Z optimizations.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires fragment_depth; at the top of your WGSL shader code. See the following example and intent to ship.

    Texture compression unaligned

    The "texture-compression-unaligned" GPU feature enables the creation of compressed textures with dimensions that aren't integer multiples of the block size (such as 4x4 for BC, ETC2, and ASTC formats). Previously, WebGPU strictly required texture sizes to align with these block boundaries. By removing the need to pad or scale textures to fit block alignments, this feature preserves original compression fidelity without introducing scaling distortion. See the intent to ship.

    The following code snippet checks if the adapter supports texture compression unaligned and, if available, requests a device with it.

    Many thanks to external contributor Ignacio Castaño of spark.js for driving this feature, spec and CTS work!

    srgb-linear and display-p3-linear color spaces

    With the addition of the "srgb-linear" and "display-p3-linear" predefined color spaces, the WebGPU canvas context can now render directly into extended-range linear color spaces to support wide-gamut displays. These color spaces maintain a linear relationship between pixel values and physical luminance. This makes them ideal for physical light rendering in games as well as spatial processing tasks like anti-aliasing, interpolation, and decimation. See the intent to ship and the Particles (HDR) sample PR #574.

    Additional snorm10-10-10-2 vertex format

    The "snorm10-10-10-2" vertex format is a packed 32-bit format holding four signed normalized values: three 10-bit components (r, g, b) and one 2-bit component (a). With this format, you can efficiently store attributes, like 3D normal vectors with an extra 2-bit scalar, or alignment flag while saving memory bandwidth. See spec PR 6491.

    f16 support on Linux for NVIDIA

    The optional "shader-f16" feature, which provides support for 16-bit floating-point values in WGSL, is now supported on Linux for recent NVIDIA GPU drivers. See issue chromium:42251215.

    Dawn updates

    You can now query the LUID of the underlying DXGIAdapter for a given GPU adapter using the WGPUAdapterPropertiesD3D struct. See issue chromium:562849566.

    This covers 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 155-156

    • WGSL fragment_depth extension
    • Texture compression unaligned
    • srgb-linear and display-p3-linear color spaces
    • Additional snorm10-10-10-2 vertex format
    • f16 support on Linux for NVIDIA
    • Dawn updates
    Original source
  • Oct 7, 2026
    • Date parsed from source:
      Oct 7, 2026
    • First seen by Releasebot:
      Oct 7, 2026
    Google logo

    Google Chrome by Google

    What's New in Web GPU (Chrome 155-156)

    Google Chrome adds early WebGPU experimentation for bindless rendering and expands graphics capabilities with WGSL fragment_depth, unaligned texture compression, srgb-linear and display-p3-linear color spaces, snorm10-10-10-2 vertex format support, and f16 on Linux for NVIDIA.

    Want to try out bindless rendering? It's now available for early experimentation on Android, Linux, and Windows. Head over to Brandon's blog post to learn how to enable it and see the live demo in action!

    WGSL fragment_depth extension

    In geometry-intensive render passes, early-Z optimizations are developers' best friend. They provide a massive performance boost by letting the GPU discard hidden pixels before running expensive fragment shaders. If a rasterized depth fails the depth test, the GPU skips the fragment shader entirely, provided the shader doesn't have other side effects.

    If you want to read into how hardware handles this, MJP has an excellent write-up on When Does Early-Z Have to be Disabled?.

    While custom depth manipulation is useful, doing it in your fragment shader comes with a hidden tax. Writing to @builtin(frag_depth) inside a fragment shader typically forces drivers to disable these early-Z optimizations for the entire draw call. This happens because driver heuristics can't guarantee that the shader's calculated output depth matches the depth interpolated by the rasterizer.

    To address this performance penalty, the WGSL extension fragment_depth lets you specify a less or greater depth mode name on @builtin(frag_depth) to explicitly state how the written depth compares to the interpolated depth, enabling the GPU to safely apply early-Z optimizations.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires fragment_depth; at the top of your WGSL shader code. See the following example and intent to ship.

    Texture compression unaligned

    The "texture-compression-unaligned" GPU feature enables the creation of compressed textures with dimensions that aren't integer multiples of the block size (such as 4x4 for BC, ETC2, and ASTC formats). Previously, WebGPU strictly required texture sizes to align with these block boundaries. By removing the need to pad or scale textures to fit block alignments, this feature preserves original compression fidelity without introducing scaling distortion. See the intent to ship.

    The following code snippet checks if the adapter supports texture compression unaligned and, if available, requests a device with it.

    Many thanks to external contributor Ignacio Castaño of spark.js for driving this feature, spec and CTS work!

    srgb-linear and display-p3-linear color spaces

    With the addition of the "srgb-linear" and "display-p3-linear" predefined color spaces, the WebGPU canvas context can now render directly into extended-range linear color spaces to support wide-gamut displays. These color spaces maintain a linear relationship between pixel values and physical luminance. This makes them ideal for physical light rendering in games as well as spatial processing tasks like anti-aliasing, interpolation, and decimation. See the intent to ship and the Particles (HDR) sample PR #574.

    Additional snorm10-10-10-2 vertex format

    The "snorm10-10-10-2" vertex format is a packed 32-bit format holding four signed normalized values: three 10-bit components (r, g, b) and one 2-bit component (a). With this format, you can efficiently store attributes, like 3D normal vectors with an extra 2-bit scalar, or alignment flag while saving memory bandwidth. See spec PR 6491.

    f16 support on Linux for NVIDIA

    The optional "shader-f16" feature, which provides support for 16-bit floating-point values in WGSL, is now supported on Linux for recent NVIDIA GPU drivers. See issue chromium:42251215.

    Dawn updates

    You can now query the LUID of the underlying DXGIAdapter for a given GPU adapter using the WGPUAdapterPropertiesD3D struct. See issue chromium:562849566.

    This covers 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 155-156 highlights:

    • WGSL fragment_depth extension
    • Texture compression unaligned
    • srgb-linear and display-p3-linear color spaces
    • Additional snorm10-10-10-2 vertex format
    • f16 support on Linux for NVIDIA
    • Dawn updates
    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Google and hundreds of other software products.

    Create account
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Oct 16, 2026
    Google logo

    Google Chrome by Google

    Chrome 154

    Google Chrome releases new CSS and JavaScript capabilities, responsive iframes, and expanded WebSocket and Background Fetch support. The update also improves popover behavior, strengthens privacy and security defaults, and adds custom window shapes for eligible Isolated Web Apps.

    Stable release date: September 22nd, 2026

    Unless otherwise noted, the following changes apply to Chrome 154 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    CSS scroll-marker-group modes

    The scroll-marker-group property supports two modes that control the focus order and accessibility behavior of ::scroll-marker-group and ::scroll-marker following WAI-ARIA patterns:

    • links (default): The generated ::scroll-marker-group operates like a navigation list (navigation role), and ::scroll-marker elements act as standard links (link role). All ::scroll-marker elements are sequential tab stops. Activating a link marker moves focus to the target element.
    • tabs: The generated ::scroll-marker-group operates like a tablist (tablist role), ::scroll-marker elements take on the tab role, and originating elements get the tabpanel role. Only the active ::scroll-marker acts as a tab stop, and users navigate between markers with arrow keys. Content from inactive tabs is hidden from the accessibility tree, and focus stays on the marker when activated.

    CSS text-decoration-inset

    The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets you adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements.

    Expose CSSStyle Value hierarchy to Worker contexts

    The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]). Previously, Blink only exposed CSSStyleValue, CSSKeywordValue, CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and worklets. Chrome 154 exposes these constructors in Worker contexts, aligning with the specification and other browser engines.

    FontFace width attribute and font-width descriptor

    Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. This aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. You can inspect or initialize font face widths using FontFace.width and CSS font-width interchangeably with stretch and font-stretch.

    Light dismiss improvements for popovers and dialogs

    Improves and simplifies light dismiss behavior for popovers and dialogs. Light dismiss closes a popover or dialog when a user clicks outside of it. With this update, the browser uses click events instead of a combination of pointerdown and pointerup events to trigger light dismiss, ensuring that scrolling gestures on touchscreens and right-clicks no longer close popovers or dialogs unintentionally.

    Responsively-sized

    Lets sites opt into responsive sizing for iframes. This sizes the element in the parent document to the embedded document's layout overflow sizing, avoiding scrolling in the child document.

    JavaScript

    Iterator includes

    Implements the TC39 proposal for Iterator.prototype.includes(), letting you check whether an iterator yields a given value, analogous to Array.prototype.includes().

    Network and connectivity

    Add options bag to WebSocket constructor

    Adds support for passing an options dictionary (WebSocketInit) as the second argument to the WebSocket constructor. The options dictionary supports a protocols option, letting you specify subprotocols (mirroring the existing protocols argument), and serves as an extension point for future options.

    For example, instead of new WebSocket("wss://example.com:8080", "soap"), you can pass new WebSocket("wss://example.com:8080", { protocols: "soap" }).

    Support targetAddressSpace option for WebSockets

    Adds support for passing a targetAddressSpace option in the WebSocket constructor (new WebSocket("ws://local-server.example", { targetAddressSpace: "local" })). This lets you specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching existing support in the Fetch API. This provides a way to bypass mixed content restrictions when connecting to local servers that don't yet support HTTPS, provided the user grants local network permission and the hostname resolves to a local IP address.

    Fetch API: Forward reason from AbortController to fetch Response

    Exposes the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than only the fetch promise. This aligns Chrome with the Fetch standard by exposing the developer-supplied abort reason consistently.

    CORS enforcement for Background Fetch

    The Background Fetch API enforces Cross-Origin Resource Sharing (CORS). This aligns Chromium's implementation with the Background Fetch specification and ensures that Background Fetch requests are subject to the same security policies as regular fetch() requests, preventing sites from bypassing CORS and other security policy checks.

    Local Network Access restrictions for Background Fetch

    Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers. This aligns Chromium with the Background Fetch specification and prevents sites from bypassing LNA checks by using Background Fetch instead of regular fetch(). Enterprises can manage this behavior using existing LNA enterprise policies (LocalNetworkAccessRestrictionsTemporaryOptOut, LocalNetworkAccessAllowedForUrls, LoopbackNetworkAllowedForUrls, LocalNetworkAccessPermissionsPolicyDefaultEnabled, and LocalNetworkAccessIpAddressSpaceOverrides).

    Privacy and security

    Ask before HTTP on by default

    Chrome prompts users by default when they connect to a site over an insecure (http) connection. Administrators can control this default behavior using the HttpsOnlyMode enterprise policy.

    Secure Payment Confirmation: Locale validation

    Updates the Secure Payment Confirmation locale data field to return a NotSupportedError DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation dialog. If the field isn't set or is empty, this validation is skipped. This helps you match the language of the data supplied to Secure Payment Confirmation with the dialog.

    Isolated Web Apps (IWA)

    Window Shape API

    The Window Shape API lets Isolated Web Apps on an allowlist on ChromeOS define a custom window shape. By supporting non-rectangular and non-contiguous window layouts, you can create widgets, floating panels, and overlays that match the appearance of native applications. The window.setShape() API requires an unframed display mode window and the window-management permission. Administrators can manage this feature with the DefaultWindowManagementSetting, WindowManagementAllowedForUrls, and WindowManagementBlockedForUrls enterprise policies.

    Origin trials

    Private Verification Tokens

    Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and other challenges. Websites issue PVTs during a regular browsing session and redeem them in private browsing mode.

    Original source
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Google logo

    Google Chrome by Google

    New in Dev Tools - October 2026 Bookmark collections drop down LLM Tools

    Google Chrome releases a monthly DevTools recap for Chrome 153 and 154, bringing developer workflow upgrades across Performance, Elements, Memory, Network, Device Mode, Accessibility, and AI-assisted debugging with stronger automation, clearer inspection tools, and modern device presets.

    Dev Tools for agents

    The Chrome DevTools MCP server introduces new security controls, performance tuning, and memory analysis capabilities for coding agents:

    • Agent Plugins 1.0 package: Added support for the Agent Plugins 1.0 package, allowing agents to load and execute modular plugin extensions.
    • JavaScript execution controls: Configure --no-javascript-evaluation or turn off JavaScript execution tools to inspect pages without evaluating scripts, extending across navigations and initialization scripts.
    • On-demand source maps: Added an option to disable source maps and lazy-load source maps on demand, preventing high memory usage on large sites.
    • Configurable file system roots and CLI path permissions: The CLI now includes --allow-unrestricted-paths by default and supports configurable file system roots.
    • Heap snapshot inspection: Query objects directly by retained size or property name with query_heapsnapshot, view self and retained sizes for edges, and inspect memory retained by V8 execution contexts.
    • PWA automation tools: Added dedicated tools for automating Progressive Web App installation and lifecycle checks.
    • Console stack traces: Retrieve optional stack traces when listing console messages with list_console_messages.

    Learn more in the chrome-devtools-mcp repository.

    Tip: Modern Web Guidance helps your coding agent to use the platform's newest features through guides. Notable additions in September include new guides for progress-ring, scrollspy, and spinner.

    Application: Ad script tracking in the Ads section, and cookie flag editing

    Following the introduction of four experimental ad metrics for the Chrome User Experience Report (CrUX), this new sub-panel is a centralized location to debug and optimize page-wide ad-related information. This includes:

    • A dashboard for the new experimental metrics: Viewport ad density, Viewport ad count, Total CPU usage by ads, Total network usage by ads.
    • Segmentation of CPU and network usage by ads elements
    • A table of ads scripts in the main frame.
    • A toggle that highlights ads on the page.

    Learn more about the new ad metrics in our documentation.

    Performance: Full soft navigation support, CPU performance tier overrides, and extension track search

    The Performance panel offers end-to-end soft navigation measurement, hardware calibration overrides, and deeper trace search:

    • Full soft navigation support: Following the introduction of soft navigation support in Live Metrics and trace views in Chrome 152, soft navigation analysis is now available in Insights, completing full end-to-end support for measuring soft navigations in the Performance panel.
    • CPU performance tier override over CDP: DevTools now supports configuring, calculating, and dispatching calibrated CPU performance tier overrides over Chrome DevTools Protocol (Emulation.setCPUPerformanceOverride), enabling reproducible performance testing across hardware tiers.
    • Extension track search in flame chart: Pressing Ctrl+F in the Performance panel flame chart now matches entries in custom tracks registered using the Extensibility API, searching their tooltip text, properties, and user details.
    • CPU profile thread visualization: The Performance panel flame chart now renders threads that contain only CPU profile samples, ensuring background executions such as WebAssembly threads appear in timeline views.

    Elements: Inactive styles, keyboard-accessible adorners, and tree outline fixes

    Inspecting and authoring CSS is faster and more accessible in the Elements panel:

    • Inactive styles support: DevTools can now continue showing style rules that previously matched the selected element when they no longer apply, clearly distinguishing them with an inactive visual indicator. Enable inactive styles and configure their collapsing behavior in Settings.
    • Keyboard-accessible adorners: Interactive adorners in the DOM tree—including View Source, Starting Style, Scroll Snap, and Reveal—are now keyboard focusable and can be activated using Enter or Space.
    • Drag-and-drop reordering: Reordering DOM nodes by dragging elements in the DOM tree now functions reliably across shadow DOM boundaries, with clear drop placement indicators.
    • Smoother CSS property toggling: Toggling CSS property checkboxes in the Styles tab no longer triggers duplicate UI repaints or visual flashing.

    Device Mode: Modernized device presets grouped by form factor

    The Device Mode toolbar and Settings > Devices view organize emulated hardware into clear categories:

    • Form factor grouping: Emulated devices are now grouped into Mobile, Foldables, Tablets & Desktops, and Smart Displays.
    • Updated hardware catalog: Added modern presets—including iPhone 16, Pixel 9, Pixel 10, Galaxy Z Fold 6, iPad Pro 13", and Nest Hub Max—while retiring outdated legacy device definitions.

    Network: Edit and resend as fetch in Console, and local overrides security

    Network request inspection and debugging workflows have been streamlined and secured:

    • Edit and resend as fetch in Console: Selecting Edit and resend as fetch on any network request now automatically focuses the Console panel with the fetch() expression already pasted into the prompt, complete with parameter comments and a reference link to the original request.
    • Local overrides security hardening: The Network panel now prevents path traversal (%2E%2E) in local overrides and prohibits creating overrides on non-http(s) schemes like data:, blob:, javascript:, and about:.
    • Caret escaping in Copy as curl (cmd): Copying network requests as curl commands for Windows cmd.exe now caret-escapes parentheses and backticks, preventing command syntax errors when pasted into alternative shells.
    • Binary payload cursor synchronization: The Payload tab maintains your scroll and cursor position when switching between Hex, Base64, and UTF-8 views.

    Memory: Heap snapshot edge filtering, size sorting, and object querying

    The Memory panel provides more granular tools for analyzing heap snapshots:

    • Edge sorting and filtering: You can now filter edges in heap snapshots by a minimum retained size and filter out primitive values (null, undefined, true, false) to focus on meaningful object references. Edges can be sorted by retained size, self size, or name.
    • Direct object querying: DevTools supports querying heap snapshot objects directly by retained size threshold or property name, streamlining memory leak investigations.
    • Context retention analysis: Heap snapshots can calculate and report the aggregate memory kept alive specifically by V8 execution contexts.
    • Resilient snapshot parsing: Invalid or corrupted heap snapshot files now surface clear errors rather than causing parsing hangs.

    Accessibility improvements

    Chrome 153 and Chrome 154 include the following accessibility enhancements:

    • Elements: VoiceOver on macOS now announces "expanded" and "collapsed" state changes through a polite live region when navigating DOM tree items.
    • Issues: Resolved duplicate screen reader announcements in the Issues counter, reading a single clean summary and applying correct non-button semantics within the Issues panel.
    • Elements: Interactive adorners (View Source, Starting Style, Scroll Snap, and Reveal) are fully focusable and activatable using the keyboard.
    • Live regions: Added the AccessibilityAnnouncementRecordingView to record and debug live announcements and ariaNotify calls.
    Original source
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Google logo

    Google Chrome by Google

    Chrome 154

    Google Chrome releases Chrome 154 with new CSS, JavaScript, networking, privacy, and enterprise updates, including improved scroll marker modes, text-decoration inset, worker CSS Typed OM support, WebSocket enhancements, responsive iframes, and stronger security and local network access protections.

    CSS and UI

    CSS scroll-marker-group modes

    The scroll-marker-group property supports two modes that control the focus order and accessibility behavior of ::scroll-marker-group and ::scroll-marker following WAI-ARIA patterns:

    • links (default): The generated ::scroll-marker-group operates like a navigation list (navigation role), and ::scroll-marker elements act as standard links (link role). All ::scroll-marker elements are sequential tab stops. Activating a link marker moves focus to the target element.
    • tabs: The generated ::scroll-marker-group operates like a tablist (tablist role), ::scroll-marker elements take on the tab role, and originating elements get the tabpanel role. Only the active ::scroll-marker acts as a tab stop, and users navigate between markers with arrow keys. Content from inactive tabs is hidden from the accessibility tree, and focus stays on the marker when activated.

    CSS text-decoration-inset

    The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets you adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements.

    Expose CSSStyleValue hierarchy to Worker contexts

    The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]). Previously, Blink only exposed CSSStyleValue, CSSKeywordValue, CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and worklets. Chrome 154 exposes these constructors in Worker contexts, aligning with the specification and other browser engines.

    FontFace width attribute and font-width descriptor

    Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. This aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. You can inspect or initialize font face widths using FontFace.width and CSS font-width interchangeably with stretch and font-stretch.

    Light dismiss improvements for popovers and dialogs

    Improves and simplifies light dismiss behavior for popovers and dialogs. Light dismiss closes a popover or dialog when a user clicks outside of it. With this update, the browser uses click events instead of a combination of pointerdown and pointerup events to trigger light dismiss, ensuring that scrolling gestures on touchscreens and right-clicks no longer close popovers or dialogs unintentionally.

    Responsively-sized

    Lets sites opt into responsive sizing for iframes. This sizes the element in the parent document to the embedded document's layout overflow sizing, avoiding scrolling in the child document.

    JavaScript

    Iterator includes

    Implements the TC39 proposal for Iterator.prototype.includes(), letting you check whether an iterator yields a given value, analogous to Array.prototype.includes().

    Network and connectivity

    Add options bag to WebSocket constructor

    Adds support for passing an options dictionary (WebSocketInit) as the second argument to the WebSocket constructor. The options dictionary supports a protocols option, letting you specify subprotocols (mirroring the existing protocols argument), and serves as an extension point for future options.

    For example, instead of new WebSocket("wss://example.com:8080", "soap"), you can pass new WebSocket("wss://example.com:8080", { protocols: "soap" }).

    Support targetAddressSpace option for WebSockets

    Adds support for passing a targetAddressSpace option in the WebSocket constructor (new WebSocket("ws://local-server.example", { targetAddressSpace: "local" })). This lets you specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching existing support in the Fetch API. This provides a way to bypass mixed content restrictions when connecting to local servers that don't yet support HTTPS, provided the user grants local network permission and the hostname resolves to a local IP address.

    Fetch API: Forward reason from AbortController to fetch Response

    Exposes the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than only the fetch promise. This aligns Chrome with the Fetch standard by exposing the developer-supplied abort reason consistently.

    CORS enforcement for Background Fetch

    The Background Fetch API enforces Cross-Origin Resource Sharing (CORS). This aligns Chromium's implementation with the Background Fetch specification and ensures that Background Fetch requests are subject to the same security policies as regular fetch() requests, preventing sites from bypassing CORS and other security policy checks.

    Local Network Access restrictions for Background Fetch

    Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers. This aligns Chromium with the Background Fetch specification and prevents sites from bypassing LNA checks by using Background Fetch instead of regular fetch(). Enterprises can manage this behavior using existing LNA enterprise policies (LocalNetworkAccessRestrictionsTemporaryOptOut, LocalNetworkAccessAllowedForUrls, LoopbackNetworkAllowedForUrls, LocalNetworkAccessPermissionsPolicyDefaultEnabled, and LocalNetworkAccessIpAddressSpaceOverrides).

    Privacy and security

    Ask before HTTP on by default

    Chrome prompts users by default when they connect to a site over an insecure (http) connection. Administrators can control this default behavior using the HttpsOnlyMode enterprise policy.

    Secure Payment Confirmation: Locale validation

    Updates the Secure Payment Confirmation locale data field to return a NotSupportedError DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation dialog. If the field isn't set or is empty, this validation is skipped. This helps you match the language of the data supplied to Secure Payment Confirmation with the dialog.

    Isolated Web Apps (IWA)

    Window Shape API

    The Window Shape API lets Isolated Web Apps on an allowlist on ChromeOS define a custom window shape. By supporting non-rectangular and non-contiguous window layouts, you can create widgets, floating panels, and overlays that match the appearance of native applications. The window.setShape() API requires an unframed display mode window and the window-management permission. Administrators can manage this feature with the DefaultWindowManagementSetting, WindowManagementAllowedForUrls, and WindowManagementBlockedForUrls enterprise policies.

    Origin trials

    Private Verification Tokens

    Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and other challenges. Websites issue PVTs during a regular browsing session and redeem them in private browsing mode.

    Original source
  • Similar to Google Chrome with recent updates:

  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Google logo

    Google Chrome by Google

    Chrome 154

    Google Chrome releases Chrome 154 for desktop and Android with new CSS and UI capabilities, improved popover and dialog light dismiss, responsive iframe sizing, JavaScript Iterator.includes, WebSocket and fetch updates, stronger privacy and security defaults, and new Isolated Web App window shaping support.

    Unless otherwise noted, the following changes apply to Chrome 154 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    CSS scroll-marker-group modes

    The scroll-marker-group property supports two modes that control the focus order and accessibility behavior of ::scroll-marker-group and ::scroll-marker following WAI-ARIA patterns:

    • links (default): The generated ::scroll-marker-group operates like a navigation list (navigation role), and ::scroll-marker elements act as standard links (link role). All ::scroll-marker elements are sequential tab stops. Activating a link marker moves focus to the target element.
    • tabs: The generated ::scroll-marker-group operates like a tablist (tablist role), ::scroll-marker elements take on the tab role, and originating elements get the tabpanel role. Only the active ::scroll-marker acts as a tab stop, and users navigate between markers with arrow keys. Content from inactive tabs is hidden from the accessibility tree, and focus stays on the marker when activated.

    CSS text-decoration-inset

    The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets you adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements.

    Expose CSSStyleValue hierarchy to Worker contexts

    The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]). Previously, Blink only exposed CSSStyleValue, CSSKeywordValue, CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and worklets. Chrome 154 exposes these constructors in Worker contexts, aligning with the specification and other browser engines.

    FontFace width attribute and font-width descriptor

    Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. This aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. You can inspect or initialize font face widths using FontFace.width and CSS font-width interchangeably with stretch and font-stretch.

    Light dismiss improvements for popovers and dialogs

    Improves and simplifies light dismiss behavior for popovers and dialogs. Light dismiss closes a popover or dialog when a user clicks outside of it. With this update, the browser uses click events instead of a combination of pointerdown and pointerup events to trigger light dismiss, ensuring that scrolling gestures on touchscreens and right-clicks no longer close popovers or dialogs unintentionally.

    Responsively-sized

    Lets sites opt into responsive sizing for iframes. This sizes the element in the parent document to the embedded document's layout overflow sizing, avoiding scrolling in the child document.

    JavaScript

    Iterator includes

    Implements the TC39 proposal for Iterator.prototype.includes(), letting you check whether an iterator yields a given value, analogous to Array.prototype.includes().

    Network and connectivity

    Add options bag to WebSocket constructor

    Adds support for passing an options dictionary (WebSocketInit) as the second argument to the WebSocket constructor. The options dictionary supports a protocols option, letting you specify subprotocols (mirroring the existing protocols argument), and serves as an extension point for future options.

    Support targetAddressSpace option for WebSockets

    Adds support for passing a targetAddressSpace option in the WebSocket constructor (new WebSocket("ws://local-server.example", { targetAddressSpace: "local" })). This lets you specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching existing support in the Fetch API. This provides a way to bypass mixed content restrictions when connecting to local servers that don't yet support HTTPS, provided the user grants local network permission and the hostname resolves to a local IP address.

    Fetch API: Forward reason from AbortController to fetch Response

    Exposes the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than only the fetch promise. This aligns Chrome with the Fetch standard by exposing the developer-supplied abort reason consistently.

    CORS enforcement for Background Fetch

    The Background Fetch API enforces Cross-Origin Resource Sharing (CORS). This aligns Chromium's implementation with the Background Fetch specification and ensures that Background Fetch requests are subject to the same security policies as regular fetch() requests, preventing sites from bypassing CORS and other security policy checks.

    Local Network Access restrictions for Background Fetch

    Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers. This aligns Chromium with the Background Fetch specification and prevents sites from bypassing LNA checks by using Background Fetch instead of regular fetch(). Enterprises can manage this behavior using existing LNA enterprise policies (LocalNetworkAccessRestrictionsTemporaryOptOut, LocalNetworkAccessAllowedForUrls, LoopbackNetworkAllowedForUrls, LocalNetworkAccessPermissionsPolicyDefaultEnabled, and LocalNetworkAccessIpAddressSpaceOverrides).

    Privacy and security

    Ask before HTTP on by default

    Chrome prompts users by default when they connect to a site over an insecure (http) connection. Administrators can control this default behavior using the HttpsOnlyMode enterprise policy.

    Secure Payment Confirmation: Locale validation

    Updates the Secure Payment Confirmation locale data field to return a NotSupportedError DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation dialog. If the field isn't set or is empty, this validation is skipped. This helps you match the language of the data supplied to Secure Payment Confirmation with the dialog.

    Isolated Web Apps (IWA)

    Window Shape API

    The Window Shape API lets Isolated Web Apps on an allowlist on ChromeOS define a custom window shape. By supporting non-rectangular and non-contiguous window layouts, you can create widgets, floating panels, and overlays that match the appearance of native applications. The window.setShape() API requires an unframed display mode window and the window-management permission. Administrators can manage this feature with the DefaultWindowManagementSetting, WindowManagementAllowedForUrls, and WindowManagementBlockedForUrls enterprise policies.

    Origin trials

    Private Verification Tokens

    Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and other challenges. Websites issue PVTs during a regular browsing session and redeem them in private browsing mode.

    Original source
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Sep 28, 2026
    Google logo

    Google Chrome by Google

    Chrome 154

    Google Chrome releases Chrome 154 with major CSS, web platform, and security updates, including new scroll marker accessibility modes, text-decoration inset control, Worker support for CSS Typed OM, iframe responsive sizing, WebSocket options, and stricter privacy and network protections.

    Stable release date: September 22nd, 2026

    Unless otherwise noted, the following changes apply to Chrome 154 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    CSS scroll-marker-group modes

    The scroll-marker-group property supports two modes that control the focus order and accessibility behavior of ::scroll-marker-group and ::scroll-marker following WAI-ARIA patterns:

    • links (default): The generated ::scroll-marker-group operates like a navigation list (navigation role), and ::scroll-marker elements act as standard links (link role). All ::scroll-marker elements are sequential tab stops. Activating a link marker moves focus to the target element.
    • tabs: The generated ::scroll-marker-group operates like a tablist (tablist role), ::scroll-marker elements take on the tab role, and originating elements get the tabpanel role. Only the active ::scroll-marker acts as a tab stop, and users navigate between markers with arrow keys. Content from inactive tabs is hidden from the accessibility tree, and focus stays on the marker when activated.

    Tracking bug #425931511 | ChromeStatus.com entry | Spec

    CSS text-decoration-inset

    The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets you adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements.

    Tracking bug #468928416 | ChromeStatus.com entry | Spec

    Expose CSSStyle Value hierarchy to Worker contexts

    The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]). Previously, Blink only exposed CSSStyleValue, CSSKeywordValue, CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and worklets. Chrome 154 exposes these constructors in Worker contexts, aligning with the specification and other browser engines.

    Tracking bug #534781956 | ChromeStatus.com entry | Spec

    FontFace width attribute and font-width descriptor

    Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. This aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. You can inspect or initialize font face widths using FontFace.width and CSS font-width interchangeably with stretch and font-stretch.

    Tracking bug #543938492 | ChromeStatus.com entry | Spec

    Light dismiss improvements for popovers and dialogs

    Improves and simplifies light dismiss behavior for popovers and dialogs. Light dismiss closes a popover or dialog when a user clicks outside of it. With this update, the browser uses click events instead of a combination of pointerdown and pointerup events to trigger light dismiss, ensuring that scrolling gestures on touchscreens and right-clicks no longer close popovers or dialogs unintentionally.

    Tracking bug #408010435 | ChromeStatus.com entry | Spec

    Responsively-sized

    Lets sites opt into responsive sizing for iframes. This sizes the element in the parent document to the embedded document's layout overflow sizing, avoiding scrolling in the child document.

    Tracking bug #418397278 | ChromeStatus.com entry | Spec

    JavaScript

    Iterator includes

    Implements the TC39 proposal for Iterator.prototype.includes(), letting you check whether an iterator yields a given value, analogous to Array.prototype.includes().

    Tracking bug #504886973 | ChromeStatus.com entry | Spec

    Network and connectivity

    Add options bag to WebSocket constructor

    Adds support for passing an options dictionary (WebSocketInit) as the second argument to the WebSocket constructor. The options dictionary supports a protocols option, letting you specify subprotocols (mirroring the existing protocols argument), and serves as an extension point for future options.

    For example, instead of new WebSocket("wss://example.com:8080", "soap"), you can pass new WebSocket("wss://example.com:8080", { protocols: "soap" }).

    Tracking bug #542670554 | ChromeStatus.com entry | Spec

    Support targetAddressSpace option for WebSockets

    Adds support for passing a targetAddressSpace option in the WebSocket constructor (new WebSocket("ws://local-server.example", { targetAddressSpace: "local" })). This lets you specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching existing support in the Fetch API. This provides a way to bypass mixed content restrictions when connecting to local servers that don't yet support HTTPS, provided the user grants local network permission and the hostname resolves to a local IP address.

    Tracking bug #517413738 | ChromeStatus.com entry | Spec

    Fetch API: Forward reason from AbortController to fetch Response

    Exposes the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than only the fetch promise. This aligns Chrome with the Fetch standard by exposing the developer-supplied abort reason consistently.

    Tracking bug #502133195 | ChromeStatus.com entry | Spec

    CORS enforcement for Background Fetch

    The Background Fetch API enforces Cross-Origin Resource Sharing (CORS). This aligns Chromium's implementation with the Background Fetch specification and ensures that Background Fetch requests are subject to the same security policies as regular fetch() requests, preventing sites from bypassing CORS and other security policy checks.

    ChromeStatus.com entry | Spec

    Local Network Access restrictions for Background Fetch

    Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers. This aligns Chromium with the Background Fetch specification and prevents sites from bypassing LNA checks by using Background Fetch instead of regular fetch(). Enterprises can manage this behavior using existing LNA enterprise policies (LocalNetworkAccessRestrictionsTemporaryOptOut, LocalNetworkAccessAllowedForUrls, LoopbackNetworkAllowedForUrls, LocalNetworkAccessPermissionsPolicyDefaultEnabled, and LocalNetworkAccessIpAddressSpaceOverrides).

    Tracking bug #455486148 | ChromeStatus.com entry | Spec

    Privacy and security

    Ask before HTTP on by default

    Chrome prompts users by default when they connect to a site over an insecure (http) connection. Administrators can control this default behavior using the HttpsOnlyMode enterprise policy.

    ChromeStatus.com entry

    Secure Payment Confirmation: Locale validation

    Updates the Secure Payment Confirmation locale data field to return a NotSupportedError DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation dialog. If the field isn't set or is empty, this validation is skipped. This helps you match the language of the data supplied to Secure Payment Confirmation with the dialog.

    Tracking bug #535278878 | ChromeStatus.com entry | Spec

    Isolated Web Apps (IWA)

    Window Shape API

    The Window Shape API lets Isolated Web Apps on an allowlist on ChromeOS define a custom window shape. By supporting non-rectangular and non-contiguous window layouts, you can create widgets, floating panels, and overlays that match the appearance of native applications. The window.setShape() API requires an unframed display mode window and the window-management permission. Administrators can manage this feature with the DefaultWindowManagementSetting, WindowManagementAllowedForUrls, and WindowManagementBlockedForUrls enterprise policies.

    ChromeStatus.com entry | Spec

    Origin trials

    Private Verification Tokens

    Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and other challenges. Websites issue PVTs during a regular browsing session and redeem them in private browsing mode.

    Tracking bug #500396188 | ChromeStatus.com entry

    Original source
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Sep 25, 2026
    Google logo

    Google Chrome by Google

    Chrome 154

    Google Chrome 154 brings new CSS, JavaScript, networking, privacy, and IWA features, including scroll-marker-group modes, text-decoration-inset, Iterator.includes, WebSocket options, better light dismiss behavior, responsive iframes, and stricter security protections.

    Unless otherwise noted, the following changes apply to Chrome 154 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    CSS scroll-marker-group modes

    The scroll-marker-group property supports two modes that control the focus order and accessibility behavior of ::scroll-marker-group and ::scroll-marker following WAI-ARIA patterns:

    • links (default): The generated ::scroll-marker-group operates like a navigation list (navigation role), and ::scroll-marker elements act as standard links (link role). All ::scroll-marker elements are sequential tab stops. Activating a link marker moves focus to the target element.
    • tabs: The generated ::scroll-marker-group operates like a tablist (tablist role), ::scroll-marker elements take on the tab role, and originating elements get the tabpanel role. Only the active ::scroll-marker acts as a tab stop, and users navigate between markers with arrow keys. Content from inactive tabs is hidden from the accessibility tree, and focus stays on the marker when activated.

    CSS text-decoration-inset

    The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond text run edges. It supports auto, length, and percentage values, including one-value and two-value syntax for setting the start and end offsets. This lets you adjust decoration spacing and create reveal effects with native text decorations instead of background gradients or additional elements.

    Expose CSSStyleValue hierarchy to Worker contexts

    The CSS Typed OM specification exposes the CSSStyleValue hierarchy to worker global scopes ([Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]). Previously, Blink only exposed CSSStyleValue, CSSKeywordValue, CSSNumericValue, CSSUnitValue, and CSSUnparsedValue to Window and worklets. Chrome 154 exposes these constructors in Worker contexts, aligning with the specification and other browser engines.

    FontFace width attribute and font-width descriptor

    Exposes the width attribute on FontFace and the @font-face font-width descriptor as aliases for stretch and font-stretch. This aligns Chromium with the updated CSS Font Loading and CSS Fonts 4 specifications. You can inspect or initialize font face widths using FontFace.width and CSS font-width interchangeably with stretch and font-stretch.

    Light dismiss improvements for popovers and dialogs

    Improves and simplifies light dismiss behavior for popovers and dialogs. Light dismiss closes a popover or dialog when a user clicks outside of it. With this update, the browser uses click events instead of a combination of pointerdown and pointerup events to trigger light dismiss, ensuring that scrolling gestures on touchscreens and right-clicks no longer close popovers or dialogs unintentionally.

    Responsively-sized

    Lets sites opt into responsive sizing for iframes. This sizes the element in the parent document to the embedded document's layout overflow sizing, avoiding scrolling in the child document.

    JavaScript

    Iterator includes

    Implements the TC39 proposal for Iterator.prototype.includes(), letting you check whether an iterator yields a given value, analogous to Array.prototype.includes().

    Network and connectivity

    Add options bag to WebSocket constructor

    Adds support for passing an options dictionary (WebSocketInit) as the second argument to the WebSocket constructor. The options dictionary supports a protocols option, letting you specify subprotocols (mirroring the existing protocols argument), and serves as an extension point for future options.

    Support targetAddressSpace option for WebSockets

    Adds support for passing a targetAddressSpace option in the WebSocket constructor (new WebSocket("ws://local-server.example", { targetAddressSpace: "local" })). This lets you specify that a WebSocket connection to a public hostname should be treated as going to a "local" or "loopback" destination, matching existing support in the Fetch API. This provides a way to bypass mixed content restrictions when connecting to local servers that don't yet support HTTPS, provided the user grants local network permission and the hostname resolves to a local IP address.

    Fetch API: Forward reason from AbortController to fetch Response

    Exposes the abort reason, if one is provided, to the methods of the Response object and its ReadableStream, rather than only the fetch promise. This aligns Chrome with the Fetch standard by exposing the developer-supplied abort reason consistently.

    CORS enforcement for Background Fetch

    The Background Fetch API enforces Cross-Origin Resource Sharing (CORS). This aligns Chromium's implementation with the Background Fetch specification and ensures that Background Fetch requests are subject to the same security policies as regular fetch() requests, preventing sites from bypassing CORS and other security policy checks.

    Local Network Access restrictions for Background Fetch

    Background Fetch requests require that the service worker's origin has the necessary Local Network Access (LNA) permission to send requests to local or loopback servers. This aligns Chromium with the Background Fetch specification and prevents sites from bypassing LNA checks by using Background Fetch instead of regular fetch(). Enterprises can manage this behavior using existing LNA enterprise policies (LocalNetworkAccessRestrictionsTemporaryOptOut, LocalNetworkAccessAllowedForUrls, LoopbackNetworkAllowedForUrls, LocalNetworkAccessPermissionsPolicyDefaultEnabled, and LocalNetworkAccessIpAddressSpaceOverrides).

    Privacy and security

    Ask before HTTP on by default

    Chrome prompts users by default when they connect to a site over an insecure (http) connection. Administrators can control this default behavior using the HttpsOnlyMode enterprise policy.

    Secure Payment Confirmation: Locale validation

    Updates the Secure Payment Confirmation locale data field to return a NotSupportedError DOMException if none of the language tags provided in the field match the language used by the Secure Payment Confirmation dialog. If the field isn't set or is empty, this validation is skipped. This helps you match the language of the data supplied to Secure Payment Confirmation with the dialog.

    Isolated Web Apps (IWA)

    Window Shape API

    The Window Shape API lets Isolated Web Apps on an allowlist on ChromeOS define a custom window shape. By supporting non-rectangular and non-contiguous window layouts, you can create widgets, floating panels, and overlays that match the appearance of native applications. The window.setShape() API requires an unframed display mode window and the window-management permission. Administrators can manage this feature with the DefaultWindowManagementSetting, WindowManagementAllowedForUrls, and WindowManagementBlockedForUrls enterprise policies.

    Origin trials

    Private Verification Tokens

    Private Verification Tokens (PVT) is a low-entropy mechanism that lets websites transfer the trust that users have established in regular browsing into private browsing mode, reducing user friction from CAPTCHAs and other challenges. Websites issue PVTs during a regular browsing session and redeem them in private browsing mode.

    Original source
  • Sep 22, 2026
    • Date parsed from source:
      Sep 22, 2026
    • First seen by Releasebot:
      Sep 22, 2026
    Google logo

    Google Chrome by Google

    New in Dev Tools - October 2026 Bookmark collections drop down LLM Tools

    Google Chrome releases Chrome 153 and 154 with a monthly DevTools recap packed with workflow upgrades, including stronger agent controls, ad script tracking, full soft navigation support, inactive styles, keyboard-accessible adorners, modernized device presets, and deeper memory and network debugging.

    Chrome 153 and Chrome 154 rolled out to stable over the past month, delivering a wave of developer improvements ready for your everyday workflow. This edition highlights fine-grained JavaScript execution controls in DevTools for agents, ad script tracking in the Application panel, full soft navigation support and CPU performance tier overrides in Performance, support for inactive styles and keyboard-accessible adorners in Elements, source inspection and performance trace recording in AI assistance, and modernized device presets in Device Mode.

    Note: Chrome now releases twice a month! Because of that the What's new in DevTools series switches to a monthly recap of features that landed over the past month and are now available for you to use. Let us know what you think and how we can improve this series for you on social media by posting to @ChromeDevTools on X.

    Dev Tools for agents

    The Chrome DevTools MCP server introduces new security controls, performance tuning, and memory analysis capabilities for coding agents:

    • Agent Plugins 1.0 package: Added support for the Agent Plugins 1.0 package, allowing agents to load and execute modular plugin extensions.
    • JavaScript execution controls: Configure --no-javascript-evaluation or turn off JavaScript execution tools to inspect pages without evaluating scripts, extending across navigations and initialization scripts.
    • On-demand source maps: Added an option to disable source maps and lazy-load source maps on demand, preventing high memory usage on large sites.
    • Configurable file system roots and CLI path permissions: The CLI now includes --allow-unrestricted-paths by default and supports configurable file system roots.
    • Heap snapshot inspection: Query objects directly by retained size or property name with query_heapsnapshot, view self and retained sizes for edges, and inspect memory retained by V8 execution contexts.
    • PWA automation tools: Added dedicated tools for automating Progressive Web App installation and lifecycle checks.
    • Console stack traces: Retrieve optional stack traces when listing console messages with list_console_messages.

    Learn more in the chrome-devtools-mcp repository.

    Application: Ad script tracking in the Ads section, and cookie flag editing

    Following the introduction of four experimental ad metrics for the Chrome User Experience Report (CrUX), this new sub-panel is a centralized location to debug and optimize page-wide ad-related information. This includes:

    • A dashboard for the new experimental metrics: Viewport ad density, Viewport ad count, Total CPU usage by ads, Total network usage by ads.
    • Segmentation of CPU and network usage by ads elements
    • A table of ads scripts in the main frame.
    • A toggle that highlights ads on the page.

    Learn more about the new ad metrics in our documentation.

    Performance: Full soft navigation support, CPU performance tier overrides, and extension track search

    The Performance panel offers end-to-end soft navigation measurement, hardware calibration overrides, and deeper trace search:

    • Full soft navigation support: Following the introduction of soft navigation support in Live Metrics and trace views in Chrome 152, soft navigation analysis is now available in Insights, completing full end-to-end support for measuring soft navigations in the Performance panel.
    • CPU performance tier override over CDP: DevTools now supports configuring, calculating, and dispatching calibrated CPU performance tier overrides over Chrome DevTools Protocol (Emulation.setCPUPerformanceOverride), enabling reproducible performance testing across hardware tiers.
    • Extension track search in flame chart: Pressing Ctrl+F in the Performance panel flame chart now matches entries in custom tracks registered using the Extensibility API, searching their tooltip text, properties, and user details.
    • CPU profile thread visualization: The Performance panel flame chart now renders threads that contain only CPU profile samples, ensuring background executions such as WebAssembly threads appear in timeline views.

    Elements: Inactive styles, keyboard-accessible adorners, and tree outline fixes

    Inspecting and authoring CSS is faster and more accessible in the Elements panel:

    • Inactive styles support: DevTools can now continue showing style rules that previously matched the selected element when they no longer apply, clearly distinguishing them with an inactive visual indicator. Enable inactive styles and configure their collapsing behavior in Settings.
    • Keyboard-accessible adorners: Interactive adorners in the DOM tree—including View Source, Starting Style, Scroll Snap, and Reveal—are now keyboard focusable and can be activated using Enter or Space.
    • Drag-and-drop reordering: Reordering DOM nodes by dragging elements in the DOM tree now functions reliably across shadow DOM boundaries, with clear drop placement indicators.
    • Smoother CSS property toggling: Toggling CSS property checkboxes in the Styles tab no longer triggers duplicate UI repaints or visual flashing.

    Device Mode: Modernized device presets grouped by form factor

    The Device Mode toolbar and Settings > Devices view organize emulated hardware into clear categories:

    • Form factor grouping: Emulated devices are now grouped into Mobile, Foldables, Tablets & Desktops, and Smart Displays.
    • Updated hardware catalog: Added modern presets—including iPhone 16, Pixel 9, Pixel 10, Galaxy Z Fold 6, iPad Pro 13", and Nest Hub Max—while retiring outdated legacy device definitions.

    Network: Edit and resend as fetch in Console, and local overrides security

    Network request inspection and debugging workflows have been streamlined and secured:

    • Edit and resend as fetch in Console: Selecting Edit and resend as fetch on any network request now automatically focuses the Console panel with the fetch() expression already pasted into the prompt, complete with parameter comments and a reference link to the original request.
    • Local overrides security hardening: The Network panel now prevents path traversal (%2E%2E) in local overrides and prohibits creating overrides on non-http(s) schemes like data:, blob:, javascript:, and about:.
    • Caret escaping in Copy as curl (cmd): Copying network requests as curl commands for Windows cmd.exe now caret-escapes parentheses and backticks, preventing command syntax errors when pasted into alternative shells.
    • Binary payload cursor synchronization: The Payload tab maintains your scroll and cursor position when switching between Hex, Base64, and UTF-8 views.

    Memory: Heap snapshot edge filtering, size sorting, and object querying

    The Memory panel provides more granular tools for analyzing heap snapshots:

    • Edge sorting and filtering: You can now filter edges in heap snapshots by a minimum retained size and filter out primitive values (null, undefined, true, false) to focus on meaningful object references. Edges can be sorted by retained size, self size, or name.
    • Direct object querying: DevTools supports querying heap snapshot objects directly by retained size threshold or property name, streamlining memory leak investigations.
    • Context retention analysis: Heap snapshots can calculate and report the aggregate memory kept alive specifically by V8 execution contexts.
    • Resilient snapshot parsing: Invalid or corrupted heap snapshot files now surface clear errors rather than causing parsing hangs.

    Accessibility improvements

    Chrome 153 and Chrome 154 include the following accessibility enhancements:

    • Elements: VoiceOver on macOS now announces "expanded" and "collapsed" state changes through a polite live region when navigating DOM tree items.
    • Issues: Resolved duplicate screen reader announcements in the Issues counter, reading a single clean summary and applying correct non-button semantics within the Issues panel.
    • Elements: Interactive adorners (View Source, Starting Style, Scroll Snap, and Reveal) are fully focusable and activatable using the keyboard.
    • Live regions: Added the AccessibilityAnnouncementRecordingView to record and debug live announcements and ariaNotify calls.
    Original source
  • Sep 15, 2026
    • Date parsed from source:
      Sep 15, 2026
    • First seen by Releasebot:
      Sep 17, 2026
    Google logo

    Google Chrome by Google

    What's New in Web GPU (Chrome 153-154)

    Google Chrome adds WGSL buffer_view and swizzle_assignment extensions, resolves WGSL feature mapping and subgroup enablement updates, and brings Dawn improvements including buffer map write extended usages, upstream C++ headers, and macOS 13+ support.

    WGSL buffer_view extension

    The WGSL language extension buffer_view allows the data of a uniform, storage, or workgroup variable to be interpreted as multiple different types. This has a wide range of utility from conventional type-punning usages to partitioning a variable into multiple logical variables.

    For safety and implementation simplicity, reinterpreted types can only be accessed using the following built-in functions:

    • bufferView() interprets memory at a specific byte offset as a pointer to type T.
    • bufferArrayView() creates a bounded array pointer with an explicit element count.
    • bufferLength() returns the byte size of the buffer.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires buffer_view; at the top of your WGSL shader code. See the following WGSL example and the intent to ship.

    [WGSL code example omitted for brevity]

    You can also check out the buffer view proposal for more details and play with the Wireframe WebGPU sample.

    WGSL swizzle_assignment extension

    In response to one of the most highly requested community features, the WGSL extension swizzle_assignment lets you write directly to vector swizzles, enabling you to update multiple components in a single statement. It drastically reduces boilerplate and improves shader readability while bringing WGSL in line with other shading languages.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires swizzle_assignment; at the top of your WGSL shader code. See the following WGSL example and the intent to ship.

    [WGSL code example omitted for brevity]

    WGSL extension updates

    The texture-formats-tier1 language extension, although supported in WGSL code, was previously not properly mapped to navigator.gpu.wgslLanguageFeatures (as texture_formats_tier1) in JavaScript. This mapping issue has now been resolved. See Chromium CL 8159562.

    The subgroups language extension is now automatically enabled when subgroup_size_control is enabled in WGSL. See issue dawn:545285663.

    Dawn updates

    The new wgpu::FeatureName::BufferMapWriteExtendedUsages experimental feature lets you create a buffer with wgpu::BufferUsage::MapWrite combined with any other wgpu::BufferUsage, except wgpu::BufferUsage::MapRead to write directly into a mappable buffer that is also GPU-usable, eliminating the staging buffer and the extra copy on Vulkan and D3D12 backends. For more information, see Buffer Map Write Extended Usages and issue dawn:386255678.

    You can now use the webgpu_cpp.h bindings on top of any webgpu.h implementation instead of being tied to Dawn's flavor by using new webgpu_upstream_cpp_headers. See webgpu-headers issue #596.

    Dawn now requires macOS 13.0 or later. See Dawn CL 334415.

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

    What's New in WebGPU

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

    Chrome 153-154 Highlights

    • WGSL buffer_view extension
    • WGSL swizzle_assignment extension
    • WGSL extension updates
    • Dawn updates
    Original source
  • Sep 15, 2026
    • Date parsed from source:
      Sep 15, 2026
    • First seen by Releasebot:
      Sep 15, 2026
    Google logo

    Google Chrome by Google

    What's New in Web GPU (Chrome 153-154)

    Google Chrome brings WGSL buffer_view and swizzle_assignment extensions, updates WGSL feature detection and subgroup handling, and adds Dawn improvements like BufferMapWriteExtendedUsages and upstream C++ headers support.

    WGSL buffer_view extension

    The WGSL language extension buffer_view allows the data of a uniform, storage, or workgroup variable to be interpreted as multiple different types. This has a wide range of utility from conventional type-punning usages to partitioning a variable into multiple logical variables.

    For safety and implementation simplicity, reinterpreted types can only be accessed using the following built-in functions:

    • bufferView() interprets memory at a specific byte offset as a pointer to type T.
    • bufferArrayView() creates a bounded array pointer with an explicit element count.
    • bufferLength() returns the byte size of the buffer.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires buffer_view; at the top of your WGSL shader code. See the following WGSL example and the intent to ship.

    You can also check out the buffer view proposal for more details and play with the Wireframe WebGPU sample.

    WGSL swizzle_assignment extension

    In response to one of the most highly requested community features, the WGSL extension swizzle_assignment lets you write directly to vector swizzles, enabling you to update multiple components in a single statement. It drastically reduces boilerplate and improves shader readability while bringing WGSL in line with other shading languages.

    This language extension can be feature-detected in JavaScript using navigator.gpu.wgslLanguageFeatures. It's recommended to use a requires-directive to signal the potential for non-portability with requires swizzle_assignment; at the top of your WGSL shader code. See the following WGSL example and the intent to ship.

    WGSL extension updates

    The texture-formats-tier1 language extension, although supported in WGSL code, was previously not properly mapped to navigator.gpu.wgslLanguageFeatures (as texture_formats_tier1) in JavaScript. This mapping issue has now been resolved. See Chromium CL 8159562.

    The subgroups language extension is now automatically enabled when subgroup_size_control is enabled in WGSL. See issue dawn:545285663.

    Dawn updates

    The new wgpu::FeatureName::BufferMapWriteExtendedUsages experimental feature lets you create a buffer with wgpu::BufferUsage::MapWrite combined with any other wgpu::BufferUsage, except wgpu::BufferUsage::MapRead to write directly into a mappable buffer that is also GPU-usable, eliminating the staging buffer and the extra copy on Vulkan and D3D12 backends. For more information, see Buffer Map Write Extended Usages and issue dawn:386255678.

    You can now use the webgpu_cpp.h bindings on top of any webgpu.h implementation instead of being tied to Dawn's flavor by using new webgpu_upstream_cpp_headers. See webgpu-headers issue #596.

    Dawn now requires macOS 13.0 or later. See Dawn CL 334415.

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

    What's New in WebGPU

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

    Chrome 153-154 Highlights:

    • WGSL buffer_view extension
    • WGSL swizzle_assignment extension
    • WGSL extension updates
    • Dawn updates
    Original source
  • Sep 8, 2026
    • Date parsed from source:
      Sep 8, 2026
    • First seen by Releasebot:
      Oct 16, 2026
    Google logo

    Google Chrome by Google

    Chrome 153

    Google Chrome 153 brings new CSS and JavaScript capabilities, camera and microphone controls, immersive audio playback, and safer Rust-based XML parsing, while beginning planned removals of several Privacy Sandbox APIs and removing non-standard _current navigations.

    Stable release date: September 8th, 2026

    Unless otherwise noted, the following changes apply to Chrome 153 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    Single-axis scroll containers

    Available in non-stable channels (Beta, Dev, and Canary).

    Extends the overflow property to support scrollable values together with clip (for example, overflow: scroll clip). This lets position: sticky be constrained by different ancestor scroll containers per axis, and gives you a way to ensure an axis using overflow: clip stays in place.

    The scroll-axis-lock property

    scroll-axis-lock is a CSS property that lets you instruct browsers not to constrain a user's scrolling gesture to one axis.

    Web browsers often lock a user's scrolling gesture to a single axis when that gesture starts with significantly more movement in one axis than in the perpendicular axis. In many cases, this behavior improves the user experience by avoiding accidental scrolls along the perpendicular axis when the user intended to scroll only one axis. However, when you want an element to always be diagonally scrollable, this locking behavior forces the user to start their gesture at an angle that doesn't trigger the locking.

    Interoperable dispatch timing for transitionrun and media query events

    Aligns Blink's dispatch timing for animation transitionrun events and media query change events with the HTML specification, making the timing interoperable with Gecko and WebKit. As per the HTML window event loop specification, transitionrun events fire at Step 3.11 even for animations created earlier in the same iteration (instead of delaying them for a later iteration). Media query change events fire at Step 3.10 before firing any pending animation events (instead of intermixing them with animation events at Step 3.11).

    DOM and HTML

    Capability elements: and

    The and capability elements are declarative, user-activated HTML controls that share the same underlying mechanism as the element, with one key distinction: they request a single capability. The element requests video capture, while the element requests audio capture. Like , they embed a browser-controlled, strictly styled UI into the page, ensuring a strong, intentional user signal (a click) before a permission prompt is triggered or a stream is started.

    The and elements provide a dedicated, semantic HTML control for these single-capability use cases. They maintain the identical security model, strict styling constraints, and built-in permission recovery path as , but offer a more tailored and ergonomic API when you don't need mixed media access.

    XML parsing in Rust for non-XSLT scenarios

    To improve browser security and protect users against memory-related vulnerabilities, Chrome 153 updates its XML parsing engine to a memory-safe Rust implementation for several common scenarios. This update eliminates potential memory corruption bugs while maintaining full compatibility with existing web standards.

    Chrome has already begun to deprecate and remove XSLT. While this process continues, the new, safer parser handles the following scenarios where no XSLT is required:

    • DOMParser Web API
    • Accessing responseXML of XMLHttpRequest
    • SVG standalone images (accessing an image.svg document directly as a top-level navigation)
    • SVG external images (embedding an SVG as an external image resource in a main document)

    JavaScript

    Iterator Join

    Adds a method to JavaScript to concatenate the contents of an iterator into a string. The join() method of Iterator instances is similar to Array.prototype.join(): it returns a string that is the concatenation of all elements produced by the iterator, separated by commas or a specified separator string.

    Joint Iteration

    Adds methods to synchronise the advancement of multiple iterators (commonly called zip) in JavaScript, including Iterator.zip() and Iterator.zipKeyed().

    Media, sensors, and input

    Immersive Audio Model and Formats (IAMF) decoding support

    Adds support for decoding and playing back the Immersive Audio Model and Formats (IAMF) container within HTML media elements through Media Source Extensions (MSE). IAMF is an open, royalty-free spatial audio format that supports channel-based, scene-based, and object-based audio presentations. Supporting this standard lets web developers deliver consistent, immersive 3D audio experiences across different devices without relying on proprietary formats or managing complex discrete audio channel routing in JavaScript.

    WebAudio: Configurable render quantum

    Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This lets you customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the hint or passing "default", or request that the browser select an optimal size by specifying "hardware".

    WebGPU: buffer_view feature

    Adds a WGSL language feature for reinterpreting data in variables. The feature lets you divide a single uniform, storage, or workgroup variable into multiple logical variables. It also lets the type of data in the variable be interpreted as multiple types within the program.

    Origin trials

    JavaScript Self-Profiling Markers

    The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type of browser activity running when the sample was taken: script, gc, style, layout, paint, or other. A trace normally shows gaps between stacks that can't be interpreted; markers let you attribute that time to browser work happening outside JavaScript, for example distinguishing script execution from style recalculation, layout, or a garbage collection pause, making slow traces easier to analyze and optimize.

    Deprecations and removals

    Deprecate and remove Protected Audience

    The Protected Audience API provides a method of interest-group advertising without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Protected Audience API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Deprecate and remove Related Website Sets (RWS)

    Related Website Sets (RWS), formerly known as First Party Sets, provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. Following Chrome's announcement that the current approach to third-party cookies will be maintained, Related Website Sets is planned for deprecation and removal.

    Deprecate and remove Shared Storage API

    The Shared Storage API is a privacy-preserving web API to enable storage that is not partitioned by first-party site. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Shared Storage API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Deprecate and remove document.requestStorageAccessFor

    The requestStorageAccessFor (rSAFor) API is an extension to the Storage Access API that lets a top-level site request access to unpartitioned ("first-party") cookies on behalf of embedded sites. Because it is only usable in Chrome to request storage access between Related Website Sets sites, it is planned for deprecation and removal along with Related Website Sets.

    Deprecate and remove Attribution Reporting API

    The Attribution Reporting API is a privacy-preserving web API designed to measure ad conversions without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Attribution Reporting API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Remove non-standard navigations targeted at _current

    Blink previously supported navigations targeted at _current. This feature is removed in Chrome 153 because it is non-standard, with minimal usage across the web.

    Original source
  • Sep 8, 2026
    • Date parsed from source:
      Sep 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Google logo

    Google Chrome by Google

    Chrome 153

    Google Chrome 153 ships broader web platform updates, including new CSS scrolling behavior, declarative camera and microphone controls, Rust-based XML parsing, JavaScript iterator helpers, IAMF audio decoding, WebAudio and WebGPU improvements, plus several Privacy Sandbox deprecations and removals.

    Unless otherwise noted, the following changes apply to Chrome 153 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    Single-axis scroll containers

    Available in non-stable channels (Beta, Dev, and Canary).

    Extends the overflow property to support scrollable values together with clip (for example, overflow: scroll clip). This lets position: sticky be constrained by different ancestor scroll containers per axis, and gives you a way to ensure an axis using overflow: clip stays in place.

    Tracking bug #440038212 | ChromeStatus.com entry | Spec

    The scroll-axis-lock property

    The scroll-axis-lock property

    scroll-axis-lock is a CSS property that lets you instruct browsers not to constrain a user's scrolling gesture to one axis.

    Web browsers often lock a user's scrolling gesture to a single axis when that gesture starts with significantly more movement in one axis than in the perpendicular axis. In many cases, this behavior improves the user experience by avoiding accidental scrolls along the perpendicular axis when the user intended to scroll only one axis. However, when you want an element to always be diagonally scrollable, this locking behavior forces the user to start their gesture at an angle that doesn't trigger the locking.

    Tracking bug #479472367 | ChromeStatus.com entry | Spec

    Interoperable dispatch timing for transitionrun and media query events

    Interoperable dispatch timing for transitionrun and media query events

    Aligns Blink's dispatch timing for animation transitionrun events and media query change events with the HTML specification, making the timing interoperable with Gecko and WebKit. As per the HTML window event loop specification, transitionrun events fire at Step 3.11 even for animations created earlier in the same iteration (instead of delaying them for a later iteration). Media query change events fire at Step 3.10 before firing any pending animation events (instead of intermixing them with animation events at Step 3.11).

    Tracking bug #397737222 | ChromeStatus.com entry | Spec

    DOM and HTML

    Capability elements: and

    Capability elements: and

    The and capability elements are declarative, user-activated HTML controls that share the same underlying mechanism as the element, with one key distinction: they request a single capability. The element requests video capture, while the element requests audio capture. Like , they embed a browser-controlled, strictly styled UI into the page, ensuring a strong, intentional user signal (a click) before a permission prompt is triggered or a stream is started.

    The and elements provide a dedicated, semantic HTML control for these single-capability use cases. They maintain the identical security model, strict styling constraints, and built-in permission recovery path as , but offer a more tailored and ergonomic API when you don't need mixed media access.

    Tracking bug #531672795 | ChromeStatus.com entry | Spec

    XML parsing in Rust for non-XSLT scenarios

    To improve browser security and protect users against memory-related vulnerabilities, Chrome 153 updates its XML parsing engine to a memory-safe Rust implementation for several common scenarios. This update eliminates potential memory corruption bugs while maintaining full compatibility with existing web standards.

    Chrome has already begun to deprecate and remove XSLT. While this process continues, the new, safer parser handles the following scenarios where no XSLT is required:

    • DOMParser Web API
    • Accessing responseXML of XMLHttpRequest
    • SVG standalone images (accessing an image.svg document directly as a top-level navigation)
    • SVG external images (embedding an SVG as an external image resource in a main document)

    Tracking bug #466303347 | ChromeStatus.com entry | Spec

    JavaScript

    Iterator Join

    Adds a method to JavaScript to concatenate the contents of an iterator into a string. The join() method of Iterator instances is similar to Array.prototype.join(): it returns a string that is the concatenation of all elements produced by the iterator, separated by commas or a specified separator string.

    Tracking bug #465715798 | ChromeStatus.com entry | Spec

    Joint Iteration

    Adds methods to synchronise the advancement of multiple iterators (commonly called zip) in JavaScript, including Iterator.zip() and Iterator.zipKeyed().

    Tracking bug #465357675 | ChromeStatus.com entry | Spec

    Media, sensors, and input

    Immersive Audio Model and Formats (IAMF) decoding support

    Adds support for decoding and playing back the Immersive Audio Model and Formats (IAMF) container within HTML media elements through Media Source Extensions (MSE). IAMF is an open, royalty-free spatial audio format that supports channel-based, scene-based, and object-based audio presentations. Supporting this standard lets web developers deliver consistent, immersive 3D audio experiences across different devices without relying on proprietary formats or managing complex discrete audio channel routing in JavaScript.

    Tracking bug #535279329 | ChromeStatus.com entry | Spec

    WebAudio: Configurable render quantum

    Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This lets you customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the hint or passing "default", or request that the browser select an optimal size by specifying "hardware".

    Tracking bug #40637820 | ChromeStatus.com entry | Spec

    WebGPU: buffer_view feature

    Adds a WGSL language feature for reinterpreting data in variables. The feature lets you divide a single uniform, storage, or workgroup variable into multiple logical variables. It also lets the type of data in the variable be interpreted as multiple types within the program.

    Tracking bug #506523198 | ChromeStatus.com entry | Spec

    Origin trials

    JavaScript Self-Profiling Markers

    The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type of browser activity running when the sample was taken: script, gc, style, layout, paint, or other. A trace normally shows gaps between stacks that can't be interpreted; markers let you attribute that time to browser work happening outside JavaScript, for example distinguishing script execution from style recalculation, layout, or a garbage collection pause, making slow traces easier to analyze and optimize.

    Origin Trial | Tracking bug #40800459 | ChromeStatus.com entry | Spec

    Deprecations and removals

    Deprecate and remove Protected Audience

    The Protected Audience API provides a method of interest-group advertising without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Protected Audience API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Deprecate and remove Related Website Sets (RWS)

    Related Website Sets (RWS), formerly known as First Party Sets, provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. Following Chrome's announcement that the current approach to third-party cookies will be maintained, Related Website Sets is planned for deprecation and removal.

    ChromeStatus.com entry | Spec

    Deprecate and remove Shared Storage API

    The Shared Storage API is a privacy-preserving web API to enable storage that is not partitioned by first-party site. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Shared Storage API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Tracking bug #462465887 | ChromeStatus.com entry | Spec

    Deprecate and remove document.requestStorageAccessFor

    Deprecate and remove document.requestStorageAccessFor

    The requestStorageAccessFor (rSAFor) API is an extension to the Storage Access API that lets a top-level site request access to unpartitioned ("first-party") cookies on behalf of embedded sites. Because it is only usable in Chrome to request storage access between Related Website Sets sites, it is planned for deprecation and removal along with Related Website Sets.

    ChromeStatus.com entry | Spec

    Deprecate and remove Attribution Reporting API

    The Attribution Reporting API is a privacy-preserving web API designed to measure ad conversions without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Attribution Reporting API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Remove non-standard navigations targeted at _current

    Remove non-standard navigations targeted at _current

    Blink previously supported navigations targeted at _current. This feature is removed in Chrome 153 because it is non-standard, with minimal usage across the web.

    Tracking bug #539212797 | ChromeStatus.com entry | Spec

    Original source
  • Sep 8, 2026
    • Date parsed from source:
      Sep 8, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Google logo

    Google Chrome by Google

    Chrome 153

    Google Chrome 153 brings new web platform features, stronger security with a Rust XML parser, richer media and WebAudio support, and updates to JavaScript, CSS, and WebGPU. It also begins deprecating several Privacy Sandbox APIs and removes a non-standard navigation behavior.

    Unless otherwise noted, the following changes apply to Chrome 153 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    Single-axis scroll containers

    Available in non-stable channels (Beta, Dev, and Canary).

    Extends the overflow property to support scrollable values together with clip (for example, overflow: scroll clip). This lets position: sticky be constrained by different ancestor scroll containers per axis, and gives you a way to ensure an axis using overflow: clip stays in place.

    Tracking bug #440038212 | ChromeStatus.com entry | Spec

    The scroll-axis-lock property

    scroll-axis-lock is a CSS property that lets you instruct browsers not to constrain a user's scrolling gesture to one axis.

    Web browsers often lock a user's scrolling gesture to a single axis when that gesture starts with significantly more movement in one axis than in the perpendicular axis. In many cases, this behavior improves the user experience by avoiding accidental scrolls along the perpendicular axis when the user intended to scroll only one axis. However, when you want an element to always be diagonally scrollable, this locking behavior forces the user to start their gesture at an angle that doesn't trigger the locking.

    Tracking bug #479472367 | ChromeStatus.com entry | Spec

    Interoperable dispatch timing for transitionrun and media query events

    Aligns Blink's dispatch timing for animation transitionrun events and media query change events with the HTML specification, making the timing interoperable with Gecko and WebKit. As per the HTML window event loop specification, transitionrun events fire at Step 3.11 even for animations created earlier in the same iteration (instead of delaying them for a later iteration). Media query change events fire at Step 3.10 before firing any pending animation events (instead of intermixing them with animation events at Step 3.11).

    Tracking bug #397737222 | ChromeStatus.com entry | Spec

    DOM and HTML

    Capability elements: and

    The and capability elements are declarative, user-activated HTML controls that share the same underlying mechanism as the element, with one key distinction: they request a single capability. The element requests video capture, while the element requests audio capture. Like , they embed a browser-controlled, strictly styled UI into the page, ensuring a strong, intentional user signal (a click) before a permission prompt is triggered or a stream is started.

    The and elements provide a dedicated, semantic HTML control for these single-capability use cases. They maintain the identical security model, strict styling constraints, and built-in permission recovery path as , but offer a more tailored and ergonomic API when you don't need mixed media access.

    Tracking bug #531672795 | ChromeStatus.com entry | Spec

    XML parsing in Rust for non-XSLT scenarios

    To improve browser security and protect users against memory-related vulnerabilities, Chrome 153 updates its XML parsing engine to a memory-safe Rust implementation for several common scenarios. This update eliminates potential memory corruption bugs while maintaining full compatibility with existing web standards.

    Chrome has already begun to deprecate and remove XSLT. While this process continues, the new, safer parser handles the following scenarios where no XSLT is required:

    • DOMParser Web API
    • Accessing responseXML of XMLHttpRequest
    • SVG standalone images (accessing an image.svg document directly as a top-level navigation)
    • SVG external images (embedding an SVG as an external image resource in a main document)

    Tracking bug #466303347 | ChromeStatus.com entry | Spec

    JavaScript

    Iterator Join

    Adds a method to JavaScript to concatenate the contents of an iterator into a string. The join() method of Iterator instances is similar to Array.prototype.join(): it returns a string that is the concatenation of all elements produced by the iterator, separated by commas or a specified separator string.

    Tracking bug #465715798 | ChromeStatus.com entry | Spec

    Joint Iteration

    Adds methods to synchronise the advancement of multiple iterators (commonly called zip) in JavaScript, including Iterator.zip() and Iterator.zipKeyed().

    Tracking bug #465357675 | ChromeStatus.com entry | Spec

    Media, sensors, and input

    Immersive Audio Model and Formats (IAMF) decoding support

    Adds support for decoding and playing back the Immersive Audio Model and Formats (IAMF) container within HTML media elements through Media Source Extensions (MSE). IAMF is an open, royalty-free spatial audio format that supports channel-based, scene-based, and object-based audio presentations. Supporting this standard lets web developers deliver consistent, immersive 3D audio experiences across different devices without relying on proprietary formats or managing complex discrete audio channel routing in JavaScript.

    Tracking bug #535279329 | ChromeStatus.com entry | Spec

    WebAudio: Configurable render quantum

    Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This lets you customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the hint or passing "default", or request that the browser select an optimal size by specifying "hardware".

    Tracking bug #40637820 | ChromeStatus.com entry | Spec

    WebGPU: buffer_view feature

    Adds a WGSL language feature for reinterpreting data in variables. The feature lets you divide a single uniform, storage, or workgroup variable into multiple logical variables. It also lets the type of data in the variable be interpreted as multiple types within the program.

    Tracking bug #506523198 | ChromeStatus.com entry | Spec

    Origin trials

    JavaScript Self-Profiling Markers

    The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type of browser activity running when the sample was taken: script, gc, style, layout, paint, or other. A trace normally shows gaps between stacks that can't be interpreted; markers let you attribute that time to browser work happening outside JavaScript, for example distinguishing script execution from style recalculation, layout, or a garbage collection pause, making slow traces easier to analyze and optimize.

    Origin Trial | Tracking bug #40800459 | ChromeStatus.com entry | Spec

    Deprecations and removals

    Deprecate and remove Protected Audience

    The Protected Audience API provides a method of interest-group advertising without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Protected Audience API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Deprecate and remove Related Website Sets (RWS)

    Related Website Sets (RWS), formerly known as First Party Sets, provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. Following Chrome's announcement that the current approach to third-party cookies will be maintained, Related Website Sets is planned for deprecation and removal.

    ChromeStatus.com entry | Spec

    Deprecate and remove Shared Storage API

    The Shared Storage API is a privacy-preserving web API to enable storage that is not partitioned by first-party site. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Shared Storage API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Tracking bug #462465887 | ChromeStatus.com entry | Spec

    Deprecate and remove document.requestStorageAccessFor

    The requestStorageAccessFor (rSAFor) API is an extension to the Storage Access API that lets a top-level site request access to unpartitioned ("first-party") cookies on behalf of embedded sites. Because it is only usable in Chrome to request storage access between Related Website Sets sites, it is planned for deprecation and removal along with Related Website Sets.

    ChromeStatus.com entry | Spec

    Deprecate and remove Attribution Reporting API

    The Attribution Reporting API is a privacy-preserving web API designed to measure ad conversions without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Attribution Reporting API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Remove non-standard navigations targeted at _current

    Blink previously supported navigations targeted at _current. This feature is removed in Chrome 153 because it is non-standard, with minimal usage across the web.

    Tracking bug #539212797 | ChromeStatus.com entry | Spec

    Original source
  • Sep 8, 2026
    • Date parsed from source:
      Sep 8, 2026
    • First seen by Releasebot:
      Sep 28, 2026
    Google logo

    Google Chrome by Google

    Chrome 153

    Google Chrome releases Chrome 153 stable with new CSS, HTML, JavaScript, media, WebAudio, and WebGPU features, plus Rust-based XML parsing for better security and planned removals across several Privacy Sandbox APIs.

    Stable release date: September 8th, 2026

    Unless otherwise noted, the following changes apply to Chrome 153 stable channel release for Android, ChromeOS, Linux, macOS, and Windows.

    CSS and UI

    Single-axis scroll containers

    Available in non-stable channels (Beta, Dev, and Canary).

    Extends the overflow property to support scrollable values together with clip (for example, overflow: scroll clip). This lets position: sticky be constrained by different ancestor scroll containers per axis, and gives you a way to ensure an axis using overflow: clip stays in place.

    Tracking bug #440038212 | ChromeStatus.com entry | Spec

    The scroll-axis-lock property

    The scroll-axis-lock property

    scroll-axis-lock is a CSS property that lets you instruct browsers not to constrain a user's scrolling gesture to one axis.

    Web browsers often lock a user's scrolling gesture to a single axis when that gesture starts with significantly more movement in one axis than in the perpendicular axis. In many cases, this behavior improves the user experience by avoiding accidental scrolls along the perpendicular axis when the user intended to scroll only one axis. However, when you want an element to always be diagonally scrollable, this locking behavior forces the user to start their gesture at an angle that doesn't trigger the locking.

    Tracking bug #479472367 | ChromeStatus.com entry | Spec

    Interoperable dispatch timing for transitionrun and media query events

    Interoperable dispatch timing for transitionrun and media query events

    Aligns Blink's dispatch timing for animation transitionrun events and media query change events with the HTML specification, making the timing interoperable with Gecko and WebKit. As per the HTML window event loop specification, transitionrun events fire at Step 3.11 even for animations created earlier in the same iteration (instead of delaying them for a later iteration). Media query change events fire at Step 3.10 before firing any pending animation events (instead of intermixing them with animation events at Step 3.11).

    Tracking bug #397737222 | ChromeStatus.com entry | Spec

    DOM and HTML

    Capability elements: and

    Capability elements: and

    The and capability elements are declarative, user-activated HTML controls that share the same underlying mechanism as the element, with one key distinction: they request a single capability. The element requests video capture, while the element requests audio capture. Like , they embed a browser-controlled, strictly styled UI into the page, ensuring a strong, intentional user signal (a click) before a permission prompt is triggered or a stream is started.

    The and elements provide a dedicated, semantic HTML control for these single-capability use cases. They maintain the identical security model, strict styling constraints, and built-in permission recovery path as , but offer a more tailored and ergonomic API when you don't need mixed media access.

    Tracking bug #531672795 | ChromeStatus.com entry | Spec

    XML parsing in Rust for non-XSLT scenarios

    To improve browser security and protect users against memory-related vulnerabilities, Chrome 153 updates its XML parsing engine to a memory-safe Rust implementation for several common scenarios. This update eliminates potential memory corruption bugs while maintaining full compatibility with existing web standards.

    Chrome has already begun to deprecate and remove XSLT. While this process continues, the new, safer parser handles the following scenarios where no XSLT is required:

    • DOMParser Web API
    • Accessing responseXML of XMLHttpRequest
    • SVG standalone images (accessing an image.svg document directly as a top-level navigation)
    • SVG external images (embedding an SVG as an external image resource in a main document)

    Tracking bug #466303347 | ChromeStatus.com entry | Spec

    JavaScript

    Iterator Join

    Adds a method to JavaScript to concatenate the contents of an iterator into a string. The join() method of Iterator instances is similar to Array.prototype.join(): it returns a string that is the concatenation of all elements produced by the iterator, separated by commas or a specified separator string.

    Tracking bug #465715798 | ChromeStatus.com entry | Spec

    Joint Iteration

    Adds methods to synchronise the advancement of multiple iterators (commonly called zip) in JavaScript, including Iterator.zip() and Iterator.zipKeyed().

    Tracking bug #465357675 | ChromeStatus.com entry | Spec

    Media, sensors, and input

    Immersive Audio Model and Formats (IAMF) decoding support

    Adds support for decoding and playing back the Immersive Audio Model and Formats (IAMF) container within HTML media elements through Media Source Extensions (MSE). IAMF is an open, royalty-free spatial audio format that supports channel-based, scene-based, and object-based audio presentations. Supporting this standard lets web developers deliver consistent, immersive 3D audio experiences across different devices without relying on proprietary formats or managing complex discrete audio channel routing in JavaScript.

    Tracking bug #535279329 | ChromeStatus.com entry | Spec

    WebAudio: Configurable render quantum

    Adds an optional renderSizeHint to AudioContext and OfflineAudioContext. This lets you customize the WebAudio render quantum size by passing a specific integer, use the default of 128 frames by omitting the hint or passing "default", or request that the browser select an optimal size by specifying "hardware".

    Tracking bug #40637820 | ChromeStatus.com entry | Spec

    WebGPU: buffer_view feature

    Adds a WGSL language feature for reinterpreting data in variables. The feature lets you divide a single uniform, storage, or workgroup variable into multiple logical variables. It also lets the type of data in the variable be interpreted as multiple types within the program.

    Tracking bug #506523198 | ChromeStatus.com entry | Spec

    Origin trials

    JavaScript Self-Profiling Markers

    The JavaScript Self-Profiling API lets a web application sample its own call stacks to measure performance on real user devices. This feature adds an optional marker field to each captured sample that identifies the type of browser activity running when the sample was taken: script, gc, style, layout, paint, or other. A trace normally shows gaps between stacks that can't be interpreted; markers let you attribute that time to browser work happening outside JavaScript, for example distinguishing script execution from style recalculation, layout, or a garbage collection pause, making slow traces easier to analyze and optimize.

    Origin Trial | Tracking bug #40800459 | ChromeStatus.com entry | Spec

    Deprecations and removals

    Deprecate and remove Protected Audience

    The Protected Audience API provides a method of interest-group advertising without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Protected Audience API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Deprecate and remove Related Website Sets (RWS)

    Related Website Sets (RWS), formerly known as First Party Sets, provides a framework for developers to declare relationships among sites, to enable limited cross-site cookie access for specific, user-facing purposes. Following Chrome's announcement that the current approach to third-party cookies will be maintained, Related Website Sets is planned for deprecation and removal.

    ChromeStatus.com entry | Spec

    Deprecate and remove Shared Storage API

    The Shared Storage API is a privacy-preserving web API to enable storage that is not partitioned by first-party site. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Shared Storage API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    Tracking bug #462465887 | ChromeStatus.com entry | Spec

    Deprecate and remove document.requestStorageAccessFor

    Deprecate and remove document.requestStorageAccessFor

    The requestStorageAccessFor (rSAFor) API is an extension to the Storage Access API that lets a top-level site request access to unpartitioned ("first-party") cookies on behalf of embedded sites. Because it is only usable in Chrome to request storage access between Related Website Sets sites, it is planned for deprecation and removal along with Related Website Sets.

    ChromeStatus.com entry | Spec

    Deprecate and remove Attribution Reporting API

    The Attribution Reporting API is a privacy-preserving web API designed to measure ad conversions without third-party cookies or user tracking across sites. Following Chrome's announcement that the current approach to third-party cookies will be maintained, the Attribution Reporting API is planned for deprecation and removal (along with related Privacy Sandbox APIs).

    ChromeStatus.com entry | Spec

    Remove non-standard navigations targeted at _current

    Remove non-standard navigations targeted at _current

    Blink previously supported navigations targeted at _current. This feature is removed in Chrome 153 because it is non-standard, with minimal usage across the web.

    Tracking bug #539212797 | ChromeStatus.com entry | Spec

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official product update announcements from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.