Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
2010-07-30 Mihai Parparita <mihaip@chromium.org>
Reviewed by Darin Fisher. Session history should skip over JS redirects https://bugs.webkit.org/show_bug.cgi?id=42861 Lock the back/forward list for location changes that happen before the onload event fires that are not the result of user gestures. http/tests/history tests now pass, their expectatiosn were updated accordingly. Other tests needed a setTimeout wrapper around location changes during onload, otherwise they would not generate history entries as expected anymore. * fast/css/target-fragment-match.html: * fast/dom/Window/timer-resume-on-navigation-back.html: * fast/dom/location-hash.html: * fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt: * fast/events/pageshow-pagehide-on-back-cached-with-frames.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/redirect-js-document-location-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/navigation/resources/document-location.js: (start): * security/autocomplete-cleared-on-back.html: * storage/hash-change-with-xhr.js: (updateDatabase): (invokeBack): (runTest): (runTestsInner): 2010-07-30 Mihai Parparita <mihaip@chromium.org> Reviewed by Darin Fisher. Session history should skip over JS redirects https://bugs.webkit.org/show_bug.cgi?id=42861 Lock the back/forward list for location changes that happen before the onload event fires that are not the result of user gestures. Test: fast/history/gesture-before-onload.html and updated expectations for http/tests/history tests that used to fail. * loader/RedirectScheduler.cpp: (WebCore::RedirectScheduler::scheduleRedirect): (WebCore::RedirectScheduler::mustLockBackForwardList): (WebCore::RedirectScheduler::scheduleLocationChange): (WebCore::RedirectScheduler::scheduleFormSubmission): * loader/RedirectScheduler.h: Canonical link: https://commits.webkit.org/55230@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64408 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing
with
279 additions
and 92 deletions.
- +46 −0 LayoutTests/ChangeLog
- +6 −0 LayoutTests/fast/css/target-fragment-match.html
- +6 −3 LayoutTests/fast/dom/Window/timer-resume-on-navigation-back.html
- +3 −2 LayoutTests/fast/dom/location-hash.html
- +14 −14 LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames-expected.txt
- +6 −3 LayoutTests/fast/events/pageshow-pagehide-on-back-cached-with-frames.html
- +2 −1 LayoutTests/fast/frames/resources/cached-page-1.html
- +2 −1 LayoutTests/fast/frames/resources/cached-page-2.html
- +2 −1 LayoutTests/fast/harness/resources/cached-page-1.html
- +2 −1 LayoutTests/fast/harness/resources/cached-page-with-data-urls.html
- +9 −0 LayoutTests/fast/history/gesture-before-onload-expected.txt
- +32 −0 LayoutTests/fast/history/gesture-before-onload.html
- +28 −24 LayoutTests/fast/history/history-length.html
- +41 −0 LayoutTests/fast/history/resources/gesture-before-onload-target.html
- +5 −2 LayoutTests/fast/history/saves-state-after-fragment-nav.html
- +3 −2 LayoutTests/fast/loader/input-element-page-cache-crash.html
- +4 −3 LayoutTests/fast/loader/stateobjects/document-destroyed-navigate-back.html
- +20 −16 LayoutTests/fast/loader/stateobjects/pushstate-clears-forward-history.html
- +3 −2 LayoutTests/fast/loader/subframe-navigate-during-main-frame-load.html
- +1 −2 LayoutTests/http/tests/history/redirect-js-document-location-before-load-expected.txt
- +1 −2 LayoutTests/http/tests/history/redirect-js-location-assign-before-load-expected.txt
- +1 −2 LayoutTests/http/tests/history/redirect-js-location-before-load-expected.txt
- +1 −2 LayoutTests/http/tests/history/redirect-js-location-href-before-load-expected.txt
- +2 −1 LayoutTests/http/tests/navigation/resources/document-location.js
- +2 −1 LayoutTests/security/autocomplete-cleared-on-back.html
- +6 −0 LayoutTests/storage/hash-change-with-xhr.js
- +20 −0 WebCore/ChangeLog
- +9 −5 WebCore/loader/RedirectScheduler.cpp
- +2 −2 WebCore/loader/RedirectScheduler.h
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -1,16 +1,16 @@ | ||
CONSOLE MESSAGE: line 20: ***Top level frame being parsed for the initial page load*** | ||
CONSOLE MESSAGE: line 20: Subsubframe window.onload | ||
CONSOLE MESSAGE: line 20: Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = false | ||
CONSOLE MESSAGE: line 20: Subframe window.onload | ||
CONSOLE MESSAGE: line 20: Subframe window.onpageshow, target = [object HTMLDocument], persisted = false | ||
CONSOLE MESSAGE: line 20: Main frame window.onload | ||
CONSOLE MESSAGE: line 20: Main frame window.onpageshow, target = [object HTMLDocument], persisted = false | ||
CONSOLE MESSAGE: line 20: ***Navigating top-level frame to a page that will immediately navigate back to this one*** | ||
CONSOLE MESSAGE: line 20: Main frame window.onpagehide, target = [object HTMLDocument], persisted = true | ||
CONSOLE MESSAGE: line 20: Subframe window.onpagehide, target = [object HTMLDocument], persisted = true | ||
CONSOLE MESSAGE: line 20: Subsubframe window.onpagehide, target = [object HTMLDocument], persisted = true | ||
CONSOLE MESSAGE: line 20: Subsubframe window.onpageshow, target = [object HTMLDocument], persisted = true | ||
CONSOLE MESSAGE: line 20: Subframe window.onpageshow, target = [object HTMLDocument], persisted = true | ||
CONSOLE MESSAGE: line 20: Main frame window.onpageshow, target = [object HTMLDocument], persisted = true | ||
Test pageshow/pagehide event behavior when navigating away from a page with frames, putting the page in the page cache, then back to it. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,9 @@ | ||
This page is the target of a redirect. | ||
|
||
PASS: History item count should be 2 and is. | ||
|
||
|
||
============== Back Forward List ============== | ||
(file test):fast/history/gesture-before-onload.html **nav target** | ||
curr-> (file test):fast/history/resources/gesture-before-onload-target.html#2 **nav target** | ||
=============================================== |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,32 @@ | ||
<head> | ||
</head> | ||
<body onload="onload()"> | ||
<button id="nav-button" onclick="nav();">Navigate</button> | ||
<div id="manual-explanation" style="display: none; color: blue">When running this test outside of DRT, please click on the "Navigate" button.</div> | ||
</body> | ||
<script> | ||
if (window.layoutTestController) { | ||
layoutTestController.clearBackForwardList(); | ||
layoutTestController.waitUntilDone(); | ||
} | ||
|
||
if (window.eventSender) { | ||
var navButtonNode = document.getElementById('nav-button'); | ||
eventSender.mouseMoveTo( | ||
navButtonNode.offsetLeft + navButtonNode.offsetWidth / 2, | ||
navButtonNode.offsetTop + navButtonNode.offsetHeight / 2); | ||
eventSender.mouseDown(); | ||
eventSender.mouseUp(); | ||
} else { | ||
document.getElementById('manual-explanation').style.display = ''; | ||
} | ||
|
||
function nav() { | ||
window.location.href = 'resources/gesture-before-onload-target.html#2'; | ||
} | ||
|
||
function onload() { | ||
window.console.log('FAIL: Should not have reached onload before navigating away'); | ||
} | ||
</script> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,41 @@ | ||
<!-- This page accepts a query string specifying how many history items should | ||
be present once it finishes loading. --> | ||
|
||
<html> | ||
<head> | ||
<title>Redirect Target</title> | ||
|
||
<script> | ||
function log(s) | ||
{ | ||
document.getElementById("console").appendChild(document.createTextNode(s + "\n")); | ||
} | ||
|
||
function testHistoryItemCount() | ||
{ | ||
var expected = parseInt(location.hash.slice(1)); | ||
var actual = history.length; | ||
if (actual === expected) | ||
log("PASS: History item count should be " + expected + " and is."); | ||
else | ||
log("FAIL: History item count should be " + expected + " but instead is " + actual + "."); | ||
} | ||
|
||
window.addEventListener("load", function () { | ||
if (window.layoutTestController) { | ||
layoutTestController.dumpAsText(); | ||
testHistoryItemCount(); | ||
layoutTestController.dumpBackForwardList(); | ||
layoutTestController.notifyDone(); | ||
} else { | ||
testHistoryItemCount(); | ||
} | ||
}, false); | ||
</script> | ||
</head> | ||
|
||
<body> | ||
<p>This page is the target of a redirect.</p> | ||
<pre id="console"></pre> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.