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)
- 更新了
Generator
和GeneratorFunction
属性描述符以匹配 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)
- 修复了设置样式元素的
textContent
或cssText
后能正确触发样式重新计算的问题 (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.value
和toString()
以匹配 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) - 更改了
Window
和Location
上的属性,使其在跨域访问时不可枚举 (r206233) - 修复了分配给链接槽的文本节点不可点击的错误 (r206605)
- 修复了将非数值分配给
input.minlength
时将其设置为 0 的问题 (r206588) - 修复了 input 元素,使其在 Shadow DOM 树内部也能正常工作 (r206403)
- 修复了
document.title
getter,通过去除和折叠正确的空白字符来处理 (r206309) - 修复了从 Silverlight 第二次进入全屏会隐藏 Safari 的菜单栏和 Dock 的问题 (r206675)
- 修复了 HTML 元素属性的序列化以匹配 HTML 规范 (r206240)
- 修复了 HTML void 元素的序列化,使其忽略任何子元素 (r206266)
- 修复了
bgsound
、keygen
和track
元素的序列化 (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)
辅助功能
URL 处理
- 导航到
tel:
和mailto:
链接现在需要用户手势;没有用户手势的导航将显示确认提示 - 现在,当导航到会打开其他应用程序的 URL 时,会提示用户
安全性
- 修复了一个问题,即当违反
frame-ancestors
指令时,CSP 违规报告可能会发送到错误的域 (r206278)
Safari 扩展
- 修复了一个问题,即当安装某些 Safari 扩展时,Safari 技术预览版会消耗过多内存 (r206885)