Diff
Modified: trunk/Tools/ChangeLog (149086 => 149087)
--- trunk/Tools/ChangeLog 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/ChangeLog 2013-04-25 02:09:22 UTC (rev 149087)
@@ -1,3 +1,50 @@
+2013-04-24 Simon Fraser <[email protected]>
+
+ Pixel tests in SVG are all broken in WK2
+ https://bugs.webkit.org/show_bug.cgi?id=114218
+
+ Reviewed by Darin Adler.
+
+ Window snapshots in WebKitTestRunner on Mac are window-sized
+ (800x600), which is wrong for the W3C SVG tests that require a
+ 480x360 snapshot.
+
+ Fix by resizing the window, as well as the web view in
+ PlatformWebView::resizeTo() so that window snapshots are correctly
+ sized.
+
+ Also do some drive-by cleanup of the window size constants in both
+ DRT and WTR to remove magic numbers, and make the code more similar.
+
+ * DumpRenderTree/TestRunner.cpp:
+ (TestRunner::setShouldPaintBrokenImage):
+ * DumpRenderTree/TestRunner.h:
+ * DumpRenderTree/efl/DumpRenderTree.cpp:
+ * DumpRenderTree/gtk/DumpRenderTree.cpp:
+ (webInspectorShowWindow):
+ * DumpRenderTree/mac/DumpRenderTree.mm:
+ (createWebViewAndOffscreenWindow):
+ (sizeWebViewForCurrentTest):
+ * DumpRenderTree/mac/DumpRenderTreeMac.h:
+ * DumpRenderTree/mac/PixelDumpSupportMac.mm:
+ (createPagedBitmapContext):
+ * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
+ (DumpRenderTree::DumpRenderTree):
+ (DumpRenderTree::open):
+ * DumpRenderTree/qt/TestRunnerQt.cpp:
+ * DumpRenderTree/qt/TestRunnerQt.h:
+ * DumpRenderTree/win/DumpRenderTree.cpp:
+ (sizeWebViewForCurrentTest):
+ * DumpRenderTree/wx/DumpRenderTreeWx.cpp:
+ * WebKitTestRunner/TestController.cpp:
+ (WTR::TestController::resetStateToConsistentValues):
+ * WebKitTestRunner/TestController.h:
+ * WebKitTestRunner/TestInvocation.cpp:
+ (WTR::sizeWebViewForCurrentTest):
+ * WebKitTestRunner/mac/PlatformWebViewMac.mm:
+ (WTR::PlatformWebView::PlatformWebView):
+ (WTR::PlatformWebView::resizeTo):
+
2013-04-24 Byungwoo Lee <[email protected]>
[EFL] Fix build error after r148963.
Modified: trunk/Tools/DumpRenderTree/TestRunner.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/TestRunner.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/TestRunner.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -44,6 +44,12 @@
#include <wtf/OwnArrayPtr.h>
#include <wtf/RefPtr.h>
+const unsigned TestRunner::viewWidth = 800;
+const unsigned TestRunner::viewHeight = 600;
+
+const unsigned TestRunner::w3cSVGViewWidth = 480;
+const unsigned TestRunner::w3cSVGViewHeight = 360;
+
TestRunner::TestRunner(const std::string& testPathOrURL, const std::string& expectedPixelHash)
: m_disallowIncreaseForApplicationCacheQuota(false)
, m_dumpApplicationCacheDelegateCallbacks(false)
@@ -2236,6 +2242,3 @@
{
m_shouldPaintBrokenImage = shouldPaintBrokenImage;
}
-
-const unsigned TestRunner::maxViewWidth = 800;
-const unsigned TestRunner::maxViewHeight = 600;
Modified: trunk/Tools/DumpRenderTree/TestRunner.h (149086 => 149087)
--- trunk/Tools/DumpRenderTree/TestRunner.h 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/TestRunner.h 2013-04-25 02:09:22 UTC (rev 149087)
@@ -41,6 +41,13 @@
class TestRunner : public RefCounted<TestRunner> {
public:
static PassRefPtr<TestRunner> create(const std::string& testPathOrURL, const std::string& expectedPixelHash);
+
+ static const unsigned viewWidth;
+ static const unsigned viewHeight;
+
+ static const unsigned w3cSVGViewWidth;
+ static const unsigned w3cSVGViewHeight;
+
~TestRunner();
void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception);
@@ -330,9 +337,6 @@
void setShouldPaintBrokenImage(bool);
bool shouldPaintBrokenImage() const { return m_shouldPaintBrokenImage; }
- static const unsigned maxViewWidth;
- static const unsigned maxViewHeight;
-
void setTextDirection(JSStringRef);
const std::string& titleTextDirection() const { return m_titleTextDirection; }
void setTitleTextDirection(const std::string& direction) { m_titleTextDirection = direction; }
Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTree.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -280,8 +280,8 @@
WorkQueue::shared()->setFrozen(false);
const bool isSVGW3CTest = testURL.contains("svg/W3C-SVG-1.1");
- const int width = isSVGW3CTest ? 480 : TestRunner::maxViewWidth;
- const int height = isSVGW3CTest ? 360 : TestRunner::maxViewHeight;
+ const int width = isSVGW3CTest ? TestRunner::w3cSVGViewWidth : TestRunner::viewWidth;
+ const int height = isSVGW3CTest ? TestRunner::w3cSVGViewHeight : TestRunner::viewHeight;
evas_object_resize(browser->mainView(), width, height);
if (prevTestBFItem)
Modified: trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -158,7 +158,7 @@
Evas_Object* mainFrame = ewk_view_frame_main_get(inspectorView);
evas_object_smart_callback_add(mainFrame, "load,finished", onInspectorFrameLoadFinished, 0);
- evas_object_resize(inspectorView, TestRunner::maxViewWidth, TestRunner::maxViewHeight);
+ evas_object_resize(inspectorView, TestRunner::viewWidth, TestRunner::viewHeight);
evas_object_show(inspectorView);
evas_object_focus_set(inspectorView, true);
@@ -212,7 +212,7 @@
evas_object_name_set(m_mainView, "m_mainView");
evas_object_move(m_mainView, 0, 0);
- evas_object_resize(m_mainView, 800, 600);
+ evas_object_resize(m_mainView, TestRunner::viewWidth, TestRunner::viewHeight);
evas_object_layer_set(m_mainView, EVAS_LAYER_MAX);
evas_object_show(m_mainView);
evas_object_focus_set(m_mainView, EINA_TRUE);
Modified: trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/gtk/DumpRenderTree.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -747,8 +747,8 @@
bool isSVGW3CTest = (testURL.find("svg/W3C-SVG-1.1") != string::npos);
GtkAllocation size;
size.x = size.y = 0;
- size.width = isSVGW3CTest ? 480 : TestRunner::maxViewWidth;
- size.height = isSVGW3CTest ? 360 : TestRunner::maxViewHeight;
+ size.width = isSVGW3CTest ? TestRunner::w3cSVGViewWidth : TestRunner::viewWidth;
+ size.height = isSVGW3CTest ? TestRunner::w3cSVGViewHeight : TestRunner::viewHeight;
gtk_window_resize(GTK_WINDOW(window), size.width, size.height);
gtk_widget_size_allocate(container, &size);
@@ -1067,7 +1067,7 @@
static gboolean webInspectorShowWindow(WebKitWebInspector*, gpointer data)
{
- gtk_window_set_default_size(GTK_WINDOW(webInspectorWindow), 800, 600);
+ gtk_window_set_default_size(GTK_WINDOW(webInspectorWindow), TestRunner::viewWidth, TestRunner::viewHeight);
gtk_widget_show_all(webInspectorWindow);
return TRUE;
}
Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm (149086 => 149087)
--- trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTree.mm 2013-04-25 02:09:22 UTC (rev 149087)
@@ -522,7 +522,7 @@
WebView *createWebViewAndOffscreenWindow()
{
- NSRect rect = NSMakeRect(0, 0, TestRunner::maxViewWidth, TestRunner::maxViewHeight);
+ NSRect rect = NSMakeRect(0, 0, TestRunner::viewWidth, TestRunner::viewHeight);
WebView *webView = [[WebView alloc] initWithFrame:rect frameName:nil groupName:@"org.webkit.DumpRenderTree"];
[webView setUIDelegate:uiDelegate];
@@ -1105,9 +1105,9 @@
// W3C SVG tests expect to be 480x360
bool isSVGW3CTest = (gTestRunner->testPathOrURL().find("svg/W3C-SVG-1.1") != string::npos);
if (isSVGW3CTest)
- [[mainFrame webView] setFrameSize:NSMakeSize(480, 360)];
+ [[mainFrame webView] setFrameSize:NSMakeSize(TestRunner::w3cSVGViewWidth, TestRunner::w3cSVGViewHeight)];
else
- [[mainFrame webView] setFrameSize:NSMakeSize(TestRunner::maxViewWidth, TestRunner::maxViewHeight)];
+ [[mainFrame webView] setFrameSize:NSMakeSize(TestRunner::viewWidth, TestRunner::viewHeight)];
}
static const char *methodNameStringForFailedTest()
Modified: trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h (149086 => 149087)
--- trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/mac/DumpRenderTreeMac.h 2013-04-25 02:09:22 UTC (rev 149087)
@@ -58,9 +58,6 @@
extern PolicyDelegate* policyDelegate;
extern StorageTrackerDelegate* storageDelegate;
-extern const unsigned maxViewHeight;
-extern const unsigned maxViewWidth;
-
void setWaitToDumpWatchdog(CFRunLoopTimerRef);
bool shouldSetWaitToDumpWatchdog();
Modified: trunk/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm (149086 => 149087)
--- trunk/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/mac/PixelDumpSupportMac.mm 2013-04-25 02:09:22 UTC (rev 149087)
@@ -184,8 +184,8 @@
PassRefPtr<BitmapContext> createPagedBitmapContext()
{
- int pageWidthInPixels = TestRunner::maxViewWidth;
- int pageHeightInPixels = TestRunner::maxViewHeight;
+ int pageWidthInPixels = TestRunner::viewWidth;
+ int pageHeightInPixels = TestRunner::viewHeight;
int numberOfPages = [mainFrame numberOfPagesWithPageWidth:pageWidthInPixels pageHeight:pageHeightInPixels];
size_t rowBytes = 0;
void* buffer = 0;
Modified: trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -427,7 +427,7 @@
DumpRenderTreeSupportQt::webPageSetGroupName(pageAdapter(), "org.webkit.qt.DumpRenderTree");
m_mainView->setContextMenuPolicy(Qt::NoContextMenu);
- m_mainView->resize(QSize(TestRunnerQt::maxViewWidth, TestRunnerQt::maxViewHeight));
+ m_mainView->resize(QSize(TestRunner::viewWidth, TestRunner::viewHeight));
// clean up cache by resetting quota.
qint64 quota = webPage()->settings()->offlineWebApplicationCacheQuota();
@@ -625,8 +625,8 @@
// W3C SVG tests expect to be 480x360
bool isW3CTest = url.toString().contains("svg/W3C-SVG-1.1");
- int width = isW3CTest ? 480 : TestRunnerQt::maxViewWidth;
- int height = isW3CTest ? 360 : TestRunnerQt::maxViewHeight;
+ int width = isW3CTest ? TestRunner::w3cSVGViewWidth : TestRunner::viewWidth;
+ int height = isW3CTest ? TestRunner::w3cSVGViewHeight : TestRunner::viewHeight;
m_mainView->resize(QSize(width, height));
m_page->setPreferredContentsSize(QSize());
m_page->setViewportSize(QSize(width, height));
Modified: trunk/Tools/DumpRenderTree/qt/TestRunnerQt.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/qt/TestRunnerQt.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/qt/TestRunnerQt.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -774,9 +774,6 @@
m_audioDump = true;
}
-const unsigned TestRunnerQt::maxViewWidth = 800;
-const unsigned TestRunnerQt::maxViewHeight = 600;
-
// --- JSC C API stubs
void TestRunner::addDisallowedURL(JSStringRef url)
Modified: trunk/Tools/DumpRenderTree/qt/TestRunnerQt.h (149086 => 149087)
--- trunk/Tools/DumpRenderTree/qt/TestRunnerQt.h 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/qt/TestRunnerQt.h 2013-04-25 02:09:22 UTC (rev 149087)
@@ -68,9 +68,6 @@
void reset();
- static const unsigned int maxViewWidth;
- static const unsigned int maxViewHeight;
-
void setTimeout(int timeout) { m_timeout = timeout; }
void setShouldTimeout(bool flag) { m_shouldTimeout = flag; }
Modified: trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp (149086 => 149087)
--- trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/DumpRenderTree/win/DumpRenderTree.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -931,11 +931,11 @@
unsigned width;
unsigned height;
if (isSVGW3CTest) {
- width = 480;
- height = 360;
+ width = TestRunner::w3cSVGViewWidth;
+ height = TestRunner::w3cSVGViewHeight;
} else {
- width = TestRunner::maxViewWidth;
- height = TestRunner::maxViewHeight;
+ width = TestRunner::viewWidth;
+ height = TestRunner::viewHeight;
}
::SetWindowPos(webViewWindow, 0, 0, 0, width, height, SWP_NOMOVE);
@@ -1190,8 +1190,8 @@
IWebView* createWebViewAndOffscreenWindow(HWND* webViewWindow)
{
- unsigned maxViewWidth = TestRunner::maxViewWidth;
- unsigned maxViewHeight = TestRunner::maxViewHeight;
+ unsigned maxViewWidth = TestRunner::viewWidth;
+ unsigned maxViewHeight = TestRunner::viewHeight;
HWND hostWindow = CreateWindowEx(WS_EX_TOOLWINDOW, kDumpRenderTreeClassName, TEXT("DumpRenderTree"), WS_POPUP,
-maxViewWidth, -maxViewHeight, maxViewWidth, maxViewHeight, 0, 0, GetModuleHandle(0), 0);
Modified: trunk/Tools/WebKitTestRunner/TestController.cpp (149086 => 149087)
--- trunk/Tools/WebKitTestRunner/TestController.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/WebKitTestRunner/TestController.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -63,6 +63,12 @@
namespace WTR {
+const unsigned TestController::viewWidth = 800;
+const unsigned TestController::viewHeight = 600;
+
+const unsigned TestController::w3cSVGViewWidth = 480;
+const unsigned TestController::w3cSVGViewHeight = 360;
+
// defaultLongTimeout + defaultShortTimeout should be less than 80,
// the default timeout value of the test harness so we can detect an
// unresponsive web process.
@@ -589,7 +595,7 @@
// EFL use a real window while other ports such as Qt don't.
// In EFL, we need to resize the window to the original size after calls to window.resizeTo.
WKRect rect = m_mainWebView->windowFrame();
- m_mainWebView->setWindowFrame(WKRectMake(rect.origin.x, rect.origin.y, 800, 600));
+ m_mainWebView->setWindowFrame(WKRectMake(rect.origin.x, rect.origin.y, TestController::viewWidth, TestController::viewHeight));
#endif
// Reset notification permissions
Modified: trunk/Tools/WebKitTestRunner/TestController.h (149086 => 149087)
--- trunk/Tools/WebKitTestRunner/TestController.h 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/WebKitTestRunner/TestController.h 2013-04-25 02:09:22 UTC (rev 149087)
@@ -46,6 +46,12 @@
public:
static TestController& shared();
+ static const unsigned viewWidth;
+ static const unsigned viewHeight;
+
+ static const unsigned w3cSVGViewWidth;
+ static const unsigned w3cSVGViewHeight;
+
TestController(int argc, const char* argv[]);
~TestController();
Modified: trunk/Tools/WebKitTestRunner/TestInvocation.cpp (149086 => 149087)
--- trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/WebKitTestRunner/TestInvocation.cpp 2013-04-25 02:09:22 UTC (rev 149087)
@@ -127,20 +127,16 @@
m_timeout = timeout;
}
-static const unsigned w3cSVGWidth = 480;
-static const unsigned w3cSVGHeight = 360;
-static const unsigned normalWidth = 800;
-static const unsigned normalHeight = 600;
-
static void sizeWebViewForCurrentTest(const char* pathOrURL)
{
bool isSVGW3CTest = strstr(pathOrURL, "svg/W3C-SVG-1.1") || strstr(pathOrURL, "svg\\W3C-SVG-1.1");
if (isSVGW3CTest)
- TestController::shared().mainWebView()->resizeTo(w3cSVGWidth, w3cSVGHeight);
+ TestController::shared().mainWebView()->resizeTo(TestController::w3cSVGViewWidth, TestController::w3cSVGViewHeight);
else
- TestController::shared().mainWebView()->resizeTo(normalWidth, normalHeight);
+ TestController::shared().mainWebView()->resizeTo(TestController::viewWidth, TestController::viewHeight);
}
+
static bool shouldLogFrameLoadDelegates(const char* pathOrURL)
{
return strstr(pathOrURL, "loading/");
Modified: trunk/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm (149086 => 149087)
--- trunk/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm 2013-04-25 01:32:47 UTC (rev 149086)
+++ trunk/Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm 2013-04-25 02:09:22 UTC (rev 149087)
@@ -124,7 +124,7 @@
WKTypeRef useTiledDrawingValue = options ? WKDictionaryGetItemForKey(options, useTiledDrawingKey.get()) : NULL;
bool useTiledDrawing = useTiledDrawingValue && WKBooleanGetValue(static_cast<WKBooleanRef>(useTiledDrawingValue));
- NSRect rect = NSMakeRect(0, 0, 800, 600);
+ NSRect rect = NSMakeRect(0, 0, TestController::viewWidth, TestController::viewHeight);
m_view = [[TestRunnerWKView alloc] initWithFrame:rect contextRef:contextRef pageGroupRef:pageGroupRef useTiledDrawing:useTiledDrawing];
[m_view setWindowOcclusionDetectionEnabled:NO];
@@ -141,6 +141,10 @@
void PlatformWebView::resizeTo(unsigned width, unsigned height)
{
+ NSRect windowFrame = [m_window frame];
+ windowFrame.size.width = width;
+ windowFrame.size.height = height;
+ [m_window setFrame:windowFrame display:YES];
[m_view setFrame:NSMakeRect(0, 0, width, height)];
}