files/en-us/mozilla/firefox/releases/36/index.md
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.
Highlights:
All devtools bugs fixed between Firefox 35 and Firefox 36.
contents value of the {{cssxref("display")}} property has been experimentally implemented. It is preffed off by default (Firefox bug 907396).: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 (Firefox bug 783213).<meta name="referrer"> has been added (Firefox bug 704320).accept attribute will always be selected by default, unless there is an 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 (Firefox bug 826185).The ECMAScript 2015 Symbol data type has been enabled by default (was available in the Nightly channel since version 33) (Firefox bug 1066322):
The old placeholder string "@@iterator" has been replaced with the real ES2015 well-known symbol {{jsxref("Symbol.iterator")}} for the iterable interface property key (Firefox bug 918828).
The spec-internal abstract operation ToNumber(string) now supports binary (0b) and octal (0o) literals, this is a potentially breaking change from ES5 (Firefox bug 1079120).
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 (Firefox bug 611388). It also can not be redeclared anymore (Firefox bug 1095439).
{const a=1}; a; now throws a {{jsxref("ReferenceError")}} and does not return 1 anymore due to block-scoping.const a; now throws a {{jsxref("SyntaxError")}} ("missing = in const declaration"): An initializer is required.const a = 1; a = 2; now also throws a {{jsxref("SyntaxError")}} ("invalid assignment to const a").The ES2016 method {{jsxref("Array.prototype.includes")}} has been implemented, but for now, it is only enabled in Nightly builds (Firefox bug 1069063).
The delete operator now triggers the "temporal dead zone" when using with let and const (Firefox bug 1074571).
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 (Firefox bug 1092537).
The {{domxref("CanvasRenderingContext2D.resetTransform()")}} method of the Canvas API has been implemented (Firefox bug 1099148).
ECDSA is now supported in the Web Crypto API (Firefox bug 1034854).
Our experimental implementation of WebGL 2.0 is going forward!
The {{domxref("MediaDevices")}} interface, containing the {{jsxref("Promise")}}-based version of {{domxref("MediaDevices.getUserMedia()", "getUserMedia()")}}, has been added. It is available via {{domxref("Navigator.mediaDevices")}} (Firefox bug 1033885).
The EME-related {{domxref("Navigator.requestMediaKeySystemAccess()")}} method, and the related {{domxref("MediaKeySystemAccess")}}, is now supported (Firefox bug 1095257).
The {{domxref("MediaKeySession/keystatuseschange_event", "keyschange")}} event is now sent when an EME-related CDM change keys in a session (Firefox bug 1081755).
The default values of the options for {{domxref("MutationObserver.observe()")}} have been updated to match the latest specification (Firefox bug 973638).
Experimental support for virtual reality devices has landed behind the dom.vr.enabled preference, off by default (Firefox bug 1036604).
The function associated with {{domxref("RTCPeerConnection.signalingstatechange_event", "RTCPeerConnection.onsignalingstatechange")}} now receives an event as parameter, as per spec (Firefox bug 1075133).
The experimental implementation of Web Animations make progress: the method {{domxref("Animation/play", "AnimationPlayer.play()")}} and {{domxref("Animation/pause", "AnimationPlayer.pause()")}} are now supported (Firefox bug 1070745), as well as {{domxref("Animation/playState", "AnimationPlayer.playState")}} (Firefox bug 1037321).
The non-standard DOMRequest interface has now a DOMRequest.then() method (Firefox bug 839838).
The CSSOM View scroll behavior controlling methods, {{domxref("Element.scroll()")}}, {{domxref("Element.scrollTo()")}}, {{domxref("Element.scrollBy()")}}, and {{domxref("Element.scrollIntoView()")}}, have been implemented or extended (Firefox bug 1045754 and Firefox bug 1087559).
Assigning to {{domxref("Element.innerHTML")}} on an {{domxref("SVGElement")}} now create elements in the SVG namespace (Firefox bug 886390).
The nsIWebBrowserPersist.saveURI() method now requires 8 arguments, in an order incompatible with previous releases.
Support for Media Source Extensions (MSE) is activated by default in non-build releases (Nightly and Developer Edition only) (Firefox bug 1000686). It keeps being preffed off on Beta and Release version.
No change.
No change.
No change.
form-action directive of CSP 1.1 is now supported (Firefox bug 529697).The sdk/test/httpd module was removed, use the addon-httpd npm module instead.
Add badges to sdk/ui buttons (Firefox bug 994280).
Implemented global require function to access sdk modules anywhere (Firefox bug 1070927), using:
var { require } = Cu.import(
"resource://gre/modules/commonjs/toolkit/require.js",
{},
);
GitHub commits made between Firefox 35 and Firefox 36.
PromiseUtils.resolveOrTimeout is implemented (Firefox bug 1080466).PromiseUtils.defer (a replacement for Promise.defer()) is implemented (Firefox bug 1093021).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
TYPE_IMAGESET
srcset attribute or {{HTMLElement("picture")}} element.No change.
-remote command line option has been removed (Firefox bug 1080319).