Firefox 35 开发者发行说明
Firefox 35 于 2015 年 1 月 13 日发布。本文档列出了对 Web 开发者、Firefox 和 Gecko 开发者以及插件开发者有用的主要更改。
面向网络开发者的变更
开发者工具
亮点
CSS
mask-type属性现已默认启用(Firefox bug 1058519)。filter属性现已默认启用(Firefox bug 1057180)。@font-faceat-rule 现在支持 WOFF2 字体(Firefox bug 1064737)。- 现在支持
symbols()函数式表示法(Firefox bug 966168)。 - 已实现 CSS 字体加载 API(Firefox bug 1028497)。
- 在组合框上使用值为
none的-moz-appearance会移除下拉按钮(Firefox bug 649849)。 - 已添加属性访问器
element.style["css-property-name"]以匹配其他浏览器(Firefox bug 958887)。
HTML
<body>元素的已弃用且不符合规范的bottommargin、leftmargin、rightmargin和topmargin属性在非混杂模式下已启用(Firefox bug 95530)。
JavaScript
-
已实现
let声明的“临时死区”(TDZ)。根据 ES2015let语义,以下情况现在会引发错误。另请参阅此新闻组公告和Firefox bug 1001090。- 在函数体内,在同一范围内使用
let重新声明现有变量或参数现在是语法错误。 - 在函数体内,在达到并求值声明之前使用通过
let声明的变量现在是运行时错误。
- 在函数体内,在同一范围内使用
-
ES2015
Symbols(仅在 Nightly 版本中可用)已更新,以符合最新的规范更改。String(Symbol("1"))现在不再抛出TypeError;而是返回一个字符串("Symbol(1)")(Firefox bug 1058396)。
-
各种TypedArray 构造函数的
[[Prototype]]现在是单个函数,在 ES2015 中表示为%TypedArray%(但其他情况下不直接暴露)。每个类型化数组原型现在都继承自%TypedArray%.prototype。(%TypedArray%和%TypedArray%.prototype分别继承自Function.prototype和Object.prototype,以便类型化数组构造函数和实例仍然具有那些对象上的属性。)类型化数组函数属性现在位于%TypedArray%.prototype上,并适用于任何类型化数组。有关更多信息,请参阅TypedArray 和Firefox bug 896116。 -
已实现 ES2015 语义,用于使用对象字面量进行原型突变(Firefox bug 1061853)。
- 现在,对象字面量语法中只有一个表示为
__proto__:value的成员会突变[[Prototype]]。 - 像
__proto__() {}这样的方法成员将不再覆盖[[Prototype]]。
- 现在,对象字面量语法中只有一个表示为
接口/API/DOM
navigator.language和navigator.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移动到Element(Firefox bug 1055773)。HTMLImageElement、HTMLLinkElement、HTMLMediaElement、HTMLScriptElement和SVGScriptElement的crossOrigin反射属性仅接受有效值,""无效,必须改用null(Firefox bug 880997)。- 资源计时 API 已默认启用(Firefox bug 1002855)。
- 为匹配规范,
Selection.containsNode()的第一个参数不能再是null(Firefox bug 1068058)。 - 已实现新的
ImageCaptureAPI: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属性控制,默认值为false(Firefox 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 实验性实现正在进行中!
- 已实现
WebGL2RenderingContext.copyBufferSubData()方法(Firefox bug 1048668)。
- 已实现
MathML
dtlsOpenType 功能(通过默认样式表上的 CSSfont-feature-settings)现在会自动应用于 MathML 元素,用于在其上方定位脚本(例如,带数学帽的无点 i)。
SVG
无更改。
音频/视频
无更改。
网络与安全
- HTTP/2 已实现并启用,仅支持 AEAD 密码(Firefox bug 1027720 和 Firefox bug 1047594)。
- 现在支持 HTTP/2
alt-svc标头(Firefox bug 1003448)。 - 已实现 HTTP 的公钥固定扩展(HPKP)(Firefox bug 787133)。
- 现在支持 CSP 1.1
base-uri指令(Firefox bug 1045897)。 - 在 CSP 中进行主机源匹配时,现在也会考虑源路径(Firefox bug 808292)。
面向附加组件和 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 后进行的任何提升。