Firefox 22 for developers
=========================

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

### HTML

* The HTML5 `<data>` element has been implemented (Firefox bug 839371).
* The HTML5 `<time>` element has been implemented (Firefox bug 629801).
* The `range` state of the `<input>` element (`<input type="range">`) has been implemented, behind the preference `dom.experimental_forms_range`, only enabled by default on Nightly and Aurora channel (Firefox bug 841948).
* The support for the `<template>` element, part of the Web component specification has been implemented (Firefox bug 818976).
### JavaScript

* Asm.js optimizations are enabled, making it possible to compile C/C++ applications to a subset of JavaScript for better performance.
* ES2015 Arrow Function syntax has been implemented (Firefox bug 846406).
* The new Object.is function has been added (Firefox bug 839979).
* `arguments` in generator expressions is now inherited from enclosing lexical scope (Firefox bug 848051).
* The ES2015 Proxy `preventExtensions` trap have been implemented (Firefox bug 789897).
### DOM

* Support for the `multipart` property on `XMLHttpRequest` and `multipart/x-mixed-replace` responses in `XMLHttpRequest` has been removed. This was a Gecko-only feature that was never standardized. Server-Sent Events, Web Sockets or inspecting `responseText` from progress events can be used instead.
* Support for Web Notifications has been landed (Firefox bug 782211).
* The `FormData` `append` method now accepts a third optional `filename` parameter (Firefox bug 690659).
* `Node.isSupported` has been removed (Firefox bug 801562).
* `Node.setUserData` and `Node.getUserData` has been removed for web content and are deprecated for chrome content (Firefox bug 842372).
* The `Element.attributes` property has been moved there from `Node` as required by the spec (Firefox bug 844134).
* The Mac OS X backend for **Ambient Light Events** has been implemented.
* Elements in the HTML namespace with local names `<bgsound>`, `<multicol>`, and `<image>` no longer implement the `HTMLSpanElement` interface. `<bgsound>` implements `HTMLUnknownElement` and `<image>` implements `HTMLElement`.
* The `NodeIterator.detach` method has been changed to do nothing (Firefox bug 823549).
* The `BlobEvent` interface has been implemented (Firefox bug 834165).
* The properties `HTMLMediaElement.crossorigin` and `HTMLInputElement.inputmode` has been removed to match the spec in `HTMLMediaElement.crossOrigin` and `HTMLInputElement.inputMode`, respectively (Firefox bug 847370 and Firefox bug 850346).
* WebRTC: the Media Stream API and Peer Connection API are now supported by default.
* Web Components: the `Document.register` method has been implemented (Firefox bug 783129).
* The `ProgressEvent.initProgressEvent()` constructor method has been removed. Use the standard constructor, `ProgressEvent()` to construct and initialize `ProgressEvent` (Firefox bug 843489).
* Manipulated data associated with a `cut`, `copy`, or `paste` event can now be accessed via the `ClipboardEvent.clipboardData` property (Firefox bug 407983).
* The `HTMLTimeElement` interface has been implemented (Firefox bug 629801).
* When a `Worker` constructor is passed an invalid URL, it now throws `DOMException` of type `SECURITY_ERR` (Firefox bug 587251).
### CSS

* Support for CSS Flexbox layout has been enabled by default (Firefox bug 841876).
* Following a spec change, the initial value for `min-width` and `min-height` has been changed back to `0`, even on flex items (Firefox bug 848539).
* Support for CSS Conditionals (`@supports` and `CSS.supports()`) has been enabled by default (Firefox bug 855455).
* Support for `background-clip` and `background-origin` properties in the `background` shorthand has been implemented (Firefox bug 570896).
Changes for add-on and Mozilla developers
-----------------------------------------

* The `properties` parameter has been removed from the `nsITreeView.getCellProperties()`, `nsITreeView.getColumnProperties()` and `nsITreeView.getRowProperties()` methods of `nsITreeView`. These methods should now return a string of space-separated property names (Firefox bug 407956).
* The `inIDOMUtils.getCSSPropertyNames()` method has been implemented and will return all supported CSS property names.
* See here for more changes.
### Firefox Developer Tools

* Font inspector shows which fonts on your computer are applied to the page.
* Visual paint feedback mode shows when and where a page is repainted.
* The dev tools may now be docked to the right side, not just the bottom of the browser.
* Some panes within the dev tools have switched from XUL to HTML. For example, the CSS rule viewer is now chrome://browser/content/devtools/cssruleview.xhtml, not `cssruleview.xul`. Instead of adding an overlay directly to extend features of these panes, you may add an overlay and script to the outer xul document, to add load listeners and change these HTML documents.
* The stack trace is now shown as a breadcrumb near the top, and the script listing is now at the left panel of the debugger.
See also
--------

* Firefox 22 Beta Release Notes
* Add-on Compatibility for Firefox 22
### Versions

* 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
* Firefox 4 for developers
* Firefox 3.6 for developers
* Firefox 3.5 for developers
* Firefox 3 for developers
* Firefox 2 for developers
* Firefox 1.5 for developers