Safari Technology Preview release 4 now available for download
A fresh version of the Safari Technology Preview is now available to download, bringing the developer-centric version of the browser up to its fourth release. This release comes exactly two weeks following the last update, continuing Apple's two-week cadence for releases thus far.
If you're a developer and interested in testing out the latest release, here's a rundown of what's new:
Networking
- Allow non-standard HTTP headers in WebSocket handshakes, which makes the 1Password extension work again
Media
- Fixed Netflix video playback
JavaScript
- Disabled Symbol.isConcatSpreadable due to performance concerns; is expected to return in the next release
- Made super() available to object literals, not just ES6 classes
- Sped up calling bound functions with no bound arguments by 4x
- Implemented String.prototype.localeCompare from ECMA-402
- Optimized JSON.parse for a 1–2.5% improvement in Kraken json-parse-financial
- Implemented RegExp.prototype.@@replace and use it for String.prototype.replace
- Implemented spec changes for String.prototype.padStart and String.prototype.padEnd
- Unified how Math.pow() is optimized across all JIT tiers
- Made Reflect.toString() be [object Object] not [object Reflect]
CSS
- Made -webkit-image-set work inside CSS variables
- Changed transitions to no longer animate to/from auto values
- Implemented proper handling of animation-delay with a negative delay
- Started parsing play-state as part of the animation shorthand
- Made toggling animation-play-state not restart a finished animation
- Fixed a regression which caused position: absolute pseudo elements to inherit text-decoration
- Moved CSS Grid behind a runtime switch that is currently enabled by default
- Started implementation of auto-fill and auto-fit for CSS Grid
- Fixed computed style of grid-template-columns and grid-template-rows properties
- Fixed a bug with positioned grid items in vertical writing mode
- Fixed alignment with CSS Grid content distribution
- Improved user agent styles for
Web APIs
Master your iPhone in minutes
iMore offers spot-on advice and guidance from our team of experts, with decades of Apple device experience to lean on. Learn more with iMore!
- Fixed wheel events so they fire with body, html { height: 100% }
- Marked IndexedDB constructors as hidden on the worker global object until it is supported
- Made ping attribute for anchor elements only work for http/https URLs
- Renamed Shadow DOM's getAssignedNodes to assignedNodes and support flattened option
- Removed Shadow DOM's Node.prototype.rootNode because it was not compatible with existing websites
- Made document.currentScript return null when executing a script inside a shadow tree
- Fixed clicks sometimes being ignored inside button elements when the mouse moves
Web Inspector
- Made console a namespace object (like Math and JSON), allowing functions to be called unbound
- Fixed an issue where scripts would not load due to Esprima.js not being found
- Started showing dynamically added
- Made sourceURL and sourceMappingURL always work when using the Function constructor
- Restored filtering to the Timelines tab
- Added column number info to event listener locations
- Fixed profiles missing from records in JavaScript & Events timeline
- Fixed selecting a bar in the Frames timeline mode
- Made sorting by name or location columns work as expected
- Fixed the line error widget showing up on the wrong resource
- Clarified Retained Size in heap snapshots by hiding retained size of non-dominated children
- Made the debugger statements evaluated in the console properly show the source code
- Made jump to line work correctly the first time in pretty-printed JavaScript
- Improved scrolling performance in Timelines tab
- Improved performance of rendering many console messages
- Changed console.assert and console.trace to allow format specifiers
- Improved performance of console.assert by 10x when the assertion is true
- Changed console.time and console.timeEnd to use a default label when none if specified, and warn when attempting to start an already started timer
- Added CSS autocompletion suggestions for -webkit-user-select
Rendering
- Made non-accelerated CSS and SVG animations run at 60fps
- Made < select multiple > padding consistent with other browsers
- Fixed blur filter escaping an enclosing overflow: hidden
- Fixed a regression with min-content and box-sizing: border-box that affected Facebook's messenger.com
Accessibility
- Made VoiceOver properly speak superscript content
- Fixed navigation around composed emoji characters and content with multiple whitespace sequences
- Made aria-label attribute work on < label > elements
- Made region a landmark and < section > elements have a role of region if there is an author provided accessible name via the aria-label or aria-labelledby attributes
Bug Fixes
- Corrected how WebKit determines the user's preferred region from the system language setting.
If you're unfamiliar with Safari Technology Preview, it's a version of the Safari browser meant to give developers a way to experiment with and test new technologies before they head to Safari proper. If you're interested, you can download the latest release from Apple{.nofollow} now. If you've used a prior release, you should be able to grab the update through the Mac App Store now.