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.isConcatSpreadable
due 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.localeCompare
from ECMA-402 (r199967) - Optimized
JSON.parse
for a 1–2.5% improvement in Kraken json-parse-financial (r199968) - Implemented
RegExp.prototype.@@replace
and use it forString.prototype.replace
(r200117) - Implemented spec changes for
String.prototype.padStart
andString.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-set
work inside CSS variables (r199884) - Changed transitions to no longer animate to/from
auto
values (r200360) - Implemented proper handling of
animation-delay
with a negative delay (r200042) - Started parsing play-state as part of the
animation
shorthand (r200043) - Made toggling
animation-play-state
not restart a finished animation (r200047) - Fixed a regression which caused
position: absolute
pseudo elements to inherittext-decoration
(r200302) - Moved CSS Grid behind a runtime switch that is currently enabled by default (r200215, r200389)
- Started implementation of
auto-fill
andauto-fit
for CSS Grid (r200182, r200368) - Fixed computed style of
grid-template-columns
andgrid-template-rows
properties (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
ping
attribute for anchor elements only work for http/https URLs (r199900) - Renamed Shadow DOM’s
getAssignedNodes
toassignedNodes
and support flattened option (r200285) - Removed Shadow DOM’s
Node.prototype.rootNode
because it was not compatible with existing websites (r200297) - Made
document.currentScript
returnnull
when executing a script inside a shadow tree (r200327) - Fixed clicks sometimes being ignored inside button elements when the mouse moves (r200414)
Web Inspector
- Made
console
a namespace object (likeMath
andJSON
), 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
sourceURL
andsourceMappingURL
always work when using theFunction
constructor (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
debugger
statements 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.assert
andconsole.trace
to allow format specifiers (r200370) - Improved performance of
console.assert
by 10x when the assertion istrue
(r200371) - Changed
console.time
andconsole.timeEnd
to 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-content
andbox-sizing: border-box
that 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-label
attribute work on<label>
elements (r200290) - Made
region
a landmark and<section>
elements have a role ofregion
if there is an author provided accessible name via thearia-label
oraria-labelledby
attributes (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.