Firefox 3ではじめる拡張機能開発

第7回 インストーラの作成

この記事を読むのに必要な時間:およそ 5 分

アップデートマニフェストによる拡張機能の自動更新

よく知られているように,FirefoxはFirefox自身やインストールされている拡張機能を自動的に更新する機能を備えています。Firefoxのアドオンマネージャで「更新を確認」すると,各拡張機能に新しいバージョンがあるかどうかをチェックし,新しいバージョンが見つかった場合は「更新」パネルを表示し,ユーザが「更新をインストール」ボタンをクリックすることで簡単にバージョンアップすることが可能となります図2⁠。

図2 アドオンマネージャでの更新のインストール例

図2 アドオンマネージャでの更新のインストール例

このような自動更新の仕組みは,⁠アップデートマニフェスト」と呼ばれる更新情報を記述したファイルによって実現されます。アドオンマネージャにて「更新を確認」すると,各拡張機能のインストールマニフェスト中のタグで示されたURLからアップデートマニフェストを取得します。もし,取得したアップデートマニフェスト中に記載された拡張機能のバージョンが,現在インストールされているバージョンよりも新しい場合,⁠更新」パネルを表示してユーザへ通知します。⁠更新」パネルにて「更新をインストール」ボタンを押すと,アップデートマニフェスト中に記載されたURLから新しいバージョンのインストーラをダウンロードし,インストールを実行します。

ただし,インストールマニフェスト中にの記載が無い場合,アドオンマネージャは自動的に「Firefox Add-ons」注3からアップデートマニフェストを取得しようと試みます。

注3)
Firefox Add-ons(Mozilla公式の拡張機能配布サイト)
https://addons.mozilla.org/ja/firefox/

Firefox 3では,Firefox 2以前とは異なり,暗号化されていない通信経路(すなわちhttpプロトコルのURL)からアップデートマニフェストを取得したり,新しいバージョンのインストーラをダウンロードすることに制約が設けられました。具体的には,インストールマニフェストに記載されたアップデートマニフェストのURLがhttpプロトコルである拡張機能をインストールしようとすると,図3のようなエラーメッセージが表示されます。

図3 安全な更新方法が用意されていない拡張機能をインストールしようとしたときのエラー

図3 安全な更新方法が用意されていない拡張機能をインストールしようとしたときのエラー

このようなセキュリティ的な制約を考慮した上で,開発者が将来的なバージョンアップも見越して拡張機能を配布するには,通常下記の2通りの方法のうちのいずれかを選択することとなります。

  • (1) ⁠Firefox Add-ons」上で拡張機能を配布し,Webサイトによって自動的に生成されるアップデートマニフェストを用いる。
  • (2) 自分で作成したアップデートマニフェストを用い,httpsプロトコルでの暗号化通信に対応したWebサーバ上で拡張機能を配布する。

また,どうしてもhttpsプロトコルでの暗号化通信に対応していないWebサーバ上で拡張機能を配布したい場合,下記(3)の方法があります。

  • (3) 自分で作成したアップデートマニフェストへ電子署名を施して拡張機能を配布する。

多くのレンタルサーバはhttpsプロトコルでの暗号化通信に非対応かと思いますので,レンタルサーバ上で自由に拡張機能を配布したい方は,(3)の方式とする場合が多いでしょう。ここからは,(1)(2)の方法について簡単に解説します。なお,(3)の方法については次回解説します。

「Firefox Add-ons」での拡張機能の配布

もっとも簡単かつ安全にアップデートも含めて拡張機能を配布する方法は,⁠Firefox Add-ons」へ登録して公開する方法となります。前述のように,インストールマニフェストにの記載が無い拡張機能の更新を確認すると,自動的に「Firefox Add-ons」からアップデートマニフェストを取得しようとしますが,その拡張機能が「Firefox Add-ons」で公開されているものであれば,Webサイト側が適切なアップデートマニフェストを自動的に生成して返してくれます。もちろん,このときの通信はすべてhttpsプロトコルで安全に行われます。したがって,開発者はアップデートマニフェストを作成する必要が無く,新しいバージョンのインストーラを作成したら,単純に「Firefox Add-ons」へ再登録すれば良いだけになります。また,⁠Firefox Add-ons」で拡張機能を公開した際のメリットとして,アドオンマネージャの「アドオンを入手」パネルから検索およびインストールが可能となります図4⁠。

図4 アドオンマネージャでの拡張機能の検索例

図4 アドオンマネージャでの拡張機能の検索例

一方,⁠Firefox Add-ons」で拡張機能を公開する(初期登録時のサンドボックス状態から脱出する)にはレビューアによる審査を通過する必要があり,またレビューは新しいバージョンを再登録する都度行われますので,緊急を要するアップデート時でもレビュー完了を待たなければならないといったデメリットがあります。

著者プロフィール

Gomita

拡張機能開発者。
現在までにScrapBook,FoxAge2ch,Tab Scope,FireGesturesの4つをリリースしている。

URLhttp://www.xuldev.org/