我已经浏览了这个论坛中关于此问题的所有问题,但我没有找到任何与我面临的问题相关的查询。我编写了一个NPAPI插件,它可以在带有webkit的GtkLauncher和Firefox上正常工作,但是在Google Chrome(18.0.1025.151)上,该插件甚至都不会显示在about:plugins中。我正在运行Ubuntu 10.10。
当我在Google Chrome中加载插件时,在浏览器中会出现无法加载插件错误,但控制台上没有显示任何内容。我怀疑我的NP_Initialize函数是否被调用。
以下是NP_Initialize代码:
当我在Google Chrome中加载插件时,在浏览器中会出现无法加载插件错误,但控制台上没有显示任何内容。我怀疑我的NP_Initialize函数是否被调用。
以下是NP_Initialize代码:
-------------------------------
NPError OSCALL
NP_Initialize(NPNetscapeFuncs *npnf
#if !defined(_WINDOWS) && !defined(WEBKIT_DARWIN_SDK)
, NPPluginFuncs *nppfuncs)
#else
)
#endif
{
MEDIA_DEBUG_PRINT("\nwcf Media plugin: NP_Initialize");
if(npnf == NULL)
return NPERR_INVALID_FUNCTABLE_ERROR;
if(HIBYTE(npnf->version) > NP_VERSION_MAJOR)
return NPERR_INCOMPATIBLE_VERSION_ERROR;
npnfuncs = npnf;
#if !defined(_WINDOWS) && !defined(WEBKIT_DARWIN_SDK)
NP_GetEntryPoints(nppfuncs);
#endif
return NPERR_NO_ERROR;
}
NPError OSCALL
NP_GetEntryPoints(NPPluginFuncs *nppfuncs)
{
MEDIA_DEBUG_PRINT("\nwcf Media plugin: NP_GetEntryPoints");
nppfuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR;
nppfuncs->newp = nevv;
nppfuncs->destroy = destroy;
nppfuncs->getvalue = getValue;
nppfuncs->event = handleEvent;
nppfuncs->setwindow = setWindow;
return NPERR_NO_ERROR;
}
我知道有一个Firebreath框架可以用于跨浏览器开发,我打算使用它,但目前我需要让我的插件在Chrome上运行。
请问有没有人能帮我解决这个问题?
谢谢和问候, Souvik