Firefox 40 开发者发布说明
要测试 Firefox 最新的开发者功能,请安装 Firefox Developer Edition。Firefox 40 于 2015 年 8 月 11 日发布。本文列出了对网页开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的关键更改。
面向网络开发者的变更
开发者工具
亮点
- 动画视图的改进
- 从 MDN 获取 CSS 属性语法帮助
- 在页面检查器中编辑过滤器
- Web 控制台现在显示来自 workers 的消息
- 在网络监视器中按 URL 过滤请求
- 网络监视器中新增了许多上下文菜单选项
- 显示网络资源何时从浏览器缓存中获取
- 页面检查器中的过滤规则
更多
CSS
text-decoration-color、text-decoration-line和text-decoration-style的带前缀规则 (-moz-) 已被移除 (Firefox bug 1097922)。- 属性
text-align现在支持match-parent值 (Firefox bug 645642)。 - 在怪异模式下,
empty-cells现在默认为show,与标准模式相同 (Firefox bug 1020400)。 - 用于设置
<meter>和<progress>元素样式的非标准属性-moz-orient已适应垂直书写模式:auto值已移除,并添加了inline和block值,其中inline是新的默认值 (Firefox bug 1028716)。 - 属性
font-size-adjust已修复,因此0被视为乘数(导致字体高度为0,从而隐藏字体),而不是none值(导致不进行调整,或值为1.0)(Firefox bug 1144885)。 - 修复了在垂直书写模式下
text-overflow不工作的问题 (Firefox bug 1117227)。
HTML
无更改。
JavaScript
return语句之后无法到达的代码(包括 不带分号的 return 语句 之后无法到达的表达式)现在将在控制台中显示警告 (Firefox bug 1005110, Firefox bug 1151931)。Symbol.match已添加 (Firefox bug 1054755)。- 将具有名为
Symbol.match且值为 truthy 的属性的对象传递给String.prototype.startsWith、String.prototype.endsWith和String.prototype.contains现在会抛出TypeError(Firefox bug 1054755)。 - 如果
RegExp函数在没有new的情况下调用,并且模式对象具有名为Symbol.match且值为 truthy 的属性,并且模式对象的constructor属性等于RegExp函数,则返回模式本身。( Firefox bug 1147817 )。 - 对非标准 JS1.7 解构 for-in 的支持已被移除 (Firefox bug 1083498)。
for...in循环中的非标准初始化表达式现在被忽略,并会在控制台中显示警告。( Firefox bug 748550 和 Firefox bug 1164741 )。\u{xxxxxx}Unicode 码点转义序列已添加 (Firefox bug 320500)。String.prototype.contains已被String.prototype.includes替换,String.prototype.contains保留为别名 (Firefox bug 1102219)。- 如果
DataView构造函数在没有new操作符的情况下作为函数调用,现在会根据 ES2015 规范抛出TypeError。 - 在 Firefox 21 中出现的一个回归问题已修复,即没有
get陷阱的代理数组无法正常工作。如果Proxy中未定义get陷阱,Array.length返回0并且set陷阱不会被调用。一个解决方法是即使代码中不需要也添加get陷阱。此问题现已修复 (Firefox bug 895223)。 WeakMap.prototype和WeakSet.prototype已更新为普通对象,符合 ES2015 规范 (Firefox bug 1055473)。
接口/API/DOM
新 API
- 推送 API 已进行实验性实现 (Firefox bug 1038811)。它由
services.push.enabled首选项控制,默认禁用。
Web Animations API
我们的实验性 Web 动画实现有所改进,主要为了匹配最新的规范更改
AnimationPlayer.currentTime现在也可以设置 (Firefox bug 1072037)。- 在
Element上可用的Animatable.getAnimationPlayers()已重命名为Element.getAnimations()(Firefox bug 1145246)。 Animation和AnimationEffect已合并到新创建的KeyframeEffectReadOnly中 (Firefox bug 1153734)。AnimationPlayer已重命名为Animation(Firefox bug 1154615)。AnimationTimeline现在是一个抽象类,DocumentTimeline是其唯一的实现 (Firefox bug 1152171)。
CSSOM
- CSS 字体加载 API 现在在 Nightly 和 Developer Edition 版本中默认启用 (Firefox bug 1088437)。在 Beta 和 Release 浏览器中它仍然默认禁用。
CSSCharsetRule接口已移除,此类对象在 CSSOM 中不再可用 (Firefox bug 1148694)。这符合规范(最近已调整)和 Chrome 行为。
WebRTC
- WebRTC:
negotiationneeded事件现在也用于初始协商,而不仅仅是重新协商 (Firefox bug 1149838)。
DOM 和 HTML DOM
- 当无法解析
srcset时,HTMLImageElement.currentSrc方法不再返回null,而是返回"",符合最新规范的要求 (Firefox bug 1139560)。 - 与图片一样,Firefox 现在会限制不可见的
<iframe>的Window.requestAnimationFrame()(Firefox bug 1145439)。 Navigator.taintEnabled不再适用于 Web workers (Firefox bug 1154878)。
Web Audio API
Web Audio API 的新扩展
- 已添加
AudioContext.state和AudioContext.onstatechange属性以及方法AudioContext.suspend()、AudioContext.resume()和AudioContext.close()(Firefox bug 1094764)。 AudioBufferSourceNode现在实现了AudioBufferSourceNode.detunek-rate 属性 (Firefox bug 1153783)。
Web Workers
- 我们的 Service Worker API 略有改进:
update()方法已从ServiceWorkerGlobalScope移动到ServiceWorkerRegistration(Firefox bug 1131350)。 ServiceWorkerRegistration现在在 Web workers 中可用 (Firefox bug 1131327)。DataStore现在在 Web workers 中可用 (Firefox bug 916196)。
IndexedDB
IDBTransaction现在默认是非持久的 (Firefox bug 1112702)。这优先考虑性能而不是可靠性,并与其他浏览器保持一致。有关更多信息,请阅读我们的持久性定义。
开发者工具
- 已添加属性
console.timeStamp()(Firefox bug 922221)。
MathML
无更改。
SVG
无更改。
音频/视频
无更改。
网络
无更改。
安全
- 在 CSP 中使用星号 (
*) 在匹配源表达式时不再包含data:、blob:或:filesystem方案。因此,这些方案现在需要在相关头部中明确定义以匹配 CSP (Firefox bug 1086999)。
面向附加组件和 Mozilla 开发者的变更
XUL
- 不再可能创建透明的顶级窗口 Firefox bug 1162649。
JavaScript 代码模块
- Dict.jsm 已移除 Firefox bug 1123309。请改用
Map。
XPCOM
nsIClassInfo.implementationLanguage属性以及nsClassInfo::GetImplementationLanguage()函数已移除。- 以下 XPCOM 接口已移除;您应该改用标准 HTML 接口
nsIDOMHTMLBRElementnsIDOMDivElementnsIDOMHTMLHeadingElementnsIDOMHTMLTableCaptionElementnsIDOMHTMLTableElementnsIDOMHTMLTitleElement
其他
- Places 关键词 API 已弃用,并将很快移除 (Firefox bug 1140395)。
- 自动化测试系统现在支持跳过单个测试函数。请参阅 XPCShell 测试中的运行条件测试。