Release Notes for Safari Technology Preview 4
Safari Technology Preview Release 4 is now available for download. If you already have Safari Technology Preview installed, you can update from the Mac App Store’s Updates tab. Release 4 of Safari Technology Preview covers WebKit revisions 199865–200417.
Networking
- Allow non-standard HTTP headers in WebSocket handshakes, which makes the 1Password extension work again (r200120, r200219)
Media
- Fixed Netflix video playback (r200172)
JavaScript
- Disabled
Symbol.isConcatSpreadabledue to performance concerns; is expected to return in the next release (r200149) - Made
super()available to object literals, not just ES6 classes (r199927) - Sped up calling bound functions with no bound arguments by 4x (r199946)
- Implemented
String.prototype.localeComparefrom ECMA-402 (r199967) - Optimized
JSON.parsefor a 1–2.5% improvement in Kraken json-parse-financial (r199968) - Implemented
RegExp.prototype.@@replaceand use it forString.prototype.replace(r200117) - Implemented spec changes for
String.prototype.padStartandString.prototype.padEnd(r200194, r200210) - Unified how
Math.pow()is optimized across all JIT tiers (r200208) - Made
Reflect.toString()be[object Object]not[object Reflect](r200355)
CSS
- Made
-webkit-image-setwork inside CSS variables (r199884) - Changed transitions to no longer animate to/from
autovalues (r200360) - Implemented proper handling of
animation-delaywith a negative delay (r200042) - Started parsing play-state as part of the
animationshorthand (r200043) - Made toggling
animation-play-statenot restart a finished animation (r200047) - Fixed a regression which caused
position: absolutepseudo elements to inherittext-decoration(r200302) - Moved CSS Grid behind a runtime switch that is currently enabled by default (r200215, r200389)
- Started implementation of
auto-fillandauto-fitfor CSS Grid (r200182, r200368) - Fixed computed style of
grid-template-columnsandgrid-template-rowsproperties (r199981) - Fixed a bug with positioned grid items in vertical writing mode (r199874)
- Fixed alignment with CSS Grid content distribution (r200181)
- Improved user agent styles for
<math>elements (r199869)
Web APIs
- Fixed wheel events so they fire with
body, html { height: 100% }(r200247) - Marked IndexedDB constructors as hidden on the worker global object until it is supported (r199889)
- Made
pingattribute for anchor elements only work for http/https URLs (r199900) - Renamed Shadow DOM’s
getAssignedNodestoassignedNodesand support flattened option (r200285) - Removed Shadow DOM’s
Node.prototype.rootNodebecause it was not compatible with existing websites (r200297) - Made
document.currentScriptreturnnullwhen executing a script inside a shadow tree (r200327) - Fixed clicks sometimes being ignored inside button elements when the mouse moves (r200414)
Web Inspector
- Made
consolea namespace object (likeMathandJSON), allowing functions to be called unbound (r200350, r200373) - Fixed an issue where scripts would not load due to Esprima.js not being found (r200229)
- Started showing dynamically added
<script>// <![CDATA[elements added to a frame as resources (r200065) - Made
sourceURLandsourceMappingURLalways work when using theFunctionconstructor (r199939) - Restored filtering to the Timelines tab (r200067)
- Added column number info to event listener locations (r199940)
- Fixed profiles missing from records in JavaScript & Events timeline (r199979)
- Fixed selecting a bar in the Frames timeline mode (r199972)
- Made sorting by name or location columns work as expected (r199974)
- Fixed the line error widget showing up on the wrong resource (r200064)
- Clarified Retained Size in heap snapshots by hiding retained size of non-dominated children (r200086)
- Made the
debuggerstatements evaluated in the console properly show the source code (r199897) - Made jump to line work correctly the first time in pretty-printed JavaScript (r200262)
- Improved scrolling performance in Timelines tab (r200270)
- Improved performance of rendering many console messages (r200401)
- Changed
console.assertandconsole.traceto allow format specifiers (r200370) - Improved performance of
console.assertby 10x when the assertion istrue(r200371) - Changed
console.timeandconsole.timeEndto use a default label when none if specified, and warn when attempting to start an already started timer (r200400) - Added CSS autocompletion suggestions for
-webkit-user-select(r200154)
Rendering
- Made non-accelerated CSS and SVG animations run at 60fps (r200164, r200171)
- Made
<select multiple>padding consistent with other browsers (r200265) - Fixed blur filter escaping an enclosing
overflow: hidden(r200283) - Fixed a regression with
min-contentandbox-sizing: border-boxthat affected Facebook’s messenger.com (r199895)
Accessibility
- Made VoiceOver properly speak superscript content (r200214)
- Fixed navigation around composed emoji characters and content with multiple whitespace sequences (r200258)
- Made
aria-labelattribute work on<label>elements (r200290) - Made
regiona landmark and<section>elements have a role ofregionif there is an author provided accessible name via thearia-labeloraria-labelledbyattributes (r200415)
Bug Fixes
- Corrected how WebKit determines the user’s preferred region from the system language setting. (r200105)
You can file bugs or feature requests at the WebKit bug tracker, or you can submit feedback or bugs to Apple on Apple’s bug reporting website. For other questions or feedback, feel free to reach us on Twitter at @webkit or Jonathan Davis at @jonathandavis.