Firefox 3.6 扩展更新

本文档为试图更新其扩展以使其在 Firefox 3.6 中正常工作的扩展开发者提供了有用的信息。

用户界面更改

右键点击元素(包括链接和图像)不再提供“属性”菜单项。 属性对话框对大多数用户来说没有用处,已被移除。如果您的扩展以任何方式与该菜单项交互,您需要修改您的代码自己添加它,或直接贡献您自己的上下文菜单项。

附加组件包更改

为了允许即使在禁用附加组件时也能显示附加组件的图标,Gecko 1.9.2 添加了对自动检测和使用名为icon.png的图标的支持,该图标位于附加组件的根目录中。如果附加组件被禁用,或者清单文件中缺少iconURL条目,则使用此图标。

HTML 5 兼容性改进

根据 HTML 5,DOM Level 2 视图对 HTML 和 XHTML 文档的处理现在已统一。

  • localName DOM 属性现在以小写形式返回 HTML 元素节点的名称。以前,在 HTML 文档中,它以大写形式返回。(DOM Level 1 tagName 继续在 HTML 文档中以大写形式返回。)
  • namespaceURI DOM 属性现在在 HTML 元素节点上返回"http://www.w3.org/1999/xhtml"。以前,在 HTML 文档中,它返回null
  • document.createElementNS(null, "FOO")不再在 HTML 文档中创建 HTML 元素节点。document.createElement("FOO")document.createElementNS("http://www.w3.org/1999/xhtml", "foo")继续在 HTML 文档中工作。
  • XPath 中的namelocal-name函数以小写形式返回 HTML 元素的名称。以前,在 HTML 文档中,它们以大写形式返回。

最有可能的升级问题是模式if (elt.localName === "FOO")

示例:测试元素是否为 HTML img 元素

Firefox 3.6,text/html 和 application/xhtml+xml

if (elt.localName === "img" && elt.namespaceURI === "http://www.w3.org/1999/xhtml")

Firefox 3.5 和 3.6,仅扩展提供的 text/html,不含外部(例如 SVG)脚本插入的元素

if (elt.tagName === "IMG")

Firefox 3.5 和 3.6,text/html 和 application/xhtml+xml

if (elt instanceof HTMLImageElement)

不再支持 contents.rdf

Gecko 1.9.2 中已删除对用于注册 chrome 的已弃用contents.rdf方法的支持,Firefox 3.6 不再支持。这意味着使用 contents.rdf 的附加组件将无法安装。

确保在您的 XPI 中包含chrome.manifest

注意:如果已安装,则使用旧的 contents.rdf 方法注册 chrome 的附加组件将继续运行。请确保通过实际删除并重新安装附加组件来测试您的附加组件,以确保在更新以使用安装清单后安装正常。