では実際に拡張機能に更新機能を持たせてみましょう。対象として、前回の記事「【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう」で作成した拡張機能を利用します。

本稿では、新たに別の拡張機能として作成しますので、「sample001」という名前を「sample002」という名前に変更します。ソースファイル中のsample001という文字をすべて sample002に置き換えてください。前回はメニューから項目を選択すると新しいタブを開き、土曜日はeiga.com、それ以外の日はyahoo.co.jpの画面を開く拡張機能を作りました。

私もうっかりしていたのですが、ここはマイコミジャーナルですので、yahoo.co.jpではなくマイコミジャーナルのページを開くようにすべきでした。そこで、シナリオとして、最初はyahoo.co.jpを開くように作ったが、後でマイコミジャーナルのページを開くように修正することになった、としましょう。

それに対応するには、拡張機能のソースファイルを書き換えて再度パッケージを作り、古いバージョンを一度削除して新しいバージョンを入れればいいわけです。しかし、開くページを変えたくなるたびに、いちいちそのような作業をするのは面倒です。だからこそ自動更新機能を使うわけです。

install.rdfファイルの修正

まず、install.rdfファイルを修正して自動更新機能対応にします。

install.rdf

001:<?xml version="1.0"?>
002:<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
003: xmlns:em="http://www.mozilla.org/2004/em-rdf#">
004:
005:  <Description about="urn:mozilla:install-manifest">
006:    <em:id>{04d2bb32-d7c0-4ee8-a5b9-f70798dda4f1}</em:id>
007:    <em:name>Sample Extension 002</em:name>
008:    <em:version>1.0</em:version>
009:    <em:description>A sample extension 002</em:description>
010:    <em:creator>Jun Oura</em:creator>
011:    <em:type>2</em:type>
012:    <em:updateURL>http://www.junoura.com/firefoxextension/sample002/update.rdf</em:updateURL>
013:    <em:file>
014:      <Description about="urn:mozilla:extension:file:sample002.jar">
015:        <em:package>content/</em:package>
016:      </Description>
017:    </em:file>
018:    <em:targetApplication>
019:      <Description>
020:        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
021:        <em:minVersion>1.0</em:minVersion>
022:        <em:maxVersion>2.0+</em:maxVersion>
023:      </Description>
024:    </em:targetApplication>
025:  </Description>
026:</RDF>

追加したのは、12行目の「<em:updateURL>http: //www.junoura.com/firefoxextension/sample002/update.rdf</em:updateURL>」の一行だけです。この行では、「update.rdf」というファイルに更新情報を書いて"このアドレスに置きますよ"ということを記述しています。

Mozilla.orgからは更新情報を置く場所はセキュリティの観点からできるだけhttpsを使うように推奨されています。

ここまでの作業が終わったら、拡張機能を「sample002.xpi」という名前でいったんパッケージ化してください。パッケージ化する方法の詳細は、前回の記事「【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう」の「パッケージの作成」を参照してください。