Updating extensions for Firefox 3.6
This article provides helpful information to extension developers trying to update their extensions to work properly in Firefox 3.6.
User interface changes
Right-clicking on elements (including links and images) no longer offers a "Properties" menu item. The properties dialog box was not useful for most users and has been removed. If your extension interacts with that menu item in any way, you'll need to revise your code to add it yourself, or contribute your own context menu entry directly.
Add-on package changes
In order to allow add-ons' icons to be displayed even when they're disabled, Gecko 1.9.2 added support for automatically detecting and using an icon named icon.png
, located in the add-on's root directory. This is used if the add-on is disabled, or if the manifest is missing an iconURL
entry.
HTML 5 compliance improvements
The DOM Level 2 views to HTML and XHTML documents are now unified per HTML 5.
- The
localName
DOM property now returns the name of HTML element nodes in lower case. Previously, in HTML documents, it returned it in upper case. (DOM Level 1tagName
continues to return in upper case in HTML documents.) - The
namespaceURI
DOM property now returns"http://www.w3.org/1999/xhtml"
on HTML element nodes. Previously, in HTML documents, it returnednull
. -
document.createElementNS(null, "FOO")
no longer creates an HTML element node in HTML documents.document.createElement("FOO")
ordocument.createElementNS("http://www.w3.org/1999/xhtml", "foo")
continue to work in HTML documents. - The
name
and thelocal-name
functions in XPath returns the name of HTML elements in lower case. Previously, in HTML documents, they returned it in upper case.
The most probable upgrade problem is the pattern if (elt.localName === "FOO")
.
Example: Testing if an element is an HTML img element
Firefox 3.6, both text/html and application/xhtml+xml
if (elt.localName === "img" && elt.namespaceURI === "http://www.w3.org/1999/xhtml")
Firefox 3.5 and 3.6, only extension-supplied text/html without foreign (e.g. SVG) script-inserted elements
if (elt.tagName === "IMG")
Firefox 3.5 and 3.6, both text/html and application/xhtml+xml
if (elt instanceof HTMLImageElement)
contents.rdf no longer supported
Support for the obsolete contents.rdf
method for registering chrome has been removed in Gecko 1.9.2, and is no longer supported by Firefox 3.6. This means that add-ons that use contents.rdf can no longer be installed.
Make sure you include a chrome.manifest in your XPI.
Note: Add-ons that are already installed using the old contents.rdf method for registering chrome will continue to function if already installed. Make sure that you test your add-on by actually removing and reinstalling it to ensure that the install works after updating it to use an install manifest.