Google chrome extension Can';t让NPAPI插件为mime类型工作“;图片/webp:webp:webp“;

Google chrome extension Can';t让NPAPI插件为mime类型工作“;图片/webp:webp:webp“;,google-chrome-extension,npapi,Google Chrome Extension,Npapi,我已经为webP编译了NPAPI插件: 它在我的firefox上运行得很好。我只是不明白如何让它从谷歌浏览器工作。我创建了json文件: $ cat manifest.json { "name": "My First Extension", "version": "1.0", "manifest_version": 2, "description": "The first extension that I made.", "plugins": [ { "path":

我已经为webP编译了NPAPI插件:

它在我的firefox上运行得很好。我只是不明白如何让它从谷歌浏览器工作。我创建了json文件:

$ cat manifest.json
{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "plugins": [
    { "path": "webp-npapi.so", "public": true }
  ]
}
然后我启动Google Chrome,转到chrome://extensions,单击“加载未打包的扩展…”。我可以看到它出现在列表中:

My First Extension - Version: 1.0 (Unpacked)
The first extension that I made.
ID: bakhhdpebhmgoaecbmpkcbnmcmnamhhk
但是我仍然无法打开no*.webp图像

我的测试HTML页面是:

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html> 
 <head> 
  <title> 
   Hello World Demonstration Document
  </title> 
 </head> 
<embed type="image/webp:webp:WebP" id="pluginId">
<script>
  var plugin = document.getElementById("pluginId");
  var result = plugin.myPluginMethod();  // call a method in your plugin
  console.log("my plugin returned: " + result);
</script>
 <body> 
  <h1> 
   Hello, World!
  </h1> 
<img src="1.sm.webp" alt="too bad"/>
 </body> 
</html> 

我遗漏了什么?

插件没有加载可能有几个原因

  • npapi插件在成功加载之前在chrome中崩溃
    在这种情况下,您需要使用以下命令从终端运行google chrome:
    google chrome--plugin startup dialog
    并调试问题(例如,使用gdb)

  • 找不到插件的依赖项(在我的例子中就是这样,请参阅第二步)
    通过执行
    ldd webp npapi.so
    (并检查缺少库的输出),确认webp-npapi.so安装并找到了库(libwebp.so).在我的例子中,webp npapi插件是根据
    libwebp.so.0
    构建的,但是编译源代码会导致更新的库版本
    libwebp.so.3
    。您是从源代码编译webp npapi插件的吗

  • 插件加载正确,但您的嵌入/对象标记错误
    不太可能,如果它在Firefox中工作不变-您可以使用插件发布一个示例页面吗


  • 插件没有加载可能有几个原因

  • npapi插件在成功加载之前在chrome中崩溃
    在这种情况下,您需要使用以下命令从终端运行google chrome:
    google chrome--plugin startup dialog
    并调试问题(例如,使用gdb)

  • 找不到插件的依赖项(在我的例子中就是这样,请参阅第二步)
    通过执行
    ldd webp npapi.so
    (并检查缺少库的输出),确认webp-npapi.so安装并找到了库(libwebp.so).在我的例子中,webp npapi插件是根据
    libwebp.so.0
    构建的,但是编译源代码会导致更新的库版本
    libwebp.so.3
    。您是从源代码编译webp npapi插件的吗

  • 插件加载正确,但您的嵌入/对象标记错误
    不太可能,如果它在Firefox中工作不变-您可以使用插件发布一个示例页面吗


  • 这是解决方案。出于某种原因,firefox内置了mime类型的mecanism(??),并将webp识别为图像。另一方面,chromium需要被告知图像是webp

    在我的Linux机器上,我所要做的就是在
    /etc/MIME.types
    中注册MIME类型(或
    ~/.MIME.types
    以在用户级别注册)。要验证MIME类型是否已注册,请发出:

    $ grep webp /etc/mime.types
    image/webp                  webp
    

    这是解决方案。出于某种原因,firefox内置了mime类型的mecanism(??),并将webp识别为图像。另一方面,chromium需要被告知图像是webp

    在我的Linux机器上,我所要做的就是在
    /etc/MIME.types
    中注册MIME类型(或
    ~/.MIME.types
    以在用户级别注册)。要验证MIME类型是否已注册,请发出:

    $ grep webp /etc/mime.types
    image/webp                  webp
    

    我无法启动gdb,所以我想没有崩溃。ldd看起来不错。我将更新帖子中使用的HTML页面。我无法启动gdb,所以我想没有崩溃。ldd看起来不错。我将更新帖子中使用的HTML页面。