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

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

もずはっく日記(2012年10月)

2012年10月20日

Bug-org 645974 Switching focus with uncommitted IME text does not commit or send events, and leaves corrupted text state.
初回投稿日時: 2012年10月20日12時37分01秒
カテゴリ: Mozilla Core Mozilla19 バグ修正
SNS: (list)

IMEの強制確定が行われる直前にフォーカスが移動してしまい、強制確定に失敗して、エディタの動作がおかしくなるバグの、実例です。

このバグでは、<iframe>designModeのエディタを二つ用意して、片一方で未確定文字列がある場合に、もう一方をクリックすると、最初の方には未確定文字列が残り、新しい方にcompositionendイベント等が発行されていました。

同じドキュメント内でのフォーカス移動だと、ひとつのPresShellに全イベントが集中するので、大丈夫なのですが、このように、複数のドキュメントをまたぐと、それぞれのPresShellがフォーカスを得た時にイベント受け取り、そのドキュメント内のアクティブ要素に対してイベントを発行するため、このようなことが発生していました。

現在は、Bug-org 705057の修正により、TextCompositionPresShell非依存でイベントの発行先を管理するようになっているので、問題なくなっています。

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

bug-org 645974を含むエントリ