Firefox 16 for developers
=========================

Firefox 16 shipped on October 9, 2012. This article lists key changes that are useful for not only Web developers to know about, but also Firefox and Gecko developers as well as add-on developers.

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

### HTML

* The `<meter>` element is now supported.
* Support for the HTML Microdata API has been added. (bug 591467)
* `<canvas>` now supports the CSS `currentcolor` in all case. (Firefox bug 629882)
* `<input>` now allows filtering based on arbitrary mimetypes in `accept` (Firefox bug 565274).
* Two new attributes, `width` and `height` have been added to the `<input>` element (bug 683855).
### CSS

* Support for the standard, unprefixed version of CSS Animations has been landed (bug 762302).
* Support for reverse animation direction (keywords `reverse` and `alternate-reverse` on the `animation-direction` property) has been added. (bug 655920).
* You can now animate the CSS `height` and `width` properties.
* The `animation-duration` and `transition-duration` CSS properties now reject negative values (and do not handle them as `0s` anymore) (bug 773102).
* Support for the standard, unprefixed version of CSS Transforms has been landed (bug 745523). `<length>` cannot be used for translation values in `matrix()` and `matrix3d()` anymore (Firefox bug 719054).
* Support for the standard, unprefixed version of CSS Gradients has been landed. Note that the syntax has changed significantly since the prefixed version, so you should read up on this (bug 752187).
* The `-moz-box-sizing` implementation has been updated to apply to table cells too (bug 338554).
* Support for the standard, unprefixed version of `calc()` has been landed (bug 771678).
* The `<resolution>` CSS data type has been extended to support the `dppx` (bug 741644).
* On screen, for media queries, `dppx`, `dpi`, and `dpcm` are now representing values based on CSS pixels and no more with the physical units (bug 771390).
* Three new pseudo-classes `:-moz-meter-optimum`, `:-moz-meter-sub-optimum`, and `:-moz-meter-sub-sub-optimum` have been added for accessing/styling a `<meter>` element in a particular state (bug 660238).
* The `appearance` property gains two new values: `meterbar` and `meterchunk`. They represent components inside the `<meter>` element (bug 659999).
* The `min-width` and `min-height` now supports the `auto` keyword for flex items (and resolves to `0` for other items) (Firefox bug 763689).
### API/DOM

* Two new properties `width` and `height` have been added to the `HTMLInputElement` interface (bug 683855).
* IndexedDB properties and methods have been unprefixed. (bug 726378)
* The Battery API is now unprefixed.
* The Vibration API has been unprefixed.
* The non-standard `Keyboard` interface, prefixed as `mozKeyboard`, now has the `Keyboard.setSelectedOption()` and `Keyboard.setValue()` methods, as well as the `Keyboard.onfocuschange`. *This interface, only available for Firefox OS, has been removed in Firefox 31.*
* The `java` and `Packages` global objects have been removed. See LiveConnect.
* The `CSSRule.type` associated with `CSSNamespaceRule` has been updated from `UNKNOWN_RULE` (`0`) to `NAMESPACE_RULE` (`10`) (bug 765590).
* WebSMS API: `SmsRequest` has been superseded by the more general `DOMRequest`.
* The non-standard `Element.scrollTopMax` and `Element.scrollLeftMax` read-only properties have been added (Firefox bug 766937).
* The second parameter of `Blob()`, when set to `null` or `undefined`, is now being handled as an empty dictionary (Firefox bug 7691119).
### JavaScript

* `Number` objects now offer `isFinite()`, `toInteger()`, and `isInteger()` methods. (bug 761480, bug 761495)
* The Harmony spread operator is now supported in `Array` initializers (bug 574130). Note it is not yet supported in calls (bug 762363).
* The experimental `TypedArray.prototype.move()` method has been added (available in Aurora and Nightly channels only) (Firefox bug 730873).
### WebGL

*No change.*

### SVG

*No change.*

### MathML

* The `lspace` and `rspace` attributes of `<mo>` now correctly default to `thickmathspace`.
### Network

### Developer tools

* There's now a handy developer toolbar you can access by going to Tools > Web Developer > Developer Toolbar, or by pressing Ctrl-Shift-V (Cmd-Opt-V on Mac OS X). This toolbar offers a command line interface as well as buttons for quickly accessing useful tools. The graphical command line interface *GCLI* is easy to expand and additional commands are expected in the future. Type "help" to get a list of supported commands.
* The Web Console now displays an error count so you can quickly see how much work you have ahead of you.
* The Scratchpad now offers a list of recently opened files.
Changes for Open Web App developers
-----------------------------------

* Initial Open Web App support has been implemented in the desktop versions of Firefox (that is, on Windows, Mac OS X, and Linux).
Changes for add-on and Mozilla developers
-----------------------------------------

### Interface changes

`nsIPrivateDOMEvent` has been merged into `nsIDOMEvent`. (Firefox bug 761613)

#### New interfaces

#### Removed interfaces

The following interfaces have been removed.