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-ratioCSS 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-sizeto 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
@@speciessupport inArrayBuffer#slice(r269574) - Fixed
toLocaleDateString()resolving incorrect date for some old dates (r269502) - Resurrected
SharedArrayBufferandAtomicsbehind a flag (JSC_useSharedArrayBuffer=1) (r269531)
WebAssembly
- Added wasm atomics instructions, partially behind a flag (
JSC_useSharedArrayBuffer=1) (r270208) - Fixed opcodes for
table.growandtable.size(r269790) - Implemented shared
WebAssembly.Memorybehind 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: scrollelements (r269437) - Fixed
navigator.clipboardto be exposed on *.localhost pages (r269960) - Fixed auto-focus of text input to not select text (r269587)
- Fixed Canvas
drawImageto not raise an IndexSizeError on empty sources (r270126) - Fixed
getIndexedParameterindexing 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.eventto 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
SFrametransform (r269830) - Added infrastructure for WebRTC transforms (r269764)
- Added support for
RTCPeerConnection.onicecandidateerrorevent (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.pseudoElementto return a valid string when targeting::markeror::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-snapon root aligning to the body margin edge, not the viewport edge (r269622) - Made axis in
scroll-snap-typerequired (r268665) - Made
scroll-marginindependent of scroll snapping and applied it when scrolling to anchors (r269144) - Made
scroll-paddingindependent ofscroll-snapand have it affect scrollIntoView (r270023) - Stopped creating implicit snap points at
scrollminandscrollmax(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)