修改 omni.ja 中的 jsm

Dav*_*dom 5 firefox xul firefox-extensions

平台:FF17 win32

我正在尝试修改 omni.ja 中的模块/AddonUpdateChecker.jsm。无论我做什么,我都无法让 FF 注意到我的修改。

我已经完成了 Internetz 上各个地方提出的所有建议:

  • 每次启动缓存可见
  • 启用/禁用扩展以强制重新加载 omni.ja
  • 甚至尝试卸载/重新安装 FF,在第一次运行之前修改 jar

我不想成为 XY 问题的受害者,所以:

我真正想做的是为我的扩展的自动构建过程实现这个。是的,我知道有一些现有的解决方案,但我希望自己实现它,因为构建系统是高度定制的。

我现在已经到了 FF(实际上)说我的签名错误的地步。我怀疑这是因为我的序列化例程是错误的,我无法根据文档确定在哪里 - 所以我想检查 FF 在客户端构建的序列化字符串以进行比较。这个字符串在modules/AddonUpdateChecker.jsm 中被构造并且签名被验证(通过XPCOM)。

那么,如何让 Firefox 关注我的修改呢?或者有没有更简单的方法来查看这个字符串?

Wla*_*ant 7

当前的 Firefox 版本omni.ja本身有一个缓存。如果您jsloader/resource/gre/modules/AddonUpdateChecker.jsm从中删除文件,omni.ja那么 Firefox 应该开始查看您修改的文件modules/AddonUpdateChecker.jsm。此外,您希望指定-purgecaches命令行标志而不是搜索启动缓存。

边注:它一般是有帮助的设置extensions.logging.enabledtrue调试扩展安装问题时,会打印出大量的附加信息错误控制台。当然,我不知道这些附加信息在您的特定情况下是否足够。