【问题标题】:Using Java/Python libraries in programming Firefox/Chrome Extensions在 Firefox/Chrome 扩展程序中使用 Java/Python 库
【发布时间】:2023-03-03 01:42:01
【问题描述】:

我有一个研究用户在浏览器上的行为的想法,我打算为此制作一个 Chrome/Firefox 扩展来动态研究行为。我在 Java 和 Python 中有一些预定义的库来分析结果,这将是不可能用纯 JavaScript 编程的。

现在我的问题是:是否可以使用第三方库,尤其是 Python 或 Java 的库,如普通函数调用?

我对 Firefox 的 Java XPCOM 或 PyXPCOM 之类的东西有一个模糊的概念。然而,对于初学者来说,这一切看起来都是那么可怕。我开始为 Firefox 制作插件,但在庞大的 API 中迷失了方向。

我发现编程 Chrome 扩展程序比 Firefox 更容易,但我在 Chrome 中找不到类似于 XPCOM 的东西。

我如何决定选择哪一个?

  • Chrome - 看起来很简单,但我不确定它的功能。
  • Firefox - 看起来很强大,但真的可以使用 any Java/Python 库吗?

另外,我发现了这个可能有用的链接:How does someone use thirdparty libraries to be included in Firefox addons/extensions?

但似乎主要是在谈论 C++ 和 XPCOM。

【问题讨论】:

    标签: google-chrome firefox-addon google-chrome-extension xpcom pyxpcom


    【解决方案1】:

    我对 Firefox 的 Java XPCOM 或 PyXPCOM 之类的东西有一个模糊的概念。但是对于初学者来说,这一切看起来都太可怕了。

    我不是初学者,JavaXPCOM/PyXPCOM 是非常可怕的(除了几乎没有维护)。随着 Firefox 的发展,将 Java/Python 库包装在应用程序中并将其作为外部进程运行应该会容易得多:https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIProcess。请注意,您无法取回数据(退出代码除外),因此应用程序应将其写入文件,然后您可以read in your Firefox extension。不是很优雅,但它的优点是可行。

    对于 Chrome,它的扩展程序在沙盒中运行,无法使用 Java 或 Python。唯一的选择是adding an NPAPI plugin to your extension。它是二进制代码,意味着它可以做任何事情。

    【讨论】:

      【解决方案2】:

      在编写 Chrome 扩展程序时,您只能使用 JavaScript,除非您选择使用 NPAPI plugin,这几乎可以让您做任何事情,但不建议这样做。

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

      【讨论】:

      • 嘿鲍里斯,我整个项目的中心点是在不损害隐私的情况下研究用户行为。所以在那种情况下,我不能在这里让服务器参与进来。
      猜你喜欢
      • 2011-12-14
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      相关资源
      最近更新 更多