Apple has now pushed out the third release — and second update — for the recently launched Safari Technology Preview, giving developers a chance to test out yet more change before they head to the public version of Safari. This release comes exactly two weeks after the previous update, which itself appeared two weeks after the initial launch of the program.
If you're a developer interested in testing out the latest release, here's a taste of the changes and updates you can look forward to in Release 3.
JavaScript
- Added support for Symbol.isConcatSpreadable per the ES6 spec
- Made RegExp constructor get the Symbol.match property to decide if an object should be constructed like a RegExp object per the ES6 spec
- Changed String.match and String.search to use RegExp constructor per the ES6 spec
- Corrected how function declarations are hoisted per the ES6 spec
- Improved parsing of ES6 arrow functions
- Added RegExp.prototype[@@split] and made String.prototype.split use it per the ES6 spec
- Added RegExp.prototype[@@search]
- Updated the treatment of invoking methods on RegExp.prototype per the ES6 spec
- Made more test cases pass with ES6 RegExp unicode flag
- Added support for caching accesses to arguments.length for a performance speed-up
- Corrected the behavior of throw() for generators yielding to an inner generator per draft ECMAScript spec
CSS
- Implemented the functional :host() pseudo class
- Improved support for SVG cursor images
- Started using OpenType math fonts by default for MathML
- Fixed measurement of hanging punctuation
- Improved hyphenation when the last line in a paragraph only contains one syllable of a word
- Fixed a layout problem affecting CSS Grid items without a static inline position in RTL languages
- Fixed positioned items with gaps for CSS Grid
- Added support for CSS Grid grid-template-columns repeat(auto-fill, …) and repeat(auto-fit, …)
- Fixed positioned items with content alignment in CSS Grids
- Started using grid-template-areas to determine the explicit grid
- Corrected CSS Grid layout by using the margin box for non-auto minimum sizes
Web APIs
- Added support setting and retrieving Blob values in IndexedDB
- Corrected MessageEvent.source result once window has been fully created
- Improved stability when the first child of a shadow root is a comment node
- Made CSS be a proper constructor on the window object with static functions
- Exposed the Crypto constructor on the window object
- Added support for display: contents on
elements - Fixed FontFace so it will be properly reject the returned promise if Content Security Policy blocks all the URLs
- Made FontFaceSet handle null correctly
- Corrected DOMTokenList.contains() so it does not throw an exception
- Made Selection.deleteFromDocument not delete a character when the selection is a caret per the spec
- Improved the IndexedDB bindings to better match the spec
- Made AudioBufferSourceNode.buffer nullable
- Improved stability handling a wheel event that closes a frame
Web Inspector
- Made it possible to expand objects in the Instances heap snapshot view to see what it retains
- Improved performance dramatically in the Timelines tab when recording pages with a lot of rapid activity and for long recordings
- Improved JavaScript pretty printing performance by using Esprima and by no longer blocking the main thread
- Improved the profiler's sampling rate to get closer to a 1ms sample frequency
- Improved filtering in Open Quickly dialog
- Made the Open Quickly dialog keep its resource list up to date
- Stopped trying to match color patterns in JavaScript source code to improve performance of large resources
- Changed take snapshot navigation button to a camera glyph
- Corrected source code location links in the JavaScript profile Call Trees view
- Made XHRs and Web Workers full-text searchable
- Improved the appearance of DOM nodes in object previews
- Improved the tab bar rendering when the tabs are small
- Corrected dock controls disappearing from the toolbar after leaving fullscreen
- Started remembering the zoom factor as a persistent setting across sessions
- Corrected sourceMappingURL not being used when sourceURL was also set
- Started localizing sizes and times by using Number.prototype.toLocaleString
- Made sourceMappingURL work more reliably across reloads
Rendering
- Improved the time to display for some pages — allowing a short page header to render immediately before other content populates later
- Fixed page tile layers disappearing when graphics acceleration is unavailable
- Made font-size: 0 render as 0 width when text-rendering: optimizeLegibility is used
- Corrected focus ring drawing at incorrect location on image map with a CSS transform
- Made negative letter-spacing affect the right edge of the content's visual overflow
- Corrected compositing for WebGL based canvases after they changed size
- Started clearing the rendered icon on < input type=file > when an empty files list is set
- Improved performance of border-collapse: collapse on tables
- Improved rendering of select[multiple] to better match other browsers
- Fixed backdrop filter so it honors visibility: hidden
Security
- Made nested browsing context created for object or embed respect Content Security Policy's object-src directive
- Started ignoring Content Security Policy meta tags if it is not a descendent of per the spec
- Started ignoring report-only Content Security Policy directives delivered via meta tag per the spec
- Started ignoring paths in Content Security Policy URL matching after redirects per spec
- Removed support for X-Frame-Options in per the spec
Networking
- Stopped speculatively revalidating cached redirects
- Stopped cacheing responses with Content-Range headers to avoid serving incorrect results
- Fixed clearing the application cache when removing website data in Privacy preferences
Accessibility
- Changed the application role description to "web application" to avoid confusion with the top-level system application description
- Made presentation role be preferred over child
and elements in SVG content
To recap, Safari Technology Preview is meant to give developers a way to experiment with new technologies before they head to the release version of the browser. If you want to try the browser, you can install right alongside Safari with a download from Apple{.nofollow}. If you've already installed a previous version, you should be able to grab today's update from the Mac App Store.
We may earn a commission for purchases using our links. Learn more.

Welcome to iPhone 13 Pro (maybe)
Apple is likely to announce a new round of iPhones later this year – will one look like this?

Stunning new 2021 iMac leak reveals new design in five colors
Jon Prosser at Front Page Tech has just revealed that Apple plans to unveil brand new iMacs with a total redesign and in five new colors.

Project Triangle Strategy offers small but unique takes on the RPG genre
Square Enix's latest strategy RPG project is coming to Nintendo Switch in 2022, but you don't have to wait that long to try it out. You can download the demo right now. Here's what we think of this new IP.

Protect your iPhone 12 Pro through any adventure with a rugged case
If you work hard and play hard, you need a rugged case for your iPhone 12 Pro that will keep it safe during any type of adventure. We've got the heavy-duty cases you need to support a heavy-duty lifestyle.