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

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

もずはっく日記(2012年3月)

2012年3月31日

Bug-org 739557 intermittent editor/libeditor/html/tests/test_dom_input_event_on_htmleditor.html | Editor4, html and div has contenteditable attribute: wrong element was edited - got , expected a
初回投稿日時: 2012年03月31日13時42分28秒
カテゴリ: Mozilla Core Mozilla14 バグ修正
SNS: (list)

もうひとつ、ランダムオレンジの修正です。

ランダムな理由についてはまだ理解できていないのですが、原因はElement.focus()メソッドの挙動の誤解にありました。contenteditableな要素がネストしていて、子孫側の要素にキャレットをおいて入力した時に、イベントのターゲットが正しく祖先側の要素になっているかをテストする前に、そのiframe要素内のwindowにフォーカスをあて、その後、子孫側の要素のfocus()を呼んでいました。しかし、これでは要素にはフォーカスが移動しないことをコードを読んで確認しました。このため、window.focus()だけで上手い具合にキャレット位置がテスト開始前に運良く移動してくれた場合(ほとんどのケースですが)にのみテストがパスしていたようです。何故非同期になる時とならない時があるのかが分かっていませんが。

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

bug-org 739557を含むエントリ