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
HTML
DOM
- The element.outerHTMLproperty is now supported on HTML elements.
- XMLHttpRequestsupports HTML parsing.
- Removed support for using the XMLHttpRequestresponseTypeandwithCredentialsattributes when performing synchronous requests. Attempting to do so throws anNS_ERROR_DOM_INVALID_ACCESS_ERRexception. This change has been proposed to the W3C for standardization.
- The new window.navigator.mozVibrate()method lets you vibrate the device where supported; this is implemented asmozVibrate()on Gecko.
- window.navigator.mozAppsreturns an- Appsobject you can use to install and manage open web applications.
- MozBeforePaintevents are no longer fired.- mozRequestAnimationFrame()consumers who used these should pass a callback function instead.
- Support for canceling animation frame requests has been added; window.mozRequestAnimationFrame()now returns a request ID value, which you can pass towindow.mozCancelAnimationFrame()to cancel the request.
- Several Eventconstructors (Event, HTML events,UIEvent, andMouseEvent) introduced in DOM4 specifications are now supported.
- The Battery APIis now enabled by default.
- Support for the defaultMuted,loopandmutedproperties onHTMLMediaElementhas been added.
- Calling document.mozCancelFullScreen()now restores the previously full-screen element if some other element was in full-screen mode when the current element'selement.mozRequestFullScreen()method was called.
- The window.mozRequestAnimationFrame()method no longer supports a no-argument form. This form was not used much and is unlikely to become part of the standard.
- SVG-as-an-image can now be drawn into a canvas without tainting the canvas.
- The non-standard countryCodeproperty of theGeoPositionAddressinterface has been removed; seensIDOMGeoPositionAddress.
- Server-sent events now support CORS.
- In the past, when the user followed a link, the values set on the window.navigatorobject were retained by the new page. Now a newnavigatorobject is created for the new page. This makes Firefox behave like all other browsers.
CSS
- the text-size-adjustproperty is now supported
- CSS3 Conditional Rules are now better supported: nested statements can now be added to @media, @-moz-document. (See CSS Syntax and CSS at-rules).
JavaScript
No change.
SVG
- The SVGSVGElementDOM interface now support thegetElementByIdmethod.
WebSocket
- WebSocket API now supports binary messages (see 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 bug 666349 and 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).
IndexedDB
- 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", sincetrans2should run aftertrans1.
- Previous to Firefox 11, object store autoIncrementcounters 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 indexwith an emptykeyPath.
- It is now possible to create a multi-entry index (see IDBObjectStore.createIndexparameters.)
- The abortevent now bubbles; in addition, anIDBDatabase.onaborthander has been added.
- IndexedDB can now be used to store files/blobs.
- IndexedDB now supports complex key paths, e.g. foo.barto access propertybarof propertyfoo.
- IndexedDB can now accept an array as a keyPathwhen creating anobject storeor anindex(bug 694138.)
Network
- The change in Firefox 8 that removed support for double quote characters as delimiters for RFC 2231 and RFC 5987 has been reverted, as this broke some sites, including Outlook Web Access.
- The user agent string in HTTP headers now includes an identifier that lets the server know if the Firefox accessing it is a phone or a tablet.
Developer tools
- The Page Inspector now offers a 3D view if your system supports WebGL.
- The new Style Editor provides a free-form way to edit and compose CSS style sheets in real-time.
- The View Source feature now uses the new HTML5 parser instead of the old HTML parser.
Changes for Mozilla and add-on developers
JavaScript code modules
NetUtil.jsm
- readInputStreamToString()has a new, optional, parameter to configure the character set interpretation while reading the input stream.
New JavaScript code modules
- source-editor.jsm
- 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 mozIAsyncHistoryinterface has a new methodmozIAsyncHistory.isURIVisited()to check if a URI has been visited.
- A new interface mozIVisitStatusCallbackhas been added to provide callback handling functionality formozIAsyncHistory.isURIVisited().
- The nsIMacDockSupportinterface now supports adding a text badge to the application's icon in the Dock using its newbadgeTextattribute.
- In the nsINavHistoryResultObserverinterface, you now need to implementnsINavHistoryResultObserver.containerStateChanged()instead of the obsoletecontainerOpened()andcontainerClosed()methods.
Removed interfaces
The following interfaces were implementation details that are no longer needed:
- nsICharsetResolver
- nsIDOMNSElement, see bug707576, use- nsIDOMElementinstead.
Theme-related changes
- The omni.jarfile is now calledomni.ja.
Preference changes
- ui.tooltipDelay
- Specifies the delay, in milliseconds, between the mouse cursor beginning to hover and the display of a tooltip.
Build system changes
- The --enable-tracejitbuild 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 maxVersionof 4.0.
See also
Document Tags and Contributors
    
    Tags: 
    
  
                    
                       Contributors to this page: 
        Sebastianz, 
        chrisdavidmills, 
        fscholz, 
        ethertank, 
        Sheppy, 
        zhangpin04, 
        yyss, 
        JasonCheng, 
        pretzer, 
        teoli, 
        Marcoos, 
        Jeremie, 
        myakura, 
        trevorh, 
        Hsivonen, 
        Bzbarsky, 
        Midnightaz
                    
                    
                       Last updated by:
                      Sebastianz,