Release Notes for Safari Technology Preview 114
Safari Technology Preview Release 114 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 265893-267325.
Web Inspector
- Elements Tab
- Sources Tab
- Changed to allow event breakpoints to be configured (r266074, r266480)
- Changed to evaluate breakpoint conditions before incrementing the ignore count (r266138)
- Changed to allow DOM breakpoints to be configured (r266669)
- Changed to allow special JavaScript breakpoints to be configured (r266534)
- Changed to allow URL breakpoints to be configured (r266538)
- Network Tab
- Timelines Tab
- Fixed duplicate “Timeline Recording 1” on open (r266477)
- Fixed re-enabling the JavaScript Allocations timeline to show previously captured heap snapshots in the table (r266463)
- Fixed the record button disappearing when interface is narrow (r266537)
- Fixed the Stop Recording button to actually stop the recording (r267038)
- Audit Tab
- Allow audits to be created and edited in Edit mode in Web Inspector (r266317)
- Miscellaneous
- Fixed issue where the docking buttons wouldn’t work when docked if the window is too small (r267031)
JavaScript
- Added
Intl.DateTimeFormat
dateStyle
andtimeStyle
(r266035) - Added
Intl.Segmenter
(r266032) - Added a syntax error for
async function
in a single-statement context (r266340) - Added
Object.getOwnPropertyNames
caching and acceleratedObject.getOwnPropertyDescriptor
(r265934) - Aligned legacy
Intl
constructor behavior to spec (r266655) - Applied
Intl.DateTimeFormat
hour-cycle correctly whentimeStyle
is used (r267108) - Enabled
Intl.DisplayNames
(r266029) - Changed to not allow
let [
sequence to appear in an ExpressionStatement context (r266327) - Changed to allow
new super.property
syntax (r266322) - Changed to allow
new import.meta()
syntax (r266318) - Changed to use locale-sensitive grouping for grouping options in
IntlRelativeTimeFormat
(r266341) - Implemented
Intl.DateTimeFormat
dayPeriod
(r266323) - Implemented Intl Language Tag Parser (r266039)
- Implemented
Intl.DateTimeFormat.prototype.formatRange
(r266033) - Implemented unified
Intl.NumberFormat
(r266031) - Fixed an invalid early error for object literal method named
proto
(r266117) - Fixed implementation of the class “extends” clause incorrectly using
proto
for setting prototypes (r266106) - Fixed Performance and PerformanceNavigation interfaces missing
toJSON
operations (r267316) - Updated
Intl.Collator
to take a collation option (r267102) - Updated
Array.prototype.push
to always performSet
in strict mode (r266581, r266641) - Updated
Promise.prototype.finally
to performPromiseResolve
(r266896)
Date and Time Inputs
- Added editing to
<input type="datetime-local">
(r266830) - Updated date inputs to contain editable components (r266351)
- Updated date picker appearance to match system date pickers (r267085)
- Updated date picker when the inner control is edited (r266461)
- Updated date pickers to respect the document’s color scheme (r267131)
- Updated date/time inputs to focus the next editable component when entering a separator key (r267281)
- Updated date/time inputs to preserve focus on value change (r266739)
- Updated date/time inputs to not use user-specified formats to prevent fingerprinting (r267283)
Web Audio
- Added
AudioParam.automationRate
attribute (r265980) - Added proper support for
AudioContextOptions.sampleRate
(r267014) - Allowed direct creation of replacement codec (r266466)
- Changed
AudioParam.value
setter to callsetValueAtTime(value, now)
(r266293) - Changed
AudioParam.linearRampToValueAtTime()
formula to match specification (r266261) - Changed
AudioBufferSourceNode
to usefinal
values forplaybackRate
anddetune
(r265981) - Fixed
AnalyserNode.getFloatFrequencyData()
to fill array with-Infinity
when input is silent (r267202) - Fixed
AudioBufferSourceNode.start()
behavior when the offset is past the end of the buffer (r267169) - Fixed
AudioBufferSourceNode.start()
ignoringwhen
parameter when the pitch rate is 0 (r267170) - Fixed AudioContext not rendering until an AudioNode is constructed (r266922)
- Fixed
AudioDestinationNode.maxChannelCount
always returning 0 (r266559) - Fixed
AudioParam.linearRampToValueAtTime()
andexponentialRampToValueAtTime()
having no effect when there is no preceding event (r266788) - Fixed
BiquadFilterNode.getFrequencyResponse()
to returnNaN
for out-of-bounds frequencies (r266541) - Fixed the types of
Panner.setPosition()
andsetOrientation()
parameters to not be unrestricted float (r267071) - Dropped non-standard
AudioBuffer.gain
(r267065) - Made
AudioParam.cancelScheduledValues()
standards compliant (r266558) - Improved interpolation algorithm in OscillatorNode (r266627)
- Introduced StereoPannerNode Interface (r265962)
- Stopped performing “de-zippering” when applying gain (r266794)
MediaRecorder
- Enabled MediaRecorder by default on macOS (r267225)
- End of media capture should not be reported before 3 seconds of the start of capture (r267081)
- MediaRecorder timeslice parameter causing internal error on longer videos (r266611)
Paint Timing
- Enabled paint timing by default (r267235)
WebGL
- Enabled WebGL2 by default (r267027)
- Added WebGL and WebGL2 context support to OffscreenCanvas (r266275)
- WebGL goes in a bad state where
glContext.createProgram()
returns null (r266362)
CSS
- Fixed
text-transform
inheritance to::marker
(r266288) - Changed to set available column space before grid items prelayout (r266173)
- Added support for
flow-relative
shorthand and offset properties (r266674) - Changed to allow indefinite size flex items to be definite with respect to resolving percentages inside them (r266696)
- Changed to not skip flexboxes with auto height for percentage computations in quirks mode (r266716)
- Changed to use
min-content
size for intrinsic maximums resolution (r266675) - Fixed
min-height: auto
not getting applied to nested flexboxes (r266695) - Fixed
:visited
color taken on a non-visited link when using CSS variables (r266656) - Fixed CSS
revert
to serialize as “revert”, not “Revert” (r266660) - Updated to safely handle overly-long CSS variable values (r266989)
Web API
- Aligned
length
properties of function prototypes with specificcations (r266018) - Updated
ReadableStream.pipeTo
implementation to match specifications (r266129) - Updated Web Share API to prevent non-HTTP(S) URLs (r266151)
- Aligned ISO-8859-{3,6,7,8,8-I} and windows-{874,1253,1255,1257} encodings with specifications (r266527)
- Changed XML documents in iframes to not inherit encoding from the parent frame (r266671)
- Changed Element to not set an attribute inside its constructor (r267074)
- Changed
new URL("#")
to throw an error (r266748) - Fixed consecutive
requestAnimationFrame
callbacks that may get passed the same timestamp (r266526) - Fixed
XHR.timeout
getting affected by long tasks (r267227) - Fixed taking too long to fetch images from memory cache (r266699)
- Implemented
encodeInto()
TextEncoder method (r266533) - Updated the URL fragment percent encode set (r266399)
Lazy Loading
Media
- Fixed the PiP window getting closed when the video element is removed from the DOM (r265904)
- Fixed an HDCP error for all streams on Netflix (r266176)
- Fixed
<video>
element preventing screen from sleeping even after playback finishes (r266410)
WebRTC
- Added
RTCRtpSynchronizationSource.rtpTimestamp
(r266052) - Exposed
RTCPeerConnection.restartIce
(r266511) - Safari is not able to hear audio when using WebRTC in multiple tabs (r266454)
Rendering
- Fixed animations invalidating too often (r266229)
- Fixed flickering on sedona.dev (r266189)
- Fixed the cut off scrollbar on Facebook posts with lots of comments has cut off scrollbar that couldn’t scroll to the bottom (r266156)
- Changed to handle fonts that lie about being monospaced (r266118)
- Fixed programmatic selection of text in a text field that causes the highlight overlay to spill out (r266051)
- Fixed
overflow: scroll
rubber-banding getting interrupted by post-layout scrolling (r267002, r266337) - Fixed a flash when closing a webpage (r267250)
Text Rendering
- Changed
letter-spacing
to disable ligatures (r266683)
Scrolling
- Fixed vertical scrolling getting stuck when a horizontal scroller is under the mouse (r266292)
- Fixed select element scrolling after scrolling the page (r266262)
Back-Forward Cache
- Added support for third-party domains to get stored for back-forward navigations (r265916)
Storage Access API
- Allowed requests for storage access from nested iframes (r266479)