Edit

Microsoft Edge 156 web platform release notes (Oct. 22, 2026)

The following are the new web platform features and updates in Microsoft Edge 156, which releases on Oct. 22, 2026.

To stay up-to-date and get the latest web platform features, download a preview channel of Microsoft Edge (Beta, Dev, or Canary); go to Become a Microsoft Edge Insider.

Detailed contents:

Microsoft Edge DevTools

See What's new in Microsoft Edge DevTools.

WebView2

See:

CSS features

The following new Cascading Style Sheets (CSS) features are included in Microsoft Edge.

When using the View Transitions API, use the :navigation-source pseudo-class to style the element that initiated the navigation, such as a link, button, or form.

The :navigation-source CSS pseudo-class applies to the element that initiated the navigation throughout the navigation process.

See also:

random() function

The random() CSS function brings generative randomness to CSS, allowing you to generate a random numeric value within a specified range.

For example, you can use random() to scatter elements randomly within their container:

.dot {
  /* Position each dot randomly */
  position: absolute;
  top: random(0%, 100%);
  left: random(0%, 100%);
}

By default, each call to the random() function resolves to a new, distinct value. You can override this default behavior by passing a seed value as the function's first parameter, to control how random values are shared across properties and elements.

See also:

text-decoration-inset property

The text-decoration-inset CSS property controls how far underlines, overlines, and line-through decorations are inset from or extended beyond the start and end edges of an element's text.

text-decoration-inset supports the following types of values:

  • auto, which lets the browser determine the appropriate inset based on the element's text and surrounding context.
  • A length value, such as 20px.
  • A percentage value, such as 10%.
  • Either one or two values. The first value sets the start offset. The second value, if specified, sets the end offset.

See also:

Optional descriptors in @property rules

In a @property rule, you can omit the syntax, inherits, or initial-value descriptors. The default values make it possible to remove boilerplate code.

Omitted descriptors default to the following values:

  • syntax defaults to * (the universal syntax).
  • inherits defaults to true.
  • initial-value defaults to initial-value, which is guaranteed to be invalid. This default allows properties that are typed to use the var() function with a fallback value.

The above defaults also work when registering a custom property from JavaScript, by using CSS.registerProperty().

See also:

Single-axis scroll containers

The overflow CSS property now supports setting a scrollable value, such as scroll, together with a second value, clip. For example: overflow: scroll clip;

Setting overflow: scroll clip allows an element with position: sticky to be constrained by different scroll containers per axis. For example, use this to create a table that keeps both the column and row headers in view, while the user scrolls through the content.

Previously, the overflow property didn't provide a way to make a scroll container responsible for a single axis only. This affected features that depend on scroll containers, such as elements with position: sticky.

See also:

scroll-snap-type: pair to snap to a single element

The scroll-snap-type CSS property now supports the pair value.

.scroller {
  scroll-snap-type: pair mandatory;
}

The pair value treats scroll snapping along the x and y axes as a pair. Instead of independently picking a snap target along the x axis, and a snap target along the y axis, snapping selects a single element in both axes.

See also:

Web APIs

The following new Web API features are included in Microsoft Edge.

Failed module imports can be retried

You can now retry failed module imports, for example after a network failure.

Previously, a failure to import a module was cached, and retrying importing the same module returned the same failure.

The module loading behavior now enables failed module imports to be manually retried. This includes:

  • Dynamic imports, by using the import() function.
  • Dynamically inserting a <script src="..." type="module"> element.
  • Any static import, using the import statement, when present in either of the above contexts.

See also:

Compression dictionary transport Updates

When fetching a compression dictionary via a <link rel="compression-dictionary"> element, Microsoft Edge now:

  • Uses compression-dictionary as a request destination.
  • Properly sets the values for the request mode, credentials, referrer, and referrerpolicy.
  • Takes into account the crossorigin and referrer attributes that are set on the <link rel="compression-dictionary"> element.

See also:

IndexedDB: SQLite backend

For new data stores, Microsoft Edge now uses SQLite instead of the IndexedDB API, as the underlying storage engine on the backend.

The IndexedDB API itself remains unchanged; only the underlying storage engine has been changed.

This change is expected to improve reliability and performance for sites that use the IndexedDB API.

In a future phase, existing data stores will be migrated from using LevelDB stores to SQLite stores.

See also:

WebGPU: fragment depth

In WGSL, you can now provide a less or greater modifier to @builtin(frag_depth).

Previously, @builtin(frag_depth) could potentially negatively impact performance, due to disabling the early-Z optimizations on a draw call.

