Firefox 56 for developers
=========================

Firefox 56 was released on September 28, 2017. This article lists key changes that are useful for web developers.

Changes for Web developers
--------------------------

### Developer Tools

* Display Negative Line Numbers in CSS Grid Inspector (Firefox bug 1369942).
* The new CSS Grid Layout Panel is now available, allowing much better CSS Grid debugging facilities (Firefox bug 1181227). See Powerful New Additions to the CSS Grid Inspector in Firefox Nightly for more details.
### HTML

* Implemented the `labels` property for labelable form controls, for example `HTMLInputElement.labels` (Firefox bug 556743).
* Implemented `<link rel="preload">`; see Preloading content with rel="preload" for more details (Firefox bug 1222633). Note that currently Firefox only supports preloading of cacheable resources.
### CSS

* Implemented the proprietary Mozilla-specific `<color>` values `-moz-win-accentcolor` and `-moz-win-accentcolortext` (see Firefox bug 1344910), and the proprietary media query `-moz-windows-accent-color-in-titlebar` (see Firefox bug 1379938).
### SVG

*No changes.*

### JavaScript

* The Intl API has been enabled on Firefox for Android (Firefox bug 1344625).
### APIs

#### New APIs

*No changes.*

#### DOM

* On Mac, `Document.hidden` is now true when the window is behind another non-translucent application Firefox bug 1236512.
* The `Gamepad.displayId` property has been implemented (Firefox bug 1375816).
* The `PerformanceTiming.secureConnectionStart` property has been implemented (Firefox bug 772589).
* Firefox used to accept `iso-2022-jp-2` sequences silently when an `iso-2022-jp` `TextDecoder()` was instantiated, however this has now been removed to simplify the API, as no other browsers support it and no pages seem to use it. (Firefox bug 715833).
* The 4ms clamping behavior of `setTimeout()` and `setInterval()` has been updated to be more in line with other browsers, as described in Timeouts throttled to >=4ms (Firefox bug 1378586).
* The Page Visibility API's `onvisibilitychange` handler has been added (Firefox bug 1333912).
* The `Window.showModalDialog()` method has been removed (Firefox bug 981796).
* The implementation of the `HTMLFormElement.action`, `HTMLInputElement.formAction`, and `HTMLButtonElement.formAction` properties has been updated so that they return the correct form submission URL, as per spec (Firefox bug 1366361).

#### DOM events

* `onwheel` is now available on `HTMLElement` — it wasn't before (Firefox bug 1370550).

#### Media and WebRTC

* Firefox now supports the `RTCPeerConnection` properties which let you examine the current and pending configurations of the local and remote ends of the connection, to help manage changes in configuration: `currentLocalDescription`, `pendingLocalDescription`, `currentRemoteDescription`, and `pendingRemoteDescription`.
* Hardware encoding of media is now enabled by default on Android; it was available but disabled by default in Firefox 55 (Firefox bug 1386974). This supports higher-efficiency encoding of VP8 media on devices that provide support for it. This saves battery life and processor power, generally improving the performance of the user's device.

#### Canvas and WebGL

* The `CanvasRenderingContext2D.drawImage()` method has been updated so that smoothing occurs when downscaling even if `imageSmoothingEnabled` is `false`. This is not mandatory as per spec, but follows Chrome's behavior. See Firefox bug 1360415.
* An `SVGImageElement` can now be used as the image source in a `drawImage()` call (Firefox bug 1382027).
### Security

*No changes.*

### Plugins

* Firefox for Android has removed all support for plugins (bug 1381916).
### Other

* Gecko now encodes URLs internally as punycode, to avoid URL encoding problems (see Firefox bug 945240, also see discussion in Firefox bug 942074).
* Firefox on Windows and macOS can now be made to run in headless mode using the `-headless` flag (see Firefox bug 1355150 and Firefox bug 1355147).
Removals from the web platform
------------------------------

### HTML

* The `<isindex>` element has been removed from the HTML parser, and from form submission (Firefox bug 1266495).
* The `<applet>` element has been removed (Firefox bug 1279218).
### APIs

*No changes.*

### SVG

*No changes.*

Changes for add-on and Mozilla developers
-----------------------------------------

### WebExtensions

* browsingData.RemovalOptions gets "hostnames" option for cookies
* browsingData.settings() and browsingData.removeCookies() are now supported on Firefox for Android
* browserSettings.cacheEnabled
* browser\_style usage is changed
* chrome\_settings\_overrides.search\_provider.is\_default
* contextMenus renamed to menus
* cookies.set() and cookies.remove() now work in private browsing mode
* devtools.panels.elements.onSelectionChanged
* downloads.open() can now only be called from a user action
* FindProxyForURL "DIRECT" return type no longer takes an argument
* history.onVisited now includes the page title if it is known.
* management.get() and management.getAll()
* menus now supports the "tools\_menu" context
* menus.OnClickData now has "linkText"
* menus.create() now has an "icons" option
* notifications.onShown
* pageAction.show() and pageAction.hide() are now supported on Firefox for Android
* permissions now supports "unlimitedStorage"
* privacy.services now includes passwordSavingEnabled
* privacy.websites.referrersEnabled
* protocol\_handlers now supports "gopher"
* proxy.registerProxyScript() is renamed to proxy.register()
* proxy.unregister()
* runtime.onInstalled gets `temporary` flag
* tabs.print(), tabs.PageSettings, tabs.printPreview(), tabs.saveAsPDF()
* tabs.Tab.lastAccessed
* theme.reset()
* windows.create() and windows.update() now support prefacing window title
Older versions
--------------

* Firefox 55 for developers
* Firefox 54 for developers
* Firefox 53 for developers
* Firefox 52 for developers
* Firefox 51 for developers
* Firefox 50 for developers
* Firefox 49 for developers
* Firefox 48 for developers
* Firefox 47 for developers
* 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