Release Notes for Safari Technology Preview 13

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

Fetch API

  • Added support for BufferSource bodies (r205115)
  • Fixed blob resource handling to raise a network error when the URL is not found (r205190)
  • Set the blob type correctly for an empty body (r205250)
  • Set the blob type from Response/Request contentType header (r205076)
  • Made the body mix-in text() decode data as UTF–8 (r205188)
  • Ensured response cloning works when data is loading (r205110)
  • Enabled the Fetch API to load the data URL in same-origin mode (r205265)
  • Prevented any body for opaque responses (r205082)
  • Changed opaqueredirect responses to have their URL set to the original URL (r205081)
  • Prevented setting bodyUsed when request construction fails (r205253)
  • Set Response bodyUsed to check for its body-disturbed state (r205251)
  • Changed response cloning to use structureClone when teeing a Response stream (r205117)
  • Aligned the internal structure of ReadableStream with the specifications (r205289)
  • Aligned data:// URL behavior of XHR to match specifications (r205113)

Custom Elements

  • Added adopted callback for custom elements on appendChild() (r205085)
  • Enabled reaction callbacks for adopted custom elements (r205060)
  • Updated the semantics of :defined to re-align with specification changes (r205416)
  • Added validations for a synchronously constructed custom element (r205386)
  • Added support for the whenDefined() method on the CustomElementRegistry (r205315)
  • Added a CustomElementRegistry check for reentrancy (r205261)

JavaScript

  • Enabled assignments in for…in head in non-strict mode (r204895)
  • Changed newPromiseCapabilities to check that the given argument is a constructor (r205027)
  • Fixed toString() to return the correct tag when called on proxy objects (r205023)

Web APIs

  • Added event support for <link preload> (r205269)
  • Implemented x, y and ScrollToOptions arguments for Element.scroll(), Element.scrollTo(), and Element.scrollBy() (r205505)
  • Updated location.toString to make it enumerable (r204953)
  • Updated location.toString in Web Workers to make it enumerable (r204954)
  • Changed Object.preventExtensions(window) to throw a TypeError exception (r205404)
  • Aligned coords and srcset attribute parsing with the HTML specification (r205030, r205515)
  • Added support for CanvasRenderingContext2D.prototype.resetTransform (r204878)
  • Aligned cross-origin Object.getOwnPropertyNames() with the HTML specification (r205409)

Web Inspector

  • Added IndexedDB Database, ObjectStore, and Index data to the details sidebar (r205043)
  • Added support for Shift-Command-D (⇧⌘D) to switch to the last used dock configuration (r205413)
  • Added support for Shift-Tab (⇧⇥) to un-indent the selected line (r204924)
  • Changed Command-D (⌘D) to select the next occurrence instead of deleting the line (r205414)
  • Added a visual indicator for shadow content in the DOM tree (r205322)
  • Allowed hiding of CSS variables in the Computed styles panel (r205518)
  • Fixed an issue that prevented using an Undo action in the breakpoint editor (r205499)
  • Prevented the resource content view from showing “CR” characters (r205517)
  • Fixed an issue preventing re-inspecting the page after a Web Inspector process crash (r205370)
  • Improved the minification detection heuristic for small resources (r205314)
  • Fixed an issue causing network record bars to be positioned on unexpected rows (r205349)
  • Provided a way to clear an IndexedDB object store (r205041)
  • Improved the debugger popover to pretty print functions (r205223)
  • Corrected unexpected cursor changes while dragging ruler handle in the rendering frames timeline (r204940)
  • Corrected the display of a plain text XHR response with responseType="blob" (r205268)

CSS

  • Implemented CSS.escape according to the CSSOM specification (r204952)
  • Improved CSS stylesheet checks to ensure clean stylesheets are accessible from JavaScript (r205455)
  • Improved :enabled and :disabled selectors to only match elements that can be disabled (r205050)

Rendering

  • Fixed scrollbars for a <table> with overflow content inside <div align="right"> (r205489)
  • Added support for non-BMP MathML operators U+1EEF0 and U+1EEF1 (r205111)
  • Fixed getting font bounding rect for MathML (r205031)

Security

  • Changed the Image Loader to set the fetch mode according its crossOrigin attribute (r205134)
  • Added a SecurityError when trying to access cross-origin Location properties (r205026)
  • Updated Object.defineProperty() and Object.preventExtensions() to throw an error for a cross-origin Window or Location object (r205358, r205359)
  • Updated Object.setPrototypeOf() to throw an error and return null when used on a cross-origin Window or Location object (r205205, r205258)

Plugins

  • Replaced YouTube.com Flash embeds with HTML5 equivalents on macOS (r205274)