Returning to a page that was zoomed in on the right side is opened on the left
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr60 | --- | unaffected |
firefox63 | --- | wontfix |
firefox64 | --- | wontfix |
firefox65 | --- | wontfix |
firefox66 | --- | fixed |
People
(Reporter: csheany, Assigned: botond)
References
(Blocks 1 open bug)
Details
(Keywords: regression)
Attachments
(5 files)
Assignee | ||
Comment 1•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Comment 2•6 years ago
|
||
Updated•6 years ago
|
Comment 3•6 years ago
|
||
Assignee | ||
Comment 4•6 years ago
|
||
Comment 6•6 years ago
|
||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
Assignee | ||
Comment 14•6 years ago
|
||
In this Try push, I have a WIP patch for bug 1507279, and on top of it patches for this bug which make the test from bug 1517976 pass.
Assignee | ||
Comment 15•6 years ago
|
||
Assignee | ||
Comment 16•6 years ago
|
||
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 17•6 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #13)
One more thing, though - right now I just commented out the code in Fennec
that was resetting isFirstPaint and while this does break the UI rather
severely because we're never clearing the clear colour we're drawing front
of the content until we've painted something, I can still reproduce this
problem.
Through getting my test case to work I've confirmed that resetting the
isFirstPaint flag on the chrome window (at least in Fennec - I still need to
get the test working on Desktop with e10s) does indeed get APZ into the code
path where it overwrites its own scroll position with the scroll position
from the incoming FrameMetrics, which courtesy of ComputeScrollMetadata
contains the layout viewport position.However it seems that switching tabs or getting a page from the bfcache is
sufficient to trigger the same issue even when aIsFirstPaint is false. So
while my patch would be sufficient for Fennec (which one way or another
apparently is resetting isFirstPaint for all the relevant cases), it doesn't
yet cover all potential cases.Interesting. We can investigate this as a follow-up.
Filed bug 1519214 to track this.
Comment 18•6 years ago
|
||
Comment 19•6 years ago
|
||
Backed out for failing wpt at css/cssom-view/scroll-behavior-main-frame-root.html
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=221255649&repo=autoland&lineNumber=13227
Backout: https://hg.mozilla.org/integration/autoland/rev/c908cdfffe306ae3c461c54ae24c6c9882985592
Assignee | ||
Comment 20•6 years ago
|
||
What appears to be happening here is that a visual scroll offset update is clobbering a smooth scroll being requested in the same transaction. The smooth scroll should probably take precedence.
Assignee | ||
Comment 21•6 years ago
|
||
Updated•6 years ago
|
Assignee | ||
Comment 22•6 years ago
•
|
||
These patches seem to be causing test_session_scroll_position.html
and test_session_scroll_visual_viewport.html
to time out:
Comment 23•6 years ago
|
||
(In reply to Botond Ballo [:botond] from comment #22)
These patches seem to be causing
test_session_scroll_position.html
andtest_session_scroll_visual_viewport.html
to time out:
Assignee | ||
Comment 24•6 years ago
|
||
It looks like the isFirstPaint mechanism is interfering with the session store mechanism.
Comment 25•6 years ago
|
||
Hmm, the thing that breaks seems to be session history not involving the bfcache.
I'm now seeing the same thing locally with my own patch as well, but unfortunately I cannot remember whether I never tested that scenario, or whether something else landed in the meantime that broke this again.
Assignee | ||
Comment 26•6 years ago
|
||
I believe I have a fix for this:
(The tests in question are passing in this push. The other failures are unrelated.)
Updated•6 years ago
|
Updated•6 years ago
|
Assignee | ||
Comment 27•6 years ago
|
||
Updated•6 years ago
|
Assignee | ||
Comment 28•6 years ago
|
||
To expand a little more on what the problem was: the tests were exercising a case where the pres shell does not persist across the navigation, so the visual offset to be restored was not stored in nsIPresShell::mVisualViewportOffset
(that variable was just at its default value of (0,0)). Nonetheless, the first-paint mechanism was sending that (0,0) over as a visual scroll update, and it rode the same transaction as the layout scroll update from ScrollToRestoredPosition()
. They were both eRestore
and incompatible, so the (0,0) won.
My solution was to track whether nsIPresShell::mVisualViewportOffset
has been set, and avoid sending a visual update based on it if it has not been set.
Comment 29•6 years ago
|
||
Comment 30•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ecba81cf5e74
https://hg.mozilla.org/mozilla-central/rev/52501b577855
https://hg.mozilla.org/mozilla-central/rev/eba0c068601d
https://hg.mozilla.org/mozilla-central/rev/041f9c2bfce5
Comment 31•6 years ago
|
||
Given that we're less than a week away from the 65 RC and this isn't a new issue, I think this should just ride the trains to release. Feel free to nominate for approval if you feel strongly otherwise.
Assignee | ||
Comment 32•6 years ago
|
||
(In reply to Ryan VanderMeulen [:RyanVM] from comment #31)
Given that we're less than a week away from the 65 RC and this isn't a new issue, I think this should just ride the trains to release.
+1
Description
•