편집

다음을 통해 공유


Microsoft Edge 135 web platform release notes (Apr. 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 an Insiders version of Microsoft Edge, such as Canary, Dev, or Beta; see 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

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.

Nested pseudo-elements styling

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.

CSS interactivity property

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.
CSS logical overflow properties

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-inline maps to overflow-x.
  • In vertical writing-mode, overflow-inline maps to overflow-y.
CSS abs() and sign() functions

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:

  • -1 if the numeric value of A is negative.
  • +1 if the numeric value of A is positive.
  • 0 otherwise.

The return type is a <number>.

CSS anchor positioning: remembered scroll offset

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.

CSS dynamic-range-limit property

The dynamic-range-limit CSS property allows limiting the maximum brightness of High Dynamic Range (HDR) content.

CSS shape() function

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.

CSS progress() functions

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.
safe-area-max-inset-* variables

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.

HTML features

command and commandfor HTML attributes

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.

Support for rel and relList attributes in SVG <a> elements

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.

Web APIs

Add MediaStreamTrack support to the Web Speech API

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.

To eliminate user browsing history leaks, HTML <a> elements are now styled as :visited only if they have been clicked from the top-level site and frame origin before. This means that Microsoft Edge now partitions visited links according to three keys:

  • Link URL.
  • Top-level site.
  • Frame origin.

By only styling links that have been clicked on this site and frame before, side-channel attacks that have been developed to obtain :visited links styling information are now obsolete.

Self-links are excluded from this; links to a site's own pages can be styled as :visited even if they have not been clicked on in this exact top-level site and frame origin before. This exemption is only enabled in top-level frames or subframes which are same-origin with the top-level frame.

Create service worker client and inherit service worker controller for iframe with srcdoc

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.

Dispatching click events to captured pointer

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.

Float16Array

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.

HSTS tracking prevention

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.

sourceElement property for NavigateEvent

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.

PerformanceNavigationTiming API NotRestoredReasons name change

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
Observable API

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.

Service worker client URL now ignores history.pushState changes

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.

Timestamps for RTC Encoded Frames

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.

Use the double type for ProgressEvent's loaded and total attributes

The loaded and total attributes of a ProgressEvent indicate the current progress. The type of these attributes is now a floating point number between 0 and 1, which aligns ProgressEvent with the default behavior of the <progress> HTML element, when the max attribute is omitted.

fetchLater API

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.

highlightsFromPoint API

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).

Deprecated and removed features

Deprecate Intl.Locale getters

The Intl.Locale API exposes information such as week data and hour cycle type of a locale.

The accessor properties of the Intl.Locale object are now deprecated, in favor of the corresponding functions, per the specification. For example, the Intl.Locale.prototype.hourCycle accessor property is deprecated in favor of the Intl.Locale.prototype.getHourCycles() function.

Remove navigator.xr.supportsSession method

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.

Remove WebGPU limit maxInterStageShaderComponents

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 maxInterStageShaderVariables limit.

  • Simplification: Removing maxInterStageShaderComponents streamlines 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 comprehensive maxInterStageShaderVariables.

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.

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

Microsoft Edge-only origin trials

Digital Goods API

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.

Web App LocalFolder Access

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.

HTML+IDL handwriting attribute

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.

Acquisition Info API

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.