Closed Bug 1578777 Opened 2 years ago Closed 2 years ago

Div is not scrollable with mouse(but possible with dragging the scrollbar) when WebRender is enabled

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

VERIFIED FIXED
mozilla71
Tracking Status
firefox71 --- verified

People

(Reporter: canova, Assigned: botond)

References

(Regression)

Details

(Keywords: regression)

Attachments

(7 files)

I encountered this while I was looking on a profile in profiler.firefox.com.
STR:

  1. Open https://perfht.ml/34mruX1 .
  2. Make the window height narrower so we can see the scrollbar.
  3. Click to the "Firefox (65.0) Intel Mac OS X 10.14" text on top right corner to open the metadata popup panel.
  4. Try to scroll with your mouse without dragging the scrollbar

It works without webrender enabled and realized that it works with previous versions of webrender. Did a mozregression run and found out that this is regressed by https://hg.mozilla.org/integration/autoland/rev/c0a07a2c5d0263b35ceb271c668a41256b959630 (Bug 1550510).

I could reproduce this on my mac. Jeff, any suggestions?

Blocks: wr-70
Flags: needinfo?(jmuizelaar)
Priority: -- → P3

Let's ask Botond

Flags: needinfo?(jmuizelaar) → needinfo?(botond)

The scrollable element in question is not being layerized for some reason, even after user interaction.

It's not being layerized because it's inside a filter that WebRender doesn't support.

Bug 1550510 assumed that with WR we can handle all filters in the compositor and therefore we can layerize all scrollable elements inside filters. That's not the case.

Flags: needinfo?(botond)
Assignee: nobody → botond

This required replacing nsDisplayListBuilder::mSVGEffectsBuildingDepth with
a stack of the SVG effects frames that we're currently building inside.

Depends on D46063

Pushed by bballo@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/ff6a071cf39e
Remove non-ASCII character from comment in WebRenderCommandBuilder.cpp. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/773809005683
Remove the builder parameter from nsDisplayFilters::CreateWebRenderCommands(). r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/29130e26511b
Move CreateWebRenderCSSFilters() to nsSVGIntegrationUtils. r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/430834640980
Introduce a helper nsSVGIntegrationUtils::CanCreateWebRenderFiltersForFrame(). r=jrmuizel
https://hg.mozilla.org/integration/autoland/rev/c278c4ce9447
Use CanCreateWebRenderFiltersForFrame() in ScrollFrameWillBuildScrollInfoLayer(). r=tnikkel
https://hg.mozilla.org/integration/autoland/rev/b3d7b5f40cf7
Move UsesSVGEffectsNotSupportedInCompositor() to nsSVGIntegrationUtils. r=tnikkel
https://hg.mozilla.org/integration/autoland/rev/504f24d73316
Use UsesSVGEffectsNotSupportedInCompositor() in ShouldBuildScrollInfoItemsForHoisting(). r=tnikkel

Tentative addition of QE+, will be removed if our hardware configuration(s) does allow us to reproduce the issue.

Has STR: --- → yes
Flags: qe-verify+

Hello! Reproduced the issue with Firefox 71.0a1 (20190904163258) on Windows 10x64.
The issue is verified fixed with Firefox 71.0b9 (20191111170815) on Windows 10x64, Ubuntu 18.04 and macOS 10.14. After following the STR from comment 0 the dropdown menu is scrollable while using Webrender.

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