Add API to retrieve the frame name from QWebFrame.
authorlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Oct 2007 13:02:43 +0000 (13:02 +0000)
committerlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 2 Oct 2007 13:02:43 +0000 (13:02 +0000)
Implement support for DRT::dumpChildrenAsText.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@25921 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebKitQt/Api/qwebframe.cpp
WebKitQt/Api/qwebframe.h
WebKitQt/ChangeLog
WebKitTools/ChangeLog
WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.cpp
WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.h
WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/jsobjects.cpp
WebKitTools/DumpRenderTree/DumpRenderTree.qtproj/jsobjects.h

index 47d0677..fbccaa8 100644 (file)
@@ -181,6 +181,11 @@ QString QWebFrame::title() const
     else return QString();
 }
 
+QString QWebFrame::name() const
+{
+    return d->frame->tree()->name();
+}
+
 QWebPage * QWebFrame::page() const
 {
     return d->page;
index 35f2587..e18bdad 100644 (file)
@@ -60,6 +60,7 @@ public:
     QString renderTreeDump() const;
     QString selectedText() const;
     QString title() const;
+    QString name() const;
 
     QList<QWebFrame*> childFrames() const;
 
index c068ae3..6da123a 100644 (file)
@@ -2,6 +2,17 @@
 
         Reviewed by bdash.
 
+        Add API to retrieve the frame name from QWebFrame.
+        Implement support for DRT::dumpChildrenAsText.
+
+        * Api/qwebframe.cpp:
+        (QWebFrame::name):
+        * Api/qwebframe.h:
+
+2007-10-02  Lars Knoll  <lars@trolltech.com>
+
+        Reviewed by bdash.
+
         Fix the handling of the response header for data urls. Make sure we always pass absolute URLs to WebKit from both DRT and QtLauncher.
 
         * Api/qwebnetworkinterface.cpp:
index 641df9f..8b41b20 100644 (file)
@@ -2,6 +2,22 @@
 
         Reviewed by bdash.
 
+        Add API to retrieve the frame name from QWebFrame.
+        Implement support for DRT::dumpChildrenAsText.
+
+        * DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.cpp:
+        (WebCore::DumpRenderTree::dumpFramesAsText):
+        (WebCore::DumpRenderTree::dump):
+        * DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.h:
+        * DumpRenderTree/DumpRenderTree.qtproj/jsobjects.cpp:
+        (LayoutTestController::LayoutTestController):
+        (LayoutTestController::reset):
+        * DumpRenderTree/DumpRenderTree.qtproj/jsobjects.h:
+
+2007-10-02  Lars Knoll  <lars@trolltech.com>
+
+        Reviewed by bdash.
+
         Fix the handling of the response header for data urls. Make sure we always pass absolute URLs to WebKit from both DRT and QtLauncher.
 
         * DumpRenderTree/DumpRenderTree.qtproj/DumpRenderTree.cpp:
index 67612e7..dc75140 100644 (file)
@@ -177,6 +177,32 @@ void DumpRenderTree::initJSObjects()
     frame->addToJSWindowObject("eventSender", m_eventSender);
 }
 
+
+QString DumpRenderTree::dumpFramesAsText(QWebFrame* frame)
+{
+    if (!frame)
+        return QString();
+
+    QString result;
+    QWebFrame *parent = qobject_cast<QWebFrame *>(frame->parent());
+    if (parent) {
+        result.append(QLatin1String("\n--------\nFrame: '"));
+        result.append(frame->name());
+        result.append(QLatin1String("'\n--------\n"));
+    }
+
+    result.append(frame->innerText());
+    result.append(QLatin1String("\n"));
+
+    if (m_controller->shouldDumpChildrenAsText()) {
+        QList<QWebFrame *> children = frame->childFrames();
+        for (int i = 0; i < children.size(); ++i)
+            result += dumpFramesAsText(children.at(i));
+    }
+
+    return result;
+}
+
 void DumpRenderTree::dump()
 {
     QWebFrame *frame = m_page->mainFrame();
@@ -191,8 +217,7 @@ void DumpRenderTree::dump()
     // Dump render text...
     QString renderDump;
     if (m_controller->shouldDumpAsText()) {
-        renderDump = frame->innerText();
-        renderDump.append("\n");
+        renderDump = dumpFramesAsText(frame);
     } else {
         renderDump = frame->renderTreeDump();
     }
index 19b4646..f0cec70 100644 (file)
@@ -6,13 +6,13 @@
  * are met:
  *
  * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer. 
+ *     notice, this list of conditions and the following disclaimer.
  * 2.  Redistributions in binary form must reproduce the above copyright
  *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution. 
+ *     documentation and/or other materials provided with the distribution.
  * 3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
  *     its contributors may be used to endorse or promote products derived
- *     from this software without specific prior written permission. 
+ *     from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@@ -71,6 +71,7 @@ Q_SIGNALS:
     void quit();
 
 private:
+    QString dumpFramesAsText(QWebFrame* frame);
     LayoutTestController *m_controller;
 
     QWebPage *m_page;
index ce4f524..ccfd433 100644 (file)
@@ -54,6 +54,7 @@ LayoutTestController::LayoutTestController() : QObject()
 {
     m_isLoading = true;
     m_textDump = false;
+    m_dumpChildrenAsText = false;
     m_waitForDone = false;
     m_timeoutTimer = 0;
     m_topLoadingFrame = 0;
@@ -63,6 +64,7 @@ void LayoutTestController::reset()
 {
     m_isLoading = true;
     m_textDump = false;
+    m_dumpChildrenAsText = false;
     m_waitForDone = false;
     if (m_timeoutTimer) {
         killTimer(m_timeoutTimer);
index 2c9cc84..da69397 100644 (file)
@@ -44,6 +44,7 @@ public:
     void setLoading(bool loading) { m_isLoading = loading; }
 
     bool shouldDumpAsText() const { return m_textDump; }
+    bool shouldDumpChildrenAsText() const { return m_dumpChildrenAsText; }
     bool shouldWaitUntilDone() const { return m_waitForDone; }
 
     void reset();
@@ -57,6 +58,7 @@ signals:
 public slots:
     void maybeDump(bool ok);
     void dumpAsText() { m_textDump = true; }
+    void dumpChildFramesAsText() { m_dumpChildrenAsText = true; }
     void waitUntilDone();
     void notifyDone();
     void dumpEditingCallbacks();
@@ -66,6 +68,7 @@ public slots:
 private:
     bool m_isLoading;
     bool m_textDump;
+    bool m_dumpChildrenAsText;
     bool m_waitForDone;
     int m_timeoutTimer;
     QWebFrame *m_topLoadingFrame;