NPAPI插件没有加载到chrome上

时间:2011-07-22 04:50:24

标签: google-chrome-extension npapi browser-plugin

我有一个由dll和manifest.json文件组成的npapi插件。这个npapi dll被检测为chrome上的插件,即它列在about:plugins页面上。但是,当我使用标记在示例html页面中调用此插件时,它表示“插件无法加载”。 任何想法为什么这个插件无法加载chrome。

由于

2 个答案:

答案 0 :(得分:4)

根据您提供的信息,我们无法确定,但我猜这是两件事之一:

  1. 您的插件可能具有未找到的外部依赖项。如果您链接到另一个需要.DLL文件的库(或者如果您使用/ MD作为CRT的DLL版本),并且当浏览器尝试加载插件DLL时无法找到DLL,那么您的插件将默默无法加载

  2. 您的插件DLL可能正在加载,但随后抛出异常,错误处理事物等,以致浏览器决定它不是有效的插件。最有可能的情况并非如此,因为Chrome通常会将此类内容报告为崩溃,而不是缺少插件。但是,您可以通过使用命令行参数--plugin-startup-dialog启动Chrome来验证这一点,这将导致在加载插件DLL之前弹出一个带有pid的对话框。然后,您可以附加调试器并告诉它继续。

  3. 在这两者中,第一个是我看到的最常见的问题。您可以通过获取Dependency Walker(depends.exe)并就地打开DLL以查看缺少的内容来对其进行故障排除。如果你看到ieshims.dll忽略它 - 它总是认为它丢失了,但是在浏览器运行时找到它。

    有关调试插件的更多提示可以在http://npapi.com/x/MYAG找到,当然如果您还没有,我建议您使用FireBreath框架来解决您可能遇到的大多数NPAPI问题。

    祝你好运!

答案 1 :(得分:1)

您必须在插件.rc文件中定义MIME类型。如果不这样做会阻止插件正确加载:

  

VALUE“MIMEType”,“application / myapp”