更新 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接口中。如果您之前曾查找nsISelection2或nsISelection3,则应更新您的代码。
日期处理已改进
现在 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 开头的首选项的支持。