-
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