[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
commit-queue at webkit.org
commit-queue at webkit.org
Wed Dec 22 12:49:31 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit e551a8fd58d72574ce6f254e3db8b77aa6540e3a
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Tue Aug 31 05:39:21 2010 +0000
2010-08-30 Mihai Parparita <mihaip at chromium.org>
Reviewed by Adam Barth.
HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
https://bugs.webkit.org/show_bug.cgi?id=44315
Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
* wtf/Platform.h:
2010-08-30 Mihai Parparita <mihaip at chromium.org>
Reviewed by Adam Barth.
HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
https://bugs.webkit.org/show_bug.cgi?id=44315
Add test that checks history.back() asynchronous behavior. Modifies
location-hash.html to not assume synchronous traversal and removes it
from the Chromium test expectations, since it passes there now too.
* fast/dom/location-hash-expected.txt:
* fast/dom/location-hash.html:
* fast/history/history-traversal-is-asynchronous-expected.txt: Added.
* fast/history/history-traversal-is-asynchronous.html: Added.
* platform/chromium/test_expectations.txt:
2010-08-30 Mihai Parparita <mihaip at chromium.org>
Reviewed by Adam Barth.
HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
https://bugs.webkit.org/show_bug.cgi?id=44315
Remove check in RedirectScheduler::scheduleHistoryNavigation that would
dispatch some navigations synchronously.
Test: fast/history/history-traversal-is-asynchronous.html
* loader/RedirectScheduler.cpp:
(WebCore::RedirectScheduler::scheduleHistoryNavigation):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@66458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index b926001..e307ff8 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,14 @@
+2010-08-30 Mihai Parparita <mihaip at chromium.org>
+
+ Reviewed by Adam Barth.
+
+ HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
+ https://bugs.webkit.org/show_bug.cgi?id=44315
+
+ Remove ENABLE_HISTORY_ALWAYS_ASYNC #define.
+
+ * wtf/Platform.h:
+
2010-08-30 Chris Rogers <crogers at google.com>
Reviewed by Kenneth Russell.
diff --git a/JavaScriptCore/wtf/Platform.h b/JavaScriptCore/wtf/Platform.h
index d114085..7ead013 100644
--- a/JavaScriptCore/wtf/Platform.h
+++ b/JavaScriptCore/wtf/Platform.h
@@ -520,7 +520,6 @@
/* PLATFORM(SKIA) for Win/Linux, CG/CI for Mac */
#if PLATFORM(CHROMIUM)
-#define ENABLE_HISTORY_ALWAYS_ASYNC 1
#if OS(DARWIN)
#define WTF_PLATFORM_CG 1
#define WTF_PLATFORM_CI 1
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 7002ebb..ce10d84 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,20 @@
+2010-08-30 Mihai Parparita <mihaip at chromium.org>
+
+ Reviewed by Adam Barth.
+
+ HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
+ https://bugs.webkit.org/show_bug.cgi?id=44315
+
+ Add test that checks history.back() asynchronous behavior. Modifies
+ location-hash.html to not assume synchronous traversal and removes it
+ from the Chromium test expectations, since it passes there now too.
+
+ * fast/dom/location-hash-expected.txt:
+ * fast/dom/location-hash.html:
+ * fast/history/history-traversal-is-asynchronous-expected.txt: Added.
+ * fast/history/history-traversal-is-asynchronous.html: Added.
+ * platform/chromium/test_expectations.txt:
+
2010-08-30 Jian Li <jianli at chromium.org>
Reviewed by Darin Fisher.
diff --git a/LayoutTests/fast/dom/location-hash-expected.txt b/LayoutTests/fast/dom/location-hash-expected.txt
index 6991eda..a5cb605 100644
--- a/LayoutTests/fast/dom/location-hash-expected.txt
+++ b/LayoutTests/fast/dom/location-hash-expected.txt
@@ -11,8 +11,16 @@ PASS: window.history.length == originalHistoryLength + 2 should be true and is.
PASS: window.location.hash should be #bar and is.
PASS: window.location == originalLocation + '#bar' should be true and is.
PASS: window.history.length == originalHistoryLength + 2 should be true and is.
+PASS: window.location.hash should be #bar and is.
+PASS: window.location == originalLocation + '#bar' should be true and is.
+PASS: window.location.hash should be #bar and is.
+PASS: window.location == originalLocation + '#bar' should be true and is.
PASS: window.location.hash should be #foo and is.
PASS: window.location == originalLocation + '#foo' should be true and is.
+PASS: window.location.hash should be #foo and is.
+PASS: window.location == originalLocation + '#foo' should be true and is.
+PASS: window.location.hash should be and is.
+PASS: window.location == originalLocation should be true and is.
PASS: window.location.hash should be and is.
PASS: window.location == originalLocation should be true and is.
PASS: window.location.hash should be #foo and is.
diff --git a/LayoutTests/fast/dom/location-hash.html b/LayoutTests/fast/dom/location-hash.html
index f580f52..c0b8dd9 100644
--- a/LayoutTests/fast/dom/location-hash.html
+++ b/LayoutTests/fast/dom/location-hash.html
@@ -45,21 +45,32 @@
shouldBe('window.history.length == originalHistoryLength + 2', true);
break;
case 3:
+ shouldBe('window.location.hash', '#bar');
+ shouldBe("window.location == originalLocation + '#bar'", true);
window.history.back();
- shouldBe('window.location.hash', '#foo');
- shouldBe("window.location == originalLocation + '#foo'", true);
+ // history.back() is asychronous, location should be unchanged
+ shouldBe('window.location.hash', '#bar');
+ shouldBe("window.location == originalLocation + '#bar'", true);
break;
case 4:
+ shouldBe('window.location.hash', '#foo');
+ shouldBe("window.location == originalLocation + '#foo'", true);
window.history.back();
- shouldBe('window.location.hash', '');
- shouldBe("window.location == originalLocation", true);
+ // history.back() is asychronous, location should be unchanged
+ shouldBe('window.location.hash', '#foo');
+ shouldBe("window.location == originalLocation + '#foo'", true);
break;
case 5:
+ shouldBe('window.location.hash', '');
+ shouldBe("window.location == originalLocation", true);
window.history.forward();
- shouldBe('window.location.hash', '#foo');
- shouldBe("window.location == originalLocation + '#foo'", true);
+ // history.forward() is asychronous, location should be unchanged
+ shouldBe('window.location.hash', '');
+ shouldBe("window.location == originalLocation", true);
break;
case 6:
+ shouldBe('window.location.hash', '#foo');
+ shouldBe("window.location == originalLocation + '#foo'", true);
window.location.hash = '';
if (numErrors == 0)
print("SUCCESS!", "green")
@@ -73,7 +84,10 @@
}
state ++;
- step();
+
+ // Do the step in a timeout to give asynchornous history.back/forward()
+ // calls a chance to run.
+ setTimeout(step, 0);
}
function runTests() {
diff --git a/LayoutTests/fast/history/history-traversal-is-asynchronous-expected.txt b/LayoutTests/fast/history/history-traversal-is-asynchronous-expected.txt
new file mode 100644
index 0000000..1e88a4e
--- /dev/null
+++ b/LayoutTests/fast/history/history-traversal-is-asynchronous-expected.txt
@@ -0,0 +1,10 @@
+Checks that session history traversal is done asynchronously.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS location.hash is "#state1"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/fast/history/history-traversal-is-asynchronous.html b/LayoutTests/fast/history/history-traversal-is-asynchronous.html
new file mode 100644
index 0000000..e1b87c0
--- /dev/null
+++ b/LayoutTests/fast/history/history-traversal-is-asynchronous.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <link rel="stylesheet" href="../js/resources/js-test-style.css">
+ <script src="../js/resources/js-test-pre.js"></script>
+</head>
+<body>
+<p id="description"></p>
+<pre id="console"></pre>
+<script>
+description('Checks that session history traversal is done asynchronously.');
+
+onload = function()
+{
+ // Make sure that we can generate history entries
+ setTimeout(runTest, 0);
+}
+
+function runTest()
+{
+ location.hash = '#state1';
+ history.back();
+ // If history.back() is asychronous, then the location won't have been
+ // updated yet.
+ shouldBe('location.hash', '"#state1"');
+
+ finishJSTest();
+}
+
+var successfullyParsed = true;
+var jsTestIsAsync = true;
+</script>
+<script src="../js/resources/js-test-post.js"></script>
+</body>
+</html>
diff --git a/LayoutTests/platform/chromium/test_expectations.txt b/LayoutTests/platform/chromium/test_expectations.txt
index 33797a2..b07826f 100644
--- a/LayoutTests/platform/chromium/test_expectations.txt
+++ b/LayoutTests/platform/chromium/test_expectations.txt
@@ -2408,10 +2408,6 @@ BUG32949 WIN LINUX MAC : fast/dom/Window/invalid-protocol.html = TEXT
BUG21852 DEFER SKIP LINUX WIN : fast/canvas/webgl = CRASH
-// Disabled until we get history.{back,forward,go} changed to always be
-// asynchronously again.
-BUG33350 : fast/dom/location-hash.html = TEXT
-
// WebKit roll 53941 -> 54015
BUG33358 WIN LINUX : fast/dom/Window/window-postmessage-clone-frames.html = TEXT
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 14c760a..2c4a77a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-08-30 Mihai Parparita <mihaip at chromium.org>
+
+ Reviewed by Adam Barth.
+
+ HISTORY_ALWAYS_ASYNC should be removed (history should always be async)
+ https://bugs.webkit.org/show_bug.cgi?id=44315
+
+ Remove check in RedirectScheduler::scheduleHistoryNavigation that would
+ dispatch some navigations synchronously.
+
+ Test: fast/history/history-traversal-is-asynchronous.html
+
+ * loader/RedirectScheduler.cpp:
+ (WebCore::RedirectScheduler::scheduleHistoryNavigation):
+
2010-08-30 Jian Li <jianli at chromium.org>
Reviewed by Darin Fisher.
diff --git a/WebCore/loader/RedirectScheduler.cpp b/WebCore/loader/RedirectScheduler.cpp
index d3b6c53..461baf7 100644
--- a/WebCore/loader/RedirectScheduler.cpp
+++ b/WebCore/loader/RedirectScheduler.cpp
@@ -341,16 +341,6 @@ void RedirectScheduler::scheduleHistoryNavigation(int steps)
return;
}
-#if !ENABLE(HISTORY_ALWAYS_ASYNC)
- // If the specified entry and the current entry have the same document (or documents, in there are frames), this is either a
- // state object traversal or a fragment traversal (or both) and should be performed synchronously.
- HistoryItem* currentEntry = m_frame->loader()->history()->currentItem();
- if (currentEntry != specifiedEntry && currentEntry->hasSameDocuments(specifiedEntry)) {
- m_frame->loader()->history()->goToItem(specifiedEntry, FrameLoadTypeIndexedBackForward);
- return;
- }
-#endif
-
// In all other cases, schedule the history traversal to occur asynchronously.
schedule(adoptPtr(new ScheduledHistoryNavigation(steps)));
}
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list