朝顔日記

userChrome.js で go30(何)

2007-02-20

Firefox 1.5 や 2.0 には、移動メニューというのがあって、最近開いたページの履歴を10件表示するという機能があります。で、10件では私には少ないので、30件に増やす拡張機能というのを以前作りましたが、Firefox 3.0 を目指す最近のナイトリーでは、履歴管理が Places という sqlite ベースのものに変わり、そこらあたりのインターフェースも変わってしまったために動かなくなっていました。

ところが、しばらく前に Bug 370135 – Restore branch model history under the trunk History menu. というのが入ったので、また同じようなインターフェースが帰ってきました。といっても違う仕組みで動いているので、go30 が動くはずもありません。ですが、変更点を見ていたら、案外簡単そうに変更できそうな気がしたので、browser.xul を直接編集してみたところ、うまく動作しました。ナイトリーを入れ替えるたびに browser.xul を書き換えるのは難儀なので、ここはひとつスクリプトにしておけばよかろうと、userChrome.js 用のスクリプトを書いてみました。

が、動かない。DOM Inspector で覗いてみると、ちゃんと書き換わっているんですが、何故か動きません。おりしも userChrome.js スレにどっかの Ria 氏が、同じことをしたがっているようで、おねだりしておられました。ほぼ私の書いたのと同じコードが書き込まれましたが、やはり動きません。ふーむ、困った。ということで、IRC で Piro さんに相談してみたところ、place属性の変更は監視されてなくて、初期化時とplaceプロパティへの代入時にだけplace属性の値が再評価されるようです とのことで、サクっと代替コードを書いてくれました。ありがとうございます。> Piro さん


(function(){
  var gopopup = document.getElementById("goPopup");
  gopopup.place = gopopup.place.replace(/maxResults=10/, 'maxResults=30')
})();

go30.uc.js と名づけて保存しておきました。trunk で go30 したい方はどうぞ。って、かなり需要が低そうですが。:p)

「userChrome.js で go30(何)」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2007/02/diary_070220a.html