---
title: Firefox 36 for developers
slug: Mozilla/Firefox/Releases/36
tags:
- Firefox
- NeedsTranslation
- TopicStub
translation_of: Mozilla/Firefox/Releases/36
---
{{FirefoxSidebar}}
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
Highlights:
All devtools bugs fixed between Firefox 35 and Firefox 36.
CSS
- The {{cssxref("will-change")}} property has been enabled by default ({{bug(961871)}}).
- The {{cssxref("white-space")}} property is now working on {{HTMLElement("textarea")}} HTML elements ({{bug(82711)}}).
- The {{cssxref("unicode-range")}} descriptor is now supported by {{cssxref("@font-face")}} ({{bug(475891)}}), but not enabled by default.
- The properties {{cssxref("text-decoration-color")}}, {{cssxref("text-decoration-line")}}, and {{cssxref("text-decoration-style")}} are unprefixed ({{bug(825004)}}). The prefixed version are still available for some time to ease transition ({{bug(1097922)}}).
- The {{cssxref("text-decoration")}} property is turned into shorthand property ({{bug(1039488)}}).
- The properties {{cssxref("object-fit")}} and {{cssxref("object-position")}} are now supported ({{bug(624647)}})
- The
contents
value of the {{cssxref("display")}} property has been experimentally implemented. It is preffed off by default ({{bug(907396)}}).
- 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(783213)}}).
- The {{cssxref("isolation")}} property has been implemented ({{bug(1077872)}}).
- CSS {{cssxref("<gradient>")}} now applies on the premultiplied colors, matching the spec and other browsers, and getting rid of unexpected gray colors appearing in them ({{bug(591600)}}).
- Interpolation hint syntax has been added to {{cssxref("<gradient>")}} ({{bug(1074056)}}).
- The {{cssxref("scroll-behavior")}} property has been implemented ({{bug(1010538)}}).
HTML
- Support for
<meta name="referrer">
has been added ({{bug(704320)}}).
- In Firefox, {{HTMLElement("input")}} filters specified in the {{htmlattrxref("accept", "input")}} 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 {{htmlattrxref("accept", "input")}} attribute. Previously specified filters were only selected by default for
image/*
,video/*
and audio/*
values ({{bug(826185)}}).
JavaScript
- The ECMAScript 6 Symbol data type has been enabled by default (was available in the Nightly channel since version 33) ({{bug(1066322)}}):
- {{jsxref("Symbol")}}
- {{jsxref("Symbol.for()")}}
- {{jsxref("Symbol.keyFor()")}}
- {{jsxref("Object.getOwnPropertySymbols()")}}
- The old placeholder string
"@@iterator"
has been replaced with the real ES6 well-known symbol {{jsxref("Symbol.iterator")}} for the iterable interface property key ({{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 ({{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 ({{bug(611388)}}). It also can not be redeclared anymore ({{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 ES7 method {{jsxref("Array.prototype.includes")}} has been implemented, but for now, it is only enabled in Nightly builds ({{bug(1069063)}}).
- The
delete
operator now triggers the "temporal dead zone" when using with let
and const
({{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 ({{bug(1092537)}}).
Interfaces/APIs/DOM
- The {{domxref("CanvasRenderingContext2D.resetTransform()")}} method of the Canvas API has been implemented ({{bug(1099148)}}).
- ECDSA is now supported in the Web Crypto API ({{bug(1034854)}}).
- Our experimental implementation of WebGL 2.0 is going forward!
- The {{domxref("WebGLQuery")}} interface is available ({{bug(1048719)}}).
- The {{domxref("WebGL2RenderingContext.invalidateFrameBuffer()")}} method has been implemented ({{bug(1076456)}}).
- 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")}} ({{bug(1033885)}}).
- The EME-related {{domxref("Navigator.requestMediaKeySystemAccess()")}} method, and the related {{domxref("MediaKeySystemAccess")}}, is now supported ({{bug(1095257)}}).
- The {{event("keyschange")}} event is now sent when an EME-related CDM change keys in a session ({{bug(1081755)}}).
- Experimental support for virtual reality devices has landed behind the
dom.vr.enabled
preference, off by default ({{bug(1036604)}}).
- The function associated with {{domxref("RTCPeerConnection.onsignalingstatechange")}} now receives an event as parameter, as per spec ({{bug(1075133)}}).
- The experimental implementation of Web Animations make progress: the method {{domxref("AnimationPlayer.play()")}} and {{domxref("AnimationPlayer.pause()")}} are now supported ({{bug(1070745)}}), as well as {{domxref("AnimationPlayer.playState")}} ({{bug(1037321)}}).
- The non-standard {{domxref("DOMRequest")}} interface has now a {{domxref("DOMRequest.then()", "then()")}} method ({{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 ({{bug(1045754)}} and {{bug(1087559)}}).
- Assigning to {{domxref("Element.innerHTML")}} on an {{domxref("SVGElement")}} now create elements in the SVG namespace ({{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) ({{bug(1000686)}}). It keeps being preffed off on Beta and Release version.
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(1097944)}}).
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(1093595)}}).
- Also, RC4 is no longer offered in the initial handshake of TLS ({{bug(1088915)}}).
- The
form-action
directive of CSP 1.1 is now supported ({{bug(529697)}}).
- In the preferences of Firefox, The Do not track selection widget is again an on/off switch ({{bug(1071747)}}).
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(994280)}}).
- Implemented global
require
function to access sdk modules anywhere ({{bug(1070927)}}), 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 {{interface("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 {{domxref("GlobalFetch.fetch()")}} method.
TYPE_IMAGESET
- Indicates a request to load an {{HTMLElement("img")}} (with the {{htmlattrxref("srcset", "img")}} attribute or {{HTMLElement("picture")}} element.
XUL
No change.
Other
See also
Older versions
{{Firefox_for_developers('35')}}