Responsive Design Mode viewport clips into title bar when scrolling with WR enabled
Categories
(Core :: Graphics: WebRender, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox66 | --- | unaffected |
firefox67 | --- | disabled |
firefox68 | --- | fixed |
People
(Reporter: Fanolian+BMO, Assigned: kvark)
References
(Regression)
Details
(Keywords: nightly-community, regression, reproducible)
Attachments
(2 files, 1 obsolete file)
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0
Build ID: 20190325095153
Steps to reproduce
- Open Responsive Design Mode.
- Make viewport long enough so a scrollbar appears on the side of the browser (not viewport).
- Scroll up and down with that scrollbar.
Actual result
Viewport clips into titlebar. (Please refer to the attached video.)
Workaround
Disable WebRender.
System info
OS: Windows 10 1809
GPU: Nvidia GeForce GTX 760
Driver: 419.67 (released on 2019-03-25)
The regression range is https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7b26b83385998b30acad1feb4ee02a4059eaafe2&tochange=5fa1f6433408d804a98025029a3ed38260a81dce.
There are some WR bugs (bug 1529378, bug 1523080) and some in Graphics (bug 1521466, bug 1523080). Mozregression is not helpful further bisecting the regression range.
Comment 2•6 years ago
|
||
Kats, could this have been caused by bug 1523080?
Comment 3•6 years ago
|
||
It's possible, yeah. I can bisect with local builds to verify. Leaving needinfo on me for now.
Comment 4•6 years ago
|
||
Yup, it was caused by bug 1523080.
Comment 5•6 years ago
|
||
I investigated this a bit, and am not totally sure what's going wrong here. The clip on the Iframe WRDL item seems to be correct, and the rootmost stacking context on the content pipeline has a ClipId::root()
as the clip_id
. That gets translated to the Iframe's clip as intended by the iframe flattening process. So as far as I can tell the clip chain setup seems fine and the problem must be deeper in WR. However I'll take a closer look at a capture and see if I can figure out what's happening.
Comment 6•6 years ago
|
||
Some more notes:
-
Turning off APZ or at least setting apz.drag.enabled to false makes this easier to repro and debug. This also implies the problem is not specific to APZ and is about how WR is rendering the static display list.
-
After some digging I found what appears to be a bug, I think this line should be initializing mScrollId to
wr::wr_root_scroll_node_id()
. This was causing a couple of display items near the start of the list to have what appeared to be incorrect spatial IDs. However, making this change didn't fix the issue in this bug. I've kicked off a try push with that change anyway to see if it has any impact on reftests. -
Pretty sure now the problem is deeper inside WR. The items inside the content pipeline's root stacking context don't have their clip set to the pipeline clip, but the root stacking context which encloses those items does, so they should really still be getting clipped just fine.
Dzmitry, do you have cycles to look into this? It would be much faster for you than it will be for me.
Assignee | ||
Comment 7•6 years ago
|
||
was able to repro on macOS (not linux), looking now
Updated•6 years ago
|
Assignee | ||
Comment 8•6 years ago
|
||
When a picture cache tile is dirty, we need to apply the local clip to items drawn there.
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 9•6 years ago
|
||
Updated•6 years ago
|
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
bugherder |
Updated•6 years ago
|
Updated•5 years ago
|
Description
•