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

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

もずはっく日記(2015年7月)

2015年7月19日

Bug-org 1179090 ContentEventHandler should assume that the selection range is [0-0] when there is not selection range
初回投稿日時: 2015年07月19日12時53分11秒
カテゴリ: Mozilla Core Mozilla42 バグ修正
SNS: (list)

ContentEventHandlerはコンテンツの検索が行われた際には必ず選択範囲が(目には見えなくても)存在していると仮定して実装されています。例えば、フォーカスを持てない要素でもクリックした位置にキャレットがあるかのように選択範囲が存在しています。コンテンツをクリック後にTabキーでフォーカスを移動すると、この見えない選択範囲から付近のフォーカスを持てる要素を検索しているためだったりします。

話を戻すと、この選択範囲は選択可能な要素をクリックするまで生成されませんが、ContentEventHandlerは常に選択範囲が存在しているテキストエディタでの利用を想定していたため、このような状況は想定外でした。そこで、選択範囲が存在しない場合、検索対象のルート要素の先頭部分に選択範囲があると仮定するようにして修正を行いました。

ようするに、これも、Apple自身のNSTextInputClientプロトコルの「悪用」のために発生していたバグです。

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

bug-org 1179090を含むエントリ