[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

zimmermann at webkit.org zimmermann at webkit.org
Wed Dec 22 11:16:17 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7d66fdd400ee341c2218107a28ff20e46ab10c9a
Author: zimmermann at webkit.org <zimmermann at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Jul 16 09:48:36 2010 +0000

    2010-07-16  Nikolas Zimmermann  <nzimmermann at rim.com>
    
            Reviewed by Dirk Schulze.
    
            Add possibility to dumpAsText and generate a pixel test result
            https://bugs.webkit.org/show_bug.cgi?id=42374
    
            Add optional parameter to setDumpAsText() to allow generating a pixel test result even if dumpAsText mode.
            setDumpAsText(true) will also generate a pixel test result now, when running run-webkit-tests --pixel-tests.
    
            This is needed for the svg/dynamic-updates tests, which don't want render tree dumps but text dumps + a pixel test result.
            At some point DRT changed to not generate pixel test results when using dumpAsText - which makes sense, but breaks the svg/dynamic-updates test.
    
            Implemented for all DRT platforms, except Qt, as it's not clear how arguments to functions like "setDumpAsText" are handled.
            (Qt always dumps pixel tests when using --pixel-tests mode, so it does not break anything)
    
            * DumpRenderTree/LayoutTestController.cpp:
            (LayoutTestController::LayoutTestController):
            (dumpAsTextAndPixelsCallback):
            (LayoutTestController::staticFunctions):
            * DumpRenderTree/LayoutTestController.h:
            (LayoutTestController::dumpAsTextAndPixels):
            (LayoutTestController::setDumpAsTextAndPixels):
            * DumpRenderTree/chromium/LayoutTestController.cpp:
            (LayoutTestController::LayoutTestController):
            (LayoutTestController::dumpAsTextAndPixels):
            (LayoutTestController::reset):
            * DumpRenderTree/chromium/LayoutTestController.h:
            (LayoutTestController::shouldDumpAsTextAndPixels):
            * DumpRenderTree/chromium/TestShell.cpp:
            (TestShell::dump):
            * DumpRenderTree/gtk/DumpRenderTree.cpp:
            (dump):
            * DumpRenderTree/mac/DumpRenderTree.mm:
            (dump):
            * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
            (WebCore::DumpRenderTree::dump):
            * DumpRenderTree/win/DumpRenderTree.cpp:
            (dump):
            * DumpRenderTree/wx/DumpRenderTreeWx.cpp:
            (dump):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@63536 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index e536821..60405e0 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,45 @@
+2010-07-16  Nikolas Zimmermann  <nzimmermann at rim.com>
+
+        Reviewed by Dirk Schulze.
+
+        Add possibility to dumpAsText and generate a pixel test result
+        https://bugs.webkit.org/show_bug.cgi?id=42374
+
+        Add optional parameter to setDumpAsText() to allow generating a pixel test result even if dumpAsText mode.
+        setDumpAsText(true) will also generate a pixel test result now, when running run-webkit-tests --pixel-tests.
+
+        This is needed for the svg/dynamic-updates tests, which don't want render tree dumps but text dumps + a pixel test result.
+        At some point DRT changed to not generate pixel test results when using dumpAsText - which makes sense, but breaks the svg/dynamic-updates test.
+
+        Implemented for all DRT platforms, except Qt, as it's not clear how arguments to functions like "setDumpAsText" are handled.
+        (Qt always dumps pixel tests when using --pixel-tests mode, so it does not break anything)
+
+        * DumpRenderTree/LayoutTestController.cpp:
+        (LayoutTestController::LayoutTestController):
+        (dumpAsTextAndPixelsCallback):
+        (LayoutTestController::staticFunctions):
+        * DumpRenderTree/LayoutTestController.h:
+        (LayoutTestController::dumpAsTextAndPixels):
+        (LayoutTestController::setDumpAsTextAndPixels):
+        * DumpRenderTree/chromium/LayoutTestController.cpp:
+        (LayoutTestController::LayoutTestController):
+        (LayoutTestController::dumpAsTextAndPixels):
+        (LayoutTestController::reset):
+        * DumpRenderTree/chromium/LayoutTestController.h:
+        (LayoutTestController::shouldDumpAsTextAndPixels):
+        * DumpRenderTree/chromium/TestShell.cpp:
+        (TestShell::dump):
+        * DumpRenderTree/gtk/DumpRenderTree.cpp:
+        (dump):
+        * DumpRenderTree/mac/DumpRenderTree.mm:
+        (dump):
+        * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
+        (WebCore::DumpRenderTree::dump):
+        * DumpRenderTree/win/DumpRenderTree.cpp:
+        (dump):
+        * DumpRenderTree/wx/DumpRenderTreeWx.cpp:
+        (dump):
+
 2010-07-16  Kent Hansen  <kent.hansen at nokia.com>
 
         Unreviewed. Adding myself as committer.
diff --git a/WebKitTools/DumpRenderTree/LayoutTestController.cpp b/WebKitTools/DumpRenderTree/LayoutTestController.cpp
index 26a68c0..6a957c1 100644
--- a/WebKitTools/DumpRenderTree/LayoutTestController.cpp
+++ b/WebKitTools/DumpRenderTree/LayoutTestController.cpp
@@ -60,6 +60,7 @@ LayoutTestController::LayoutTestController(const std::string& testPathOrURL, con
     , m_dumpIconChanges(false)
     , m_dumpVisitedLinksCallback(false)
     , m_dumpWillCacheResponse(false)
+    , m_generatePixelResults(true)
     , m_callCloseOnWebViews(true)
     , m_canOpenWindows(false)
     , m_closeRemainingWindowsWhenComplete(true)
@@ -102,6 +103,10 @@ static JSValueRef dumpAsTextCallback(JSContextRef context, JSObjectRef function,
 {
     LayoutTestController* controller = static_cast<LayoutTestController*>(JSObjectGetPrivate(thisObject));
     controller->setDumpAsText(true);
+
+    // Optional paramater, describing whether it's allowed to dump pixel results in dumpAsText mode.
+    controller->setGeneratePixelResults(argumentCount > 0 ? JSValueToBoolean(context, arguments[0]) : false);
+
     return JSValueMakeUndefined(context);
 }
 
diff --git a/WebKitTools/DumpRenderTree/LayoutTestController.h b/WebKitTools/DumpRenderTree/LayoutTestController.h
index ec0894d..30eb9bd 100644
--- a/WebKitTools/DumpRenderTree/LayoutTestController.h
+++ b/WebKitTools/DumpRenderTree/LayoutTestController.h
@@ -121,7 +121,10 @@ public:
 
     bool dumpAsText() const { return m_dumpAsText; }
     void setDumpAsText(bool dumpAsText) { m_dumpAsText = dumpAsText; }
-    
+
+    bool generatePixelResults() const { return m_generatePixelResults; }
+    void setGeneratePixelResults(bool generatePixelResults) { m_generatePixelResults = generatePixelResults; }
+
     bool dumpBackForwardList() const { return m_dumpBackForwardList; }
     void setDumpBackForwardList(bool dumpBackForwardList) { m_dumpBackForwardList = dumpBackForwardList; }
 
@@ -302,6 +305,7 @@ private:
     bool m_dumpIconChanges;
     bool m_dumpVisitedLinksCallback;
     bool m_dumpWillCacheResponse;
+    bool m_generatePixelResults;
     bool m_callCloseOnWebViews;
     bool m_canOpenWindows;
     bool m_closeRemainingWindowsWhenComplete;
diff --git a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
index 0f37d7e..0a06c19 100644
--- a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.cpp
@@ -230,9 +230,14 @@ void LayoutTestController::WorkQueue::addWork(WorkItem* work)
     m_queue.append(work);
 }
 
-void LayoutTestController::dumpAsText(const CppArgumentList&, CppVariant* result)
+void LayoutTestController::dumpAsText(const CppArgumentList& arguments, CppVariant* result)
 {
     m_dumpAsText = true;
+
+    // Optional paramater, describing whether it's allowed to dump pixel results in dumpAsText mode.
+    if (arguments.size() > 0 && arguments[0].isBool())
+        m_generatePixelResults = arguments[0].value.boolValue;
+
     result->setNull();
 }
 
@@ -475,6 +480,7 @@ void LayoutTestController::reset()
     m_dumpWindowStatusChanges = false;
     m_dumpSelectionRect = false;
     m_dumpTitleChanges = false;
+    m_generatePixelResults = true;
     m_acceptsEditing = true;
     m_waitUntilDone = false;
     m_canOpenWindows = false;
diff --git a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
index 5d65726..46a14de 100644
--- a/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
+++ b/WebKitTools/DumpRenderTree/chromium/LayoutTestController.h
@@ -57,7 +57,7 @@ public:
 
     // This function sets a flag that tells the test_shell to dump pages as
     // plain text, rather than as a text representation of the renderer's state.
-    // It takes no arguments, and ignores any that may be present.
+    // It takes an optional argument, whether to dump pixels results or not.
     void dumpAsText(const CppArgumentList&, CppVariant*);
 
     // This function should set a flag that tells the test_shell to print a line
@@ -305,6 +305,7 @@ public:
     bool shouldDumpTitleChanges() { return m_dumpTitleChanges; }
     bool shouldDumpChildFrameScrollPositions() { return m_dumpChildFrameScrollPositions; }
     bool shouldDumpChildFramesAsText() { return m_dumpChildFramesAsText; }
+    bool shouldGeneratePixelResults() { return m_generatePixelResults; }
     bool acceptsEditing() { return m_acceptsEditing; }
     bool canOpenWindows() { return m_canOpenWindows; }
     bool shouldAddFileToPasteboard() { return m_shouldAddFileToPasteboard; }
@@ -420,6 +421,9 @@ private:
     // If true, output a message when the page title is changed.
     bool m_dumpTitleChanges;
 
+    // If true, the test_shell will generate pixel results in dumpAsText mode
+    bool m_generatePixelResults;
+
     // If true, the element will be treated as editable.  This value is returned
     // from various editing callbacks that are called just before edit operations
     // are allowed.
diff --git a/WebKitTools/DumpRenderTree/chromium/TestShell.cpp b/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
index a4b161a..507f084 100644
--- a/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/TestShell.cpp
@@ -511,7 +511,7 @@ void TestShell::dump()
     if (dumpedAnything && m_params.printSeparators)
         m_printer->handleTextFooter();
 
-    if (m_params.dumpPixels && !shouldDumpAsText) {
+    if (m_params.dumpPixels && m_layoutTestController->shouldGeneratePixelResults()) {
         // Image output: we write the image data to the file given on the
         // command line (for the dump pixels argument), and the MD5 sum to
         // stdout.
diff --git a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
index da05804..2812224 100644
--- a/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp
@@ -419,11 +419,11 @@ void dump()
         }
     }
 
-    if (dumpPixels) {
-        if (!gLayoutTestController->dumpAsText() && !gLayoutTestController->dumpDOMAsWebArchive() && !gLayoutTestController->dumpSourceAsWebArchive()) {
-            dumpWebViewAsPixelsAndCompareWithExpected(gLayoutTestController->expectedPixelHash());
-        }
-    }
+    if (dumpPixels
+     && gLayoutTestController->generatePixelResults()
+     && !gLayoutTestController->dumpDOMAsWebArchive()
+     && !gLayoutTestController->dumpSourceAsWebArchive())
+        dumpWebViewAsPixelsAndCompareWithExpected(gLayoutTestController->expectedPixelHash());
 
     // FIXME: call displayWebView here when we support --paint
 
diff --git a/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm b/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
index ce02081..89a25cf 100644
--- a/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
+++ b/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm
@@ -1129,7 +1129,7 @@ void dump()
         }            
     }
 
