1

私はこれまでMacOSXでGoogleChrome(6.0.401.1 dev)を取得してNPAPIプラグインをロードしようとしていましたが成功しませんでした。私はここからnpsimpleの例を回避しています:http://git.webvm.net/?p= npsimple

Macでgccを使用し、WindowsでVC ++ 2008を使用して、Mac OS XのSafariとFirefox、WindowsのFirefoxとGoogle Chromeで実行できましたが、MacOSXのGoogleChromeでは実行できませんでした。

Mac OSXでGoogleChromeをデバッグしようとすると、起動時にGoogle Chromeがプラグインを一時的にdyld-loading(およびすぐにdyld-unloading)しているように見えましたが、プラグイン内のシンボルを実際に検索したり、関数を呼び出したりすることはありませんでした。ただし、すべてのプラグインでそれを行っているようです。

また、プラグインのembed-tagを使用してページを読み込むと、Google Chromeはプラグインをdyld-loadすることすらできず、関数も呼び出されませんでした(NP_GetEntryPointsもありません)。Google Chromeもエラーメッセージを出力せず、プラグインをロードしないだけです。Google Chromeがさまざまなプロセスを使用しているため、gdbですべてをキャッチしたかどうかはわかりませんが、、、など--no-sandboxのすべてのスイッチも試しました(ちなみに、Mac OS Xではまったく機能しないようです)。また、バイナリのアーキテクチャが一致することを確認しました(つまり、Google Chromeの場合は32ビット)。--single-process--plugin-startup-dialog

誰かが以前に同様の問題を抱えていましたか?コンパイル時のgccスイッチなど、ここで欠けているものはありますか?

どんな助けでも大歓迎です。

4

3 に答える 3

1

これをさらに調査しました。問題は、npsimpleのLocalized.rがID 128エントリにMIMEタイプのみをリストし、それがMIMEタイプとファイル拡張子のペアであると想定されていることです。WebKitとGeckoは、ファイル拡張子エントリを持たない最後のエントリを許容しているようですが、Chromiumは許容していません。

ChromiumforMacでプラグインを機能させるには2つの方法があります。

  1. 最善の方法は、Appleのプラグインドキュメントの「プラグインの登録」セクションで説明されている、MIMEタイプを宣言する新しいInfo.plistスタイルを使用することです。これは、少なくともFirefox 3.5以降、Safari、およびChromeでサポートされています。古いブラウザのフォールバックとしてリソースを残すことができます。

  2. リソースのみを使用する場合は、Localized.rのMIMEエントリ行を次のように変更することで、MIME宣言に空のファイル拡張子を追加できます。

    "application / x-vnd-aplix-foo"、 ""

一部のブラウザ(Chromiumを含む)では、近い将来、古いリソースベースの方法のサポートが終了する可能性があることに注意してください。そのため、オプション1を使用することを強くお勧めします。

(おそらく、他のブラウザーのようにこれを適切に処理しないのはChromiumのバグですが、このメソッドは非推奨であり、私が知っている実際にデプロイされたプラグインでは問題にならないため、変更されます。)

于 2010-05-27T17:17:18.130 に答える
0

プラグインを確認しましたが、前述の開発ビルドでも機能します。したがって、原則として、このGoogle Chromeの開発ビルドは、サードパーティのNPAPIプラグインをサポートします。(これまで、FlashおよびQuicktimeプラグインのみをサポートしていた開発ビルドがあったようです。)

確認すべき点:

  • ブラウザのアドレスフィールドに「about:plugins」と入力すると、インストールされているプラ​​グインのリストにプラグインが含まれていますか?
  • コンソール出力を確認しましたか(console.appを実行します)?
    dylibのロードが失敗した場合など、貴重な情報がそこにある場合があります...
  • GoogleChromeが期待するプラグインバンドルのInfo.plistに何かが欠けている可能性があります。
于 2010-05-17T12:40:53.853 に答える
0

いくつかの非常に特殊な例外(どのMIMEタイプを処理しようとしていますか?)を除いて、有効なNPAPIプラグインをロードする必要があります。最善の方法は、調査できるようにできるだけ詳細にバグを報告することです(MacでのGoogle Chromeのプラグインサポートに取り組んでいます)。

于 2010-05-18T18:05:42.093 に答える