Firefox 45 开发者版本发布说明
要测试 Firefox 的最新开发者功能,请安装 Firefox Developer Edition。Firefox 45 已于 2016 年 3 月 8 日发布。本文档列出了重要的更新,不仅对 Web 开发者有用,对 Firefox 和 Gecko 开发者以及扩展开发者也很有帮助。
面向网络开发者的变更
开发者工具
亮点
HTML
- 现在可以直接在 `
<meta>` 元素上设置内容安全策略 (Content Security Policy)(Firefox bug 663570)。 - 在 `
<img>`、`<area>`、`<a>` 和 `<iframe>` 标签上,`referrer` 属性已重命名为 `referrerpolicy`(Firefox bug 1187357)。 - 视口(viewport)的变化或尺寸调整现在会触发 `
<img srcset>` 的响应式图片重新选择(Firefox bug 1166138)。
CSS
-
`
word-spacing` 现在允许使用百分比值(Firefox bug 1038663)。 -
我们对 CSS Grid 的实现进行了改进,不再被视为实验性功能;它现在在 nightly 和 developer 版本中默认启用,但在 beta 和 release 版本中不启用(Firefox bug 1000592)。
- 现在支持 Grid 的间隙(gutters),即 `grid-column-gap`、`grid-row-gap` 和 `grid-gap` 属性(Firefox bug 1176792)。
- 实现了 Grid Item 的隐含最小尺寸,即 `min-width` 和 `min-height` 的 `auto` 特殊行为(Firefox bug 1176775)。
- 现在 Grid 布局支持 `
align-self` 和 `justify-self`(Firefox bug 1151213)。 - 现在 Grid 布局支持 `
align-content` 和 `justify-content`(Firefox bug 1151214)。 - 支持 `grid-template-columns` 和 `grid-template-rows` 的 px 单位的解析值(Firefox bug 978212)。
- 相关的 `
display: contents` 功能自 Firefox 37 起已得到支持。
-
实现了对 CSS Grid 的 CSS Box Alignment 的完全支持,支持缺失的值:`start`、`end`、`self-start`、`self-end`、`left`、`right`、`last-baseline`、`space-evenly`(Firefox bug 1176782)。CSS Box Alignment 目前仅适用于 CSS Flexbox 和 CSS Grid。
-
[css-grid][css-flexbox] 为 `
-
`
float` 和 `clear` 中已添加 `inline-start` 和 `inline-end` 值(Firefox bug 1122918)。在 Nightly 和 Aurora(Dev edition)以及 Firefox OS 上默认启用;要在 release 或 beta 版本上激活,需要将 `layout.css.float-logical-values.enabled` 设置为 `true`。 -
已实现 `
text-emphasis`、`text-emphasis-style`、`text-emphasis-color` 和 `text-emphasis-position`;它们默认禁用(设置为 `layout.css.text-emphasis.enabled` 为 true 以激活它们)(Firefox bug 1040668)。 -
为了 Web 兼容性,已添加了多个 `-webkit` 前缀的属性和值,可通过 `layout.css.prefixes.webkit` 偏好设置控制,默认值为 `false`。
- 为 Web 兼容性添加了 `-webkit-backface-visibility`、`-webkit-perspective` 和 `-webkit-perspective-origin`,可通过 `layout.css.prefixes.webkit` 偏好设置控制,默认值为 `false`(Firefox bug 1179444)。
JavaScript
- ES2015 Classes 现在默认启用(Firefox bug 1197932)。
- Expression closures 已弃用,现在将在控制台中显示警告(Firefox bug 995610)。
- `
String.prototype.replace` 在执行函数参数后不再恢复 RegExp 静态属性(Firefox bug 1226936)。 - `
Math.random()` 已更新为更优的 XorShift128+ 算法(Firefox bug 322529)。
接口/API/DOM
DOM 和 HTML DOM
- 为了兼容性,已实现非标准属性 `
Node.innerText`(Firefox bug 264412)。 - `
HTMLImageElement.srcset` 属性现在响应尺寸/视口变化(Firefox bug 1166138)。 - 已实现 `
Element.getAttributeNames()`(Firefox bug 1228634)。
WebGL
我们对 WebGL 2 的实现进行了扩展。
- 已添加对程序(programs)和着色器(shaders)的支持(Firefox bug 1048743)。
- 已添加对 uniform 和 attribute 的支持(Firefox bug 1048745)。
- 已实现帧缓冲对象(Framebuffer objects)(Firefox bug 1048732)。
- 已实现渲染缓冲对象(Renderbuffer objects)(Firefox bug 1048733)。
IndexedDB
无更改。
Service Workers
- 已实现 `
Clients.get()` 和 `FetchEvent.clientId`(Firefox bug 1222464)。 - 已实现 `
Clients.openWindow()`(Firefox bug 1172870)。 - 调用 `
Clients.matchAll()` 时作为参数传递的选项对象现在可以包含 `includeUncontrolled` 属性。这是一个布尔值 — 如果设置为 `true`,匹配操作将返回与当前 service worker 具有相同 origin 的所有 service worker 客户端。否则,它只返回由当前 service worker 控制的 service worker 客户端。默认为 `false`。
WebRTC
无更改。
新 API
无更改。
杂项
- Web Speech Synthesis API 已在 Firefox 桌面版上实现(Firefox bug 1003439)。
- 已添加 `storage` 事件。
- 已将 `ComputedTiming` 接口添加到我们对 Web Animations API 的实验性实现中(Firefox bug 1108055)。
- 已添加 `Document.onselectionchange` 事件处理属性(Firefox bug 1231193)。
- 在通过调用 `
MediaStream.removeTrack()` 从媒体流中移除视频轨道后,现在可以使用 `MediaStream.addTrack()` 添加另一个视频轨道并使其播放(Firefox bug 1223696)。
MathML
无更改。
SVG
- 当 cairo 是 Moz2D 后端时,SVG 描边命中测试存在 bug(Firefox bug 676001)。
- 无法与具有大 `transform` / `translate` 值的元素进行交互(Firefox bug 1217012)。
音频/视频
- 已修复:由于持续时间四舍五入错误导致的音频播放卡顿的回归问题(自 Firefox 41 起)(Firefox bug 1222866)。
HTTP
- `jar:` 协议默认情况下已被禁用,Web 内容无法访问;如果需要,您可以通过将 `network.jar.block-remote-files` 偏好设置设为 `false` 来启用(Firefox bug 1215235)。
安全
- 现在可以使用 `
<meta>` 元素指定Content-Security-Policy(Firefox bug 663570)。 - 已实现对 `child-src` CSP 策略指令的支持(Firefox bug 1045891)。
- 有效期超过 27 个月的 EV 证书现在被视为并作为 DV 证书处理(Firefox bug 1222903)。
面向附加组件和 Mozilla 开发者的变更
接口
无更改。
XUL
- 标签组 已被移除。
JavaScript 代码模块
无更改。
XPCOM
无更改。
搜索插件
从 Firefox 45 开始,用户配置文件中的 `searchplugins` 目录下的搜索插件不再在启动时自动加载。取而代之的是,会维护一个用户安装的插件列表,并且只加载这些插件。实际上,这意味着安装新搜索插件的唯一方法是用户在 Firefox 用户界面中进行安装(例如,通过 OpenSearch 发现),或者由扩展进行安装。此外,当安装新的搜索插件时,会记录有关其来源的更多信息,以供将来用于配置文件调试和清理工具。