Firefox 36 for developers
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:
CSS
- The
will-change
property has been enabled by default (Firefox bug 961871). - The
white-space
property is now working on<textarea>
HTML elements (Firefox bug 82711). - The
unicode-range
descriptor is now supported by@font-face
(Firefox bug 475891), but not enabled by default. - The properties
text-decoration-color
,text-decoration-line
, andtext-decoration-style
are unprefixed (Firefox bug 825004). The prefixed version are still available for some time to ease transition (Firefox bug 1097922). - The
text-decoration
property is turned into shorthand property (Firefox bug 1039488). - The properties
object-fit
andobject-position
are now supported (Firefox bug 624647) - The
contents
value of thedisplay
property has been experimentally implemented. It is preffed off by default (Firefox 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 (Firefox bug 783213). - The
isolation
property has been implemented (Firefox 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 (Firefox bug 591600). - Interpolation hint syntax has been added to
<gradient>
(Firefox bug 1074056). - The
scroll-behavior
property has been implemented (Firefox bug 1010538).
HTML
- Support for
<meta name="referrer">
has been added (Firefox bug 704320). - In Firefox,
<input>
filters specified in theaccept
attribute will always be selected by default, unless there is an 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 (Firefox bug 826185).
JavaScript
- 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 symbolSymbol.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 returns3
, notNaN
."0o11" == 9
now returnstrue
, notfalse
.
- 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 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 (Firefox bug 1069063). - The
delete
operator now triggers the "temporal dead zone" when using withlet
andconst
(Firefox 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 (Firefox bug 1092537).
Interfaces/APIs/DOM
- The
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
WebGLQuery
interface is available (Firefox bug 1048719). - The
WebGL2RenderingContext.invalidateFrameBuffer()
method has been implemented (Firefox bug 1076456).
- The
- The
MediaDevices
interface, containing thePromise
-based version ofgetUserMedia()
, has been added. It is available viaNavigator.mediaDevices
(Firefox bug 1033885). - The EME-related
Navigator.requestMediaKeySystemAccess()
method, and the relatedMediaKeySystemAccess
, is now supported (Firefox bug 1095257). - The
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
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
RTCPeerConnection.onsignalingstatechange
now receives an event as parameter, as per spec (Firefox bug 1075133). - The experimental implementation of Web Animations make progress: the method
AnimationPlayer.play()
andAnimationPlayer.pause()
are now supported (Firefox bug 1070745), as well asAnimationPlayer.playState
(Firefox bug 1037321). - The non-standard
DOMRequest
interface has now aDOMRequest.then()
method (Firefox bug 839838). - The CSSOM View scroll behavior controlling methods,
Element.scroll()
,Element.scrollTo()
,Element.scrollBy()
, andElement.scrollIntoView()
, have been implemented or extended (Firefox bug 1045754 and Firefox bug 1087559). - Assigning to
Element.innerHTML
on anSVGElement
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.
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 (Firefox 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 (Firefox bug 1093595).
- Also, RC4 is no longer offered in the initial handshake of TLS (Firefox bug 1088915).
- The
form-action
directive of CSP 1.1 is now supported (Firefox bug 529697). - In the preferences of Firefox, The Do not track selection widget is again an on/off switch (Firefox bug 1071747).
Changes for add-on and Mozilla developers
Add-on SDK
Highlights
- 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:jsvar { require } = Cu.import( "resource://gre/modules/commonjs/toolkit/require.js", {}, );
Details
JavaScript code modules
PromiseUtils.resolveOrTimeout
is implemented (Firefox bug 1080466).PromiseUtils.defer
(a replacement forPromise.defer()
) is implemented (Firefox 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
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 (Firefox bug 1080319).
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