Content disappears on the left side of the viewport when zooming in
Categories
(Core :: Panning and Zooming, defect)
Tracking
()
People
(Reporter: mbalfanz, Assigned: tnikkel)
References
(Depends on 1 open bug, Blocks 1 open bug, Regression)
Details
(Keywords: regression, Whiteboard: apz-planning)
Attachments
(4 files)
STR:
- set
apz.allow_zoom
totrue
- visit any bugzilla site (like this one)
- zoom into the page and observe the left edge of the viewport
ER: content should be shown
AR: foreground content seems to disappear, looks like it's being cut off
I attached a video of the STR to show the problem a little bit better. So far, I could only reproduce this on bugzilla.
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
As you scroll right and zoom in more the problem gets worse. I suspect the dirty/building rect using in display list building is incorrect.
Assignee | ||
Comment 2•4 years ago
|
||
Assignee | ||
Comment 3•4 years ago
|
||
Caused by https://hg.mozilla.org/integration/autoland/rev/275f9a696ae18baf32eea13303cc7afe393f4edf
The displayport kinda already has the ApzCallbackTransform from the root frame factored in via the display port margins. Then later we adjust it by the amount GetCumulativeApzCallbackTransform and it gets double translated. Moving the displayport to (0,0) after getting it fixes this bug, but I'm not sure if that is the best fix.
Updated•4 years ago
|
Comment 4•4 years ago
|
||
Does it make sense to subtract out the ApzcCallbackTransform from the root frame in anticipation of GetCumulativeApzCallbackTransform getting applied later? That should be equivalent to moving it to 0,0 but maybe will handle the edge cases better?
Comment 5•4 years ago
|
||
It's certainly suspicious that we have a RemoveResolution()
call conditional on not using the displayport, but an unconditional GetCumulativeApzCallbackTransform()
.
These two things together add up to the visual-to-layout transform. It sounds like GetDisplayPort()
is already in layout coordinates, so perhaps it would make sense to only do the GetCumulativeApzCallbackTransform()
in the !hasDisplayPort
branch as well?
Updated•4 years ago
|
Assignee | ||
Comment 6•4 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #5)
It's certainly suspicious that we have a
RemoveResolution()
call conditional on not using the displayport, but an unconditionalGetCumulativeApzCallbackTransform()
.These two things together add up to the visual-to-layout transform. It sounds like
GetDisplayPort()
is already in layout coordinates, so perhaps it would make sense to only do theGetCumulativeApzCallbackTransform()
in the!hasDisplayPort
branch as well?
I think kats suggestion is slightly better because if there is a non-zero apz callback translation on the current scroll frame we would want to adjust for that.
Assignee | ||
Comment 7•4 years ago
|
||
Assignee | ||
Comment 8•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Pushed by tnikkel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/74a83c249231 In ScrollFrameHelper::RestrictToRootDisplayPort don't adjust the root display port by the root scroll frame apz callback transform because it already factors that in. r=kats https://hg.mozilla.org/integration/autoland/rev/37e68bff6c62 Add mochitest. r=kats
Comment 10•4 years ago
|
||
Backed out 2 changesets (Bug 1636911) for mochitest failures in test_group_checkerboarding.html CLOSED TREE
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=302694757&repo=autoland&lineNumber=13200
Backout: https://hg.mozilla.org/integration/autoland/rev/adde1e730f67626cba2ad9cc8c1ca052376aef65
Assignee | ||
Comment 11•4 years ago
|
||
We get
InjectTouchInput failure. GetLastError=87
for the zoom_in part.
I copied this code sequence from another test and it looks like those tests are disabled on Windows tracked by bug 1495580. I'll disable the new test on Windows, and note it in that bug to enable once that gets fixed.
Comment 12•4 years ago
|
||
Pushed by tnikkel@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2b12448f0d62 In ScrollFrameHelper::RestrictToRootDisplayPort don't adjust the root display port by the root scroll frame apz callback transform because it already factors that in. r=kats https://hg.mozilla.org/integration/autoland/rev/797e4e07bcdf Add mochitest. r=kats
Comment 13•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/2b12448f0d62
https://hg.mozilla.org/mozilla-central/rev/797e4e07bcdf
Description
•