Safari Technology Preview 4 发布说明

Safari Technology Preview 第 4 版现已开放下载。如果您已安装 Safari Technology Preview,可以从Mac App Store 的“更新”选项卡进行更新。Safari Technology Preview 第 4 版包含 WebKit 修订版本 199865–200417

网络

  • 允许在 WebSocket 握手中使用非标准 HTTP 头部,使 1Password 扩展再次可用 (r200120, r200219)

媒体

  • 修复了 Netflix 视频播放问题 (r200172)

JavaScript

  • 由于性能问题禁用了 Symbol.isConcatSpreadable;预计在下一版本中恢复 (r200149)
  • 使 super() 可用于对象字面量,而不仅仅是 ES6 类 (r199927)
  • 将调用无绑定参数的绑定函数速度提高了 4 倍 (r199946)
  • 实现了 ECMA-402 中的 String.prototype.localeCompare (r199967)
  • 优化了 JSON.parse,使 Kraken json-parse-financial 性能提升了 1–2.5% (r199968)
  • 实现了 RegExp.prototype.@@replace 并将其用于 String.prototype.replace (r200117)
  • 实现了 String.prototype.padStartString.prototype.padEnd 的规范变更 (r200194, r200210)
  • 统一了 Math.pow() 在所有 JIT 层级的优化方式 (r200208)
  • 使 Reflect.toString() 的结果为 [object Object] 而不是 [object Reflect] (r200355)

CSS

  • 使 -webkit-image-set 在 CSS 变量内部工作 (r199884)
  • 修改了过渡,使其不再从/向 auto 值进行动画 (r200360)
  • 实现了对带有负延迟的 animation-delay 的正确处理 (r200042)
  • 开始将 play-state 解析为 animation 缩写的一部分 (r200043)
  • 使切换 animation-play-state 不会重新启动已完成的动画 (r200047)
  • 修复了一个导致 position: absolute 伪元素继承 text-decoration 的回归问题 (r200302)
  • 将 CSS Grid 移至运行时开关后,该开关目前默认启用 (r200215, r200389)
  • 开始实现 CSS Grid 的 auto-fillauto-fit (r200182, r200368)
  • 修复了 grid-template-columnsgrid-template-rows 属性的计算样式问题 (r199981)
  • 修复了纵向书写模式下定位网格项目的一个错误 (r199874)
  • 修复了 CSS Grid 内容分布中的对齐问题 (r200181)
  • 改进了 <math> 元素的用户代理样式 (r199869)

Web API

  • 修复了滚轮事件,使其在 body, html { height: 100% } 时也能触发 (r200247)
  • 在 IndexedDB 在 worker 全局对象上受支持之前,将其构造函数标记为隐藏 (r199889)
  • 使锚点元素的 ping 属性仅适用于 http/https URL (r199900)
  • 将 Shadow DOM 的 getAssignedNodes 重命名为 assignedNodes 并支持 flattened 选项 (r200285)
  • 移除了 Shadow DOM 的 Node.prototype.rootNode,因为它与现有网站不兼容 (r200297)
  • 当在 shadow tree 内部执行脚本时,使 document.currentScript 返回 null (r200327)
  • 修复了鼠标移动时,按钮元素内的点击有时会被忽略的问题 (r200414)

Web Inspector

  • 使 console 成为一个命名空间对象(类似 MathJSON),允许函数在未绑定时调用 (r200350, r200373)
  • 修复了由于找不到 Esprima.js 导致脚本无法加载的问题 (r200229)
  • 开始将动态添加到 frame 中的 <script>// <![CDATA[ 元素显示为资源 (r200065)
  • 使用 Function 构造函数时,使 sourceURLsourceMappingURL 始终工作 (r199939)
  • 恢复了 Timelines 选项卡中的过滤功能 (r200067)
  • 在事件监听器位置信息中添加了列号信息 (r199940)
  • 修复了 JavaScript & Events 时间线记录中缺少 profile 的问题 (r199979)
  • 修复了 Frames 时间线模式下选择条形图的问题 (r199972)
  • 使按名称或位置列排序功能按预期工作 (r199974)
  • 修复了行错误小部件显示在错误资源上的问题 (r200064)
  • 通过隐藏非主导子节点的保留大小,澄清了堆快照中的保留大小 (Retained Size) (r200086)
  • 使在控制台中评估的 debugger 语句正确显示源代码 (r199897)
  • 使漂亮打印的 JavaScript 中的跳转到行功能首次工作正常 (r200262)
  • 提高了 Timelines 选项卡的滚动性能 (r200270)
  • 提高了渲染大量控制台消息的性能 (r200401)
  • 修改了 console.assertconsole.trace 以允许格式说明符 (r200370)
  • 断言为 true 时,将 console.assert 的性能提高了 10 倍 (r200371)
  • 修改了 console.timeconsole.timeEnd,在未指定标签时使用默认标签,并在尝试启动已启动的计时器时发出警告 (r200400)
  • -webkit-user-select 添加了 CSS 自动完成建议 (r200154)

渲染

  • 使非加速的 CSS 和 SVG 动画以 60fps 运行 (r200164, r200171)
  • 使 <select multiple> 的填充与其他浏览器一致 (r200265)
  • 修复了模糊滤镜逃逸封闭的 overflow: hidden 的问题 (r200283)
  • 修复了一个影响 Facebook messenger.com 的 min-contentbox-sizing: border-box 回归问题 (r199895)

无障碍功能

  • 使 VoiceOver 正确朗读上标内容 (r200214)
  • 修复了在组合表情符号字符和包含多个空白序列的内容周围导航的问题 (r200258)
  • 使 aria-label 属性在 <label> 元素上工作 (r200290)
  • 如果作者通过 aria-labelaria-labelledby 属性提供了可访问名称,则使 region 成为地标,并且 <section> 元素具有 region 的角色 (r200415)

错误修复

  • 更正了 WebKit 根据系统语言设置确定用户首选区域的方式。 (r200105)

您可以在WebKit 错误跟踪器提交错误或功能请求,或者在Apple 的错误报告网站向 Apple 提交反馈或错误。对于其他问题或反馈,请随时通过 Twitter @webkit 或联系 Jonathan Davis @jonathandavis