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:
- eval sources now appear in the Debugger
- Simpler process for connecting to Firefox for Android
- Box Model Highlighter works on remote targets
- "Invert the call tree" option in the Profiler
- Inspect DOM promises in the console
- Extra "Paste" commands in the Inspector
All devtools bugs fixed between Firefox 35 and Firefox 36.
CSS
- The
will-change
property has been enabled by default (bug 961871). - The
white-space
property is now working on<textarea>
HTML elements (bug 82711). - The
unicode-range
descriptor is now supported by@font-face
(bug 475891), but not enabled by default. - The properties
text-decoration-color
,text-decoration-line
, andtext-decoration-style
are unprefixed (bug 825004). The prefixed version are still available for some time to ease transition (bug 1097922). - The
text-decoration
property is turned into shorthand property (bug 1039488). - The properties
object-fit
andobject-position
are now supported (bug 624647) - The
contents
value of thedisplay
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
isolation
property has been implemented (bug 1077872). - 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 591600). - Interpolation hint syntax has been added to
<gradient>
(bug 1074056). - The
scroll-behavior
property has been implemented (bug 1010538).
HTML
- Support for
<meta name="referrer">
has been added (bug 704320). - In Firefox,
<input>
filters specified in theaccept
attribute will always be selected by default, unless there is a unknown value, that is an unknown mime type or badly formatted value in theaccept
attribute. Previously specified filters were only selected by default forimage/*
,video/*
andaudio/*
values (bug 826185).
JavaScript
- The ECMAScript 2015 Symbol data type has been enabled by default (was available in the Nightly channel since version 33) (bug 1066322):
- The old placeholder string
"@@iterator"
has been replaced with the real ES2015 well-known symbolSymbol.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 returns3
, notNaN
."0o11" == 9
now returnstrue
, notfalse
.
- 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 aReferenceError
and does not return1
anymore due to block-scoping.const a;
now throws aSyntaxError
("missing = in const declaration"
): An initializer is required.const a = 1; a = 2;
now also throws aSyntaxError
("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 1069063). - The
delete
operator now triggers the "temporal dead zone" when using withlet
andconst
(bug 1074571). - The non-standard
let
blocks andlet
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
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
WebGLQuery
interface is available (bug 1048719). - The
WebGL2RenderingContext.invalidateFrameBuffer()
method has been implemented (bug 1076456).
- The
- The
MediaDevices
interface, containing thePromise
-based version ofgetUserMedia()
, has been added. It is available viaNavigator.mediaDevices
(bug 1033885). - The EME-related
Navigator.requestMediaKeySystemAccess()
method, and the relatedMediaKeySystemAccess
, is now supported (bug 1095257). - The
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
RTCPeerConnection.onsignalingstatechange
now receives an event as parameter, as per spec (bug 1075133). - The experimental implementation of Web Animations make progress: the method
AnimationPlayer.play()
andAnimationPlayer.pause()
are now supported (bug 1070745), as well asAnimationPlayer.playState
(bug 1037321). - The non-standard
DOMRequest
interface has now athen()
method (bug 839838). - The CSSOM View scroll behavior controlling methods,
Element.scroll()
,Element.scrollTo()
,Element.scrollBy()
, andElement.scrollIntoView()
, have been implemented or extended (bug 1045754 and bug 1087559). - Assigning to
Element.innerHTML
on anSVGElement
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
- PromiseUtils.resolveOrTimeout is implemented (bug 1080466).
- PromiseUtils.defer (a replacement for Promise.defer) is implemented (bug 1093021).
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 thesrcset
attribute or<picture>
element.
XUL
No change.
Other
- Firefox
-remote
command line option has been removed (bug 1080319).
See also
Older versions
- Firefox 35 for developers
- Firefox 34 for developers
- Firefox 33 for developers
- Firefox 32 for developers
- Firefox 31 for developers
- Firefox 30 for developers
- Firefox 29 for developers
- Firefox 28 for developers
- Firefox 27 for developers
- Firefox 26 for developers
- Firefox 25 for developers
- Firefox 24 for developers
- Firefox 23 for developers
- Firefox 22 for developers
- Firefox 21 for developers
- Firefox 20 for developers
- Firefox 19 for developers
- Firefox 18 for developers
- Firefox 17 for developers
- Firefox 16 for developers
- Firefox 15 for developers
- Firefox 14 for developers
- Firefox 13 for developers
- Firefox 12 for developers
- Firefox 11 for developers
- Firefox 10 for developers
- Firefox 9 for developers
- Firefox 8 for developers
- Firefox 7 for developers
- Firefox 6 for developers
- Firefox 5 for developers
Document Tags and Contributors
Tags:
Contributors to this page:
Sebastianz,
kdex,
kohei.yoshino,
serv-inc,
Sheppy,
teoli,
chrisdavidmills,
evold,
kmaglione,
phistuck,
MagnetMan,
Havvy,
Vento,
fscholz,
fmarier,
arai,
wbamberg,
ziyunfei,
myakura
Last updated by:
Sebastianz,