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

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

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

2015年10月31日

Bug-org 1215816 nsContentIterator::Init(nsIDOMRange*) shouldn't include end node if it's an empty element and end offset is 0 when mPre == true
初回投稿日時: 2015年10月31日11時57分18秒
カテゴリ: Mozilla Core Mozilla44 バグ修正
SNS: (list)

ContentEventHandlerの修正をしていて発見したnsContentIteratorのバグです。NS_NewPreContentIterator()でインスタンスを生成した場合、指定した範囲のルートとなる要素から最初の葉ノードまで列挙していく、開始タグを列挙する動作になりますが、この場合に指定した範囲の最後のノードが子ノードを持たず、ノード内のオフセットが0の場合に、その要素自身を列挙してしまうというバグです。

例えば、<p>[<br>]<br></p>の"[]"の選択範囲を表現しようとした場合、開始位置が最初の<br>要素のオフセット0、終了位置が二つ目の<br>要素のオフセット0という形もあり得ます。この場合、最初の<br>要素のみが列挙されるべきという話です。

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

bug-org 1215816を含むエントリ