Bug-org 597389 If plug-ins disable non-Roman keyboard layout and they don't recover the state, Gecko doesn't recover it
初回投稿日時: 2010年09月22日01時51分22秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
Geckoのバグではないんですが、修正しました。
Flash Playerが10.1.x.xになってから、FlashのコンテンツをMacでクリックすると、何故かパスワードフィールドにフォーカスがある時と同じようにキーボードレイアウトがASCII互換のものに制限されるようになりました。そのままGeckoにフォーカスを戻すと、Flashは正しくこの制限を解除するのですが、Flash内のリンクをクリックしてそのFlashがunloadされた場合、この制限を解除してくれません。このため制限がかかったままになっている、というバグです。
Geckoはパスワードフィールドで同じ制限をかけているので元に戻す機能は元々あります。そのため、一度パスワードフィールド(もしくはime-mode: disabled;
なエディタ)にフォーカスを合わせて、その後フォーカスを移動させると制限が解除されます。
10.4以前のMacではなんと、この制限が現在かかっているかどうかを確認するAPIが無かったので、APIの不要な呼び出しを削減するために自分たちが制限を行ったかどうかを記憶しておき、行った場合にのみフォーカス移動時に解除するようにしていたため、このような動作になっていました。
今回の修正で、フォーカス移動のたびにこのAPIを無条件に呼び出すようになりました。ひょっとするとフォーカス移動時のパフォーマンスが低下している可能性がありますが、それ以上の問題だったのでひとまずこれで良いかと思います。
ちなみにtrunkでは10.5以降で追加された新API群で動いているので問題ありませんでした。Fx3.6の1.9.2 branchと、Fx3.5の1.9.1 branch(Seamonkeyでしばらく存命の予定)でのみ修正を行っています。