<!--
{
  "documentType" : "article",
  "framework" : "Safari Technology Preview Release Notes",
  "identifier" : "/documentation/Safari-Technology-Preview-Release-Notes/stp-release-17",
  "metadataVersion" : "0.1.0",
  "role" : "article",
  "title" : "Safari Technology Preview 17 Release Notes"
}
-->

# Safari Technology Preview 17 Release Notes

Preview the latest web technology updates including: Safari Extensions, Custom Elements, Web APIs, Input Events, URL Parser, Fetch API, JavaScript, Web Inspector, CSS, Media, Networking, Indexed Database 2.0, and bug fixes.

## Overview

[Safari Technology Preview Release 17](https://webkit.org/blog/6017/introducing-safari-technology-preview/) is now [available for download](https://webkit.org/downloads/) 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](https://trac.webkit.org/log/?stop_rev=207669&rev=208261&limit=999).

### Safari Extensions

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

### Custom Elements

- Enabled Custom Elements everywhere by default ([r208201](https://trac.webkit.org/changeset/208201))
- Changed Custom Elements reactions to have a queue per element ([r207810](https://trac.webkit.org/changeset/207810))
- Enqueued `attributeChanged` and `connected`  callbacks when upgrading a custom element ([r207710](https://trac.webkit.org/changeset/207710))
- Custom Elements reactions are now enqueued for HTML API ([r208082](https://trac.webkit.org/changeset/208082)) and CSS OM APIs ([r208176](https://trac.webkit.org/changeset/208176))

### Web APIs

- Implemented `rel=noopener` ([r207840](https://trac.webkit.org/changeset/207840))
- Enabled stylesheets loading via a `link` element inside Shadow DOM subtrees ([r208403](https://trac.webkit.org/changeset/208403))
- Added support for HTML formatted content from  `event.dataTransfer.getData('text/html')`  and `event.clipboardData.getData('text/html')` in `onpaste` or `ondrop` events ([r207797](https://trac.webkit.org/changeset/207797))

### Input Events

- Added support to fire `insertReplacementText` input events when holding down a key to choose an accented character ([r208143](https://trac.webkit.org/changeset/208143))
- Implemented `InputEvent.getTargetRanges()` ([r207670](https://trac.webkit.org/changeset/207670))
- Implemented support for `insertFromDrop` and `deleteByDrag` ([r208014](https://trac.webkit.org/changeset/208014))
- Implemented support for `insertFromComposition`, `deleteByComposition`, `insertCompositionText`, and `deleteCompositionText` input types for Input Events ([r207698](https://trac.webkit.org/changeset/207698))
- Implemented support for `InputEvent.dataTransfer` ([r207841](https://trac.webkit.org/changeset/207841))

### URL Parser

- Matched the behavior of the old URL parser when `%2E` is in the URL path ([r207805](https://trac.webkit.org/changeset/207805))
- Prevented interpreting host of URLs with unrecognized schemes as an IPv4 address ([r208086](https://trac.webkit.org/changeset/208086))

### Fetch API

- Ensured the redirection count is no more than 20 in case of cross origin requests ([r208046](https://trac.webkit.org/changeset/208046))
- Ensured redirections are upgraded only if declared by CSP policy ([r207752](https://trac.webkit.org/changeset/207752))
- Changed ReadableStream to only clone the second branch ([r208039](https://trac.webkit.org/changeset/208039))

### JavaScript

- Fixed arrow functions with concise bodies to be able to return regular expressions ([r207798](https://trac.webkit.org/changeset/207798))
- Fixed `String.prototype.replace()` to throw an `OutOfMemoryError` when using too much memory ([r207861](https://trac.webkit.org/changeset/207861))
- Enabled `JSON.stringify` to handle an ES6 Proxy that has an array element context ([r208123](https://trac.webkit.org/changeset/208123))

### Web Inspector

- Added support for Custom Elements in Web Inspector ([r208218](https://trac.webkit.org/changeset/208218))
- Enabled showing Shadow DOM scoped styles in Web Inspector ([r208199](https://trac.webkit.org/changeset/208199))
- Added a pinned tab for settings with various text editor preferences ([r208091](https://trac.webkit.org/changeset/208091))
- Breakpoints not working in scripts with unicode characters ([r208097](https://trac.webkit.org/changeset/208097))
- Fixed the alignment for arrows in the Styles scope bar item ([r208190](https://trac.webkit.org/changeset/208190))
- Fixed the ⌘+ shortcut not increasing the size of Web Inspector’s user interface ([r207850](https://trac.webkit.org/changeset/207850))
- 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](https://trac.webkit.org/changeset/208188))
- Improved the debugger highlight in some exception cases ([r208260](https://trac.webkit.org/changeset/208260))
- Improved Quick Open sorting algorithm ([r207782](https://trac.webkit.org/changeset/207782))
- Improved `console.log` support in Web Workers ([r208010](https://trac.webkit.org/changeset/208010))
- Included parameter strings for native `CustomElementRegistry` methods in the console ([r208072](https://trac.webkit.org/changeset/208072))
- Prevented showing empty Closure sections in the Scope chain ([r207784](https://trac.webkit.org/changeset/207784))

### CSS

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

### Media

- Allowed multiple playing videos on a page with `autoplay` and `playsinline` attributes ([r208149](https://trac.webkit.org/changeset/208149))
- Fixed WebAudio to resume when moving from background to foreground tab ([r208092](https://trac.webkit.org/changeset/208092))
- Fixed video playback stalls when seeking beyond the buffered range for some video sites ([r207694](https://trac.webkit.org/changeset/207694))
- Added support for wide gamut in Quick Look image popovers ([r208020](https://trac.webkit.org/changeset/208020))

### Networking

- Changed the preloading behavior to match the behavior on iOS, where resources like images are loaded at a lower priority ([r208049](https://trac.webkit.org/changeset/208049))

### Indexed Database 2.0

- Support renaming IDBObjectStores ([r207641](https://trac.webkit.org/changeset/207641)) and IDBIndexes ([r207761](https://trac.webkit.org/changeset/207761))
- Implemented `IDBTransaction.objectStoreNames()` ([r207821](https://trac.webkit.org/changeset/207821))
- Implemented `IDBObjectStore.openKeyCursor()` ([r207845](https://trac.webkit.org/changeset/207845))
- Implemented `IDBObjectStore.getAll()` and `IDBObjectStore.getAllKeys()` ([r208194](https://trac.webkit.org/changeset/208194))
- Implemented `IDBIndex.getAll()` and `IDBIndex.getAllKeys()` ([r208261](https://trac.webkit.org/changeset/208261))

### Bug Fixes

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

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)