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

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

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

2015年7月19日

Bug-org 1176954 [e10s][TSF][GTK?] TabParent shouldn't notify IME until all sending events are handled
初回投稿日時: 2015年07月19日13時40分55秒
カテゴリ: e10s GTK IME Mozilla Core Mozilla42 TSF バグ修正
SNS: (list)

e10sモードでは、子プロセスがフォーカスを持つ場合、chromeイベントでハンドリングしたネイティブのIMEイベントが、非同期で子プロセスに処理されることになります。ここで困るのがTSFやGTKでIMEに選択範囲の変化等を通知するタイミングです。これまでは、子プロセスから通知が来た場合に即、TSFやGTKに通知を行っていましたが、子プロセスの処理が遅れている場合、TSFやGTKからするといくつか前の状態が通知されるというおかしなことになります。

今回の修正では、chromeプロセスが送信したWidgetCompositionEventと、WidgetSelectionEventが子プロセスに受信された時に親プロセスに通知を返すようにし、送信中のイベントが無くなった状況でため込んでいた通知を行う様に修正しました(ただ、今、これを書いていて気付きましたが、子プロセス内でイベントを処理し終えてから通知しないとひとつ古い情報を通知することになりそうな……)。

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

bug-org 1176954を含むエントリ