Firefox 53 开发者版本
Firefox 53 于 2017 年 4 月 19 日发布。本文列出了对 Web 开发人员、Firefox 和 Gecko 开发人员以及附加组件开发人员都很有用的关键更改。
Web 开发人员更改
开发者工具
- 避免 APZ 提供的高亮显示器上的滚动延迟(Firefox 错误 1312103)。
- 添加了选项以复制元素的完整 CSS 路径(Firefox 错误 1323700)。
- Devtools 支持 css-color-4(Firefox 错误 1310681)。
- 标记视图:在折叠节点的开始和结束标签之间添加视觉提示(Firefox 错误 1323193)。
CSS
新功能
mask-*
完整属性(请参阅 CSS 蒙版)均受支持,并默认可用(请参阅 Firefox 错误 1251161)。- 添加了
caret-color
属性(Firefox 错误 1063162)。 - 实现了
place-items
/place-self
/place-content
简写(Firefox 错误 1319958)。 - 将
flow-root
值添加到display
属性(Firefox 错误 1322191)。 -moz-tab-size
现在接受<length>
值(Firefox 错误 943918),并且现在可以进行动画处理(Firefox 错误 1308110)。mask-mode
:luminance 在渐变蒙版上不起作用(Firefox 错误 1346265)。- [css-grid]
grid-template-rows
中的 FR 单位未填充视口(Firefox 错误 1346699)。 - 如果 flex 项目由 abspos 同级元素分隔,则它们不会根据“order”排序(Firefox 错误 1345873)。
其他更改
- 在 SVG 元素上启用蒙版完整属性(Firefox 错误 1319667)。
- [css-grid] 已修复:
align-self
/justify-self:stretch
/normal
在<table>
网格项目上不起作用(Firefox 错误 1316051)。 - 已修复:具有大型参考框和百分比半径的
clip-path: circle()
渲染不正确(Firefox 错误 1324713)。 - 将
uppercase
的text-transform
值应用于希腊文本时,不再删除分离的 eta (ή) 上的重音(请参阅 Firefox 错误 1322989)。 display
的contents
值的可用性通过layout.css.display-contents.enabled
首选项进行控制。在 Firefox 53 中,此首选项已完全删除,因此该值将始终可用,并且无法再禁用(Firefox 错误 1295788)。
JavaScript
- 已实现
Function.name
属性的 ECMAScript 2015 语义。这包括匿名函数(var foo = function() {}
)的推断名称(Firefox 错误 883377)。 - 已实现关闭迭代器的 ECMAScript 2015 语义。例如,这会影响
for...of
循环(Firefox 错误 1147371)。 - 已实现 模板字面量修订提案,该提案取消了标记模板字面量上的转义序列限制(Firefox 错误 1317375)。
- 根据 ES2016,
TypedArray
对象的静态length
属性已从 3 更改为 0(Firefox 错误 1317306)。 SharedArrayBuffer
现在可以在DataView
对象中使用(Firefox 错误 1246597)。- 在早期版本的规范中,
SharedArrayBuffer
对象需要在结构化克隆期间显式传输。在新规范中,它们不再是可传输对象,因此不得出现在传输列表中。新的行为过去只显示控制台警告,但现在将抛出错误(Firefox 错误 1302037)。 ArrayBuffer
长度现在限制为Number.MAX_SAFE_INTEGER
(>= 2 ** 53)(Firefox 错误 1255128)。Error
和其他原生错误对象原型(如RangeError
等)现在是普通对象,而不是正确的 Error 对象。(特别是,Object.prototype.toString.call(Error.prototype)
现在是"[object Object]"
而不是"[object Error]"
。)(Firefox 错误 1213341)。
事件
- CSS 过渡:已实现
transitionstart
、transitionrun
和transitioncancel
事件(请参阅 Firefox 错误 1264125 和 Firefox 错误 1287983)。 - 已实现
CompositionEvent
构造函数(请参阅 Firefox 错误 1002256)。 - 已实现
MouseEvent.x
和MouseEvent.y
的MouseEvent.clientX
/MouseEvent.clientY
别名(请参阅 Firefox 错误 424390)。 - 已实现
auxclick
事件和相应的事件处理程序(请参阅 Firefox 错误 1304044)。 - 在取消 过渡 后,现在会触发
transitioncancel
事件。
DOM
- 链接的
pathname
和search
属性(例如<a>
和<link>
元素的接口)以前返回了 URL 的错误部分。例如,对于 URLhttp://z.com/x?a=true&b=false
,pathname
将返回“/x?a=true&b=false"
,而search
将返回“”,而不是分别返回“/x
”和“?a=true&b=false"
。现在已修复此问题(Firefox 错误 1310483)。 URLSearchParams()
构造函数现在接受字符串或字符串序列作为初始化对象(Firefox 错误 1330678)。- 现在已实现
Selection.setBaseAndExtent()
方法,该方法属于 Selection API(请参阅 Firefox 错误 1321623)。 - Gecko 中已实现将“fakepath”添加到
file
类型的<input>
values
,使其与其他浏览器保持一致(请参阅 Firefox 错误 1274596)。 Node.getRootNode()
已实现,取代了已弃用的Node.rootNode
属性(Firefox 错误 1269155)。Plugin
和PluginArray
对象的自有属性不再可枚举(Firefox 错误 1270366)。MimeTypeArray
对象的命名属性不再可枚举(Firefox 错误 1270364)。- 权限 API 现在有一个新的权限名称可用 -
persistent-storage
- 用于执行Permissions.query()
时(请参阅 Firefox 错误 1270038)。根据 存储 API,这允许源为其存储使用持久性框(即 持久性存储)。 - 已实现
Performance.timeOrigin
属性(Firefox 错误 1313420)。
工作线程和服务工作线程
- 工作线程中现在可以使用 网络信息 API(请参阅 Firefox 错误 1323172)。
- 工作线程中现在可以使用 服务器发送事件(请参阅 Firefox 错误 1267903)。
- 现在可以异步调用
ExtendableEvent.waitUntil()
(请参阅 Firefox 错误 1263304)。
WebGL
- 已实现
WEBGL_compressed_texture_astc
WebGL 扩展(Firefox 错误 1250077)。 - 现在默认启用
WEBGL_debug_renderer_info
WebGL 扩展(Firefox 错误 1336645)。
音频、视频和媒体
常规
- 从 **Android 版 Firefox 53** 开始,媒体解码在进程外处理,从而在多核系统上提高性能(Firefox 错误 1333323)。
媒体元素
- 用于开始任何媒体元素中媒体播放的
HTMLMediaElement.play()
方法现在返回一个Promise
,当播放开始时该Promise
会完成,如果发生错误则会被拒绝(Firefox 错误 1244768)。
Web Audio API
- 已添加
AudioScheduledSourceNode
接口,并且AudioBufferSourceNode
、ConstantSourceNode
和OscillatorNode
接口现在都基于它(Firefox 错误 1324568)。 - 所有不同的音频节点类型都已添加了构造函数(Firefox 错误 1322883)。
WebRTC
RTCPeerConnection
方法createOffer()
和createAnswer()
现在返回一个Promise
,该Promise
返回一个符合RTCSessionDescriptionInit
字典的对象,而不是直接返回RTCSessionDescription
。现有代码将继续工作,但新代码可以更简单地编写。- 类似地,
RTCPeerConnection
方法setLocalDescription()
和setRemoteDescription()
现在接受一个符合RTCSessionDescriptionInit
字典的对象作为输入。现有代码继续工作,但 可以简化。 RTCPeerConnection.addIceCandidate()
现在接受初始化对象作为输入。这与现有代码兼容,但在与上面列出的更改一起使用时,允许以稍微更简单的方式编写新代码(Firefox 错误 1263312)。- 现在默认启用使用
RTCDTMFSender
的 DTMF 支持。有关其工作原理的更多信息,请参阅 使用 WebRTC 的 DTMF。
HTTP/网络
- Gecko 现在在
about:config
中提供了一个首选项,允许用户设置其默认的Referrer-Policy
—network.http.referer.userControlPolicy
(Firefox 错误 1304623)。可能的值为- 0 —
no-referrer
- 1 —
same-origin
- 2 —
strict-origin-when-cross-origin
- 3 —
no-referrer-when-downgrade
(默认值)
- 0 —
- 已删除对下一协议协商 (NPN) 的支持,取而代之的是 应用层协议协商 (ALPN) — 请参阅 Firefox 错误 1248198。
Large-Allocation
HTTP 标头现在默认可用,不再隐藏在首选项后面(Firefox 错误 1331083)。
SVG
- 部分实现了
SVGGeometryElement
接口(Firefox 错误 1239100)。
从 Web 平台中移除的功能
HTML/XML
- 已从
about:config
中删除dom.details_element.enabled
首选项,该首选项控制在 Firefox 中启用/禁用<details>
和<summary>
元素的支持。这些元素(首次在 Firefox 49 中默认启用)现在无法禁用。请参阅 Firefox 错误 1271549。 - 已删除
<iframe>
元素/HTMLIFrameElement
接口的mozapp
属性,此属性用于允许 Firefox OS 应用嵌入到 mozilla 前缀的浏览器 API<iframe>
中(Firefox 错误 1310845)。 - 已删除
HTMLIFrameElement.setInputMethodActive()
方法和InputMethod
接口(用于在 Firefox OS 应用上设置和管理 IME)(Firefox 错误 1313169)。
CSS
- 已删除
:dir()
伪类的-moz
前缀变体(Firefox 错误 1270406)。 - 已删除
text-align-last
的-moz
前缀版本(Firefox 错误 1276808)。 - 已删除
calc()
方法的-moz
前缀变体(Firefox 错误 1331296)。 - 已删除专有的
-moz-samplesize
媒体片段(添加以帮助将降采样图像传递到内存较低的 Firefox OS 设备;请参阅 Firefox 错误 854795)(Firefox 错误 1311246)。
JavaScript
- 已删除非标准的
ArrayBuffer.slice()
方法(但保留了标准化版本ArrayBuffer.prototype.slice()
,请参阅 Firefox 错误 1313112)。
API
- 已从平台中删除 Wi-Fi 信息 API、扬声器管理器 API、网络共享 API 和设置 API(分别请参阅 Firefox 错误 1313788、Firefox 错误 1317853、Firefox 错误 1313789 和 Firefox 错误 1313155)。
其他
- 已从
HTMLEmbedElement
和HTMLObjectElement
接口中删除legacycaller
(Firefox 错误 909656)。
附加组件和 Mozilla 开发人员更改
WebExtensions
新的 API
增强的 API
storage.sync
- 在
contextMenus
中的page_action
、browser_action
、password
、tab
上下文类型 webRequest.onBeforeRequest
现在支持requestBody
tabs.insertCSS
现在支持cssOrigin
,使您可以插入用户样式表。
JavaScript 代码模块
- 异步的 AddonManager API 现在支持
Promises
以及回调(Firefox 错误 987512)。
旧版本
- Firefox 52 开发者版本
- Firefox 51 开发者版本
- Firefox 50 开发者版本
- Firefox 49 开发者版本
- Firefox 48 开发者版本
- Firefox 47 开发者版本
- Firefox 46 开发者版本
- Firefox 45 开发者版本
- Firefox 44 开发者版本
- Firefox 43 开发者版本
- Firefox 42 开发者版本
- Firefox 41 开发者版本
- Firefox 40 开发者版本
- Firefox 39 开发者版本
- Firefox 38 开发者版本
- Firefox 37 开发者版本
- Firefox 36 开发者版本
- Firefox 35 开发者版本
- Firefox 34 开发者版本
- Firefox 33 开发者版本
- Firefox 32 开发者版本
- Firefox 31 开发者版本
- Firefox 30 开发者版本
- Firefox 29 开发者版本
- Firefox 28 开发者版本
- Firefox 27 开发者版本
- Firefox 26 开发者版本
- Firefox 25 开发者版本
- Firefox 24 开发者版本
- Firefox 23 开发者版本
- Firefox 22 开发者版本