Firefox 18 was released on January 8, 2013. 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



  • The min-width and min-height now uses the auto keyword as initial value (This has an effect only on flex items as it resolves to 0, the previous initial value, for other items). (bug 763689)
  • The cascade has been updated: now author !important rules override CSS animations. (bug 783714)
  • The background shorthand property now recognizes CSS3 background-size property specified inside. (bug 570326)
  • Initial support for the CSS Flexbox Module has been landed. It is disabled by default but can be enabled by setting layout.css.flexbox.enabled to true. (bug 666041)



  • Harmony's (ECMAScript 6) Direct Proxies have been landed (bug 703537). Warning: the implementation contains a couple of known bugs, missing features and misalignements with the current state of the spec. Do not rely on it for production code.
  • The ECMAScript 6 contains() method is now implemented on strings. This is unfortunately not compatible with Mootools 1.2, which expects different behavior from contains() on strings but does not ensure it. Newer versions of Mootools fix this issue; sites should upgrade their Mootools version to something newer than 1.2.






Developer tools

Changes for add-on and Mozilla developers

Interface changes

The 4th parameter (aOffset) of onDataAvailable() method changes to unsigned long long. (bug 784912)
setUploadStream() supports over 2GB content-length (bug 790617)
addEditorObserver() has been removed, use setEditorObserver() instead, removeEditorObserver() no longer takes a nsIEditorObserver parameter (bug 785091)
http-on-modify-request observers are no longer guaranteed to be called synchronously during
nsIChannel.asyncOpen(). For observers that need to be called during asyncOpen(), the new http-on-opening-request observer topic has been added. See (bug 800799)
The resolve method has been removed. Now, only the asyncResolve method can be used. See (bug 769764)

New interfaces

Removed interfaces

The following interfaces have been removed.

See also

Older versions

Document Tags and Contributors

 Last updated by: fscholz,