<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-251",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 251 Release Notes"
}
-->

# Safari Technology Preview 251 Release Notes

Learn about the latest web technology updates in Safari Technology Preview: Accessibility, CSS, Canvas, HTML, JavaScript, Media, Navigation API, Networking, Rendering, SVG, Scrolling, Service Workers, Web API, Web Audio, Web Extensions, Web Inspector, WebCodecs, WebGPU, and WebRTC.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 251 is now [available for download](https://developer.apple.com/safari/resources/) for macOS Golden Gate and macOS Tahoe. If you already have Safari Technology Preview installed, you can update it in System Settings under General → Software Update.

This release includes WebKit changes between: [317935@main…319386@main](https://github.com/WebKit/WebKit/compare/402dc1b3bf265f5afd15d1b68374ef0885824299...82913509604940fdfe247e5da3609c6de6e44d89).

### Accessibility

#### Resolved Issues

- Fixed SVG anchors without an `href` being exposed as links. ([318186@main](https://commits.webkit.org/318186@main))  (181924326)

### CSS

#### New Features

- Added support for `@supports at-rule(...)`, which tests if a CSS at-rule is supported. ([318482@main](https://commits.webkit.org/318482@main))  (87884897)
- Added support for the `object-view-box` property. ([318981@main](https://commits.webkit.org/318981@main))  (132624217)
- Added support for `property-scoped` and `property-index-scoped` caching keywords in `random()`. ([318960@main](https://commits.webkit.org/318960@main))  (176395332)
- Added support for the `random-item()` function. ([319180@main](https://commits.webkit.org/319180@main))  (181816677)
- Added support for a comma-separated list of conditions in `@container` queries. ([318233@main](https://commits.webkit.org/318233@main))  (182249814)
- Added support for `white-space-trim` in the `white-space` shorthand. ([318486@main](https://commits.webkit.org/318486@main))  (182739052)
- Added support for external and `data:` URL `filter` references on HTML elements. ([317991@main](https://commits.webkit.org/317991@main))  (183059589)
- Added support for `HighlightRegistry.highlightsFromPoint()`. ([318758@main](https://commits.webkit.org/318758@main))  (184150480)
- Added support for `random()` in custom properties. ([319039@main](https://commits.webkit.org/319039@main))  (184715508)
- Added support for the `ident()` function. ([319049@main](https://commits.webkit.org/319049@main))  (184732904)
- Added support for the `inherit()` function. ([319062@main](https://commits.webkit.org/319062@main))  (184738624)
- Added support for the `corner-shape` property. ([319205@main](https://commits.webkit.org/319205@main))  (184950973)

#### Resolved Issues

- Fixed text overflowing a `max-width` constrained box when the page is zoomed out, by scaling the minimum font size with the zoom factor. ([318509@main](https://commits.webkit.org/318509@main))  (66569768)
- Fixed a background image not being repainted when only the URL fragment identifier changes. ([318879@main](https://commits.webkit.org/318879@main))  (105118256)
- Fixed a subgrid with a large `column-gap` overflowing a parent constrained by `max-width`. ([318009@main](https://commits.webkit.org/318009@main))  (137422489)
- Fixed nested `@scope` picking the wrong scoping roots when `<scope-start>` contains `:has(:scope ...)`. ([318711@main](https://commits.webkit.org/318711@main))  (138495467)
- Fixed outside list markers disappearing or being mispositioned around line breaks. ([318561@main](https://commits.webkit.org/318561@main))  (159277763)
- Fixed the serialization of the `size` property in `@page` when both a page size and orientation are given. ([318083@main](https://commits.webkit.org/318083@main))  (162168233)
- Fixed the computed value of `outline-offset` not being snapped as a line width. ([319236@main](https://commits.webkit.org/319236@main))  (180054053)
- Fixed a flex item’s flex base size being clamped by its own `min-width` and `max-width`. ([318264@main](https://commits.webkit.org/318264@main))  (180064739)
- Fixed `:focus-visible` being shown after calling `focus()` inside an already focused ancestor. ([318775@main](https://commits.webkit.org/318775@main))  (181570771)
- Fixed multi-column height ignoring `min-height` when it exceeds `max-height`. ([318676@main](https://commits.webkit.org/318676@main))  (182381903)
- Fixed scroll snap selecting among equally aligned snap targets in the wrong order. ([317997@main](https://commits.webkit.org/317997@main))  (182571341)
- Fixed `text-underline-offset` being mispositioned for highlighted text in vertical writing modes. ([318107@main](https://commits.webkit.org/318107@main))  (182889143)
- Fixed the serialization of an unrecognized media query to preserve the original text as closely as possible. ([318627@main](https://commits.webkit.org/318627@main))  (182958311)
- Fixed the serialization of an unrecognized media query feature name to preserve the original casing. ([318965@main](https://commits.webkit.org/318965@main))  (183065105)
- Fixed `@container` style queries evaluating root-relative lengths incorrectly. ([318144@main](https://commits.webkit.org/318144@main))  (183094796)
- Fixed the originating element of `::part()` in `@container` queries to be the element itself. ([318620@main](https://commits.webkit.org/318620@main))  (183154183)
- Fixed an anti-aliased fringe on `::highlight()` background fills in vertical writing modes. ([318177@main](https://commits.webkit.org/318177@main))  (183496114)
- Fixed the first baseline of a `wrap-reverse` flex container coming from the wrong flex line. ([318154@main](https://commits.webkit.org/318154@main))  (183516222)
- Fixed a flex line’s cross size mixing the `baseline` and `last baseline` alignment groups. ([318165@main](https://commits.webkit.org/318165@main))  (183536181)
- Fixed the `-webkit-border-image` width flag being lost when a length edge precedes a non-length edge. ([318214@main](https://commits.webkit.org/318214@main))  (183584830)
- Fixed rounding of central baselines for atomic inline elements. ([318268@main](https://commits.webkit.org/318268@main))  (183584888)
- Fixed the `block-ellipsis` of a clamped block being styled from the wrong block formatting context. ([318437@main](https://commits.webkit.org/318437@main))  (183606151)
- Fixed `::highlight()` pseudo-elements not inheriting from the parent element’s highlight. ([318779@main](https://commits.webkit.org/318779@main))  (183702060)
- Fixed `clip` on a child being ignored when determining whether an ancestor’s background is obscured. ([318636@main](https://commits.webkit.org/318636@main))  (183841775)
- Fixed `var()` not behaving as an arbitrary substitution function. ([318912@main](https://commits.webkit.org/318912@main))  (183913427)
- Fixed line-height units resolving incorrectly when the page is zoomed. ([318558@main](https://commits.webkit.org/318558@main))  (184032914)
- Fixed the computed value of `line-height` to more closely match how it was specified. ([318710@main](https://commits.webkit.org/318710@main))  (184232888)
- Fixed `font-*` properties resolving font-relative units against their own font instead of the parent element’s font metrics. ([319052@main](https://commits.webkit.org/319052@main))  (184336424)
- Fixed the `rangeStart` and `rangeEnd` animation attributes accepting length values that are not computationally independent when set from script. ([318815@main](https://commits.webkit.org/318815@main))  (184363719)
- Fixed `-webkit-text-stroke` not applying to highlighted text. ([318976@main](https://commits.webkit.org/318976@main))  (184375039)
- Fixed the `ViewTimelineOptions` `inset` member accepting length values that are not computationally independent when set from script. ([318883@main](https://commits.webkit.org/318883@main))  (184504829)
- Fixed `::highlight()` not repainting after a CSS rule change. ([319169@main](https://commits.webkit.org/319169@main))  (184643272)
- Fixed `::highlight()` not repainting when a highlight’s range is changed with `CSS.highlights.set()`. ([319154@main](https://commits.webkit.org/319154@main))  (184672580)
- Fixed a `@function` body not inheriting computed custom property values from the calling context. ([319031@main](https://commits.webkit.org/319031@main))  (184701762)
- Fixed arguments that invoke a `@function` being treated as a cycle. ([319034@main](https://commits.webkit.org/319034@main))  (184711017)
- Fixed the `random()` caching key not including the custom property name. ([319096@main](https://commits.webkit.org/319096@main))  (184722866)
- Fixed an `auto` `<random-key>` not being element-scoped, so every element shared the same item. ([319153@main](https://commits.webkit.org/319153@main))  (184845561)

#### Deprecations

- Removed the non-standard `percentage` value from `-webkit-line-clamp`. ([318858@main](https://commits.webkit.org/318858@main))  (159808285)
- Removed `margin-trim` support from flex containers, following the CSSWG resolution limiting it to block and multi-column containers. ([318654@main](https://commits.webkit.org/318654@main))  (184151309)
- Removed `margin-trim` support from grid containers, following the CSSWG resolution limiting it to block and multi-column containers. ([318690@main](https://commits.webkit.org/318690@main))  (184164505)

### Canvas

#### Resolved Issues

- Fixed `ctx.font` not re-resolving relative font sizes when set to the same string after the canvas element’s style changed. ([318753@main](https://commits.webkit.org/318753@main))  (184194378)
- Fixed the canvas `font` keywords `larger` and `smaller` scaling by 1.02 instead of approximately 1.2. ([318798@main](https://commits.webkit.org/318798@main))  (184312611)

### HTML

#### New Features

- Added support for `popover=hint`. ([318958@main](https://commits.webkit.org/318958@main))  (184548373)

#### Resolved Issues

- Fixed a color input with `display: none` not opening when its `<label>` is clicked. ([318723@main](https://commits.webkit.org/318723@main))  (100476630)
- Fixed `createContextualFragment()` leaving nested `<head>` and `<body>` elements behind when stripping a stray `<html>` element. ([317962@main](https://commits.webkit.org/317962@main))  (183163523)
- Fixed a `<label>` default action triggering when clicked interactive content removes itself. ([318827@main](https://commits.webkit.org/318827@main))  (184381262)
- Fixed clicking an element nested inside a checkbox or radio input wrongly activating the ancestor input. ([318853@main](https://commits.webkit.org/318853@main))  (184441087)
- Fixed focus not being restored to the correct element when a `<dialog>` is closed. ([319173@main](https://commits.webkit.org/319173@main))  (184751412)
- Fixed confirming an IME composition removing its containing positioned element. ([319167@main](https://commits.webkit.org/319167@main))  (184918934)

### JavaScript

#### New Features

- Added support for `Iterator.prototype.includes()`. ([318184@main](https://commits.webkit.org/318184@main))  (173846280)
- Added support for the RegExp Buffer Boundaries proposal. ([318415@main](https://commits.webkit.org/318415@main))  (178287060)
- Added support for era and `monthCode` fields in `Intl` and `Temporal` calendars. ([318428@main](https://commits.webkit.org/318428@main))  (182753821)
- Added support for the `traceStack` option on `WebAssembly.Exception` and for `Exception.stack`. ([318397@main](https://commits.webkit.org/318397@main))  (183342491)
- Added support for WebAssembly Memory64. ([318257@main](https://commits.webkit.org/318257@main))  (183543404)
- Added support for deferred module evaluation with `import defer`. ([318481@main](https://commits.webkit.org/318481@main))  (183892394)
- Added support for `Iterator.prototype.join()`. ([318502@main](https://commits.webkit.org/318502@main))  (183892495)
- Added support for iterator chunking, including `Iterator.prototype.chunks()` and `Iterator.prototype.windows()`. ([318479@main](https://commits.webkit.org/318479@main))  (183892687)
- Added support for the joint iteration proposal, including `Iterator.zip()` and `Iterator.zipKeyed()`. ([318477@main](https://commits.webkit.org/318477@main))  (183892768)
- Added support for importing text modules with an import attribute of `type: text`. ([318950@main](https://commits.webkit.org/318950@main))  (184443879)

#### Resolved Issues

- Fixed a regular expression with `^` inside a group that can match empty failing to anchor the pattern. ([317981@main](https://commits.webkit.org/317981@main))  (183300022)
- Fixed incorrect matching for sticky regular expressions wrapped in `.*`. ([317983@main](https://commits.webkit.org/317983@main))  (183300106)
- Fixed a `JSON.stringify()` regression in how `toJSON` is checked. ([318072@main](https://commits.webkit.org/318072@main))  (183400665)
- Fixed `Iterator.zip` to use null-prototype objects for its options object and synthetic underlying iterator. ([318061@main](https://commits.webkit.org/318061@main))  (183418070)
- Fixed incorrect matching for regular expressions containing a negative lookahead. ([318234@main](https://commits.webkit.org/318234@main))  (183601444)
- Fixed module resolution ignoring the import attribute type in a module request. ([318292@main](https://commits.webkit.org/318292@main))  (183700464)
- Fixed the `Array.from()` fast path ignoring a `Symbol.iterator` override on `set.keys()` and `set.values()`. ([318374@main](https://commits.webkit.org/318374@main))  (183801651)
- Fixed stale character widths produced by `v` mode class set operations in regular expressions. ([318416@main](https://commits.webkit.org/318416@main))  (183879621)
- Fixed incorrect matching for regular expressions containing a lookbehind. ([318418@main](https://commits.webkit.org/318418@main))  (183881829)
- Fixed `Temporal.PlainDate` construction with years outside the supported range. ([318504@main](https://commits.webkit.org/318504@main))  (183960408)
- Fixed a `TypeError` regression when passing `monthCode` to `Temporal` calendar methods. ([318566@main](https://commits.webkit.org/318566@main))  (183980712)
- Fixed the order in which `Temporal` constructors read `newTarget.prototype`. ([318635@main](https://commits.webkit.org/318635@main))  (184072358)
- Fixed the `String.prototype.localeCompare()` collator cache going stale after a language change. ([318616@main](https://commits.webkit.org/318616@main))  (184096794)
- Fixed `Temporal` skipping the epoch range check when resolving a time inside a daylight saving time gap. ([318663@main](https://commits.webkit.org/318663@main))  (184140083)
- Fixed `Temporal` time zone identifier parsing to match the specification’s parse records. ([318741@main](https://commits.webkit.org/318741@main))  (184169471)
- Fixed `Array.prototype.sort()` not being stable when called without a comparator. ([318682@main](https://commits.webkit.org/318682@main))  (184189734)
- Fixed global object attribute getters and setters throwing when called as bare functions from global scope. ([318748@main](https://commits.webkit.org/318748@main))  (184273476)
- Fixed `Iterator.prototype.join()` to match the latest specification. ([318806@main](https://commits.webkit.org/318806@main))  (184321382)
- Fixed `Iterator.prototype.chunks()` and `Iterator.prototype.windows()` to match the latest specification. ([318802@main](https://commits.webkit.org/318802@main))  (184321801)
- Fixed `Intl.Locale` collections not being sorted. ([318808@main](https://commits.webkit.org/318808@main))  (184322384)
- Fixed `formatToParts()` omitting the era separator that `format()` inserts. ([318847@main](https://commits.webkit.org/318847@main))  (184382546)
- Fixed the `import defer` implementation to match the updated proposal. ([318875@main](https://commits.webkit.org/318875@main))  (184423667)
- Fixed `\P{...}` on the right side of a `v` mode `&&` or `--` operation being treated as a union. ([318854@main](https://commits.webkit.org/318854@main))  (184443379)
- Fixed `Temporal.Duration` rounding decisions being made on doubles instead of exact integers. ([318901@main](https://commits.webkit.org/318901@main))  (184472920)
- Fixed non-ISO calendar date field resolution at the edges of the supported range. ([318940@main](https://commits.webkit.org/318940@main))  (184478785)
- Fixed `Temporal` returning plausible values instead of throwing when an underlying calendar operation fails. ([318953@main](https://commits.webkit.org/318953@main))  (184567556)
- Fixed a regular expression string-list alternative containing a non-BMP character matching on only its leading code units. ([318956@main](https://commits.webkit.org/318956@main))  (184582034)
- Fixed the `WebAssembly.Global` `value` setter not treating a missing argument as `undefined`. ([318967@main](https://commits.webkit.org/318967@main))  (184608074)
- Fixed Unicode property escapes ignoring case-insensitive matching in `u` and `v` modes. ([319064@main](https://commits.webkit.org/319064@main))  (184762230)
- Fixed the Before Hijra era year being computed from rendered text instead of the calendar. ([319172@main](https://commits.webkit.org/319172@main))  (184853584)

### Media

#### New Features

- Added support for `HTMLMediaElement.removeTextTrack()`. ([318250@main](https://commits.webkit.org/318250@main))  (183365541)

#### Resolved Issues

- Fixed WebVTT cue overlap avoidance to move a cue the shortest possible distance. ([318012@main](https://commits.webkit.org/318012@main))  (183151333)
- Fixed legacy EME `generateKeyRequest()` returning an incorrect destination URL. ([317970@main](https://commits.webkit.org/317970@main))  (183305929)
- Fixed `requestFullscreen()` and `requestPictureInPicture()` not consuming user activation. ([318673@main](https://commits.webkit.org/318673@main))  (183621577)
- Fixed selecting On in the media controls captions menu not turning on subtitles. ([318468@main](https://commits.webkit.org/318468@main))  (183776073)
- Fixed `MediaRecorder` dropping pending video frames when recording is stopped. ([318595@main](https://commits.webkit.org/318595@main))  (183975207)
- Fixed the auto position of a WebVTT cue with `start` or `end` text alignment to be 50%. ([318610@main](https://commits.webkit.org/318610@main))  (184039946)
- Fixed `MediaRecorder` dropping a frame whenever the writer input reports that it is not ready. ([318778@main](https://commits.webkit.org/318778@main))  (184271782)

### Navigation API

#### New Features

- Added support for the `to` property on `NavigationTransition`. ([319142@main](https://commits.webkit.org/319142@main))  (184792753)
- Added support for intercepting a navigation with a precommit handler. ([319208@main](https://commits.webkit.org/319208@main))  (184893603)

#### Resolved Issues

- Fixed `sourceElement` reporting the deepest clicked element instead of the element responsible for the navigation. ([319005@main](https://commits.webkit.org/319005@main))  (184581613)
- Fixed `NavigationHistoryEntry` returning `null` instead of the empty string for `url`, `key`, and `id` when the document is not fully active. ([319007@main](https://commits.webkit.org/319007@main))  (184590003)
- Fixed `navigateEvent.scroll()` not scrolling to the beginning of the document when the fragment does not exist. ([319068@main](https://commits.webkit.org/319068@main))  (184595100)
- Fixed `navigation.activation.from` not being `null` when navigating away from the initial `about:blank`. ([319217@main](https://commits.webkit.org/319217@main))  (184624752)
- Fixed `navigateerror` not firing for a navigation started from a `navigateerror` handler. ([319222@main](https://commits.webkit.org/319222@main))  (184633618)

### Networking

#### New Features

- Added support for backpressure when uploading a stream request body with `fetch()`. ([318236@main](https://commits.webkit.org/318236@main))  (183400867)

#### Resolved Issues

- Fixed a same-frame fragment navigation cancelling a download started by a `download` attribute click in the same task. ([319105@main](https://commits.webkit.org/319105@main))  (165498647)
- Fixed a page reloading continually by tracking the latest navigation action when considering Enhanced Security state changes. ([318304@main](https://commits.webkit.org/318304@main))  (183480452)
- Fixed `XMLHttpRequest.getAllResponseHeaders()` returning the previous response’s headers when the object is reused. ([318217@main](https://commits.webkit.org/318217@main))  (183561750)
- Fixed `XMLHttpRequest.responseURL` still returning the aborted request’s URL after calling `abort()`. ([318241@main](https://commits.webkit.org/318241@main))  (183587043)
- Fixed the CNAME-cloaking cookie expiry cap being applied to a top-level page’s own cookies instead of only subresources. ([318332@main](https://commits.webkit.org/318332@main))  (183664485)
- Fixed `XMLHttpRequest.send()` setting a `Content-Type` request header on `GET` and `HEAD` requests when passed a `URLSearchParams`. ([318424@main](https://commits.webkit.org/318424@main))  (183801778)
- Fixed `imagesrcset` not overriding `href` on `<link rel="preload" as="image">`. ([318544@main](https://commits.webkit.org/318544@main))  (183945535)
- Fixed `<link rel=preload as>` keywords not being matched ASCII case-insensitively. ([318584@main](https://commits.webkit.org/318584@main))  (184013239)
- Fixed PDF byte-range requests being blocked by the `connect-src` Content Security Policy directive instead of `object-src`. ([318797@main](https://commits.webkit.org/318797@main))  (184258237)
- Fixed a Content Security Policy `host-source` of the form `*:*/path` not matching. ([318612@main](https://commits.webkit.org/318612@main))  (184902666)
- Fixed a policy decision that outlives its navigation being applied to an unrelated load. ([319378@main](https://commits.webkit.org/319378@main))  (184974939)

### Rendering

#### Resolved Issues

- Fixed text selection highlighting extending incorrectly when a float precedes the text. ([319128@main](https://commits.webkit.org/319128@main))  (109610452)
- Fixed text underlines rendering incorrectly for Urdu text. ([319220@main](https://commits.webkit.org/319220@main))  (161299983)
- Fixed a regression where editing text in some inputs stopped responding to backspace. ([318095@main](https://commits.webkit.org/318095@main))  (183391399)
- Fixed `text-align: justify` justifying the last line of a block. ([318562@main](https://commits.webkit.org/318562@main))  (183976364)
- Fixed Arabic letters in adjacent inline boxes not being joined. ([319209@main](https://commits.webkit.org/319209@main))  (184071471)
- Fixed a self-collapsing block nested in an inline box losing its margin when the root has a border. ([318646@main](https://commits.webkit.org/318646@main))  (184145672)
- Fixed trailing whitespace not being collapsed before a block nested in an inline box. ([318653@main](https://commits.webkit.org/318653@main))  (184151239)
- Fixed baseline alignment ignoring the offset of a block level box nested in an inline box. ([318656@main](https://commits.webkit.org/318656@main))  (184153324)
- Fixed an empty orthogonal block nested in an inline box stretching the line. ([318659@main](https://commits.webkit.org/318659@main))  (184158817)
- Fixed the margin after a block level box on a line being lost on relayout. ([318660@main](https://commits.webkit.org/318660@main))  (184159645)
- Fixed an empty editable container with only an out-of-flow child losing its line. ([318671@main](https://commits.webkit.org/318671@main))  (184176269)
- Fixed a float inside a block nested in an inline box intruding at the wrong position. ([318678@main](https://commits.webkit.org/318678@main))  (184184683)
- Fixed the baseline of an inline-block whose last line box holds a block level box dropping that line’s offset. ([318702@main](https://commits.webkit.org/318702@main))  (184222186)
- Fixed nested inline boxes around a block level box being stretched by their nesting depth. ([318704@main](https://commits.webkit.org/318704@main))  (184222677)
- Fixed an inline box with cloned decorations generating an extra line between two block level boxes. ([318718@main](https://commits.webkit.org/318718@main))  (184241600)
- Fixed a block whose content is a table being treated as self-collapsing. ([318782@main](https://commits.webkit.org/318782@main))  (184337051)
- Fixed a block level box’s margin after being counted twice when only that box needs layout. ([318792@main](https://commits.webkit.org/318792@main))  (184344633)
- Fixed an outside list marker making its list item’s children inline. ([318891@main](https://commits.webkit.org/318891@main))  (184380304)
- Fixed an excluded list marker aligning with a block level box on a line instead of the first line of text. ([318908@main](https://commits.webkit.org/318908@main))  (184405037)
- Fixed a block level box on a line reporting its scrollable overflow at its static position. ([318885@main](https://commits.webkit.org/318885@main))  (184505703)
- Fixed a block level box on a line not starting a new paragraph for `unicode-bidi: plaintext` and `text-indent: each-line`. ([318886@main](https://commits.webkit.org/318886@main))  (184505835)
- Fixed a highlight on the line after a block level box covering the box’s margin. ([318887@main](https://commits.webkit.org/318887@main))  (184506039)
- Fixed a block level box on a line switching off `text-wrap: balance` for the whole container. ([318893@main](https://commits.webkit.org/318893@main))  (184508888)
- Fixed inline boxes that are not relatively positioned offsetting their out-of-flow children by the position of the line. ([318897@main](https://commits.webkit.org/318897@main))  (184512485)
- Fixed a block level box on a line not contributing its margin box to its container’s overflow. ([318906@main](https://commits.webkit.org/318906@main))  (184526625)
- Fixed list-based hit testing reporting the container before a block level box on an earlier line. ([318909@main](https://commits.webkit.org/318909@main))  (184527135)
- Fixed selection gaps not being filled around a block level box on a line. ([318911@main](https://commits.webkit.org/318911@main))  (184527621)
- Fixed `line-clamp` not counting the lines of a block level box on a line. ([318921@main](https://commits.webkit.org/318921@main))  (184545926)
- Fixed a forced page break after a block level box on a line not moving the following content to the next page. ([319029@main](https://commits.webkit.org/319029@main))  (184712866)
- Fixed a float not being offered to the caret when its container has a block level box on a line. ([319030@main](https://commits.webkit.org/319030@main))  (184713698)
- Fixed a `<fieldset>` on a line taking its legend’s overhang twice. ([319033@main](https://commits.webkit.org/319033@main))  (184714637)
- Fixed a box that collapsed through with clearance on a line pushing the following content down by its margin. ([319160@main](https://commits.webkit.org/319160@main))  (184917509)
- Fixed intrinsic width computation when a line holds a block level box. ([319212@main](https://commits.webkit.org/319212@main))  (184968113)

### SVG

#### New Features

- Added support for external and `data:` URL `filter` references on SVG elements. ([317538@main](https://commits.webkit.org/317538@main))  (114823248)
- Added support for passing a `DOMMatrix2DInit` dictionary to `SVGMatrix.multiply()`. ([318109@main](https://commits.webkit.org/318109@main))  (180896205)
- Added support for external SVG resource references, including `clip-path`, `marker`, and paint servers. ([318543@main](https://commits.webkit.org/318543@main))  (183941298)

#### Resolved Issues

- Fixed `auto` sizing of `<svg:image>` to follow the CSS default sizing algorithm. ([318548@main](https://commits.webkit.org/318548@main))  (122586485)
- Fixed `SVGSVGElement.currentScale` being a no-op on an outermost `<svg>` that is not the document root. ([318762@main](https://commits.webkit.org/318762@main))  (180889449)
- Fixed `SVGLength.value` returning negative numbers for `r`, `rx`, `ry`, `width`, `height`, and `textLength`, which disagreed with `getComputedStyle()`. ([317963@main](https://commits.webkit.org/317963@main))  (181108927)
- Fixed a `clip-path` basic shape being mispositioned on a `<foreignObject>` with a non-zero `x` or `y`. ([318904@main](https://commits.webkit.org/318904@main))  (182755161)
- Fixed `feDropShadow` ignoring an update to the Y component of `stdDeviation` when X changes. ([318281@main](https://commits.webkit.org/318281@main))  (183678196)
- Fixed `<animateMotion>` ignoring a numeric `rotate` value. ([318565@main](https://commits.webkit.org/318565@main))  (183832405)
- Fixed SVG enumerated attributes not reverting to their initial value when removed or set to an invalid value. ([319093@main](https://commits.webkit.org/319093@main))  (184076505)
- Fixed dynamic changes to `x` and `y` on `<foreignObject>` having no effect. ([318669@main](https://commits.webkit.org/318669@main))  (184172530)
- Fixed a `clip-path` basic shape being mispositioned on a rotated or scaled SVG element. ([318924@main](https://commits.webkit.org/318924@main))  (184494108)
- Fixed `<animateMotion>` ignoring a zero-length motion path. ([318963@main](https://commits.webkit.org/318963@main))  (184569273)

#### Deprecations

- Removed the `SVGPathSegList` collection and the `SVGPathSeg` family of interfaces from `SVGPathElement`, matching SVG 2. ([318760@main](https://commits.webkit.org/318760@main))  (115039851)

### Scrolling

#### Resolved Issues

- Fixed re-snapping to prefer the block-axis box when the two scroll axes conflict. ([318343@main](https://commits.webkit.org/318343@main))  (183366125)
- Fixed scroll snapping when a scroll overshoots past the end of the scroll container. ([318081@main](https://commits.webkit.org/318081@main))  (183375912)
- Fixed `element.scroll()` and `element.scrollTo()` not scrolling inside a `content-visibility: hidden` subtree. ([319219@main](https://commits.webkit.org/319219@main))  (184935071)

### Service Workers

#### New Features

- Added support for service workers reading stream upload data from a fetch event request body. ([317964@main](https://commits.webkit.org/317964@main))  (183108477)
- Added support for stream upload backpressure when a service worker reads the upload data. ([318346@main](https://commits.webkit.org/318346@main))  (183529369)

#### Resolved Issues

- Fixed a missing `Sec-Fetch-Dest` header on service worker script requests. ([318237@main](https://commits.webkit.org/318237@main))  (181909962)
- Fixed network fallback being allowed after a fetch event request body was already disturbed. ([318042@main](https://commits.webkit.org/318042@main))  (183125740)
- Fixed cancellation of a fetch event request body not being propagated to the original `ReadableStream`. ([318043@main](https://commits.webkit.org/318043@main))  (183317580)

### Web API

#### Resolved Issues

- Fixed: Improved the `InvalidStateError` message thrown by selection methods to explain what is invalid. ([318520@main](https://commits.webkit.org/318520@main))  (134645414)
- Fixed a missing `resize` event when an iframe transitions from `display: none` to visible. ([318713@main](https://commits.webkit.org/318713@main))  (174638256)
- Fixed `timeOrigin` being skewed for Navigation Timing entries when the browsing context group changes. ([318057@main](https://commits.webkit.org/318057@main))  (179332119)
- Fixed the Digital Credentials API to consume transient activation before serializing the request. ([318122@main](https://commits.webkit.org/318122@main))  (182412996)
- Fixed the Cookie Store API not preserving the order of the cookie change subscription list. ([318087@main](https://commits.webkit.org/318087@main))  (183271849)
- Fixed notifications after the first persistent one not being closed. ([318007@main](https://commits.webkit.org/318007@main))  (183362637)
- Fixed `getBoundingClientRect()` returning a non-zero rect for SVG elements inside hidden containers. ([318744@main](https://commits.webkit.org/318744@main))  (183425103)
- Fixed quota accounting over-charging positioned writes through a `FileSystemWritableFileStream`. ([318130@main](https://commits.webkit.org/318130@main))  (183489019)
- Fixed an Apple Pay deferred payment request being dropped when the payment method changes. ([318155@main](https://commits.webkit.org/318155@main))  (183516996)
- Fixed Cache Storage size accounting underflowing and persisting a corrupt size. ([318204@main](https://commits.webkit.org/318204@main))  (183578693)
- Fixed `FileReader.abort()` being silently ignored on a reader reused after a completed read. ([318288@main](https://commits.webkit.org/318288@main))  (183695958)
- Fixed MathML and SVG elements not resetting `tabIndex` when `tabindex` is changed to an invalid value. ([318303@main](https://commits.webkit.org/318303@main))  (183696552)
- Fixed fullscreen state not being unwound when entering fullscreen fails. ([319243@main](https://commits.webkit.org/319243@main))  (184157871)
- Fixed the `SharedWorkerGlobalScope` prototype not being an immutable prototype exotic object. ([318684@main](https://commits.webkit.org/318684@main))  (184190755)
- Fixed the `scrollend` event not firing when wheel-scrolling a subframe. ([318805@main](https://commits.webkit.org/318805@main))  (184352772)

### Web Audio

#### Resolved Issues

- Fixed a loss of precision in `exponentialRampToValueAtTime()` caused by accumulating the ramp value. ([317955@main](https://commits.webkit.org/317955@main))  (124498013)
- Fixed `decodeAudioData()` failing with an `EncodingError` for valid M4A files whose `ftyp` brand is not `mp4`. ([318005@main](https://commits.webkit.org/318005@main))  (183148186)
- Fixed `registerProcessor()` error messages so they name the offending `AudioParam` instead of the processor. ([317948@main](https://commits.webkit.org/317948@main))  (183189781)
- Fixed an `OscillatorNode` with a-rate automation starting out of phase by honoring sub-sample start times. ([317953@main](https://commits.webkit.org/317953@main))  (183194827)
- Fixed the `AudioBufferSourceNode` output channel count to account for whether the node is actively processing. ([317956@main](https://commits.webkit.org/317956@main))  (183245229)
- Fixed stale audio being played instead of silence when the audio destination ring buffer underruns. ([317968@main](https://commits.webkit.org/317968@main))  (183305574)
- Fixed an `AudioScheduledSourceNode` not firing the `ended` event when it is not connected to the destination. ([318515@main](https://commits.webkit.org/318515@main))  (183986981)
- Fixed a k-rate `AudioParam` input to `AudioBufferSourceNode.detune` diverging from the equivalent automation. ([318516@main](https://commits.webkit.org/318516@main))  (183987621)
- Fixed `AudioContext.close()` not rejecting when called on an already-closed context. ([318522@main](https://commits.webkit.org/318522@main))  (183989479)
- Fixed `AudioWorkletGlobalScope.currentFrame` reporting `0` for a worklet created while the context is suspended. ([318601@main](https://commits.webkit.org/318601@main))  (184081765)
- Fixed an `AudioWorkletProcessor` being torn down too early after `process()` returns `false`. ([318621@main](https://commits.webkit.org/318621@main))  (184107806)
- Fixed the `AudioWorkletNode` `processorerror` event missing `filename`, `lineno`, and `colno`. ([318705@main](https://commits.webkit.org/318705@main))  (184224032)
- Fixed `MediaStreamAudioSourceNode` capturing the wrong track and continuing to play after the track ends. ([318706@main](https://commits.webkit.org/318706@main))  (184224142)
- Fixed a zero-duration `exponentialRampToValueAtTime()` at a non-frame-aligned time rendering `NaN`. ([318868@main](https://commits.webkit.org/318868@main))  (184434164)
- Fixed setting `ConvolverNode.buffer` to `null` not releasing the impulse response. ([318870@main](https://commits.webkit.org/318870@main))  (184434803)
- Fixed reverse playback of buffers longer than 2^23 frames extrapolating outside the source samples. ([318869@main](https://commits.webkit.org/318869@main))  (184439324)

### Web Extensions

#### New Features

- Added support for wildcard domains and subdomains in `externally_connectable.matches`. ([318361@main](https://commits.webkit.org/318361@main))  (183642164)
- Added support for `setAccessLevel()` on the `local` and `sync` storage areas. ([318980@main](https://commits.webkit.org/318980@main))  (183680404)
- Added support for `scripting.ExecutionWorld`. ([319009@main](https://commits.webkit.org/319009@main))  (184284891)

#### Resolved Issues

- Fixed several inconsistencies in the `browser.alarms` API. ([318493@main](https://commits.webkit.org/318493@main))  (183770530)
- Fixed a significant delay loading web extensions when the browser is launched cold. ([318756@main](https://commits.webkit.org/318756@main))  (183827503)

### Web Inspector

#### New Features

- Added icons for recorded WebGL and WebGPU actions in the Canvas tab. ([318517@main](https://commits.webkit.org/318517@main))  (42777850)
- Added support for recording WebGPU devices in the Canvas tab. ([318407@main](https://commits.webkit.org/318407@main))  (183538409)
- Added support for instrumenting WebGPU devices in the Canvas tab. ([318336@main](https://commits.webkit.org/318336@main))  (183757645)
- Added support for WebGPU content previews in the Canvas tab. ([318363@main](https://commits.webkit.org/318363@main))  (183785306)
- Added support for instrumenting WebGPU pipelines in the Canvas tab. ([318366@main](https://commits.webkit.org/318366@main))  (183790749)
- Added support for disabling WebGPU render pipelines in the Canvas tab. ([318403@main](https://commits.webkit.org/318403@main))  (183857257)
- Added support for using the WebGPU label of devices and pipelines as their name in the Canvas tab. ([318409@main](https://commits.webkit.org/318409@main))  (183876768)
- Added support for exposing client metadata for WebGPU devices. ([318467@main](https://commits.webkit.org/318467@main))  (183939079)
- Added support for recording WebGL extension actions in the Canvas tab. ([318474@main](https://commits.webkit.org/318474@main))  (183945866)
- Added support for mapping WebAssembly byte offsets to original sources with source maps. ([318546@main](https://commits.webkit.org/318546@main))  (184017160)
- Added support for editing WebGPU shaders in the Canvas tab. ([318633@main](https://commits.webkit.org/318633@main))  (184128414)
- Added support for highlighting WebGPU render pipelines in the Canvas tab. ([318668@main](https://commits.webkit.org/318668@main))  (184169419)
- Improved the estimated memory use reported for WebGL and WebGPU canvases to include their graphics resources. ([318915@main](https://commits.webkit.org/318915@main))  (184535731)
- Added support for recording object arguments and result objects in the Canvas tab. ([319059@main](https://commits.webkit.org/319059@main))  (184759172)
- Added support for showing names for recorded WebGPU bitfields. ([319174@main](https://commits.webkit.org/319174@main))  (184928178)
- Added support for snapshotting WebGPU element image copies. ([319176@main](https://commits.webkit.org/319176@main))  (184928370)
- Added syntax highlighting to recording actions in the Canvas tab. ([319189@main](https://commits.webkit.org/319189@main))  (184936730)

#### Resolved Issues

- Fixed canvas recordings retaining memory by pruning recordings that are no longer in use. ([318613@main](https://commits.webkit.org/318613@main))  (35893620)
- Fixed searching resources returning duplicate results for the same resource. ([319061@main](https://commits.webkit.org/319061@main))  (42879586)
- Fixed resource data for non-buffered resources persisting across navigations. ([318035@main](https://commits.webkit.org/318035@main))  (181210169)
- Fixed WebAssembly module scripts not being associated with the resource that fetched them. ([318207@main](https://commits.webkit.org/318207@main))  (183583149)
- Fixed stale frame navigation event timestamps being shown after initializing. ([318213@main](https://commits.webkit.org/318213@main))  (183584784)
- Fixed a selected details sidebar panel not being restored when it becomes available again. ([318353@main](https://commits.webkit.org/318353@main))  (183778380)
- Fixed detaching a child frame also detaching its parent frame. ([318355@main](https://commits.webkit.org/318355@main))  (183778531)
- Fixed stale execution contexts being kept when their identifiers change. ([318356@main](https://commits.webkit.org/318356@main))  (183779166)
- Fixed response end times being dropped for resources without request timing data. ([318360@main](https://commits.webkit.org/318360@main))  (183783292)
- Fixed recorded WebGPU object arguments not being swizzled correctly. ([318545@main](https://commits.webkit.org/318545@main))  (184017109)
- Fixed missing `console.record()` options being treated as if they were present. ([318555@main](https://commits.webkit.org/318555@main))  (184029716)
- Fixed recorded object identifiers colliding by assigning them per type. ([318567@main](https://commits.webkit.org/318567@main))  (184040370)
- Fixed configured WebGPU `<canvas>` elements not being distinguished from CSS canvas client nodes. ([318794@main](https://commits.webkit.org/318794@main))  (184346714)

### WebCodecs

#### New Features

- Added support for the WebCodecs `ImageDecoder` API. ([319179@main](https://commits.webkit.org/319179@main))  (184857272)

### WebGPU

#### Resolved Issues

- Fixed a WGSL miscompilation when swizzling a packed `vec3` value. ([318098@main](https://commits.webkit.org/318098@main))  (183426431)
- Fixed a large frame-rate drop when `executeBundles()` is called with bundles containing indirect draws. ([318538@main](https://commits.webkit.org/318538@main))  (183458069)
- Fixed `textureDimensions(t, level)` clamping the mip level one past the last valid level. ([318273@main](https://commits.webkit.org/318273@main))  (183673818)
- Fixed `GPUQueue.copyExternalImageToTexture()` uploading indexed PNG images incorrectly. ([318952@main](https://commits.webkit.org/318952@main))  (184529653)

### WebRTC

#### New Features

- Added WebRTC AV1 software fallback support. ([317986@main](https://commits.webkit.org/317986@main))  (182789617)

#### Resolved Issues

- Fixed a valid current value being ignored when both `min` and `max` are given in a capture constraint range. ([318046@main](https://commits.webkit.org/318046@main))  (182968516)
- Fixed `setSinkId()` reporting success without switching audio output for a single-track MediaStream. ([318149@main](https://commits.webkit.org/318149@main))  (183147942)
- Fixed `getUserMedia()` interrupting the microphone system-wide when `echoCancellation` is disabled. ([318164@main](https://commits.webkit.org/318164@main))  (183517329)
- Fixed `ImageCapture.takePhoto()` failing permanently after a single transient capture error. ([318260@main](https://commits.webkit.org/318260@main))  (183640839)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)