Bug-org 1061810 [TSF] MS-IME 2012 (Win 8.1) sometimes fails to move candidate window to proper position
初回投稿日時: 2014年09月25日00時18分25秒
カテゴリ: Mozilla Core Mozilla35 TSF Windows バグ修正
SNS:
Tweet (list)
Firefoxの検索ボックスで、MS-IMEを利用していると、時々発生するバグです。
Windows 8.1上で、MS-IMEで候補ウインドウを開いた状態で、スペースキーで順に、変換候補を切り替えていくと、希に、候補ウインドウがディスプレイの左上に表示されてしまうことがあるというバグがあることに気付きました。
早速ログをとってみると、NS_QUERY_CARET_RECT
がランダムに失敗している様に見えました。その原因について、色々と考えてみましたが、全く、納得できる答えが発見できず、久々にデバッガに頼りました。
デバッガで失敗した箇所を探してみると、nsRange
でセキュリティチェックに引っかかり、コンテンツへのアクセスに拒否されているケースがあることが分かりました。何故、そのような事が発生するのか、詳しいことは分かりませんが、スタック上には、Javascriptで実装された、autocompleteのタイマーからの呼び出しと思われるメソッドの呼び出しがあり、それによって、TSFに通知が飛び、TSFからnsTextStore
へ文字位置の問い合わせが来ていました。つまり、TSFからのリクエストが、content権限で処理されていたことが原因な様です。
ひとまず、解決策として、nsRange
に新設されていた、内部処理用のメソッドをContentEventHandler
からは利用することで、セキュリティチェックを回避するようにしました。ContentEventHandler
自身はJavascriptから呼び出して利用するには、chrome権限が必要ですので、セキュリティ的なチェックがそもそも必要ないためです。