toolkit ベースのアプリケーション(Firefox やその他の XULRunner を使用したアプリケーション)向けの拡張機能をインストールする機能をインストーラに持たせたい場合について、Gecko 1.9(Firefox 3)は Windows、Mac OS X、Linux 上でそれを簡単に行えるようにするための機能を提供します。Windows ユーザについては、当面の所はレジストリを使って拡張機能をインストールする方法も利用できます。
現在、Mac OS X および Linux においては、ユーザのコンピュータ内のあらかじめ決められた位置のディレクトリに拡張機能をコピーするだけでよいです。
この方法を通じてインストールされた拡張機能については、新しく作成された物・既に存在していた物を問わず、そのアプリケーションのすべてのプロファイルに対してインストールされる事に注意してください。
Windows
拡張機能を特定のユーザに対してだけインストールする場合は、ユーザのアプリケーションディレクトリ内の以下の位置にファイルを置いてください:
C:\Documents and Settings\Dave\Application Data\<vendor>\Extensions\<appid>
Mac OS X
拡張機能をその Mac OS X を使用しているすべてのユーザに対してインストールするのであれば、ファイルを以下の位置にコピーしてください:
/Library/Application Support/<vendor>/Extensions/<appid>
拡張機能を特定のユーザに対してだけインストールする場合は、ユーザのライブラリフォルダ内の以下の位置に置いてください:
~/Library/Application Support/<vendor>/Extensions/<appid>
Linux
拡張機能をその Linux を使用しているすべてのユーザに対してインストールするのであれば、ファイルを以下の位置にコピーしてください:
/usr/lib/<vendor>/extensions/<appid>
または、
/usr/lib64/<vendor>/extensions/<appid>
または、
/usr/share/<vendor>/extensions/<appid>
拡張機能を特定のユーザに対してだけインストールする場合は:
~/.<vendor>/extensions/<appid>
アクセス
あなたは、XPI ファイルを上記のディレクトリにドラッグ&ドロップする方法と、XPI ファイルの内容をその拡張機能の id の名前のフォルダの中に展開する方法のどちらも利用できます。
拡張機能をフォルダに展開しない(XPI ファイルのまま置く)場合は:
- XPI ファイルが置かれているディレクトリに書き込み権限があるユーザの1人目に対して、そのアプリケーションを次に起動した時に拡張機能をインストールするための確認のダイアログが表示されます。
- XPI ファイルが置かれているディレクトリに対する書き込み権限を持たないユーザであった場合は、ファイルの内容を展開できないため、拡張機能は有効にはなりません。
- しかしながら、一度書き込み権限のあるユーザがアプリケーションを実行して拡張機能をインストールした後であれば、それ以降は書き込み権限を持たないユーザでも同様に拡張機能を利用できるようになります。
展開された拡張機能は暗黙的に、ユーザの権限に関わらずすべてのユーザに対してインストールされます。
例
例えば、Firefox 用のプラグインを含む Mac OS X 用のスタンドアロンのアプリケーションを作った場合、あなたが作るインストーラは拡張機能を(もしそのフォルダが存在していないのであれば作成して)以下のフォルダにコピーすることになるでしょう:
/Library/Application Support/Mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" は Firefox のアプリケーション ID です。
次に、拡張機能の XPI ファイルをそのディレクトリにコピーするか、unzip コマンドでその拡張機能の id の名前のフォルダの中に XPI の内容を展開します:
/Library/Application Support/Mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/{dba45d40-f69e-11dc-95ff-0800200c9a66}
"{dba45d40-f69e-11dc-95ff-0800200c9a66}" はその拡張機能の id です。