Firefox 3.1 introduces a number of new features, as well as additional and improved support for a wide variety of web standards. This article offers an extensive list, with links to articles covering the major improvements.
New developer features in Firefox 3
For web site and application developers
HTML 5 support
- Using audio and video in Firefox
- Firefox 3.1 adds support for the HTML 5
- Offline resources in Firefox
- Firefox 3.1 now fully supports the HTML 5 offline resource specification.
- Drag and drop
- The HTML 5 drag and drop API allows support for dragging and dropping items within and between web sites. This also provides a simpler API for use by extensions and Mozilla-based applications.
Newly-supported CSS features
- Downloadable fonts support
- The new
@font-face@rule lets web pages provide downloadable fonts, so that sites can be rendered exactly as the page author expects.
- CSS media queries
- Firefox 3.1 now supports CSS media queries, which enhance support for media-dependent style sheets.
::afterupdated to CSS 2.1
::afterpseudo-elements have been updated to full CSS 2.1 support, adding support for the
list-style-*, and some
-moz-opacityMozilla extension to CSS has been removed in favor of the standard
text-shadowproperty, which allows web content to specify shadow effects to apply to text and text decorations, is now supported.
- This newly-supported property lets content specify whether or not lines may be broken within words in order to prevent overflow when an otherwise unbreakable string is too long to fit on one line.
- Firefox 3.1 adds support for these Mozilla extensions to CSS.
- This new color value represents the user's system's default hyperlink color.
- The new
- These new CSS properties were added to facilitate theming.
- New values for
-moz-mac-unified-toolbarvalues have been added to
- Using CSS transforms
- Firefox 3.1 supports CSS transforms. See
- These selectors are all newly-supported in Firefox 3.1.
New DOM features
- Using DOM workers
- Firefox 3.1 supports DOM workers to allow easy multi-threading support in web applications.
- Using geolocation
- Firefox 3.1 supports the Geolocation API, which allows web applications to obtain information about the user's current location if a provider for that information is installed and enabled.
- Using JSON in Firefox
- Support for JSON is now integrated into the DOM.
- Locating DOM elements using selectors
- The selectors API allows querying a document to locate the elements that match a given selection rule.
NodeIteratorobject provides support for iterating over the list of the nodes in a DOM subtree.
- The MozAfterPaint event
- This new DOM event is sent after painting updates in windows.
- The MozMousePixelScroll event
- This new DOM event allows detection of pixel-based mouse scroll wheel events instead of line-based scroll events.
- This new method returns the prototype of a specified object.
- New trim methods on the String object
Stringobject now has
Miscellaneous new features
- ICC color correction in Firefox
- Firefox 3.1 now supports ICC color correction for tagged images.
deferattribute is now supported on
- This attribute indicates to the browser that it may choose to continue to parse and render the page without waiting for the script to finish executing.
- Controlling DNS prefetching
- Firefox 3.1 provides DNS prefetching, whereby it performs domain name resolution ahead of time for links included in the current page, in order to save time when links are actually clicked. This article describes how you can tune your web site to disable prefetching, or to adjust how prefetching operates.
New Canvas features
- HTML 5 text API for
- Canvas elements now support the HTML 5 text API.
- Shadow effects in a
- Canvas shadow effects are now supported.
- Added the
moz-opaqueDOM attribute, which lets the canvas know whether or not translucency will be a factor. If the canvas knows there's no translucency, painting performance can be optimized.
New SVG features
- Applying SVG effects to HTML content
- You can now apply SVG effects to HTML and XHTML content; this article describes how.
chunit can now be used anywhere that accepts a unit of length; "1 ch" is the width of the "0" character.
white-spaceproperty now accepts the
- The Text node's
replaceWholeText()method have been implemented.
- The property
element.childrenhas been added. It returns a collection of child elements of the given element.
- The Element Traversal API is now supported by the DOM Element object.
- HTML nodes may now be cloned using
- Dispatched DOM events can now be re-dispatched. This makes Firefox 3.1 pass Acid 3 test 30.
- Improvements have been made to DOM 2 Range handling.
- In non-chrome scope, caught objects in exceptions are now the actual thrown object instead of an XPConnect wrapper containing the thrown object.
- SVG ID references are now live.
- SVG filters now work for
GetSVGDocument()method has been added to
iframeelements for compatibility.
For XUL and extension developers
If you're an extension developer, you should start by reading Updating extensions for Firefox 3.1, which offers a helpful overview of what changes may affect your extension.
New components and functionality
- Cross-site access controls for HTTP
- In Firefox 3.1, it's now possible for HTTP requests, including those made by
XMLHttpRequest, to work across domains if the server supports it.
- Progress events for
- Progress events are now offered to enable extensions to monitor the progress of requests.
- Supporting private browsing mode
- Firefox 3.1 offers Private Browsing mode, which doesn't record the user's activities. Extensions may support private browsing following the guidelines offered by this article.
- Security changes in Firefox 3.1
- This article covers security-related changes in Firefox 3.1.
- Theme changes in Firefox 3.1
- This article covers theme-related changes in Firefox 3.1.
Notable changes and improvements
- The XUL
textboxwidget now offers a
searchtype, for use as search fields.
- In order to support dragging and dropping tabs between windows, the
browserwidget now has a
- Added the
levelattribute to the
panelelement; this specifies whether panels appear on top of other applications, or just on top of the window the panel is contained within.
- XUL elements now support the
keysets now include a
- In addition,
keysets can now be removed using the node's
initialize()method removed; consumers should use the
createStatement()method instead to get a new statement object.
- The Storage API now offers support for asynchronous requests.
nsICookie2interface now exposes the time at which cookies were created in its new
- Added a flag to
URI_IS_LOCAL_RESOURCE) that is checked during chrome registration to make sure a protocol is allowed to be registered.
- Firefox now looks for plugins in
/usr/lib/mozilla/pluginson Linux, as well as the previously supported locations.