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

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

もずはっく日記(2014年2月)

2014年2月6日

Bug-org 964623 [TSF] nsTextStore::FlushPendingActions() shouldn't call OnLayouChange() and OnSelectionChange()
初回投稿日時: 2014年02月06日00時43分05秒
カテゴリ: Mozilla Core Mozilla30 TSF Windows バグ修正
SNS: (list)

Bug-org 790516の修正時に、ドキュメントロック中にITextStoreACPSink::OnLayoutChange()ITextStoreACPSink::OnSelectionChange()等の呼び出しが必要になった場合、ドキュメントの更新が完了してから呼び出しを行うようにしていましたが、この時に、nsTextStore自体はロック状態のまま、これらを呼び出していたため、TIPがITextStoreACP::RequestLock()を呼び出しても、nsTextStoreはロック済みであると返していたため、実質、TIPは何もできなくなっている、というバグです。

呼び出しをさらに遅らせて、本当にnsTextStoreがドキュメントをアンロックした場合に、始めて、呼び出すようになっています。ただし、read-writeロックが来て、さらにこれらの通知が必要な状況にされた場合にはネストして、若干奇妙な動作になりますが、そこはTIP側の責任、ということで今回は無視しています。

実際にこの修正で日本語のTIPの動作が改善するということは確認できていません(呼び出しても無反応なものばかり)。

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

bug-org 964623を含むエントリ