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

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

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

2012年2月25日

Bug-org 707859 sometimes fires mousemove event after dragstart
初回投稿日時: 2012年02月25日09時55分20秒
カテゴリ: Mozilla Core Mozilla13 バグ修正
SNS: (list)

主にLinuxで、dragstartイベント後にmousemoveイベントが時々発生していたというバグです。安全策のパッチを入れるまでは、これが原因でツールチップがドラッグ中に表示されたりしていました。

原因は、レイアウトに変更があった際に:hover状態の変更を行うため等にmousemoveイベントを内部で生成し、非同期で発火しています。この非同期というのがくせ者で、この間にdragstartが割り込むとmousemoveイベントがドラッグ中に発生していたわけです。

実際にイベントを発火する際にドラッグが始まっているかどうか確認し、始まっていた場合はそのイベント自体を発火しないようにする、という形で修正しています。

ただ、なぜWindowsでは一度も確認できず、Macでも一度しか確認できなかったのか、この頻度の差がよく分かっていません。タイマの実装の差とかによるものなのでしょうか?

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

bug-org 707859を含むエントリ