Firefox 41 开发者版发行说明
要测试 Firefox 最新的开发者功能,请安装 Firefox Developer Edition。Firefox 41 于 2015 年 9 月 22 日发布。本文列出了对网络开发者、Firefox 和 Gecko 开发者以及附加组件开发者都有用的主要更改。
面向网络开发者的变更
开发者工具
亮点
- 截取 DOM 节点的屏幕截图
- 复制为 HAR/保存为 HAR
- “规则”视图中的“添加规则”按钮
- 在新标签页中查看源代码(默认禁用)
- 复制 CSS 规则的更多选项
- 在“规则”视图中将图像复制为 data: URL
- 在 GCLI 中添加了显示 CSP 信息的命令
Firefox 40 和 Firefox 41 之间修复的所有开发者工具 Bug:请注意,其中许多 Bug,特别是与性能工具相关的 Bug,已被移植到 Firefox 40 中。
CSS
-
默认已激活垂直脚本布局支持 (Firefox bug 1138384)。这意味着以下 CSS 属性现在可用:
- 选择书写方向:
writing-mode。 - 控制字符方向:
text-orientation。 - 独立于方向的
width和height等效项:block-size和inline-size。 - 独立于方向的
min-width和min-height等效项:min-block-size和min-inline-size。 - 独立于方向的
max-width和max-height等效项:max-block-size和max-block-size。 - 独立于方向的
margin-top、margin-right、margin-bottom和margin-left等效项:margin-block-start、margin-block-end、margin-inline-start和margin-inline-end。 - 独立于方向的
padding-top、padding-right、padding-bottom和padding-left等效项:padding-block-start、padding-block-end、padding-inline-start和padding-inline-end。 - 独立于方向的
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。 - 独立于方向的
top、right、bottom和left等效项:offset-block-start、offset-block-end、offset-inline-start和offset-inline-end。
- 选择书写方向:
-
支持 SVG 中的
transform-origin属性并实现transform-box属性 (Firefox bug 923193)。
HTML
- 没有
href属性的<a>不再被归类为交互式内容。在<label>内点击它将激活标记内容 (Firefox bug 1167816)。 - 站点图标(即收藏夹图标和快捷方式图标)现在支持 SVG (Firefox bug 366324)。
- <link rel='preconnect'> 现在支持
crossorigin属性 (Firefox bug 1174152)。 - 图片元素不再对 resize/viewport 更改作出反应 (Firefox bug 1135812)。
JavaScript
Date.prototype现在是一个普通对象,不再是Date实例 (Firefox bug 861219)。Date.prototype.toString现在是一个通用方法 (Firefox bug 861219)。- 已添加
Symbol.species(Firefox bug 1131043)。 - 已添加
Map[Symbol.species]和Set[Symbol.species]getter (Firefox bug 1131043)。 - 已放弃对非标准 let 表达式 的支持 (Firefox bug 1023609)。
- 现在支持 带默认值赋值的解构参数 (Firefox bug 1018628)。
- 根据 ES2015 规范,方法定义 需要花括号。现在,没有花括号的语法将失败 (Firefox bug 1150855)。
- 方法定义(生成器方法除外)不再可构造 (Firefox bug 1059908 和 Firefox bug 1166950)。
- 作为 ES2015 规范合规性的一部分,带括号的 解构 模式,例如
([a, b]) = [1, 2]或({a, b}) = { a: 1, b: 2 },现在被认为是无效的,并将抛出SyntaxError。有关更多详细信息,请参阅 Jeff Walden 的博客文章。 - 已添加
new.target语法 (Firefox bug 1141865)。
接口/API/DOM
HTML 编辑 API
- 剪切、复制和粘贴命令处理已修改,现在允许从 JS 以编程方式复制和剪切 Web 内容
- 当以
'paste'命令作为参数时,如果权限不足以实际执行操作,Document.queryCommandSupported()现在返回false(Firefox bug 1161721)。 - 当以
'cut'或'copy'命令作为参数时,如果在用户发起或特权代码的上下文中调用,Document.queryCommandSupported()现在返回true(Firefox bug 1162952)。 - 当以
'cut'或'copy'命令作为参数时,Document.execCommand()现在可以工作,但仅限于用户发起或特权代码的上下文 (Firefox bug 1012662)。 - 当命令不受支持或未启用时,
Document.execCommand()不再抛出异常 (Firefox bug 1027560)。
- 当以
事件
CloseEvent事件的非标准initCloseEvent()方法以及使用document.createEvent('CloseEvent')方法创建CloseEvent的能力已被移除;请改用标准构造函数CloseEvent()(Firefox bug 1161950)。- 在桌面版上,
PointerEvent现在在 Nightly 版本中默认激活;它未在 Developer Edition、Beta 或 Release 版本中激活,并且至少在一些版本中不会激活 (Firefox bug 1166347)。 - 已添加
MouseEvent.movementX和MouseEvent.movementY的无前缀版本;带前缀的版本已弃用,并将在未来某个时候移除 (Firefox bug 1164981)。
Web 加密
SubtleCrypto.importKey()和SubtleCrypto.exportKey()现在支持ECDH密钥 (Firefox bug 1050175)。
Canvas API
- 已添加
HTMLCanvasElement.captureStream()和CanvasCaptureMediaStream,允许实时流式传输<canvas>的显示内容 (Firefox bug 1032848)。 MediaStream.id现在返回流的唯一 ID (Firefox bug 1089798)。CanvasRenderingContext2D.filter的初始值现在正确设置为none(Firefox bug 1163124)。
Service Workers
-
我们对实验性 Service Worker 实现的改进
- 已实现
ServiceWorkerGlobalScope.skipWaiting()(Firefox bug 1131352)。 - 已添加
Clients.claim()(Firefox bug 1130684)。 - Service Worker 的其他功能事件已继承自
ExtendableEvent,使其能够访问waitUntil()方法 (Firefox bug 1160527)。
- 已实现
-
现在支持
CacheStorage和Cache接口 (Firefox bug 1110144)。
WebGL
- 已添加
failIfMajorPerformanceCaveatWebGL 上下文属性,在通过HTMLCanvasElement.getContext()创建 WebGL 上下文时可以设置它,以指示如果系统性能低下是否应导致上下文创建失败 (Firefox bug 1164970)。
WebRTC
- 在构造新的
RTCPeerConnection时,如果未指定 STUN 服务器,Firefox 不再提供默认的 STUN 服务器。您需要提供一个才能成功建立 WebRTC 连接。
杂项
- 在 OS X 和 Windows 上,
Navigator.onLine现在会根据网络连接情况而变化(以前它总是返回true,除非选择了“脱机工作”模式)(Firefox bug 654579)。 MessagePort和MessageChannel现在在 Web workers 中可用,并默认在所有上下文中启用 (Firefox bug 952139) 和 (Firefox bug 911972)。- User Timing API 现在在 Web workers 中可用 (Firefox bug 1155761)。
- Notifications API 现在在 Web workers 中可用 (Firefox bug 916893)。
DOMRequest和DOMCursor现在在 Web workers 中可用 (Firefox bug 1167650)。- CSS Font Loading API 已完全实现,现在默认启用 (Firefox bug 1149381)。
- 共享 Worker 不能再在私有(即在私有窗口中浏览)和非私有文档之间共享(参见 Firefox bug 1177621)。
URL.searchParams属性现在是只读的 (Firefox bug 1174731)。HTMLAnchorElement.hash属性不再解码 URL 片段 (Firefox bug 1093611)。
MathML
新的默认和回退字体处理
数学公式需要特殊字体。到目前为止,这些字体硬编码在 mathml.css 用户代理样式表(用于设置 <math> 标签的 font-family)和首选项选项 font.mathfont-family(用于设置可拉伸和大型运算符的回退字体)中。Firefox 41 引入了一个内部 x-math 语言,该语言会自动设置在 <math> 标签上,并引入了相应的首选项选项(例如 font.name.serif.x-math)。用户代理样式表现在将 <math> 标签的 font-family 设置为 serif,并且首选项选项 font.mathfont-family 已替换为 font.name.serif.x-math。所有平台现在基本使用相同的回退字体列表,其中“Latin Modern Math”是第一个。默认/回退字体可以从标准的每个语言字体首选项菜单中配置。有关更多详细信息,请参见 Firefox bug 947654 和 Firefox bug 1160456。
SVG
- 站点图标(收藏夹图标、快捷方式图标)现在支持 SVG (Firefox bug 366324)。
音频/视频
media.autoplay.enabled首选项现在也适用于不受信任的HTMLMediaElement.play()调用,即来自非用户激活脚本的调用 (Firefox bug 659285)。
网络
- 不再支持
X-Content-Duration头部 (Firefox bug 1160695)。 - 不再支持 HTTP/2 协议的草稿版本 (Firefox bug 1132357)。
安全
- 现在支持 CSP 1.1
manifest-src指令 (Firefox bug 1089255)。 - 以前的 Firefox 版本错误地将 内容安全策略 referrer 指令的值
origin-when-cross-origin拼写为origin-when-crossorigin。现在已纠正,加入了缺少的连字符。
面向附加组件和 Mozilla 开发者的变更
XUL
无更改。
JavaScript 代码模块
无更改。
XPCOM
接口
无更改。
其他
- 已添加一个新的、内部的、仅限 Chrome 上下文的 API,用于将窗口的根小部件渲染到
<canvas>中:CanvasRenderingContext2D.drawWidgetAsOnScreen()。此 API 使用操作系统将小部件屏幕快照。有关更多详细信息,请参见 Firefox bug 1167477。