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

# Safari Technology Preview 253 Release Notes

Learn about the latest web technology updates in Safari Technology Preview: Accessibility, Animations, CSS, Canvas, Editing, Forms, HTML, JavaScript, Media, Networking, Performance, Rendering, SVG, Security, Web API, Web Extensions, Web Inspector, WebAssembly, WebDriver, WebGL, WebGPU, and WebRTC.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 253 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: [320113@main…321067@main](https://github.com/WebKit/WebKit/compare/1392437bb060048807e94d171c0fdf45e7d27301...1bc0a2a2076a8b80ef11e91ce0ebcc3edcddcc3c).

### Accessibility

#### Resolved Issues

- Fixed an issue where VoiceOver announced `aria-keyshortcuts` values containing `Meta` or `Alt` literally instead of using the macOS terminology `Command` and `Option`. ([320424@main](https://commits.webkit.org/320424@main))  (186342070)
- Fixed an issue where VoiceOver could repeatedly announce the same live region content as it streamed into a page. ([320576@main](https://commits.webkit.org/320576@main))  (186694747)

### Animations

#### New Features

- Added support for style-originated scroll timelines to match globally, allowing them to be defined outside of the target’s hierarchy or that of an element with a `timeline-scope` property. ([320183@main](https://commits.webkit.org/320183@main))  (186261285)

#### Resolved Issues

- Fixed an issue where an animation attached to a view timeline’s scroll range was not updated when the scroll container’s scrollable overflow changed. ([320244@main](https://commits.webkit.org/320244@main))  (185328465)
- Fixed an issue where an animation could attach to a style-originated timeline made visible by `timeline-scope` instead of one established by an ancestor, which now takes priority. ([320223@main](https://commits.webkit.org/320223@main))  (186265325)
- Fixed an issue where a style-originated timeline defined outside of a `timeline-scope` hierarchy could remain active instead of yielding an inactive timeline. ([320227@main](https://commits.webkit.org/320227@main))  (186330965)
- Fixed an issue where changing a `timeline-scope` value did not update timelines for animations outside of its hierarchy. ([320231@main](https://commits.webkit.org/320231@main))  (186331685)
- Fixed a regression where a paused and seeked animation incorrectly finished when resumed after a separate animation running at a non-default playback rate. ([320238@main](https://commits.webkit.org/320238@main))  (186339093)
- Fixed an issue where the `ViewTimeline` constructor did not require a `subject` parameter. ([320969@main](https://commits.webkit.org/320969@main))  (187200265)

### CSS

#### New Features

- Added support for the extended numeric range in longhand East Asian counter styles. ([320887@main](https://commits.webkit.org/320887@main))  (109875198)
- Added support for `CSSContainerRule.conditions`. ([320762@main](https://commits.webkit.org/320762@main))  (182257864)
- Allow combining `safe` and `unsafe` keywords with `normal` alignment, and change `safe` behavior for absolutely (and fixed positioned) boxes to keep the box within their original containing block (the viewport).  (185952139)
- Added support for using `sibling-index()` and `sibling-count()` within container query conditions. ([320493@main](https://commits.webkit.org/320493@main))  (186564084)

#### Resolved Issues

- Fixed an issue where a near-zero fixed `background-size` value collapsed the image tile to nothing. ([320169@main](https://commits.webkit.org/320169@main))  (140387662)
- Fixed an issue where the `[class~=foo]` attribute selector did not perform as well as an equivalent class selector. ([320862@main](https://commits.webkit.org/320862@main))  (164128575)
- Fixed an issue where highlight colors, such as those used by `::selection`, did not inherit as a `StyleColor`, which could prevent values like `color-mix(in oklab, teal 50%, currentcolor)` from resolving correctly. ([320228@main](https://commits.webkit.org/320228@main))  (184495338)
- Fixed an issue where a second CSS custom highlight sharing a `Range` with an already-registered highlight never painted. ([320355@main](https://commits.webkit.org/320355@main))  (185173794)
- Fixed an issue where outside list markers were only repositioned after layout when their first formatted line was in a descendant block, instead of for every outside list marker. ([320561@main](https://commits.webkit.org/320561@main))  (185529863)
- Fixed an issue where an inset `box-shadow` with a large spread on a wrapped inline element painted outside the element as full-width bands. ([320150@main](https://commits.webkit.org/320150@main))  (185651318)
- Fixed an issue where `CSS.highlights` iterated in hash order instead of registration order after its wrapper was garbage collected. ([320343@main](https://commits.webkit.org/320343@main))  (185754041)
- Fixed an issue where `corner-shape` rendered incorrectly when inner corners intersected. ([320287@main](https://commits.webkit.org/320287@main))  (185931169)
- Fixed an issue where a grid item with an `aspect-ratio` could keep a stale inline size contribution when the grid container shrank. ([320117@main](https://commits.webkit.org/320117@main))  (186101273)
- Fixed an issue where flexible grid tracks did not respect the grid container’s minimum and maximum size. ([320160@main](https://commits.webkit.org/320160@main))  (186103325)
- Fixed an issue where fixed grid track sizing functions were overridden to zero while sizing tracks to fit non-spanning items. ([320168@main](https://commits.webkit.org/320168@main))  (186117142)
- Fixed an issue where explicitly-placed grid items advanced the auto-placement cursor. ([320253@main](https://commits.webkit.org/320253@main))  (186118858)
- Fixed an issue where the propagated root background was painted in the wrong position in `vertical-rl` writing mode. ([320167@main](https://commits.webkit.org/320167@main))  (186274088)
- Fixed an issue where opening a `<details>` element made its `<summary>` one pixel shorter. ([320461@main](https://commits.webkit.org/320461@main))  (186413478)
- Fixed an issue where a typed parameter of a CSS custom function did not keep its type. ([320340@main](https://commits.webkit.org/320340@main))  (186439114)
- Fixed an issue where `attr()` stopped invalidating on attribute changes after a view transition. ([320420@main](https://commits.webkit.org/320420@main))  (186467515)
- Fixed an issue where `unicode-bidi` and `direction` had no effect on an inside `::marker`. ([320504@main](https://commits.webkit.org/320504@main))  (186468752)
- Fixed an issue where `fit-tolerance` did not interpolate between `<length-percentage>` values. ([320383@main](https://commits.webkit.org/320383@main))  (186509338)
- Fixed an issue where a grid item’s automatic minimum size was not clamped to a fixed maximum track sizing function. ([320750@main](https://commits.webkit.org/320750@main))  (186606479)
- Fixed a regression where the line-height quirk in quirks mode was not applied to line boxes inside a nested `inline-block` element that had no `line-height` of its own. ([320514@main](https://commits.webkit.org/320514@main))  (186614663)
- Fixed an issue where interpolating a `<length-percentage>` from a `calc()` value to a pure `<length>` dropped the percentage component at 100% progress. ([320585@main](https://commits.webkit.org/320585@main))  (186628152)
- Fixed an issue where `text-decoration-thickness` and `text-underline-offset` did not preserve percentage values when interpolating. ([320584@main](https://commits.webkit.org/320584@main))  (186628810)
- Fixed an issue where `align-content` left the list marker behind. ([320532@main](https://commits.webkit.org/320532@main))  (186676835)
- Fixed an issue where `text-indent` moved an outside list marker along with the indented text. ([320533@main](https://commits.webkit.org/320533@main))  (186678552)
- Fixed an issue where a float in a list item’s content pushed the outside list marker inward with the line. ([320549@main](https://commits.webkit.org/320549@main))  (186680551)
- Fixed an issue where a tab character rendered too narrow when `tab-size` was small in a proportional font. ([320671@main](https://commits.webkit.org/320671@main))  (186698040)
- Fixed an issue where a gradient in the `content` property painted blank. ([320620@main](https://commits.webkit.org/320620@main))  (186742805)
- Fixed an issue where some combinations of `corner-shape` with thick borders rendered incorrectly. ([320826@main](https://commits.webkit.org/320826@main))  (186808871)
- Fixed an issue where `fit-content()` grid tracks could be stretched beyond their argument instead of capping the track’s growth limit. ([320780@main](https://commits.webkit.org/320780@main))  (186961437)
- Fixed an issue where an orthogonal `<caption>`’s margins were missing from the table. ([321056@main](https://commits.webkit.org/321056@main))  (187137359)
- Fixed an issue where an orthogonal `<caption>` ignored its margin against the table edge. ([321060@main](https://commits.webkit.org/321060@main))  (187139068)
- Fixed an issue where transforming a table row group could misplace its absolutely positioned children. ([321065@main](https://commits.webkit.org/321065@main))  (187252945)
- Fixed an issue where the resolved `right` and `bottom` values of an out-of-flow positioned element were wrong inside a vertical inline containing block. ([321061@main](https://commits.webkit.org/321061@main))  (187295559)
- Fixed an issue where the identity and translation fast path of a transformation matrix ignored the `w` component when mapping a 4-component point. ([321030@main](https://commits.webkit.org/321030@main))  (187297446)

### Canvas

#### Resolved Issues

- Fixed an issue where a placeholder `<canvas>` element with no pushed `OffscreenCanvas` frame would fail instead of returning a transparent black image. ([320202@main](https://commits.webkit.org/320202@main))  (186229685)
- Fixed an issue where an off-by-one error in the bottom-row check caused canvas noise injection to misclassify the bottom-left pixel. ([320510@main](https://commits.webkit.org/320510@main))  (186640624)
- Fixed a performance regression where drawing a canvas onto itself with `drawImage` prevented its backing surface from being recycled. ([320735@main](https://commits.webkit.org/320735@main))  (186731221)
- Fixed an issue where a canvas 2D context remained unusable after a temporary failure to allocate its backing store. ([320605@main](https://commits.webkit.org/320605@main))  (186799597)
- Fixed an issue where drawing to `<canvas>` computed path bounds unnecessarily when the whole backing store was already marked dirty. ([320709@main](https://commits.webkit.org/320709@main))  (186946552)

### Editing

#### Resolved Issues

- Fixed an issue where the context menu in PDFs with copying disabled was missing text selection options. ([320444@main](https://commits.webkit.org/320444@main))  (186527750)
- Fixed an issue on macOS where the Copy option was enabled in the edit menu after selecting text in a PDF that disallows copying. ([320534@main](https://commits.webkit.org/320534@main))  (186648332)

### Forms

#### Resolved Issues

- Fixed an issue where a large picker for a base-appearance `<select>` could render outside the viewport, by applying `safe` alignment to keep it within its original containing block. ([320564@main](https://commits.webkit.org/320564@main))  (185952139)

### HTML

#### Resolved Issues

- Fixed an issue where the window `load` event could fail to fire if a `readystatechange` handler triggered a new load during page completion. ([320331@main](https://commits.webkit.org/320331@main))  (186373617)

### JavaScript

#### New Features

- Added support for `BigInt` values in `Intl.PluralRules.prototype.select` and `Intl.PluralRules.prototype.selectRange`. ([320396@main](https://commits.webkit.org/320396@main))  (186534585)
- Added support for a faster Toom-3 multiplication algorithm for large `BigInt` values. ([321013@main](https://commits.webkit.org/321013@main))  (187336927)

#### Resolved Issues

- Fixed an issue in JavaScriptCore where a stale inline cache for a custom accessor on a previously flattened dictionary could persist after the accessor was shadowed, which could cause code that replaces built-in properties at runtime (such as a test mocking library overriding `XMLHttpRequest`) to keep using the original value. ([320742@main](https://commits.webkit.org/320742@main))  (180048596)
- Fixed an issue where `Intl.DurationFormat` in `digital` style included a stray separator when `minutesDisplay` was set to `"auto"` and minutes ended up hidden. ([320182@main](https://commits.webkit.org/320182@main))  (180722012)
- Fixed an issue where `Array.prototype.toSpliced` threw a `TypeError` instead of a `RangeError` when the array’s length was `Infinity`. ([320554@main](https://commits.webkit.org/320554@main))  (184438837)
- Fixed an issue where `TypedArray` `setFromTypedArray` could not use `memmove` when the region was intentionally overlapping and the spec algorithm needed to read back the modified result. ([320130@main](https://commits.webkit.org/320130@main))  (186145219)
- Fixed an issue where the `TypedArray` constructor could produce incorrect results when copying `Array` content whose element access has side effects. ([320185@main](https://commits.webkit.org/320185@main))  (186227333)
- Fixed a performance issue where `String.prototype.toLowerCase` and `String.prototype.toUpperCase` did not scan strings inline in the DFG and FTL JIT tiers. ([320293@main](https://commits.webkit.org/320293@main))  (186301688)
- Fixed an issue where a character following a class set operand in a `/v` mode regular expression class incorrectly added `U+0000` to the class. ([320216@main](https://commits.webkit.org/320216@main))  (186319779)
- Fixed an issue where `Temporal.ZonedDateTime.prototype.round` resolved the rounded wall-clock time using a minute-rounded offset instead of the correct offset. ([320217@main](https://commits.webkit.org/320217@main))  (186319834)
- Fixed an issue where `Object.freeze()` did not invalidate the megamorphic inline cache epoch, which could cause stale property accesses on a frozen object. ([320276@main](https://commits.webkit.org/320276@main))  (186393610)
- Fixed an issue where deleting a property of a dictionary prototype in place did not invalidate the megamorphic store cache. ([320375@main](https://commits.webkit.org/320375@main))  (186513123)
- Fixed a performance issue where `RegExp.prototype.test` did not fast-fail when the input string was shorter than the pattern’s minimum possible match length. ([320487@main](https://commits.webkit.org/320487@main))  (186534079)
- Fixed an issue where regular expression lookbehind assertions could fail to match, or match at an invalid position, due to incorrect handling of surrogate pairs in the regular expression interpreter. ([320492@main](https://commits.webkit.org/320492@main))  (186536137)
- Fixed an issue where `Atomics.isLockFree()` converted its argument with a 32-bit integer conversion instead of `ToIntegerOrInfinity`, which could cause it to incorrectly return `true` for large size values. ([320715@main](https://commits.webkit.org/320715@main))  (186610789)
- Fixed an issue where a stack frame for a script loaded from a `data:` URL included the entire script in `Error.stack` instead of a truncated URL. ([320770@main](https://commits.webkit.org/320770@main))  (186614179)
- Fixed an issue where a JIT fast path for `RegExp.prototype.test` could skip the required read of `lastIndex`, silently dropping observable side effects. ([320582@main](https://commits.webkit.org/320582@main))  (186792229)
- Fixed an issue where tail-call optimization was skipped for `eval` calls that didn’t resolve to the real `eval` function, and incorrectly applied inside generator and async function bodies, which could produce incorrect results. ([320687@main](https://commits.webkit.org/320687@main))  (186840477)
- Fixed an issue where `RegExp.escape` incorrectly narrowed supplementary code points to 16 bits. ([320682@main](https://commits.webkit.org/320682@main))  (186962453)
- Fixed an issue where a `\-` following a class set operand in a `/v` mode regular expression class incorrectly threw a `SyntaxError`. ([320683@main](https://commits.webkit.org/320683@main))  (186962513)
- Fixed an issue where `RegExp::deleteCode()` cleared a regular expression’s cached pattern atom, which could cause incorrect values from static `RegExp` properties such as `leftContext` and `rightContext` after the compiled code was reclaimed while idle. ([320817@main](https://commits.webkit.org/320817@main))  (187104089)
- Fixed an issue where `String.prototype.at` and `String.prototype.codePointAt` could return an incorrect value for an out-of-bounds or negative index because the JIT compiler could eliminate their bounds check. ([321014@main](https://commits.webkit.org/321014@main))  (187336661)

### Media

#### Resolved Issues

- Fixed an issue where wireless playback could create a remote media session helper too eagerly, which could delay switching an active playback route to a wireless device. ([320748@main](https://commits.webkit.org/320748@main))  (184536781)
- Fixed an issue where `MediaRecorder` could hold back a lone video keyframe indefinitely instead of using it to start a new recording segment. ([320219@main](https://commits.webkit.org/320219@main))  (186229843)
- Fixed an issue where an AV1 sequence header that exactly filled the buffer was incorrectly rejected due to an off-by-one bounds check. ([321041@main](https://commits.webkit.org/321041@main))  (187306821)
- Fixed an issue where black video-range pixel buffers were produced with super-black values instead of legal black. ([321040@main](https://commits.webkit.org/321040@main))  (187309125)

### Networking

#### Resolved Issues

- Fixed an issue where custom scheme CORS checks incorrectly blocked subresources loaded from an HTML document opened via a `file:` URL. ([320685@main](https://commits.webkit.org/320685@main))  (179999480)
- Fixed an issue where reading a file-backed `Blob` range larger than 2GB truncated the read length due to an integer overflow. ([320981@main](https://commits.webkit.org/320981@main))  (187207663)
- Fixed an issue where validation of an HTTP header value did not check its final character, allowing control characters and DEL to be accepted as valid. ([321019@main](https://commits.webkit.org/321019@main))  (187288970)

### Performance

#### Resolved Issues

- Fixed an issue where navigation could redundantly parse and decode a page’s URL multiple times, causing significant hangs for pages with very long URLs. ([320292@main](https://commits.webkit.org/320292@main))  (185796614)
- Fixed excessive CPU and power usage caused by `IntersectionObserver` observation on pages with many observed elements. ([320395@main](https://commits.webkit.org/320395@main))  (185839711)
- Fixed an issue where style resolution for elements sharing a `scroll-timeline` name could block the main thread for multiple seconds. ([320902@main](https://commits.webkit.org/320902@main))  (186090970)
- Fixed an issue where `ScrollingStateTree::insertNode` performed redundant work reordering children on pages with many sibling scrolling nodes. ([320527@main](https://commits.webkit.org/320527@main))  (186143008)
- Fixed an issue where ordinary property changes, such as toggling `overflow: hidden`, could trigger an unnecessary full-layer repaint. ([320296@main](https://commits.webkit.org/320296@main))  (186422878)

### Rendering

#### Resolved Issues

- Fixed an issue where a layer with a negative `z-index` inside a stacking context failed to composite correctly when overlapping an externally composited layer. ([320473@main](https://commits.webkit.org/320473@main))  (130595406)
- Fixed an issue where the `<mo>` operator dictionary was consulted even when the element contained non-text content. ([320730@main](https://commits.webkit.org/320730@main))  (173078723)
- Fixed an issue where accents and other combining marks could be painted outside their base letter when letter-spacing, word-spacing, expansion, or synthetic bold were applied. ([320957@main](https://commits.webkit.org/320957@main))  (186013305)
- Fixed a regression that caused extra spacing to appear between an image and surrounding content near the bottom of a page. ([320115@main](https://commits.webkit.org/320115@main))  (186102748)
- Fixed an issue where hovering links could trigger unnecessarily wide repaints, by repainting ink-overflow-only style changes without running inline layout. ([320128@main](https://commits.webkit.org/320128@main))  (186104270)
- Fixed an issue where text nodes inside a `display: contents` element received redundant updates during style resolution. ([320144@main](https://commits.webkit.org/320144@main))  (186246705)
- Fixed an issue where content changing inside an element with a `blur()` filter did not properly repaint, leaving stale pixels around the edge of the filtered region. ([320398@main](https://commits.webkit.org/320398@main))  (186278957)
- Fixed an issue where a MathML `rowspan="0"` attribute was incorrectly clamped to 1. ([320324@main](https://commits.webkit.org/320324@main))  (186420659)
- Fixed an issue where non-MathML children of `<annotation>` and `<annotation-xml>` were not rendered. ([320334@main](https://commits.webkit.org/320334@main))  (186429768)
- Fixed an issue where drawing a native image did not respect the requested `InterpolationQuality`, affecting image scaling across canvas, SVG, and PDF rendering paths. ([320429@main](https://commits.webkit.org/320429@main))  (186439811)
- Fixed an issue where a layer with `clip-path` or `mask` could be treated as fully opaque, causing incorrect rendering. ([320634@main](https://commits.webkit.org/320634@main))  (186722177)
- Fixed an issue where a `position: sticky` element with `-webkit-box-reflect` applied could composite its reflection incorrectly. ([320712@main](https://commits.webkit.org/320712@main))  (186812790)
- Fixed an issue where an optimization to text matrix handling when drawing glyphs could cause text to render upside down. ([321067.5@safari-7626.1.8-branch](https://commits.webkit.org/321067.5@safari-7626.1.8-branch))  (187588379)

### SVG

#### New Features

- Added support for the SVG 2 `path` attribute on `<textPath>`, which lets text follow an inline path without referencing a separate `<path>` element via `href`. ([321038@main](https://commits.webkit.org/321038@main))  (185831618)

#### Resolved Issues

- Fixed an issue where SVG conditional processing attributes on `clipPath`, `mask`, and `pattern` elements incorrectly prevented the resource from being referenced. ([320207@main](https://commits.webkit.org/320207@main))  (19103270)
- Fixed an issue where SVG number attributes did not revert to their initial value when removed or set to an invalid value. ([320226@main](https://commits.webkit.org/320226@main))  (165378154)
- Fixed an issue where a SMIL animation of a presentation attribute was never released after the animated element was detached from the document, permanently freezing the animated value. ([320199@main](https://commits.webkit.org/320199@main))  (185452156)
- Fixed an issue where `SVGLength` resolved `ex` units by rounding the font’s x-height up to a whole pixel, causing the SVG DOM and `getComputedStyle` to disagree. ([320606@main](https://commits.webkit.org/320606@main))  (185984854)
- Fixed an issue where additive color animations in SVG lost precision due to per-layer 8-bit rounding. ([320166@main](https://commits.webkit.org/320166@main))  (186223510)
- Fixed an issue where an SVG transform change could leave an ancestor layer’s cached repaint rects stale, resulting in incorrect repainting. ([320722@main](https://commits.webkit.org/320722@main))  (187005898)
- Fixed an issue where `SVGImage::isAnimating()` returned `true` for SVG images that had no animations. ([320839@main](https://commits.webkit.org/320839@main))  (187106396)

### Security

#### Resolved Issues

- Fixed an issue where a click in a backgrounded window could result in an action being taken. ([320186@main](https://commits.webkit.org/320186@main))  (186280350)
- Fixed an issue where `CredentialStorage::removeCredentialsWithOrigin` failed to purge HTTPS credentials that used the default port. ([320968@main](https://commits.webkit.org/320968@main))  (187210150)

### Web API

#### New Features

- Added support for `QuotaExceededError` as a `DOMException` subclass, exposed on `window` and worker global scopes. ([320856@main](https://commits.webkit.org/320856@main))  (141586555)

#### Resolved Issues

- Fixed an issue where `scrollWidth` and `clientWidth` returned inconsistent values when the page was zoomed in or out due to rounding. ([320773@main](https://commits.webkit.org/320773@main))  (121879134)
- Fixed an issue where rotating the device to landscape orientation could pause a video playing in full screen, by adding a site-specific quirk. ([320318@main](https://commits.webkit.org/320318@main))  (148284059)
- Fixed several `URLPattern` matching issues affecting Service Worker routing, including incorrect encoding of the `username` and `password` components and unhandled unclosed pattern groups. ([320122@main](https://commits.webkit.org/320122@main))  (183434701)
- Fixed an issue where WebDriver reported an empty URL instead of `about:blank` for a browsing context that had not yet navigated. ([320428@main](https://commits.webkit.org/320428@main))  (183468933)
- Fixed an issue where `WKWebView.magnification` reported the pre-gesture scale for a few moments after a pinch-to-zoom gesture ended, instead of the scale about to commit. ([320341@main](https://commits.webkit.org/320341@main))  (185381317)
- Fixed an issue where `Cache.delete()` and `Cache.keys()` swallowed exceptions thrown while constructing a `Request` from a URL string. ([320524@main](https://commits.webkit.org/320524@main))  (186636105)
- Fixed a regression where WebXR hit testing failed with a `TypeError` when `offsetRay` was not specified. ([320717@main](https://commits.webkit.org/320717@main))  (186997100)
- Fixed an issue where interrupting a scroll with a tap could incorrectly trigger navigation of the link under the pointer. ([321053@main](https://commits.webkit.org/321053@main))  (187268555)
- Fixed an issue where click events did not include the modifier keys that were pressed at the time of the click. ([320984@main](https://commits.webkit.org/320984@main))  (187270584)

### Web Extensions

#### New Features

- Added support for the `offscreen` API. ([318833@main](https://commits.webkit.org/318833@main))  (184269255)

#### Resolved Issues

- Fixed an issue where `i18n.getMessage()` dropped non-string substitution arguments instead of coercing them to strings. ([320931@main](https://commits.webkit.org/320931@main))  (149855718)
- Fixed an issue where `webRequest.onBeforeRequest` reported the resource type `main_frame` instead of `sub_frame` for subframe document loads. ([321067@main](https://commits.webkit.org/321067@main))  (167403388)
- Fixed an issue where a high priority static declarativeNetRequest redirect rule was not favored over a low priority session redirect rule. ([320739@main](https://commits.webkit.org/320739@main))  (176176246)
- Fixed an issue where `webRequest` events did not fire for loads blocked by a declarativeNetRequest rule. ([320336@main](https://commits.webkit.org/320336@main))  (176177851)
- Fixed an issue where `webRequest` events did not fire for page loads created with `tabs.create`. ([320430@main](https://commits.webkit.org/320430@main))  (177727052)
- Fixed an issue where an extension’s service worker lost its clients after being unloaded and reloaded, preventing it from finding an existing offscreen document. ([320198@main](https://commits.webkit.org/320198@main))  (186116488)
- Fixed an issue where an extension’s popover could be cut off because `vh`, `svh`, and `lvh` units resolved to the popover’s minimum height instead of its actual size. ([320726@main](https://commits.webkit.org/320726@main))  (186391990)

### Web Inspector

#### New Features

- Added support for network throttling of the inspected page. ([320893@main](https://commits.webkit.org/320893@main))  (144892477)

#### Resolved Issues

- Fixed an issue in Web Inspector where `WebSocket` handshake headers were missing when using the `Network.framework` loader. ([320156@main](https://commits.webkit.org/320156@main))  (185255819)
- Fixed an issue in Web Inspector where a `Debugger.globalObjectCleared` event from a subframe cleared every target’s script map instead of only the affected target’s. ([320787@main](https://commits.webkit.org/320787@main))  (187042936)

### WebAssembly

#### Resolved Issues

- Fixed an issue where JS string builtins and imported string constants were not applied when compiling WebAssembly modules loaded as ES modules. ([320174@main](https://commits.webkit.org/320174@main))  (186037843)
- Fixed an issue where the `WebAssembly.Exception` constructor rejected `null` options and incorrectly accepted non-object options. ([320215@main](https://commits.webkit.org/320215@main))  (186319813)
- Fixed an issue where the WebAssembly validator rejected `i31.get_s` and `i31.get_u` when the operand’s static type was a bottom reference type. ([320578@main](https://commits.webkit.org/320578@main))  (186660590)

### WebDriver

#### Resolved Issues

- Fixed an issue where WebDriver BiDi’s `script.call_function` trimmed error messages incorrectly, cutting off part of the message. ([320205@main](https://commits.webkit.org/320205@main))  (186311752)
- Fixed an issue where WebDriver’s `deleteAllCookies` command could report success before cookies had actually finished being deleted. ([320440@main](https://commits.webkit.org/320440@main))  (186410147)
- Fixed an issue where WebDriver reported a stale element reference error instead of a no such element error for a node reference belonging to a different browsing context. ([320518@main](https://commits.webkit.org/320518@main))  (186615759)
- Fixed an issue where WebDriver did not properly handle the right-hand variants of modifier keys, such as `ShiftRight` and `ControlRight`, on Cocoa platforms. ([320741@main](https://commits.webkit.org/320741@main))  (186961436)
- Fixed a regression where WebDriver returned `no such element` instead of `stale element reference` for a node reference from a previous document. ([320729@main](https://commits.webkit.org/320729@main))  (187042183)
- Fixed an issue where WebDriver’s Add Cookie command dropped the cookie when the request did not include a `sameSite` attribute. ([320916@main](https://commits.webkit.org/320916@main))  (187193380)

### WebGL

#### Resolved Issues

- Fixed an issue where WebGL contexts created with `premultipliedAlpha: false` were composited incorrectly. ([320650@main](https://commits.webkit.org/320650@main))  (53509398)

### WebGPU

#### Resolved Issues

- Fixed an issue where uploading a `canvas` as a WebGPU texture had very poor performance. ([320765@main](https://commits.webkit.org/320765@main))  (153642354)
- Fixed an issue where `GPUDevice.createBindGroup()`’s fast path failed to reuse bind groups containing a `GPUBuffer` entry alongside an external texture, forcing an unnecessary full rebuild. ([320309@main](https://commits.webkit.org/320309@main))  (186379208)
- Fixed an issue where a WebGPU external texture imported from a `video` element using WebM or MSE playback rendered as a black placeholder instead of the video frame. ([320427@main](https://commits.webkit.org/320427@main))  (186470526)
- Fixed an issue where using WebGPU render bundles on some GPUs could cause the device to be unexpectedly lost. ([320689@main](https://commits.webkit.org/320689@main))  (186688781)
- Fixed an issue where WebGPU could report the `primitive-index` feature as available on GPUs that don’t support it, resulting in an uncaptured error. ([320691@main](https://commits.webkit.org/320691@main))  (186690340)
- Fixed an issue in WebGPU where an array value constructor referenced through a type alias could generate invalid Metal Shading Language, silently producing incorrect compute results. ([320690@main](https://commits.webkit.org/320690@main))  (186803296)
- Fixed an issue in WebGPU where inlining three or more calls to a function operating on a large struct could silently miscompile on some devices, producing incorrect results. ([320697@main](https://commits.webkit.org/320697@main))  (186804865)
- Fixed an issue where asynchronous pipeline creation could stall rendering. ([321042@main](https://commits.webkit.org/321042@main))  (187296614)

### WebRTC

#### Resolved Issues

- Fixed an issue where a WebRTC UDP connection to an unresolved remote address was incorrectly restricted to IPv6. ([320716@main](https://commits.webkit.org/320716@main))  (186844205)
- Fixed an issue where a TURN UDP connection could fail unnecessarily when DNS resolution failed, by allowing the socket to open directly to the host. ([320720@main](https://commits.webkit.org/320720@main))  (186847964)

---

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)