News

Safari Technology Preview 121 Release Offers Bug Fixes and Performance Improvements

Apple on Thursday released Safari Technology Preview 121, 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.

Safari Technology Preview‌ release 121 includes bug fixes and performance improvements for Web Inspector, CSS, GPU Process, Media, Web API, JavaScript, WebAssembly, Accessibility, and Speech Recognition.

The current ‌Safari Technology Preview‌ release is built on the new Safari 14 update included in macOS Big Sur.

The preview is available for both macOS Catalina and macOS Big Sur.

Release 121

Web Inspector

  • Sources
    • Collapsed blackboxed call frames in the Call Stack section (r272371)

CSS

  • Added support for aspect-ratio on grid items (r272307)
  • Added support for logical variants of scroll-padding and scroll-margin (r272035)
  • Added support for color(a98-rgb …), color(prophoto-rgb …), color(rec2020 …), color(xyz …), hwb() as part of CSS Color 4 (r271992, r272125, r272123, r272311, r272344)
  • Added support for percentages when parsing color(srgb …) and color(display-p3 …) per-spec (r271866)
  • Changed sRGB to XYZ conversion matrix values to match values in the latest spec (r272498)
  • Fixed max-height percentages that are wrongly resolved for replaced grid items (r272309)
  • Fixed grid item to fill the grid area for stretch or normal self alignment (r272308)
  • Fixed animation of rotate or scale property to correctly account for static translate property (r272201)
  • Fixed font-stretch to apply to system-ui (r272073)
  • Fixed the nested grid container which has a replaced item with max-height incorrectly getting width(0px) (r272338, r272711)
  • Implemented scroll-snap-stop for scroll snapping (r272610)
  • Handled aspect-ratio: auto m/n for replaced elements (r272360)
  • Handled min-width: auto or min-height: auto for aspect-ratio (r272718)
  • Handled zero aspect-ratio width or height (r271948)
  • Made auto && <ratio> use content box-sizing (r272569)

GPU Process

  • Enabled audio capture in GPUProcess by default (r272735)
  • Enabled audio capture for speech recognition in GPUProcess (r272434)
  • Enabled GPU WebRTC codecs in GPUProcess by default on macOS (r272496)
  • Enabled video capture in GPUProcess by default on macOS (r272810)
  • Fixed <audio> not loading when the URL ends with .php causing some tests to time out (r272750)
  • Fixed implementation of WebGL power preference and discrete/internal GPU selection with ANGLE (r271880)

Media

  • Added intermediate volume icon states between “mute” and “max” (r272375)
  • Changed media controls to show the total duration, only switching to time remaining when clicked (r272373)
  • Changed MediaStream-backed video elements to not compute the mediaType based on track muted states (r272583)
  • Connected MediaSession with MediaRemote and NowPlaying (r272445, r272589)
  • Fixed sound on YouTube after switching back to foreground (r272829)
  • Fixed playback of WebM/Opus generated from Chrome MediaRecorder (r272822)
  • Fixed Picture-in-Picture video pauses when scrolling on Twitter (r271870)
  • Updated media controls time scrubber styles (r272352, r272438)
  • Updated media controls to use new SF Symbols (r272339)

Web API

  • Fixed the return key binding for date inputs conflicting with pressing return to submit a form (r272495
  • Fixed selecting a date on datetime-local inputs unexpectedly adding second and millisecond fields (r272368)
  • Fixed rendering a pattern with an SVG image (r272549)
  • Forbid “|” in URL hosts (r271899)
  • Reduced the overhead of HTMLDocumentParser in innerHTML setter (r272622)

JavaScript

  • Added @ in Error#stack even if function name does not exist (r272139)
  • Added Atomics support for BigInt64Array and BigUint64Array behind a runtime flag (JSC_useSharedArrayBuffer=1) (r272341)
  • Adjusted properties order of host JS functions (r272099)
  • Changed Object.assign to throw for property creation on non-extensible target (r272411)
  • Handled milliseconds in Date’s timezone without floating point rounding (r272127)
  • Implemented BigInt64Array and BigUint64Array (r272170, r272215)
  • Implemented private methods behind flag (JSC_usePrivateMethods=1)(r272580)
  • Made JSON.parse faster by using table for fast string parsing (r272570)

WebAssembly

  • Implemented WebAssembly.instantiateStreaming and WebAssembly.compileStreaming (r271993)
  • Implemented streaming compilation/instantiation for the Blob type (r272221)
  • Updated WebAssembly.Global to support Funcref and Externref (r272071, r272081, r272119)
  • Enabled Wasm bulk-memory and reference-types (r272074)

Accessibility

  • Exposed focusable elements even if the element or ancestor has aria-hidden=true (r272390)
  • Fixed long narrow tables to not be made into data tables unnecessarily (r272024)

Speech Recognition

  • Used the user media permission prompt for Speech Recognition (r272165)

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.