如何在XULRunner / GeckoFX中部署Firefox扩展?

时间:2015-01-07 10:34:47

标签: xulrunner geckofx

我开发了一个在Firefox下运行良好的二进制扩展,但无法管理在XULRunner / GeckoFX中部署它。扩展程序没有UI,只是为我们的主应用程序(在.NET中)提供API。

我能找到的所有教程都解释了如何将它们安装到XULRunner 应用程序中。但是通过使用GeckoFX,XULRunner在我的项目中运行嵌入式,因此我没有XULRunner应用程序。

我已经尝试将已安装的扩展程序目录从Firefox的配置文件目录复制到XULRunner的配置文件,并且还使用了FF配置文件目录的GeckoFX,两者都无济于事

我目前的怀疑是targetApplicationinstall.rdf的扩展程序需要针对GeckoFX进行调整,但正确的ID是什么?

由于我们正在部署嵌入在我们项目中的GeckoFX / XULRunner,因此我不需要扩展管理器,静态部署就足够了。

1 个答案:

答案 0 :(得分:3)

我终于设法让它发挥作用。这就是我的所作所为:

首先,使用Xpcom.ComponentRegistrar.AutoRegister()添加部署扩展程序的位置:

void RegisterExtensionDir(string dir)
{
    Console.WriteLine("Registering binary extension directory:  " + dir);
    var chromeDir = (nsIFile)Xpcom.NewNativeLocalFile(dir);
    var chromeFile = chromeDir.Clone();
    chromeFile.Append(new nsAString("chrome.manifest"));
    Xpcom.ComponentRegistrar.AutoRegister(chromeFile);
}

其次,使用扩展程序chrome.manifest中的ABI标记。而不是

binary-component components/GeckoScraper.dll  ABI=WINNT_x86-msvc

我用过

binary-component components/GeckoScraper.dll

我认为这是GeckoFX 29的一个错误,并为此创建了issue