NPAPI:非可视插件的首选窗口模型(windowed / windowless / xembed)

时间:2011-07-02 10:16:48

标签: plugins npapi browser-plugin

我正在创建一个不应该有UI的NPAPI插件(仅限Javascript使用)。我应该使用什么窗口模型(windowed / windowless / xembed)来支持尽可能多的浏览器(和浏览器版本)?

我目前正在实施以下功能:

  • NPP_SetWindow:什么都不做,请回复NPERR_NO_ERROR
  • NPP_Event:什么都不做,返回kNPEventNotHandled(0)
  • NPP_SetValue:什么都不做,请回复NPERR_NO_ERROR
  • NPP_GetValue:如果要求NPPVpluginNeedsXEmbed,请在浏览器支持时回答“是”(NPNVSupportsXEmbedBool),否则

对于这个插件我支持Linux& Windows目前仅限。 Chrome on Linux (bug 38229)需要NPPVpluginNeedsXEmbed,但有些旧版本可能不支持the MDC page,因为只有Firefox 2.0+支持XEmbed的示例插件。

1 个答案:

答案 0 :(得分:2)

我见过的最常见的是不关心窗口模式并将对象标记设置为1x1(你可以尝试0x0,但我看到与之相关的浏览器错误)大小,在这种情况下它你使用什么窗口模式并不重要。但是,我会自己做无窗口,因为它不会导致浮动在所有其他DOM元素上的标志块,而正常窗口(XEmbed或非)插件会给你。

如果设置了FB_GUI_DISABLED标志,这就是FireBreath的作用。