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

# Safari Technology Preview 33 Release Notes

Preview the latest web technology updates including: Performance, JavaScript, WebRTC, Media Streams and Capture, Media, CSS Grid, Web API, Rendering, Web Inspector, and bug fixes.

## Overview

[Safari Technology Preview](https://webkit.org/blog/6017/introducing-safari-technology-preview/) Release 33 is now [available for download](https://webkit.org/downloads/) for macOS Sierra and betas of macOS High 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 [217407-217978](https://trac.webkit.org/log?stop_rev=217407&rev=217978&limit=999).

### Performance

- Fixed an issue that could lead to large memory use in the Safari Technology Preview and web content processes when certain Safari Extensions are installed

### JavaScript

- Fixed `for-in` optimization static analysis in the bytecode generator ([r217438](https://trac.webkit.org/changeset/217438/webkit/))
- Improved performance of `String.prototype.concat` ([r217648](https://trac.webkit.org/changeset/217648/webkit/))
- Improved the bytecode and type information provided for `toLength` ([r217530](https://trac.webkit.org/changeset/217530/webkit/))
- Optimized `Map` and `Set` constructors ([r217525](https://trac.webkit.org/changeset/217525/webkit/))

### WebRTC

- Added WebRTC stats logging ([r217888](https://trac.webkit.org/changeset/217888/webkit/), [r217519](https://trac.webkit.org/changeset/217519/webkit/))

### Media Streams and Capture

- Fixed `getUserMedia` prompting too often ([r217910](https://trac.webkit.org/changeset/217910/webkit/))
- Prevented `getUserMedia` requests from background tabs unless the tab is already capturing ([r217930](https://trac.webkit.org/changeset/217930/webkit/))
- Prevented `getUserMedia` from prompting again if the user denied access ([r217945](https://trac.webkit.org/changeset/217945/webkit/))

### Media

- Enabled clients to specify a list of codecs that should require hardware decode support ([r217799](https://trac.webkit.org/changeset/217799/webkit/))
- Exempted exclusively wall-powered devices from client-required hardware codec support ([r217906](https://trac.webkit.org/changeset/217906/webkit/))
- Aligned Web Audio implementation to specifications when clients pass a value of 0 for `bufferSize` to the `createScriptProcessor()` method ([r217919](https://trac.webkit.org/changeset/217919/webkit/))

### CSS Grid

- Added support for orthogonally positioned grid items ([r217486](https://trac.webkit.org/changeset/217486/webkit/))
- Fixed the behavior of positioned items without specific dimensions ([r217411](https://trac.webkit.org/changeset/217411/webkit/))
- Fixed the logical margin applied in the tracks sizing algorithm of auto tracks ([r217709](https://trac.webkit.org/changeset/217709/webkit/))
- Fixed margin applied when stretching an orthogonal item in a fixed size track ([r217705](https://trac.webkit.org/changeset/217705/webkit/))

### Web API

- Aligned `<col span>` and `<colgroup span>` limits with the latest HTML specification ([r217907](https://trac.webkit.org/changeset/217907/webkit/))
- Fixed null `content-type` and `content-length` when fetching Blob URLs with XHR ([r217901](https://trac.webkit.org/changeset/217901/webkit/))
- Fixed `getComputedStyle()` to return pixel values for left, right, top, and bottom, matching the specifications  ([r217522](https://trac.webkit.org/changeset/217522/webkit/))
- Implemented `fromFloat32Array`, `fromFloat64Array`, `toFloat32Array`, and `toFloat64Array` for  `DOMMatrix` ([r217764](https://trac.webkit.org/changeset/217764/webkit/))
- Implemented `DOMPointReadOnly.matrixTransform()` ([r217763](https://trac.webkit.org/changeset/217763/webkit/))
- Enabled script modules to be imported via data URLs ([r217760](https://trac.webkit.org/changeset/217760/webkit/))
- Updated to slightly stricter rules for custom element names from the recent draft standards ([r217864](https://trac.webkit.org/changeset/217864/webkit/))
- Used the parent box style to adjust RenderStyle for alignment ([r217536](https://trac.webkit.org/changeset/217536/webkit/))
- Added conditional support for media preloading and aligned media `as` values ([r217863](https://trac.webkit.org/changeset/217863/webkit/))
- Aligned preload implementation to specifications with mandatory `as` value and other alignments ([r217962](https://trac.webkit.org/changeset/217962/webkit/))

### Rendering

- Changed behavior to remove backing store for layers that are outside the viewport ([r217696](https://trac.webkit.org/changeset/217696/webkit/))
- Fixed an issue where a frame’s composited content is visible when the frame has `visibility:hidden` ([r217472](https://trac.webkit.org/changeset/217472/webkit/))
- Changed behavior to destroy the associated renderer subtree when `display:contents` node is deleted ([r217794](https://trac.webkit.org/changeset/217794/webkit/))

### Web Inspector

- Added contextual menu item to log a WebSocket object to the console ([r217912](https://trac.webkit.org/changeset/217912/webkit/))
- Added Debug view to the Settings tab for debug settings and experimental features ([r217625](https://trac.webkit.org/changeset/217625/webkit/))
- Added the ability for the user to choose stylesheet when creating new rules ([r217911](https://trac.webkit.org/changeset/217911/webkit/))
- Changed the Node Details Sidebar to allow editable key and values in the Attributes table ([r217744](https://trac.webkit.org/changeset/217744/webkit/))
- Prevented unnecessary layout triggered when a Sidebar is resized while collapsed ([r217452](https://trac.webkit.org/changeset/217452/webkit/))
- Fixed performing search on reload for an existing query in the Search tab ([r217733](https://trac.webkit.org/changeset/217733/webkit/))
- Fixed images dragged from Web Inspector to Desktop being named “Unknown.png” ([r217584](https://trac.webkit.org/changeset/217584/webkit/))
- Fixed an issue where reloading the page after switching from the Resource tab switches back ([r217505](https://trac.webkit.org/changeset/217505/webkit/))
- Fixed the CodeMirror instance in the ConsolePrompt getting refreshed each time it is shown ([r217746](https://trac.webkit.org/changeset/217746/webkit/))
- Fixed showing active Web Sockets when opening Web Inspector ([r217721](https://trac.webkit.org/changeset/217721/webkit/))
- Fixed an issue preventing the go-to arrow to inspect Web Sockets that receive >50 messages per second ([r217690](https://trac.webkit.org/changeset/217690/webkit/))
- Improved the reliability of automatically pausing in auto-attach when inspecting a JSContext ([r217509](https://trac.webkit.org/changeset/217509/webkit/))

### Bug Fixes

- Enabled AirPods to work with Netflix ([r217858](https://trac.webkit.org/changeset/217858/webkit/))
- Fixed stuttering audio in YouTube when the page changes visibility ([r217936](https://trac.webkit.org/changeset/217936/webkit/))

---

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)