Table of contents
- 1. Changes for Web developers
- 2. Changes for Mozilla and add-on developers
Firefox 10 shipped on January 31, 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.
This documentation is not yet complete. Want to help document Firefox 10? See the list of bugs that need to be written about and pitch in!
Changes for Web developers
- The new HTML5
<bdi>element, bi-directional isolation, allowing isolation of parts of text with a different directionality has been implemented. This is especially useful when displaying text with an unknown directionality, coming from a database for example, in the middle of text with a known, and potentially, different one.
- You may now specify a fragment of "top" for the
hrefattribute to create a link to the top of the page. This used to work, then went away for a while, and now it's back, for compatibility with the HTML5 specification. For example:
<a href="#top">Return to top of page</a>.
- The attribute
document.xmlVersion(which was only gettable and not settable) has been removed as it has been deprecated in the DOM4 specification. The article for
document.xmlVersionnow suggests a way to detect whether the document is HTML or XML without using that property.
- The attribute
document.xmlStandalonehas been removed as it has been deprecated in the DOM4 specification.
- The attribute
document.xmlEncodinghas been removed as it has been deprecated in the DOM4 specification.
- The attribute
text.isElementContentWhiteSpacehas been removed as it has been deprecated in the DOM4 specification.
- The method
text.replaceWholeTexthas been removed as it has been deprecated in the DOM4 specification.
- The method
node.isSameNodehas been removed as it has been deprecated in the DOM4 specification. Instead of
node1.isSameNode(node2), you can simply use the
===operator, like this:
Page Visibility API
- The Page Visibility API has been implemented (prefixed):
document.mozVisibilityStateare available and the event
mozvisibilitychangedis sent when the state is modified.
Full Screen API
- Experimental support for
window.navigator.mozBatteryhas been added (can be enabled setting the preference
trueand will be enabled by default starting with Firefox 11).
Great progress has been made to update IndexedDB to the latest draft specification. This effort will continue in Firefox 11.
IDBObjectStore.count()methods have been added.
IDBCursor.advance()method has been added.
- When encountering an unknown optional parameter in
IDBDatabase.createObjectStore(), Gecko will not fire an exception anymore, but simply ignore it.
IDBTransaction.abort()is called, all pending
- The methods
IDBCursor.delete()now set the
resultattribute of the returned
- The method
IDBDatabase.setVersion()has been removed as it was removed from the latest spec. The version of the database is given through the
IDBFactory.open()method which has been updated and the
onupgradeneededcallback allows the schema of the database to be upgraded. The version itself has been changed from a
unsigned long long. The
IDBVersionChangeRequestinterface has been removed and replaced by the new
- The method
IDBFactory.deleteDatabase()method has been added.
- When the proper MIME type is passed,
DOMParsernow creates a
SVGDocumentwhen given a string with SVG.
- In the past, when
element.setAttribute()parsed integers, it would report an error if the integer included any non-numeric characters (for example "42foo"). Now it correctly truncates this as the number 42, in accordance with the specification.
- The ESC key no longer incorrectly results in the
window.oninputhandler incorrectly getting called.
NameListinterface is no longer implemented; it previously had an implementation with no way to actually get access to one.
document.createProcessingInstruction()method now works on HTML documents as well as XML documents.
ProcessingInstructionnodes are still only supported on XML documents, but since nodes can be moved among documents, it's helpful to be able to create them on HTML documents as well.
moz-json" introduced in Firefox 9 has been updated to the latest draft of the specification and has been unprefixed. See bug 707142#c13
- CSS 3D Transforms are now supported. This includes support for the
backface-visibilityproperties, as well as for 3D transform functions in the
transform-functionproperties. See Using CSS transforms for details.
- Two new values for the CSS property
unicode-bidihave been added:
-moz-isolationvalue isolates, from a directionality point of view, the element from its environment, letting it have a different directionality. An element with
unicode-bidi:-moz-isolationbehaves like a
-moz-plaintextindicates the browser to use the Unicode browser heuristic to determine directionality and not the CSS
- The CSS
repeating-linear-gradientproperties have been updated to support the new
tosyntax and the magic corner algorithm. This allows to give a precise color on the corner of a gradient-filled box.
text-overflowproperty's handling of cases in which the box overflows on both sides while the
text-overflowproperty is set to overflow on only one has been corrected.
- Handling of the
positionproperty on elements inside positioned
<table>elements has been fixed. This change will affect layout of pages; however, we now comply with the CSS specification and with other browsers, so this should be easy to fix.
- Margin collapsing around
<table>elements has been fixed to match the CSS specification. Previously, table elements' margins would not be collapsed along with other adjacent elements, leading to incorrect layout. This change will affect layout of pages; however, we now comply with the CSS specification and with other browsers, so this should be easy to fix.
<mask>element has been updated to support both sRGB and linearRGB, and now defaults to sRGB, in compliance with the latest revision of the SVG 1.1 specification.
- The HTTP
Accept-Charsetheader is no longer sent in HTTP requests. In its absence, servers should respond by sending UTF-8.
Changes for Mozilla and add-on developers
For an overview of likely issues that may arise when updating your add-ons to support Firefox 10, see Updating add-ons for Firefox 10.
PRBooldata type has been retired! Anywhere in the documentation that refers to it now uses the standard C++
booltype instead. Documentation will be updated in the future, but for now, just keep this in mind.
- Support for
<em:strictCompatibility>has been added to the install manifest. It allows add-ons authors to opt in to checking the maximum version of their extension. If set to
truethe add-on will be disabled if the application version is greater than
<em:maxVersion>. Firefox 10 defaults to add-ons being compatible, regardless of their specified maximum version. This flag overrides that preference. You should set this if your add-on does things that are likely to be broken by Firefox updates, but not if your add-on has a binary component, since such add-ons always get strictly checked (remember that binary components must always be recompiled for each major Firefox release).
- If you wish to revert to the old behavior -- that is, to strict compatibility checking for all add-ons, regardless of the value of the
strictCompatibilityflag in their manifests, you can set the
- Several new properties and methods have been added to
Components.utils, granting access to assorted debugging-related information.
nsIEditorSpellCheckinterfaces have been updated to allow restartless add-ons to add dictionaries to the spell checker. XXX need to update docs on how to actually do this.
nsIBrowserHistory.lastPageVisitedattribute has been removed.
nsIDocumentViewerinterface has been merged into
nsIURIFixupinterface has a new flag,
FIXUP_FLAG_USE_UTF8, which lets you tell it to use UTF-8 instead of the platform character set, when doing conversions.
Build system changes
--disable-rdfbuild option, which actually made it impossible to successfully build, has been removed. Work is ongoing on being able to actually remove RDF support entirely, but at present XUL still requires it to function. See bug 559505 for progress on removing the last vestiges of RDF being required.
--disable-smilbuild option has been removed.