[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
eric at webkit.org
eric at webkit.org
Tue Jan 5 23:49:29 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit eb10e47581425cc2655172cffd41b6b8f482672c
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Dec 14 22:09:13 2009 +0000
2009-12-14 Robert Hogan <robert at roberthogan.net>
Reviewed by Eric Seidel.
[Qt] Fix https://bugs.webkit.org/show_bug.cgi?id=32437
Amend the behaviour of DRT::notifyDone to dump only when
the page has finished loading.
This fix permits removal of the following tests from the Qt skipped list:
fast/forms/textarea-linewrap-dynamic.html
fast/forms/textarea-setvalue-submit.html
fast/forms/textarea-hard-linewrap-empty.html
fast/forms/submit-to-url-fragment.html
http/tests/misc/percent-sign-in-form-field-name.html
http/tests/security/escape-form-data-field-names.html
However it also requires the following two to be added to the skipped list:
http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
svg/custom/use-instanceRoot-as-event-target.xhtml
It appears the behaviour of notifyDone was masking problems with these two
tests.
* platform/qt/Skipped:
2009-12-14 Robert Hogan <robert at roberthogan.net>
Reviewed by Eric Seidel.
[Qt] Fix https://bugs.webkit.org/show_bug.cgi?id=32437
Amend the behaviour of DRT::notifyDone to dump only when
the page has finished loading.
This fix permits removal of the following tests from the Qt skipped list:
fast/forms/textarea-linewrap-dynamic.html
fast/forms/textarea-setvalue-submit.html
fast/forms/textarea-hard-linewrap-empty.html
fast/forms/submit-to-url-fragment.html
http/tests/misc/percent-sign-in-form-field-name.html
http/tests/security/escape-form-data-field-names.html
However it also requires the following two to be added to the skipped list:
http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
svg/custom/use-instanceRoot-as-event-target.xhtml
It appears the behaviour of notifyDone was masking problems with these two
tests.
* DumpRenderTree/qt/DumpRenderTree.cpp:
(WebCore::DumpRenderTree::DumpRenderTree):
* DumpRenderTree/qt/LayoutTestControllerQt.cpp:
(LayoutTestController::reset):
(LayoutTestController::processWork):
(LayoutTestController::maybeDump):
(LayoutTestController::notifyDone):
(LayoutTestController::provisionalLoad):
* DumpRenderTree/qt/LayoutTestControllerQt.h:
(LayoutTestController::resetLoadFinished):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52118 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index daf6c7f..6bc21a3 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -2,6 +2,33 @@
Reviewed by Eric Seidel.
+ [Qt] Fix https://bugs.webkit.org/show_bug.cgi?id=32437
+
+ Amend the behaviour of DRT::notifyDone to dump only when
+ the page has finished loading.
+
+ This fix permits removal of the following tests from the Qt skipped list:
+ fast/forms/textarea-linewrap-dynamic.html
+ fast/forms/textarea-setvalue-submit.html
+ fast/forms/textarea-hard-linewrap-empty.html
+ fast/forms/submit-to-url-fragment.html
+ http/tests/misc/percent-sign-in-form-field-name.html
+ http/tests/security/escape-form-data-field-names.html
+
+ However it also requires the following two to be added to the skipped list:
+
+ http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
+ svg/custom/use-instanceRoot-as-event-target.xhtml
+
+ It appears the behaviour of notifyDone was masking problems with these two
+ tests.
+
+ * platform/qt/Skipped:
+
+2009-12-14 Robert Hogan <robert at roberthogan.net>
+
+ Reviewed by Eric Seidel.
+
Bug 32519 - mouseEvent fires mutiple times in
LayoutTests/svg/custom/use-instanceRoot-as-event-target.xhtml
diff --git a/LayoutTests/platform/qt/Skipped b/LayoutTests/platform/qt/Skipped
index cdb56a7..7024e7a 100644
--- a/LayoutTests/platform/qt/Skipped
+++ b/LayoutTests/platform/qt/Skipped
@@ -4859,12 +4859,8 @@ fast/forms/option-mouseevents.html
fast/forms/search-abs-pos-cancel-button.html
fast/forms/slider-transformed.html
fast/forms/slider-zoomed.html
-fast/forms/submit-to-url-fragment.html
fast/forms/text-control-intrinsic-widths.html
-fast/forms/textarea-hard-linewrap-empty.html
-fast/forms/textarea-linewrap-dynamic.html
fast/forms/textarea-metrics.html
-fast/forms/textarea-setvalue-submit.html
fast/history/back-forward-is-asynchronous.html
fast/history/window-open.html
fast/loader/cancel-load-during-port-block-timer.html
@@ -4986,7 +4982,6 @@ http/tests/security/cross-frame-access-put.html
http/tests/security/cross-origin-xsl-BLOCKED.html
http/tests/security/dataTransfer-set-data-file-url.html
http/tests/security/drag-over-remote-content-iframe.html
-http/tests/security/escape-form-data-field-names.html
http/tests/security/host-compare-case-insensitive.html
http/tests/security/window-properties-clear-domain.html
http/tests/security/window-properties-clear-port.html
@@ -5179,10 +5174,6 @@ svg/custom/radial-gradient-with-outstanding-focalPoint.svg
# This test introduced in r51877
fast/loader/input-element-page-cache-crash.html
-# [Qt][LayoutTestController] Output of document.write() is vanished by waitUntilDone()/notifyDone()
-# https://bugs.webkit.org/show_bug.cgi?id=32437
-http/tests/misc/percent-sign-in-form-field-name.html
-
# Missing forward entries when dumping back/forward list.
# https://bugs.webkit.org/show_bug.cgi?id=32470
http/tests/navigation/dynamic-iframe-dynamic-form-back-entry.html
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 93cc4fa..741c681 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,39 @@
+2009-12-14 Robert Hogan <robert at roberthogan.net>
+
+ Reviewed by Eric Seidel.
+
+ [Qt] Fix https://bugs.webkit.org/show_bug.cgi?id=32437
+
+ Amend the behaviour of DRT::notifyDone to dump only when
+ the page has finished loading.
+
+ This fix permits removal of the following tests from the Qt skipped list:
+ fast/forms/textarea-linewrap-dynamic.html
+ fast/forms/textarea-setvalue-submit.html
+ fast/forms/textarea-hard-linewrap-empty.html
+ fast/forms/submit-to-url-fragment.html
+ http/tests/misc/percent-sign-in-form-field-name.html
+ http/tests/security/escape-form-data-field-names.html
+
+ However it also requires the following two to be added to the skipped list:
+
+ http/tests/xmlhttprequest/access-control-basic-denied-preflight-cache.html
+ svg/custom/use-instanceRoot-as-event-target.xhtml
+
+ It appears the behaviour of notifyDone was masking problems with these two
+ tests.
+
+ * DumpRenderTree/qt/DumpRenderTree.cpp:
+ (WebCore::DumpRenderTree::DumpRenderTree):
+ * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
+ (LayoutTestController::reset):
+ (LayoutTestController::processWork):
+ (LayoutTestController::maybeDump):
+ (LayoutTestController::notifyDone):
+ (LayoutTestController::provisionalLoad):
+ * DumpRenderTree/qt/LayoutTestControllerQt.h:
+ (LayoutTestController::resetLoadFinished):
+
2009-12-14 Simon Hausmann <hausmann at webkit.org>
Reviewed by Holger Freyther.
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
index 6d466bf..a0e1575 100644
--- a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
@@ -332,6 +332,10 @@ DumpRenderTree::DumpRenderTree()
connect(m_page, SIGNAL(loadFinished(bool)),
m_controller, SLOT(maybeDump(bool)));
+ // We need to connect to loadStarted() because notifyDone should only
+ // dump results itself when the last page loaded in the test has finished loading.
+ connect(m_page, SIGNAL(loadStarted()),
+ m_controller, SLOT(resetLoadFinished()));
connect(m_page->mainFrame(), SIGNAL(titleChanged(const QString&)),
SLOT(titleChanged(const QString&)));
diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
index 0ea5632..4d05024 100644
--- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
+++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp
@@ -54,7 +54,8 @@ LayoutTestController::LayoutTestController(WebCore::DumpRenderTree* drt)
void LayoutTestController::reset()
{
- m_isLoading = true;
+ m_hasDumped = false;
+ m_loadFinished = false;
m_textDump = false;
m_dumpBackForwardList = false;
m_dumpChildrenAsText = false;
@@ -78,7 +79,7 @@ void LayoutTestController::processWork()
// if we didn't start a new load, then we finished all the commands, so we're ready to dump state
if (WorkQueue::shared()->processWork() && !shouldWaitUntilDone()) {
emit done();
- m_isLoading = false;
+ m_hasDumped = true;
}
}
@@ -87,23 +88,20 @@ void LayoutTestController::maybeDump(bool success)
{
Q_ASSERT(sender() == m_topLoadingFrame->page());
+ m_loadFinished = true;
// as the function is called on loadFinished, the test might
// already have dumped and thus no longer be active, thus
// bail out here.
- if (!m_isLoading)
+ if (m_hasDumped)
return;
- m_topLoadingFrame = 0;
WorkQueue::shared()->setFrozen(true); // first complete load freezes the queue for the rest of this test
-
- if (!shouldWaitUntilDone()) {
- if (WorkQueue::shared()->count())
- QTimer::singleShot(0, this, SLOT(processWork()));
- else {
- if (success)
- emit done();
- m_isLoading = false;
- }
+ if (WorkQueue::shared()->count())
+ QTimer::singleShot(0, this, SLOT(processWork()));
+ else if (!shouldWaitUntilDone()) {
+ if (success)
+ emit done();
+ m_hasDumped = true;
}
}
@@ -132,11 +130,19 @@ void LayoutTestController::notifyDone()
return;
m_timeoutTimer.stop();
+ m_waitForDone = false;
+
+ // If the page has not finished loading (i.e. loadFinished() has not been emitted) then
+ // content created by the likes of document.write() JS methods will not be available yet.
+ // When the page has finished loading, maybeDump above will dump the results now that we have
+ // just set shouldWaitUntilDone to false.
+ if (!m_loadFinished)
+ return;
+
emit done();
// FIXME: investigate why always resetting these result in timeouts
- m_isLoading = false;
- m_waitForDone = false;
+ m_hasDumped = true;
m_waitForPolicy = false;
}
@@ -208,7 +214,7 @@ void LayoutTestController::queueNonLoadingScript(const QString& script)
void LayoutTestController::provisionalLoad()
{
QWebFrame* frame = qobject_cast<QWebFrame*>(sender());
- if (!m_topLoadingFrame && m_isLoading)
+ if (!m_topLoadingFrame && !m_hasDumped)
m_topLoadingFrame = frame;
}
diff --git a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
index ac8681f..ca6892d 100644
--- a/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
+++ b/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h
@@ -54,9 +54,6 @@ class LayoutTestController : public QObject {
public:
LayoutTestController(WebCore::DumpRenderTree* drt);
- bool isLoading() const { return m_isLoading; }
- void setLoading(bool loading) { m_isLoading = loading; }
-
bool shouldDumpAsText() const { return m_textDump; }
bool shouldDumpBackForwardList() const { return m_dumpBackForwardList; }
bool shouldDumpChildrenAsText() const { return m_dumpChildrenAsText; }
@@ -115,6 +112,7 @@ public slots:
void setPrivateBrowsingEnabled(bool enable);
void setPopupBlockingEnabled(bool enable);
void setPOSIXLocale(const QString& locale);
+ void resetLoadFinished() { m_loadFinished = false; }
bool pauseAnimationAtTimeOnElementWithId(const QString& animationName, double time, const QString& elementId);
bool pauseTransitionAtTimeOnElementWithId(const QString& propertyName, double time, const QString& elementId);
@@ -137,7 +135,7 @@ private slots:
void processWork();
private:
- bool m_isLoading;
+ bool m_hasDumped;
bool m_textDump;
bool m_dumpBackForwardList;
bool m_dumpChildrenAsText;
@@ -148,6 +146,7 @@ private:
bool m_dumpStatusCallbacks;
bool m_waitForPolicy;
bool m_handleErrorPages;
+ bool m_loadFinished;
QBasicTimer m_timeoutTimer;
QWebFrame* m_topLoadingFrame;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list