Edit

Share via


Microsoft Edge 141 web platform release notes (Oct. 2025)

The following are the new web platform features and updates in Microsoft Edge 141, which releases on October 2, 2025.

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:

Edge DevTools

See What's New in Microsoft Edge DevTools.

WebView2

See Release Notes for the WebView2 SDK.

Web platform features

CSS features

CSS ::search-text pseudo-element

The CSS ::search-text pseudo-element lets you style the results of the browser's find-in-page search.

This allows you to change the foreground and background colors of search results, which can be useful if the browser default colors have insufficient contrast with the page colors.

See also:

Support width and height presentational attributes on nested <svg> elements

You can now use the width and height presentational attributes on nested <svg> elements, through both SVG markup and CSS. This approach provides greater flexibility, allowing you to style SVG elements more efficiently within complex designs.

With this feature, the following two HTML code snippets now produce the same output:

<svg width="100px" height="100px">
  <svg style="width:50px;height:50px;">
    <circle cx="50px" cy="50px" r="40px" fill="green" />
  </svg>
</svg>

In the above example, the second line uses a style attribute that contains width and height values.

<svg width="100px" height="100px">
  <svg width="50px" height="50px">
    <circle cx="50px" cy="50px" r="40px" fill="green" />
  </svg>
</svg>

In the above example, the second line uses separate width and height attributes.

See also:

Web APIs

ariaNotify() API

The ariaNotify() API enables your app to directly tell a screen reader what to say when there's a non-user-initiated change in the content of a webpage. In the simplest scenario, you call ariaNotify("foo") on the document or on an element.

See also:

IndexedDB getAllRecords() method and direction option for getAll() and getAllKeys()

IndexedDB IDBObjectStore and IDBIndex objects now support the getAllRecords() method, which returns index keys, primary keys, and values for each record, in addition to supporting read operations in both directions.

The getAllRecords() method can make certain IndexedDB read operations significantly faster when compared to existing alternatives, such as using IndexedDB cursors.

This feature also introduces the direction option to the existing getAll() and getAllKeys() methods, for consistency.

See also:

The navigateEvent.intercept() method now supports a precommitHandler option that's similar to handler option.

The precommitHandler option is used to defer the commit of a navigation event, and therefore the URL update, until after the handler's promise has resolved. The precommitHandler option also allows the handler to change the navigation URL, information, status, and history push and replace behavior.

Without a precommitHandler, the navigation API immediately commits navigations, which is sometimes an issue for JavaScript routing libraries that use asynchronous same-document navigations.

See also:

windowAudio option for getDisplayMedia()

The getDisplayMedia() method now supports the windowAudio option.

The windowAudio option allows you to the give the user the ability to share audio when a window is selected for screen sharing. windowAudio can be set to exclude, system, or window.

See also:

Extended echoCancellation option for getUserMedia()

The echoCancellation option for getUserMedia() is now extended from a true and false to also support all and remote-only.

This allows you to:

  • Modify the echo cancellation behavior that's applied to audio tracks received from microphones.
  • Control how much of the user system playout is removed from the microphone signal.

In some scenarios, the only acceptable echo cancellation option is removing all user system playou​t from the microphone, such as to ensure that no privacy-sensitive playout, such as from screen readers or system notifications, is captured.

In other scenarios, you might prefer to remove the echo from RTCPeerConnections, to enable 2-way real-time communication (RTC), while still capturing the rest of the local playout.

See also:

restrictOwnAudio media track constraint

The new restrictOwnAudio media track constraint can help create cleaner screen recordings, such as when the capturing webpage itself is playing audio and you don't want that audio to be included in the capture, to avoid undesirable echo.

By default, when using getDisplayMedia() and when the system audio is captured, all audio that's played by the system is captured. If the restrictOwnAudio constraint is set, the captured system audio is filtered to exclude audio originating from the document that called getDisplayMedia().

See also:

Support for alternative fields in FedCM account selection

Phone numbers and usernames are now supported, in addition to or instead of a user's full name and email address, as identifiers for disambiguating accounts in the FedCM account selector.

These new fields are also now available for websites to affect the disclosure text.

This change makes it easier for identity providers that don't use email addresses and full names for identifying users to adopt FedCM.

See also:

Eagerness improvements in speculation rules

When the user hovers over a link for a short time, the eager value of a speculation rule's eagerness option now triggers prefetches and prerenders.

Previously, the eager value would start prefetching and prerendering as soon as possible, similar to the immediate value. The new behavior is more useful, because the eager value is now more eager than the moderate value, and less eager than the immediate value.

For details about this and other upcoming improvements, see Speculation rules eagerness improvements.

See also:

WebRTC Encoded Transform

The WebRTC Encoded Transform API allows you to process the data being sent via an RTCPeerConnection.

See also:

Strict Same-origin policy for Storage Access API

The Storage Access API now follows the Same-origin policy.

By default, using document.requestStorageAccess() in a frame only attaches cookies to the requests that are made to the iframe's origin. The CookiesAllowedForUrls policy and storage access headers can still be used to unblock cross-site cookies.

See also:

Signature-based subresource integrity

Checking for subresource integrity on a webpage can now be done by using Ed25519 signatures, in addition to using the static digests of resource content.

This gives you a mechanism to verify the provenance of resources your page depends upon, creating a technical foundation for trust in a site's dependencies. Your web server can sign responses with a Ed25519 key pair, and you then can require the browser to verify the signature using a specific public key.

See also:

Origin trials

The following are new experimental APIs which you can try 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.

Microsoft Edge-only origin trials

Web app scope extensions

Expires on August 31, 2025

scope_extensions is a web app manifest member that enables web apps to extend their scope to other origins.

Scope extensions allow web apps that rely on multiple subdomains and top-level domains to be presented as a single web app.

For example, a web app at https://contoso.com can extend its scope to the https://example.com origin by using the scope_extensions member in its web app manifest:

{
  "name": "Example app",
  "display": "standalone",
  "start_url": "/index.html",
  "scope_extensions": [
    {
      "type": "type",
      "origin": "https://example.com"
    }
  ]
}

The origins that are listed in the scope_extensions member must confirm that they are associated with the web app, by hosting a configuration file named .well-known/web-app-origin-association. The file must list the web app's origin:

{
  "https://sample-app.com/": {
    "scope": "/"
  }
}

See Handle links from other origins by using scope extensions in Handle links to a PWA.

AriaNotify API

Expires on October 14, 2025.

The AriaNotify API enables your app to directly tell a screen reader what to say when there's a non-user-initiated change in the content of a webpage. In the simplest scenario, you call ariaNotify("foo") on the document or on an element.

See Creating a more accessible web with Aria Notify.

Ad Selection API

Expires on November 30, 2025.

The Ad Selection API provides user-relevant ads on your site without using third-party cookies.

Acquisition Info API

Expires on December 18, 2025.

The Acquisition Info API supports third-party acquisition attribution for PWAs that were acquired through an app store or directly from the browser.

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.