Closed Bug 1662800 Opened 5 years ago Closed 5 years ago

Scrollbar thumbs inside div element don't respond to mouse dragging when certain css rules applied

Categories

(Core :: Graphics: WebRender, defect)

80 Branch
Desktop
All
defect

Tracking

()

VERIFIED FIXED
84 Branch
Tracking Status
firefox-esr78 --- disabled
firefox81 --- wontfix
firefox82 --- wontfix
firefox83 --- wontfix
firefox84 --- verified

People

(Reporter: nederland074, Assigned: kats)

Details

(Keywords: regression, testcase)

Attachments

(6 files, 1 obsolete file)

Attached file test.html

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:

  1. Open the attached file test.html.
  2. 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.

Attached video test.mp4

Video showcasing the issue under Windows 10.

Attached file test.log

Log with results from mozregression. Apparently, it worked in Firefox 64.0a1.

Also, I can reproduce this issue on Windows 10, but it's not reproduceable for me on Linux Ubuntu 18.04.

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Layout
Product: Firefox → Core

I can reproduce the issue on Nightly82.0a1 Windows10 if WebRender is enabled.
However, I cannot reproduce the issue if WebRender is disabled.

Status: UNCONFIRMED → NEW
Has STR: --- → yes
Component: Layout → Graphics: WebRender
Ever confirmed: true
Keywords: regression
OS: Unspecified → All
Hardware: Unspecified → Desktop

The div has a transform but the scrollthumbs drag as if the div is at it's not-transformed position.

Summary: Scrollbar thumbs inside div element don't respond to mouse dragging then certain css rules apllied → Scrollbar thumbs inside div element don't respond to mouse dragging when certain css rules applied

I can reproduce this, Win10 Nightly.

Blocks: gfx-triage
No longer blocks: gfx-triage
Flags: needinfo?(kats)

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

Has Regression Range: --- → yes

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: nobody → kats
Flags: needinfo?(kats)

(And thank you for the reduced test case, that will be super helpful!)

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.

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

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.

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

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.

Attachment #9186256 - Attachment is obsolete: true
Pushed by kgupta@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/77c19223a20f Make the WebRenderScrollData dump nicer. r=botond https://hg.mozilla.org/integration/autoland/rev/93582e247339 Fix WR display list dumping in cases with reused items. r=miko https://hg.mozilla.org/integration/autoland/rev/a86cc0d29dc0 Fix matrix multiplication order. r=botond

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.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: