面向开发者的 Firefox 48
要测试 Firefox 的最新开发者功能,请安装 Firefox 开发者版 Firefox 48 于 2016 年 8 月 2 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的关键更改。
面向 Web 开发者的更改
开发者工具
- 现在可以在内容中更改元素的位置 (Firefox 错误 1139187).
- 实现了
console.clear()
用于清除控制台输出 (Firefox 错误 659625). - 向 Web 控制台添加了 HTTP 日志检查 (Firefox 错误 1211525).
- 添加了 Firebug 主题 (Firefox 错误 1244054).
- 添加了 DOM 检查器 (Firefox 错误 1201475).
- 字体检查器 现在默认情况下已再次启用 (Firefox 错误 1280121).
- 改进了建议 用于 CSS 属性 (Firefox 错误 1168246).
- 可以通过双击编辑 Cookie、localStorage 和 sessionStorage 条目 (Firefox 错误 1231154, Firefox 错误 1231179, Firefox 错误 1231155).
HTML
<details>
和<summary>
元素已在 Nightly 和 Aurora (DevTools) 上默认激活,但在 Beta 或发行版上未激活。- 这些元素的默认样式已调整以匹配规范 (Firefox 错误 1258657).
- 当
<details>
元素打开或关闭时,现在会向该元素发送toggle
事件 (Firefox 错误 1225412).
meta
属性现在还支持no-referrer-when-downgrade
和origin-when-cross-origin
值 (Firefox 错误 1178337).
CSS
calc()
已得到改进,更接近于规范。calc()
现在在line-height
属性中得到支持 (Firefox 错误 594933).- 添加了对嵌套 CSS
calc()
的支持 (Firefox 错误 968761).
- 我们对 CSS 网格的实验性实现已更新。
- 已实现网格布局的分段 (Firefox 错误 1144096).
- [css-grid] 如果网格容器大小不确定,则百分比轨道现在将被视为
auto
(Firefox 错误 1264607). <fieldset>
现在支持网格和弹性布局 (Firefox 错误 1230207).
- 已添加
luminance
值用于mask-mode
;auto
值已重命名为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-clip
的text
值现在在所有类型的 Firefox 中都可用(而不仅仅是非发行版构建) (Firefox 错误 1263516).- 顶层元素上的
position
属性的absolute
值 (Firefox 错误 1236828). - 添加了用于检测首选项的内部专用语法
@supports
(Firefox 错误 1259889).
JavaScript
新 API
- 已实现
String.prototype.padStart()
和String.prototype.padEnd()
方法 (Firefox 错误 1260509). - 已实现 ES2015
Symbol.unscopables
和Array.prototype[@@unscopables]
属性 (Firefox 错误 1054759 和 Firefox 错误 1258163). - 已实现 ES2015
Symbol.isConcatSpreadable
符号 (Firefox 错误 1041586). - 已实现 ES2015
Array[@@species]
getter (Firefox 错误 1165052). - 已实现 ES2015
ArrayBuffer[@@species]
getter 和%TypedArray%[@@species]
getter (Firefox 错误 1165053). - 已实现 ECMAScript 国际化 API 草案的
Intl.getCanonicalLocales()
方法 (Firefox 错误 1263040).
弃用和移除
- 已移除已弃用的旧 Proxy API (
Proxy.create
和Proxy.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
- 从
CSSKeyframeRule
和CSSKeyframesRule
接口中删除了 "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.localName
、Node.namespaceURI
和Node.prefix
已移至Element
和Attr
API (Firefox 错误 1055776)。- 根据最新的规范,已更改以下键返回的
KeyboardEvent.code
值,请参见 (Firefox 错误 1264150)"OSLeft"
和"OSRight"
现在分别是"MetaLeft"
和"MetaRight"
。"VolumeDown"
、"VolumeUp"
和"VolumeMute"
现在分别是"AudioVolumeDown"
、"AudioVolumeUp"
和"AudioVolumeMute"
。"IntlHash"
已被移除。- 所有
code
值在早期版本的 Firefox 中报告为 "" 的键现在报告为 "Unidentified"。
Canvas 2D
- 已实现
CanvasRenderingContext2D.ellipse()
方法 (Firefox 错误 910138)。
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 应该隐藏起来——
mozContact
、MozContactChangeEvent
、navigator.mozContacts
、MozPowerManager
、MozSettingsEvent
(请参见 Firefox 错误 1043562、Firefox 错误 1256414 和 Firefox 错误 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
- 已添加对
Upgrade-Insecure-Requests
标头的支持 (Firefox 错误 1243586)。 - 已实现
block-all-mixed-content
CSP 指令 (Firefox 错误 1122236)
面向附加组件和 Mozilla 开发者的更改
- 已移除 Social Worker API。
- 添加了
-moz-bool-pref()
CSS@supports
函数,允许在布尔首选项后面隐藏 Chrome 样式表的部分内容。(Firefox 错误 1259889)
旧版本
- Firefox 47 for developers
- Firefox 46 for developers
- Firefox 45 for developers
- Firefox 44 for developers
- Firefox 43 for developers
- Firefox 42 for developers
- Firefox 41 for developers
- Firefox 40 for developers
- Firefox 39 for developers
- Firefox 38 for developers
- Firefox 37 for developers
- Firefox 36 for developers
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers
- Firefox 20 for developers
- Firefox 19 for developers
- Firefox 18 for developers
- Firefox 17 for developers