Release Notes for Safari Technology Preview 17

Safari Technology Preview Release 17 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 207669–208261.

Safari Extensions

  • Removed NPAPI Plug-in support from .safariextz Safari Extensions

Custom Elements

  • Enabled Custom Elements everywhere by default (r208201)
  • Changed Custom Elements reactions to have a queue per element (r207810)
  • Enqueued attributeChanged and connected callbacks when upgrading a custom element (r207710)
  • Custom Elements reactions are now enqueued for HTML API (r208082) and CSS OM APIs (r208176)

Web APIs

  • Implemented rel=noopener (r207840)
  • Enabled stylesheets loading via a link element inside Shadow DOM subtrees (r208403)
  • Added support for HTML formatted content from event.dataTransfer.getData('text/html') and event.clipboardData.getData('text/html') in onpaste or ondrop events (r207797)

Input Events

  • Added support to fire insertReplacementText input events when holding down a key to choose an accented character (r208143)
  • Implemented InputEvent.getTargetRanges() (r207670)
  • Implemented support for insertFromDrop and deleteByDrag (r208014)
  • Implemented support for insertFromComposition, deleteByComposition, insertCompositionText, and deleteCompositionText input types for Input Events (r207698)
  • Implemented support for InputEvent.dataTransfer (r207841)

URL Parser

  • Matched the behavior of the old URL parser when %2E is in the URL path (r207805)
  • Prevented interpreting host of URLs with unrecognized schemes as an IPv4 address (r208086)

Fetch API

  • Ensured the redirection count is no more than 20 in case of cross origin requests (r208046)
  • Ensured redirections are upgraded only if declared by CSP policy (r207752)
  • Changed ReadableStream to only clone the second branch (r208039)


  • Fixed arrow functions with concise bodies to be able to return regular expressions (r207798)
  • Fixed String.prototype.replace() to throw an OutOfMemoryError when using too much memory (r207861)
  • Enabled JSON.stringify to handle an ES6 Proxy that has an array element context (r208123)

Web Inspector

  • Added support for Custom Elements in Web Inspector (r208218)
  • Enabled showing Shadow DOM scoped styles in Web Inspector (r208199)
  • Added a pinned tab for settings with various text editor preferences (r208091)
  • Breakpoints not working in scripts with unicode characters (r208097)
  • Fixed the alignment for arrows in the Styles scope bar item (r208190)
  • Fixed the ⌘+ shortcut not increasing the size of Web Inspector’s user interface (r207850)
  • Fixed Open Resource Dialog to jump to the last line when entering :*n* where “n” is greater than the number of lines in the file (r208188)
  • Improved the debugger highlight in some exception cases (r208260)
  • Improved Quick Open sorting algorithm (r207782)
  • Improved console.log support in Web Workers (r208010)
  • Included parameter strings for native CustomElementRegistry methods in the console (r208072)
  • Prevented showing empty Closure sections in the Scope chain (r207784)


  • Avoided unnecessary full style resolution in getComputedStyle for non-inherited properties (r207755)
  • Fixed backdrop-filter to render properly when removed and then re-added (r207722)
  • Fixed rendering dynamically-added backdrop-filter to a clip-path’d element with 3D transform (r207723)
  • Changed behavior to create a stacking context while an animation is running when the animation keyframes affect stacking context properties (r208025)
  • Prevented painting text selection within an SVG mask (r207692)
  • Corrected the blur radius for filter: drop-shadow() (r208058)
  • Changed style resolver to be updated lazily (r207669)


  • Allowed multiple playing videos on a page with autoplay and playsinline attributes (r208149)
  • Fixed WebAudio to resume when moving from background to foreground tab (r208092)
  • Fixed video playback stalls when seeking beyond the buffered range for some video sites (r207694)
  • Added support for wide gamut in Quick Look image popovers (r208020)


  • Changed the preloading behavior to match the behavior on iOS, where resources like images are loaded at a lower priority (r208049)

Indexed Database 2.0

  • Support renaming IDBObjectStores (r207641) and IDBIndexes (r207761)
  • Implemented IDBTransaction.objectStoreNames() (r207821)
  • Implemented IDBObjectStore.openKeyCursor() (r207845)
  • Implemented IDBObjectStore.getAll() and IDBObjectStore.getAllKeys() (r208194)
  • Implemented IDBIndex.getAll() and IDBIndex.getAllKeys() (r208261)

Bug Fixes

  • Fixed an issue where JavaScript dialogs (alert, confirm, prompt) and Safari’s external navigation confirmation prompt showed empty messages