Release Notes for Safari Technology Preview 252

Safari Technology Preview Release 252 is now available for download 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: 319252@main…320112@main.

Accessibility

Resolved Issues

  • Fixed the accessible name of a display: contents element incorrectly including text from its siblings. (319287@main) (185108892)
  • Fixed list marker text being included in accessible names and values that requested text without list markers. (319615@main) (185422271)

Animations

Resolved Issues

  • Fixed an unresolved current time for a progress-based timeline being treated as a progress timeline boundary. (319442@main) (183902668)
  • Fixed a newly encountered animation frame rate being aligned with the lowest compatible frame rate instead of the highest. (319362@main) (185152473)
  • Fixed an animation of width or height being incorrectly accelerated when only some keyframes have a size-dependent transform. (319363@main) (185153675)
  • Fixed view timeline range boundaries discarding subpixel adjustments for sticky positioned elements. (319369@main) (185162728)
  • Fixed keyframes using revert-layer or revert-rule no longer being recomputed after a KeyframeEffect is copied. (319368@main) (185164643)
  • Fixed scroll-timeline-name and view-timeline-name to be loosely matched across shadow tree boundaries. (320040@main) (185206745)

CSS

New Features

  • Added support for the named-feature() function in @supports conditions. (319412@main) (183688843)
  • Added support for CSSConditionRule.supports. (319302@main) (184943650)
  • Added support for the unprefixed user-select CSS property. (319562@main) (184964807)
  • Added support for CSSMediaRule.matches. (319988@main) (185154835)
  • Added support for percentage values in text-decoration-inset. (320052@main) (185850399)

Resolved Issues

  • Fixed line-clamp not clamping content inside an inline block. (319848@main) (168534323)
  • Fixed an unexpected ellipsis appearing when line-clamp is applied to content with a block inside an inline box. (319392@main) (182123153)
  • Fixed the computed value of display for -webkit-box and -webkit-inline-box when combined with -webkit-box-orient: vertical and the continue property. (319370@main) (182288734)
  • Fixed random() and random-item() with an auto caching key in the same property value producing the same random value. (319463@main) (182846761)
  • Fixed margins trimmed by margin-trim being reflected in computed style. (319612@main) (184215336)
  • Fixed subgrid columns ignoring the parent grid’s content distribution from justify-content. (319353@main) (184542148)
  • Fixed the resolution of font-relative lengths when a minimum font size is in effect. (319340@main) (184727481)
  • Fixed an issue where grid item margins were not included in the intrinsic size contributions of a grid container. (319836@main) (184789473)
  • Fixed an issue where extra space was not distributed beyond growth limits when sizing grid tracks. (319837@main) (184933769)
  • Fixed ::selection failing to repaint when its style changes. (319662@main) (184994906)
  • Fixed invalidation and serialization of properties that use attr() with a number or percentage value. (319994@main) (185088893)
  • Fixed anchor(right) not resolving to an inline anchor’s right edge in vertical-rl writing mode. (319286@main) (185108663)
  • Fixed px values inside calc() expressions being serialized incorrectly in computed style when zoom is applied. (319320@main) (185156231)
  • Fixed text-overflow: ellipsis not being shown on content that is not clamped when using line-clamp. (319597@main) (185348784)
  • Fixed offset-path not respecting corner-shape when using a <coord-box> reference box. (319655@main) (185447602)
  • Fixed corner-shape drawing square and notch corners as round and scoop on outlines and box-shadow spread. (319606@main) (185452130)
  • Fixed font load status changes being reported with an incorrect previous state when script runs in response to a FontFace loaded promise. (319575@main) (185462848)
  • Fixed incorrect style sharing between elements when a computed value depends on the lh unit. (319596@main) (185508307)
  • Fixed interpolation of corner-shape for outset curves to match the updated specification algorithm. (319661@main) (185519894)
  • Fixed: Removed the inline, inline-start, and inline-end values from margin-trim, which now accepts none | block | [ block-start || block-end ]. (319622@main) (185527437)
  • Fixed: Changed calc() simplification so that clamp(none, a, b) becomes max(a, b) and clamp(a, b, none) becomes min(a, b). (319614@main) (185531467)
  • Fixed align-content moving a floated child twice in block containers. (319665@main) (185536955)
  • Fixed grid content not contributing to the scrollable overflow area. (319929@main) (185923265)
  • Fixed background-size: contain, background-size: cover, and automatic sizing ignoring SVG images that have one intrinsic dimension and no aspect ratio. (319972@main) (185970333)
  • Fixed arguments to registered custom functions so that they are evaluated in the calling context. (320022@main) (185975255)

