Firefox 35 开发者发行说明

Firefox 35 于 2015 年 1 月 13 日发布。本文档列出了对 Web 开发者、Firefox 和 Gecko 开发者以及插件开发者有用的主要更改。

面向网络开发者的变更

开发者工具

亮点

Firefox 34 和 Firefox 35 之间修复的所有开发者工具 bug.

CSS

HTML

  • <body> 元素的已弃用且不符合规范的 bottommarginleftmarginrightmargintopmargin 属性在非混杂模式下已启用(Firefox bug 95530)。

JavaScript

  • 已实现 let 声明的“临时死区”(TDZ)。根据 ES2015 let 语义,以下情况现在会引发错误。另请参阅此新闻组公告Firefox bug 1001090

    • 在函数体内,在同一范围内使用 let 重新声明现有变量或参数现在是语法错误。
    • 在函数体内,在达到并求值声明之前使用通过 let 声明的变量现在是运行时错误。
  • ES2015 Symbols(仅在 Nightly 版本中可用)已更新,以符合最新的规范更改。

  • 各种TypedArray 构造函数[[Prototype]] 现在是单个函数,在 ES2015 中表示为 %TypedArray%(但其他情况下不直接暴露)。每个类型化数组原型现在都继承自 %TypedArray%.prototype。(%TypedArray%%TypedArray%.prototype 分别继承自 Function.prototypeObject.prototype,以便类型化数组构造函数和实例仍然具有那些对象上的属性。)类型化数组函数属性现在位于 %TypedArray%.prototype 上,并适用于任何类型化数组。有关更多信息,请参阅TypedArrayFirefox bug 896116

  • 已实现 ES2015 语义,用于使用对象字面量进行原型突变Firefox bug 1061853)。

    • 现在,对象字面量语法中只有一个表示为 __proto__:value 的成员会突变 [[Prototype]]
    • __proto__() {} 这样的方法成员将不再覆盖 [[Prototype]]

接口/API/DOM

  • navigator.languagenavigator.languages 现在可供 WorkerNavigator 上的 worker 使用(Firefox bug 925849)。
  • Element.closest() 方法返回当前元素的最近的祖先(Firefox bug 1055533)。
  • CanvasRenderingContext2D.filter 属性的实验性支持已添加,通过 canvas.filters.enabled 标志控制(Firefox bug 927892)。
  • 我们对 Web Animations 的实验性实现正在通过 Animation.target 属性的落地而进展。这始终由 dom.animations-api.core.enabled 首选项控制,默认关闭(Firefox bug 1067701)。
  • hasAttributes() 方法已根据规范要求从 Node 移动到 ElementFirefox bug 1055773)。
  • HTMLImageElementHTMLLinkElementHTMLMediaElementHTMLScriptElementSVGScriptElementcrossOrigin 反射属性仅接受有效值,"" 无效,必须改用 nullFirefox bug 880997)。
  • 资源计时 API 已默认启用(Firefox bug 1002855)。
  • 为匹配规范,Selection.containsNode() 的第一个参数不能再是 nullFirefox bug 1068058)。
  • 已实现新的 ImageCapture API:ImageCapture.takePhoto() 可用(Firefox bug 916643)。
  • 非 HTTP XMLHttpRequest 请求在成功时现在返回 200(而不是错误的 0)(Firefox bug 716491)。
  • XMLHttpRequest.responseURL 已根据最新规范进行调整,并且在相关时不再包含 URL 的片段('#xyz')(Firefox bug 1073882)。
  • 内部非标准的 File.mozFullPath 属性不再可从内容可见(Firefox bug 1048293)。
  • File 的构造函数已扩展以匹配规范(Firefox bug 1047483)。
  • 已添加 AbortablePromise 的实验性实现,这是一个可以被创建它的实体以外的其他实体中止的 Promise。它以 Moz 作为前缀,并受 dom.abortablepromise.enabled 属性控制,默认值为 falseFirefox bug 1035060)。
  • 非标准的 Navigator.mozIsLocallyAvailable 属性已被移除(Firefox bug 1066826)。
  • network.websocket.enabled 首选项(默认值为 true)已被移除;WebSocket API 不再可以被禁用(Firefox bug 1091016)。
  • Crypto 的非标准方法和属性已被移除(Firefox bug 1030963)。只剩下标准 WebCrypto API 中定义的方法和属性。
  • 我们的 WebGL 2.0 实验性实现正在进行中!

MathML

  • dtls OpenType 功能(通过默认样式表上的 CSS font-feature-settings)现在会自动应用于 MathML 元素,用于在其上方定位脚本(例如,带数学帽的无点 i)。

SVG

无更改。

音频/视频

无更改。

网络与安全

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

XUL & 插件

  • <xul:tabbrowser> 元素上的私有 _getTabForBrowser() 方法已被弃用。取而代之的是,我们添加了一个新的公共方法 getTabForBrowser。顾名思义,它返回包含指定 <xul:browser><xul:tab> 元素。
  • 为非窗口 chrome 代码实现了 Components.utils.now(),匹配 Performance.now()Firefox bug 969490)。

附加组件 SDK

亮点

  • 为上下文菜单添加了访问键。
  • BrowserWindow 中移除了 isPrivateBrowsing
  • URL 实例添加了 toJSON 方法。

详情

Firefox 34 和 Firefox 35 之间的 GitHub commit。这不包括此版本进入 Aurora 后进行的任何提升。

Firefox 34 和 Firefox 35 之间的修复 bug。这不包括此版本进入 Aurora 后进行的任何提升。