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



  • 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 (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) (bug 763689).


  • 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 (bug 766937).
  • The second parameter of Blob(), when set to null or undefined, is now being handled as an empty dictionary (bug 7691119).



No change.


No change.


  • The lspace and rspace attributes of <mo> now correctly default to thickmathspace.


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. (bug 761613)

New interfaces

Removed interfaces

The following interfaces have been removed.