Multiple Item Packaging
出典: MDC
マルチアイテムパッケージは、ユーザがダウンロードしてインストールできる物や、アプリケーションや外部のプログラムによって事前にパッケージ化された物など、複数のインストール可能なBundleを一つのパッケージにまとめる機能を提供します。すべてのマルチアイテムパッケージは、一つのinstall.rdfファイルと、以下の注意書きにある物を除いて、単体の拡張機能を作るのに必要な要素と同じ物を含みます。
現在の所、拡張機能の古いバージョンをインストールする際に、ユーザに対して警告したり、それを禁止したりするような機能はありません。
目次 |
[編集] マルチアイテムパッケージ内のファイルの配置
マルチアイテムパッケージ内のファイルの配置は、インストール可能なBundleの内容をより簡潔にしたもので、ファイルの拡張子は xpi です。一つのマルチアイテムパッケージの中に、拡張機能(ファイル名の拡張子が xpi である物)とテーマ(ファイル名の拡張子がjarである物)の両方を含めることができます。基本的な構造は以下の通りです:
/install.rdf インストール定義 /extension1.xpi 拡張機能 /extension2.xpi 拡張機能 /theme1.jar テーマ /theme2.jar テーマ ...
拡張機能マネージャは、これがマルチアイテムパッケージであるかどうかを判別するために install.rdf で提供されたインストール定義を読み取り、その中に含まれているそれぞれの個別のパッケージのインストールを自動的に開始します。install.rdf で提供されたインストール定義と同じ階層に置かれたその他のファイルや、jar や xpi といった拡張子のファイルは、展開されることも利用されることもありません。
[編集] install.rdf
マルチアイテムパッケージは、install.rdf について、拡張機能の場合とは異なる要件を持っています。必要な項目は em:id と em:targetApplication 、そして em:type だけです。
Firefox 1.5 および Thunderbird 1.5 の拡張機能マネージャがこのパッケージをマルチアイテムパッケージであると判別できるようにするために、あなたの作る install.rdf では <em:type NC:parseType="Integer">32</em:type> のような形で、 em:type の値として 32 を指定する必要があります。また、以下の例で示すように、あなたの作るinstall.rdfの中ではXML名前空間として xmlns:NC="http://home.netscape.com/NC-rdf#" を宣言しておく必要もあります。
...
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:NC="http://home.netscape.com/NC-rdf#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<!-- マルチアイテムパッケージ用に、nsIUpdateItem の型を指定 -->
<em:type NC:parseType="Integer">32</em:type>
...
Firefox 2.0 および Thunderbird 2.0 の拡張機能マネージャに対しては、前述の記法もしくは、以下のような <em:type>32</em:type> という書き方のどちらも使えます。
...
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<!-- マルチアイテムパッケージ用に、nsIUpdateItem の型を指定 -->
<em:type>32</em:type>
...
em:targetApplication を指定するときは、minVersion には最も高い minVersion を、maxVersion には最も低い maxVersion を、このマルチアイテムパッケージが含んでいるその em:targetApplication 用のインストール可能なBundlesすべての中から選び出してください。この作業を怠ると、マルチアイテムパッケージ内に含まれているバージョンにおいて互換性がないとされている項目は、互換性のチェックにおいて、互換性があると見なすための新しい互換性情報を検出できたとしても、インストールはされません。
[編集] インストール
マルチアイテムパッケージのインストールにおいては、拡張機能やテーマをインストールするための現存するあらゆる方法と、拡張機能やテーマについての場合と同じユーザインターフェースを用いて、インストールを実行することができます(ただし、マルチアイテムパッケージに含まれている個々のパッケージは列挙されません)。また、マルチアイテムパッケージのために署名の情報を示すこともできます。
マルチアイテムパッケージのダウンロードが完了して(拡張機能マネージャやテーママネージャのような)マネージャが表示されたときには、マネージャは、ユーザが複数の項目を同時にインストールするように選択した場合と同じ方法で、マルチアイテムパッケージに含まれていたすべての個々の項目を表示します。マルチアイテムパッケージのダウンロードが完了した後は、マネージャはマルチアイテムパッケージ自身を一覧の中には表示しません。
[編集] Toolkit APIのための公式のリファレンス
- インストール可能な Bundle の構造: 拡張機能、テーマ、および XULRunner アプリケーションを含むインストール可能な Bundle の共通の構造についての記述
- 拡張機能のパッケージ化: 拡張機能を梱包するための仕様
- テーマのパッケージ化: テーマを梱包するための仕様
- 複数の拡張機能のパッケージ化: 複数の拡張機能を含む XPI ファイルを作成するための仕様
- XUL アプリケーションのパッケージ化: XULRunner アプリケーションを梱包するための仕様
- Chrome の登録