<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-70",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 70 Release Notes"
}
-->

# Safari Technology Preview 70 Release Notes

Preview the latest web technology updates including: Web Animations, Intersection Observer, CSS, WebRTC, Rendering, Web Inspector, Storage, Media, Payment Request, and Security UI.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 70 is now [available for download](https://webkit.org/downloads/) 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](https://trac.webkit.org/log?stop_rev=237630&rev=237919&limit=999).

### Web Animations

- Implemented `getTiming()` and `updateTiming()` ([r237853](https://trac.webkit.org/changeset/237853/webkit/))
- Implemented `Animation.updatePlaybackRate()` ([r237854](https://trac.webkit.org/changeset/237854/webkit/))
- Changed to not reset pending tasks when setting a null effect ([r237856](https://trac.webkit.org/changeset/237856/webkit/))
- Made `document.getAnimations()` return declarative animations in the correct order ([r237726](https://trac.webkit.org/changeset/237726/webkit/))
- Updated the API to allow the `auto` composite value ([r237855](https://trac.webkit.org/changeset/237855/webkit/))
- Updated the Web Animations API to remove all of the ReadOnly interfaces ([r237852](https://trac.webkit.org/changeset/237852/webkit/))

### Intersection Observer

- Added support to allow cross-document intersection observing ([r237737](https://trac.webkit.org/changeset/237737/webkit/))
- Fixed `isIntersecting` computation when 0 is not a threshold ([r237798](https://trac.webkit.org/changeset/237798/webkit/))
- Updated to account for CSS zoom when computing client rects ([r237862](https://trac.webkit.org/changeset/237862/webkit/))

### CSS

- Added CSS Custom Properties API Support for `syntax="*"` and `<length>` with proper cycle handling ([r237697](https://trac.webkit.org/changeset/237697/webkit/))
- Fixed `<picture>` container to update when the `prefers-color-scheme` media query changes ([r237878](https://trac.webkit.org/changeset/237878/webkit/))
- Fixed CSS grid elements with `justify-content:space-around` that have extra whitespace ([r237884](https://trac.webkit.org/changeset/237884/webkit/))
- Implemented `text-underline-offset` and `text-decoration-thickness` ([r237903](https://trac.webkit.org/changeset/237903/webkit/), [r237835](https://trac.webkit.org/changeset/237835/webkit/))

### WebRTC

- Added support for sender and receiver `getCapabilities` ([r237911](https://trac.webkit.org/changeset/237911/webkit/))
- Added `onremovetrack` support for RTCPeerConnection removed tracks ([r237908](https://trac.webkit.org/changeset/237908/webkit/))
- Changed MediaRecorder to fire `dataavailable` event when all tracks are ended and `stop()` is called ([r237642](https://trac.webkit.org/changeset/237642/webkit/), [r237650](https://trac.webkit.org/changeset/237650/webkit/), [r237675](https://trac.webkit.org/changeset/237675/webkit/))
- Fixed calling `sender.replaceTrack()` twice producing a new transceiver and its corresponding `m=` section ([r237910](https://trac.webkit.org/changeset/237910/webkit/))
- Fixed `sender.replaceTrack()` fails with InvalidStateError if the `transceiver.direction` is “inactive” ([r237916](https://trac.webkit.org/changeset/237916/webkit/))
- Fixed `RTCTrackEvent.streams` should be SameObject ([r237688](https://trac.webkit.org/changeset/237688/webkit/))
- Updated to prevent revealing device IDs until the user has granted permission to capture ([r237643](https://trac.webkit.org/changeset/237643/webkit/))
- Updated enumerateDevices to not expose devices that are not available to getUserMedia ([r237770](https://trac.webkit.org/changeset/237770/webkit/))
- Updated to prevent prompting the user again after denying a getDisplayMedia request ([r237879](https://trac.webkit.org/changeset/237879/webkit/))

### Rendering

- Fixed requestAnimationFrame causing bad location of `position:fixed` inside `overflow:auto` and `iframe` ([r237754](https://trac.webkit.org/changeset/237754/webkit/))
- Fixed overlays with `-webkit-overflow-scrolling:touch` to become scrollable after added text makes it taller ([r237849](https://trac.webkit.org/changeset/237849/webkit/))

### Web Inspector

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

### Storage

- Added a storage limit for IndexedDB ([r237700](https://trac.webkit.org/changeset/237700/webkit/))
- Changed IndexedDB to allow storing RTCCertificate ([r237779](https://trac.webkit.org/changeset/237779/webkit/))

### Media

- Fixed `MediaSource.isTypeSupported('video/mp4; codecs="hvc1.1.6.L60.B0')` getting improperly rejected ([r237655](https://trac.webkit.org/changeset/237655/webkit/))

### Payment Request

- Changed the `errorFields` of `PaymentResponse.retry()` to be optional ([r237776](https://trac.webkit.org/changeset/237776/webkit/))

### Security UI

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

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)