この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2005年1月)

2005年1月18日

Bug 3128 IMEでサーチバーへ入力中に確定前のフォーカス移動でクラッシュ
初回投稿日時: 2005年01月18日15時29分00秒
カテゴリ: Firefox
SNS: (list)

今は、とりあえずなパッチで再現しなくなっているこの問題もようやく原因が分かった。 イベントの発生順序がまずいのだ。

Mozillaはエディタがフォーカスを失う際に、未確定文字列があると強制確定する。 つまり、フォーカスを失った後に未確定文字が確定され、入力のイベントが走る。 そのため、フォーカスを失うと同時にファイナライズしたのに、来るはずのない入力イベントがやってきて破綻していたのだ。

とりあえず、呼び出し前にフォーカスを失っていないかどうかのチェックを行うようにしたが、XULからのアクセスでもクラッシュしてしまうので、回避パッチはそのままにしてある。

もっと根本的な解決策として、フォーカス喪失寸前のイベントを作り、そこで強制確定を実行すべきだろう。 やるかどうかは別にして……

関連するかもしれないエントリ

bug 3128を含むエントリ