2013年4月10日

アドオンのメモリリークチェック

UnMHT が bootstrapped extension になったのは開発する際にも色々メリットがあります。一番は何と言ってもそのものズバリ再起動しなくて良いという事。ソース弄る、ビルド、インストール、再起動、チェックという手順は結構面倒なもの。それがソース弄る、ビルド、インストール、チェック、になれば時間的にもかなり改善されます。

ところで、 bootstrapped になった事でやらなくてはならない事も増えます。それは正確な終了処理。それまではアドオンの寿命は Firefox の寿命と同じだったワケで、終了処理は別に書かなくても良かったワケですが、bootstrapped になると寿命が全く異なります。Firefox の起動中に、有効になり、無効になり、インストール、アップデート、アンインストールがそれぞれ複数回起きます。

そうすると問題になるのが終了処理。つまり無効にするタイミングや、アップデート、アンインストールのタイミングで Firefox の弄った部分を全て元に戻さなくてはいけません。

目に見える部分については分かりやすいけど、目に見えない部分は本当に元に戻ってるか、どこかに参照が残っていないかしっかりチェックしないといけません。

そういうとき便利なのが about:compartments とか about:memory?verbose とか。軽い用途なら about:compartments で事足ります。

アドオンを無効にした後で、このリストに自分のアドオンの URL が入っていればアウト、入っていなければ(多分)セーフという感じです。about:memory?verbose の方は他にも色んな情報が見れますが、無効にした結果 about:compartments から URL が消える状況でもしばらく残ってたりするので、単純なチェックにはちょっと向かないかもしれません。

0 件のコメント:

コメントを投稿