[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