[Webkit-unassigned] [Bug 83813] New: popstate restores incorrect scroll position if destination page is longer than the previous

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Apr 12 13:26:49 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=83813

           Summary: popstate restores incorrect scroll position if
                    destination page is longer than the previous
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Page Loading
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: josh at joshpeek.com
                CC: aroben at webkit.org


Created an attachment (id=136958)
 --> (https://bugs.webkit.org/attachment.cgi?id=136958&action=review)
popstate scroll restore test case

If you scroll to the bottom of a long page and use pushstate to navigate forward, going back will restore the wrong position. The restored positioned will be clipped to the max height of the previous page rather than fully scrolling to the bottom.

It seems that if you force a synchronous relayout/reflow within the popstate handler, the position will be restored correctly.

The bug affects Safari, Chrome, and Firefox. But the hack doesn't appear to fix it in Firefox. Strangely it all works fine if you use the back/forward touch gestures in Safari.

See the attached test case. (Note that uncommenting the relayout line fixes the issue)

Possibly related issues:
* https://bugs.webkit.org/show_bug.cgi?id=33931

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list