Bug 196330

Summary: Overlays on instagram.com are shifted if you click on a photo after scrolling
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: ScrollingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: fred.wang, koivisto, simon.fraser, thorton, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Reduction
none
Patch koivisto: review+

Simon Fraser (smfr)
Reported 2019-03-27 17:16:46 PDT
Go to an instagram page with photos. Scroll down. Click on a photo. The fixed overlay that comes up is offset by your scroll position.
Attachments
Reduction (1.57 KB, text/html)
2019-03-27 17:17 PDT, Simon Fraser (smfr)
no flags
Patch (8.12 KB, patch)
2019-03-27 21:22 PDT, Simon Fraser (smfr)
koivisto: review+
Simon Fraser (smfr)
Comment 1 2019-03-27 17:17:42 PDT
Created attachment 366131 [details] Reduction
Simon Fraser (smfr)
Comment 2 2019-03-27 17:18:51 PDT
Simon Fraser (smfr)
Comment 3 2019-03-27 17:20:55 PDT
The site basically does: document.body.style.top = -window.scrollY + 'px'; document.body.style.position = "fixed"; // show fixed overlay so we get a scrolling tree commit that has a new layout viewport (goes from origin 0,scrollTop to 0,0) and a new scrollPosition. In this case, we have to clobber the scrolling thread's notion of scroll position because the document suddenly became non-scrollable, so this has to act like a requestedScrollPosition change.
Simon Fraser (smfr)
Comment 4 2019-03-27 20:07:44 PDT
Ah, this is about the race between the scrolling tree commit and calling ScrollingTree::applyLayerPositions() on the main thread. I might have to have the main thread wait on the commit.
Simon Fraser (smfr)
Comment 5 2019-03-27 21:22:21 PDT
Simon Fraser (smfr)
Comment 6 2019-03-28 08:04:08 PDT
I'll try to make the attachment into a test case.
Simon Fraser (smfr)
Comment 7 2019-03-28 09:45:42 PDT
Note You need to log in before you can comment on or make changes to this bug.