我正在使用Firefox中的浏览器扩展来拦截HTTP请求并更改它们。由于我的项目的目的,我需要合并一个用C ++构建的项目来处理这些信息。重写C ++项目需要花费太多工作(这是一个很大的项目)。我读到我可以将C ++代码转换为.dll文件并使用它,但我不确定如何做到这一点(对编程扩展有点新的。做了很多网络开发)。
我一直在做很多研究,NPAPI似乎是要走的路(我知道它正在逐步淘汰,但项目只是我需要工作的概念证明)。但是,我不确定像FireBreath这样的框架是否可以进行扩展。它也需要在Firefox中,因为我的公司不使用任何其他东西。
是否有一种在扩展中访问C ++代码的好方法?如果有的话,我会喜欢一些教程链接。我确实读过this previous thread,但它没有给出使用什么的可靠结论。此外,如果有更好/更简单的方法(插件等),我很想知道!
很抱歉,如果这是在错误的论坛。还是新来的:S
答案 0 :(得分:1)
我同意这些意见,你应该在使用这个之前绝对检查所有其他可能性。我可能会考虑编写自己的代理服务器(类似于Charles的工作原理),当它运行时它会做你想做的任何事情。
FireBreath可用于创建插件,仅用于创建插件。 然而,您可以在扩展程序中使用插件,至少目前(您已经知道计划的逐步淘汰)。因此,如果您可以使用扩展程序捕获数据(我不知道扩展名,所以我不确定您是否可以),那么您可以使用javascript扩展将其传递到插件实例中以进行处理你想做什么。
经验法则: 如果可以以插件以外的任何其他方式完成,don't use a plugin
。
答案 1 :(得分:1)
@taxilian说得对:
如果可以以插件之外的任何其他方式完成,请不要使用插件。
编写实际的Firefox扩展更合适。这些天你建议使用js-ctypes与二进制blob(DLL,所以,dylib)接口。你会做什么:
nsIHttpChannel
,nsITracableChannel