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

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

もずはっく日記(2015年7月)

2015年7月25日

Bug-org 1184986 [e10s][TSF] ContentCache shouldn't notify IME of layout change until all sending events are handled
初回投稿日時: 2015年07月25日16時50分21秒
最終更新日時: 2015年07月26日14時31分26秒
カテゴリ: e10s GTK IME Mozilla Core Mozilla42 TSF Windows バグ修正
SNS: (list)

Bug-org 1176954の修正で、IMEへの通知を一部、子プロセスへの送信中のイベントが残っている場合には延期するようにしましたが、NOTIFY_IME_OF_POSITION_CHANGEに関してもそれが必要というバグです。

TSFの動作を見ていると、NOTIFY_IME_OF_POSITION_CHANGEをきっかけに、ITextStoreACPSink::OnLayoutChange()が呼び出されると、即座にITextStore::GetTextExt()を呼び出し、文字位置を取得しようとします。しかし、この際にまだ全てのイベントが処理されていないため、期待したオフセットの文字がまだ存在していない可能性が高く、処理に失敗してしまっていました。

今回の修正で、NOTIFY_IME_OF_POSITION_CHANGEも全てのイベントの送信が完了するまで延期するようにすることで、IMEから見て、コンテンツの更新具合に矛盾がないようになりました。

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

bug-org 1184986を含むエントリ