Release Notes for Safari Technology Preview 97
Safari Technology Preview Release 97 is now available for download for macOS Catalina and macOS Mojave. 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 251627-252823.
Resize Observer
- Enabled Resize Observer by default (r251822)
WebAuthn
- Added UI with instructions for authenticating with a security key while authenticating
- Added support for legacy Google NFC Titan security keys (r252297)
Web Animations
- Added support for
AnimationEvent.pseudoElement
(r251840) - Fixed retargeted transitions targeting accelerated properties that do not stop the original transition (r252540)
- Fixed the easing property for a CSS transition effect (r251657)
- Fixed the transform property always
none
forgetKeyframes()
output of a CSS Animation (r251839) - Fixed
getKeyframes()
to return the right timing function for declarative animations (r251649)
Web Inspector
- Elements
- Added support for multiline CSS property values (r252523)
- Added support for highlighting nodes that match CSS rules with pseudo-selectors (r252436)
- Added color picker support for P3 color space (r252168)
- Fixed an issue where copying multiple DOM nodes would only copy the last selected DOM node (r252615)
- Fixed
aqua
andfuchsia
not being detected as CSS colors (r252448) - Outlined sRGB-safe areas on the P3 color picker (r252747)
- Sources
- Added a context menu item to reveal the local override when a resource is loaded from it (r252495)
- Added support for matching local overrides based on URL pattern in addition to exact match (r252614)
- Changed to prefer non-blackboxed scripts when showing a source code location link (r253087)
- Changed to fire Node Removed breakpoints whenever the DOM node is removed from the main DOM tree, not just when it’s removed from it’s parent (r251871)
- Fixed “Toggle Visibility” context menu item to work for elements inside a shadow tree (r252026)
- Made the default content of the Inspector Bootstrap Script a comment that explains how it works (r251921)
- Moved the “Local Override…” creation item from the Breakpoints section options menu to the Create Resource menu (r252517)
- Made call frames from blackboxed scripts visually distinct (r252745)
- Timelines
- Layers
- Enabled the Layers Tab by default (r252063)
- Console
- Settings
- Enabled line wrapping by default (r251918)
Rendering
- Fixed image flashing with
transform: rotate
animation (r252486) - Implemented accelerated video-to-texture upload path for ANGLE backend for WebGL (r252741)
Back-Forward Cache
- Added site-specific back-forward cache quirk to work around an issue on vimeo.com (r252301)
- Fixed WebAnimation to never prevent entering the back-forward cache (r251742)
- Fixed PaymentRequest and PaymentResponse to not prevent entering the back-forward cache (r252338)
- Fixed UserMediaRequest to not prevent entering the back-forward cache (r251746)
- Made MediaStream and MediaStreamTrack back-forward cache friendly (r252337)
SVG
- Added the
orient
property of the interface SVGMarkerElement (r252444) - Added percentage support for
fill-opacity
,stroke-opacity
,stop-opacity
, andflood-opacity
(r251696) - Changed properties that take
<position>
to not accept 3 values (r251668) - Disabled SVG shapes should not be hit (r252069)
- Fixed
SVGGeometryElement.getPointAtLength
to clamp its argument (r251877) - Fixed opacity to always serialize as a number (r251828)
Clipboard API
- Added some infrastructure to resolve ClipboardItems into pasteboard data for writing (r252315)
- Added support for
Clipboard.readText()
(r252627)
CSS
- Added support for the Q unit (r251662)
- Changed CSS Transitions and CSS Animations properties to treat unit-less 0 as an invalid value for times (r251658)
- Fixed CSS grid line name positions after auto repeat with no line names (r251965)
- Fixed
-webkit-font-smoothing: none
not antialiasing subsequent elements (r252622) - Fixed
::before
and::after
elements not filling their grid cell when the container hasdisplay: contents
(r251780) - Fixed
calc()
serialization to match the specifications (r253079) - Implemented the CSS
clamp()
function (r253105)
Remote Playback API
- Enabled Remote Playback API by default (r251784, r251737)
- Ensured the MediaRemote callback always called (r252331)
Media
- Batched multiple EME key requests into one request and response (r251895)
JavaScript
- Added BigInt support for
++
and--
(r252680) - Fixed
Intl.DateTimeFormat
to return resolvedOptions in the correct order (r251815) - Optimized Promise runtime functions (r251671)
- Implement
String.prototype.replaceAll
(r252683)
Picture-in-Picture Web API
- Enabled the Picture-in-Picture API by default (r251925, r251745, r251797)
- Added support for the
:picture-in-picture
CSS pseudo-class for video elements in picture-in-picture mode (r252330) - Fixed picture-in-picture events to fire when entering or exiting the picture-in-picture mode (r252240)
WebAssembly
Web API
- Added fullscreen style support for reddit.com (r251827)
- Changed the file input to fire an
input
event before thechange
event (r252768) - Changed hidden framesets to provide default
edgeInfo
value (r251680) - Fixed
<input type="range">.setAttribute("value")
to update the value (r251718) - Fixed some captcha images rendering as a blank white space (r252353)
- Fixed content sometimes disappearing for a
<video>
with controls and clipping (r252070) - Fixed a bug where focusing a shadow host which delegates focus will properly skip inner shadow hosts that delegate focus (r252537)
- Fixed
getComputedStyle
returningauto
forzIndex
property even after it has been set on non-positioned elements (r252724) - Fixed very slow tile rendering due to event region painting in Google Docs spreadsheets (r252419)
- Fixed notification permissions not getting remembered for origins without a port (r251709)
- Fixed
VeryHigh
priority loads (r252431)