Safari Technology Preview 114 发布说明

Safari Technology Preview Release 114 现在已开放下载,支持 macOS Big Sur 和 macOS Catalina。如果您已安装 Safari Technology Preview,可以在 macOS 的“系统偏好设置”中的“软件更新”面板中进行更新。

此版本涵盖 WebKit 修订版本 265893-267325

Web Inspector

  • 元素选项卡
    • 更改为将未使用或不适用的属性灰显 (r266066)
    • 更改为在查看继承规则时隐藏不可继承的属性 (r266069)
    • 更改为不显示未使用或不适用的属性的内联颜色样本 (r266070)
  • 源选项卡
    • 更改为允许配置事件断点 (r266074, r266480)
    • 更改为在递增忽略计数之前评估断点条件 (r266138)
    • 更改为允许配置 DOM 断点 (r266669)
    • 更改为允许配置特殊 JavaScript 断点 (r266534)
    • 更改为允许配置 URL 断点 (r266538)
  • 网络选项卡
    • 修复 WebSockets 被报告为类型 websocket 的问题 (r266441)
    • 修复 XHR 请求的 304 响应未显示响应内容的问题 (r266568)
  • 时间轴选项卡
    • 修复打开时重复出现“时间轴记录 1”的问题 (r266477)
    • 修复重新启用 JavaScript Allocations 时间轴以在表格中显示之前捕获的堆快照的问题 (r266463)
    • 修复界面窄时录制按钮消失的问题 (r266537)
    • 修复停止录制按钮实际停止录制的问题 (r267038)
  • 审计选项卡
    • 允许在 Web Inspector 的编辑模式下创建和编辑审计 (r266317)
  • 杂项
    • 修复窗口过小时停靠按钮无法工作的问题 (r267031)

