Release Notes for Safari Technology Preview 160

Safari Technology Preview Release 160 is now available for download for macOS Monterey 12.3 or later and macOS Ventura. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS Monterey, or System Settings under General → Software Update on macOS Ventura.

This release includes WebKit changes between: 256265@main…257350@main

Note: Shared Tab Groups and syncing for Tab Groups, Website Settings, and Web Extensions are not enabled in this release.

Web Inspector

  • Elements Tab
    • Fixed corrupted styles when adding a new property to a rule with a commented-out property in the Styles sidebar (256410@main)
  • Storage Tab
    • Fixed extensions showing a UUID instead of their name for cookie entries (256695@main)


  • Added support for media queries level 4 including range queries (257252@main)
  • Fixed -webkit-radial-gradient parsing that treated a number of mandatory commas as optional (256468@main)
  • Fixed transition-property: none to disassociate CSS Transition from owning the element (256666@main)
  • Fixed border-image-* returning the initial keyword instead of the initial value when setting the border-image shorthand (257119@main)
  • Fixed @font-face src descriptor format parsing to only allow identifiers for specified formats (256382@main)
  • Fixed font shorthand to reset more longhand properties (256349@main)
  • Fixed legend tags not accepting the full range of display values (256841@main)


  • Added width and height content attributes to <model> (257294@main)
  • Changed to not apply aspect ratio scaling to gradient background images that don’t have a natural aspect ratio (256256@main)
  • Changed to use device pixel scaled backing store for <canvas> with image-rendering: pixelated (256299@main)
  • Changed to not paint a focus ring for anonymous block continuations (257199@main)
  • Changed to use unclamped subgrid track sizes to compute track positions, so that gap is accounted for correctly (256621@main)
  • Fixed Grid track sizing to reset the override width as well as height to compute intrinsic sizing (256622@main)
  • Fixed incorrect clipping when a layer is present between the column and the content layer (256953@main)
  • Fixed pixel-moving CSS filters with clipping (256825@main)
  • Fixed <textarea> placeholder text that does not disappear when inserting text without a user gesture (257210@main)
  • Fixed the incorrect static position of absolute-positioned elements inside relative-positioned containers (256722@main)
  • Fixed rendering for extreme border-radius (256943@main)
  • Fixed a positioned element with percentage padding to recalculate width when the containing block is changed (256315@main)

Web Animations

  • Implement KeyframeEffect.iterationComposite (257059@main)
  • Fixed opacity to use unclamped values for from and to keyframes with iterationComposite (257033@main)
  • Implemented correct accumulation support for the filter property (256952@main)
  • Implemented correct additivity support for the filter property (256955@main)
  • Fixed to correctly accumulate and clamp filter values when blending with "none" (256976@main)
  • Fixed filter values containing a url() to animate discretely (256970@main)
  • Fixed support for blending mismatched filter lists (256975@main)
  • Fixed baseline-shift animation is incorrect (256934@main)
  • Fixed changing writing-mode or direction on an element that has an animation targeting a logical property to ensure animation resolution is scheduled (256667@main)
  • Fixed keyframes to be recomputed if the CSS variable that is used changes (256893@main)
  • Fixed word-spacing to support animating between percentage and fixed values (256951@main)
  • Fixed Animation.commitStyles() not changing the style attribute for individual CSS transform properties (256728@main)


  • Changed the default for the x1, y1, and y2 attributes to 0% for LinearGradient (257032@main)


  • Changed to keep MediaKeySystemAccess alive in a createMediaKeys() async task (256442@main)
  • Changed to ensure current time is not removed during automatic eviction (256939@main)
  • Changed to not seek with no seekable range (256759@main)
  • Changed to explicitly close an RTCNetworkManager on document teardown (256319@main)
  • Fixed web audio rendering becoming garbled when switching from speakers to headphones and vice-versa (256712@main)
  • Fixed rendering artifacts when presenting fullscreen video (256251@main)
  • Fixed RGBA data VideoFrame copyTo (256534@main)
  • Fixed enabling subtitles when tracks are added after the video is loaded (256408@main)
  • Fixed the incorrect size of a video track’s settings in the second MediaStream created when the aspectRatio constraint is applied (256433@main)
  • Improved the coded frame eviction algorithm (256441@main)


  • Enabled resizable ArrayBuffer (257005@main, 256998@main, 256826@main)
  • Added JIT optimizations for ResizableArrayBuffers (257001@main)
  • Added support for Atomics.waitAsync (257061@main)
  • Added binding generator support for async iterable (257021@main)
  • Aligned Function#name behavior with spec (257114@main)
  • Relaxed Date parsing to accept narrow-no-break-space (256754@main)
  • Fixed the thrown error type for WebAssembly.Tag.getArg (256158@main)
  • Fixed WeakMap and WeakSet constructors to accept symbols (256758@main)
  • Fixed Array.prototype.indexOf constant-folding to account for non-numeric index (256590@main)
  • Fixed in operator parsing inside for statement destructuring (256497@main)
  • Implemented Array.fromAsync (257177@main)
  • Implemented growable SharedArrayBuffer (256524@main, 256766@main)
  • Implemented String#isWellFormed and String#toWellFormed (257250@main)
  • Improved resizable TypedArray’s slice implementation’s spec conformance (257018@main)
  • Updated resizable ArrayBuffer based on spec update (257178@main)
  • Wired memory allocation reporting to ArrayBuffer resize and grow (257042@main)


  • Added support for subtyping declarations (256243@main)
  • Changed call_ref to take a type index (256285@main)
  • Fixed incorrect text in WASM error message (256176@main)

