では実際に拡張機能に更新機能を持たせてみましょう。対象として、前回の記事「【ハウツー】カスタマイズ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の拡張機能を作ろう」の「パッケージの作成」を参照してください。