Safari Technology Preview 256 发布说明

Safari Technology Preview 256 发布说明

💡 原文英文,约4200词,阅读约需16分钟。
📝

内容提要

Safari Technology Preview 256 发布,包含多项 WebKit 修复与新增功能。CSS 新增 text-combine-upright、line-clamp 的 continue: collapse、font-palette-mix() 等特性,并修复大量布局、网格与 calc() 问题;Canvas 新增字体与文本绘制样式支持;JavaScript 修复 DFG 编译器多处错误优化及语法解析问题;媒体方面修复字幕、WebVTT 与 WebCodecs 解码等问题;同时改进性能、渲染、SVG、Web API、Web Inspector、WebGL、WebGPU 与 WebRTC。

🔎

延伸解读

CSS 新特性与布局修复

本次更新为 CSS 带来多项新特性,包括 ::marker 上的 text-combine-upright、line-clamp 的 continue: collapse 以及 Cocoa 平台上的 font-palette-mix()。同时修复了大量布局问题,涉及网格、弹性盒子、calc() 运算和行钳制等。开发者可以关注这些修复对现有页面渲染的潜在影响,尤其是使用 line-clamp 或复杂网格布局的场景。

JavaScript 引擎与解析修复

JavaScript 方面修复了 DFG 编译器中的多处错误优化,例如逻辑非运算符、右移操作和整数转换可能产生错误结果。此外还修正了模块 worker 重复执行、严格模式保留字、TypedArray 负长度抛出 RangeError 等解析与运行时问题。这些修复提升了代码执行的正确性,对依赖优化编译的复杂应用尤为重要。

媒体与 Web API 改进

媒体部分修复了字幕字体大小、WebVTT 解析、WebCodecs 解码(如 Opus 多声道和 FLAC)等问题,并解决了 MediaRecorder 停止时丢失数据的情况。Web API 新增了 VideoFrame.copyTo() 的 RGB 转换和 colorSpace 选项,以及 Apple Pay JS 的 estimated 行项目类型。这些改进增强了媒体处理和支付集成的能力。

性能与开发者工具增强

性能方面,Safari 现在会缓存 document.querySelector() 的结果,并优化了导航启动过程。Web Inspector 新增了对 ::slotted() 样式、Shadow DOM parts 的显示,以及渲染字体字符范围的报告。这些工具改进有助于开发者更高效地调试样式和字体问题,同时性能优化可能带来页面加载和查询操作的提升。

❓

Q&A

Safari Technology Preview 256 支持哪些新的 CSS 特性?

新增支持 text-combine-upright 在 ::marker 上使用;支持 line-clamp 的 continue: collapse(现由 line-clamp 简写设置);在 Cocoa 平台支持 font-palette-mix(),允许混合字体调色板。

这个版本在 JavaScript 引擎方面修复了哪些重要问题?

修复了 DFG 编译器的多处错误优化,包括逻辑非运算符、右移操作、整数转换、私有名称检查等可能产生错误结果的问题;还修复了 Math.sumPrecise 对 -Number.MAX_VALUE 返回错误结果、模块 worker 重复执行入口脚本、以及 await 表达式和严格模式保留字等语法解析问题。

Safari Technology Preview 256 在 Canvas 文本绘制方面增加了什么支持?

为 CanvasTextDrawingStyles 增加了 lang 属性;支持 fontKerning、fontStretch、fontVariantCaps 和 textRendering 文本绘制样式;还支持 direction 属性的 inherit 值。

媒体方面修复了哪些与字幕和 WebVTT 相关的问题?

修复了字幕字体大小菜单不生效、WebVTT cue 背景不应用 text-decoration 样式、::cue 设置的 unicode-bidi 不应用于背景、WebVTT 解析要求对齐关键字精确匹配、以及 cue 行定位基于第一个行盒计算等问题。

WebGPU 在这个版本中有什么新特性和修复?

新增支持 texture-component-swizzle 特性,createView() 可接受 swizzle 选项来排列或填充纹理通道;修复了销毁的 GPUTexture 在仍有 GPUBindGroup 引用时 GPU 内存不释放、离屏 canvas 回读性能、WGSL 一致性分析以及 ImageBitmap 复制到纹理等问题。

这个版本对 Web Inspector 做了哪些改进?

新增在元素标签页的样式侧边栏显示 ::slotted() 样式、支持暴露 Shadow DOM 部件、报告渲染字体字符范围、在控制台视觉区分私有方法;并修复了占位符样式不显示、console.group 分组消息、时间线录制、源代码映射错误报告等大量问题。

🏷️

标签

➡️

继续阅读