Firefox 6, based on Gecko 6.0, was released on August 16, 2011. This article provides links to information about the changes that affect developers in this release.

Changes for web developers

HTML

The HTML5 <progress> element, which lets you create a progress bar, is now supported.

The parsing of the HTML5 <track> element, which specifies text tracks for media elements, is now supported. This element should appear in the DOM now, though its behavior is still not implemented.

The <iframe> element is now clipped correctly by its container when the container's corners have been rounded using the border-radius property.

<form> elements' text <input> fields no longer support the XUL maxwidth property; this was never intentional, and is in violation of the HTML specification. You should instead use the size attribute to set the maximum width of input fields.

The <canvas>CanvasRenderingContext2d properties fillStyle and strokeStyle used to ignore garbage included after a valid color definition; now this is correctly treated as an error. For example, "red blue" as a color used to be treated as "red", when it should have been ignored.

The width and height of <canvas> elements can now properly be set to 0px; previously, these were getting arbitrarily set to 300px when you tried to do that.

When a <textarea> element receives focus, the text insertion point is now placed, by default, at the beginning of the text rather than at the end. This makes Firefox's behavior consistent with other browsers.

Other changes

The azimuth CSS property is no longer supported, as we have removed what little code we had for the aural media group. It was never significantly implemented, so it made more sense to remove the crufty implementation for the time being rather than try to patch it up.

In the past, the :hover pseudoclass was not applied to class selectors when in quirks mode; for example, .someclass:hover did not work. This quirk has been removed.

The :indeterminate pseudo-class can be applied to <progress> elements. This is non-standard, but we hope it will be adopted by other browsers, because it will be useful.

The -moz-win-exclude-glass value has been added to the -moz-appearance CSS property in order to exclude opaque regions in Aero Glass glaze effects on Windows systems.

bug 658949 changed how the hash (#) symbol is treated in data URIs which may break CSS stylesheets which contain such a symbol if it is not escaped.

The window.history API now uses the structured clone algorithm to serialize the objects you pass to the pushState() and replaceState() methods; this lets you use more complex objects (including those that contain cyclic graphs of references).

DOM views, which we never documented, have been removed. This was a bit of implementation detail that was unnecessarily complicating things, so we got rid of it. If you notice this change, you're probably doing something wrong.

The EventTarget function addEventListener()'s useCapture parameter is now optional, as it is in WebKit (and as per the latest version of the specification).

The mozResponseArrayBuffer property of the XMLHttpRequest object has been replaced with the responseType and response properties.

For security reasons, data: and javascript: URIs no longer inherit the security context of the current page when the user enters them in the location bar; instead, a new, empty, security context is created. This means that script loaded by entering javascript: URIs in the location bar no longer has access to DOM methods and the like, for example. These URIs continue to work as before when used by script, however.

JavaScript

In the past, it was possible to use the new operator on several built-in functions (eval, parseInt, Date.parse...) that should not have allowed it, according to the specification. This behavior is no longer supported. Using the new operator in this way was never officially supported and was not widely done, so it's unlikely that this change affects you.

ECMAScript 2015 WeakMaps have been added as a prototype implementation.

Accessibility (ARIA)

Networking

WebSockets was updated to protocol version 07 for Firefox 6. In addition, the global WebSocket object has been renamed to MozWebSocket to prevent it from incorrectly being used to detect the availability of unprefixed WebSockets.

Parsing of the Content-Disposition header has been fixed to properly interpret backslash-escaped ASCII characters as just that character itself. Previously it was incorrectly replacing that character with an underscore ("_").

The value of the path field on Set-Cookie headers is now interpreted correctly when quotes are used; previously, they were being treated as part of the path string instead of as delimiters. This change may affect compatibility with some web sites, so authors should check their code.

Other changes

Support for microsummaries has been removed; these were never widely used, were not very discoverable, and continuing to support them was making improvements to the Places (bookmark and history) architecture difficult.

Changes for Mozilla and add-on developers

Note: Firefox 6 requires that binary components be recompiled, as do all major releases of Firefox. See Binary Interfaces for details.

JavaScript code modules

FileUtils.jsm

The openSafeFileOutputStream() method now opens files with the DEFER_OPENbehavior flag instead of attempting to open them immediately.

XPCOMUtils.jsm

The new importRelative() method lets you load one JavaScript code module from a path relative to the path of another JavaScript code module. This makes it easier to build modules that depend on each other.

XPCOM

Using the DOM from chrome

Although you've always been able to use the DOM File API from chrome code, the File constructor now supports specifying a local pathname string when used from chrome. In addition, you can also specify the file to access using the DOM File API using an nsIFile object.

Interface changes

nsINavHistoryQueryOptions now supports sorting in frecency order using the new SORT_BY_FRECENCY_ASCENDING and SORT_BY_FRECENCY_DESCENDING constants.

nsIFilePicker has a new nsIFilePicker.addToRecentDocs attribute, which lets you indicate that the selected file should be added to the user's "recent documents" list if there is one. This attribute has no effect when in private browsing mode.