在当前开发人员版本的Firefox(53.0a2)中,尝试安装多项目xpi失败,并显示错误,指出xpi文件似乎已损坏。浏览器控制台将问题识别为未知的xpi类型(即,多项xpi的类型32现在变得未知)。
在最新的代码中,从第228行开始 https://github.com/mozilla/gecko-dev/blob/master/toolkit/mozapps/extensions/internal/XPIProvider.jsm
我们读到:
// Map new string type identifiers to old style nsIUpdateItem types
// Type 32 was previously used for multipackage xpi files so it should
// not be re-used since old files with that type may be floating around.
const TYPES = {
extension: 2,
theme: 4,
locale: 8,
dictionary: 64,
experiment: 128,
};
正如评论所述,已从代码中删除了用于多项xpi类型的类型32。
但是,我找不到多包扩展类型被单独或早于以前支持它的附加SDK本身弃用的文档。此外,网页:
扩展包装:https://developer.mozilla.org/en-US/Add-ons/Extension_Packaging 使用以下更新标记更新不到一个月前: 最后更新人:wbamberg,2017年1月10日,下午3:51:23
该页面有一个部分"多项目扩展XPIs&#34 ;;尽管从最新代码中删除了上述内容,但本文档部分仍将继续介绍如何创建多项目xpi文件。请注意,实际遵循该方向或尝试迁移旧版加载项的开发人员将无法自行签署加载项或关闭当前标准Firefox版本中的签名检查;因此他们必须使用Firefox的开发者版本,但Firefox的当前开发者版本不支持这样的附加组件。
对于多项目扩展附加组件,这里的实际意图是什么?例如,它们是否被单独弃用并超出了附加SDK的其余部分?我们可以使用一个新的字符串标识而不是整数,这在上面的代码注释中暗示它所说的"将新的字符串类型标识符映射到旧样式nsIUpdateItem类型"?