Release Notes for Safari Technology Preview 117
Safari Technology Preview Release 117 is now available for download for macOS Big Sur and macOS Catalina. If you already have Safari Technology Preview installed, you can update in the Software Update pane of System Preferences on macOS.
This release covers WebKit revisions 268651-270230.
Web Inspector
- Elements
- Network
- Search
- Prevented stealing focus from the search field when shown (r269074)
- Sources
- Changed the default breakpoint action to be evaluate (r269547)
- Console
- Other Changes
- Updated styles to use CSS properties with neutral directionality (r269166)
CSS
- Added support for discrete animations of many CSS properties (r269812, r269333, r269357, r268792, r268718, r268726)
- Added support for animations on more pseudo-elements (such as
:marker
) (r269813) - Added support for more properties on
::marker
(r269774) - Added parse support for
aspect-ratio
CSS property (r269641) - Made CSS font shorthands parsable within a worker (r269957)
- Changed images as flex items to use the overridingLogicalHeight when defined to compute the logical width (r270073)
- Changed images as flex items to use the overridingLogicalWidth when defined to compute the logical height (r270116)
- Changed
background-size
to not accept negative values (r269237) - Fixed issues with percentage height on grid item replaced children when the grid item has a scrollbar (r269717)
- Serialized aspect ratio with spaces around the slash (r268659)
JavaScript
- Enabled static public class fields (r269922, r269939)
- Enabled static and instance private class fields (r270066)
- Implemented
Intl.DateTimeFormat.formatRangeToParts
(r269706) - Implemented
Intl.ListFormat
(r268956) - Aligned
%TypedArray%
behavior with recent spec adjustments (r269670) - Implemented
@@species
support inArrayBuffer#slice
(r269574) - Fixed
toLocaleDateString()
resolving incorrect date for some old dates (r269502) - Resurrected
SharedArrayBuffer
andAtomics
behind a flag (JSC_useSharedArrayBuffer=1
) (r269531)
WebAssembly
- Added wasm atomics instructions, partially behind a flag (
JSC_useSharedArrayBuffer=1
) (r270208) - Fixed opcodes for
table.grow
andtable.size
(r269790) - Implemented shared
WebAssembly.Memory
behind a flag (JSC_useSharedArrayBuffer=1
) (r269940) - Implemented i32
sign-extension-ops
(r269929)
Web API
- Added proper garbage collection to ResizeObserver (r268860)
- Changed
Worklet.addModule()
to reject promise with an AbortError when the network load fails (r270033) - Changed event targets to be cleared after dispatch if the target pointed to a shadow tree (r269546)
- Changed WebSocket constructor to not throw when the port is blocked (r269459)
- Fixed toggling dark mode to update the scrollbar appearance in
overflow: scroll
elements (r269437) - Fixed
navigator.clipboard
to be exposed on *.localhost pages (r269960) - Fixed auto-focus of text input to not select text (r269587)
- Fixed Canvas
drawImage
to not raise an IndexSizeError on empty sources (r270126) - Fixed
getIndexedParameter
indexing crash (r270160) - Fixed text getting clobbered when assigning to
input.defaultValue
(r269528) - Fixed
<input disabled>
to fire click events after dispatchEvent (r269452) - Fixed the space between minute and meridiem fields in time inputs being too large (r270148)
- Fixed
window.event
to not be affected by nodes moving post-dispatch (r269500) - Improved exception messages when
AudioContext.suspend()
/resume()
promises are rejected (r268999) - Promises returned by our DOM API have the caller’s global instead of the callee’s (r269227)
- Removed unneeded whitespace between content and
<br>
(r268958, r269036)
Speech Recognition
- Added audio capture for SpeechRecognition (r270158)
- Added a default action for SpeechRecognition permission request (r269918)
- Implemented basic permission check for SpeechRecognition (r269810)
WebRTC
- Added WebRTC
SFrame
transform (r269830) - Added infrastructure for WebRTC transforms (r269764)
- Added support for
RTCPeerConnection.onicecandidateerror
event (r270101) - Added support for RTCRtpScriptTransform (r270107)
- Added support for VP9 Profile 2 (10-bit color) in WebRTC (r268971)
- Increased camera failing timer to 30 seconds (r269190)
Media
- A video element may fail to enter picture-in-picture from fullscreen (r268816)
- Added handling trackId changes across Initialization Segments in MSE (r269121)
- Added
addOutput()
andremoveOutput()
utility functions to AudioSummingJunction (r268820) - Added skeleton implementation of Media Session API (r268735)
- Changed to ensure WebAudio API throws exceptions with useful error messages (r268812)
- Changed AudioBuffer channels to be neuterable and detachable (r269108)
- Fixed an infinite loop in sample eviction when duration is NaN in MSE (r270106)
- Fixed Web Audio continuing to play when navigating off the web page via an iframe (r268893)
- Fixed poor resampling quality when using AudioContext sampleRate parameter (r270141, r270157)
- Fixed
AudioBuffer.getChannelData(x)
to keep returning the same JavaScript wrapper for a given channel (r269081) - Fixed
AudioContext.suspend()
to not reject promise when the audio session is interrupted (r269039) - Fixed transparent video poster image to keep element transparent once the first frame is preloaded (r269407)
- Fixed fetching an audio worklet module using a data URL (r270046)
- Improved the speed of audio and video element creation up to 50x faster (r269077)
Web Animations
- Ensured animation updates are not scheduled when there are no styles to update (r269963)
- Fixed
KeyframeEffect.pseudoElement
to return a valid string when targeting::marker
or::first-letter
(r269623) - Fixed accelerated animations of individual transform properties to apply rotate before scale (r269527)
Scrolling
- Changed programmatic scroll to stop rubberbanding (r269373, r269559)
- Changed to update scrolling geometry immediately for programmatic scrolls (r269558)
Scroll Snap
- Fixed scroll snap specified on
:root
(r269506) - Fixed
scroll-snap
on root aligning to the body margin edge, not the viewport edge (r269622) - Made axis in
scroll-snap-type
required (r268665) - Made
scroll-margin
independent of scroll snapping and applied it when scrolling to anchors (r269144) - Made
scroll-padding
independent ofscroll-snap
and have it affect scrollIntoView (r270023) - Stopped creating implicit snap points at
scrollmin
andscrollmax
(r268856)
Private Click Measurement
- Added persistence for pending ad clicks and attributions so they survive browser restart (r270136)
- Changed to accept ad click data when the link opens a new window (r269129)
- Changed attribute and JSON key names according to the W3C conversation (r269886)
- Switched to JSON report format (r269489)