マルチアイテムパッケージは、ユーザがダウンロードしてインストールできる物や、アプリケーションや外部のプログラムによって事前にパッケージ化された物など、複数のインストール可能なBundleを一つのパッケージにまとめる機能を提供します。すべてのマルチアイテムパッケージは、1つのinstall.rdfファイル(古いスタイルの install.js ではなく!)と、以下の注意書きにある物を除いて、単体の拡張機能を作るのに必要な要素と同じ物を含みます。
現在の所、拡張機能の古いバージョンをインストールする際に、ユーザに対して警告したり、それを禁止したりするような機能はありません。
マルチアイテムパッケージ内のファイルの配置
マルチアイテムパッケージ内のファイルの配置は、インストール可能な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="https://home.netscape.com/NC-rdf#"
を宣言しておく必要もあります。
... <RDF xmlns="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:NC="https://home.netscape.com/NC-rdf#" xmlns:em="https://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="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="https://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のための公式のリファレンス
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!
- Structure of an Installable Bundle: describes the common structure of installable bundles, including extensions, themes, and XULRunner applications
- Extension Packaging: specific information about how to package extensions
- Theme Packaging: specific information about how to package themes
- Multiple-item Extension Packaging: specific information about multiple-item extension XPIs
- XUL Application Packaging: specific information about how to package XULRunner applications
- Chrome Registration