Release Notes for Safari Technology Preview 70

Safari Technology Preview Release 70 is now available for download for macOS Mojave and macOS High Sierra. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS Mojave and from the Mac App Store’s Updates tab on macOS High Sierra. After updating to macOS Mojave, you may have to reinstall Safari Technology Preview.

This release covers WebKit revisions 237630-237919.

Web Animations

  • Implemented getTiming() and updateTiming() (r237853)
  • Implemented Animation.updatePlaybackRate() (r237854)
  • Changed to not reset pending tasks when setting a null effect (r237856)
  • Made document.getAnimations() return declarative animations in the correct order (r237726)
  • Updated the API to allow the auto composite value (r237855)
  • Updated the Web Animations API to remove all of the ReadOnly interfaces (r237852)

Intersection Observer

  • Added support to allow cross-document intersection observing (r237737)
  • Fixed isIntersecting computation when 0 is not a threshold (r237798)
  • Updated to account for CSS zoom when computing client rects (r237862)


  • Added CSS Custom Properties API Support for syntax="*" and <length> with proper cycle handling (r237697)
  • Fixed <picture> container to update when the prefers-color-scheme media query changes (r237878)
  • Fixed CSS grid elements with justify-content:space-around that have extra whitespace (r237884)
  • Implemented text-underline-offset and text-decoration-thickness (r237903, r237835)


  • Added support for sender and receiver getCapabilities (r237911)
  • Added onremovetrack support for RTCPeerConnection removed tracks (r237908)
  • Changed MediaRecorder to fire dataavailable event when all tracks are ended and stop() is called (r237642, r237650, r237675)
  • Fixed calling sender.replaceTrack() twice producing a new transceiver and its corresponding m= section (r237910)
  • Fixed sender.replaceTrack() fails with InvalidStateError if the transceiver.direction is “inactive” (r237916)
  • Fixed RTCTrackEvent.streams should be SameObject (r237688)
  • Updated to prevent revealing device IDs until the user has granted permission to capture (r237643)
  • Updated enumerateDevices to not expose devices that are not available to getUserMedia (r237770)
  • Updated to prevent prompting the user again after denying a getDisplayMedia request (r237879)


  • Fixed requestAnimationFrame causing bad location of position:fixed inside overflow:auto and iframe (r237754)
  • Fixed overlays with -webkit-overflow-scrolling:touch to become scrollable after added text makes it taller (r237849)

Web Inspector

  • Added low-power video playback enter and exit events in Timelines and Network waterfalls (r237669)
  • Added support to show save and restore stack for recorded 2D Canvases (r237808)
  • Added missing context menu items for links in the Styles sidebar (r237660)
  • Added support to toggle selected properties by pressing Space or ⌘/ (Command-/) in the Styles sidebar (r237692)
  • Added support for multiple selection and multiple deletion of cookie records (r237746)
  • Created a setting for auto-recording newly created contexts in the Canvas tab (r237670)
  • Implemented copying and deletion of multiple properties in the Styles sidebar (r237659)
  • Updated to capture changes to <canvas> (i.e., canvas size) that would affect the recorded context in the Canvas tab (r237777)


  • Added a storage limit for IndexedDB (r237700)
  • Changed IndexedDB to allow storing RTCCertificate (r237779)


  • Fixed MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0') getting improperly rejected (r237655)

Payment Request

  • Changed the errorFields of PaymentResponse.retry() to be optional (r237776)

Security UI

  • Added a warning in the Smart Search field when loading non-secure pages