拡張機能は、利用者がダウンロードやインストールできる Installable Bundleの形式または、pre-パッケージされてアプリケーションまたは拡張プログラムと共に提供されます。拡張機能はXULプログラムの機能を拡張するための chrome、コンポーネント、およびその他のファイルを提供するのに ディレクトリ構造を使っています。
すべての拡張は、拡張機能についてのメタデータ(ユニーク ID、バージョン、制作者、および互換性情報など)を含む install.rdf ファイルを備えなければなりません。
拡張機能のファイルと install.rdf の用意ができたら、いくつかの方法で拡張機能のインストーラを作ります: 拡張機能ディレクトリをユーザがインストールできる XPI (xpinstall) ファイルに ZIP 圧縮、ユーザのアプリケーション profile ディレクトリに拡張機能ディレクトリを解凍するか、拡張機能を Windows レジストリに登録する。
Starting in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1), XPI files are no longer unpacked when extensions are installed. Instead, the XPI itself is placed in the extensions directory, and files are loaded directly out of the package. See Updating extensions for Firefox 4 for details.
拡張機能 XPI の作り方
XPI (XPInstall) ファイルは単純な ZIP ファイルで、拡張機能ファイルと ZIP の root には install.rdf を含んでいます。ユーザは XPI ファイルを Web サイトからダウンロードしたりローカルファイルを拡張マネージャウインドウにドロップしてインストールできます。
Firefox が識別する XPI ファイルの MIME typeは、application/x-xpinstall です。たいていの HTTP サーバはデフォルトで .xpi 拡張機能に対してこの MIME type を返すようになっておらず、大抵、HTTP サーバに設定が必要です。 Apache HTTP Server では、次の指示を設定ファイルまたは .htaccess に追加します。
AddType application/x-xpinstall .xpi
Install Extension Files Directly
もし、アプリケーションの位置を知っていれば (アプリケーションの一部として拡張機能をインストールする場合など)、拡張機能ファイルディレクトリを <appdir>/extensions/<extensionID> にインストールできます。拡張機能は次回アプリケーションを起動したときに自動的に拡張マネージャーに現れます。
When using this method you must verify that the file system permissions for the directories and files for the extension are set properly. Otherwise, the Extension Manager may not function properly with the extension or the extension itself may not work properly.
Windows レジストリを使って拡張機能の場所を登録する
External installers (such as the Java runtime) may wish to install application integration points as extension even if the application is not yet installed. This can be accomplished on Windows using the registry.
マルチアイテム拡張 XPI
いくつかの場合、単一 XPI ファイルで複数の拡張/テーマをインストールすることがあります。 A special kind of extension XPI called the Multiple Item Package explains how to create this kind of package. (Firefox 1.5/XULRunner 1.8 required.)
Official References for Toolkit API
Official References. Do not add to this list without contacting Benjamin Smedberg. Note that this page is included from the pages listed below. So: Don't Add Breadcrumbs!
- インストール可能な Bundle の構造: 拡張機能、テーマ、および XULRunner アプリケーションを含むインストール可能な Bundle の共通の構造についての記述
- 拡張機能のパッケージ化: 拡張機能を梱包するための仕様
- テーマのパッケージ化: テーマを梱包するための仕様
- 複数の拡張機能のパッケージ化: 複数の拡張機能を含む XPI ファイルを作成するための仕様
- XUL アプリケーションのパッケージ化: XULRunner アプリケーションを梱包するための仕様
- Chrome の登録