| title | description | author | ms.author | ms.topic | ms.service | ms.date |
|---|---|---|---|---|---|---|
Microsoft Edge 135 web platform release notes (Apr. 2025) |
Microsoft Edge 135 web platform release notes (Apr. 2025) |
MSEdgeTeam |
msedgedevrel |
conceptual |
microsoft-edge |
03/06/2025 |
The following are the new web platform features and updates in Microsoft Edge 135, which releases on April 3, 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
- WebView2
- Web platform features
- CSS features
- CSS carousel widget:
::columnpseudo-element - CSS carousel widget:
::scroll-markerand::scroll-marker-groupspseudo-elements - CSS carousel widget:
::scroll-button()pseudo-element - Nested pseudo-elements styling
- CSS
interactivityproperty - CSS logical overflow properties
- CSS
abs()andsign()functions - CSS anchor positioning: remembered scroll offset
- CSS
shape()function - CSS
progress()functions safe-area-max-inset-*variables
- CSS carousel widget:
- HTML features
- Web APIs
- Add MediaStreamTrack support to the Web Speech API
- Create service worker client and inherit service worker controller for iframe with
srcdoc - Dispatching click events to captured pointer
- Float16Array
- HSTS tracking prevention
sourceElementproperty forNavigateEvent- PerformanceNavigationTiming API NotRestoredReasons name change
- Observable API
- Service worker client URL now ignores
history.pushStatechanges - Timestamps for RTC Encoded Frames
- fetchLater API
- highlightsFromPoint API
- Deprecated and removed features
- CSS features
- Origin trials
See What's New in DevTools (Microsoft Edge 135).
See Release Notes for the WebView2 SDK.
The ::column CSS pseudo-element represents the individual columns in a multi-column container.
The container can be styled with a limited amount of CSS properties.
The container can be snapped to by its scrolling container, by using ::scroll-marker pseudo-elements.
The ::scroll-marker and ::scroll-markers-group pseudo-elements allow creating a set of focusable markers within a scroll container.
The set of focusable markers is used to snap the scroll container to specific positions.
The ::scroll-button() pseudo-element allows creating scroll buttons as pseudo-elements of a scroll container.
The scroll buttons are used to scroll the container in the direction of the button, when the scroll buttons are clicked.
Pseudo-elements that are nested inside other pseudo-elements can now be styled, by using ::before::marker and ::after::marker.
::column::scroll-marker is not yet supported.
The CSS interactivity property specifies whether an element and its flat tree descendants (including text runs) are inert or not.
Making an element inert affects:
- Whether the element can be focused, edited, selected, and searchable by Find-in-page.
- Whether the element is visible in the accessibility tree.
The overflow-inline and overflow-block CSS properties allow setting overflow in inline and block direction relative to the writing-mode.
- In horizontal writing-mode,
overflow-inlinemaps tooverflow-x. - In vertical writing-mode,
overflow-inlinemaps tooverflow-y.
The abs(A) function returns the absolute value of A, as the same type as the input. The return type is a <number>.
The sign(A) function returns:
-1if the numeric value of A is negative.+1if the numeric value of A is positive.0otherwise.
The return type is a <number>.
When a positioned element has a default anchor, and is tethered to this anchor at one edge, and against the original containing block at the other edge, the scroll offset will be taken into account when sizing the element.
Taking the scroll offset into account when sizing the element enables using all visible space for the anchored element (by using position-area) when the document is scrolled at a given scroll offset.
In order to avoid resizing the element every time the document is scrolled, the "remembered scroll offset" concept is used, rather than always using the current scroll offset.
The shape() CSS function allows using free-form and responsive shapes in the clip-path property.
You can define a series of verbs, equivalent to the verbs in the path() function.
You can use responsive units, such as % or vw.
You can use CSS values, such as custom properties.
The progress(), media-progress(), and container-progress() functions represent the proportional distance of a given value (the progress value) from one value (the progress start value) to another value (the progress end value).
progress()allows drawing a progress ratio from math functions.media-progress()allows drawing a progress ratio from media features.container-progress()allows drawing a progress ratio from container features.
The safe-area-max-inset-top, safe-area-max-inset-right, safe-area-max-inset-bottom, and safe-area-max-inset-left environment variables are tied to the safe area inset variables, but represent the maximum possible safe area.
Using the maximum possible safe area is useful to avoid updating the layout of a page when the safe area inset value grows.
The command and commandfor HTML attributes for <button> elements allow you to assign behavior to buttons in an accessible and declarative way, while reducing how often a JavaScript page must be used to provide interactivity.
When clicked, touched, or activated via a keypress, a button with the commandfor and command attributes dispatches a CommandEvent on the element that's referenced by commandfor, with some default behaviors, such as opening dialogs and popovers.
The <link rel="facilitated-payment" href="..."> element acts as a hint that the browser uses to notify registered payment clients about a pending push payment.
The SVGAElement interface in SVG 2.0 allows manipulating SVG <a> elements, which are similar to HTML anchor elements. This change adds support for the rel and relList attributes, to enhance security and privacy for your webpages.
This approach aligns with how HTML anchor elements work, and ensures consistency and ease of use across SVG and HTML.
The Web Speech API is a web standard API that allows you to incorporate speech recognition and synthesis into your webpages.
The Web Speech API uses the user's default microphone as the default audio input. MediaStreamTrack support allows a website to use the Web Speech API to caption other sources of audio, including remote audio tracks.
A service worker client is now created for iframes that use the srcdoc attribute. The created service worker client inherits from the service worker of the iframe's parent.
If a pointer is captured while the pointerup event is being dispatched, the click event is dispatched to the captured target, instead of being dispatched to the nearest common ancestor of pointerdown and pointerup events.
The Float16Array typed array is now supported. Number values are rounded to half-precision float-point format (IEEE FP16) when writing into a Float16Array instance.
Mitigates user tracking by third-parties via the HTTP Strict Transport Security (HSTS) cache.
This feature only allows HSTS upgrades for top-level navigations, and blocks HSTS upgrades for sub-resource requests. Blocking such an HSTS upgrade makes it infeasible for third-party sites to use the HSTS cache in order to track a user across the web.
When a page navigation is initiated by an element, such as when the user clicks a link or submits a form, the resulting NavigateEvent now has a sourceElement property that points to the initiating element.
The NotRestoredReasons API is part of the PerformanceNavigationTiming API. This change updates the names of the reasons so that they match the specification.
List of changes:
| Old name | New name |
|---|---|
extension-messaging, pending-permission-request, not-main-frame, frame-navigating, timeout, cookie-disabled, cookie-removed, printing, web-database, injected-javascript, and injected-stylesheet |
masked |
response-method-not-get |
request-method-not-get |
serviceworker-version-activation |
serviceworker-version-activated |
serviceworker-added-after-bfcache |
serviceworker-added |
serviceworker-unregistration |
serviceworker-unregistered |
unload-handler |
unload-listener |
session-restored |
null |
Observables are a popular reactive-programming paradigm to handle an asynchronous stream of push-based events. Observables can be thought of as Promises but for multiple events. Observables let you write more linear and declarative-style code and avoid nested callbacks. That is, Observables allow ergonomic event handling, by providing an Observable object that represents the asynchronous flow of events.
You can "subscribe" to this object to receive events as they come in, and call any of its operators to declaratively describe the flow of transformations through which events go. This is in contrast with the imperative version, which often requires complicated nesting with approaches such as addEventListener().
See the W3C Observable specification.
The Client.url property of a service worker, which is the URL of the initial HTML document, now ignores changes that are made by the history.pushState() method and other similar history APIs.
The following timestamps are now exposed:
- Capture timestamp: The timestamp when a frame was originally captured.
- Receive timestamp: The timestamp when a frame was received.
These timestamps are present in WebRTC-encoded frames that are transmitted via RTCPeerConnection.
This change allows video conferencing applications which use WebRTC to implement latency measurements to better understand performance.
fetchLater() is a JavaScript API to send a deferred fetch request. After the deferred fetch request has been sent, a deferred request is queued by the browser in a pending state.
The deferred fetch request is then invoked by the earliest of the following conditions:
- When the document is destroyed.
- After a user-specified time.
- When the browser decides it's time to send the request.
The API returns a FetchLaterResult that contains the activated boolean field. The activated boolean field can be updated to tell whether the deferred request has been sent. After the deferred request has been successfully sent, the response is ignored by the browser, including the webpage's body and headers.
The highlightsFromPoint() API enables your webpages to interact with CSS Custom Highlights, by detecting which highlights exist at a specific point within a document.
Getting highlights from a point can be used by a web app to manage user interactions with custom highlights, such as:
- Responding to a hover event on a highlighted region, to trigger a custom tooltip.
- Responding to a user click on a highlighted region, to trigger a right-click menu (context menu).
The deprecated navigator.xr.supportsSession property has been removed from the WebXR API.
In the WebXR specification in 2019, the navigator.xr.supportsSession property was marked as deprecated, and was replaced by the navigator.xr.isSessionSupported() method.
The maxInterStageShaderComponents limit is now removed, due to:
-
Redundancy with
maxInterStageShaderVariables, which already serves a similar purpose: controlling the amount of data that's passed between shader stages. -
Minor discrepancies: Although there are slight differences in how the two limits are calculated, these differences are minor, and can be effectively managed within the
maxInterStageShaderVariableslimit. -
Simplification: Removing
maxInterStageShaderComponentsstreamlines the shader interface, and reduces complexity of using the interface. Instead of managing two separate limits (that both apply simultaneously, but with subtle differences), you can just concentrate on the more appropriately named and comprehensivemaxInterStageShaderVariables.
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.
To see the full list of available origin trials, see Microsoft Edge Origin Trials.
Expires on March 31, 2025.
The Digital Goods API allows a web application to get information about their digital products and the user’s purchases managed by a digital store. The user agent abstracts connections to the store, and the Payment Request API is used to make purchases.
Expires on March 31, 2025.
Web App LocalFolder Access allows a Microsoft Store-installed Progressive Web App (PWA) to access file content that was previously stored in the WinRT ApplicationData.LocalFolder folder by an earlier version of the application.
Expires on June 14, 2025.
The handwriting attribute provides a per-document and per-element way to control where handwriting input, such as when using a stylus, is allowed.
Expires on June 30, 2025.
The Acquisition Info API supports 3P 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.