[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75
eric at webkit.org
eric at webkit.org
Thu Oct 29 20:34:51 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit d524163bfa65fd042e97c20270f4250daf4452ef
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sun Sep 27 19:05:44 2009 +0000
2009-09-27 Jakub Wieczorek <faw217 at gmail.com>
Reviewed by Simon Hausmann.
[Qt] Implement layoutTestController.waitForPolicyDelegate.
https://bugs.webkit.org/show_bug.cgi?id=25037
* DumpRenderTree/qt/DumpRenderTree.cpp:
(WebCore::WebPage::acceptNavigationRequest):
* DumpRenderTree/qt/DumpRenderTree.pro:
* DumpRenderTree/qt/jsobjects.cpp:
(LayoutTestController::reset):
(LayoutTestController::notifyDone):
(LayoutTestController::waitForPolicyDelegate):
* DumpRenderTree/qt/jsobjects.h:
(LayoutTestController::waitForPolicy):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index df39b25..d1c915f 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,20 @@
+2009-09-27 Jakub Wieczorek <faw217 at gmail.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Implement layoutTestController.waitForPolicyDelegate.
+ https://bugs.webkit.org/show_bug.cgi?id=25037
+
+ * DumpRenderTree/qt/DumpRenderTree.cpp:
+ (WebCore::WebPage::acceptNavigationRequest):
+ * DumpRenderTree/qt/DumpRenderTree.pro:
+ * DumpRenderTree/qt/jsobjects.cpp:
+ (LayoutTestController::reset):
+ (LayoutTestController::notifyDone):
+ (LayoutTestController::waitForPolicyDelegate):
+ * DumpRenderTree/qt/jsobjects.h:
+ (LayoutTestController::waitForPolicy):
+
2009-09-26 David Kilzer <ddkilzer at apple.com>
<http://webkit.org/b/29764> mark-bug-fixed: add -o|--open switch
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
index aca75c4..6d65a88 100644
--- a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.cpp
@@ -45,6 +45,7 @@
#include <QUrl>
#include <QFocusEvent>
#include <QFontDatabase>
+#include <QNetworkRequest>
#include <qwebpage.h>
#include <qwebframe.h>
@@ -86,6 +87,9 @@ public:
public slots:
bool shouldInterruptJavaScript() { return false; }
+protected:
+ bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type);
+
private slots:
void setViewGeometry(const QRect &r)
{
@@ -145,6 +149,42 @@ bool WebPage::javaScriptPrompt(QWebFrame*, const QString& msg, const QString& de
return true;
}
+bool WebPage::acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type)
+{
+ if (m_drt->layoutTestController()->waitForPolicy()) {
+ QString url = QString::fromUtf8(request.url().toEncoded());
+ QString typeDescription;
+
+ switch (type) {
+ case NavigationTypeLinkClicked:
+ typeDescription = "link clicked";
+ break;
+ case NavigationTypeFormSubmitted:
+ typeDescription = "form submitted";
+ break;
+ case NavigationTypeBackOrForward:
+ typeDescription = "back/forward";
+ break;
+ case NavigationTypeReload:
+ typeDescription = "reload";
+ break;
+ case NavigationTypeFormResubmitted:
+ typeDescription = "form resubmitted";
+ break;
+ case NavigationTypeOther:
+ typeDescription = "other";
+ break;
+ default:
+ typeDescription = "illegal value";
+ }
+
+ fprintf(stdout, "Policy delegate: attempt to load %s with navigation type '%s'\n",
+ url.toUtf8().constData(), typeDescription.toUtf8().constData());
+ m_drt->layoutTestController()->notifyDone();
+ }
+ return QWebPage::acceptNavigationRequest(frame, request, type);
+}
+
DumpRenderTree::DumpRenderTree()
: m_dumpPixels(false)
, m_stdin(0)
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
index ca97ed5..d64bc98 100644
--- a/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
+++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
@@ -9,8 +9,8 @@ DESTDIR = ../../../bin
CONFIG += link_pkgconfig
PKGCONFIG += fontconfig
-QT = core gui
-macx: QT += xml network
+QT = core gui network
+macx: QT += xml
HEADERS = WorkQueue.h WorkQueueItem.h DumpRenderTree.h jsobjects.h testplugin.h
SOURCES = WorkQueue.cpp DumpRenderTree.cpp main.cpp jsobjects.cpp testplugin.cpp
diff --git a/WebKitTools/DumpRenderTree/qt/jsobjects.cpp b/WebKitTools/DumpRenderTree/qt/jsobjects.cpp
index 473ced7..5746bbb 100644
--- a/WebKitTools/DumpRenderTree/qt/jsobjects.cpp
+++ b/WebKitTools/DumpRenderTree/qt/jsobjects.cpp
@@ -131,6 +131,7 @@ void LayoutTestController::reset()
m_dumpDatabaseCallbacks = false;
m_timeoutTimer.stop();
m_topLoadingFrame = 0;
+ m_waitForPolicy = false;
qt_dump_editing_callbacks(false);
qt_dump_resource_load_callbacks(false);
QWebSettings::globalSettings()->setAttribute(QWebSettings::PrivateBrowsingEnabled, false);
@@ -188,6 +189,7 @@ void LayoutTestController::notifyDone()
emit done();
m_isLoading = false;
m_waitForDone = false;
+ m_waitForPolicy = false;
}
int LayoutTestController::windowCount()
@@ -342,6 +344,12 @@ void LayoutTestController::whiteListAccessFromOrigin(const QString& sourceOrigin
QWebSecurityOrigin::whiteListAccessFromOrigin(sourceOrigin, destinationProtocol, destinationHost, allowDestinationSubdomains);
}
+void LayoutTestController::waitForPolicyDelegate()
+{
+ m_waitForPolicy = true;
+ waitUntilDone();
+}
+
EventSender::EventSender(QWebPage *parent)
: QObject(parent)
{
diff --git a/WebKitTools/DumpRenderTree/qt/jsobjects.h b/WebKitTools/DumpRenderTree/qt/jsobjects.h
index 5c23264..d65646c 100644
--- a/WebKitTools/DumpRenderTree/qt/jsobjects.h
+++ b/WebKitTools/DumpRenderTree/qt/jsobjects.h
@@ -56,6 +56,7 @@ public:
bool shouldWaitUntilDone() const { return m_waitForDone; }
bool canOpenWindows() const { return m_canOpenWindows; }
bool shouldDumpTitleChanges() const { return m_dumpTitleChanges; }
+ bool waitForPolicy() const { return m_waitForPolicy; }
void reset();
@@ -106,6 +107,8 @@ public slots:
void setDatabaseQuota(int size);
void clearAllDatabases();
+ void waitForPolicyDelegate();
+
private slots:
void processWork();
@@ -118,6 +121,7 @@ private:
bool m_waitForDone;
bool m_dumpTitleChanges;
bool m_dumpDatabaseCallbacks;
+ bool m_waitForPolicy;
QBasicTimer m_timeoutTimer;
QWebFrame *m_topLoadingFrame;
WebCore::DumpRenderTree *m_drt;
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list