不能在NPAPI插件中使用POCO计时器



我已经实现了一个在Firefox中工作的NPAPI插件。接下来,我尝试添加一个接受来自 JavaScript 端的函数作为回调的方法。

最初,我尝试在同一方法中立即调用此回调方法,该方法在JavaScript端完全没有执行任何操作。

然后,我尝试使用 Poco::Util::Timer 和 TimerTask 实现一个计时器。当尝试在代码中以任何方式实例化 Timer 或 TimerTask 时,Firefox 将不再加载插件。在about:plugins中,没有插件的痕迹。

据我所知,没有办法弄清楚为什么插件没有加载,也没有找到任何关于实现 NPAPI 插件时允许和不允许的内容的参考。

任何指针都将是最有帮助的。如果需要,我可以发布代码。

您需要了解的有关 NPAPI 插件的主要内容是,您无法通过备用线程以任何方式与浏览器交互。

不过,我会先回到你的第一个测试,因为如果你立即调用传入的 NPObject(使用 InvokeDefault),应该会起作用。

我的猜测是,使用计时器,您可能在不同的线程上运行,或者试图篡夺插件线程中的消息循环,这两者都会导致您出现问题。 你看过《火息》吗?FireBreath 1可能会为您提供所需的一切,而无需了解NPAPI的所有实现细节。

最新更新