Introducing Safari Technology Preview
Starting today, there’s a new, convenient way to see what features and improvements are coming to Safari and other applications that use WebKit. Safari Technology Preview is a version of Safari for OS X, distributed by Apple, that includes a cutting-edge, in-development version of the WebKit browser engine. It’s a great way to test upcoming WebKit features and give feedback to the people building them when it’s most useful — early in development.
Safari Technology Preview is a standalone application that can be used side-by-side with Safari or other web browsers, making it easy to compare behaviors between them. Besides having the latest web features and bug fixes from WebKit, Safari Technology Preview includes the latest improvements to Web Inspector, which you can use to develop and debug your websites. Updates for Safari Technology Preview will be available every two weeks through the Updates pane of the Mac App Store.
How to Get It
You can download Safari Technology Preview from Apple’s Developer website. No account is required to download. You only need to install it once; afterward, updates will be delivered through the App Store.
Features You Can Try Today
Here are just a few areas of recent developments in WebKit that you can try in Safari Technology Preview today.
ECMAScript 6
Safari Technology Preview supports ECMAScript 6, the latest iteration of the JavaScript programming language. ES6 has many new features, including classes; lexical scoping using let
, const
, and class
; iterators and generators; arrow functions; default parameters values; and many new built-in APIs.
B3 JavaScript JIT compiler
B3 is a new low-latency, high-throughput compiler designed from the ground up to support JavaScript and other dynamic languages. B3 delivers great performance benefits, especially on systems with fewer CPU cores.
Improved IndexedDB implementation
WebKit’s revamped IndexedDB implementation is more stable, more standards compliant, and still undergoing rapid improvement.
Shadow DOM
The latest version of Shadow DOM has been heavily revised based on input from web content authors and browser developers. WebKit is the first browser engine to implement this new version of the Shadow DOM spec.
Programmatic cut and copy to the clipboard
It’s now possible to programmatically copy and cut text in response to a user gesture with document.execCommand('copy')
and document.execCommand('cut')
. Having this ability may eliminate some websites’ last need for the Flash plug-in.
Content Security Policy Level 2
You can define a policy for your web application to mitigate content injection vulnerabilities, such as cross-site scripting (XSS). Level 2 expands on Level 1 with support for <script>
and <style>
hashes, nonces, and new policy directives to control which websites can embed your web content.
What about the WebKit Nightly?
You may already be familiar with the WebKit Nightly, which serves a purpose similar to that of Safari Technology Preview. For most people, we think Safari Technology Preview is a more convenient and stable way to live on recent WebKit changes. Unlike the nightlies, Safari Technology Preview supports the full set of iCloud-based Safari features, including iCloud History and iCloud Tabs. And we’ll use the time between Safari Technology Preview releases to curate and test updates to a point where we think developers will find it practical to use as their primary browser.
Sharing Your Feedback
We want to hear your feedback about WebKit features before Safari ships them. Your requests and experiences help the WebKit project figure out what’s most important, and the stories of your successes or struggles with features help us refine our implementations. Hearing from the community earlier will give us more perspectives to consider, with more time to act on what we’ve learned.
You can file bugs or feature requests at the WebKit bug tracker, or you can submit feedback or bugs to Apple on Apple’s bug reporting website. For other questions or feedback, feel free to reach me on Twitter at @rmondello or Jonathan Davis at @jonathandavis.