在编写Firefox/Chrome扩展时如何使用Java/Python库

3
我有一个研究用户在浏览器上行为的想法,因此我打算制作一个Chrome/Firefox扩展程序来动态地研究这种行为。我有一些预定义的Java和Python库来分析结果,这些库将无法用纯JavaScript编程。
现在我的问题是:是否可以使用第三方库,特别是像普通函数调用一样的Python或Java库?
我对Firefox的Java XPCOM或PyXPCOM有一个模糊的概念。然而,对于初学者来说,这看起来很可怕。我开始为Firefox制作Add-On,但在庞大的API中迷失了方向。
我发现编写Chrome扩展比Firefox更容易,但我找不到类似于Chrome中的XPCOM的东西。
我该如何决定选择哪个?
Chrome-看起来很容易,但我不确定它的实力。
Firefox-看起来很强大,但真的可以使用任何Java/Python库吗?
另外,我找到了这个链接,可能会有用:如何使用第三方库包含在Firefox附加组件/扩展中?

但似乎它主要讨论的是C++和XPCOM。

2个回答

3
我知道一些与Firefox相关的 Java XPCOM 或 PyXPCOM 的东西,但对于一个初学者来说,这些都看起来很吓人。我不是初学者,而且 JavaXPCOM/PyXPCOM 非常可怕(除了几乎没有维护)。在 Firefox 中,将你的 Java/Python 库包装为一个应用程序并作为外部进程运行应该更容易:https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIProcess。请注意,你不能获取其他数据(除了退出代码),所以应用程序应将其写入文件中,然后你可以在 Firefox 扩展中进行读取:https://developer.mozilla.org/en/Code_snippets/File_I%2F%2FO#Reading_from_a_file。这样做并不是非常优雅,但它有一个可行的优点。
至于 Chrome,它的扩展在沙盒中运行,不可能使用 Java 或 Python。唯一的选择是向你的扩展添加 NPAPI 插件。这是二进制代码,意味着它可以做任何事情。

0

编写Chrome扩展时,您只能使用JavaScript,除非选择使用NPAPI插件,该插件可以让您做几乎任何事情,但不建议使用。

另一种方法是在服务器上实现Java或Python代码,并从Chrome扩展的JavaScript发出请求。


嗨,鲍里斯,我整个项目的中心点是研究用户行为,而不会损害隐私。因此,在这种情况下,我不能涉及服务器。 - Shatu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接