Safari 技术预览版 15 发布说明

Safari 技术预览版 15 现已在 macOS Sierra 和 OS X El Capitan 10.11.6 上开放下载。如果您已经安装了 Safari 技术预览版,可以从 Mac App Store 的“更新”标签页进行更新。此版本涵盖 WebKit 修订版 206196–206808

这是 Safari 技术预览版最后一次可在 OS X El Capitan 上安装和运行的版本。要继续测试或体验 Safari 和 WebKit 的最新增强功能,请升级到 macOS Sierra。

Fetch API

  • 使 ReadableStream 抛出 TypeError 值而不是字符串 (r206770)
  • 更改了 Fetch 以阻止重定向到非 HTTP URL (r206716)
  • 使 FetchBody 使用 UTF8 编码文本数据 (r206636)
  • 添加了对将 URLSearchParams 作为 Fetch 的 body 的支持 (r206632)

JavaScript

  • 在基准测试中,将 String.prototype.toLowerCase() 提速 7–8% (r206804)
  • 修复了在赋值期间无法推断类、函数和箭头函数名称的情况 (r206599, r206610)
  • 修复了箭头函数,使其不允许重复的参数名称 (r206647)
  • 更新了 GeneratorGeneratorFunction 属性描述符以匹配 ES6 规范 (r206711, r206738)
  • 修复了在极少数情况下 String.prototype.padStart()padEnd() 会插入 null 的错误 (r206573)
  • 修复了当参数具有默认值时,Function.prototype.length 的错误 (r206268)

CSS

  • 实现了 font-variation-settings 的渲染并默认启用 (r206679, r206701, r206761)
  • 实现了 font-variation-settings 的动画 (r206690)
  • 添加了将 font-family: cursive 映射到中文楷体字体 (r206791)
  • 将不定高度的 CSS Grid 行大小计算速度提高了 2 倍 (r206253)
  • 修复了设置样式元素的 textContentcssText 后能正确触发样式重新计算的问题 (r206404)
  • 修复了在 Shadow DOM slot 的父元素上切换 display: none 在更多情况下生效的问题 (r206493)

Web API

  • 启用了对 anchor 和 area 元素上 download 属性的支持 — 包括 Blob URL (r206356, r206358, r206439, r206478, r206630)
  • 向 Web Workers 暴露了 CryptoKey (r206627)
  • 实现了 Node.prototype.getRootNode() (r206285)
  • 实现了 ShadowRoot.prototype.elementFromPoint() (r206795)
  • 实现了 DOMTokenList.prototype.supports() (r206561, r206616)
  • 根据 HTML 规范实现了 ImageData.prototype.data (r206634)
  • 根据 UI 事件规范实现了 KeyboardEvent.prototype.code (r206803)
  • 根据 UI 事件规范实现了 KeyboardEvent.prototype.isComposing (r206796)
  • 根据 UI 事件规范实现了 KeyboardEvent.prototype.key (r206750)
  • 根据 UI 事件规范实现了 KeyboardEvent.prototype.repeat (r206724)
  • 根据 UI 事件规范实现了 KeyboardEvent.prototype.getModifierState() (r206725)
  • 更改了 ReadableStream 以匹配 Steams API 规范 (r206508)
  • 更改了 DOMTokenList.prototype.valuetoString() 以匹配 DOM 规范 (r206560)
  • 更改了 td.scope 以仅返回已知值 (r206733)
  • 更改了 HTMLLabelElement.prototype.form 以匹配 HTML 规范 (r206332)
  • 更改了 Element.insertAdjacentHTML() 以匹配 HTML 规范 (r206308)
  • 更改了 window.open(),使其在 Safari 阻止时返回 null (r206777)
  • 更改了 HTMLSlotElement.prototype.assignedNodes(),使其在设置 flatten 选项时包含后备内容 (r206534)
  • 更改了 Object.prototype.getOwnPropertyDescriptor(),使其在跨源时正常工作 (r206221)
  • 更改了 HTML 序列化,使其始终为 XML 命名空间中的属性添加 xml: 前缀 (r206663)
  • 更改了 WindowLocation 上的属性,使其在跨域访问时不可枚举 (r206233)
  • 修复了分配给链接槽的文本节点不可点击的错误 (r206605)
  • 修复了将非数值分配给 input.minlength 时将其设置为 0 的问题 (r206588)
  • 修复了 input 元素,使其在 Shadow DOM 树内部也能正常工作 (r206403)
  • 修复了 document.title getter,通过去除和折叠正确的空白字符来处理 (r206309)
  • 修复了从 Silverlight 第二次进入全屏会隐藏 Safari 的菜单栏和 Dock 的问题 (r206675)
  • 修复了 HTML 元素属性的序列化以匹配 HTML 规范 (r206240)
  • 修复了 HTML void 元素的序列化,使其忽略任何子元素 (r206266)
  • 修复了 bgsoundkeygentrack 元素的序列化 (r206246)
  • 修复了将 HTMLMeterElement 上的属性设置为非有限值时会抛出错误异常类型的错误 (r206243)
  • 修复了 IDBIndex.prototype.openCursor() 会匹配多个对象存储上的索引的错误 (r206280)
  • 修复了在 Safari 10 下阻止 WebCrypto 密钥结构化克隆的错误 (r206684)

Web Inspector

  • 添加了行范围高亮显示,以指示调试器暂停的位置 — 这对于包含多个表达式或多个函数调用的行非常有用 (r206654, r206655)
  • 使空白行或注释上的断点在下一个可能的行中断 (r206653)
  • 修复了跳出函数时始终跳转到调用者而不是有时恢复执行的问题 (r206652, r206693)
  • 修复了在调试器中跳转到带有“自动继续”断点的行时仍然会暂停的问题 (r206698)
  • 修复了在“时间轴”选项卡中刷新会导致“网络”选项卡中出现负时间戳的问题 (r206464)
  • 修复了当 DOM 节点样式更改时,Box Model 值未更新的错误 (r206406)
  • 修复了编辑 Box Model 值(边框、外边距等)时 DOM 不会更新的错误 (r206363)
  • 当 anchor 元素的 download 属性被忽略时,添加了一条控制台消息 (r206562)
  • 使第二次点击颜色样本方块时隐藏 CSS 颜色选择器 (r206729)

媒体

  • 修复了画中画播放,使其始终显示播放按钮的正确状态 (r206520)

辅助功能

  • label 元素的文本内容作为 meter 元素的描述暴露 (r206581)
  • label 元素的文本内容作为 progress 元素的描述暴露 (r206391)

URL 处理

  • 导航到 tel:mailto: 链接现在需要用户手势;没有用户手势的导航将显示确认提示
  • 现在,当导航到会打开其他应用程序的 URL 时,会提示用户

安全性

  • 修复了一个问题,即当违反 frame-ancestors 指令时,CSP 违规报告可能会发送到错误的域 (r206278)

Safari 扩展

  • 修复了一个问题,即当安装某些 Safari 扩展时,Safari 技术预览版会消耗过多内存 (r206885)