Firefox 11 for developers

Firefox 11 shipped on March 13, 2012. This article provides information about the new features and key bugs fixed in this release, as well as links to more detailed documentation for both web developers and add-on developers.

Changes for Web developers


  • The attributes muted and loop on <audio> and <video> elements have been implemented.




No change.


  • The SVGSVGElement DOM interface now support the getElementById method.


  • WebSocket API now supports binary messages (see Firefox bug 676439).
  • Both the protocol and the API has been updated to the latest draft of the specification and the API has been unprefixed (see Firefox bug 666349 and Firefox bug 695635).
  • Previously, messages sent and received using WebSockets in Firefox were limited to 16 MB in size; they may now be up to 2 GB (although memory capacity limitations may prevent them from being that large, Firefox supports it).


  • The support for IDBFactory.cmp() has been added.
  • An IndexedDB key can also be of one of the following types: Date, Arrays and Float (and not only String and Integer).
  • From now on, transactions are started when the transaction is created, not when the first request is placed; for example consider this:
    var trans1 = db.transaction("foo", READ_WRITE);
    var trans2 = db.transaction("foo", READ_WRITE);
    trans2.put("2", "key");
    trans1.put("1", "key");
    After the code is executed the object store should contain the value "2", since trans2 should run after trans1.
  • Previous to Firefox 11, object store autoIncrement counters were shared across all object stores for a given database, whereas per spec each object store should have a separate counter. This is now fixed.
  • It is now possible to create an index with an empty keyPath.
  • It is now possible to create a multi-entry index (see IDBObjectStore.createIndex parameters.)
  • The abort event now bubbles; in addition, an onabort handler has been added.
  • IndexedDB can now be used to store files/blobs.
  • IndexedDB now supports complex key paths, e.g. to access property bar of property foo.
  • IndexedDB can now accept an array as a keyPath when creating an object store or an index (Firefox bug 694138.)


Developer tools

Changes for Mozilla and add-on developers

JavaScript code modules


  • readInputStreamToString() has a new, optional, parameter to configure the character set interpretation while reading the input stream.

New JavaScript code modules


Provides a convenient, easy-to-use source code editor that you can use in your add-ons. This is the same editor used by Scratchpad and other developer tools integrated into Firefox.

Interface changes

  • The mozIAsyncHistory interface has a new method mozIAsyncHistory.isURIVisited() to check if a URI has been visited.
  • A new interface mozIVisitStatusCallback has been added to provide callback handling functionality for mozIAsyncHistory.isURIVisited().
  • The nsIMacDockSupport interface now supports adding a text badge to the application's icon in the Dock using its new badgeText attribute.
  • In the nsINavHistoryResultObserver interface, you now need to implement nsINavHistoryResultObserver.containerStateChanged() instead of the obsolete containerOpened() and containerClosed() methods.

Removed interfaces

The following interfaces were implementation details that are no longer needed:

  • nsICharsetResolver
  • nsIDOMNSElement, see bug707576, use nsIDOMElement instead.
  • The omni.jar file is now called omni.ja.

Preference changes


Specifies the delay, in milliseconds, between the mouse cursor beginning to hover and the display of a tooltip.

Build system changes

  • The --enable-tracejit build option has been removed.

Other changes

  • Add-ons that have not been updated in a long time are no longer assumed to be compatible by default; this is currently add-ons that indicate a maxVersion of 4.0.

See also