Skip to content

Commit 51b837b

Browse files
draft 133 beta relnote
1 parent be48140 commit 51b837b

1 file changed

Lines changed: 349 additions & 0 deletions

File tree

  • microsoft-edge/web-platform/release-notes
Lines changed: 349 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,349 @@
1+
---
2+
title: Edge 133 web platform release notes (Feb 2025)
3+
description: Edge 133 web platform release notes (Feb 2025)
4+
author: MSEdgeTeam
5+
ms.author: msedgedevrel
6+
ms.topic: conceptual
7+
ms.service: microsoft-edge
8+
ms.date:
9+
---
10+
# Edge 133 web platform release notes (Feb 2025)
11+
12+
13+
<!-- ====================================================================== -->
14+
## Edge DevTools
15+
16+
For Edge DevTools updates, see For Edge DevTools updates, see [What's New in Microsoft Edge DevTools](../../devtools-guide-chromium/whats-new/whats-new.md).
17+
18+
19+
<!-- ====================================================================== -->
20+
## WebView2
21+
22+
For WebView2, see [Release Notes for the WebView2 SDK](../../webview2/release-notes/index.md).
23+
24+
25+
<!-- ====================================================================== -->
26+
## Web platform features
27+
28+
29+
<!-- ------------------------------ -->
30+
#### Enabled features
31+
32+
33+
34+
###### Animation.overallProgress
35+
36+
Adds an &quot;overallProgress&quot; property to the JavaScript class Animation[1].
37+
38+
This property provides authors with a convenient and consistent representation of how far along an animation has advanced across its iterations and regardless of the nature of its timeline[2].
39+
40+
[1] https://developer.mozilla.org/en-US/docs/Web/API/Animation
41+
[2] https://developer.mozilla.org/en-US/docs/Web/API/AnimationTimeline
42+
43+
44+
###### Atomics.pause
45+
46+
Adds the Atomics.pause method to hint the CPU that the current code is executing a spinlock.
47+
48+
49+
###### CSP hash reporting for scripts
50+
51+
Complex web application often need to keep tabs of the subresources that they download, for security purposes.
52+
53+
In particular, upcoming industry standards and best practices (e.g. PCI-DSS v4) require that web applications keep an inventory of all the scripts they download and execute.
54+
55+
This feature builds on CSP and the Reporting API to report the URLs and hashes (for CORS/same-origin) of all the script resources that the document loads.
56+
57+
58+
###### CSS :open pseudo-class
59+
60+
The :open pseudo-class matches &lt;dialog&gt; and &lt;details&gt; when they are in their open state, and matches &lt;select&gt; and &lt;input&gt; when they are in modes which have a picker and the picker is showing.
61+
62+
63+
###### CSS Scroll State Container Queries
64+
65+
Use container queries to style descendants of containers based on their scroll state.
66+
67+
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:
68+
69+
- Whether a sticky positioned container is stuck to one of the edges of the scroll box (stuck)
70+
- Whether a scroll snap aligned container is currently snapped horizontally or vertically (snapped)
71+
- Whether a scroll container can be scrolled in a queried direction (scrollable)
72+
73+
A new container-type:scroll-state is introduced to allow such containers to be queried.
74+
75+
For instance:
76+
77+
#sticky {
78+
position: sticky;
79+
container-type: scroll-state;
80+
}
81+
82+
@container scroll-state(stuck: top) {
83+
#sticky-child { font-size: 75% }
84+
}
85+
86+
87+
88+
###### CSS advanced attr() function
89+
90+
Implement the augmentation to attr() specified in CSS Level 5, which allows types besides &lt;string&gt; and usage in all CSS properties (besides pseudo-element &#39;content&#39;).
91+
92+
Example:
93+
94+
&lt;style&gt;
95+
div {
96+
background-color: attr(data-foo type(&lt;color&gt;), red);
97+
}
98+
&lt;/style&gt;
99+
&lt;div data-foo=&quot;blue&quot;&gt;test&lt;/div&gt;
100+
101+
102+
103+
104+
###### CSS text-box, text-box-trim, and text-box-edge
105+
106+
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.
107+
108+
The text-box-trim property specifies the sides to trim, above or below, and the text-box-edge property specifies how the edge should be trimmed.
109+
110+
These properties allow developers to control vertical spacing precisely by using the font metrics.
111+
112+
Note that the `ideographic` and `ideographic-ink`, two values for the text-box-edge property for CJK, are deferred to future releases due to open issues currently under discussion.
113+
114+
115+
###### DOM State-Preserving Move
116+
117+
This features adds a DOM primitive (moveBefore) that allows moving elements around a DOM tree, without resetting the element&#39;s state. This function would be available on ParentNodes, like Element, Document, DocumentFragment.
118+
119+
When moving instead of removing/inserting, following state such as the following is preserved:
120+
- IFrames remain loaded
121+
- Active element remains focus
122+
- Popovers, fullscreen, modal dialogs remain open
123+
- CSS transitions and animations carry on
124+
125+
126+
127+
###### Expose attributionsrc attribute on &lt;area&gt;
128+
129+
For Attribution Reporting, the attributionsrc attribute was already unintentionally processed on &lt;area&gt; elements due to code shared with &lt;a&gt;, which intentionally supported that attribute. For completeness, we expose the attribute on &lt;area&gt; with identical syntax and semantics to &lt;a&gt; and without changing the previous processing: When an &lt;area&gt; 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.
130+
131+
132+
###### Expose coarsened cross-origin renderTime in elment timing/LCP (regardless of TAO)
133+
134+
All element-timing and LCP performance entries would have a non-zero renderTime, even if they are cross-origin without Timing-Allow-Origin. All presentation timestamps (renderTime, paint timing start time, event timing end time) will be coarsened to a 4ms multiple to mitigate the risk of reading cross-origin image information.
135+
136+
137+
###### FileSystemObserver interface
138+
139+
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&#39;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.
140+
141+
142+
###### Multiple import maps
143+
144+
Import maps currently have to load before any ES module and there can only be a single import map per document. That makes them fragile and potentially slow to use in real-life scenarios: Any module that loads before them breaks the entire app, and in apps with many modules the become a large blocking resource, as the entire map for all possible modules needs to load first.
145+
146+
This feature is to enable multiple import maps per document, by merging them in a consistent and deterministic way.
147+
148+
149+
###### Popover invoker and anchor positioning improvements
150+
151+
This chromestatus represents the following related set of changes, which were resolved in https://github.com/whatwg/html/pull/9144#issuecomment-2195095228 and landed in https://github.com/whatwg/html/pull/10728:
152+
153+
1. add an imperative way to set invoker relationships between popovers: popover.showPopover({source})
154+
2. invoker relationships create implicit anchor element references.
155+
156+
157+
158+
159+
###### Popover nested inside invoker shouldn&#39;t re-invoke it
160+
161+
In this case:
162+
163+
```
164+
&lt;button popovertarget=foo&gt;Activate
165+
&lt;div popover id=foo&gt;Clicking me shouldn&#39;t close me&lt;/div&gt;
166+
&lt;/button&gt;
167+
```
168+
169+
clicking the button properly activates the popover, however, clicking on the popover itself after that should **not** close the popover. It currently does because the popover click bubbles to the `&lt;button&gt;` and activates the invoker, which toggles the popover closed.
170+
171+
This chromestatus tracks changing the behavior so that clicking on the nested popover does not re-invoke itself.
172+
173+
{Note: this likely should have been created as a &quot;No developer-visible change&quot; chromestatus entry, but it&#39;s too late now.}
174+
175+
176+
###### Remove Chrome Welcome page triggering via initial prefs first run tabs
177+
178+
Including &quot;chrome://welcome&quot; in the &quot;first_run_tabs&quot; property of the &quot;initial_preferences&quot; file will now have no effect. This is removed because that page is redundant with the First Run Experience that triggers on desktop platforms.
179+
180+
See https://www.chromium.org/administrators/configuring-other-preferences for more context on the &quot;initial_preferences&quot; file.
181+
182+
183+
###### Resource timing: revert responseStart change and introduce firstResponseHeadersStart
184+
185+
Resource timing:
186+
- responseStart returns the first response, either early hints (interim) or final
187+
- Expose the final response headers (2xx/4xx/5xx) time as finalResponseHeadersStart.
188+
189+
190+
###### Storage Access Headers
191+
192+
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, and allow servers to activate &#39;storage-access&#39; permissions they have already been granted. Giving an alternative way to activate the &#39;storage-access&#39; permission allows usage by non-iframe resources, and can reduce latency for authenticated embeds.
193+
194+
195+
###### Support creating ClipboardItem with Promise&lt;DOMString&gt;
196+
197+
The ClipboardItem, which is the input to the async clipboard write method, now accepts string values in addition to Blobs in its constructor. ClipboardItemData can be a Blob, a string, or a Promise that resolves to either a Blob or a string.
198+
199+
200+
###### Web Authentication API: PublicKeyCredential’s getClientCapabilities() method
201+
202+
getClientCapabilities() method allows to determine which WebAuthn features are supported by the user&#39;s client. The method returns a list of supported capabilities, allowing developers to tailor authentication experiences and workflows based on the client&#39;s specific functionality.
203+
204+
205+
###### WebAssembly Memory64
206+
207+
The memory64 proposal adds support for linear WebAssembly memories with size larger than 2^32 bits. It provides no new instructions, but instead extends the existing instructions to allow 64-bit indexes for memories and tables.
208+
209+
210+
###### WebGPU: 1-component vertex formats (and unorm8x4-bgra)
211+
212+
Adds additional vertex formats not present in the initial release of WebGPU due to lack of support or old macOS versions (which are no longer supported by any browser). The 1-component vertex formats lets applications request only the necessary data when previously they had to request at least 2x more for 8 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.
213+
214+
215+
###### X25519 algorithm of the Web Cryptography API
216+
217+
The &quot;X25519&quot; algorithm provides tools to perform key agreement using the X25519 function specified in [RFC7748]. The &quot;X25519&quot; algorithm identifier can be used in the SubtleCrypto interface to access the implemented operations: generateKey, importKey, exportKey, deriveKey and deriveBits.
218+
219+
220+
221+
###### popover=hint
222+
223+
The Popover API (https://chromestatus.com/feature/5463833265045504) 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 &quot;tooltip&quot; type behaviors, have slightly different behaviors. Primarily, the difference is that `hint`s are 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 &lt;select&gt; picker is open (popover=auto) and a hover-triggered tooltip (popover=hint) is shown. That action does not close the &lt;select&gt; picker.
224+
225+
226+
<!-- ------------------------------ -->
227+
#### Deprecated and removed features
228+
229+
230+
###### Deprecate WebGPU limit maxInterStageShaderComponents
231+
232+
The maxInterStageShaderComponents limit is being removed due to a combination of factors:
233+
- Redundancy with maxInterStageShaderVariables: This limit already serves a similar purpose, controlling the amount of data passed between shader stages.
234+
- Minor Discrepancies: While there are slight differences in how the two limits are calculated, these differences are minor and can be effectively managed within the maxInterStageShaderVariables limit.
235+
- 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), they can focus on the more appropriately named and comprehensive maxInterStageShaderVariables.
236+
237+
https://github.com/gpuweb/gpuweb/pull/4783
238+
239+
The goal is to fully remove it in Chrome 135.
240+
241+
242+
243+
###### Remove &lt;link rel=prefetch&gt; five-minute rule
244+
245+
Previously, when a resource was prefetched using &lt;link rel=prefetch&gt;, we ignored its cache semantics (namely max-age and no-cache) for the first use within 5 minutes, to avoid refetching. Now, we remove this special case and use normal HTTP cache semantics.
246+
247+
This means web developers need to include appropriate caching headers (i.e. Cache-Control or Expires) to see benefits from &lt;link rel=prefetch&gt;.
248+
249+
This also affects the nonstandard &lt;link rel=prerender&gt;.
250+
251+
This fixes a bug with speculation rules prefetch, where non-2xx responses were cached. However, it does not start requiring caching headers for speculation rules prefetch, since they are intended for navigational prefetching and thus have different caching needs than the normal HTTP cache.
252+
253+
254+
255+
256+
<!-- ====================================================================== -->
257+
## Origin trials
258+
259+
The following are new experimental APIs which you try on your own live website for a limited period of time. To learn more about origin trials, see [Use origin trials in Microsoft Edge](../../origin-trials/index.md) and to see the full list of available origin trials, see [Microsoft Edge Origin Trials](https://developer.microsoft.com/microsoft-edge/origin-trials/).
260+
261+
262+
<!-- ------------------------------ -->
263+
#### Microsoft Edge only origin trials
264+
265+
266+
###### Digital Goods API
267+
268+
Expires on 3/31/2025.
269+
270+
The Digital Goods API allows web applications to get information about their digital products and their 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.
271+
272+
* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PwaDigitalGoods/explainer.md)
273+
* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Digital+Goods%20API,OriginTrialFeedback&amp;title=%5BDigital%20Goods%20API%5D+Feedback)
274+
* [Register](https://developer.microsoft.com/en-us/microsoft-edge/origin-trials/trials/4b4a9ead-d912-4349-87b3-25e5e50b4f13)
275+
276+
277+
278+
###### Web App LocalFolder Access
279+
280+
Expires on 3/31/2025.
281+
282+
Allows Microsoft Store-installed PWA&#39;s to access file content previously stored in the WinRT ApplicationData.LocalFolder folder by an earlier UWP version of the application.
283+
284+
* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/LocalFolder/explainer.md)
285+
* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=LocalFolder+Access,OriginTrialFeedback&amp;title=%5BLocalFolder%20Access%5D+Feedback)
286+
* [Register](https://developer.microsoft.com/en-us/microsoft-edge/origin-trials/trials/2b21a8cd-43aa-41da-810d-fad103e699dc)
287+
288+
289+
290+
###### HTML+IDL handwriting attribute
291+
292+
Expires on 6/14/2025.
293+
294+
Granular per-document and per-element control over which content should (dis)allow handwriting input.
295+
296+
* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Handwriting/explainer.md)
297+
* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Handwriting,OriginTrialFeedback&amp;title=%5BHandwriting%5D+Feedback)
298+
* [Register](https://developer.microsoft.com/en-us/microsoft-edge/origin-trials/trials/36b56357-0271-4e89-a091-3be27184808a)
299+
300+
301+
302+
###### Acquisition Info API
303+
304+
Expires on 6/30/2025.
305+
306+
Support 3P acquisition attribution for PWAs acquired through an app store or directly from the browser.
307+
308+
* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/AcquisitionInfo/explainer.md)
309+
* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Acquisition+Info,OriginTrialFeedback&amp;title=%5BAcquisition%20Info%5D+Feedback)
310+
* [Register](https://developer.microsoft.com/en-us/microsoft-edge/origin-trials/trials/4013a45f-3f48-4341-81ea-1bc13bf90c83)
311+
312+
313+
314+
<!-- ------------------------------ -->
315+
#### New Chromium origin trials
316+
317+
318+
###### Reference Target for Cross-Root ARIA
319+
320+
Expires on 6/10/2025.
321+
322+
The Reference Target API allows ID-based references, particularly from &lt;label&gt; elements and ARIA properties, to refer to elements inside shadow roots (frequently used in Web Components). This fills a frequently cited gap in Web Components a11y.
323+
324+
* [Explainer](https://github.com/WICG/webcomponents/blob/gh-pages/proposals/reference-target-explainer.md)
325+
* [Feedback](https://github.com/WICG/webcomponents/issues/new?title=Reference%20Target%3A%20)
326+
* [Register](https://developer.chrome.com/origintrials/#/register_trial/2164542570904944641)
327+
328+
329+
###### DisableThirdPartyStoragePartitioning3
330+
331+
Expires on 9/16/2025.
332+
333+
This is a general-purpose deprecation trial that will allow a top-level site to opt into unpartitioned storage, service workers, and communication APIs for third-party contexts embedded in its site. This will give sites more time for testing and migrating to solutions that don’t require partitioned storage.
334+
335+
* [Explainer](https://developers.google.com/privacy-sandbox/blog/storage-partitioning-deprecation-trial)
336+
* [Feedback](https://github.com/miketaylr/partitioned-storage-deprecation-trial-feedback)
337+
* [Register](https://developer.chrome.com/origintrials/#/register_trial/2885118511284224001)
338+
339+
340+
###### Background Page Freeze Opt-Out
341+
342+
Expires on 9/16/2025.
343+
344+
This trial allows a page to opt-out from background page freezing. In Chrome 133, a tab that was backgrounded for &gt;5 minutes may be frozen if it&#39;s CPU intensive and Energy Saver is active, unless opted-out. An origin trial opt-out is provided while new Web APIs to opt-out pages for specific use cases are being developed.
345+
346+
* [Explainer](https://github.com/francoisdoray/freezing-on-energy-saver/blob/main/README.md)
347+
* [Feedback](https://g-issues.chromium.org/issues/388540972)
348+
* [Register](https://developer.chrome.com/origintrials/#/register_trial/4254212798004854785)
349+

0 commit comments

Comments
 (0)