| Summary: | Missing tiles when tapping back arrow | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Philipp Metzler <pp> | ||||
| Component: | Compositing | Assignee: | Simon Fraser (smfr) <simon.fraser> | ||||
| Status: | ASSIGNED --- | ||||||
| Severity: | Normal | CC: | bfulgham, pp, simon.fraser, webkit-bug-importer, zalan | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | Safari 13 | ||||||
| Hardware: | iPhone / iPad | ||||||
| OS: | iOS 13 | ||||||
| URL: | https://bugreport2.zemtu.com | ||||||
| Attachments: |
|
||||||
|
Description
Philipp Metzler
2020-07-01 06:54:37 PDT
I can reproduce on iOS 13.4. Also reproduces in iOS 14 beta. Sometimes it fails to restore the scroll position. The failure to restore the scroll position (which also happens on macOS) happens because we try to restore the scroll position from FrameLoader::HistoryController::restoreScrollPositionAndViewState() but this happens before we've done a layout for the new size, so we end up clamping the scroll position to zero. The page doesn't build the new content until some time after the back(), using JS running on a timer, so we have no hope of restoring the correct scroll position. On iOS this goes through WebFrameLoaderClient::restoreViewState(). |