Firefox 47 for developers
=========================

To test the latest developer features of Firefox, install Firefox Developer Edition Firefox 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
--------------------------

### Developer Tools

* User-agent spoofing from the Responsive mode
* Retaining paths panel in memory tool
* Service workers and Push API debugging
    + about:debugging dashboard for workers
    + Cached requests are now shown in Network Monitor
    + Support for cache storage in Storage Inspector
* Ability to filter Storage Inspector entries
* Console now detects incomplete input and switches multi-line mode
* Updated breakpoint style in Debugger
* Prevent panels from hiding automatically using the Browser Toolbox, to aid browser and add-on debugging
* Font inspector has been disabled by default
* 3D view has been removed
* Developer tools theme refresh
* Disable the Font Panel (Firefox bug 1247723).
### HTML

*No change.*

### CSS

* Support for the `::backdrop` pseudo-element has been added (Firefox bug 1064843).
* The case-insensitive modifier `i` (like in `[foo=bar i]`) for attribute selectors has been implemented (Firefox 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 `mask`, as well as `mask-repeat`, `mask-position`, `mask-size` are now available (Firefox bug 686281).
* The `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` (Firefox bug 1075457). Interpolation (and therefore animation) of these values is not yet supported.
* Our still experimental grid implementation has been updated:
    + `align-content`: `normal` behaves now as `stretch` for grid containers (Firefox bug 1237754).
    + The order of column/row values for `grid`, `grid-template`, and `grid-gap` properties has been swapped (Firefox bug 1251999).
* The `display-mode` media feature is now supported (Firefox bug 1104916).
* The value `true` of `text-align` and `text-align-last` has been renamed to `unsafe` (Firefox bug 1250342).
### JavaScript

* The new ES2017 `Object.values()` and `Object.entries()` methods have been implemented (Firefox 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 `Proxy` object instead (Firefox bug 892903).
* Support for the deprecated non-standard `flags` argument of `String.prototype.``match`/`search`/`replace` has been dropped in non-release builds (Firefox bug 1245801).
* As per the new ES2016 specification, the `Proxy` enumerate trap for `for...in` statements has been removed (Firefox bug 1246318).
* The `Array.prototype.indexOf()` and `Array.prototype.lastIndexOf()` methods (and their `TypedArray` equivalents) have been updated to never return `-0` as per the ECMAScript specification (Firefox bug 1242043).
### Interfaces/APIs/DOM

#### DOM & HTML DOM

* The property `Document.scrollingElement` has been implemented behind the pref `dom.document.scrollingElement.enabled` that defaults to `false` (Firefox bug 1153322).

#### WebGL

*No change.*

#### IndexedDB

* The `IDBKeyRange.includes()` method has been implemented (Firefox bug 1251498).

#### Service Worker and related APIs

* The `Request()` constructor can now accept a referrer option in its init object (Firefox bug 1251448).
* The `Request.referrerPolicy` property is now supported (Firefox bug 1251872).
* Service workers and Push have been disabled in the Firefox 45 Extended Support Release (ESR) (Firefox bug 1232029).

#### WebRTC

* Support for the `RTCIceServer` dictionary has been updated in keeping with revisions to the WebGL 1.0 specification by adding support for the credentialType property. This property is a string that specifies whether the credential is a password or a token. Currently, Firefox only supports `"password"`.

#### New APIs

*No change.*

#### Others

* `Cache.add()` and `Cache.addAll()` now raises a `TypeError` exception if the response status is not in the `200` range (Firefox bug 1244764).
* The App installation and management APIs (`navigator.mozApps.*`) are no longer exposed to non-Firefox OS platforms (Firefox bug 1238576).
* Web Crypto API methods can now use the RSA-PSS cryptographic algorithm (Firefox bug 1191936).
* The Permissions API has had the `Permissions.revoke()` method added (Firefox bug 1197461).
* The Browser API, which extends the functionality of `<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 (Firefox bug 1238160).
* The Notification API's `requestPermission()` method has been updated from a callback to a promised-based syntax (Firefox bug 1241278).
* The Fullscreen API has been updated to the latest spec and unprefixed. Some methods have been renamed or have seen their capitalization changed (Firefox bug 743198). Note that this is behind the `full-screen-api.unprefix.enabled` preference, defaulting to false (Firefox bug 1268749).
### Audio/Video

* Now WAV file with u-law compression encoding can be played(Firefox bug 851530).
* Widevine Content Decryption Module provided by Google Inc. is available via the Encrypted Media Extensions API for use with MP4 (only; see Firefox bug 1257716 for EME-with-WebM support) on Windows Vista and later and on Mac OS X enabling migration off Silverlight (Firefox bug 1265270).
HTTP
----

* The default value of the `Accept` header for images is now `*/*` instead of `image/png,image/*;q=0.8,*/*;q=0.5` (Firefox bug 1249474).
Networking
----------

*No change.*

Security
--------

* URLs with the `view-source:` protocol don't open the View Source tool anymore when used from a Web page (Firefox bug 1172165).
* The Firefox click-to-activate plugin whitelist has been removed: only Flash doesn't need to be clicked to be activated (Firefox bug 1263630).
Changes for add-on and Mozilla developers
-----------------------------------------

### Interfaces

* The CSS tokenizer is now available in JavaScript for add-ons (Firefox 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. (Firefox bug 1090880)

### XUL

*No change.*

### JavaScript code modules

*No change.*

### XPCOM

*No change.*

### Other

*No change.*

Older versions
--------------

* Firefox 46 for developers
* Firefox 45 for developers
* Firefox 44 for developers
* Firefox 43 for developers
* Firefox 42 for developers
* Firefox 41 for developers
* Firefox 40 for developers
* Firefox 39 for developers
* Firefox 38 for developers
* Firefox 37 for developers
* Firefox 36 for developers
* 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