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)