Release Notes for Safari Technology Preview 12

Safari Technology Preview Release 12 is now available for download for both macOS Sierra betas and OS X El Capitan. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. This release covers WebKit revisions 204289–204876.

This release of Safari Technology Preview will be the last that will install and run on OS X El Capitan 10.11.4 and 10.11.5. To continue testing or living on the latest enhancements to WebKit, please upgrade to OS X El Capitan 10.11.6 or the macOS Sierra betas.

JavaScript

  • Added checks for TypedArray.prototype.slice to ensure the source and destination have not been detached (r204868)
  • Added exception handling for const variables used in a for-in or for-of loop (r204586)
  • Improved the performance of Array.prototype.map when used with Arrays (r204488)
  • Implemented Object.entries and Object.values from the ES2017 specifications (r204419, r204358)
  • Changed the line, column and sourceURL properties of Error to be configurable and writable (r204663)

Web APIs

  • Fetch API is enabled by default (r204705)
  • Updated Resource Timing implementation (r204736, r204641, r204429)
  • Aligned Range.surroundContents() with the latest DOM specification (r204390)
  • Added support for HTMLAreaElement.toString() (r204871)
  • Changed the prefix properties of Attr and Element to be read-only (r204648)
  • Changed <command> to an HTMLUnknownElement and <basefont> to an HTMLElement (r204647)
  • Moved the prefix, namespaceURI, and localName attributes from Node to Attr and Element (r204624)
  • Aligned text encoding labels with the Encoding specification (r204605)
  • Added Animatable, AnimationEffect, KeyframeEffect and Animation interfaces for Web Animations (r204594)
  • Aligned isDefaultNamespace(), lookupPrefix(), and lookupNamespaceURI() with the specification (r204536)
  • Changed querySelector() and querySelectorAll() to always throw a SyntaxError when failing to parse a selector string (r204522)
  • Moved embeds, plugins, and scripts attributes from HTMLDocument to Document (r204450)
  • Moved the compatMode and designMode properties from HTMLDocument to Document (r204451, r204449)
  • Updated getElementsByTagName() to take a qualified name parameter (r204441)
  • Exposed crypto.getRandomValues to Web Workers (r204481)
  • Added application/vnd.api+json as a valid JSON MIME-type (r204437)

Web Inspector

  • Added Open in New Tab, Reveal in Resources Tab and Copy Link Address to the context menu of link attributes (r204846)
  • Added Download File context menu item for resource tree elements (r204862)
  • Added Copy Selected context menu item to the Console (r204511)
  • Added a visual editor for the spring() timing-function (r204775)
  • Fixed an issue where “NaN x NaN” was shown for invisible elements in the Styles → Computed → Box Model section (r204759)
  • Set Open Resource Dialog to jump to the last line when the specified line number (“:n”) is more than the total line count of the resource (r204755)
  • Added an icon for selectors that only affect pseudo-elements (r204754)
  • Fixed DOM nodes shifting when hovering over them in the Console (r204520)
  • Fixed the alignment of the Close button of the selected item in the Network tab (r204491)
  • Changed the Visual Styles Sidebar behavior for SVGs to show SVG specific sections (r204758)
  • Changed the Visual Styles Sidebar TextContent section to only be visible for a pseudo-element (r204757)
  • Escaped Text → Content in the Visual Styles Sidebar (r204510)
  • Addressed status icons flickering from rapid updates in the Visual Styles Sidebar (r204562)
  • Fixed the placement of Error and Warning icons in the Visual Styles Sidebar (r204490)
  • Fixed a hang when using Command-Shift-O (⌘⇧O) when the loaded web page has frames (r204428)
  • Enabled editing node attributes, content, and styles for shadow DOM nodes (r204370)
  • Improved the display of large numbers in the console log counter on the dashboard (r204642)
  • Improved the display of large class lists and made the quick-toggle easier to discover (r204496)

MathML

  • Improved the extraction of operator and token elements’ characters (r204830)
  • Introduced a MathMLRowElement class for mrow-like elements (r204779)
  • Introduced a MathMLAnnotationElement class for the <annotation> and <annotation-xml> elements (r204692)

CSS

  • Enabled the :host pseudo-class to style elements in the shadow tree (r204724)
  • Corrected the namespace prefix handling in front of element name CSS selectors (r204591)

Rendering

  • Fixed SVG clip-path to work on a root SVG element (r204872)
  • Fixed ctx.drawImage to clip the source rectangle if it is outside the source image (r204517)

Accessibility

  • Labelled audio description tracks correctly to prevent user confusion (r204601)
  • Added a percentage value description for the media control’s timeline slider (r204361)

Security

  • Improved URLParser parsing IPv4 addresses and URLs without credentials (r204701, r204544)
  • Added support to handle cross-origin redirect requests while in CORS mode (r204693, r204795)
  • Corrected the Upgrade-Insecure-Request state handling between navigations (r204521)
  • Added a sandbox for the Adobe Flash Player ESR plug-in used in enterprise environments (r204461)
  • Changed instantiation of WebKit plug-ins to happen at layout time, instead of at style resolution time (r204320)