Scrollbar thumbs inside div element don't respond to mouse dragging when certain css rules applied
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
People
(Reporter: nederland074, Assigned: kats)
Details
(Keywords: regression, testcase)
Attachments
(6 files, 1 obsolete file)
User Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
Steps to reproduce:
- Open the attached file test.html.
- Try to drag the scrollbar thumbs inside the div element with a mouse.
Actual results:
The scrollbar thumbs (both vertical and horizontal) do not respond to mouse dragging.
Expected results:
The scrollbar thumbs should be draggable by mouse and scroll the content inside the div element accordingly.
| Reporter | ||
Comment 1•5 years ago
|
||
Video showcasing the issue under Windows 10.
| Reporter | ||
Comment 2•5 years ago
|
||
Log with results from mozregression. Apparently, it worked in Firefox 64.0a1.
| Reporter | ||
Comment 3•5 years ago
|
||
Also, I can reproduce this issue on Windows 10, but it's not reproduceable for me on Linux Ubuntu 18.04.
Comment 4•5 years ago
|
||
Bugbug thinks this bug should belong to this component, but please revert this change in case of error.
Comment 5•5 years ago
|
||
I can reproduce the issue on Nightly82.0a1 Windows10 if WebRender is enabled.
However, I cannot reproduce the issue if WebRender is disabled.
Comment 6•5 years ago
|
||
The div has a transform but the scrollthumbs drag as if the div is at it's not-transformed position.
| Reporter | ||
Updated•5 years ago
|
Updated•5 years ago
|
Comment 8•5 years ago
|
||
I can reproduce in firefox release 81.0.1 (64-bit), beta 82.0b6 (64-bit) , nightly 83.0a1 (2020-10-02) (64-bit). I will update flags accordingly and check "has regression range" as per comment 2 thanks for providing the range. Not reproducible in Chrome.
Best,
Clara
| Assignee | ||
Comment 9•5 years ago
|
||
The regression range in comment 2 contains this changeset: https://hg.mozilla.org/mozilla-central/rev/f1da54a2d166d6370d485d2b3d2f5b386a6af177 which is probably what caused the original reporter to start seeing the problem as WR got turned on for them. That might also explain why they're not seeing it on Linux (WR might be disabled). I can repro a similar problem on macOS, the scrollbar immediately jumps to the end of the range.
It seems similar to previous bugs I've fixed with the WR scroll data, I can take a look.
| Assignee | ||
Comment 10•5 years ago
|
||
(And thank you for the reduced test case, that will be super helpful!)
Updated•5 years ago
|
| Assignee | ||
Comment 11•5 years ago
|
||
I investigated this and found the problem, which is simply combining these two matrices in the wrong order. If the two matrices were pure translation then it doesn't matter, but in this case one has a scale and so it matters if we pre-multiply or post-multiply, and apparently I got it wrong when I wrote the code.
| Assignee | ||
Comment 12•5 years ago
|
||
| Assignee | ||
Comment 13•5 years ago
|
||
This makes the WebRenderScrollData dump more analogous to the layer tree dump,
in that it prints the layer entries one per line showing in-order nested tree
structure. It also omits printing things if they're not important.
Depends on D96196
| Assignee | ||
Comment 14•5 years ago
|
||
I was running with gfx.webrender.dl.dump-content enabled and it hit the assertion
at https://searchfox.org/mozilla-central/rev/96e2c6e14998f38e419850d55d8a3d32a3fc244a/gfx/wr/webrender_api/src/display_list.rs#703
because the iterator wasn't provided with a cache. This seems to fix it.
| Assignee | ||
Comment 15•5 years ago
|
||
When combining transform matrices for deferred transforms, we were multiplying
them in the wrong order. This caused incorrect behaviour when one of the matrices
had a scale factor.
Depends on D96198
| Assignee | ||
Comment 16•5 years ago
|
||
This makes the WebRenderScrollData dump more analogous to the layer tree dump,
in that it prints the layer entries one per line showing in-order nested tree
structure. It also omits printing things if they're not important.
Updated•5 years ago
|
Comment 17•5 years ago
|
||
Comment 18•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/77c19223a20f
https://hg.mozilla.org/mozilla-central/rev/93582e247339
https://hg.mozilla.org/mozilla-central/rev/a86cc0d29dc0
Updated•5 years ago
|
Updated•5 years ago
|
Comment 19•5 years ago
•
|
||
Reproduced the issue using Firefox 82.0a1 (20200902215721) on Windows 10x64.
The issue is verified fixed with Firefox 84.0b3 (20201119195818) on Windows 10x64, macOS 10.12, and Ubuntu 18.04. The scroll bar from the test case can be dragged using the mouse with WebRender.
Description
•