面向开发者的 Firefox 48

要测试 Firefox 的最新开发者功能,请安装 Firefox 开发者版 Firefox 48 于 2016 年 8 月 2 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的关键更改。

面向 Web 开发者的更改

开发者工具

HTML

  • <details><summary> 元素已在 Nightly 和 Aurora (DevTools) 上默认激活,但在 Beta 或发行版上未激活。
  • meta 属性现在还支持 no-referrer-when-downgradeorigin-when-cross-origin 值 (Firefox 错误 1178337).

CSS

  • calc() 已得到改进,更接近于规范。
  • 我们对 CSS 网格的实验性实现已更新。
  • 已添加 luminance 值用于 mask-modeauto 值已重命名为 match-source,以匹配规范 (Firefox 错误 1228354).
  • 现在支持 CSS 动画和过渡中 clip-path 基本形状的插值 (Firefox 错误 1110460).
  • 已通过 text-combine-upright 属性的 all 值添加了对水平在垂直 (tate-chu-yoko) 文本的支持 (Firefox 错误 1097499).
  • 已添加对实验性 color-adjust 属性的支持,允许页面指定背景颜色和图像是否应该打印 (Firefox 错误 1209273).
  • ::first-letter 伪元素现在也匹配在实际第一个字母之前或之后紧跟的类型为 Pd 的标点符号;这是 CSS 伪元素模块级别 4 的一项新要求 (Firefox 错误 1260366).
  • 为 Web 兼容性添加了几个 -webkit 前缀属性和值,位于 layout.css.prefixes.webkit 首选项后面,默认值为 false
    • -webkit-text-fill-color (Firefox 错误 1247777).
    • -webkit-text-stroke, -webkit-text-stroke-color, -webkit-text-stroke-width (Firefox 错误 1248708).
    • -webkit-background-clip (作为 background-clip) 文本值 (Firefox 错误 759568).
    • -webkit-box-direction, -webkit-box-orient (Firefox 错误 1262049.
    • -webkit-inline-box 值现在是 display 属性上 inline-flex 的别名。(Firefox 错误 1257661).
    • -webkit-flex-direction, -webkit-flex-wrap, -webkit-flex-flow, -webkit-order, -webkit-flex, -webkit-flex-grow, -webkit-flex-shrink, -webkit-flex-basis, -webkit-justify-content, -webkit-align-items, -webkit-align-self-webkit-align-content 已添加为未加前缀属性的别名,以及 -webkit-flex-webkit-inline-flex 值用于 display 属性作为未加前缀值的别名 (Firefox 错误 1274096).
    • 添加了 -webkit-box-flex, -webkit-box-ordinal-group, -webkit-box-align-webkit-box-pack 属性以及 -webkit-box 值用于 display,作为现代 CSS 弹性盒模型的别名 (Firefox 错误 1208635).
  • background-cliptext 值现在在所有类型的 Firefox 中都可用(而不仅仅是非发行版构建) (Firefox 错误 1263516).
  • 顶层元素上的 position 属性的 absolute 值 (Firefox 错误 1236828).
  • 添加了用于检测首选项的内部专用语法 @supports (Firefox 错误 1259889).

JavaScript

新 API

弃用和移除

  • 已移除已弃用的旧 Proxy API (Proxy.createProxy.createFunction())。请改用标准 Proxy 对象 (Firefox 错误 892903).
  • 已移除 String.prototype.contains() 方法(自版本 40 起已弃用)。请改用 String.prototype.includes() 方法 (Firefox 错误 1103588).
  • 已移除非标准 RegExp.multiline 属性(不是 RegExp.prototype.multiline)。请改用标准的 m 标志 (Firefox 错误 1219757).
  • Object.prototype.__defineGetter__()Object.prototype.__defineSetter__() 方法在全局范围内无法再被调用,而无需任何对象。(Firefox 错误 1253016)。

接口/API/DOM

DOM & HTML DOM

  • CSSKeyframeRuleCSSKeyframesRule 接口中删除了 "Moz" 前缀 (Firefox 错误 1256178)。
  • NavigatorConcurrentHardware mixin 已实现,它为 Navigator 接口添加了 Navigator.hardwareConcurrency 属性。这使得网站和应用程序可以获得至少近似的关于有多少个处理核心可用于运行 Worker 的信息 (Firefox 错误 1008453)。
  • Node.isSameNode() 方法已在 Firefox 10 中移除,并在长时间缺席后被重新添加到规范中,现在已回归 (Firefox 错误 1256299)。
  • Navigator.registerProtocolHandler() 调用过程中出现错误时,Firefox 现在返回适当的异常,而不是数字。
  • Element.animate() 现在默认情况下处于激活状态 (Firefox 错误 1245000)。
  • 已实现 Element.insertAdjacentText()Element.insertAdjacentElement() 两个方法 (Firefox 错误 811259)。
  • Document.scrollingElement 已默认启用 (Firefox 错误 1265032)。
  • Node.localNameNode.namespaceURINode.prefix 已移至 ElementAttr API (Firefox 错误 1055776)。
  • 根据最新的规范,已更改以下键返回的 KeyboardEvent.code 值,请参见 (Firefox 错误 1264150)
    • "OSLeft""OSRight" 现在分别是 "MetaLeft""MetaRight"
    • "VolumeDown""VolumeUp""VolumeMute" 现在分别是 "AudioVolumeDown""AudioVolumeUp""AudioVolumeMute"
    • "IntlHash" 已被移除。
    • 所有 code 值在早期版本的 Firefox 中报告为 "" 的键现在报告为 "Unidentified"。

Canvas 2D

WebRTC

  • 已实现 MediaStream.clone()MediaStreamTrack.clone() 两个方法 (Firefox 错误 1208371)。
  • 现在 RTCOfferOptions 代码字典中支持 iceRestart 条目,允许使用 createOffer() 来请求 ICE 重启 (Firefox 错误 906986)。
  • RTCPeerConnection.createOffer() 方法现在默认情况下优先使用 VP9 视频编解码器;以前是优先使用 VP8 (Firefox 错误 1242324
  • 使用 MediaRecorder 记录的包含视频分辨率更改的 WebM/VP8 视频现在可以成功播放。

其他

  • Web Crypto API 现在可在 Web Workers 中使用 (Firefox 错误 842818)。
  • CustomEvent 接口现在可在 Web Workers 中使用 (Firefox 错误 1003432)。
  • DOMApplicationsManager.getNotInstalled() 方法已移除 (Firefox 错误 1255036)。
  • 现在已隐藏了一些错误地暴露给 Web 的 Firefox OS API,这些 API 应该隐藏起来——mozContactMozContactChangeEventnavigator.mozContactsMozPowerManagerMozSettingsEvent(请参见 Firefox 错误 1043562Firefox 错误 1256414Firefox 错误 1256046)。
  • 已从 TextEncoder 中移除对 UTF-16 的支持 (Firefox 错误 1257877)。
  • RTCStatsReport 现在是一个真正的 maplike 接口:除了 forEach()get()has() 之外,还实现了 entries()values()keys() 方法以及 size getter (Firefox 错误 906986)。
  • 已添加 Request.cache 属性,允许控制缓存行为 (Firefox 错误 1120715)。
  • 已更改 Mac OS X 上死键的处理方式,使其与其他平台相同;当焦点元素不可编辑时,它们不再触发 keypress 事件(当焦点元素可编辑时,死键会导致在 Mac OS X 上产生组合事件而不是键盘事件)。此外,与其他平台一样,KeyboardEvent.key 的值现在对于在其他情况下不会生成文本的死键按压为 "Dead"

HTTP

面向附加组件和 Mozilla 开发者的更改

  • 已移除 Social Worker API。
  • 添加了 -moz-bool-pref() CSS @supports 函数,允许在布尔首选项后面隐藏 Chrome 样式表的部分内容。(Firefox 错误 1259889

旧版本