Flush layout on mousemove events so that they get delivered to the right place

RESOLVED FIXED in mozilla12

Status

()

Core
Event Handling
P1
normal
RESOLVED FIXED
6 years ago
5 years ago

People

(Reporter: bz, Assigned: bz)

Tracking

(Depends on: 1 bug)

Trunk
mozilla12
x86
Mac OS X
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

This is spun off from bug 598482 so we can land part 24 of that without all the other bits.
Created attachment 586995 [details] [diff] [review]
Flush on every mousemove, because otherwise we can end up with mouse events (mousemove, mousein, mouseout) dispatched to the wrong elements.
https://hg.mozilla.org/integration/mozilla-inbound/rev/04e2d8313601
Assignee: nobody → bzbarsky
Flags: in-testsuite+
Priority: -- → P1
Target Milestone: --- → mozilla12
Blocks: 598482
This caused about a 5% Tdhtml MozAfterPaint regression.  It seems to all be concentrated in the layers1 (57% regression) and scrolling (120% regression) tests.

Are we dispatching the synthetic mousemoves sync and triggering flushes on those or something?  If so, would it make sense to not flush on synthetic mousemoves, if we can detect them here?
Can we dispatch synthetic mousemoves after we've flushed in the refresh driver, or something like that?

I'd actually like to dispatch mousemoves in the refresh driver too, to help reduce flushing.
https://hg.mozilla.org/mozilla-central/rev/04e2d8313601
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Hmm.  That might be doable, yes.  I just pushed a patch to that effect to try; if it pans out I'll ask for review in a followup bug.
Depends on: 716793
Blocks: 627628
Depends on: 777590
You need to log in before you can comment on or make changes to this bug.