TwitterFoxにPreferenceを追加してポップアップ最大数をabout:configから変更できるようにしてみる

Firefox拡張機能で設定値を読み書きする (その2) - ess sup
を参考にやってみた。
TwitterFoxのPopup表示のmaxはソース内で"5"とハードコーディングされているので、これを about:config からいじれるようにしてみる。

まず、TwitterFoxがインストールされているフォルダを探し出し、以前のエントリにあるようにTwitterfox.jarを展開してソースをいじれる状態にしておく。

準備ができたら以下のように修正 ※以下TwitterFoxが格納されているフォルダを (TwitterFoxHome) と記載
(TwitterFoxHome)\defaults\preferences\twitternotifier.js

--- twitternotifier.js.orig	Thu Jul 31 07:26:58 2008
+++ twitternotifier.js	Sun Dec 14 15:15:50 2008
@@ -10,3 +10,4 @@
 pref("extensions.twitternotifier.soundFile", "");
 pref("extensions.twitternotifier.session", "");
 pref("extensions.twitternotifier.debug", false);
+pref("extensions.twitternotifier.popupMaxCount", 5);

ここではPreferenceのキーとしてextensions.twitternotifier.popupMaxCountを追加して、そのデフォルト値として 5 を設定している。
で、その設定を読み込むように修正する
(TwitterFoxHome)\chrome\content\twitternotifier.js

diff U3 twitternotifier.js.orig twitternotifier.js
--- twitternotifier.js.orig	Tue Sep 30 00:18:30 2008
+++ twitternotifier.js	Sun Dec 14 15:09:06 2008
@@ -353,8 +353,13 @@
     if (count == 0) {
       return;
     }
+    
+// *** Hack by snaka ***
+    var pref = Components.classes['@mozilla.org/preferences-service;1']
+      .getService(Components.interfaces.nsIPrefBranch);
+    var popupMaxCount = pref.getIntPref("extensions.twitternotifier.popupMaxCount");
 
-    if (count > 5) {
+    if (count > popupMaxCount) {
       this._messageQueue = new Array();
       this.showNotice(this._strings.getFormattedString("MoreThan5Tweets", [unread]));
     }

上記のように、もともと 5 とハードコーディングされていた箇所を perf.getIntPerf() で取得した値を使用するように変更している。

ここまで作業が完了したらFirefoxを再起動して about:config を確認してみる

すると、こんな感じでデフォルト設定が表示されていると思う。これを試しに10などの値に変更してみる。

そうすると、TwitterFoxが10件のメッセージまでPopupしてくれるようになるはず...
参考までー。