Firefox 36 for developers

There were scripting errors on this page. While those are being addressed by site editors, you can view partial content below.

Firefox 36 was released on February 24th, 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

Highlights:

All devtools bugs fixed between Firefox 35 and Firefox 36.

CSS

  • The will-change property has been enabled by default ({{ bug }}).
  • The white-space property is now working on <textarea> HTML elements ({{ bug }}).
  • The unicode-range descriptor is now supported by @font-face ({{ bug }}), but not enabled by default.
  • The properties text-decoration-color, text-decoration-line, and text-decoration-style are unprefixed ({{ bug }}). The prefixed version are still available for some time to ease transition ({{ bug }}).
  • The text-decoration property is turned into shorthand property ({{ bug }}).
  • The properties object-fit and object-position are now supported ({{ bug }})
  • The contents value of the display property has been experimentally implemented. It is preffed off by default ({{ bug }}).
  • In Quirks mode, the :active and :hover quiver quirk has been altered to be applied less often: it is now used only on links, only if there are no pseudo-element or other pseudo-class in the element and if it isn't part of a pseudo-class element ({{ bug }}).
  • The isolation property has been implemented ({{ bug }}).
  • CSS <gradient> now applies on the premultiplied colors, matching the spec and other browsers, and getting rid of unexpected gray colors appearing in them ({{ bug }}).
  • Interpolation hint syntax has been added to <gradient> ({{ bug }}).
  • The scroll-behavior property has been implemented ({{ bug }}).

HTML

  • Support for <meta name="referrer"> has been added ({{ bug }}).
  • In Firefox, <input> filters specified in the accept attribute will always be selected by default, unless there is a unknown value, that is an unknown mime type or badly formatted value in the accept attribute. Previously specified filters were only selected by default for image/*,video/* and audio/* values ({{ bug }}).

JavaScript

  • The ECMAScript 2015 Symbol data type has been enabled by default (was available in the Nightly channel since version 33) ({{ bug }}):
  • The old placeholder string "@@iterator" has been replaced with the real ES2015 well-known symbol Symbol.iterator for the iterable interface property key ({{ bug }}).
  • The spec-internal abstract operation ToNumber(string) now supports binary (0b) and octal (0o) literals, this is a potentially breaking change from ES5 ({{ bug }}).
    • Number("0b11") now returns 3, not NaN.
    • "0o11" == 9 now returns true, not false.
  • The const declaration is now block-scoped and requires an initializer ({{ bug }}). It also can not be redeclared anymore ({{ bug }}).
    • {const a=1}; a; now throws a ReferenceError and does not return 1 anymore due to block-scoping.
    • const a; now throws a SyntaxError ("missing = in const declaration"): An initializer is required.
    • const a = 1; a = 2; now also throws a SyntaxError ("invalid assignment to const a").
  • The ES2016 method Array.prototype.includes has been implemented, but for now, it is only enabled in Nightly builds ({{ bug }}).
  • The delete operator now triggers the "temporal dead zone" when using with let and const ({{ bug }}).
  • The non-standard let blocks and let expressions are deprecated and will now log a warning in the console. Do not use them anymore, they will be removed in the future.
  • WeakMap constructor now handles optional iterable argument ({{ bug }}).

Interfaces/APIs/DOM

 

MathML

No change.

SVG

No change.

Audio/Video

No change.

Networking

  • Support for SPDY/3 has been removed; support for SPDY/3.1 is still available ({{ bug }}).

Security

  • RC4 is now considered as insecure and all UI indicators will react as such; SSLv3 has been disabled by default in Firefox 34, but the UI has been changed to help the user better understand what is happening ({{ bug }}).
  • Also, RC4 is no longer offered in the initial handshake of TLS ({{ bug }}).
  • The form-action directive of CSP 1.1 is now supported ({{ bug }}).
  • In the preferences of Firefox, The Do not track selection widget is again an on/off switch ({{ bug }}).

Changes for add-on and Mozilla developers

Add-on SDK

Highlights

  • The sdk/test/httpd module was removed in Firefox 36, please use the addon-httpd npm module instead.
  • Add badges to sdk/ui buttons ({{ bug }}).
  • Implemented global require function to access sdk modules anywhere ({{ bug }}), using:
var { require } = Cu.import("resource://gre/modules/commonjs/toolkit/require.js", {});

Details

Github commits made between Firefox 35 and Firefox 36.

JavaScript code modules

Interfaces

nsIContentPolicy

New constants have been added to nsIContentPolicy to allow Gecko internals and add-on code to better differentiate different types of requests. These are:

TYPE_FETCH
Indicates a content load request initiated by the GlobalFetch.fetch() method.
TYPE_IMAGESET
Indicates a request to load an <img> (with the srcset attribute or <picture> element.

XUL

No change.

Other

See also

Older versions

Document Tags and Contributors

Tags: 
Last updated by: wbamberg,