我为webP编译了NPAPI插件:
http://code.google.com/p/webp-npapi-linux/
它从我的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://扩展程序,点击“加载解压扩展程序...”。我可以看到它出现在列表中:
My First Extension - Version: 1.0 (Unpacked)
The first extension that I made.
ID: bakhhdpebhmgoaecbmpkcbnmcmnamhhk
但是我仍然无法打开* .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>
文件在本地下载(wget http://www.gstatic.com/webp/gallery/1.sm.webp)。而ldd对我来说还不错:
$ ldd webp-npapi.so
linux-vdso.so.1 => (0x00007fffafdad000)
libwebp.so.2 => /usr/lib/x86_64-linux-gnu/libwebp.so.2 (0x00007ff82fd60000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007ff82fa4c000)
libm.so.6 => /lib/libm.so.6 (0x00007ff82f7c9000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007ff82f5b3000)
libc.so.6 => /lib/libc.so.6 (0x00007ff82f251000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff8301c9000)
我错过了什么?
答案 0 :(得分:3)
这是解决方案。出于某种原因,firefox有一个内置的mime型mecanism(??)并且确实将webp识别为图像。另一方面,铬需要被告知图像是webp。
在我的Linux机器上,我所要做的就是在/etc/mime.types
(或~/.mime.types
注册用户级别)注册MIME类型。要验证是否已注册mime类型,请发出:
$ grep webp /etc/mime.types
image/webp webp
答案 1 :(得分:2)
插件未加载可能有几个原因。
npapi插件在成功加载之前崩溃了
在这种情况下,您需要使用以下命令从终端运行Google Chrome:google-chrome --plugin-startup-dialog
并调试问题(例如,使用gdb like so)
找不到插件的依赖项(在我的情况下发生了这种情况,请参阅secreenshot)
通过执行ldd webp-npapi.so
(并检查丢失库的输出),确认webp-npapi.so已安装并找到库(libwebp.so)。在我的例子中,webp-npapi插件是针对libwebp.so.0
构建的,但是编译源会导致更新的库版本libwebp.so.3
。你是否从源代码编译了webp-npapi-plugin?
该插件正确加载,但您的嵌入/对象标记错误
不太可能,如果它在Firefox中保持不变 - 您是否可以使用<发布示例页 / em>插件?