JavaScript

  • 添加 Intl.DateTimeFormatdateStyletimeStyle (r266035)
  • 添加 Intl.Segmenter (r266032)
  • 为单语句上下文中的 async function 添加语法错误 (r266340)
  • 添加 Object.getOwnPropertyNames 缓存并加速 Object.getOwnPropertyDescriptor (r265934)
  • 使旧版 Intl 构造函数行为符合规范 (r266655)
  • 在使用 timeStyle 时正确应用 Intl.DateTimeFormat hour-cycle (r267108)
  • 启用 Intl.DisplayNames (r266029)
  • 更改为不允许 let [ 序列出现在 ExpressionStatement 上下文中 (r266327)
  • 更改为允许 new super.property 语法 (r266322)
  • 更改为允许 new import.meta() 语法 (r266318)
  • 更改为在 IntlRelativeTimeFormat 中使用区域设置敏感的分组选项 (r266341)
  • 实现 Intl.DateTimeFormatdayPeriod (r266323)
  • 实现 Intl Language Tag Parser (r266039)
  • 实现 Intl.DateTimeFormat.prototype.formatRange (r266033)
  • 实现统一的 Intl.NumberFormat (r266031)
  • 修复对象字面量方法命名为 proto 时的无效早期错误 (r266117)
  • 修复类“extends”子句实现错误地使用 proto 来设置原型的问题 (r266106)
  • 修复 Performance 和 PerformanceNavigation 接口缺少 toJSON 操作的问题 (r267316)
  • 更新 Intl.Collator 以接受排序选项 (r267102)
  • 更新 Array.prototype.push 以在严格模式下始终执行 Set (r266581, r266641)
  • 更新 Promise.prototype.finally 以执行 PromiseResolve (r266896)

日期和时间输入

  • 添加对 <input type="datetime-local"> 的编辑功能 (r266830)
  • 更新日期输入以包含可编辑组件 (r266351)
  • 更新日期选择器外观以匹配系统日期选择器 (r267085)
  • 更新内部控件被编辑时的日期选择器 (r266461)
  • 更新日期选择器以尊重文档的颜色方案 (r267131)
  • 更新日期/时间输入,在输入分隔符键时将焦点移至下一个可编辑组件 (r267281)
  • 更新日期/时间输入以在值更改时保留焦点 (r266739)
  • 更新日期/时间输入以不使用用户指定格式来防止指纹识别 (r267283)

Web Audio

  • 添加 AudioParam.automationRate 属性 (r265980)
  • 添加对 AudioContextOptions.sampleRate 的正确支持 (r267014)
  • 允许直接创建替换编解码器 (r266466)
  • 更改 AudioParam.value setter 以调用 setValueAtTime(value, now) (r266293)
  • 更改 AudioParam.linearRampToValueAtTime() 公式以匹配规范 (r266261)
  • 更改 AudioBufferSourceNode 为对 playbackRatedetune 使用 final 值 (r265981)
  • 修复 AnalyserNode.getFloatFrequencyData() 在输入静音时用 -Infinity 填充数组的问题 (r267202)
  • 修复 AudioBufferSourceNode.start() 在偏移量超过缓冲区末尾时的行为问题 (r267169)
  • 修复 AudioBufferSourceNode.start() 在音高率为 0 时忽略 when 参数的问题 (r267170)
  • 修复 AudioContext 在构建 AudioNode 之前不进行渲染的问题 (r266922)
  • 修复 AudioDestinationNode.maxChannelCount 始终返回 0 的问题 (r266559)
  • 修复 AudioParam.linearRampToValueAtTime()exponentialRampToValueAtTime() 在没有前一个事件时不起作用的问题 (r266788)
  • 修复 BiquadFilterNode.getFrequencyResponse() 在超出范围的频率下返回 NaN 的问题 (r266541)
  • 修复 Panner.setPosition()setOrientation() 参数的类型不是无限制浮点数的问题 (r267071)
  • 移除非标准的 AudioBuffer.gain (r267065)
  • 使 AudioParam.cancelScheduledValues() 符合标准 (r266558)
  • 改进 OscillatorNode 中的插值算法 (r266627)
  • 引入 StereoPannerNode 接口 (r265962)
  • 停止在应用增益时执行“de-zippering” (r266794)

MediaRecorder

  • 在 macOS 上默认启用 MediaRecorder (r267225)
  • 媒体捕获结束不应在捕获开始后 3 秒前报告 (r267081)
  • MediaRecorder timeslice 参数导致较长视频出现内部错误 (r266611)

Paint Timing

  • 默认启用 paint timing (r267235)

WebGL

  • 默认启用 WebGL2 (r267027)
  • 为 OffscreenCanvas 添加 WebGL 和 WebGL2 上下文支持 (r266275)
  • WebGL 进入不良状态,其中 glContext.createProgram() 返回 null (r266362)

CSS

  • 修复 text-transform 继承到 ::marker 的问题 (r266288)
  • 更改为在网格项预布局之前设置可用列空间 (r266173)
  • 添加对 flow-relative 简写属性和 offset 属性的支持 (r266674)
  • 更改为允许不定尺寸的 flex 项在内部解析百分比时变为确定尺寸 (r266696)
  • 更改为在 quirks 模式下不对具有 auto height 的 flexbox 进行百分比计算 (r266716)
  • 更改为对固有最大值解析使用 min-content 大小 (r266675)
  • 修复 min-height: auto 未应用于嵌套 flexbox 的问题 (r266695)
  • 修复使用 CSS 变量时,非访问链接获取了 :visited 颜色的问题 (r266656)
  • 修复 CSS revert 序列化为“revert”,而不是“Revert”的问题 (r266660)
  • 更新以安全处理过长的 CSS 变量值 (r266989)

Web API

  • 使函数原型的 length 属性与规范对齐 (r266018)
  • 更新 ReadableStream.pipeTo 实现以匹配规范 (r266129)
  • 更新 Web Share API 以防止非 HTTP(S) URL (r266151)
  • 使 ISO-8859-{3,6,7,8,8-I} 和 windows-{874,1253,1255,1257} 编码与规范对齐 (r266527)
  • 更改 iframe 中的 XML 文档不再从父框架继承编码 (r266671)
  • 更改 Element 不在其构造函数内部设置属性 (r267074)
  • 更改 new URL("#") 会抛出错误 (r266748)
  • 修复连续的 requestAnimationFrame 回调可能传递相同时间戳的问题 (r266526)
  • 修复 XHR.timeout 受长任务影响的问题 (r267227)
  • 修复从内存缓存获取图像耗时过长的问题 (r266699)
  • 实现 encodeInto() TextEncoder 方法 (r266533)
  • 更新 URL fragment 百分比编码集 (r266399)

延迟加载

媒体

  • 修复视频元素从 DOM 中移除时画中画窗口关闭的问题 (r265904)
  • 修复 Netflix 上所有流的 HDCP 错误 (r266176)
  • 修复 <video> 元素在播放结束后仍阻止屏幕睡眠的问题 (r266410)

WebRTC

  • 添加 RTCRtpSynchronizationSource.rtpTimestamp (r266052)
  • 公开 RTCPeerConnection.restartIce (r266511)
  • 修复在多个标签页中使用 WebRTC 时 Safari 无法听到音频的问题 (r266454)

渲染

  • 修复动画过于频繁失效的问题 (r266229)
  • 修复 sedona.dev 上的闪烁问题 (r266189)
  • 修复 Facebook 评论过多帖子中的滚动条被截断,无法滚动到底部的问题 (r266156)
  • 更改为处理谎称等宽的字体 (r266118)
  • 修复以编程方式选择文本字段中的文本导致高亮叠加层溢出的问题 (r266051)
  • 修复 overflow: scroll 橡皮筋效果被后布局滚动打断的问题 (r267002, r266337)
  • 修复关闭网页时闪烁的问题 (r267250)

文本渲染

  • 更改 letter-spacing 以禁用连字 (r266683)

滚动

  • 修复当水平滚动条在鼠标下方时垂直滚动卡住的问题 (r266292)
  • 修复滚动页面后 select 元素滚动的问题 (r266262)

前进/后退缓存

  • 添加对第三方域名存储以进行前进/后退导航的支持 (r265916)

存储访问 API

  • 允许嵌套 iframe 请求存储访问权限 (r266479)