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

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

もずはっく日記(2010年10月)

2010年10月12日

Bug-org 601440 Cannot enter Return key in location/search bar when input field was focused
初回投稿日時: 2010年10月12日23時53分22秒
最終更新日時: 2010年10月12日23時54分38秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

1.9.2 branch限定の深刻なregressionです。なぜ、1.9.2 branch限定かというと、Bug-org 597389と、Bug-org 548480の両方が修正されたのが1.9.2 branchのみだからです。

おそらく直接的な原因はBug-org 548480の方です。その修正内容は、MacのAPI内部で間違えたドキュメントを参照しないように、これを最新の状態にリセットする[NSInputManager currentInputManager]を空呼び出しするようした、というものです。

Bug-org 597389はその空呼び出しを(結果的に)フォーカス移動の度に呼び出すようにするパッチです。

この空呼び出しをネイティブのウィジット間でフォーカスが移動している最中に呼び出すと、古い方のウィジットにキーイベントが送られる状態のまま、フォーカスが移動してしまっているようです(Geckoのイベントからの推測なので、実際にはフォーカス移動がキャンセルされているのかもしれません)。

結局のところ、今回もMacのAPIのバグに泣かされた形です。以前にも書きましたが、なぜこんな意味不明な設計にしたのか、担当者のセンスを疑います。API内部で現在フォーカスを持つウィジットのIMのコンテキストに対して処理を行う、という設計なので、このコンテキストの選択処理がおかしいとこのように意味不明な動作を産むことになります。Appleには是非とも、フォーカスという状態に依存しないIMのAPIを再設計してもらいたいものです。

ちなみに、予定では明日、リリース予定で、本当に滑り込みのチェックインになりました。連休中にパッチが完成したのが大きかったですね。

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

bug-org 601440を含むエントリ