Microsoft Edge 133 web platform release notes (Feb. 2025)
The following are the new web platform features and updates in Microsoft Edge 133, which releases on February 6, 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
- WebView2
- Web platform features
- Enabled features
Animation.overallProgress
Atomics.pause
- CSP hash reporting for scripts
- CSS
:open
pseudo-class - CSS scroll state container queries
- CSS advanced
attr()
function - CSS
text-box
,text-box-trim
, andtext-box-edge
properties - DOM state-preserving Move
- Expose the
attributionsrc
attribute on<area>
- Expose coarsened cross-origin
renderTime
in element timing and Largest Contentful Paint (LCP) regardless of theTiming-Allow-Origin
(TAO) header - The
FileSystemObserver
interface - Multiple import maps
- Popover invoker and anchor positioning improvements
- A popover nested inside an invoker shouldn't re-invoke it
- Resource timing: revert
responseStart
change and introducefirstResponseHeadersStart
- Storage access headers
- Support creating a
ClipboardItem
withPromise<DOMString>
- Web Authentication API: the
getClientCapabilities()
method ofPublicKeyCredential
- WebAssembly memory64 proposal
- WebGPU: 1-component vertex formats (and
unorm8x4-bgra
) - X25519 algorithm of the Web Cryptography API
- popover=hint
- Deprecated and removed features
- Enabled features
- Origin trials
Edge DevTools
For Edge DevTools, see What's New in Microsoft Edge DevTools.
WebView2
For WebView2, see Release Notes for the WebView2 SDK.
Web platform features
Enabled features
Animation.overallProgress
Adds an overallProgress
property to the Animation JavaScript class.
This property provides a convenient and consistent representation of how far along an animation has advanced across its iterations and regardless of the nature of its timeline.
Atomics.pause
Adds the Atomics.pause
method, to hint to the CPU that the current code is executing a spinlock.
CSP hash reporting for scripts
Complex web applications often need to keep a record of the subresources that they download, for security purposes. In particular, upcoming industry standards and best practices (such as PCI-DSS v4) require that web applications keep an inventory of all the scripts they download and execute.
This feature builds on Content Security Policy (CSP) and the Reporting API to report the URLs and hashes of all the script resources that the document loads.
CSS :open
pseudo-class
The :open
pseudo-class matches <dialog>
and <details>
when they are in their open state, and matches <select>
and <input>
when they are in modes which have a picker and the picker is showing.
CSS scroll state container queries
Use container queries to style descendants of containers based on their scroll state.
The query container is either a scroll container, or an element affected by the scroll position of a scroll container. The following states can be queried:
stuck
: A sticky positioned container is stuck to one of the edges of the scroll box.snapped
: A scroll snap aligned container is currently snapped horizontally or vertically.scrollable
: Whether a scroll container can be scrolled in a queried direction.
A new container-type: scroll-state
lets containers to be queried.
For example:
#sticky {
position: sticky;
container-type: scroll-state;
}
@container scroll-state(stuck: top) {
#sticky-child { font-size: 75% }
}
CSS advanced attr()
function
Implement the augmentation to attr()
that's specified in CSS Level 5, which allows types besides <string>
, and allows usage in all CSS properties (besides pseudo-element content
).
Example:
<style>
div {
background-color: attr(data-foo type(<color>), red);
}
</style>
<div data-foo="blue">test</div>
CSS text-box
, text-box-trim
, and text-box-edge
properties
To achieve optical balance of text content, the text-box-trim
and text-box-edge
properties, along with the text-box
shorthand property, make finer control of vertical alignment of text possible.
The text-box-trim
property specifies the sides to trim (above or below). The text-box-edge
property specifies how the edge should be trimmed.
These properties allow you to control vertical spacing precisely, by using the font metrics.
ideographic
and ideographic-ink
, two values for the text-box-edge
property for Chinese, Japanese, and Korean (CJK) characters are deferred to a future release.
DOM state-preserving Move
This feature adds a DOM primitive (moveBefore
) that allows moving an element around in a DOM tree, without resetting the element's state. This function is available on ParentNode
nodes, such as Element
, Document
, and DocumentFragment
.
When moving an element instead of removing or inserting an element, state such as the following is preserved:
<iframe>
elements remain loaded.- The active element retains focus.
- Popovers and dialogs remain open.
- CSS transitions and animations continue to run.
Expose the attributionsrc
attribute on <area>
For Attribution Reporting, the attributionsrc
attribute was already unintentionally processed on <area>
elements, due to code shared with <a>
, which intentionally supported that attribute.
For completeness, the attribute on <area>
is exposed with identical syntax and semantics to <a>
, and without changing the previous processing. When an <area>
tag with an attributionsrc
attribute is navigated, the foreground request may register navigation sources and, if the attribute is non-empty, one or more background requests will likewise be able to register navigation sources.
Expose coarsened cross-origin renderTime
in element timing and Largest Contentful Paint (LCP) regardless of the Timing-Allow-Origin
(TAO) header
All element-timing and LCP performance entries would have a non-zero renderTime
, even if they are cross-origin without a Timing-Allow-Origin
header. All presentation timestamps (renderTime
, paint timing start time, and event timing end time) will be coarsened to a multiple of 4ms, to reduce the risk of reading cross-origin image information.
The FileSystemObserver
interface
The FileSystemObserver
interface notifies websites of changes to the file system. Sites observe changes to files and directories, to which the user has previously granted permission, in the user's local device (as specified in WICG/file-system-access
) or in the Bucket File System (as specified in whatwg/fs
), and are notified of basic change info, such as the change type.
Multiple import maps
Import maps currently must load before any ES module, and there can only be a single import map per document. That makes import maps fragile and potentially slow to use in real-life scenarios: any module that loads before import maps breaks the entire app, and in apps with many modules, import maps become a large blocking resource, because the entire map for all possible modules needs to load first.
This feature enables multiple import maps per document, by merging import maps in a consistent and deterministic way.
Popover invoker and anchor positioning improvements
This change corresponds to the following related set of changes:
- Add an imperative way to set invoker relationships between popovers:
popover.showPopover({source})
. - Invoker relationships create implicit anchor element references.
A popover nested inside an invoker shouldn't re-invoke it
Clicking on a nested popover doesn't re-invoke the same popover.
In the following example, clicking the button properly activates the popover. However, clicking on the popover itself after that should not close the popover. Previously, the popover was closed this case, because the popover click bubbled up to the <button>
and activated the invoker, which closed the popover.
<button popovertarget=foo>Activate
<div popover id=foo>Clicking me shouldn't close me</div>
</button>
Resource timing: revert responseStart
change and introduce firstResponseHeadersStart
Resource timing:
responseStart
returns the first response, either early hints (interim) or final.- The final response headers (2xx/4xx/5xx) time is exposed as
finalResponseHeadersStart
.
Storage access headers
Offers an alternate way for authenticated embeds to opt in for unpartitioned cookies. These headers indicate whether unpartitioned cookies are (or can be) included in a given network request. These headers also allow servers to activate storage-access
permissions that they've already been granted. Providing an alternative way to activate the storage-access
permission allows usage by non-iframe resources, and can reduce latency for authenticated embeds.
Support creating a ClipboardItem
with Promise<DOMString>
ClipboardItem
is the input to the async clipboard write method. The ClipboardItem
constructor now accepts string values in addition to BLOBs. ClipboardItemData
can be a BLOB; a string; or a Promise that resolves to either a BLOB or a string.
Web Authentication API: the getClientCapabilities()
method of PublicKeyCredential
The getClientCapabilities()
method enables determining which WebAuthn features are supported by the user's client. This method returns a list of supported capabilities, allowing you to tailor authentication experiences and workflows based on the client's specific functionality.
WebAssembly memory64 proposal
The memory64 proposal adds support for linear WebAssembly memories larger than 2^32 bits. This proposal provides no new instructions, but instead extends the existing instructions to allow 64-bit indexes for memories and tables.
WebGPU: 1-component vertex formats (and unorm8x4-bgra
)
Adds additional vertex formats that weren't present in the initial release of WebGPU, due to lack of support, or old macOS versions that are no longer supported by any browser. The 1-component vertex formats let the application request only the necessary data, when previously, the application had to request at least 2x more data for 8-bit and 16-bit data types. The unorm8x4-bgra
format makes it slightly more convenient to load BGRA-encoded vertex colors while keeping the same shader.
X25519 algorithm of the Web Cryptography API
The X25519 algorithm provides tools to perform key agreement by using the X25519 function that's specified in RFC7748. The X25519
algorithm identifier can be used in the SubtleCrypto
interface to access the implemented operations: generateKey
, importKey
, exportKey
, deriveKey
, and deriveBits
.
popover=hint
The Popover API specifies the behavior for two values of the popover
attribute: auto
and manual
. This feature describes a third value, popover=hint
. Hints, which are most often associated with tooltip-type behaviors, have slightly different behaviors. The main difference is that a hint
is subordinate to auto
s when opening nested stacks of popovers. So, it is possible to open an unrelated hint
popover while an existing stack of auto
popovers stays open. The canonical example is that a <select>
picker is open (popover=auto
) and a hover-triggered tooltip (popover=hint
) is shown. That action does not close the <select>
picker.
Deprecated and removed features
Deprecate WebGPU limit maxInterStageShaderComponents
The maxInterStageShaderComponents
limit is being removed, due to a combination of factors:
Redundancy with
maxInterStageShaderVariables
: This limit already serves a similar purpose: controlling the amount of data passed between shader stages.Minor discrepancies: There are slight differences in how the two limits are calculated, but these differences are minor, and can be effectively managed within the
maxInterStageShaderVariables
limit.Simplification: Removing
maxInterStageShaderComponents
streamlines the shader interface and reduces complexity for developers. Instead of managing two separate limits (that both apply simultaneously, but with subtle differences), you can focus onmaxInterStageShaderVariables
, which is more appropriately named, and comprehensive.
Remove <link rel=prefetch>
five-minute rule
Previously, when a resource was prefetched by using <link rel=prefetch>
, its cache semantics (specifically, max-age
and no-cache
) were ignored for the first use within 5 minutes, to avoid refetching. Now, this special case has been removed, and normal HTTP cache semantics are used.
This means that to benefit from <link rel=prefetch>
, you need to include appropriate caching headers (that is, Cache-Control
or Expires
).
This also affects the nonstandard <link rel=prerender>
.
This fixes a bug with speculation rules prefetch, where non-2xx responses were cached. This doesn't require caching headers for speculation rules prefetch, because such headers are intended for navigational prefetching, and thus have different caching needs than the normal HTTP cache.
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 its 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.
Allows Microsoft Store-installed Progressive Web Apps (PWAs) to access file content that was previously stored in the WinRT ApplicationData.LocalFolder
folder by an earlier, UWP version of the application.
HTML+IDL handwriting attribute
Expires on June 14, 2025.
Granular per-document and per-element control over which content should allow or disallow handwriting input.
Acquisition Info API
Expires on June 30, 2025.
Supports 3P acquisition attribution for Progressive Web Apps (PWAs) that were acquired through an app store or directly from the browser.
New Chromium origin trials
Reference Target for Cross-Root ARIA
Expires on 6/10/2025.
The Reference Target API allows ID-based references, particularly from
DisableThirdPartyStoragePartitioning3
Expires on 9/16/2025.
This is a general-purpose deprecation trial that allows a top-level site to opt into unpartitioned storage, service workers, and communication APIs, for third-party contexts that are embedded in its site. This gives sites more time for testing and migrating to solutions that don't require partitioned storage.
Background Page Freeze Opt-Out
Expires on 9/16/2025.
This trial allows a page to opt-out from background page freezing. In Chromium 133, a tab that was backgrounded for more than 5 minutes may be frozen if it is CPU-intensive and Energy Saver is active, unless opted-out. An origin trial opt-out is provided while new Web APIs are being developed, to opt-out pages for specific use cases.
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.