はじめに
このページでは、Minefield で Add-on SDK (Jetpack SDK) を利用するにあたって留意すべき点をメモする。
バージョンチェックを回避する
拡張が宣言している対応バージョンと実際の Firefox のバージョンとが異なる場合、 「(拡張名)は(Firefox のバージョン)に対応していないため、インストールできませんでした」 といったメッセージが表示され、拡張をインストールできない。 例えば、Add-on SDK 1.0b1 は Firefox 4.0b7 および 4.0b8pre に対応しているが、 2011/01/06 時点の最新版である Minefield 4.0b9pre には対応しておらず、 上記のエラーメッセージが表示されてしまう。 このような場合、以下のいずれかの方法で回避する。
バージョンチェックを無効化する
ロケーションバーに「about:config」と打ち込み、[New]-[Boolean] で
「extensions.checkCompatibility.4.0b
」という項目を作り、
値を「false
」にする。
もしくは、
Add-on Compatibility Reporter
という拡張をインストールすることでもチェックを無効化できる。
バージョンチェックを無効化することで、Jetpack に限らず既存の拡張の多くが Minefield で活用できるようになる。 もちろん未対応拡張のご利用は自己責任で。
XPI ファイル内の install.rdf を修正する
拡張の XPI ファイルは要するに ZIP アーカイブなので、拡張子を *.zip に変えれば中身を閲覧・編集できる。
自作した拡張の配布時など、対応バージョンを書き換えたい場合には、
XPI の中に含まれる install.rdf を編集すればよい。
<em:maxVersion>
が対応バージョンの最大値なので、「4.0.*」などを指定する。
install.rdf のテンプレートを修正する
上記の install.rdf は、Add-on SDK をインストールしたディレクトリ内の
「python-lib\cuddlefish\app-extension\install.rdf
」
がテンプレートとなっている。
このファイルを修正して <em:maxVersion>
などを書き換えれば、
以降作成した拡張すべてに反映される。
テスト実行に Minefield を利用する
cfx run、cfx test、cfx testall コマンドは、Firefox を起動して拡張の動作確認やテストを実行する。 この時、何も指定しなければ「%ProgramFiles%\Mozilla Firefox\firefox.exe」が起動される。 以下の方法で Minefield を起動できる。
-b オプションを利用する
「cfx run -b "C:\Program Files\Minefield\firefox.exe"」のように、
「-b
」オプションで起動する Firefox を指定できる。
また、プロファイルを指定したい場合には「-P
」オプションを利用する。
local.json ファイルを利用する
cfx コマンドのオプションは local.json というファイルで管理できる。 local.json は Add-on SDK のインストールディレクトリ直下(README.txt の隣)に置く。 内容は次のような JSON ファイルである。
{ "configs": { "default": [ "-b", "C:\\Program Files\\Minefield\\firefox.exe" ] } }
"default" はこの設定の名前である。cfx コマンドで何も指定しなければ "default" 設定が使われる。 他の名前をつけ、複数の設定を書き並べることもできる。"default" 以外の設定を使う場合、 「cfx run -g (設定名)」もしくは「cfx run --use-config=(設定名)」のように実行する。
拡張を unpack する (SDK 0.7)
従来は拡張をインストールするとプロファイルフォルダ内に展開した状態で保存されていた。 しかし、Bug 533038 により、 Minefield 4.0b6pre では XPI ファイルの形のままで拡張が保存されるようになった。 この影響で、Jetpack SDK 0.7 で作成した拡張が動作しなくなっている (2010/09/13 時点。ただし、すでにインストール済みの拡張は動く)。 この問題は Bug 597509 で修正されたため、SDK 0.8 以降であれば問題ない。 0.7 以前の SDK を使う場合、以下のいずれかの方法で回避する。
すべての XPI を展開するように戻す
ロケーションバーに「about:config」と打ち込み、 「extensions.alwaysUnpack」という項目を探して、値を「true」にする。 ただし、この項目は今後 false が標準となるので、true に戻すという対処は推奨できない。
XPI ファイル内の install.rdf を修正する
作成した拡張の XPI ファイルを ZIP として展開し、install.rdf を編集する。
install.rdf に「<em:unpack>true<em:unpack>
」を追記すれば、
拡張は展開されない。
install.rdf のテンプレートを修正する
上記の install.rdf は、Jetpack をインストールしたディレクトリ内の
「python-lib\cuddlefish\app-extension\install.rdf
」
がテンプレートとなっている。
このファイルを修正して <em:unpack>true<em:unpack>
を追記すれば、
以降作成した拡張すべてに反映される。
関連リンク
- https://jetpack.mozillalabs.com/sdk/latest/docs/#guide/cfx-tool
- https://bugzilla.mozilla.org/show_bug.cgi?id=533038
- https://bugzilla.mozilla.org/show_bug.cgi?id=597509
- https://bugzilla.mozilla.org/show_bug.cgi?id=604641
- https://wiki.mozilla.org/Firefox/Planning/2010-09-01#Firefox_4_Beta_6
- Add-on Compatibility Reporter :: Add-ons for Firefox
- SCRAPBLOG : Jetpack SDK 0.4 で cfx コマンドのユーザ定義オプションを設定する
- Jetpack SDKで作ったxpiがFirefox4(minefield)にインストールできないとき - Cherenkovの暗中模索にっき
- http://space.geocities.yahoo.co.jp/gl/alice0775/view/20100912
更新履歴
- 2011/01/06: 最新の状況に更新。
- 2010/11/01: 2010/10/13 以降発生している問題について状況を追記。
- 2010/09/30: 節名を「拡張を unpack する (4.0b6pre)」から「~ (SDK 0.7)」に変更。
- 2010/09/18: SDK 0.8 では unpack の問題は解決された。
- 2010/09/13: 初版作成。