Firefox拡張機能 開発の準備

Firefox 拡張機能の開発を始めることにした。まずは開発環境を整えなければならない。
参考にしたページは以下。

そのページにすべて書いてあるけど、以下自分なりのメモ。なお、Firefoxのプロファイル、about:configなどについては知ってるものとして話を進める。

必要なものを揃える

まず、拡張機能開発に必要なものは以下の通り。

これだけ。もうみんな持ってるよね。

開発用のプロファイルを作成する

次に開発用のプロファイルを作成する。拡張の開発では色々試しているうちに何かトラブルが起きるかもしれない。普段とは異なるプロファイルで作業していれば原因究明もしやすいし、秘密の情報(Amazonのパスワードとか)が漏れる心配もない。そんなわけで開発専用のプロファイルを作成する。
手順は以下の通り

% firefox -CreateProfile dev  #プロファイル'dev'を新規作成
% firefox -no-remote -P dev   #プロファイル'dev'で起動

devは好きな名前で良い。また筆者の環境では、Firefoxを一旦終了させてからでないとプロファイルを新規作成できなかった。
-no-remoteは、すでにFirefoxが起動しているときに2つめを異なるプロファイルで起動させるためのオプション。Webでチュートリアルを見ながら自分で作成した拡張を動作確認したりするときなんかのためにに必要になる。
これはLinux コマンドラインの例だけど、Windowsとかでも同じだと思う。適当にショートカットなんかをいじってほしい。
これで思う存分いろんなことが試せる。もちろん開発用プロファイル側ではあやしげなサイトを見たり、パスワード等の重要な情報を入力してはいけない。

開発用の設定に変更する

普通Firefoxはちょっとぐらいのエラーは出力してくれない。普段はそれで問題ないけど、開発する上ではもっとエラーを出力してくれないと困る。そんなわけで開発用の設定に変更する。

//拡張機能開発用の設定
//chromeファイルでのエラーをエラーコンソールに出力する
user_pref("javascript.options.showInConsole", true);
//XULキャッシュを無効にする
user_pref("nglayout.debug.disable_xul_cache", true);
//dump()文の使用を可能にする
user_pref("browser.dom.window.dump.enabled", true);
//エラーコンソールでの厳密な警告を有効にする
user_pref("javascript.options.strict", true);

これをuser.jsに追記する。もちろんabout:configで設定しても良い。

以上でとりあえず準備は終わり。これからどんどん開発していきたい。