あどけない話

インターネットに関する技術的な話など

Firemacs 3.7

Firefox で新しいフレームを開くと、そのフレームでは Firemacs 3.6 が動かないというレポートを 3 つ頂きました。忙しかったのと、Firefox 3.5 では再現しないのとで、ほおっておいたのですが、昨日時間ができたので調べてみました。

Firefox 2 と 3 では内部の構造が異なる部分があります。そこで、いわゆるアダプターパターンが書いてあって、起動時に Firefox のバージョンを判断し、どちらのアダプターを使うか決めています。

Firemacs 3.5 までは、navigator.userAgent を見て Firefox のバージョンを判断していました。Firefox なら当然 Firefox という文字列があると思いきや、Iceweasel や BonEcho など文字列を変えているパッケージがあって、その都度追加するのが嫌になってきました。また、ついには navigator.userAgent を IE に変更している人からも動かないと言われて、この方法を諦めました。

そこで Firemacs 3.6 では、gFindBar.onFindCommand という関数があれば Firefox 3、なければ 2 と判断することにしました。このコードは、Firefox 3.5 ではうまく動きます。また、Firefox 3.0 でも起動時のフレームではうまく動きます。しかし、起動後に新しく開いたフレームでは、見えない形でなんらかのエラーを起こしているらしく、おかしくなります。

Firefox 3.5 ではうまく動くことから判断して、これは Firefox 3.0 のバグだと思います。しょうがないので、navigator.userAgent を調べる昔のコードに戻しました。ただし、知らない文字列の場合はすべて Firefox 3 だと決め打ちました。

Firefox 2 で navigator.userAgent を変更している場合はうまく行きませんが、そういう人はサポートしないと割り切ります。

というわけで、Firemacs 3.7 を提出しました。380 個の承認待ちがあるようなので、いつのことになるのやら。。。

Firemacs 3.6 のリリース

Firefox 3.5 に対応した Firemacs がないのか」と何人もの人に聞かれましたが、もう3.6を提出して承認待ちの状態ですよ。承認を待っているアドオンが多すぎて、承認にはしばらくかかるようです。Firefox とバージョンが合わなかったのが、心残り。。。

Firemacs 3.5

FiremacsFirefox 3.1 でも動くようにして欲しいという要望があったので、CVS に書きためていたコードをリリースしました。こんな感じです。

  • C-xC-s で、選択した文字列を web 検索
  • C-M-t でタイトルをコピー
  • C-M-u で URL をコピー
  • Edit エリア only のオプション
  • C-u でカーソルから行頭まで kill
  • 矢印キーと補完メニューの問題を解決
  • "C-M-" を実装
  • C-m で検索を終了
  • Firefox 3 の Edit 領域で C-x と押すとビープ音がなるバグの修正

Software Design の Firemacs 解説記事

Software Design 2009年1月号に「Firemacs で Emacsブラウジング」という記事を書きました。「Firefox 徹底カスタマイズ術」という特集の中です。よかったら読んでみて下さい。

Software Design (ソフトウエア デザイン) 2009年 01月号 [雑誌]

Software Design (ソフトウエア デザイン) 2009年 01月号 [雑誌]

今日のFiremacs

やる気が出たので Firemacs をハックしています。今日の目玉は、これ。

  • C-xC-s で選択した文字列を web 検索
    • web 検索バーを利用する
  • C-xC-a で選択した文字列(住所)を Google Maps で検索

前者はメニューで実現されているけど、後者は世界初だったりして(まさかね)。

後者は、URL とフォームの ID さえ分れば、他のサービスでも使える手法です。だから、それらを入力させる UI を作らないといけないなぁ。今はハードコーディングなんです。。。

よく使うサービスって何でしょうか?

  • 英和辞典(ALC とか)
  • 国語辞典(goo とか)
  • 郵便番号検索(ページの構造上無理?)
  • 他は?