Release Notes for Safari Technology Preview 20
Safari Technology Preview Release 20 is now available for download for macOS Sierra. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions 209238-209803.
Visual Viewport
- Enabled the new “visual viewports” model for how
position: fixed
andposition: sticky
elements are positioned during pinch zooming and while zoomed in (r209409)
Touch Bar
- Prevented emoji buttons from displaying in the Touch Bar for password inputs (r209626)
JavaScript
- Enabled Shared Array Buffers (r209568)
- Added a syntax error to report an unexpected token when async is followed by identifier in contexts where an async arrow function cannot occur (r209350)
Web API
- Added
Document.onvisibilitychange
event handler attribute (r209750) - Added reflected
nonce
attribute to the HTML Link element (r209644) - Added support for the deprecated dictionary constructors of
DOMPointReadOnly
andDOMPoint
(r209677) - Fixed an issue where Custom Elements from a different document are not customized when created with
innerHTML
(r209610) - Fixed an issue causing animations followed by a transition to not always fire the
transitionend
event (r209675) - Prevented
document.webkitFullscreenElement
anddocument.webkitCurrentFullScreenElement
from exposing a node inside a shadow tree (r209628)
Security
- Changed to require preflight for non-standard CORS-safelisted request headers
Accept
,Accept-Language
, andContent-Language
(r209261, r209510) - Implemented Strict Mixed Content Checking;
block-all-mixed-content
directive (r209577) - Content Security Policy: Taught preload scanner how to preload
<script>
s and<link>
s withnonce
attribute (r209759) - Content Security Policy: Allow
ws:
andwss:
withconnect-src *
ordefault-src *
(r209789)
CSS
- Enabled support for a modern CSS parser, ported from Blink, that improves performance, specification compliance, and compatibility with other browsers, while also adding support for scientific notation in all CSS numbers (r209396)
- Fixed short columns in elements with the
columns
property (r209719) - Fixed scrolling without momentum at the end of a scroll snapping container (r209477)
- Fixed line selection in flexbox layouts (r209427)
- Fixed
::after
and::before
on:host
(r209535) - Fixed an issue causing keyframes to not work when defined inside a style in a shadow tree (r209352)
Pointer Lock
- Prevented
document.pointerLockElement
from exposing a node inside a shadow tree (r209648) - Changed to exit pointer lock when page goes into page cache (r209525)
- Made the cursor visible when exiting pointer lock using the ESC key (r209394, r209464)
- Changed the API for pointer lock to be hidden when disabled in the Experimental Features menu (r209364)
- Changed to exit pointer lock when a JavaScript alert is shown (r209555)
- Changed behavior to exit both fullscreen and pointer lock when the ESC key is pressed (r209504)
Web Inspector
- Added the ability to distinguish if a script was parsed as a module (r209492)
- Changed Heap Snapshot data grids to allow keyboard navigation (r209709)
- Fixed Assertion Failures breakpoint to respect the global Breakpoints enabled setting (r209311)
- Added support for template literals in the Breakpoint Log action (r209706)
- Fixed an issue where some resources fetched via Fetch API would not have data (r209629)
- Fixed a bug to allow deleting a breakpoint from a worker script (r209557)
- Updated Esprima to support new syntax for
**
operators ,async
,await
, and trailing commas (r209491)
WebCrypto API
- Added support for SPKI format for
SubtleCrypto.importKey
andSubtleCrypto.exportKey
(r209437) - Added support for PKCS8 format while doing
SubtleCrypto.importKey
andSubtleCrypto.exportKey
(r209633) - Changed to allow importing keys without usages for RSA algorithms (r209657)
Bug Fixes
- Fixed an issue that could cause YouTube to pause when switching tabs (r209425)
- Fixed an issue where typing certain queries into Safari’s Smart Search Field would crash Safari Technology Preview
- Fixed an issue where pages loading in background tabs would erroneously appear in the frontmost tab when they finished loading