在Safari(Mac OS X)中加载NPAPI插件是否可行?

3

我有一些代码在浏览器中运行,为IE(COM/ActiveX)和Firefox(NPAPI)编写了C++插件。

现在我需要让这个代码在Mac OS X上运行。我在苹果网站上找到了一些输入,但它是用Objective C编写的。

我也了解了SIMBL,但它似乎仅处理Objective C代码,是吗?

所以,这里是我的问题:

  • 是否可能为Safari编写一个纯C++插件(重用我的Firefox NPAPI插件将是很好的)?

  • 如果不可能,有没有一种方法可以使用Objective C插件作为一些C++代码的加载器?

我对Mac OS完全是新手,甚至没有一个Mac Box来捣乱,因此提出了非常普遍的问题。

谢谢

1个回答

9
NPAPI插件机制是MacOS(以及除IE之外的所有Linux)上浏览器插件的标准机制 - 如果您使用NPAPI,您的插件将在Safari、Firefox和Opera上工作。它们也将在32位和64位的Safari中工作。假设您的代码不对运行它的浏览器做任何假设,则相同的NPAPI代码应该适用于所有浏览器(我曾看到“NPAPI”插件会在盲目地确信NPAPI仅由Firefox使用,尽管它是几乎每个非IE浏览器的标准插件格式)。
像SIMBL这样的“插件”误用了为特定(但重要)目的而设计的MacOS API,以任意注入其自己的代码到Safari地址空间中 - 当人们使用这些插件(被误导以为是安全的)时,Safari变得不太稳定,并且在主要更新后经常停止工作(在一个极端情况下,Leopard的“蓝屏死亡”是因为Logitech使用APE来进行与SIMBL类似的操作)。

非常感谢您的回答,很高兴我能够重复使用我的NPAPI插件。 - Vinzz

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