Thunderbirdの拡張機能を作って、何人かの人に使ってもらっているのですが、正しく動作しないとの報告がありました。
原因を調査中なのですが、設定情報を保存するあたりにバグがあるのではないかと思いました。
設定情報の保存は、以下のようなクラスを作っているんですが、何かおかしな所があれば指摘してほしいです。
よろしくお願いします。
---
PrefUtil = {
  PREF : Components.classes['@mozilla.org/preferences;1'].getService(Components.interfaces.nsIPrefBranch),
  KEY : "hogehoge",
  getPref : function() {
    try{
      var type = PrefUtil.PREF.getPrefType(PrefUtil.KEY);
      const nsIPrefBranch = Components.interfaces.nsIPrefBranch;
      switch (type) {
        case nsIPrefBranch.PREF_STRING:
          return PrefUtil.PREF.getCharPref(PrefUtil.KEY);
        case nsIPrefBranch.PREF_INT:
          return PrefUtil.PREF.getIntPref(PrefUtil.KEY);
       case nsIPrefBranch.PREF_BOOL:
        default:
          return PrefUtil.PREF.getBoolPref(PrefUtil.KEY);
      }
    }catch(e){
      return "";
    }
  },
  setPref : function(str) {
    PrefUtil.PREF.setCharPref(PrefUtil.KEY, str);
  }
}
---
var str = Pref.getPref();
のような感じで使います。