从外部应用程序调用 Firefox XPCOM?
上下文:我们需要在我们的应用程序中读取 Firefox cookie; 在 Firefox 3.5 之前,这可以通过读取 cookies.txt / cookies.sqlite 来实现。 在 Firefox 3.5 中,它专门锁定 cookie 文件,以便外部应用程序无法读取它(请参阅 https://bugzilla.mozilla.org/show_bug.cgi?id=476167),即使我们制作本地副本,FF 也并不总是将 cookie 刷新到磁盘,直到退出,因此它们可能不在那里。
建议的解决方案是使用 nsICookieManager,它看起来像我们需要的——但我如何从非 Firefox 的进程中获取其中之一呢?
我所看到的关于 XPCOM 的一切都表明我只能从 Firefox 扩展中使用它——我们是否必须编写一个扩展,然后以某种方式调用 Firefox 来安装我们的扩展,然后以某种方式调用扩展本身来将 cookie 传回?
Context: we need to read Firefox cookies in our app; until Firefox 3.5, this was possible by reading cookies.txt / cookies.sqlite. In Firefox 3.5, it exclusively locks the cookie file so outside apps can't read it (see https://bugzilla.mozilla.org/show_bug.cgi?id=476167), and even if we make a local copy, FF doesn't always flush the cookies to disk until exit so they may not be there.
The suggested solution is to use nsICookieManager, which looks like what we need -- but how can I get at one of those from a process that isn't Firefox?
Everything I see about XPCOM suggests I can only use it from firefox extensions -- do we have to write an extension, and then somehow invoke Firefox to install our extension and then somehow invoke the extension itself to pass cookies back out?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的 - 您必须构建一个从您的应用程序到 Firefox 进行通信的扩展。 您可以使用Windows 注册表安装该插件(假设您使用的是 Windows)。
Yes - you'll have to build an extension which communicates from your application to Firefox. You can install the add-on with the windows registry (assuming you are on windows).