News

Safari Technology Preview 116 Release Offers Bug Fixes and Performance Improvements

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

Release 116 includes bug fixes and performance improvements for Web Extensions, Web Inspector, Web Audio API, MediaRecorder, CSS, Rendering, JavaScript, WebAuthn, Media, Web API, URL Parsing, Storage Access API, Accessibility, and WebDriver.

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

Release 116

Web Extensions

  • Added support for non-persistent background pages
  • Fixed browser.tabs.update() to accept calls without a tabId parameter
  • Fixed browser.tabs.update() to allow navigations to a URL with a custom scheme

Web Inspector

  • Sources
    • Added support for creating a local override from resources that failed to load
    • Added a + to the Local Overrides section in the navigation sidebar to streamline creating custom local overrides
    • Fixed issue where event breakpoints were not editable after being added
    • Fixed issue where line-based JavaScript breakpoints were not added on reload
    • Fixed issue where the Sources Tab had wrong icon when paused

Web Audio API

  • Enabled AudioWorklet API by default
  • Added implementation for AudioWorkletGlobalScope.registerProcessor()
  • Added implementation for AudioWorkletGlobalScope‘s currentFrame, currentTime, and sampleRate attributes
  • Changed to use AudioWorkletProcessor to process audio
  • Changed calling AudioContext.resume() right after AudioContext.suspend() to be a no-op
  • Changed AudioWorkletGlobalScope to perform a microtask checkpoint after each rendering quantum
  • Fixed parameters argument for AudioWorkletProcessor.process() to be spec-compliant

MediaRecorder

  • Enabled video capture by default on macOS
  • Added support for MediaRecorder bitrate getters
  • Added support for MediaRecorder pause and resume
  • Added support for respecting enabled and muted tracks
  • Added support for BlobEvent.timecode
  • Fixed MediaRecorder .stop to not throw in Inactive state
  • Made sure to fire the correct set of events in case MediaRecorder stream has track changes

CSS

  • Added support for the individual transform properties translate, rotate, scale, including accelerated animation
  • Fixed flex-grow property to be animatable
  • Fixed CSS image-orientation: none to be ignored for cross-origin images
  • CSS transform computed style should not reflect individual transform properties
  • Added painting CSS highlights over images
  • Fixed clip-path: path() ignoring page zooming
  • Fixed background-clip: var(–a) invalidating -webkit-background-clip: text when –a: text

Rendering

  • Respect the font size when presenting the <select> dropdown when custom fonts are used

JavaScript

  • Changed arguments.callee to become ThrowTypeError if the function has a complex-parameter-list (spec-term)
  • Changed BigInt constructor to be constructible while it always throws an error
  • Fixed Array.prototype.sort‘s sortBucketSort which accessed an array in an invalid way leading to incorrect results with indexed properties on the prototype chain
  • Improved the essential internal methods for %TypedArray% to adhere to spec

WebAuthn

  • Removed the alg field from the attestation statement

Media

  • Fixed AirPlay menu not showing up when the AirPlay button is clicked
  • Improved computation of default audio input and output devices

Web API

  • Allowed passive mouse wheel event listeners to not force synchronous scrolling
  • Implemented Blob.stream
  • Updated FileReader.result to return null if it isn’t done yet
  • Improved xhr.response conformance to the specification

URL Parsing

  • Aligned URL setters to reasonable behaviors of other browsers
  • Changed to parse “#” as a delimiter for fragment identifier in data URIs
  • Changed to fail parsing URLs with hosts containing invalid punycode encodings
  • Fixed UTF-8 encoding in URL parsing

Storage Access API

  • Enabled per-page storage access scope

Accessibility

  • Fixed accessibility on Presidential Executive Order pages

WebDriver

  • Fixed WebDriver Input clear/value commands when the target is inside a Shadow DOM

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

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.