更新 Firefox 8 的附加组件

本文提供了关于为兼容 Firefox 8 而更新现有附加组件所需的步骤信息。请参阅 Firefox 8 for developers 以获取 Firefox 8 中所有更改的完整列表。

您需要做些什么吗?

如果您的附加组件分发在 addons.mozilla.org (AMO) 上,它已经过自动化兼容性验证工具的检查。未使用 Firefox 8 中更改的 API 且不包含二进制组件(每次 Firefox 主版本发布都需要重新编译)的附加组件已自动在 AMO 上更新,以表明它们可以在 Firefox 8 中运行。

所以,您应该首先访问 AMO,查看您的扩展是否需要进行任何工作。

注意: 即使您的附加组件已自动升级,您仍应在 Firefox 8 上测试它。可能存在自动检测不到的边缘情况。

一旦您确认需要进行更改,请返回此页面继续阅读。

开发流程说明

值得注意的是,在启动时,Firefox 8 现在会在首次启动时检查第三方附加组件,并显示一个用户界面,让用户决定是否启用它们。如果您将附加组件放入配置文件目录中进行测试,Firefox 在首次启动时不会自动启用它,而是会显示此界面。

您可以通过将首选项 extensions.autoDisableScopes 设置为 14 来避免这种情况。这仅应出于开发和测试目的进行。

接口已合并

作为我们持续努力简化 Gecko 内部结构的一部分,一些接口已合并在一起

  • nsIDOMWindowInternal 已合并到 nsIDOMWindow 中。nsIDOMWindowInternal 接口仍然存在,但为空,并将在 Firefox 9 中完全移除。您应该更新任何依赖 nsIDOMWindowInternal 存在的代码,使其改为查找 nsIDOMWindow
  • nsISelection 的所有子接口都已合并到基础 nsISelection 接口中。如果您之前曾查找 nsISelection2nsISelection3,则应更新您的代码。

日期处理已改进

现在 JavaScript Date 对象可以解析 ISO 8601 日期,ISO8601DateUtils.jsm 代码模块已被移除。如果您曾使用此代码模块,应更新代码以改为使用 Date 上的方法。

DOM 更改

DOM 中有几个更改会影响附加组件

选择更改

过去,Document.getSelection() 返回的是选取的字符串化版本,而不是 Selection 对象本身。这是不标准的行为,现已得到纠正。

潜在的名称冲突

在添加 DOM File API 时,添加了一个名为 File 的全局变量;这可能与您的脚本中的对象发生冲突。如果您有任何名为 File 的全局变量,应重命名它们。

类似地,为了支持从 chrome 代码使用 Worker,引入了一个名为 ChromeWorker 的新全局变量。如果您碰巧有任何名为此名称的全局变量,应重命名它们。

安全更改

已移除对 SSL 2.0 的支持。这不应影响任何当前的附加组件。但是,作为参考,一些非常旧的代码已被移除,以及对首选项 security.enable_ssl2(默认值为 false)和所有以 security.ssl2 开头的首选项的支持。

另见