2012-01-04 34 views
1

Chrome拡張機能に組み込まれているNPAPIプラグインがあり、マニフェストファイルに公開として定義されています。プラグインのMIMEタイプのオブジェクトタグが拡張のバックグラウンドページに挿入されると、プラグインが正常にロードされます。 chrome.tabs.executeScriptを使用して同じオブジェクトタグを任意のWebページに挿入すると、読み込まれません。プラグイン自体がPluginsフォルダに置かれ(ブラウザにロードされた場合)、適切なMIMEタイプのオブジェクトが任意のWebページに正常に挿入されます。Chrome拡張機能のPublic NPAPIプラグインが読み込まれない

拡張機能の中にデプロイされ、公開されていると、プラグインが任意のWebページに正しくロードされないのはなぜですか(私の知る限り、どのページでも利用できるはずです)。プラグイン:あなたは、それは程度に表示されます公共のプラグインと拡張機能をインストール(およびすべてが正しくインストールされている)場合は、要求=としての私のコメント(秒)]

との答えを投稿

+0

about:pluginsに移動すると表示されますか? – taxilian

+0

Pluginsフォルダから読み込まれると、それが表示されます。拡張機能の一部として追加されてもそこには表示されませんが、このページの拡張機能から単一のプラグインが表示されることはありませんでしたので、プラグインはそのようなプラグインを表示するようには設計されていません。 – Stan

+0

が正しくありません。拡張プラグインをインストールして(そしてすべてが正しくインストールされていると)about:プラグインに表示されます。したがって、拡張機能やプラグインのインストールに問題があります。残念なことに、それは私が知っているすべてです – taxilian

答えて

1

。したがって、拡張機能やプラグインのインストールに問題があります。残念ながら、それは私が知っているすべてです。

about:コメントに記載されているプラ​​グインは、拡張機能にパブリックプラグインとしてインストールされていても、NPAPIプラグインとしてインストールされていても、公開されているすべてのプラグインを表示します。

2

mark the plugin"public": trueをエクステンションのマニフェストに使用する必要があります。プラグインはabout:pluginsに表示されます。

プラグインが表示された場合は、about:pluginsのMIMEタイプとファイル拡張子がページに挿入されている埋め込みエレメントのタイプと一致することを確認します。他のプラグインが同じMIMEタイプを持っているかどうか確認してください。以前にリストされたプラグインのMIMEタイプが同じ場合は、というプラグインがロードされます。

あなたのプラグインが表示されない、またはそれが現れるが、動作しません、あなたがより多くの探偵の仕事を持っている場合:

あなたから余分なログを取得するために--debug-plugin-loadingフラグでChromeを起動することができますプラグインインフラストラクチャ。これらのメッセージの一部は次のようになります。

[24634:-1392008512:1466799063452984:ERROR:plugin_list.cc(358)] Loading plugin /Library/Internet Plug-Ins/Flash Player.plugin 

ERRORという単語が含まれていますが、これらのメッセージはエラーではありません。 ERRORはログレベルに過ぎません。コンテキスト内のログメッセージを読むには、Chromium Code Searchとログに記載されているファイル(plugin_list.ccなど)を使用します。 Chromeはmulti-process architecture.を使用していますので、出力によって異なるプロセスのログメッセージが散在する可能性があります。

プラグインのソースがある場合は、プラグインコードにloggingステートメントを挿入します。例えば、OS X上に書くことができ:

NPError NP_GetEntryPoints(NPPluginFuncs *pluginFuncs) { 
    NSLog(@"FOO NP_GetEntryPoints"); 
    … 

、その後

2012-08-20 11:22:56.799 Google Chrome Helper EH[23544:b03] FOO NP_GetEntryPoints 

はログに表示されます。これらのログステートメントは、プラグインの読み込みが失敗する前にどのくらいの距離で取得されているかについてのさらなる手がかりを与えることができます。

build Chromium from scratchがあり、--plugin-launcherコマンドラインオプションを使用して、プラグインローダーのソースレベルのデバッグを取得できます。

関連する問題