Safari Technology Preview Release 91 is now available for download for macOS Mojave and the macOS Catalina beta. 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 248705-249190.
Security
- Disabled legacy TLS 1.0 and TLS 1.1 (r249019)
JavaScript API
- Added a public API for unhandled promise rejections (r249058)
- Added support for hashbang in ESNext (r248826)
- Implemented optional chaining in ESNext (r248829)
- Implemented
StaticRange
constructor (r249079)
- Fixed
Date.prototype.toJSON
to not throw an exception if toISOString
returns an object (r248876)
- Fixed more missing exception checks in
String.prototype
(r248716)
- Fixed a bad error message when
for-await-of
is used in a non-async function (r248711)
- Fixed ProxyObject to not allow access to its target’s private properties (r248796)
- Updated the Promise constructor to check argument before `Construct?“ (r248787)
- Updated
Promise.prototype.finally
to accept non-promise objects (r248793)
JavaScript Performance
- Changed to avoid looking up the
join
function each time Array.prototype.toString
is called (r248906)
- Ensured
x?.y ?? z
is fast (r249117)
Media
- Fixed firing
webkitpresentationmodechanged
twice when exiting picture-in-picture (r249141)
- Updated to stop
MediaDevices
timer when stopping MediaDevices
(r248853)
- Fixed removing fullscreen element in a
requestAnimationFrame()
callback after requestFullscreen()
leaving fullscreen in an inconsistent state (r249147)
- Disabled devices should not be taken into account when searching for a capture device (r249154)
Web API
- Started to expose Geolocation interfaces (
GeolocationPosition
, GeolocationPositionError, and
GeolocationCoordinates
) on the global Window
object (r249066)
- Fixed Emoji with variation selectors to be rendered in emoji style, not text style (r248815)
- Changed SVG elements to become focusable when
focus
and key
event listeners are added (r248983)
- Changed the default tab index of
output
and fieldset
to be -1 (r248914)
Rendering
- Fixed drawing an animated image to a canvas via
drawImage
to draw the first frame (r249162)
Pointer Events
- Fixed removing the capture element preventing future pointer events from being dispatched on macOS (r248855)
WebDriver
- Fixed mouse buttons to be correctly printed in
SimulatedInputDispatcher
logging (r248715)
Web Inspector
- Elements
- Fixed issue where “Copy Rule” menu item copied commented out properties incorrectly (r249089)
- Changed to automatically enable the event listener when setting a breakpoint on it in the Node details sidebar (r248765)
- Changed the DOM tree to always be LTR, even in RTL mode (r248991)
- Network
- Changed the Headers pane to always be LTR, even in RTL mode (r248889)
- Resources
- Added syntax highlighting for more CSS media queries (r248810)
- Added syntax highlighting for JavaScript
BigInt
(r248898, r248908)
- Added pretty printing support for more modern JavaScript language features (r248760, r248785, r248922, r248923)
- Fixed a CodeMirror issue where tabs were still used even when the “Prefer indent using” setting is set to “Spaces” (r248739)
- Debugger
- Added a global breakpoint for pausing in the next microtask (r248894)
- Fixed an issue where the Assertion Failures breakpoint didn’t work when inspecting a JSContext (r248891)
- Console
- Implemented
queryHolders
Command Line API function (r248925)
- Updated
console.dir
to start out expanded when given an object (r249034)
- Created additional Command Line API functions for other
console
methods (r249078)
- Changed the Console to always be LTR, even in RTL mode (r248766)
- Sources (Experimental)
- Fixed an issue where the gear icon would move to the second line when the navigation sidebar is narrow (r248818)
- Fixed an issue where the “No Filter Results” message was displayed on top of all of the other content, preventing any interaction (r248737)
- Gave Origins their own icon in the navigation sidebar (r248912)
- Moved the resource type scope bar to be next to the filter in the navigation sidebar (r248916, r248940)
- Provided a way to create an arbitrary Inspector Style Sheet (r248753)
- Layers (Experimental)
- Fixed the background of the 3D area not updating when transitioning to/from Dark Mode (r248735)
WebGPU
- Added unary plus (r248756)
- Changed enums to not be shadowed by local variables (r248812)
- Fixed WebGPU layers not showing up sometimes (r248879)
- Implemented GPUErrors for and relax GPUBuffer validation rules (r249183)
- Made
operator==
native and added bool matrices (r248795)
- Updated matrices to have constructors that take a flattened list of scalars (r248754)
- Updated vertex shader and fragment shader to be able to come from two different programs (r248993)