The new modifiers allow explicitly setting the buffer mode, and allow the early-Z optimizations to be applied.

See also:

WebRTC Diagnostic Logging API

The WebRTC Diagnostic Logging API allows you to trigger the collection of WebRTC diagnostic data, so that the data can be used for local debugging.

If the user authorizes sharing the diagnostic data with the browser vendor, the API allows this sharing. This provides you with information that can help fix bugs in the browser, or otherwise improve the browser.

WebRTC applications often encounter complex connectivity or media quality issues that are difficult to reproduce in local environments. The WebRTC Diagnostic Logging API can help debug these issues.

See also:

WebTransport headers and responseHeaders

When calling the WebTransport() constructor, the headers option allows you to pass custom HTTP request headers to the server during the initial CONNECT handshake.

The responseHeaders property on the WebTransport object instance allows you to inspect the HTTP response headers that are sent by the server after the initial CONNECT handshake.

These additions to the WebTransport API allow you to:

  • Supply metadata, authentication tokens, and custom parameters during the initial CONNECT handshake.
  • Access server-provided headers, after the connection is established.

This change addresses several technical limitations in authentication, routing, and capability negotiation.

Without custom headers, you must either:

  • Pass authentication tokens in URL query strings, which exposes credentials in server logs and telemetry.
  • Authenticate over an initial data stream, which adds an additional round trip before the connection is usable.

Furthermore, API gateways and reverse proxies typically inspect HTTP headers at the CONNECT layer. Without custom headers, these intermediaries cannot authorize or route WebTransport sessions via existing pipelines, forcing servers to accept connections before verifying credentials.

See also:

Origin trials

The following are origin trials for new experimental APIs that are available in Microsoft Edge.

Origin trials let you try experimental APIs on your own live website for a limited time. To learn more about origin trials, see Use origin trials in Microsoft Edge.

For the full list of available origin trials, see Microsoft Edge Origin Trials.

Name Description Register
CPU Performance API Exposes information about the user's device capabilities, for use with the Compute Pressure API. Register
HTML in canvas Enables rendering HTML in a canvas by using new drawing methods and the paint event. Register
<usermedia> HTML element A browser-controlled HTML element for requesting camera or microphone access, replacing JavaScript-based permission requests. Register
WebAssembly Custom Descriptors V2 Stores data that's associated with source-level types more efficiently, in custom descriptor objects. Register
PrefetchAndPrerenderActivationBeacon Allows Edge to reliably report an activation beacon when a prefetch or prerendered page is activated. Register
WebRTC Data Channel: SCTP Negotiation Acceleration Protocol (SNAP) SNAP reduces WebRTC data channel startup latency by embedding SCTP connection setup parameters in the SDP offer/answer exchange. Because WebRTC already uses DTLS to establish a secure channel, the separate SCTP handshake can be avoided, saving up to two network round trips and enabling faster data channel establishment. Register
Gamepad raw input event Instead of relying on frequent polling via navigator.getGamepads(), webpages can listen for gamepadrawinputchanged events. These events are fired whenever changes are detected between input frames from the same device. Register
Control viewport heuristics in Speculation Rules API Lets you control the viewport heuristics that are used by speculation rules, to determine if different heuristics parameters give you better results than the default ones. Register
Autofill Event Detects when browser autofill updates form controls, for adapting custom UI and validation. Register
Speculative Load measurement performance.speculations exposes data about used and unused preloads, prefetches, and prerenders. This helps you measure the effectiveness of speculative loading strategies and optimize performance-versus-cost tradeoffs. Register
Prompt API sampling parameters The topK and temperature sampling parameters let you optimize model behavior per language-model session. Register
prerender_until_script Speculation Rules API action A Speculation Rules API action that prerenders a page, but switches to prefetching when a script executes. Register
JS Self-Profiling Markers Extends the JS Self-Profiling API with sample markers such as script, gc, style, layout, and paint. These markers identify the activity that the browser was doing at capture time. Register
Email Verification Protocol Enables websites to verify email ownership by using cryptographic tokens that are issued by email providers. This reduces reliance on email one-time passcodes (OTPs), and streamlines sign-up, sign-in, and recovery flows. Register
Declarative Performance Observer API Uses HTTP response headers to prove a reliable browser-managed telemetry system that reports performance metrics for the site, from navigation initiation to page termination. Register
WebMCP Enables your site to register tools for an in-browser agent to complete tasks on behalf of a user. Register

Note

Portions of this page are modifications based on work created and shared by Chromium.org and used according to terms described in the Creative Commons Attribution 4.0 International License.