Safari 技术预览版 91 发布说明

Safari 技术预览版 91 现已 开放下载,适用于 macOS Mojave 和 macOS Catalina beta 版。如果您已安装 Safari 技术预览版,可以通过 macOS 系统偏好设置的“软件更新”面板进行更新。

本次发布涵盖 WebKit 修订版本 248705-249190

安全性

  • 禁用旧版 TLS 1.0 和 TLS 1.1 (r249019)

JavaScript API

  • 为未处理的 Promise 拒绝添加了公共 API (r249058)
  • 在 ESNext 中添加了对 Hashbang 的支持 (r248826)
  • 在 ESNext 中实现了可选链 (Optional Chaining) (r248829)
  • 实现了 StaticRange 构造函数 (r249079)
  • 修复了 Date.prototype.toJSONtoISOString 返回对象时不会抛出异常的问题 (r248876)
  • 修复了 String.prototype 中更多缺失的异常检查 (r248716)
  • 修复了在非异步函数中使用 for-await-of 时出现的错误消息不当的问题 (r248711)
  • 修复了 ProxyObject 不允许访问其目标私有属性的问题 (r248796)
  • 更新了 Promise 构造函数,使其在 `Construct?` 之前检查参数 (r248787)
  • 更新了 Promise.prototype.finally 以接受非 Promise 对象 (r248793)

JavaScript 性能

  • 更改为避免每次调用 Array.prototype.toString 时都查找 join 函数 (r248906)
  • 确保 x?.y ?? z 快速执行 (r249117)

媒体

  • 修复了退出画中画时 webkitpresentationmodechanged 事件触发两次的问题 (r249141)
  • 更新为停止 MediaDevices 时停止 MediaDevices 定时器 (r248853)
  • 修复了在 requestFullscreen() 后在 requestAnimationFrame() 回调中删除全屏元素导致全屏状态不一致的问题 (r249147)
  • 在搜索捕获设备时,不应考虑禁用的设备 (r249154)

Web API

  • 开始在全局 Window 对象上公开地理定位接口(GeolocationPositionGeolocationPositionErrorGeolocationCoordinates)(r249066)
  • 修复了带变体选择符的 Emoji 以 Emoji 样式而非文本样式渲染的问题 (r248815)
  • 更改了 SVG 元素,使其在添加 focuskey 事件监听器时可聚焦 (r248983)
  • 更改了 outputfieldset 的默认 Tab 索引为 -1 (r248914)

渲染

  • 修复了通过 drawImage 将动画图像绘制到画布时绘制第一帧的问题 (r249162)

指针事件

  • 修复了移除捕获元素阻止未来指针事件在 macOS 上分派的问题 (r248855)

WebDriver

  • 修复了 SimulatedInputDispatcher 日志中鼠标按钮打印不正确的问题 (r248715)

网页检查器

  • 元素
    • 修复了“复制规则”菜单项错误复制注释掉的属性的问题 (r249089)
    • 更改为在节点详情侧边栏中为事件监听器设置断点时自动启用它 (r248765)
    • 更改了 DOM 树始终为 LTR,即使在 RTL 模式下也是如此 (r248991)
  • 网络
    • 更改了“Headers”面板始终为 LTR,即使在 RTL 模式下也是如此 (r248889)
  • 资源
    • 为更多 CSS 媒体查询添加了语法高亮显示 (r248810)
    • 为 JavaScript BigInt 添加了语法高亮显示 (r248898, r248908)
    • 为更多现代 JavaScript 语言特性添加了美观打印支持 (r248760, r248785, r248922, r248923)
    • 修复了 CodeMirror 中即使“偏好缩进方式”设置为“空格”时仍然使用 Tab 键的问题 (r248739)
  • 调试器
    • 添加了一个全局断点,用于在下一个微任务中暂停 (r248894)
    • 修复了检查 JSContext 时断言失败断点不起作用的问题 (r248891)
  • 控制台
    • 实现了 queryHolders 命令行 API 函数 (r248925)
    • 更新了 console.dir,使其在给定对象时初始状态为展开 (r249034)
    • 为其他 console 方法创建了额外的命令行 API 函数 (r249078)
    • 更改了控制台始终为 LTR,即使在 RTL 模式下也是如此 (r248766)
  • 源 (实验性)
    • 修复了导航侧边栏较窄时齿轮图标会移动到第二行的问题 (r248818)
    • 修复了“无过滤结果”消息显示在所有其他内容上方,阻止任何交互的问题 (r248737)
    • 在导航侧边栏中为 Origin 提供了自己的图标 (r248912)
    • 将资源类型范围栏移动到导航侧边栏中过滤器的旁边 (r248916, r248940)
    • 提供了创建任意 Inspector 样式表的方式 (r248753)
  • 图层 (实验性)
    • 修复了从/到深色模式切换时 3D 区域背景不更新的问题 (r248735)

WebGPU

  • 添加了一元加号 (r248756)
  • 更改了枚举,使其不被局部变量遮蔽 (r248812)
  • 修复了 WebGPU 图层有时不显示的问题 (r248879)
  • 实现了 GPUErrors 并放宽了 GPUBuffer 验证规则 (r249183)
  • 使 operator== 成为原生并添加了布尔矩阵 (r248795)
  • 更新了矩阵,使其构造函数接受一个扁平的标量列表 (r248754)
  • 更新了顶点着色器和片段着色器,使其能够来自两个不同的程序 (r248993)