CSS Grid Lanes

Resolved Issues

  • Fixed: Renamed the flow-tolerance property to fit-tolerance. (319795@main) (185125327)

Canvas

Resolved Issues

  • Fixed shadows rendering with a stale, incorrect transform in some cases. (319534@main) (185405205)

Editing

Resolved Issues

  • Fixed pasted text being cut off in some web-based code editors. (319350@main) (184653264)
  • Fixed typing a space in editable content inside a <summary> or <button> element also activating that element. (319628@main) (185479319)

Forms

Resolved Issues

  • Fixed: Updated the default styling for appearance: base-select to center-align items, use lh units for padding, and reset all font properties on ::picker-icon and ::checkmark. (319816@main) (184843832)
  • Fixed spin buttons for <input type="number"> not repainting when the window’s active state changes. (319683@main) (185625389)

HTML

Resolved Issues

  • Fixed the dialog focusing steps not moving focus after calling show() because the <dialog> was still treated as unrendered. (319387@main) (185156091)
  • Fixed dialog.close() restoring focus even when focus was not inside the dialog and the dialog was not modal. (319640@main) (185549474)
  • Fixed documentElement.focus() to move focus to the viewport instead of doing nothing. (319730@main) (185567540)
  • Fixed script elements parsed from XML by DOMParser executing after being cloned. (319922@main) (185943138)

Images

Resolved Issues

  • Fixed ImageDecoder not applying an image’s EXIF orientation to the decoded frames. (319527@main) (184850407)
  • Fixed ImageDecoder producing VideoFrame objects with a duration of zero. (319526@main) (185257570)

JavaScript

Resolved Issues

  • Fixed worker.terminate() and page reloads not terminating a worker that is blocked in Atomics.wait or a WebAssembly atomic.wait. (319508@main) (147482360)
  • Fixed Promise.try() to resolve its result with PromiseResolve, so a promise returned by the callback is no longer wrapped in an extra promise. (319276@main) (185064567)
  • Fixed regular expression backreferences not restoring the input position when reading a surrogate pair fails. (319560@main) (185065533)
  • Fixed Uint8Array.prototype.setFromBase64() so that nothing is read and no error is thrown when the target array has zero length. (319275@main) (185073630)
  • Fixed a regular expression using the s flag matching from the start of the string instead of from lastIndex. (320086@main) (185814135)
  • Fixed the Referer header sent for descendant and dynamically imported module script fetches. (319921@main) (185943042)
  • Fixed String.prototype.replace with a unicode regular expression splitting a surrogate pair after an empty match. (320099@main) (186143674)

Media

Resolved Issues

  • Fixed videos immediately exiting fullscreen back to inline after an earlier video had been played in fullscreen. (320084@main) (174807377)
  • Fixed an issue where interacting with the inline media controls could dismiss a site’s custom video presentation. (319741@main) (181244652)
  • Fixed video failing with MEDIA_ERR_ABORTED and restarting from the beginning after restoring a page from the back/forward cache. (319472@main) (183119720)
  • Fixed ManagedMediaSource not firing the startstreaming event when seeking outside the buffered range. (319330@main) (183790572)
  • Fixed an issue where a video could begin playing ahead of another video that requested playback earlier while audio session activation was still pending. (319455@main) (185043324)
  • Fixed an unnecessary ended event being fired when seeking to the end of an HTMLMediaElement backed by a MediaSource. (319847@main) (185145277)
  • Fixed an issue where audio could continue playing for several seconds after closing a tab. (319759@main, 319842@main) (185505597)

Networking

Resolved Issues

  • Fixed cookies being stored as session cookies when their Expires date uses the month-before-day format produced by Date.prototype.toString(). (320016@main) (185840799)

Performance

Resolved Issues

  • Fixed hidden page throttling heuristics not being applied to newly created pages. (319630@main) (185461584)

Rendering

