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

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

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

2015年7月19日

Bug-org 1176950 [e10s][TSF] nsTextStore shouldn't abandon locked content cache before dispatching events because they may be handled asynchronously in e10s mode
初回投稿日時: 2015年07月19日13時57分07秒
カテゴリ: e10s IME Mozilla Core Mozilla42 TSF バグ修正
SNS: (list)

nsTextStoreは、ドキュメントがロックされている間はコンテンツがJavascriptによって更新されることを防ぐため、コンテンツを予めキャッシュした上で、ドキュメントがアンロックされるまで、イベントを送信しないようにしています。

しかし、e10sモードでは、イベントを発火した後も非同期で処理されるため、次のドキュメントロックが発生した時に、前に送信したイベントが全て処理されているとは限りません。そこで、全てのイベントが処理されたという通知が来るまで、最初にキャッシュしたコンテンツを保持しつづけ、TSFからの応答に期待通りに答える必要が出てきました。

今回の修正では、Bug-org 1176954の修正を利用し、全てのイベントが処理された後に来るNOTIFY_IME_OF_COMPOSITION_UPDATEが通知されるまではキャッシュしたコンテンツを破棄しないようにしました。

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

bug-org 1176950を含むエントリ