内容提要
Safari技术预览版251发布,适用于macOS Golden Gate和Tahoe。更新涵盖CSS、JavaScript、WebGPU等多项改进,包括支持@supports规则、object-view-box属性、随机函数、迭代器新方法、WebAssembly Memory64等。修复了SVG链接、文本溢出、滚动捕捉、音频处理及Web Inspector记录功能等问题,并移除部分非标准特性。
延伸解读
CSS 新特性:更灵活的样式控制
本次更新为 CSS 增加了多项新特性,如 @supports 规则、object-view-box 属性、random() 函数及 random-item() 函数等。这些特性使开发者能够更精细地控制样式,例如根据浏览器支持情况应用样式,或为元素生成随机值。此外,还支持了 corner-shape 属性,可定义元素角落的形状。这些改进有助于提升网页设计的灵活性和表现力。
JavaScript 与 WebAssembly 增强
JavaScript 方面新增了 Iterator 的多个方法,如 includes()、join()、chunks() 和 windows(),以及联合迭代提案中的 zip() 和 zipKeyed()。同时,WebAssembly 支持了 Memory64 和异常堆栈跟踪,并引入了延迟模块评估。这些更新为开发者提供了更强大的数据处理和性能优化工具,尤其适合处理大型数据集或需要高效内存管理的应用。
Web Inspector 对 WebGPU 的深度支持
Web Inspector 的 Canvas 标签页新增了对 WebGPU 的全面支持,包括录制、检测、预览、编辑着色器以及高亮渲染管线等功能。这使开发者能够更直观地调试 WebGPU 应用,查看设备、管线和资源的详细信息,并监控内存使用。对于从事图形密集型 Web 开发的团队,这些工具将显著提升调试效率。
多项修复提升稳定性
本次更新修复了大量问题,涵盖 CSS 布局、文本渲染、滚动捕捉、音频处理、网络请求等多个方面。例如,修复了缩放时文本溢出的问题、滚动捕捉顺序错误、音频解码失败等。这些修复有助于提升浏览器的整体稳定性和用户体验,减少开发者在跨浏览器测试中遇到的兼容性问题。
Q&A
Safari技术预览版251适用于哪些操作系统?
Safari技术预览版251适用于macOS Golden Gate和macOS Tahoe。
Safari技术预览版251在CSS方面新增了哪些功能?
新增支持@supports at-rule(...)、object-view-box属性、random()函数、random-item()函数、@container查询中的逗号分隔条件列表、white-space-trim、外部和data: URL过滤器引用、HighlightRegistry.highlightsFromPoint()、ident()函数、inherit()函数以及corner-shape属性。
Safari技术预览版251在JavaScript方面有哪些新特性?
新增支持Iterator.prototype.includes()、Iterator.prototype.join()、迭代器分块(chunks()和windows())、联合迭代(Iterator.zip()和zipKeyed())、RegExp缓冲区边界、Intl和Temporal日历中的era和monthCode字段、WebAssembly.Exception的traceStack选项、WebAssembly Memory64、延迟模块评估(import defer)以及导入文本模块。
Safari技术预览版251在Web Inspector中增加了哪些WebGPU相关功能?
Web Inspector的Canvas标签页新增了录制WebGPU设备、检测WebGPU设备、预览WebGPU内容、检测WebGPU管线、禁用WebGPU渲染管线、使用WebGPU标签作为名称、暴露客户端元数据、编辑WebGPU着色器、高亮WebGPU渲染管线、录制对象参数和结果对象、显示WebGPU位字段名称以及快照WebGPU元素图像副本等功能。
Safari技术预览版251移除了哪些非标准特性?
移除了-webkit-line-clamp的非标准百分比值,以及从flex和grid容器中移除了margin-trim支持(遵循CSSWG决议,仅保留在block和多列容器中)。此外,还移除了SVGPathSegList集合和SVGPathSeg接口族。
Safari技术预览版251在Web Audio方面修复了哪些问题?
修复了exponentialRampToValueAtTime()的精度损失、decodeAudioData()对有效M4A文件(ftyp品牌非mp4)的EncodingError、registerProcessor()错误消息未指明AudioParam、OscillatorNode的a-rate自动化起始相位、AudioBufferSourceNode输出通道数、音频目的地环形缓冲器欠载时播放陈旧音频、AudioScheduledSourceNode未连接时ended事件不触发、k-rate AudioParam输入与自动化不一致、AudioContext.close()在已关闭上下文上不拒绝、AudioWorkletGlobalScope.currentFrame在挂起时报告0、AudioWorkletProcessor过早销毁、processorerror事件缺少文件名等信息、MediaStreamAudioSourceNode捕获错误轨道、零时长exponentialRampToValueAtTime()渲染NaN、ConvolverNode.buffer设为null未释放脉冲响应,以及长缓冲区反向播放外推问题。
Safari技术预览版251在WebGPU方面修复了哪些问题?
修复了WGSL中打包vec3值的错误编译、executeBundles()包含间接绘制时帧率大幅下降、textureDimensions(t, level)钳制mip level超出有效范围、GPUQueue.copyExternalImageToTexture()上传索引PNG图像错误。
Safari技术预览版251在WebRTC方面有哪些更新?
新增了WebRTC AV1软件回退支持,并修复了捕获约束范围同时指定min和max时忽略有效当前值、setSinkId()对单轨MediaStream报告成功但未切换音频输出、禁用回声消除时getUserMedia()中断麦克风、ImageCapture.takePhoto()在瞬时捕获错误后永久失败等问题。