Release Notes for Safari Technology Preview 15
Safari Technology Preview Release 15 is now available for download for both macOS Sierra 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 206196–206808.
This is the last release of Safari Technology Preview that will install and run on OS X El Capitan. To continue testing or living on the latest enhancements to Safari and WebKit, please upgrade to macOS Sierra.
Fetch API
- Made
ReadableStreamthrowTypeErrorvalues instead of strings (r206770) - Changed Fetch to prevent redirection to non-HTTP URLs (r206716)
- Made
FetchBodyuse UTF8 to encode text data (r206636) - Added support for
URLSearchParamsas thebodyof a Fetch (r206632)
JavaScript
- Sped up
String.prototype.toLowerCase()by 7–8% on benchmarks (r206804) - Fixed cases where class, function, and arrow function names were not inferred during assignment (r206599, r206610)
- Fixed arrow functions so they don’t allow duplicate parameter names (r206647)
- Updated
GeneratorandGeneratorFunctionproperty descriptors to match the ES6 spec (r206711, r206738) - Fixed a bug where
String.prototype.padStart()andpadEnd()would insertnullin rare cases (r206573) - Fixed a bug with
Function.prototype.lengthwhen there are parameters with default values (r206268)
CSS
- Implemented rendering of
font-variation-settingsand enabled it by default (r206679, r206701, r206761) - Implemented animation of
font-variation-settings(r206690) - Added mapping for
font-family: cursiveto KaiTi fonts in Chinese (r206791) - Sped up the computation of CSS Grid row sizes with indefinite heights by 2× (r206253)
- Fixed setting a style element’s
textContentorcssTextso it properly triggers a style recalculation (r206404) - Fixed toggling
display: noneon a parent element of a Shadow DOM slot to work in more cases (r206493)
Web APIs
- Enabled support for the
downloadattribute on anchor and area elements — including Blob URLs (r206356, r206358, r206439, r206478, r206630) - Exposed
CryptoKeyto Web Workers (r206627) - Implemented
Node.prototype.getRootNode()(r206285) - Implemented
ShadowRoot.prototype.elementFromPoint()(r206795) - Implemented
DOMTokenList.prototype.supports()(r206561, r206616) - Implemented
ImageData.prototype.datafrom the HTML spec (r206634) - Implemented
KeyboardEvent.prototype.codefrom the UI Event spec (r206803) - Implemented
KeyboardEvent.prototype.isComposingfrom the UI Event spec (r206796) - Implemented
KeyboardEvent.prototype.keyfrom the UI Event spec (r206750) - Implemented
KeyboardEvent.prototype.repeatfrom the UI Event spec (r206724) - Implemented
KeyboardEvent.prototype.getModifierState()from the UI Event spec (r206725) - Changed
ReadableStreamto match the Steams API spec (r206508) - Changed
DOMTokenList.prototype.valueandtoString()to match the DOM spec (r206560) - Changed
td.scopeto only return known values (r206733) - Changed
HTMLLabelElement.prototype.formto match the HTML spec (r206332) - Changed
Element.insertAdjacentHTML()to match the HTML spec (r206308) - Changed
window.open()so it returnsnullwhen it is blocked by Safari (r206777) - Changed
HTMLSlotElement.prototype.assignedNodes()to include fallback contents whenflattenoption is set (r206534) - Changed
Object.prototype.getOwnPropertyDescriptor()so it works correctly across origins (r206221) - Changed HTML serialization to always add
xml:prefix for attributes in the XML namespace (r206663) - Changed properties on
WindowandLocationto be non-enumerable when accessing them cross origin (r206233) - Fixed a bug where text nodes assigned to a linked slot were not clickable (r206605)
- Fixed the assignment of non-numeric values to
input.minlengthby setting it to 0 (r206588) - Fixed input elements so they work inside Shadow DOM trees (r206403)
- Fixed the
document.titlegetter by stripping and collapsing the right whitespace characters (r206309) - Fixed going into fullscreen from Silverlight a second time would hide the menu bar and dock for Safari (r206675)
- Fixed the serialization of HTML element attributes to match the HTML spec (r206240)
- Fixed the serialization of HTML void elements to ignore any child elements (r206266)
- Fixed the serialization of
bgsound,keygen, andtrackelements (r206246) - Fixed a bug where setting attributes on
HTMLMeterElementto non-finite values would throw the wrong exception type (r206243) - Fixed a bug where
IDBIndex.prototype.openCursor()would match indices on multiple object stores (r206280) - Fixed a bug preventing structured clones of
WebCryptokeys under Safari 10 (r206684)
Web Inspector
- Added line range highlighting to show where the debugger is paused — good for lines with multiple expressions or multiple function calls (r206654, r206655)
- Made breakpoints on blank lines or comments break on the next possible line (r206653)
- Fixed stepping out of a function so it always takes you to the caller instead of sometimes resuming (r206652, r206693)
- Fixed stepping to a line in the debugger with an “auto continue” breakpoint so it still pauses (r206698)
- Fixed refreshing while in the Timelines tab would cause negative timestamps in the Network tab (r206464)
- Fixed a bug where Box Model values were not updated when DOM node styles changed (r206406)
- Fixed a bug where the DOM would not update when editing Box Model values (border, margin, etc.) (r206363)
- Added a console message when an anchor
downloadattribute is ignored (r206562) - Made clicking a second time on the color swatch square hide the CSS color picker (r206729)
Media
- Fixed Picture in Picture playback so it always shows the correct state of the play button (r206520)
Accessibility
- Exposed a
labelelement’s text content as the description formeterelements (r206581) - Exposed a
labelelement’s text content as the description forprogresselements (r206391)
URL Handling
- Navigations to
tel:andmailto:links now require a user gesture; navigations without a user gesture will show a confirmation prompt - Users are now prompted when navigating to URLs that open other applications
Security
- Fixed an issue where a CSP violation report may be sent to the wrong domain when the
frame-ancestorsdirective is violated (r206278)
Safari Extensions
- Fixed an issue where Safari Technology Preview would consume excess memory when certain Safari Extensions were installed (r206885)