Firefox 38 面向开发者的发布说明
Firefox 38 于 2015 年 5 月 12 日发布。本文列出了对 Web 开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的主要变化。
面向网络开发者的变更
开发者工具
亮点
CSS
-
已添加并默认支持
ruby-position和ruby-align(Firefox bug 1055676、Firefox bug 1123917 和 Firefox bug 1039006)。 -
已为自定义元素实现了
:unresolved伪类(Firefox bug 1111633)。 -
预定义的样式
ethiopic-numeric现在使用空格而不是点作为后缀,以匹配最近的规范更改(Firefox bug 1120721)。 -
生成的內容上的 CSS 过渡(带
::before和::after),在内联元素和分隔它们的块元素上,现在都按规范预期开始(Firefox bug 1110277)。 -
CSS 逻辑属性的实现取得了很大进展。以下属性在
layout.css.vertical-text.enabled标志(默认false)后可用- 与
width和height等效的与方向无关的属性:block-size和inline-size(Firefox bug 1117983)。 - 与
min-width和min-height等效的与方向无关的属性:min-block-size和min-inline-size(Firefox bug 1117983)。 - 与
max-width和max-height等效的与方向无关的属性:max-block-size和max-block-size(Firefox bug 1117983)。 - 与
margin-top、margin-right、margin-bottom和margin-left等效的与方向无关的属性:margin-block-start、margin-block-end、margin-inline-start和margin-inline-end(Firefox bug 649142)。 - 与
padding-top、padding-right、padding-bottom和padding-left等效的与方向无关的属性:padding-block-start、padding-block-end、padding-inline-start和padding-inline-end(Firefox bug 649142)。 - 与
border-top、border-right、border-bottom和border-left及其 width、style 和 color 的长手属性等效的与方向无关的属性:border-block-start、border-block-start-width、border-block-start-style、border-block-start-color、border-block-end、border-block-end-width、border-block-end-style、border-block-end-color、border-inline-start、border-inline-start-width、border-inline-start-style、border-inline-start-color、border-inline-end、border-inline-end-width、border-inline-end-style和border-inline-end-color(Firefox bug 649142)。 - 与
top、right、bottom和left等效的与方向无关的属性:inset-block-start、offset-block-end、offset-inline-start和offset-inline-end(Firefox bug 1120283)。
- 与
-
CSS 过渡的开始方式已修改,以匹配规范的最新更改,旨在在浏览器之间实现互操作行为(Firefox bug 960465)。
HTML
- 如果事件目标和标签之间存在交互式内容,则
<label>元素不再向标签目标元素分派事件(Firefox bug 229925)。 <picture>元素已默认激活(Firefox bug 1017875)。- 支持通过上下文菜单或鼠标中键导航的
<meta name="referrer">(Firefox bug 1113431)。
JavaScript
-
带有剩余参数的
Setter现在是一个SyntaxError(Firefox bug 1089632)。 -
函数的
name属性现在是可配置的(Firefox bug 1084019)。 -
of()和from()方法(Firefox bug 896608)。forEach()方法(Firefox bug 1107645)。filter()和map()方法(Firefox bug 1121936)。slice()方法(Firefox bug 1121935)。
-
当存在剩余参数时,不再允许重复的参数名(Firefox bug 1096376)。
-
箭头函数中不再允许重复的参数名(Firefox bug 1096377)。
-
简洁方法定义中不再允许重复的参数名(Firefox bug 1096378)。
-
当
Map/Set/WeakMap构造函数在没有new的情况下调用时,会显示警告(Firefox bug 1108930)。 -
WeakMap对象的get、has和delete方法在key参数不是对象时不再抛出错误(Firefox bug 1127827)。 -
WeakMap.prototype.get()的可选且非标准的第二个fallback参数已移除(Firefox bug 1127827)。 -
定义 生成器方法 时,
set和get不再是无效名称(Firefox bug 1073809)。 -
现在,对于空正则表达式,
RegExp.prototype.source返回 "(?:)" 而不是空字符串(Firefox bug 1130798)。 -
RegExp.prototype.source和RegExp.prototype.toString()现在可以正确转义正则表达式模式(例如,行终止符,"\n")(Firefox bug 1130860)。 -
Regexp的global、ignoreCase、multiline和sticky属性现在是原型访问器属性,而不是RegExp实例的自有数据属性(Firefox bug 1120169)。 -
RegExp.prototype.source属性现在是原型访问器属性,而不是RegExp实例的自有数据属性(Firefox bug 1120169)。由于 Firefox bug 1150297,此功能仅在非发行版本中可用。 -
现在,
Function.prototype.toString()会对Proxy对象抛出错误(Firefox bug 1100936)。
接口/API/DOM
- 已实现 Fetch API 的
fetch()方法(Firefox bug 1039846)。 - 已实现
BroadcastChannelAPI,并可在 Web Worker 中使用(Firefox bug 966439 和 Firefox bug 1121420)。 - Console API 现在可在 Web Worker 中使用。
- 已实现
CanvasRenderingContext2D.clearHitRegions()(Firefox bug 1119527)。 KeyboardEvent.location的常量DOM_KEY_LOCATION_MOBILE和 DOM_KEY_LOCATION_JOYSTICK 已移除,因为它们已从 DOM Level 3 规范中移除(Firefox bug 936313)。KeyboardEvent.code现已可用;以前它只在预发布版本中可用。(Firefox bug 1126673)KeyboardEvent.code现在支持 Linux、Android 和 Firefox OS 上 Sun 键盘的特殊键。(Firefox bug 1020139)TextEncoder()构造函数已更改以匹配规范:当传递无效参数时,现在抛出RangeErrorDOMException,而不是错误的TypeError(Firefox bug 1125766)。- 已实现 User Timing API,增加了
Performance.mark()、Performance.clearMarks()、Performance.measure()和Performance.clearMeasures()(Firefox bug 782751)。 Window.indexedDB的前缀版本mozIndexedDB已移除(Firefox bug 975699)。DOMContentLoaded事件不再可取消(Firefox bug 1134559)。- 您现在可以在 Worker 中使用 WebSockets(Firefox bug 504553)。
- 现在可以在调用
XMLHttpRequest.open()之前设置XMLHttpRequest.responseType和XMLHttpRequest.withCredentials属性(Firefox bug 707484)。
MathML
无更改。
SVG
无更改。
音频/视频
无更改。
网络
无更改。
安全
- 在 Firefox 中,处理登录表单时,
autocomplete=false属性现在被忽略(Firefox bug 1025703)。这是为了通过允许密码管理器工具更可靠地工作来鼓励使用更安全的密码。 - 现在在使用 TLS 时禁用 RC4,除了少数明确允许的网站。此白名单是一项临时措施,直到这些网站得到修复(Firefox bug 1124039)。此回退由
security.tls.unrestricted_rc4_fallback首选项控制,目前默认为true(Firefox bug 1138882)。 - 需要回退到不安全 TLS 版本才能工作的网站现在已列入硬编码白名单,该白名单将随着时间推移而缩小(Firefox bug 1114816)。通过将
security.tls.insecure_fallback_hosts.use_static_list设置为false可以禁用白名单。
面向附加组件和 Mozilla 开发者的变更
附加组件 SDK
亮点
sdk/context-menu@2已实现(Firefox bug 1070952)。sdk/addon/bootstrap已实现(Firefox bug 1075541)。sdk/windows/loader已移除(Firefox bug 970135)。- 修复了 Linux 上的默认语言检测问题(Firefox bug 1114712)。
toolkit/loader现在具有选择加入的模块兼容性检查,所有 jpm 附加组件都启用了此功能(Firefox bug 1037235)。
Electrolysis (E10s) 更新
sdk/page-workere10s 更新(Firefox bug 1116004)。sdk/content/workere10s 更新(Firefox bug 1116544)。sdk/tabse10s 更新(Firefox bug 1033838)。
详情
XUL
无更改。
JavaScript 代码模块
Downloads.jsm
DownloadTarget对象现在具有exists和size属性,允许您确定下载目标文件在磁盘上的存在性和大小,以及一个新方法refresh(),它要求更新这些值。
XPCOM
- 如果传递
PR_APPEND而没有PR_TRUNCATE,则"@mozilla.org/network/atomic-file-output-stream;1"和"@mozilla.org/network/safe-file-output-stream;1"现在会抛出异常(Firefox bug 1117580)。 nsICompositionStringSynthesizer和nsIDOMWindowUtils.sendCompositionEvent()已移除。请改用nsITextInputProcessor。(Firefox bug 917322)nsIDOMWindowUtils.sendKeyEvent()现已弃用。请改用nsITextInputProcessor(Firefox bug 1119609)。