-    if (dumpPixels && !dumpAsText)
+    if (dumpPixels && gLayoutTestController->generatePixelResults())
         // FIXME: when isPrinting is set, dump the image with page separators.
         dumpWebViewAsPixelsAndCompareWithExpected(gLayoutTestController->expectedPixelHash());
 
diff --git a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp
index 3eb1714..022a867 100644
--- a/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp
+++ b/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp
@@ -847,6 +847,7 @@ void DumpRenderTree::dump()
     fputs("#EOF\n", stdout);
     fputs("#EOF\n", stderr);
 
+    // FIXME: All other ports don't dump pixels, if generatePixelResults is false.
     if (m_dumpPixels) {
         QImage image(m_page->viewportSize(), QImage::Format_ARGB32);
         image.fill(Qt::white);
diff --git a/WebKitTools/DumpRenderTree/win/DumpRenderTree.cpp b/WebKitTools/DumpRenderTree/win/DumpRenderTree.cpp
index 451ff86..acc0771 100644
--- a/WebKitTools/DumpRenderTree/win/DumpRenderTree.cpp
+++ b/WebKitTools/DumpRenderTree/win/DumpRenderTree.cpp
@@ -723,10 +723,11 @@ void dump()
         fflush(stderr);
     }
 
-    if (dumpPixels) {
-        if (!gLayoutTestController->dumpAsText() && !gLayoutTestController->dumpDOMAsWebArchive() && !gLayoutTestController->dumpSourceAsWebArchive())
-            dumpWebViewAsPixelsAndCompareWithExpected(gLayoutTestController->expectedPixelHash());
-    }
+    if (dumpPixels
+     && gLayoutTestController->generatePixelResults()
+     && !gLayoutTestController->dumpDOMAsWebArchive()
+     && !gLayoutTestController->dumpSourceAsWebArchive())
+        dumpWebViewAsPixelsAndCompareWithExpected(gLayoutTestController->expectedPixelHash());
 
     printf("#EOF\n");   // terminate the (possibly empty) pixels block
     fflush(stdout);
diff --git a/WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp b/WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp
index c56f129..7142af2 100644
--- a/WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp
+++ b/WebKitTools/DumpRenderTree/wx/DumpRenderTreeWx.cpp
@@ -201,13 +201,11 @@ void dump()
         }
     }
 
-    if (dumpPixels) {
-        if (!gLayoutTestController->dumpAsText() && 
-                !gLayoutTestController->dumpDOMAsWebArchive() && 
-                !gLayoutTestController->dumpSourceAsWebArchive()) {
-            // FIXME: Add support for dumping pixels
-        }
-
+    if (dumpPixels
+        && gLayoutTestController->generatePixelResults()
+        && !gLayoutTestController->dumpDOMAsWebArchive()
+        && !gLayoutTestController->dumpSourceAsWebArchive()) {
+        // FIXME: Add support for dumping pixels
         fflush(stdout);
     }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list