私が書いているFirefoxアドオンにnpapiをパッケージ化しようとしています。プラグインを〜/ Library / Internet Plug-ins /にインストールしている場合、すべて正しく機能しますが、xpiでインストールできません。プラグインディレクトリのルートレベルにプラグインがありますが、Firefoxにxpiでインストールするように指示する方法がわかりません。
任意のヒント?
私が書いているFirefoxアドオンにnpapiをパッケージ化しようとしています。プラグインを〜/ Library / Internet Plug-ins /にインストールしている場合、すべて正しく機能しますが、xpiでインストールできません。プラグインディレクトリのルートレベルにプラグインがありますが、Firefoxにxpiでインストールするように指示する方法がわかりません。
任意のヒント?
プラグインをXPIパッケージに入れるplugins/plugin.dylib
など、まさにあなたがしなければならないことです。Firefoxは、このプラグインをインストールするために特別なことは何もしません。拡張ディレクトリに残りますが、そこでピックアップする必要があります。about:plugins
ページ(またはアドオンマネージャーの[プラグイン]タブ)を開いて、プラグインが実際にインストールされているかどうかを確認できます。
もう1つ重要なことは、インストールマニフェスト(install.rdf
)に次の行を含める必要があるということです。
<em:unpack>true</em:unpack>
これは、FirefoxがインストールされたときにXPIパッケージを解凍するようにアドバイスします。デフォルトでは、ディレクトリではなく単一の圧縮ファイルとしてインストールされます。ただし、圧縮ファイルからプラグインをロードすることはできません。
詳細については、ドキュメントを参照してください。
残念ながら、新しいFirefox SDKでは、npapiプラグインを自動インストールできません。「bootstrappable」であるアドオンは、有効なプラグインソースにはなりません。私の知る限り、bootstrappableは、要素をブラウザに動的に挿入するスクリプトからロードされることを意味します。オーバーレイなどを定義するだけの古いoverlaysメソッドを使用する必要がありますが、正直なところ、古いメソッドを使用したことはありません。
プラグインをSDKアドオンに追加したい場合は、msfeldsteinが指摘したように、それは不可能だと思います。プラグインディレクトリを作成してに設定 <em:unpack>true</em:unpack>
しても、が設定されているinstall.rdf
場合、Firefoxはプラグインをロードしません<em:bootstrap>true</em:bootstrap>
。
回避策として、ここで説明するように、アドオンと、プラグインのコンテナにすぎない別のxpiを含むバンドルxpiを作成できます。そうすれば、SDKアドオンとプラグインの両方を同時にインストールできます。
私はこのガイドを使用します:http://devilsworkshop.org/shortest-tutorial-for-firefox-extensiontoolbar-development/、プラグインの例を使用しますhttp://pub.rtcamp.com/firefox/extensions/googbar.zip(変更xpiにzipします)。npPlugin.dllの場合、フォルダプラグインを作成し、そこにプラグインライブラリを配置します。