[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