【问题标题】:Is it possible to load a NPAPI plugin in Safari (Mac OS X)?是否可以在 Safari (Mac OS X) 中加载 NPAPI 插件?
【发布时间】:2009-09-16 07:53:10
【问题描述】:

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

我现在必须让这段代码在 Mac OS X 上运行。我在苹果的网站上找到了一些 input,但它是用 Objective C 编写的。

我也读过SIMBL,但它似乎只处理Objective C 代码,不是吗?

所以这是我的问题:

  • 是否可以为 Safari 编写纯 C++ 插件(重用我的 Firefox NPAPI 插件会很棒)?

  • 如果不可能,有没有办法将目标 C 插件用作某些 C++ 代码的加载器?

我在 Mac OS 上完全是个菜鸟,甚至没有 Mac Box 可以乱来,因此这个问题非常笼统。

谢谢

【问题讨论】:

    标签: c++ macos safari plugins


    【解决方案1】:

    NPAPI 插件机制是 MacOS(和 linux——除 IE 之外的所有东西)上浏览器插件的标准机制——如果您使用 NPAPI,您的插件将在 Safari、Firefox 和 Opera 上运行。它们也适用于 32 位和 64 位 Safari。假设您的代码没有假设它在相同的 NPAPI 代码中运行的浏览器应该在所有浏览器中运行(我已经看到动态解析 XUL 相关函数的“NPAPI”插件,但盲目相信 NPAPI 仅由 Firefox 使用,尽管它或多或少是每个非 IE 浏览器的标准插件格式)。

    像 SIMBL 这样的“插件”滥用 MacOS API,其设计目的是为了将自己的代码任意注入 Safari 地址空间——当人们使用这些(被误导认为它是安全的)时,Safari 的稳定性会大大降低,并且在重大更新后经常停止工作(在极端情况下,Leopard 的“蓝屏死机”是因为罗技使用 APE 来做类似于 SIMBL 的事情)。

    【讨论】:

    • 嗯,非常感谢您的回答,很高兴我能够回收我的 NPAPI 插件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多