Release Notes for Safari Technology Preview 8

Safari Technology Preview Release 8 is now available for download for both macOS Sierra beta 2 and OS X El Capitan. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. Release 8 of Safari Technology Preview covers WebKit revisions 202085–202612.

JavaScript

  • Achieved 100% ECMAScript 2015 (ES6) support by adding back Symbol.isConcatSpreadable (r202125)
  • Unified the handling of regular expression character escapes \w and \W and word assertions \b and \B (r202490)
  • Implemented isFinite and isNaN in JavaScript for a performance benefit (r202413)
  • Fixed a crash when a finally clause is used inside a for-in loop (r202608)

CSS

  • Updated :default CSS pseudo-class to match checkbox and radio inputs with a checked attribute (r202245)
  • Fixed an issue where the :hover CSS pseudo-class would match after the cursor left the element (r202324)
  • Prevented :in-range and :out-of-range CSS pseudo-classes to not match on inputs that do not have range limitations (r202143)
  • Changed :in-range and :out-of-range CSS pseudo-classes to not match disabled or readonly inputs (r202159)
  • Fixed border rendering for elements with min-width: -webkit-fill-available and zero available width (r202103)
  • Fixed style updates applied by :host() when changing the CSS class name of a shadow-host element (r202227)

Web APIs

  • Added fallback mechanisms for stretching and mirroring radical symbols in MathML (r202161)
  • Used the MathOperator to handle some non-stretchy operators in MathML (r202271)
  • Set the upper limit for the size or number of pieces of stretchy operators in MathML (r202489)
  • Allowed phrasing content to be accepted in <mo> elements (r202572)
  • Fixed a bug retrieving Blobs from IndexedDB using cursors in WebKit2 sandboxing (r202414)
  • Changed synchronous event tracking to each event type instead of each event sequence (r202408)

Apple Pay

  • Moved Apple Pay code to the open source repository (r202298, r202309, r202310, r202311, r202312, r202432, r202345, r202346, r202444)
  • Moved WebKit2 Apple Pay code to the open source repository (r202432)
  • Moved the WebKit1 Apple Pay code to the open source repository (r202346)
  • Added a logged error message when passing an invalid API version to ApplePaySession constructor (r202499)
  • Moved the user gesture requirement to the ApplePaySession constructor (r202584)
  • Fixed the Apple Pay total amount error message to trigger for the correct limits (r202582)
  • Added shippingType to the list of valid Apple Pay payment request properties (r202409)
  • Added an exception to Apple Pay when the shipping method has an invalid amount (r202341, r202342)
  • Fixed discounted Apple Pay line items to display positive amounts (r202504)

Web Inspector

  • Changed console.profile to use the new Sampling Profiler (r202234)
  • Fixed an infrequent but persistent crash that could occur when closing Web Inspector (r202492, r202515)
  • Prevented automatic timeline recording when Web Inspector is not visible (r202352, r202353)
  • Delayed the first auto-capture heap snapshot during page reloads until after the page performs its first navigation (r202384)
  • Fixed showing impossible values for underflowed bmalloc sizes in the Memory Timeline (r202394)
  • Uncoupled the Quick Console selection updates from the UI to improve testing (r202566)
  • Fixed selectElement.options entries in console for named indexes beyond the collection length (r202568)
  • Fixed the Snapshot List to show the total size and the total live size (r202253)
  • Improved JavaScript Heap Snapshot clean up handling (r202383)
  • Ensured localStorage is updated when modifying sessionStorage (r202529)
  • Fixed broken text search in resources with <CR> (r202498)

Media

  • Fixed picture-in-picture placeholder visibility when the controls attribute is removed (r202509)
  • Fixed the volume slider for web video playback controls for right-to-left content (r202183)
  • Implemented support for “replacement” codec (r202599)
  • Fixed an issue where media controls stop working after exiting picture-in-picture mode (r202333)
  • Fixed media elements to not lose playback controls when muted by a user gesture (r202459)
  • Fixed the playback controls element used when playing multiple items in a page (r202425)

Rendering

  • Fixed the position for composition underlines in right-to-left content (r202250)
  • Fixed <attachment> elements jumping around when subtitle text changes slightly (r202117)
  • Fixed style invalidation for :active when the activated node has no renderer (r202517)
  • Flipped the behavior for the Forward and Back keyboard shortcuts in right-to-left content (r202129)
  • Fixed the placement of <select> popup menus in right-to-left content (r202112)
  • Corrected the behavior of the :active state of elements when focus changes (r202470)

Accessibility

  • Added support for CSS4 :focus-within pseudo-class (r202358)
  • Exposed anonymous RenderMathMLOperators to the accessibility tree (r202497)
  • Fixed the ARIA role attribute for label elements (r202516)

Security

  • Prevent file scheme access to a resource on a different volume (r202186)
  • Set CORS preflight with a non–200 response to be a preflight failure (r202162)
  • Allowed * to match the originating page’s scheme for Content Security Policy (r202155)
  • Changed security origin inheritance check to ignore case (r202174)

Bug Fixes

  • Fixed parent document scrolling when a focus event is dispatched in an <iframe> (r202292)
  • Fixed an issue causing Google Maps transit schedule explorer to initially load blank (r202104)
  • Changed HTMLElement and SVGElement to implement GlobalEventHandlers (r202539)
  • Implemented a constructor for TouchEvent (r202178)
  • Fixed double-tap to zoom on Yahoo Finance (r202354)
  • Implemented support for Vary:Cookie validation in private browsing (r202089)
  • Fixed playback controls on Vimeo.com videos (r202455)
  • Improved resource handling when navigating by discarding decoded image that is only “in use” due to page cache not actual pages (r202231)