Skip to content
  • commit-queue@webkit.org's avatar
    2010-08-13 Mihai Parparita <mihaip@chromium.org> · 4cbfdfd4
    commit-queue@webkit.org authored
            Reviewed by Dimitri Glazkov.
    
            Session history should skip over JS redirects
            https://bugs.webkit.org/show_bug.cgi?id=42861
    
            Lock the back/forward list for location changes and form submits that
            happen before the onload event fires that are not the result of user
            gestures.
    
            http/tests/history tests now pass, their expectations were updated
            accordingly. Other tests needed a setTimeout wrapper around location
            changes and form submits during onload, otherwise they would not
            generate history entries as expected anymore.
    
            * fast/css/target-fragment-match.html:
            * fast/dom/location-hash.html:
            * fast/dom/Geolocation/resources/cached-page-1.html:
            * fast/dom/Window/timer-resume-on-navigation-back.html:
            * fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt:
            * fast/events/pageshow-pagehide-on-back-cached-with-frames.html:
            * fast/forms/button-state-restore.html:
            * fast/forms/state-restore-to-non-autocomplete-form.html:
            * fast/forms/state-restore-to-non-edited-controls.html:
            * fast/frames/resources/cached-page-1.html:
            * fast/frames/resources/cached-page-2.html:
            * fast/harness/resources/cached-page-1.html:
            * fast/harness/resources/cached-page-with-data-urls.html:
            * fast/history/gesture-before-onload-expected.txt: Added.
            * fast/history/gesture-before-onload.html: Added.
            * fast/history/history-length.html:
            * fast/history/resources/gesture-before-onload-target.html: Added.
            * fast/history/saves-state-after-fragment-nav.html:
            * fast/loader/input-element-page-cache-crash.html:
            * fast/loader/stateobjects/document-destroyed-navigate-back.html:
            * fast/loader/stateobjects/pushstate-clears-forward-history.html:
            * fast/loader/subframe-navigate-during-main-frame-load.html:
            * http/tests/history/back-to-post.php:
            * http/tests/history/redirect-js-document-location-before-load-expected.txt:
            * http/tests/history/redirect-js-form-submit-before-load-expected.txt:
            * http/tests/history/redirect-js-location-assign-before-load-expected.txt:
            * http/tests/history/redirect-js-location-before-load-expected.txt:
            * http/tests/history/redirect-js-location-href-before-load-expected.txt:
            * http/tests/loading/307-after-303-after-post-expected.txt:
            * http/tests/loading/redirect-methods-expected.txt:
            * http/tests/navigation/resources/back-send-referrer-helper.php:
            * http/tests/navigation/resources/document-location.js:
            (start):
            * http/tests/navigation/resources/submit-to-fragment.pl:
            * security/autocomplete-cleared-on-back.html:
            * storage/hash-change-with-xhr.js:
            (updateDatabase):
            (invokeBack):
            (runTest):
            (runTestsInner):
    
    2010-08-13  Mihai Parparita  <mihaip@chromium.org>
    
            Reviewed by Dimitri Glazkov.
    
            Session history should skip over JS redirects
            https://bugs.webkit.org/show_bug.cgi?id=42861
    
            Lock the back/forward list for location changes and form submits that
            happen before the onload event fires that are not the result of user
            gestures.
    
            Made form submission (at the ScheduledFormSubmission level) more similar
            to ScheduledURLNavigation by having it call clientRedirected too, fixing
            a long-standing FIXME.
    
            Test: fast/history/gesture-before-onload-location-href.html,
            fast/history/gesture-before-onload-form-submit.html and updated
            expectations for http/tests/history tests that used to fail.
    
            * loader/FormSubmission.cpp:
            (WebCore::FormSubmission::requestURL):
            (WebCore::FormSubmission::populateFrameLoadRequest):
            * loader/FormSubmission.h:
            * loader/RedirectScheduler.cpp:
            (WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
            (WebCore::ScheduledFormSubmission::fire):
            (WebCore::ScheduledFormSubmission::didStartTimer):
            (WebCore::ScheduledFormSubmission::didStopTimer):
            (WebCore::RedirectScheduler::scheduleRedirect):
            (WebCore::RedirectScheduler::mustLockBackForwardList):
            (WebCore::RedirectScheduler::scheduleLocationChange):
            (WebCore::RedirectScheduler::scheduleFormSubmission):
            * loader/RedirectScheduler.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65340 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    4cbfdfd4