Bug-org 1242895 [non-e10s][TSF] Forcibly committing composition during TSF locking document fails to commit composition and makes "hidden" composition string
初回投稿日時: 2016年01月30日23時40分18秒
最終更新日時: 2016年01月30日23時40分38秒
カテゴリ: IME Mozilla Core Mozilla47 TSF Windows バグ修正
SNS:
Tweet (list)
e10sモードを無効にしている状態で、TSFで未確定文字列が存在している時に、Javascriptからエディタの内容が変更され、その未確定文字列が強制確定されると、TIPは実際には確定しておらず、「見えない」未確定文字列が存在し、それへの入力が続いているというバグです。
e10sモードを無効にしている状態で強制確定が発生すると、TSFTextStore
はドキュメントをロックしたまま、TIPに未確定文字列を強制確定するように指示します。
しかし、TIPは自身がドキュメントを既にロックしているにも関わらず、同期的にドキュメントを再度ロックしようとし、これにもちろん失敗します。そのため、TIPは強制確定処理を中断し、未確定文字列をそのまま保持しますが、Gecko内部ではWebアプリに同期的に強制確定が行われたかのように偽装し、非同期で来るはずの強制確定結果を待ちます。
今回の修正ではこれを解決するために、ドキュメントロック中に強制確定のリクエストがTSFTextStore
に来た場合、ただちにTIPに強制確定を指示せずに、ドキュメントがアンロックされた時にそれを遅らせるようにしました。