Firefox Beta 4 未加载本机 NPAPI 插件
这几天我一直在摸索这个问题,我和谷歌都没有想出一个好的解决方案。
我有一个适用于 Firefox 3.6 的本机 NPAPI 插件。它仅由一个 np*.dll 组成,仅此而已。
现在我将其升级到 Firefox 4 Beta。我更改了 install.rdf 以包含新的 em:unpack 指令(XPI 在 Pre-4 中自动解包),甚至添加了一个新的 chrome.manifest,其中包含(据说)现在需要的“二进制组件”语句(根据https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0 :“在 Gecko 2 之前,在组件注册期间,所有二进制和 JavaScript 组件文件都会被加载和调用,要求它们自行注册”)。
问题是:插件下载并安装。但是,虽然它显示在附加组件管理器中,但它不会显示在“about:plugins”中,当然也无法使用。我在启用了扩展日志记录的情况下运行了 Firefox,但那里也没有显示任何关于插件的真正有用的信息。
基本上我被难住了 - 有什么帮助吗?
I've been scratching my head over this for the last few days and neither me nor Google have come up with a good solution.
I have a native NPAPI plugin that works fine for Firefox 3.6. It simply consists of a single np*.dll, nothing else.
Now I'm upgrading it to Firefox 4 Beta. I've changed the install.rdf to include the new em:unpack directive (XPIs were automatically unpacked in Pre-4) and even added a new chrome.manifest with the (supposedly) now required 'binary-component' statement (according to https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0: 'Prior to Gecko 2, during component registration, all binary and JavaScript component files were loaded and called, asking them to register themselves').
The problem is: The plugin downloads and supposedly installs. But then while it shows up in the AddOn manager it doesn't show up in 'about:plugins' and is of course not usable either. I ran Firefox with extension logging enabled but nothing really useful regarding the plugin showed up there either..
Basically I'm stumped - any help please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
唷 - 原来我找到了问题的原因:np*.dll 位于 XPI 内的根文件夹中,而不是应有的插件/文件夹中。 FF3.6 似乎更宽容,FF4 仅在 DLL 实际上位于插件文件夹内时才加载 NPAPI DLL...
问题已解决:-)
Phew - turns out I found the cause of the problem: the np*.dll was in the root folder inside the XPI, not in the plugins/ folder as it's supposed to be. FF3.6 was more forgiving it seems, FF4 only loads a NPAPI DLL if the DLL is actually inside the plugins folder...
Problem solved :-)