Safari 26.6的WebKit特性

Safari 26.6的WebKit特性

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

Safari 26.6发布,主要更新为WebAssembly的流式编译新增compileOptions参数,支持JS String Builtins,无需回退。同时修复八个bug,涵盖CSS缩放、定位、字体,网络cookie删除,Service Worker注册清理,扩展性能及WebRTC候选收集问题。更新适用于iOS、iPadOS、visionOS及macOS系统。

🔎

延伸解读

流式编译与JS String Builtins的衔接

此前,Safari 26.2引入的JS String Builtins仅支持非流式编译,开发者若想使用该特性,必须放弃流式编译带来的性能优势。本次更新为compileStreaming()和instantiateStreaming()新增compileOptions参数,使得流式编译也能启用JS String Builtins,无需回退。这简化了代码路径,让开发者可以同时享受流式编译的效率和内置字符串操作的优化。

CSS缩放与字体属性的交互修复

本次修复了多个CSS缩放相关问题,包括ic单位在页面缩放时不再等于1em,以及CSS zoom与font-size等属性在iPad桌面网站请求时的错误交互。这些修复有助于确保跨设备、跨缩放场景下的样式一致性,减少开发者因浏览器差异而进行的额外适配工作。

Service Worker注册清理机制

修复了Service Worker注册因主脚本或导入脚本缺失而无法自动注销的问题。此前,这类残留注册会阻止页面重新注册新的Service Worker,影响更新流程。现在浏览器能自动清理无效注册,确保Service Worker生命周期管理更可靠,减少开发者在调试和部署更新时遇到的障碍。

WebRTC中继策略的候选收集修复

修复了macOS Sequoia上RTCPeerConnection配置iceTransportPolicy为"relay"时无法收集ICE候选的问题。该问题可能导致使用中继服务器的连接失败,影响音视频通信的稳定性。此修复对依赖TURN服务器的应用尤为重要,确保在受限网络环境下也能正常建立连接。

Q&A

Safari 26.6 在 WebAssembly 方面有哪些更新?

Safari 26.6 为 WebAssembly 的流式编译方法 compileStreaming() 和 instantiateStreaming() 新增了 compileOptions 参数,使得开发者可以在流式编译时直接启用 JS String Builtins,无需回退到非流式编译。

Safari 26.6 修复了哪些 CSS 相关的问题?

Safari 26.6 修复了三个 CSS 问题:ic 长度单位在页面缩放时不再等于 1em;fixed 定位元素使用 position-area 时在 body 可滚动情况下回退不正确;在 iPad 请求桌面网站时,CSS zoom 与 font-size、font-weight、font-variant、font-style 的交互问题。

Safari 26.6 修复了哪些网络和 Service Worker 问题?

Safari 26.6 修复了网络方面分区 cookie 无法通过 WKHTTPCookieStore 删除的问题;Service Worker 方面,修复了注册时主脚本或导入脚本缺失时未自动注销,导致页面无法重新注册新 Service Worker 的问题。

Safari 26.6 对 Web Extensions 和 WebRTC 做了哪些修复?

Safari 26.6 修复了 Web Extensions 中 Service Worker 注册数据库文件在每次启动时累积导致性能下降的问题;WebRTC 方面,修复了在 macOS Sequoia 上 RTCPeerConnection 配置 iceTransportPolicy: "relay" 时无法收集任何 ICE 候选的问题。

Safari 26.6 支持哪些操作系统?

Safari 26.6 支持 iOS 26.6、iPadOS 26.6、visionOS 26.6、macOS Tahoe 26.6、macOS Sequoia 和 macOS Sonoma。

如何更新到 Safari 26.6?

在 iOS、iPadOS 和 visionOS 上,通过“设置 > 通用 > 软件更新”进行系统更新即可获得 Safari 26.6;在 macOS 上,通过“系统设置 > 通用 > 软件更新”获取 Safari 更新。

🏷️

标签

➡️

继续阅读