[あすかぜ・ねっと]あすかぜ・ねっとその他Add-on SDK (Jetpack SDK) > 更新チェック

更新チェックへの対応

概要

cfx xpi コマンドの「--update-url」オプションと「--update-link」オプションを使うことで、 Jetpack 拡張を Firefox の更新チェック機能に対応させることができる。

更新チェックの仕組み

[更新チェックのフロー]

Jetpack 拡張の更新チェックの仕組みは、従来の拡張と全く変わらない。 拡張に含まれる install.rdf の設定に従って配布サイトに問い合わせ、 もし新しいバージョンがリリースされていればダウンロードするようになっている。 install.rdf に配布サイトの指定がない場合は Mozilla 公式の配布サイトである AMO (addons.mozilla.org) に対して問い合わせが行われる。 また、開発者のホームページで更新を配布する場合、 サイトが HTTPS (SSL による暗号化通信) に対応している場合と対応していない場合で制約条件が異なり、 HTTPS に対応しない場合は別途更新ファイルの安全性を保証する必要がある。

配布サイト

自作の拡張を更新チェックに対応させる場合、まずは配布サイトを決定しなければならない。 選択肢としては、「AMO を使う」「HTTPS サイトを使う」「HTTP サイトを使う」の 3 つが存在する。以下、それぞれの特徴を挙げる。

AMO を使う場合

AMO (addons.mozilla.org) を使う場合の方法は従来の拡張と同じである。 「cfx xpi」で拡張を作成して AMO にアップロードすればよい。 Add-on Builder を使っている場合は「Download」ボタンから XPI ファイルをダウンロードし、 AMO にアップロードする。 将来的には、Add-on Builder と AMO が連携することで、 より簡単に拡張を更新できる仕組みが整えられるものと期待される。

HTTPS サイトを使う場合

開発者のホームページで更新を配布する場合、update.rdf (更新情報ファイル) の URL と拡張自身の配布 URL という 2 つの URL を決定する必要がある(このページの最初の図を参照)。 この 2 つの URL は、自分の管理するサイトの中で適切なものを用意する。 ここでは、例として update.rdf の URL を「https://example.com/myaddon.update.rdf」、 拡張の配布 URL を「https://example.com/myaddon.xpi」とする。 拡張を作成したら、次のように「cfx xpi」コマンドに「--update-url」オプションと 「--update-link」オプションを渡して 2 つのファイルを作成する。

(D:\jetpack) D:\jetpack\packages\myaddon>cfx xpi --update-url=https://example.com/myaddon.update.rdf --update-link=https://example.com/myaddon.xpi
Exporting update description to myaddon.update.rdf.
Exporting extension to myaddon.xpi.

(D:\jetpack) D:\jetpack\packages\myaddon>

ここで、生成されるファイル名はアドオン名を元につけられるもので、URL とは無関係である。 ファイル名を変更したくないのであれば、 「アドオン名.update.rdf」および「アドオン名.xpi」という URL にすればよい。 生成されたファイルを確認すると、 myaddon.update.rdf 内に 「<em:updateLink>https://example.com/myaddon.xpi</em:updateLink>」 という情報が、 myaddon.xpi を ZIP 形式として展開した中の install.rdf 内に 「<em:updateURL>https://example.com/myaddon.update.rdf</em:updateURL>」 という情報が入っていることがわかる。

ファイルが生成できたら、入力した URL に従ってファイルを配置する。 ただし、update.rdf ファイルは、mimetype を text/rdf もしくは text/xml として送信しなければならない。 Apache であれば .htaccess ファイルなどで指定する。

AddType text/rdf .rdf

拡張更新時に同じ URL の update.rdf を更新すれば、既存のユーザに通知される。

なお、SDK 0.9 までは「--update-url」「--update-link」の代わりに 「-u」「-l」という短い形式のオプションを使うことができたが、 SDK 1.0b1 で廃止された (Bug 614129)。

HTTP サイトを使う場合

HTTP サイトを使う場合、上記 HTTPS サイト向けの手順に加え、 update.rdf の署名および XPI ファイルのハッシュの明記が必要となる。 cfx コマンドのオプションでは実行できないため、 手作業で update.rdf および install.rdf を編集する。 編集方法は関連リンク参照。

更新履歴

Add-on SDK (Jetpack SDK) に戻るこのページの一番上へ

Menu


Copyright (C) 2010 asukaze, Some Rights Reserved.
Last Update: 2010/12/19
mail (at) asukaze.net