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
andisNaN
in JavaScript for a performance benefit (r202413) - Fixed a crash when a
finally
clause is used inside afor-in
loop (r202608)
CSS
- Updated
:default
CSS pseudo-class to match checkbox and radio inputs with achecked
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 matchdisabled
orreadonly
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
andSVGElement
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)