News

Apple Releases Safari Technology Preview 160 – Brings Bug Fixes and Performance Improvements

Apple has released Safari Technology Preview 160, the latest version of their developer preview web browser. The preview version of Apple’s popular browser offers developers and other interested users the ability to try out features that may or may not, debut in future public release versions of Safari.

‌The current ‌Safari Technology Preview‌ release is built on the Safari 16 update and it includes features coming in macOS Ventura. It adds support for Live Text in videos and images, new web technologies, web push Passkeys, improved Safari Web Extensions, and more.

The preview is available for both macOS Monterey and macOS Ventura. It is no longer available for macOS Big Sur.

Release 160

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

Web Inspector

  • Elements Tab
    • Added emulation toggles for prefers-reduced-motion and prefers-contrast CSS media features (257197@main)
    • 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)

CSS

  • 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)

Rendering

  • 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)

SVG

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

Media

  • 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)

JavaScript

  • 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)

WebAssembly

  • 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)

Accessibility

  • 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)

Editing

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

Web API

  • 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 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)

While the preview is intended for use by developers and advanced users, in order to provide Apple with feedback on the development of the Safari browser, it can be run side-by-side with the release version of Safari. The app doesn’t require a developer account to download and install. For more information, visit the Safari Technology Preview website.

Chris Hauk

Chris is a Senior Editor at Mactrast. He lives somewhere in the deep Southern part of America, and yes, he has to pump in both sunshine and the Internet.