Safari 技术预览版 47 发布说明
Safari 技术预览版 第 47 版现已可供下载,适用于 macOS Sierra 和 macOS High Sierra。如果您已安装 Safari 技术预览版,可以从 Mac App Store 的“更新”选项卡进行更新。此版本涵盖 WebKit 修订版本 225841-226358。
此版本包含 iOS 11.2.2、High Sierra 10.13.2 补充更新以及 1 月 8 日星期一重新发布的 Safari 11.0.2 中发布的 Spectre 缓解措施。有关 Spectre 的更多信息,请参阅《Spectre 和 Meltdown 对 WebKit 意味着什么》。
存储访问 API
这是一个新提议的 API(WhatWG issue),可以在“开发”菜单下的“实验性功能”中启用。通过在点击事件处理程序中调用 document.requestStorageAccess()
,可以在从 cookie 域加载的 iframe 中访问 Safari 的智能跟踪预防所分区的 cookie。当返回的 promise 得到解决时,该 iframe 中的第一方 cookie 将可访问。还提供了一个便利函数 document.hasStorageAccess()
,无需点击即可使用。
- 启用了允许来自非沙盒
<iframes>
的请求(r226244) - 在
document.cookie
层中实现了帧特定访问(r225934) - 使
document.hasStorageAccess()
从网络进程中检索当前状态(r226016) - 重构了 XPC,以使访问删除直接从 Web 进程传输到网络进程(r226389)
Service Worker
- 增加了对提供给 fetch 事件的响应 blob 的支持(r226066)
- 将提取 Blob 类型主体时 Content-Type 设置为 null,而非空字符串(r226162)
- 更改为使用“错误”重定向模式来获取 Service Worker 脚本(r226087)
- 更改了 Service Worker 脚本获取请求以设置
Service-Worker
标头(r225996) - 更改了 Service Worker,使其在拦截前不清除应用程序或 Fetch 规范添加的 HTTP 标头(r226126)
- 修复了注册 Service Worker 时使用的默认作用域(r226096)
- 修复了 Service Worker 注册 promise 在脚本加载失败时有时不会被拒绝的问题(r225975)
- 修复了 Service Worker 提供的响应污染以保持其污染性(r226090)
- 修复了
scopeURL
以提供的scriptURL
开头的问题(r226141) - 修复了
self.importScripts()
在 Service Worker 内部遵守 updateViaCache 的问题(r225940) - 修复了 Fetch 处理程序等待 Service Worker 状态变为激活的问题(r226136)
- 修复了 SameOrigin 和 CORS fetch 在 Service Worker 提供的不透明响应时失败的问题(r226084)
- 修复了内存缓存不重用具有不同凭证获取选项的资源的问题(r226333)
- 阻止了对非 HTTP 导航加载搜索 Service Worker 注册(r226185, r226200)
- 支持 Service Worker 拦截带 blob 主体的请求(r226191)
媒体
- 启用了在暂停时从内联元素进行画中画(r226217)
- 修复了调用“pause(); play()”的媒体元素播放时,播放 promise 被拒绝的问题(r226059, r226150)
- 实现了
<iframe allow="camera; microphone">
(r225963)
渲染
- 修复了屏幕上动画元素有时缺失的问题(r225983)
- 修复了设置
fePointLights
颜色问题(r226317) - 修复了
feDiffuseLighting
右下角像素的颜色问题(r226316) - 修复了 SVG 光照颜色转换为
linearSRGB
的问题(r226315) - 在样式重新调用之前显式更新了 SVG
use
元素的阴影树(r225868)
网页检查器
- 默认启用 Canvas 选项卡(r225979)
- 改进了枚举系统字体时的打开时间性能(r226352)
- 修复了在停靠检查器中使用 Command-Option-R (⌘⌥R) 导致网页检查器而非被检查页面重新加载的问题(r225907)
- 修复了“网络”选项卡中的 URL 过滤器像其他选项卡中的过滤器栏一样不区分大小写的问题(r225939)
- 修复了关闭详情视图后,“网络”选项卡中瀑布图尺寸不正确的问题(r226070)
- 重新设计了在“网络”选项卡表格中显示时间数据的瀑布图弹出窗口(r226158)
- 更新了“网络”选项卡表格中的“时间”列,以包含总持续时间而不仅仅是下载持续时间(r226151)
- 在“样式”侧边栏中为 CSS 变量添加了内联色块(r226079)
- 增加了在值末尾键入分号以移动到“样式”侧边栏中下一个属性的支持(r226149)
- 启用了 Command-S (⌘S) 以保存“样式”侧边栏中匹配 CSS 资源中的更改(r226082)
- 修复了在“样式”侧边栏中选择文本时不会添加新属性的问题(r225945)
- 实现在选择器上方点击以在“样式”侧边栏中预置新属性的功能(r225968)
剪贴板 API
- 修复了 isSafari 运行时检查,以在 Safari 技术预览版中启用自定义剪贴板类型和剪贴板数据清理(r226215)
- 修复了无法在 Gmail 上粘贴图片的问题(r226173)
- 为 LegacyWebKit 客户端恢复了粘贴内容中的 blob URL 转换(r226156)
错误修复
- 避免不必要地唤醒插件进程(r225984)
存储访问 API:重构 XPC,以使访问删除直接从 Web 进程传输到网络进程(r226389)