Resolved Issues

  • Fixed characters overlapping adjacent text when a space glyph’s base advance is substituted. (319556@main) (180227130)
  • Fixed incorrect element dimensions being reported for content inside an iframe whose owner element generates no box. (319910@main) (181639379)
  • Fixed content overlapping when an element gains a scrollbar during layout. (320066@main) (183465635)
  • Fixed a list marker overlapping the list item content when the marker text is right-to-left. (319314@main) (185048387)
  • Fixed an outside list marker keeping a line of its own when a block is appended to an empty list item. (319289@main) (185109123)
  • Fixed a block-level box on a line being handed its own float as an intruding float. (319290@main) (185109160)
  • Fixed list markers not updating when the list item’s font changes dynamically. (319476@main) (185330733)
  • Fixed an issue where adjoining margins did not collapse when a container’s first child was a float or an out-of-flow box. (319696@main) (185591842)
  • Fixed an issue where margins did not collapse after a self-collapsing block-level box on a line. (319697@main) (185598333)
  • Fixed an issue where a list marker was painted on top of the list item’s content instead of behind it. (319818@main) (185741211)
  • Fixed an issue where a block-level box on a line was left behind when a column break moved the line. (319821@main) (185787568)
  • Fixed backdrop-filter being clipped to a rounded rectangle instead of following corner-shape. (320063@main) (185813432)
  • Fixed an issue where a max-width length was not honored on an out-of-flow replaced element with an intrinsic aspect ratio. (319917@main) (185831651)
  • Fixed a relatively positioned block-level box on a line reporting scrollable overflow as wide as the entire line. (319899@main) (185835450)
  • Fixed an issue where an orthogonal block-level box inside an inline box made its container as wide as the box instead of as wide as its content. (319897@main) (185890940)
  • Fixed the position of an orthogonal block-level box inside an inline box. (319895@main) (185895981)
  • Fixed background-size: cover painting nothing for an SVG image with an extreme natural aspect ratio. (320008@main) (186006463)

SVG

New Features

  • Added support for text-overflow as an SVG presentation attribute. (319563@main) (176146717)
  • Added support for SVG external resources, allowing url() references to SVG resources such as filters, masks, and gradients in external documents. (319411@main) (183940963)

Deprecations

  • Removed the use-script, no-change, and reset-size values from dominant-baseline to match SVG 2. (319256@main) (174635806)

Security

Resolved Issues

  • Fixed an issue where navigations to external URLs in subframes were not consistently blocked. (319798@main) (185801936)

Web API

New Features

  • Added support for a stack property on DOMException, matching other error objects. (319782@main) (185770735)

Resolved Issues

  • Fixed the Digital Credentials API settling the navigator.credentials.get() promise synchronously instead of queuing a global task as required by the specification. (319421@main) (182678875)
  • Fixed a streaming fetch() response body being withheld from the reader until the next network chunk arrived. (319981@main) (185883588)

Web Audio

Resolved Issues

  • Fixed AudioBufferSourceNode ignoring the offset passed to start() when using a negative playbackRate. (319674@main) (184484940)
  • Fixed AudioBufferSourceNode to clamp out-of-range loopStart and loopEnd values. (319755@main) (185752079)
  • Fixed an issue where AudioBufferSourceNode rendered only silence when start() was called with an out-of-bounds offset and a negative playbackRate. (319779@main) (185769043)

Web Inspector

New Features

  • Added logging of the site-specific quirks active on a page to the Web Inspector console. (319533@main) (185246801)

Resolved Issues

  • Fixed an exception being thrown when selecting a CDATA section in the DOM tree. (319252@main) (185027124)

WebAssembly

New Features

  • Added support for WebAssembly memory64 together with multiple memories. (319336@main) (185152671)

Resolved Issues

  • Fixed inconsistent CompileError messages when compiling a WebAssembly module with more than one invalid function by always reporting the error for the lowest function index. (319430@main) (140651602)
  • Fixed a re-exported imported WebAssembly.Tag not being the same object as the one that was imported. (319294@main) (185121644)
  • Fixed re-exporting an imported immutable WebAssembly.Global so that the exports object returns the same object instead of a new wrapper. (319351@main) (185184951)
  • Fixed WebAssembly.Module.imports() and WebAssembly.Module.exports() exposing the type field from the unfinished JS Type Reflection proposal. (319427@main) (185281658)

WebGL

Resolved Issues

  • Fixed the orientation and improved the performance of WebGL canvas contents copied into an image, such as when drawing a WebGL canvas into a 2D canvas or an ImageBitmap. (319576@main) (184913852)
  • Fixed getAttribLocation() and getUniformLocation() not reporting an INVALID_OPERATION error when querying an unlinked program with a reserved name prefix. (319903@main) (185565011)

WebGPU

New Features

  • Added support for the snorm10-10-10-2 value of GPUVertexFormat. (319603@main) (185379686)

Resolved Issues

  • Fixed a typo in WGSL diagnostics that named the sampler_comparison type incorrectly. (320037@main) (186031593)

WebRTC

Resolved Issues

  • Fixed an issue where certificate fingerprints were not validated against the previously generated offer or answer when applying a local description. (319822@main) (183719203)
  • Fixed TURN server URLs containing query-string parameters such as ?transport=tcp being rejected, which prevented relay ICE candidates from being gathered. (319365@main) (184556197)