Closed Bug 1307555 Opened 5 years ago Closed 4 years ago

Can't scroll over checkerboarding on treeherder

Categories

(Core :: Panning and Zooming, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla60
Tracking Status
firefox52 --- wontfix
firefox60 --- fixed

People

(Reporter: mstange, Assigned: botond)

References

Details

(Whiteboard: [gfx-noted])

Attachments

(2 files)

STR:
 1. Go to https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound and wait for it to load completely.
 2. On macOS, using a touchpad / magic mouse, do the following very quickly:
   - Scroll down far and fast
   - Lift your fingers and set them back down
   - Scroll up
   such that the new input block is started while the mouse is over checkerboarding.

The scroll up gesture is ignored.

This is probably reproducible on other platforms, but it's harder to force start a new mousewheel transaction before the checkerboarding has stopped.
It would be nice if fixing this bug resulted in something I could use for overscroll - I need wheel events inside the overscroll "trough" to target the overscrolled scroll frame.
I've seen this on Fennec as well (bug 1278390 comment 3, second paragraph). I thought I filed something for that but can't find it now.
Priority: -- → P2
Whiteboard: [gfx-noted]
Mass wontfix for bugs affecting firefox 52.
See Also: → 1425603
Blocks: 1425603
See Also: 1425603
I've been talking about this with Markus, and we have two ideas for how to fix this.

The problem appears to be that during checkerboarding, the checkerboaded areas are not part of the hit region (or DTC region) of the layer for the scrollable content that's checkerboarding. As a result, that layer doesn't get hit during hit testing (its parent does).

  1) This suggests the hit region is clipped to the displayport.
     We could try not clipping it.

  2) We could modify APZ hit testing so that, if none of the
     event regions of a layer nor of its descendants are hit,
     but the layer is scrollable and has a composition bounds
     clip, and the hit testing is inside that clip, we still
     hit the layer.
I'm going to try fixing this.
Assignee: nobody → botond
Doing proper TDD for a change and writing the test first :)
Markus, could you also apply the patches and see if they fix the problem in the scenarios in which you've noticed it? Thanks!
Comment on attachment 8954179 [details]
Bug 1307555 - Mochitest.

https://reviewboard.mozilla.org/r/223338/#review230830

Looks like a good test, thanks!
Attachment #8954179 - Flags: review?(bugmail) → review+
Comment on attachment 8955697 [details]
Bug 1307555 - Create a hit test info item for a scroll frame's scrolled frame that's not clipped to the displayport.

https://reviewboard.mozilla.org/r/224776/#review232474

This looks good and I suspect that it's going to make my life a lot easier when implementing overscrolling. (I'll probably need to override the rectangle to something bigger, though.)
I haven't actually tested this patch yet, but there's no reason not to r+ and land it in the meantime. Sorry for the delay!
Attachment #8955697 - Flags: review?(mstange) → review+
Pushed by bballo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d9910fc2faa6
Create a hit test info item for a scroll frame's scrolled frame that's not clipped to the displayport. r=mstange
https://hg.mozilla.org/integration/autoland/rev/3a4d96efd68f
Mochitest. r=kats
https://hg.mozilla.org/mozilla-central/rev/d9910fc2faa6
https://hg.mozilla.org/mozilla-central/rev/3a4d96efd68f
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
You need to log in before you can comment on or make changes to this bug.