2012-04-08 31 views
3

この問題に関するこのフォーラムの質問は終了しましたが、私が直面している問題の種類に関するクエリは見つかりませんでした。私はGtkLauncher(webkitに付属)とfirefoxでうまく動作するNPAPIプラグインを書いていますが、google-chrome(18.0.1025.151)ではプラグインはabout:pluginsにも表示されません。私はUbuntu 10.10を実行しています。NPAPIプラグインがabout:plugins in google chromeに表示されない

私はプラグインを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; 
} 

私は、私が使用することを計画しているが、現時点では、私は私のプラグインがChromeで実行されている取得する必要があり、クロスブラウザの開発のためのFirebreathフレームワークが存在しているはず。

問題を解決するのに手伝ってください。

おかげで、よろしく、 Souvik

答えて

3

Chromeは物事が起動方法について少しpickierする傾向があります。あなたの問題を引き起こす可能性のあるものはここには表示されませんが、Chromeは予期したとおりに動作しないプラグインを拒否したことで有名です。おそらく、あなたの問題は後になります。あなたがNP_Initializeが呼び出されることに疑問を抱いています、もし私があなただったら私はそれを検証します。/tmp /の中のファイルに書き込んだり、何かを確認してください。

また、NP_GetPluginVersionやNP_GetMimeDescriptionなどの他のエントリポイントも指定していません。これらはLinuxのプラグインにも必要であり、このような問題の原因となる可能性が非常に高いです。参考までに、FireBreath's X11 entrypoint fileをご覧ください。

最後に、プラグインをインストールした方法がMozillaで見つかったが、chromeでは見つからない可能性があります。どのようにインストールしましたか?

+0

ご回答いただきありがとうございます。実際には、私はコンソール印刷を与えました - MEDIA_DEBUG_PRINT( "\ nwcf Media Plugin:NP_Initialize"); Chromeでロードするときに印刷されないNP_Initialize()関数 – Souvik

+0

はい、私はあなたがコンソールプリントを持っていることを認識しています。しかし、私はあなたがクロムからの別のプロセスにいるので、あなたが印刷物の結果を見る可能性があるとは確信していません。そして、私の経験では、stdoutはしばしばそのような場合にリダイレクトされます。あなたがファイルにそれを送るならば、あなたは確かなことができます。 – taxilian

+0

私はすぐに確認します。 .soファイルの/ usr/lib/mozilla/pluginsフォルダへのソフトリンクを作成しています。私はまた、MIMEとバージョンの入力機能を持っています。 char * NP_GetMIMEDescription(void){return(char *) "アプリケーション/ x-wcfconn:wcf:接続プラグインです";} char * NP_GetPluginVersion(){return(char *)PLUGIN_VERSION;} – Souvik

2

プラグインがchrome:// pluginsに表示されていない場合は、最初のプラグインスキャン中にエラーが発生しています。 --debug-plugin-loadingフラグを付けて実行してみてください。プラグインの登録が失敗した時点でログステートメントが表示されます。

+0

ありがとう。 --debug-plugin-loadingでgoogle-chromeを起動した後、コンソールログを取得できます。コンソールログで、私のプラグインが別のライブラリDBAccessLib(私がsqlite3にバインドしてデータベースにアクセスするために使用する自分のライブラリ)をロードできないことがわかりました。 undefined symbol:sqlite3_sprintf)、スキップしています。 5月Google Chromeはlibsqlite3ライブラリを見つけることができません。 – Souvik

関連する問題