Firefox 35 for developers

Firefox 35 was released on January 13th, 2015. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.

Changes for Web developers

Developer Tools

CSS

HTML

  • The obsolete and non-conforming bottommargin, leftmargin, rightmargin and topmargin attributes of the <body> element have been activated in non-quirks mode (Firefox bug 95530).

JavaScript

  • The "temporal dead zone" for let declarations has been implemented. In conformance with ES2015 let semantics, the following situations now throw errors. See also this newsgroup announcement and Firefox bug 1001090.
    • Redeclaring existing variables or arguments using let within the same scope in function bodies is now a syntax error.
    • Using a variable declared using let in function bodies before the declaration is reached and evaluated is now a runtime error.
  • ES2015 Symbols (only available in the Nightly channel) have been updated to conform with recent specification changes:
  • The various TypedArray constructors now have as their [[Prototype]] a single function, denoted %TypedArray% in ES2015 (but otherwise not directly exposed). Each typed array prototype now inherits from %TypedArray%.prototype. (%TypedArray% and %TypedArray%.prototype inherit from Function.prototype and Object.prototype, respectively, so that typed array constructors and instances still have the properties found on those objects.) Typed array function properties now reside on %TypedArray%.prototype and work on any typed array. See TypedArray and Firefox bug 896116 for more information.
  • ES2015 semantics for prototype mutations using object literals have been implemented (Firefox bug 1061853).
    • Now only a single member notated as __proto__:value will mutate the [[Prototype]] in the object literal syntax.
    • Method members like __proto__() {} will not overwrite the [[Prototype]] anymore.

Interfaces/APIs/DOM

MathML

  • The dtls OpenType feature (via the CSS font-feature-settings on the default stylesheet) is now applied automatically to MathML elements when positioning scripts over it (e.g. dotless i with mathematical hat).

SVG

No change.

Audio/Video

No change.

Network & Security

Changes for add-on and Mozilla developers

XUL & Add-ons

  • The private _getTabForBrowser() method on the <xul:tabbrowser> element has been deprecated. In its place, we've added a new, public, method called getTabForBrowser. This returns, predictably, the <xul:tab> element that contains the specified <xul:browser>.
  • Components.utils.now(), matching Performance.now() has been implemented for non-window chrome code (Firefox bug 969490).

Add-on SDK

Highlights

  • Added access keys for context menu.
  • Removed isPrivateBrowsing from BrowserWindow.
  • Added toJSON method to URL instances.

Details

GitHub commits made between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.

Bugs fixed between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.

Older versions