Contents

Safari Technology Preview 3 Release Notes

Preview the latest web technology updates including: JavaScript, CSS, Web APIs, Web Inspector, Rendering, Security, Networking, and Accessibility.

Overview

Safari Technology Preview Release 3 is now available for download. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. Release 3 of Safari Technology Preview covers WebKit revisions 199086–199865.

JavaScript

  • Added support for Symbol.isConcatSpreadable per the ES6 spec (r199397)

  • Made RegExp constructor get the Symbol.match property to decide if an object should be constructed like a RegExp object per the ES6 spec (r199106)

  • Changed String.match and String.search to use RegExp constructor per the ES6 spec (r199144)

  • Corrected how function declarations are hoisted per the ES6 spec (r199179)

  • Improved parsing of ES6 arrow functions (r199352)

  • Added RegExp.prototype[@@split] and made String.prototype.split use it per the ES6 spec (r199731)

  • Added RegExp.prototype[@@search] (r199748)

  • Updated the treatment of invoking methods on RegExp.prototype per the ES6 spec (r199545)

  • Made more test cases pass with ES6 RegExp unicode flag (r199523)

  • Added support for caching accesses to arguments.length for a performance speed-up (r199240)

  • Corrected the behavior of throw() for generators yielding to an inner generator per draft ECMAScript spec (r199652)

CSS

  • Implemented the functional :host() pseudo class (r199291)

  • Improved support for SVG cursor images (r199625)

  • Started using OpenType math fonts by default for MathML (r199773)

  • Fixed measurement of hanging punctuation (r199777)

  • Improved hyphenation when the last line in a paragraph only contains one syllable of a word (r199818)

  • Fixed a layout problem affecting CSS Grid items without a static inline position in RTL languages (r199098)

  • Fixed positioned items with gaps for CSS Grid (r199223)

  • Added support for CSS Grid grid-template-columns repeat(auto-fill, …) and repeat(auto-fit, …) (r199343)

  • Fixed positioned items with content alignment in CSS Grids (r199657)

  • Started using grid-template-areas to determine the explicit grid (r199661)

  • Corrected CSS Grid layout by using the margin box for non-auto minimum sizes (r199728)

Web APIs

  • Added support setting and retrieving Blob values in IndexedDB (r199120, r199230, r199499, r199524, r199708, r199730)

  • Corrected MessageEvent.source result once window has been fully created (r199087)

  • Improved stability when the first child of a shadow root is a comment node (r199097)

  • Made CSS be a proper constructor on the window object with static functions (r199112)

  • Exposed the Crypto constructor on the window object (r199159)

  • Added support for display: contents on <slot> elements (r199151)

  • Fixed FontFace so it will be properly reject the returned promise if Content Security Policy blocks all the URLs (r199611)

  • Made FontFaceSet handle null correctly (r199216)

  • Corrected DOMTokenList.contains() so it does not throw an exception (r199296)

  • Made Selection.deleteFromDocument not delete a character when the selection is a caret per the spec (r199585)

  • Improved the IndexedDB bindings to better match the spec (r199750, r199774)

  • Made AudioBufferSourceNode.buffer nullable (r199751)

  • Improved stability handling a wheel event that closes a frame (r199181)

Web Inspector

  • Made it possible to expand objects in the Instances heap snapshot view to see what it retains (r199379)

  • Improved performance dramatically in the Timelines tab when recording pages with a lot of rapid activity and for long recordings (r199747)

  • Improved JavaScript pretty printing performance by using Esprima and by no longer blocking the main thread (r199168, r199169)

  • Improved the profiler’s sampling rate to get closer to a 1ms sample frequency (r199092)

  • Improved filtering in Open Quickly dialog (r199143, r199226)

  • Made the Open Quickly dialog keep its resource list up to date (r199207)

  • Stopped trying to match color patterns in JavaScript source code to improve performance of large resources (r199095)

  • Changed take snapshot navigation button to a camera glyph (r199177)

  • Corrected source code location links in the JavaScript profile Call Trees view (r199201)

  • Made XHRs and Web Workers full-text searchable (r199263)

  • Improved the appearance of DOM nodes in object previews (r199322)

  • Improved the tab bar rendering when the tabs are small (r199325)

  • Corrected dock controls disappearing from the toolbar after leaving fullscreen (r199395)

  • Started remembering the zoom factor as a persistent setting across sessions (r199396)

  • Corrected sourceMappingURL not being used when sourceURL was also set (r199688)

  • Started localizing sizes and times by using Number.prototype.toLocaleString (r199635)

  • Made sourceMappingURL work more reliably across reloads (r199852)

Rendering

  • Improved the time to display for some pages — allowing a short page header to render immediately before other content populates later (r199155)

  • Fixed page tile layers disappearing when graphics acceleration is unavailable (r199130)

  • Made font-size: 0 render as 0 width when text-rendering: optimizeLegibility is used (r199150)

  • Corrected focus ring drawing at incorrect location on image map with a CSS transform (r199247)

  • Made negative letter-spacing affect the right edge of the content’s visual overflow (r199516)

  • Corrected compositing for WebGL based canvases after they changed size (r199536)

  • Started clearing the rendered icon on <input type=file> when an empty files list is set (r199540)

  • Improved performance of border-collapse: collapse on tables (r199552)

  • Improved rendering of select[multiple] to better match other browsers (r199553)

  • Fixed backdrop filter so it honors visibility: hidden (r199862)

Security

  • Made nested browsing context created for <object> or <embed> respect Content Security Policy’s object-src directive (r199527)

  • Started ignoring Content Security Policy meta tags if it is not a descendent of <head> per the spec (r199163)

  • Started ignoring report-only Content Security Policy directives delivered via meta tag per the spec (r199538)

  • Started ignoring paths in Content Security Policy URL matching after redirects per spec (r199612)

  • Removed support for X-Frame-Options in <meta> per the spec (r199696)

Networking

  • Stopped speculatively revalidating cached redirects (r199521)

  • Stopped cacheing responses with Content-Range headers to avoid serving incorrect results (r199090)

  • Fixed clearing the application cache when removing website data in Privacy preferences (r199204)

Accessibility

  • Changed the application role description to “web application” to avoid confusion with the top-level system application description (r199260)

  • Made presentation role be preferred over child <title> and <desc> elements in SVG content (r199588)

See Also

2016