Apple delivers Safari Technology Preview release 5

A new update to the Safari Technology Preview, a version of the browser aimed squarely at developers, is now available to download. This marks the fifth release so far, and comes two weeks following the previous update.

If you're a developer who is interested in testing the preview out, here's a comprehensive list of what's new:

JavaScript

  • Corrected the entropy of Math.random() for the first two invocations
  • Corrected sticky RegExp handling when backtracking alternatives with dissimilar match lengths
  • Fixed ES6 site compatibility when Function.name is inferred from property names
  • Sped up ES6 Array iterators between 4x to 6x
  • Made the Object constructor be aware of new.target by storing the target's prototype to the newly created object's prototype
  • Fixed calls to getters and setters on super being called with wrong this object
  • Improved error messages for accessing arguments.callee and similar getters in strict mode
  • Made TypedArray.prototype.slice use the byteLength of passed array for memmove

CSS

  • Fixed the cascading order for !important properties in ::slotted and ::host rules correctly
  • Added color-gamut media query support for wide gamut displays
  • Made Web Fonts only download when characters are used in its unicode-range
  • Restored legacy parsing of color attributes with 4 and 8 digits
  • Corrected how transitions behave when auto values are used
  • Unprefixed -webkit-cross-fade()
  • Corrected cross-fade() rendering to match expectations
  • Corrected how prefixed and unprefixed variants in CSSStyleDeclaration are handled
  • Stopped attempting to compute min/max width for replaced elements with no intrinsic size
  • Unprefixed CSS Grid Layout properties
  • Fixed static position for positioned CSS Grid items
  • Corrected parsing when just using span as a grid-line value
  • Implemented CSS Grid auto-repeat computation

Web APIs

  • Started blocking Geolocation API calls on pages served over insecure connections
  • Made NodeList iterable
  • Added support for title attribute tooltips inside Shadow DOM content
  • Stopped retargeting event.target when an event bubbles up from an assigned node to its assigned slot
  • Enabled IndexedDB in Web Worker scripts
  • Fixed IndexedDB transactions so they can't be committed or aborted twice
  • Started propagating user gesture state across postMessage boundaries
  • Aligned window.scroll(), scrollTo(), and scrollBy() with the CSSOM spec with support for the options argument
  • Made all scrolling height and width values be integral rounded
  • Added support for ArrayBufferView in the CSS Font Loading API

Web Inspector

  • Hook up ShadowChicken in the Debugger tab to properly show tail call deleted frames
  • Made let and const work as expected in Console evaluations
  • Improved organization of the Debugger tab sidebar
  • Added Object Graph view to heap snapshots and removed the Summary view
  • Fixed sites that relied on putting custom properties on console.prototype
  • Improved performance of filtering large timeline recordings
  • Made Inspect Element and element selection work with Shadow DOM nodes
  • Fixed the start times in the Frames timeline data grid
  • Started persisting breakpoints in scripts named via //# sourceURL
  • Fixed the scrollbar covering the last column in data grids when always showing scrollbars
  • Fixed Computed Style so it no longer shows both prefixed and unprefixed variants of properties
  • Made the Call Trees view in the Timelines tab filterable and hide it from views that are not filterable
  • Started showing in-progress message in timeline views that do not show data until the recording finishes
  • Improved performance of the Console when it tries to render thousands of messages at once
  • Fixed filtering by duration in the Frames timeline view
  • Fixed loading of //# sourceMappingURL with a relative URL
  • Improved console.count() to better match other browsers
  • Improved performance of the Timelines tab by profiling Web Inspector with Web Inspector

Media

  • Made media elements not pause right away when removed from the document
  • Started returning a Promise from HTMLMediaElement.prototype.play()
  • Stopped updating media duration at playback end while seeking

Security

  • Fixed case matching against the path portion of CSP source expression URLs that ends in a forward-slash
  • Corrected a CORS check what was sometimes incorrectly failing for media loads

Networking

  • Stopped restarting a resource preload if there is already one pending for the same URL

Accessibility

  • Media controls are now keyboard accessible along with other Shadow DOM elements

Bug Fixes

  • Fixed large animated GIFs not animating until the last frame on slow networks
  • Fixed Zoom In and Zoom Out on PDF documents

Safari Technology Preview is a version of the browser meant to give developers a way to experiment with and test new technologies and tweaks before they land on Safari proper. If you'd like to try it out, you can download the latest release from Apple{.nofollow}. If you're using a previous version, you should be able to grab an update through the Mac App Store.

Dan Thorp-Lancaster