Safari Technology Preview 117 发布说明

Safari Technology Preview Release 117 现已适用于 macOS Big Sur 和 macOS Catalina,可供下载。如果您已安装 Safari Technology Preview,可以在 macOS 的“系统偏好设置”中通过“软件更新”面板进行更新。

本次发布涵盖 WebKit 修订版本 268651-270230

Web Inspector

  • 元素
    • 在“源”面板中添加了“编辑断点…”或“显示断点”选项 (r269337)
    • 在样式面板中,var 后添加了多余的闭括号 (r269201)
  • 网络
    • 修复了上一会话中行的背景颜色问题 (r269127)
    • 资源侧边栏和 Headers 面板中的 data URL 被截断 (r269075)
  • 搜索
    • 防止搜索字段在显示时窃取焦点 (r269074)
    • 将默认断点操作更改为 evaluate (r269547)
  • 控制台
    • 将控制台命令行 API 公开给断点条件和操作 (r269023, r269044)
    • 修复了在 Safari Technology Preview 空白标签页中使用“显示 JavaScript 控制台”的问题 (r270060)
  • 其他更改
    • 更新了样式以使用具有中性方向性的 CSS 属性 (r269166)

CSS

  • 新增对许多 CSS 属性离散动画的支持 (r269812, r269333, r269357, r268792, r268718, r268726)
  • 新增对更多伪元素(如 :marker)动画的支持 (r269813)
  • 新增对 ::marker 更多属性的支持 (r269774)
  • 新增对 aspect-ratio CSS 属性的解析支持 (r269641)
  • 使 CSS 字体简写可以在 worker 中解析 (r269957)
  • 将作为 flex 项的图像更改为在定义时使用 overridingLogicalHeight 计算逻辑宽度 (r270073)
  • 将作为 flex 项的图像更改为在定义时使用 overridingLogicalWidth 计算逻辑高度 (r270116)
  • background-size 更改为不接受负值 (r269237)
  • 修复了当网格项具有滚动条时,网格项替换子元素的百分比高度问题 (r269717)
  • 将宽高比序列化为在斜线周围有空格的形式 (r268659)

JavaScript

  • 启用静态公共类字段 (r269922, r269939)
  • 启用静态和实例私有类字段 (r270066)
  • 实现了 Intl.DateTimeFormat.formatRangeToParts (r269706)
  • 实现了 Intl.ListFormat (r268956)
  • 使 %TypedArray% 行为与最新的规范调整保持一致 (r269670)
  • ArrayBuffer#slice 中实现了 @@species 支持 (r269574)
  • 修复了 toLocaleDateString() 对某些旧日期解析不正确的问题 (r269502)
  • 在标志 (JSC_useSharedArrayBuffer=1) 后重新启用 SharedArrayBufferAtomics (r269531)

WebAssembly

  • 添加了 wasm 原子指令,部分在标志 (JSC_useSharedArrayBuffer=1) 后启用 (r270208)
  • 修复了 table.growtable.size 的操作码 (r269790)
  • 在标志 (JSC_useSharedArrayBuffer=1) 后实现了共享 WebAssembly.Memory (r269940)
  • 实现了 i32 sign-extension-ops (符号扩展操作) (r269929)

Web API

  • 为 ResizeObserver 添加了适当的垃圾回收机制 (r268860)
  • Worklet.addModule() 更改为在网络加载失败时以 AbortError 拒绝 Promise (r270033)
  • 更改了事件目标,使其在调度后如果目标指向阴影树则被清除 (r269546)
  • 将 WebSocket 构造函数更改为在端口被阻止时不抛出错误 (r269459)
  • 修复了切换深色模式时,更新 overflow: scroll 元素中滚动条外观的问题 (r269437)
  • 修复了 navigator.clipboard 在 *.localhost 页面上暴露的问题 (r269960)
  • 修复了文本输入框自动聚焦时不选择文本的问题 (r269587)
  • 修复了 Canvas drawImage 在空源时不引发 IndexSizeError 的问题 (r270126)
  • 修复了 getIndexedParameter 索引崩溃问题 (r270160)
  • 修复了将文本赋值给 input.defaultValue 时文本被覆盖的问题 (r269528)
  • 修复了 <input disabled> 在 dispatchEvent 后触发点击事件的问题 (r269452)
  • 修复了时间输入框中分钟和子午线字段之间的空间过大的问题 (r270148)
  • 修复了 window.event 不受调度后节点移动影响的问题 (r269500)
  • 改进了 AudioContext.suspend() / resume() promise 被拒绝时的异常消息 (r268999)
  • DOM API 返回的 Promise 具有调用者的全局对象,而非被调用者的全局对象 (r269227)
  • 移除了内容和 <br> 之间不必要的空白 (r268958, r269036)

