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