Service Workers

  • Changed to make sure nested worker gets controlled if matching a service worker registration (256637@main)
  • Changed to not use the service worker preload for modified requests (257110@main)
  • Fixed service worker download in case of preloads (256731@main)
  • Removed the “Frame load interrupted” warning in Web Inspector when clicking a link to download a file served by a service worker with a fetch event handler (256725@main)


  • Fixed dynamic aria-disabled changes not updating enabled status for descendants (257159@main)
  • Fixed to include AXKeyShortcutsValue in accessibilityAttributeNames when there is an aria-keyshortcuts attribute (257274@main)
  • Fixed listed size announced by VoiceOver despite use of aria-setsize=-1 (256861@main)
  • Fixed a bug preventing Shadow DOM content from being exposed to accessibility clients when used in an aria-modal or dialog (256531@main)


  • Fixed non-breaking space getting inserted instead of a normal space character between text nodes in contenteditable (257136@main)


  • Enabled UserActivation API (257214@main, 256572@main)
  • Changed to only require a “transient” user activation for Web Audio rendering (256721@main)
  • Changed to not detach whitespace nodes when the previous sibling is an out-of-flow block (256602@main)
  • Changed to keep br element while replacing plain texts with content ending with newline (257205@main)
  • Changed to prevent hidden documents from locking the screen orientation (257019@main)
  • Changed to use 'self' as the permission policy for Web Share (256556@main)
  • Fixed clearing floats added dynamically to previous siblings (256238@main)
  • Fixed content downloaded with fetch() API when Content-Encoding: gzip is set is not decompressed (256755@main)
  • Fixed dedicated worker and shared worker global scope to use the response URL (256532@main)
  • Fixed elements with position: sticky that jitter inside a container with overflow-x: clip (256618@main)
  • Fixed broken preferred widths optimization involving subtree layout roots (256623@main)
  • Fixed CSS.supports behaviour with regards to !important and whitespace (257196@main, 257280@main, 257313@main)
  • Fixed CSSStyleValue.parse() and CSSStyleValue.parseAll() for shorthand CSS properties (256228@main)
  • Fixed form association behavior when a form and a control with form= are removed from a document together (256620@main)
  • Fixed form-association for <img> (256629@main)
  • Fixed hidden buttons that can’t be used as the submitter in an implicit submission (256813@main)
  • Fixed screen sharing when constraints passed by getDisplayMedia contains the ideal parameter (256458@main)
  • Fixed notification.close() (257108@main)
  • Fixed overlay regions sometimes getting stuck in the wrong place (256504@main)
  • Fixed clicking an email field on a sign-up form not allowing input until clicked a second time (256581@main)
  • Fixed WebSocket requests to include Sec-Fetch-Mode=websocket for FetchMetadata (256527@main)
  • Implemented input validation for CSSColorValues (256229@main)
  • Implemented messageerror event (256896@main)
  • Implemented support for StylePropertyMap.append() (257123@main)
  • Improved the speed of setting the value of <textarea> (256596@main)
  • Simplified early dedicated worker termination (256949@main)
  • Updated the streams WebIDL to match the latest specifications (257279@main)