Created attachment 331492 [details] A screenshot of what happens when hovering over the element in the safari web inspector. If you scroll to the very bottom of the URL on an iPhone, the fixed top/chat buttons on the side stop moving down with the page, but continue to be painted in the correct place. This happens about 40 pixels from the actual bottom. This causes the click area to be shoved above where the elements appear to be. While scrolling, the element is in the correct position, but after scrolling stops, the element will jump above where it appears to be painted. For visual reference, please see the attached screenshot or watch the video at this link: https://www.screencast.com/t/dDzlXxSIZ
I can reproduce.
<rdar://problem/36593581>
Created attachment 331553 [details] Reduction Seems to happen on pages that have a viewport meta tag that triggers scaling. I'm surprised this is such a basic failure :(
So this issue happens when the minimum scale is > 1. FrameView::visualViewportRect() returns a visual viewport that's too big (larger than the document) because it assumes that it can scale the visible rect by the scale (~1.3 on this page).
The iOS-only code in FrameView::unscaledMaximumScrollPosition() looks suspicious.
Bug 174648 is relevant.
Created attachment 331953 [details] Patch
Comment on attachment 331953 [details] Patch Clearing flags on attachment: 331953 Committed r227430: <https://trac.webkit.org/changeset/227430>
All reviewed patches have been landed. Closing bug.