アドオンのロードとアンロードのリッスン
このチュートリアルに沿って学習するには、あらかじめ SDK をインストールし、cfx
入門を学習してください。
exports.main()
アドオンの main.js
コードは、アドオンが読み込まれるとすぐに実行されます。main.js
コードは、インストールされたとき、有効化されたとき、または Firefox が起動したときに読み込まれます。
アドオンが main()
という関数をエクスポートする場合、main.js
全体が評価され、すべての最上位レベルの require()
文が実行されると(したがって、通常、すべての従属モジュールが読み込まれると)すぐにその関数が呼び出されます。
exports.main = function (options, callbacks) {};
options
は、アドオンのロードに使用したパラメータを示すオブジェクトです。
options.loadReason
options.loadReason
は、アドオンが読み込まれた理由を示す以下のいずれかの文字列です。
install enable startup upgrade downgrade
options.staticArgs
cfx
--static-args
オプションを使用すると、任意のデータをプログラムに渡すことができます。
--static-args
の値には、JSON 文字列を指定します。JSON によってエンコードされたオブジェクトは、options
オブジェクトの staticArgs
メンバーとなり、最初の引数としてプログラムの main
関数に渡されます。--static-args
のデフォルトの値は 「{}」
(空のオブジェクト)なので、options
に staticArgs
が存在するかどうかを確認する必要はありません。
例えば、main.js
が以下のような場合、
exports.main = function (options, callbacks) {
console.log(options.staticArgs.foo);
};
以下のように cfx を実行すると、
cfx run --static-args="{ ¥"foo¥": ¥"Hello from the command line¥" }"
コンソールに、以下のように表示されます。
info: Hello from the command line
--static-args
オプションは、cfx run
と cfx xpi
のいずれによっても認識されます。cfx xpi
で使用した場合、JSON が XPI の harness options を伴ってパッケージ化されるので、XPI 内のプログラムを実行するたびに使用されるようになります。
exports.onUnload()
アドオンが onUnload()
という関数をエクスポートする場合、その関数はアドオンがアンロードされたときに呼び出されます。
exports.onUnload = function (reason) {};
reason
は、アドオンがアンロードされた理由を示す以下のいずれかの文字列です。
ただし、bug 627432 のバグのため、onUnload
リスナーが uninstall
を理由として呼び出されることはなく、disable
でのみ呼び出されます。特にそのバグのコメント 12 を参照してください。
uninstall disable shutdown upgrade downgrade
exports.main()
や exports.onUnload()
の使用は必須ではありません。関数でラップして exports.main()
に割り当てなくても、アドオンのコードを最上位レベルに置くだけで、同じように読み込まれます。ただしその場合、options
引数や callbacks
引数にアクセスすることはできません。