|
| 1 | +--- |
| 2 | +title: Microsoft Edge 134 web platform release notes (Mar. 2025) |
| 3 | +description: Microsoft Edge 134 web platform release notes (Mar. 2025) |
| 4 | +author: MSEdgeTeam |
| 5 | +ms.author: msedgedevrel |
| 6 | +ms.topic: conceptual |
| 7 | +ms.service: microsoft-edge |
| 8 | +ms.date: 03/06/2025 |
| 9 | +--- |
| 10 | +# Microsoft Edge 134 web platform release notes (Mar. 2025) |
| 11 | + |
| 12 | +The following are the new web platform features and updates in Microsoft Edge 134, which releases on March 6, 2025. |
| 13 | + |
| 14 | +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](https://aka.ms/microsoftedge). |
| 15 | + |
| 16 | +**Detailed contents:** |
| 17 | + |
| 18 | +* [Edge DevTools](#edge-devtools) |
| 19 | +* [WebView2](#webview2) |
| 20 | +* [Web platform features](#web-platform-features) |
| 21 | + * [Enabled features](#enabled-features) |
| 22 | + * [Attribution Reporting: Remove aggregatable report limit when trigger context ID is non-null](#attribution-reporting-remove-aggregatable-report-limit-when-trigger-context-id-is-non-null) |
| 23 | + * [CSS Highlight Inheritance](#css-highlight-inheritance) |
| 24 | + * [CSS dynamic-range-limit property](#css-dynamic-range-limit-property) |
| 25 | + * [Customizable `<select>` Element](#customizable-select-element) |
| 26 | + * [Dialog light dismiss](#dialog-light-dismiss) |
| 27 | + * [`application-title` meta tag for installed web apps](#application-title-meta-tag-for-installed-web-apps) |
| 28 | + * [Document-Policy: expect-no-linked-resources](#document-policy-expect-no-linked-resources) |
| 29 | + * [Explicit resource management](#explicit-resource-management) |
| 30 | + * [Extend the `console.timeStamp` API to support measurements and presentation options](#extend-the-consoletimestamp-api-to-support-measurements-and-presentation-options) |
| 31 | + * [Offscreen canvas `getContextAttributes`](#offscreen-canvas-getcontextattributes) |
| 32 | + * [Private Aggregation API: per-context contribution limits for Shared Storage callers](#private-aggregation-api-per-context-contribution-limits-for-shared-storage-callers) |
| 33 | + * [Support `imageSmoothingQuality` in CSS Painting API](#support-imagesmoothingquality-in-css-painting-api) |
| 34 | + * [WebGPU Subgroups](#webgpu-subgroups) |
| 35 | + * [`fetchLater()`](#fetchlater) |
| 36 | + * [Support Web Locks API in Shared Storage](#support-web-locks-api-in-shared-storage) |
| 37 | +* [Origin trials](#origin-trials) |
| 38 | + * [Microsoft Edge-only origin trials](#microsoft-edge-only-origin-trials) |
| 39 | + * [Digital Goods API](#digital-goods-api) |
| 40 | + * [Web App `LocalFolder` Access](#web-app-localfolder-access) |
| 41 | + * [HTML+IDL handwriting attribute](#htmlidl-handwriting-attribute) |
| 42 | + * [Acquisition Info API](#acquisition-info-api) |
| 43 | + |
| 44 | + |
| 45 | +<!-- ====================================================================== --> |
| 46 | +## Edge DevTools |
| 47 | + |
| 48 | +For Edge DevTools, see [What's New in Microsoft Edge DevTools](../../devtools-guide-chromium/whats-new/whats-new.md). |
| 49 | + |
| 50 | + |
| 51 | +<!-- ====================================================================== --> |
| 52 | +## WebView2 |
| 53 | + |
| 54 | +For WebView2, see [Release Notes for the WebView2 SDK](../../webview2/release-notes/index.md). |
| 55 | + |
| 56 | + |
| 57 | +<!-- ====================================================================== --> |
| 58 | +## Web platform features |
| 59 | + |
| 60 | + |
| 61 | +<!-- ------------------------------ --> |
| 62 | +#### Enabled features |
| 63 | + |
| 64 | + |
| 65 | +<!-- ---------- --> |
| 66 | +###### Attribution reporting: remove aggregatable report limit when trigger context ID is non-null |
| 67 | + |
| 68 | +The aggregatable report limit when the trigger context ID is non-null is removed from the Attribution Reporting API. |
| 69 | + |
| 70 | +See [Attribution Reporting API](https://developer.mozilla.org/docs/Web/API/Attribution_Reporting_API) at MDN. |
| 71 | + |
| 72 | + |
| 73 | +<!-- ---------- --> |
| 74 | +###### CSS highlight inheritance |
| 75 | + |
| 76 | +With CSS highlight inheritance, the pseudo-classes such as `::selection` and `::highlight` now inherit their properties through the pseudo highlight chain, rather than the element chain. The result is a more intuitive model for inheritance of properties in highlights. |
| 77 | + |
| 78 | +When any supported property is not given a value by the cascade, its specified value is determined by inheritance from the corresponding highlight pseudo-element of its originating element's parent. |
| 79 | + |
| 80 | +See [CSS Custom Highlight API](https://developer.mozilla.org/docs/Web/API/CSS_Custom_Highlight_API) at MDN. |
| 81 | + |
| 82 | + |
| 83 | +<!-- ---------- --> |
| 84 | +###### CSS `dynamic-range-limit` property |
| 85 | + |
| 86 | +The `dynamic-range-limit` CSS property enables a page to limit the maximum brightness of HDR content. |
| 87 | + |
| 88 | +Using this property, webpages that display HDR images can limit their brightness when viewed in an image gallery, and only increase the brightness on user interaction, for example on hover. |
| 89 | + |
| 90 | + |
| 91 | +<!-- ---------- --> |
| 92 | +###### Customizable `<select>` element |
| 93 | + |
| 94 | +The customizable `<select>` element allows developers to take complete control of the rendering of the element, by adding the `appearance: base-select` CSS declaration. |
| 95 | + |
| 96 | +This feature currently relies on the `SelectParserRelaxation` flag, which changes the HTML parser to allow more tags within the `<select>` tag. Sites which include additional tags inside `<select>` which were getting removed before, such as `<span>` elements, or are including an extremely large number of `<option>` elements may be affected by `SelectParserRelaxation`. |
| 97 | + |
| 98 | +See [Customizable Select Element (Explainer)](https://open-ui.org/components/customizableselect/). |
| 99 | + |
| 100 | + |
| 101 | +<!-- ---------- --> |
| 102 | +###### `<dialog>` light dismiss |
| 103 | + |
| 104 | +This feature adds the _light dismiss_ behavior of the Popover API to `<dialog>` elements. _Light dismissing_ means closing the `<dialog>` element by clicking or tapping outside of the element. |
| 105 | + |
| 106 | +A new `closedby` attribute controls the behavior: |
| 107 | + |
| 108 | +* `<dialog closedby="none">`: No user-triggered closing of dialogs at all. |
| 109 | +* `<dialog closedby="closerequest">`: User pressing **Esc** (or another close trigger) closes the dialog. |
| 110 | +* `<dialog closedby="any">`: User clicking outside the dialog, or pressing **Esc**, closes the dialog. Similar to `popover=auto` behavior. |
| 111 | + |
| 112 | + |
| 113 | +<!-- ---------- --> |
| 114 | +###### `application-title` meta tag for installed web apps |
| 115 | + |
| 116 | +The `<meta name="application-title">` element allows developers of installed web applications to set the text that appears in the title bar of the installed application window. By default, if the `application-title` meta name is missing, the text that's contained in the HTML `<title>` element is used instead. |
| 117 | + |
| 118 | +See [Other names](https://developer.mozilla.org/docs/Web/HTML/Element/meta/name#other_names), in _Standard metadata names_, at MDN. |
| 119 | + |
| 120 | + |
| 121 | +<!-- ---------- --> |
| 122 | +###### Document-Policy: `expect-no-linked-resources` |
| 123 | + |
| 124 | +In Document-Policy, the `expect-no-linked-resources` configuration point allows a document to hint the browser to better optimize its loading sequence, such as by not using the default speculative parsing behavior. |
| 125 | + |
| 126 | +Browsers have implemented speculative parsing of HTML to speculatively fetch resources that are present in the HTML markup, to speed up page loading. For the vast majority of web pages that have resources declared in the HTML markup, the optimization is beneficial and the cost paid in determining such resources is a sound tradeoff. However, the following scenarios might result in a sub-optimal performance tradeoff vs. the explicit time spent parsing HTML for determining sub-resources to fetch: |
| 127 | + |
| 128 | +* Pages that do not have any resources declared in the HTML. |
| 129 | +* Large HTML pages with minimal or no resource loads that could explicitly control preloading resources via other preload mechanisms available. |
| 130 | + |
| 131 | +The `expect-no-linked-resources` Document-Policy hints to the browser that the browser is allowed to optimize-out the time that's spent in such sub-resource determination. |
| 132 | + |
| 133 | + |
| 134 | +<!-- ---------- --> |
| 135 | +###### Explicit resource management |
| 136 | + |
| 137 | +This feature introduces the `using` keyword to JavaScript, which allows developers to explicitly manage resources. The `using` keyword is used to define a block of code that uses a resource, and ensures that the resource is disposed of when the block is exited. This feature addresses a common pattern in software development regarding the lifetime and management of various resources (such as memory or I/O). This pattern supports resource allocation and explicitly releasing critical resources. |
| 138 | + |
| 139 | +See [ECMAScript Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management). |
| 140 | + |
| 141 | + |
| 142 | +<!-- ---------- --> |
| 143 | +###### Extend the `console.timeStamp` API to support measurements and presentation options |
| 144 | + |
| 145 | +This feature extends the `console.timeStamp()` API, in a backwards-compatible manner, to provide a high-performance method for instrumenting applications and surfacing timing data to the **Performance** tool in DevTools. |
| 146 | + |
| 147 | +Timing entries that are added by using this API can have a custom timestamp, duration, and presentation options, such as which color to use for the entry in the **Performance** tool. |
| 148 | + |
| 149 | +See also: |
| 150 | + |
| 151 | +* [console.timeStamp()](https://developer.mozilla.org/docs/Web/API/console/timeStamp) at MDN. |
| 152 | +* [Console object API Reference](../../devtools-guide-chromium/console/api.md). |
| 153 | +* [Introduction to the Performance tool](../../devtools-guide-chromium/evaluate-performance/index.md). |
| 154 | + |
| 155 | + |
| 156 | +<!-- ---------- --> |
| 157 | +###### Offscreen canvas `getContextAttributes` |
| 158 | + |
| 159 | +This feature adds the `getContextAttributes()` method from the `CanvasRenderingContext2D` interface to the `OffscreenCanvasRenderingContext2D` interface. |
| 160 | + |
| 161 | +See [CanvasRenderingContext2D: getContextAttributes() method](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/getContextAttributes) at MDN. |
| 162 | + |
| 163 | + |
| 164 | +<!-- ---------- --> |
| 165 | +###### Private Aggregation API: per-context contribution limits for Shared Storage callers |
| 166 | + |
| 167 | +Enables Shared Storage callers to customize the number of contributions per Private Aggregation report. |
| 168 | + |
| 169 | +This feature enables Shared Storage callers to configure per-context contribution limits via a new field: `maxContributions`. Callers set this field to override the default number of contributions per report — larger and smaller numbers will both be permitted. Due to padding, the size of each report's payload will be roughly proportional to the chosen number of contributions per report. |
| 170 | + |
| 171 | +See also: |
| 172 | +* [Sign up for the Ad Selection API](../ad-selection-api.md) |
| 173 | + |
| 174 | + |
| 175 | +<!-- ---------- --> |
| 176 | +###### Support `imageSmoothingQuality` in CSS Painting API |
| 177 | + |
| 178 | +This feature adds support for the `imageSmoothingQuality` attribute on the `PaintRenderingContext2D` interface. This allows you to make quality and performance tradeoffs when scaling images that were created by using the CSS Painting API. The `imageSmoothingQuality` attribute supports three options: low, medium, and high. |
| 179 | + |
| 180 | +See also: |
| 181 | +* [CSS Painting API](https://developer.mozilla.org/docs/Web/API/CSS_Painting_API) at MDN. |
| 182 | +* [CanvasRenderingContext2D: imageSmoothingQuality property](https://developer.mozilla.org/docs/Web/API/CanvasRenderingContext2D/imageSmoothingQuality) at MDN. |
| 183 | + |
| 184 | + |
| 185 | +<!-- ---------- --> |
| 186 | +###### WebGPU Subgroups |
| 187 | + |
| 188 | +The subgroups WbGPU feature allows SIMD parallelism. By using subgroups, threads within a group can perform collective operations. This provides efficient communication and data sharing among groups of invocations. These operations can be used to accelerate applications, by reducing memory overhead that's incurred by inter-invocation communication. |
| 189 | + |
| 190 | +See [WebGPU API](https://developer.mozilla.org/docs/Web/API/WebGPU_API) at MDN. |
| 191 | + |
| 192 | + |
| 193 | +<!-- ---------- --> |
| 194 | +###### `fetchLater()` |
| 195 | + |
| 196 | +The `fetchLater()` JavaScript method requests a deferred fetch. After this method is called, the network request is queued by the browser, and is then invoked either: |
| 197 | +* When the document is destroyed. |
| 198 | +* After a certain time.<!-- todo: after a specified duration? --> |
| 199 | + |
| 200 | +The method returns a `FetchLaterResult` that contains a boolean field. The value of the boolean field is updated when the deferred request has been sent. When the request is successfully sent, the response is ignored by browser, including its body and headers. |
| 201 | + |
| 202 | +See [Window: fetch() method](https://developer.mozilla.org/docs/Web/API/Window/fetch) at MDN. |
| 203 | + |
| 204 | + |
| 205 | +<!-- ---------- --> |
| 206 | +###### Support Web Locks API in Shared Storage |
| 207 | + |
| 208 | +This feature makes concurrent execution of shared storage worklets more reliable by integrating the Web Locks API into Shared Storage. |
| 209 | + |
| 210 | +* The `navigator.locks.request()` method is available to worklet environments. |
| 211 | +* All modifier methods support the option `{withLock: <resource>}`. |
| 212 | +* The `sharedStorage.batchUpdate(methods, options)` method allows multiple modifier methods to be executed atomically, by using the `withLock` option. This enables a website to maintain consistency while updating data across multiple storage keys. |
| 213 | + |
| 214 | + |
| 215 | +<!-- ====================================================================== --> |
| 216 | +## Origin trials |
| 217 | + |
| 218 | +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](../../origin-trials/index.md). To see the full list of available origin trials, see [Microsoft Edge Origin Trials](https://developer.microsoft.com/microsoft-edge/origin-trials/). |
| 219 | + |
| 220 | + |
| 221 | +<!-- ------------------------------ --> |
| 222 | +#### Microsoft Edge-only origin trials |
| 223 | + |
| 224 | + |
| 225 | +<!-- ---------- --> |
| 226 | +###### Digital Goods API |
| 227 | + |
| 228 | +Expires on March 31, 2025. |
| 229 | + |
| 230 | +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. |
| 231 | + |
| 232 | +* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/PwaDigitalGoods/explainer.md) |
| 233 | +* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Digital+Goods%20API,OriginTrialFeedback&title=%5BDigital%20Goods%20API%5D+Feedback) |
| 234 | +* [Register](https://developer.microsoft.com/microsoft-edge/origin-trials/trials/4b4a9ead-d912-4349-87b3-25e5e50b4f13) |
| 235 | + |
| 236 | + |
| 237 | +<!-- ---------- --> |
| 238 | +###### Web App `LocalFolder` Access |
| 239 | + |
| 240 | +Expires on March 31, 2025. |
| 241 | + |
| 242 | +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. |
| 243 | + |
| 244 | +* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/LocalFolder/explainer.md) |
| 245 | +* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=LocalFolder+Access,OriginTrialFeedback&title=%5BLocalFolder%20Access%5D+Feedback) |
| 246 | +* [Register](https://developer.microsoft.com/microsoft-edge/origin-trials/trials/2b21a8cd-43aa-41da-810d-fad103e699dc) |
| 247 | + |
| 248 | + |
| 249 | +<!-- ---------- --> |
| 250 | +###### HTML+IDL handwriting attribute |
| 251 | + |
| 252 | +Expires on June 14, 2025. |
| 253 | + |
| 254 | +Granular per-document and per-element control over which content should allow or disallow handwriting input. |
| 255 | + |
| 256 | +* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Handwriting/explainer.md) |
| 257 | +* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Handwriting,OriginTrialFeedback&title=%5BHandwriting%5D+Feedback) |
| 258 | +* [Register](https://developer.microsoft.com/microsoft-edge/origin-trials/trials/36b56357-0271-4e89-a091-3be27184808a) |
| 259 | + |
| 260 | + |
| 261 | +<!-- ---------- --> |
| 262 | +###### Acquisition Info API |
| 263 | + |
| 264 | +Expires on June 30, 2025. |
| 265 | + |
| 266 | +Supports 3P acquisition attribution for Progressive Web Apps (PWAs) that were acquired through an app store or directly from the browser. |
| 267 | + |
| 268 | +* [Explainer](https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/AcquisitionInfo/explainer.md) |
| 269 | +* [Feedback](https://github.com/MicrosoftEdge/MSEdgeExplainers/issues/new?labels=Acquisition+Info,OriginTrialFeedback&title=%5BAcquisition%20Info%5D+Feedback) |
| 270 | +* [Register](https://developer.microsoft.com/microsoft-edge/origin-trials/trials/4013a45f-3f48-4341-81ea-1bc13bf90c83) |
| 271 | + |
| 272 | + |
| 273 | +<!-- ====================================================================== --> |
| 274 | +> [!NOTE] |
| 275 | +> 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](https://creativecommons.org/licenses/by/4.0). |
0 commit comments