WebKit 上周回顾
Benjamin 让我负责选择标题
用户可见的变更
Sam Weinig 移除了 Microdata 的 JavaScript API。Microdata 未能获得作者和引擎开发者的支持。移除这些 API 的决定已在 webkit-dev 上提出并获得了全体一致的支持。
Timothy Hatcher 修改了 将 SVG 图像渲染到 <canvas> 的方式,以便在某些情况下使 canvas 保持“未被污染”。具体来说,如果 SVG 图像不嵌入外部内容(例如 HTML),将其渲染到 canvas 将不会污染 canvas。SVG 中的任何外部对象仍然会导致 canvas 被污染。
还有一些不太显著的变更
- Simon Fraser 调整了发送虚假鼠标事件的算法,以进一步加快滚动速度。如果页面的事件处理程序开始异常并花费超过 10 毫秒来处理事件,引擎会将虚假事件的速度限制为每 250 毫秒一个。
值得重申通常的警告:网页事件处理程序应始终编写良好,否则会影响用户体验。 - Andreas Kling 提高了使用 JavaScript 将规则插入空样式表的性能。
- Christophe Dumez 移除了
DOMImplementation::hasFeature()
(遵循规范)。现在,调用hasFeature()
除了 SVG 之外总是返回 true。作者应该使用通过其 JavaScript API 进行的直接功能检测,而不是使用hasFeature()
。 - Christophe Dumez 还更改了
window.atob()
,使其在填充字符过多时抛出异常。此前 WebKit 会默默地忽略这些字符。 - Rob Buis 使 SVG 属性 stroke-dasharray 可动画化。通过此更改,您可以使用 CSS Transitions 来为绘制路径时使用的虚线模式创建动画。
- Jer Noble 添加了对
MediaKeys.isTypeSupported
的支持。这是 加密媒体扩展(Encrypted Media Extensions) API 的一部分。这个特定的 API 允许运行时询问浏览器是否支持某个特定的 Key System。 - Alex Christensen 在 WinCairo 移植版上默认启用了 WebGL。
- Bruno de Oliveira Abinader 根据规范,使 CSS 属性 text-decoration 和 text-decoration-line 不可继承。
引擎变更
- Antti Koivisto 通过将样式重新计算从 Element 的职责中移除,对架构做出了不错的改变。现在,样式更新不再由 Node 和 Element 执行,而是通过作用于 Element API 的独立函数来完成。
- Mark Rowe 为 FastMalloc 添加了对 MallocStackLogging 的支持,这使得在 Mac OS X 和 iOS 上调试内存堆问题变得更容易。
- Tim Horton 修复了具有 EXIF 方向的合成图像的渲染问题。
- Renata Hodovan 修复了她的模糊测试器发现的又一个错误。
- Andreas Kling 更新了许多函数,使其在设计上返回的对象不能为空时返回引用而不是指针。这类更改使得重构和代码审查变得容易得多。
有任何问题?对博客有什么建议?请通过 Twitter 联系我们:@awesomekling 和 @awfulben。