语音识别

  • 为 SpeechRecognition 添加了音频捕获 (r270158)
  • 为 SpeechRecognition 权限请求添加了默认操作 (r269918)
  • 实现了 SpeechRecognition 的基本权限检查 (r269810)

WebRTC

  • 添加了 WebRTC SFrame 转换 (r269830)
  • 添加了 WebRTC 转换的基础设施 (r269764)
  • 新增对 RTCPeerConnection.onicecandidateerror 事件的支持 (r270101)
  • 新增对 RTCRtpScriptTransform 的支持 (r270107)
  • 在 WebRTC 中新增对 VP9 Profile 2 (10 位颜色) 的支持 (r268971)
  • 将摄像头故障计时器增加到 30 秒 (r269190)

媒体

  • 视频元素可能无法从全屏进入画中画模式 (r268816)
  • 在 MSE 中新增了跨初始化片段处理 trackId 更改的功能 (r269121)
  • 为 AudioSummingJunction 添加了 addOutput()removeOutput() 实用函数 (r268820)
  • 添加了 Media Session API 的骨架实现 (r268735)
  • 更改为确保 WebAudio API 抛出带有有用错误消息的异常 (r268812)
  • 将 AudioBuffer 通道更改为可中立和可分离 (r269108)
  • 修复了 MSE 中持续时间为 NaN 时样本驱逐的无限循环问题 (r270106)
  • 修复了通过 iframe 导航离开网页时 Web Audio 继续播放的问题 (r268893)
  • 修复了使用 AudioContext sampleRate 参数时重采样质量差的问题 (r270141, r270157)
  • 修复了 AudioBuffer.getChannelData(x) 对给定通道始终返回相同 JavaScript 封装器的问题 (r269081)
  • 修复了当音频会话被中断时,AudioContext.suspend() 不拒绝 Promise 的问题 (r269039)
  • 修复了透明视频海报图像,使其在预加载第一帧后仍保持元素透明 (r269407)
  • 修复了使用数据 URL 获取音频 worklet 模块的问题 (r270046)
  • 将音频和视频元素的创建速度提高了多达 50 倍 (r269077)

Web 动画

  • 确保在没有要更新的样式时,不调度动画更新 (r269963)
  • 修复了 KeyframeEffect.pseudoElement 在定位 ::marker::first-letter 时返回有效字符串的问题 (r269623)
  • 修复了单个变换属性的加速动画,使其先应用旋转再应用缩放 (r269527)

滚动

  • 将程序化滚动更改为停止橡皮筋效果 (r269373, r269559)
  • 更改为立即更新程序化滚动的滚动几何体 (r269558)

滚动捕捉

  • 修复了在 :root 上指定的滚动捕捉问题 (r269506)
  • 修复了根元素上的 scroll-snap 对齐到 body 外边距边缘而非视口边缘的问题 (r269622)
  • 使 scroll-snap-type 中的轴变为必需 (r268665)
  • 使 scroll-margin 独立于滚动捕捉,并在滚动到锚点时应用 (r269144)
  • 使 scroll-padding 独立于 scroll-snap,并影响 scrollIntoView (r270023)
  • 停止在 scrollminscrollmax 处创建隐式捕捉点 (r268856)

私密点击测量

  • 新增对待处理广告点击和归因的持久性,使其在浏览器重启后仍能保留 (r270136)
  • 更改为在链接打开新窗口时接受广告点击数据 (r269129)
  • 根据 W3C 讨论更改了属性和 JSON 键名称 (r269886)
  • 切换到 JSON 报告格式 (r269489)

Web Driver

  • 新增对键盘操作中代理对的处理 (r269421)
  • 新增对字符按键序列的支持 (r269035)
  • 新增对 WebDriver 测试中 HTTPS 配置的处理 (r268723)
  • 修复了 Shadow DOM 中元素被错误标记为过时的问题 (r268867)