---
title: Firefox 47 for developers
slug: Mozilla/Firefox/Releases/47
translation_of: Mozilla/Firefox/Releases/47
---
{{FirefoxSidebar}}
To test the latest developer features of Firefox,
install Firefox Developer EditionFirefox 47 was released on June 6, 2016. 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
HTML
No change.
CSS
- Support for the {{cssxref("::backdrop")}} pseudo-element has been added ({{bug(1064843)}}).
- The case-insensitive modifier
i
(like in [foo=bar i]
) for attribute selectors has been implemented ({{bug(888190)}}).
- An experimental implementation of CSS Mask Image properties landed. For the moment, this will only be available on Nightly versions of Firefox.y: shorthand version of {{cssxref("mask")}}, as well as {{cssxref("mask-repeat")}}, {{cssxref("mask-position")}}, {{cssxref("mask-size")}} are now available ({{bug(686281)}}).
- The {{cssxref("clip-path")}} property now experimentally supports
polygon()
, ellipse()
, and circle()
on HTML elements (does not support inset() and path()), behind the pref layout.css.clip-path-shapes.enabled
that defaults to false
({{bug(1075457)}}). Interpolation (and therefore animation) of these values is not yet supported.
- Our still experimental grid implementation has been updated:
- {{cssxref("align-content")}}:
normal
behaves now as stretch
for grid containers ({{bug(1237754)}}).
- The order of column/row values for {{cssxref('grid')}}, {{cssxref('grid-template')}}, and {{cssxref('grid-gap')}} properties has been swapped ({{bug(1251999)}}).
- The {{cssxref("@media/display-mode", "display-mode")}} media feature is now supported ({{bug("1104916")}}).
- The value
true
of {{cssxref("text-align")}} and {{cssxref("text-align-last")}} has been renamed to unsafe
({{bug("1250342")}}).
JavaScript
- The new ES2017 {{jsxref("Object.values()")}} and {{jsxref("Object.entries()")}} methods have been implemented ({{bug(1232639)}}).
- The deprecated old Proxy API (
Proxy.create
and Proxy.createFunction
) now presents a deprecation warning in the console and will be removed in a future version. Use the standard {{jsxref("Proxy")}} object instead ({{bug(892903)}}).
- Support for the deprecated non-standard
flags
argument of String.prototype.
{{jsxref("String.prototype.match", "match")}}/{{jsxref("String.prototype.search", "search")}}/{{jsxref("String.prototype.replace", "replace")}} has been dropped in non-release builds ({{bug(1245801)}}).
- As per the new ES2016 specification, the {{jsxref("Proxy")}} enumerate trap for
for...in
statements has been removed ({{bug(1246318)}}).
- The {{jsxref("Array.prototype.indexOf()")}} and {{jsxref("Array.prototype.lastIndexOf()")}} methods (and their {{jsxref("TypedArray")}} equivalents) have been updated to never return
-0
as per the ECMAScript specification ({{bug(1242043)}}).
Interfaces/APIs/DOM
DOM & HTML DOM
- The property {{domxref("Document.scrollingElement")}} has been implemented behind the pref
dom.document.scrollingElement.enabled
that defaults to false
({{bug(1153322)}}).
WebGL
No change.
IndexedDB
- The {{domxref("IDBKeyRange.includes()")}} method has been implemented ({{bug("1251498")}}).
WebRTC
- Support for the {{domxref("RTCIceServer")}} dictionary has been updated in keeping with revisions to the WebGL 1.0 specification by adding support for the {{domxref("RTCIceServer.credentialType", "credentialType")}} property. This property is a string which specifies whether the credential is a password or a token. Currently, Firefox only supports
"password"
.
New APIs
No change.
Others
- {{domxref("Cache.add()")}} and {{domxref("Cache.addAll()")}} now raises a
TypeError
exception if the response status is not in the 200
range ({{bug(1244764)}}).
- The App installation and management APIs (
navigator.mozApps.*
) are no longer exposed to non-Firefox OS platforms ({{bug("1238576")}}).
- Web Crypto API methods can now use the RSA-PSS cryptographic algorithm ({{bug (1191936)}}).
- The Permissions API has had the {{domxref("Permissions.revoke()")}} method added ({{bug("1197461")}}).
- The Browser API, which extends the functionality of {{htmlelement("iframe")}}s to allow the creation of frames for displaying web content using HTML — and was previously only available in Firefox OS — is now available to desktop chrome code too ({{bug(1238160)}}).
- The Notification API's {{domxref("Notification.requestPermission()","requestPermission()")}} method has been updated from a callback to a promised-based syntax ({{bug(1241278)}}).
- The Fullscreen API has been updated to the latest spec and unprefixed. Some methods have been renamed or have seen their capitalisation changed ({{bug(743198)}}). Note that this is not yet activated by default by behind the
full-screen-api.unprefix.enabled
preference ({{bug(1268749)}}).
Audio/Video
- Now WAV file with u-law compression encoding can be played({{bug(851530)}}).
- Widevine Content Decryption Module provided by Google Inc. is available via the Encrypted Media Extensions API for use with MP4 (only; see {{bug(1257716)}} for EME-with-WebM support) on Windows Vista and later and on Mac OS X enabling migration off Silverlight ({{bug(1265270)}}).
HTTP
No change.
Networking
No change.
Security
- URL with the
view-source:
protocol don't open the View Source tool anymore when used from a Web page ({{bug(1172165)}}).
- The Firefox click-to-activate plugin whitelist has been removed: only Flash doesn't need to be clicked to be activated ({{bug(1263630)}}).
Changes for add-on and Mozilla developers
Interfaces
- The CSS tokenizer is now available in JavaScript for add-ons ({{bug(1152033)}}).
FUEL
The FUEL JavaScript library, introduced back in Firefox 3, has been removed. This library was designed to aid in add-on development and with the introduction of the Add-on SDK and, now, by WebExtensions support, is no longer useful. ({{bug(1090880)}})
XUL
No change.
JavaScript code modules
No change.
XPCOM
No change.
Other
No change.
See also
Older versions
{{Firefox_for_developers(46)}}