Apple on Wednesday released Safari Technology Preview 33, a new version of their experimental web browser, first released in March 2016. The browser allows developers and other interested parties to test features that may debut in future release versions of Safari.
Safari Technology Preview release 33 includes fixes and improvements as follows:
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
- Improved performance of String.prototype.concat
- Improved the bytecode and type information provided for toLength
- Optimized Map and Set constructors
WebRTC
- Added WebRTC stats logging
Media Streams and Capture
- Fixed getUserMedia prompting too often
- Prevented getUserMedia requests from background tabs unless the tab is already capturing
- Prevented getUserMedia from prompting again if the user denied access
Media
- Enabled clients to specify a list of codecs that should require hardware decode support
- Exempted exclusively wall-powered devices from client-required hardware codec support
- Aligned Web Audio implementation to specifications when clients pass a value of 0 for bufferSize to the createScriptProcessor() method
CSS Grid
- Added support for orthogonally positioned grid items
- Fixed the behavior of positioned items without specific dimensions
- Fixed the logical margin applied in the tracks sizing algorithm of auto tracks
- Fixed margin applied when stretching an orthogonal item in a fixed size track
Web API
- Aligned <col span> and <colgroup span> limits with the latest HTML specification
- Fixed null content-type and content-length when fetching Blob URLs with XHR
- Fixed getComputedStyle() to return pixel values for left, right, top, and bottom, matching the specifications
- Implemented fromFloat32Array, fromFloat64Array, toFloat32Array, and toFloat64Array forDOMMatrix
- Implemented DOMPointReadOnly.matrixTransform()
- Enabled script modules to be imported via data URLs
- Updated to slightly stricter rules for custom element names from the recent draft standards
- Used the parent box style to adjust RenderStyle for alignment
- Added conditional support for media preloading and aligned media as values
- Aligned preload implementation to specifications with mandatory as value and other alignments
Rendering
- Changed behavior to remove backing store for layers that are outside the viewport
- Fixed an issue where a frame’s composited content is visible when the frame has visibility:hidden
- Changed behavior to destroy the associated renderer subtree when display:contents node is deleted
Web Inspector
- Added contextual menu item to log a WebSocket object to the console
- Added Debug view to the Settings tab for debug settings and experimental features
- Added the ability for the user to choose stylesheet when creating new rules
- Changed the Node Details Sidebar to allow editable key and values in the Attributes table
- Prevented unnecessary layout triggered when a Sidebar is resized while collapsed
- Fixed performing search on reload for an existing query in the Search tab
- Fixed images dragged from Web Inspector to Desktop being named “Unknown.png”
- Fixed an issue where reloading the page after switching from the Resource tab switches back
- Fixed the CodeMirror instance in the ConsolePrompt getting refreshed each time it is shown
- Fixed showing active Web Sockets when opening Web Inspector
- Fixed an issue preventing the go-to arrow to inspect Web Sockets that receive >50 messages per second
- Improved the reliability of automatically pausing in auto-attach when inspecting a JSContext
Bug Fixes
- Enabled AirPods to work with Netflix
- Fixed stuttering audio in YouTube when the page changes visibility
Users can either download the update from the Safari Technology Preview website, or if they already have the browser installed, they can download it via the Mac App Store. Full release notes for the update are available on the same website.
While the preview is intended for use by developers and advanced users, in order to provide Apple with feedback on the development of the Safari browser, it can be run side-by-side with the release version of Safari. The app doesn’t require a developer account to download and install. For more information, visit the Safari Tech Preview website.