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 and position: 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)


  • 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)


  • 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 and DOMPoint (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 and document.webkitCurrentFullScreenElement from exposing a node inside a shadow tree (r209628)


  • Changed to require preflight for non-standard CORS-safelisted request headers Accept, Accept-Language, and Content-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 with nonce attribute (r209759)
  • Content Security Policy: Allow ws: and wss: with connect-src * or default-src * (r209789)


  • 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 and SubtleCrypto.exportKey (r209437)
  • Added support for PKCS8 format while doing SubtleCrypto.importKey and SubtleCrypto.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