diff options
Diffstat (limited to 'Tools/DumpRenderTree')
30 files changed, 415 insertions, 175 deletions
diff --git a/Tools/DumpRenderTree/AccessibilityTextMarker.cpp b/Tools/DumpRenderTree/AccessibilityTextMarker.cpp index d84ee80..1250497 100644 --- a/Tools/DumpRenderTree/AccessibilityTextMarker.cpp +++ b/Tools/DumpRenderTree/AccessibilityTextMarker.cpp @@ -29,7 +29,7 @@ #include "AccessibilityUIElement.h" #include <JavaScriptCore/JSRetainPtr.h> -#pragma mark AccessibilityTextMarker +// MARK: AccessibilityTextMarker // Callback methods @@ -81,7 +81,7 @@ JSClassRef AccessibilityTextMarker::getJSClass() return accessibilityTextMarkerClass; } -#pragma mark AccessibilityTextMarkerRange +// MARK: AccessibilityTextMarkerRange // Callback methods diff --git a/Tools/DumpRenderTree/DumpRenderTree.gypi b/Tools/DumpRenderTree/DumpRenderTree.gypi index 04caee7..b7de580 100644 --- a/Tools/DumpRenderTree/DumpRenderTree.gypi +++ b/Tools/DumpRenderTree/DumpRenderTree.gypi @@ -67,6 +67,12 @@ 'chromium/WebThemeEngineDRTWin.h', ], }], + ['OS=="mac"', { + 'drt_files': [ + 'chromium/WebThemeEngineDRTMac.mm', + 'chromium/WebThemeEngineDRTMac.h', + ], + }], ], } } diff --git a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginCommon.vsprops b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginCommon.vsprops index 922ae52..4608b32 100644 --- a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginCommon.vsprops +++ b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginCommon.vsprops @@ -6,7 +6,7 @@ > <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(WebKitOutputDir)\Include";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\include"" + AdditionalIncludeDirectories=""$(ProjectDir)";"$(ProjectDir)..";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\include"" PreprocessorDefinitions="_USRDLL;TESTNETSCAPEPLUGIN_EXPORTS;snprintf=_snprintf" DisableSpecificWarnings="4819" /> diff --git a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPostBuild.cmd b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPostBuild.cmd index f011495..26707ca 100644 --- a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPostBuild.cmd +++ b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPostBuild.cmd @@ -1 +1 @@ -if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" del "%CONFIGURATIONBUILDDIR%\buildfailed" diff --git a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPreBuild.cmd b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPreBuild.cmd index 3a84c26..a770776 100644 --- a/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPreBuild.cmd +++ b/Tools/DumpRenderTree/TestNetscapePlugIn/win/TestNetscapePluginPreBuild.cmd @@ -1,6 +1,6 @@ %SystemDrive%\cygwin\bin\which.exe bash if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% cmd /c -if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" grep XX%PROJECTNAME%XX "%CONFIGURATIONBUILDDIR%\buildfailed" if errorlevel 1 exit 1 -echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" +echo XX%PROJECTNAME%XX > "%CONFIGURATIONBUILDDIR%\buildfailed" diff --git a/Tools/DumpRenderTree/cf/WebArchiveDumpSupport.h b/Tools/DumpRenderTree/cf/WebArchiveDumpSupport.h index 08d9c45..00c5818 100644 --- a/Tools/DumpRenderTree/cf/WebArchiveDumpSupport.h +++ b/Tools/DumpRenderTree/cf/WebArchiveDumpSupport.h @@ -32,8 +32,8 @@ typedef struct _CFURLResponse* CFURLResponseRef; CFStringRef createXMLStringFromWebArchiveData(CFDataRef webArchiveData); -#pragma mark - -#pragma mark Platform-specific methods +// MARK: - +// MARK: Platform-specific methods CFURLResponseRef createCFURLResponseFromResponseData(CFDataRef responseData); CFArrayRef supportedNonImageMIMETypes(); diff --git a/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp b/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp index 3bbba98..6522450 100644 --- a/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp +++ b/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp @@ -32,6 +32,7 @@ #include "TestShell.h" #include "webkit/support/webkit_support.h" +#include <v8/include/v8-testing.h> #include <v8/include/v8.h> #include <wtf/Vector.h> @@ -52,7 +53,8 @@ static const char optionCheckLayoutTestSystemDeps[] = "--check-layout-test-sys-d static const char optionEnableAcceleratedCompositing[] = "--enable-accelerated-compositing"; static const char optionEnableAccelerated2DCanvas[] = "--enable-accelerated-2d-canvas"; -static const char optionMultipleLoads[] = "--multiple-loads="; +static const char optionStressOpt[] = "--stress-opt"; +static const char optionStressDeopt[] = "--stress-deopt"; static const char optionJavaScriptFlags[] = "--js-flags="; static void runTest(TestShell& shell, TestParams& params, const string& testName, bool testShellMode) @@ -82,13 +84,22 @@ static void runTest(TestShell& shell, TestParams& params, const string& testName } params.testUrl = webkit_support::CreateURLForPathOrURL(pathOrURL); webkit_support::SetCurrentDirectoryForFileURL(params.testUrl); - for (int i = 0; i < shell.loadCount(); i++) { - string javaScriptFlags = shell.javaScriptFlagsForLoad(i); - v8::V8::SetFlagsFromString(javaScriptFlags.data(), static_cast<int>(javaScriptFlags.size())); - bool isLastLoad = (i == (shell.loadCount() - 1)); - shell.setDumpWhenFinished(isLastLoad); - shell.resetTestController(); - shell.runFileTest(params); + v8::V8::SetFlagsFromString(shell.javaScriptFlags().c_str(), shell.javaScriptFlags().length()); + if (shell.stressOpt() || shell.stressDeopt()) { + if (shell.stressOpt()) + v8::Testing::SetStressRunType(v8::Testing::kStressTypeOpt); + else + v8::Testing::SetStressRunType(v8::Testing::kStressTypeDeopt); + for (int i = 0; i < v8::Testing::GetStressRuns(); i++) { + v8::Testing::PrepareStressRun(i); + bool isLastLoad = (i == (v8::Testing::GetStressRuns() - 1)); + shell.setDumpWhenFinished(isLastLoad); + shell.resetTestController(); + shell.runFileTest(params); + } + } else { + shell.resetTestController(); + shell.runFileTest(params); } shell.setLayoutTestTimeout(oldTimeoutMsec); } @@ -106,7 +117,8 @@ int main(int argc, char* argv[]) bool startupDialog = false; bool acceleratedCompositingEnabled = false; bool accelerated2DCanvasEnabled = false; - int loadCount = 1; + bool stressOpt = false; + bool stressDeopt = false; string javaScriptFlags; for (int i = 1; i < argc; ++i) { string argument(argv[i]); @@ -132,12 +144,13 @@ int main(int argc, char* argv[]) acceleratedCompositingEnabled = true; else if (argument == optionEnableAccelerated2DCanvas) accelerated2DCanvasEnabled = true; - else if (!argument.find(optionMultipleLoads)) { - string multipleLoadsStr = argument.substr(strlen(optionMultipleLoads)); - loadCount = atoi(multipleLoadsStr.c_str()); - } else if (!argument.find(optionJavaScriptFlags)) { + else if (argument == optionStressOpt) + stressOpt = true; + else if (argument == optionStressDeopt) + stressDeopt = true; + else if (!argument.find(optionJavaScriptFlags)) javaScriptFlags = argument.substr(strlen(optionJavaScriptFlags)); - } else if (argument.size() && argument[0] == '-') + else if (argument.size() && argument[0] == '-') fprintf(stderr, "Unknown option: %s\n", argv[i]); else tests.append(argument); @@ -146,31 +159,11 @@ int main(int argc, char* argv[]) fprintf(stderr, "--pixel-tests with --test-shell requires a file name.\n"); return EXIT_FAILURE; } - if (loadCount < 1) { - fprintf(stderr, "--multiple-loads requires a positive numeric argument.\n"); + if (stressOpt && stressDeopt) { + fprintf(stderr, "--stress-opt and --stress-deopt are mutually exclusive.\n"); return EXIT_FAILURE; } - // The test runner might send a quoted string which needs to be unquoted before further processing. - if (javaScriptFlags.length() > 1 && javaScriptFlags[0] == '"' && javaScriptFlags[javaScriptFlags.length() - 1] == '"') - javaScriptFlags = javaScriptFlags.substr(1, javaScriptFlags.length() - 2); - // Split the JavaScript flags into a list. - Vector<string> flagsList; - size_t start = 0; - while (true) { - size_t commaPos = javaScriptFlags.find_first_of(',', start); - string flags; - if (commaPos == string::npos) - flags = javaScriptFlags.substr(start, javaScriptFlags.length() - start); - else { - flags = javaScriptFlags.substr(start, commaPos - start); - start = commaPos + 1; - } - flagsList.append(flags); - if (commaPos == string::npos) - break; - } - if (startupDialog) openStartupDialog(); @@ -179,8 +172,9 @@ int main(int argc, char* argv[]) shell.setAllowExternalPages(allowExternalPages); shell.setAcceleratedCompositingEnabled(acceleratedCompositingEnabled); shell.setAccelerated2dCanvasEnabled(accelerated2DCanvasEnabled); - shell.setLoadCount(loadCount); - shell.setJavaScriptFlags(flagsList); + shell.setJavaScriptFlags(javaScriptFlags); + shell.setStressOpt(stressOpt); + shell.setStressDeopt(stressDeopt); if (serverMode && !tests.size()) { params.printSeparators = true; char testString[2048]; // 2048 is the same as the sizes of other platforms. diff --git a/Tools/DumpRenderTree/chromium/LayoutTestController.cpp b/Tools/DumpRenderTree/chromium/LayoutTestController.cpp index e3af738..83e2389 100644 --- a/Tools/DumpRenderTree/chromium/LayoutTestController.cpp +++ b/Tools/DumpRenderTree/chromium/LayoutTestController.cpp @@ -1379,8 +1379,8 @@ void LayoutTestController::counterValueForElementById(const CppArgumentList& arg static bool parsePageSizeParameters(const CppArgumentList& arguments, int argOffset, - float* pageWidthInPixels, - float* pageHeightInPixels) + int* pageWidthInPixels, + int* pageHeightInPixels) { // WebKit is using the window width/height of DumpRenderTree as the // default value of the page size. @@ -1391,8 +1391,8 @@ static bool parsePageSizeParameters(const CppArgumentList& arguments, case 2: if (!arguments[argOffset].isNumber() || !arguments[1 + argOffset].isNumber()) return false; - *pageWidthInPixels = static_cast<float>(arguments[argOffset].toInt32()); - *pageHeightInPixels = static_cast<float>(arguments[1 + argOffset].toInt32()); + *pageWidthInPixels = arguments[argOffset].toInt32(); + *pageHeightInPixels = arguments[1 + argOffset].toInt32(); // fall through. case 0: break; @@ -1405,8 +1405,8 @@ static bool parsePageSizeParameters(const CppArgumentList& arguments, void LayoutTestController::pageNumberForElementById(const CppArgumentList& arguments, CppVariant* result) { result->setNull(); - float pageWidthInPixels = 0; - float pageHeightInPixels = 0; + int pageWidthInPixels = 0; + int pageHeightInPixels = 0; if (!parsePageSizeParameters(arguments, 1, &pageWidthInPixels, &pageHeightInPixels)) return; @@ -1416,14 +1416,15 @@ void LayoutTestController::pageNumberForElementById(const CppArgumentList& argum if (!frame) return; result->set(frame->pageNumberForElementById(cppVariantToWebString(arguments[0]), - pageWidthInPixels, pageHeightInPixels)); + static_cast<float>(pageWidthInPixels), + static_cast<float>(pageHeightInPixels))); } void LayoutTestController::numberOfPages(const CppArgumentList& arguments, CppVariant* result) { result->setNull(); - float pageWidthInPixels = 0; - float pageHeightInPixels = 0; + int pageWidthInPixels = 0; + int pageHeightInPixels = 0; if (!parsePageSizeParameters(arguments, 0, &pageWidthInPixels, &pageHeightInPixels)) return; diff --git a/Tools/DumpRenderTree/chromium/TestShell.cpp b/Tools/DumpRenderTree/chromium/TestShell.cpp index 21f4208..14fcdc7 100644 --- a/Tools/DumpRenderTree/chromium/TestShell.cpp +++ b/Tools/DumpRenderTree/chromium/TestShell.cpp @@ -86,7 +86,8 @@ TestShell::TestShell(bool testShellMode) , m_allowExternalPages(false) , m_acceleratedCompositingEnabled(false) , m_accelerated2dCanvasEnabled(false) - , m_loadCount(1) + , m_stressOpt(false) + , m_stressDeopt(false) , m_dumpWhenFinished(true) { WebRuntimeFeatures::enableGeolocation(true); @@ -106,8 +107,13 @@ TestShell::TestShell(bool testShellMode) // timed-out DRT process was crashed. m_timeout = 30 * 1000; + createMainWindow(); +} + +void TestShell::createMainWindow() +{ m_drtDevToolsAgent.set(new DRTDevToolsAgent); - m_webViewHost = createWebView(); + m_webViewHost = createNewWindow(WebURL(), m_drtDevToolsAgent.get()); m_webView = m_webViewHost->webView(); m_drtDevToolsAgent->setWebView(m_webView); } @@ -557,15 +563,15 @@ void TestShell::bindJSObjectsToWindow(WebFrame* frame) m_textInputController->bindToJavascript(frame, WebString::fromUTF8("textInputController")); } -WebViewHost* TestShell::createWebView() +WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url) { - return createNewWindow(WebURL()); + return createNewWindow(url, 0); } -WebViewHost* TestShell::createNewWindow(const WebURL& url) +WebViewHost* TestShell::createNewWindow(const WebKit::WebURL& url, DRTDevToolsAgent* devToolsAgent) { WebViewHost* host = new WebViewHost(this); - WebView* view = WebView::create(host, m_drtDevToolsAgent.get()); + WebView* view = WebView::create(host, devToolsAgent); host->setWebWidget(view); m_prefs.applyTo(view); view->initializeMainFrame(host); diff --git a/Tools/DumpRenderTree/chromium/TestShell.h b/Tools/DumpRenderTree/chromium/TestShell.h index 1da4e17..486f9ea 100644 --- a/Tools/DumpRenderTree/chromium/TestShell.h +++ b/Tools/DumpRenderTree/chromium/TestShell.h @@ -137,21 +137,20 @@ public: int layoutTestTimeoutForWatchDog() { return layoutTestTimeout() + 1000; } void setLayoutTestTimeout(int timeout) { m_timeout = timeout; } - // Number of times to load each URL. - int loadCount() { return m_loadCount; } - void setLoadCount(int loadCount) { m_loadCount = loadCount; } + // V8 JavaScript stress test options. + int stressOpt() { return m_stressOpt; } + void setStressOpt(bool stressOpt) { m_stressOpt = stressOpt; } + int stressDeopt() { return m_stressDeopt; } + void setStressDeopt(int stressDeopt) { m_stressDeopt = stressDeopt; } - // The JavaScript flags are specified as a vector of strings. Each element of the vector is full flags string - // which can contain multiple flags (e.g. "--xxx --yyy"). With multiple load testing it is possible to specify - // separate sets of flags to each load. - std::string javaScriptFlagsForLoad(size_t load) { return (load < m_javaScriptFlags.size()) ? m_javaScriptFlags[load] : ""; } - void setJavaScriptFlags(Vector<std::string> javaScriptFlags) { m_javaScriptFlags = javaScriptFlags; } + // The JavaScript flags specified as a strings. + std::string javaScriptFlags() { return m_javaScriptFlags; } + void setJavaScriptFlags(std::string javaScriptFlags) { m_javaScriptFlags = javaScriptFlags; } // Set whether to dump when the loaded page has finished processing. This is used with multiple load // testing where we only want to have the output from the last load. void setDumpWhenFinished(bool dumpWhenFinished) { m_dumpWhenFinished = dumpWhenFinished; } - WebViewHost* createWebView(); WebViewHost* createNewWindow(const WebKit::WebURL&); void closeWindow(WebViewHost*); void closeRemainingWindows(); @@ -168,6 +167,8 @@ public: static const int virtualWindowBorder = 3; private: + WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*); + void createMainWindow(); void createDRTDevToolsClient(DRTDevToolsAgent*); void resetWebSettings(WebKit::WebView&); @@ -198,8 +199,9 @@ private: bool m_acceleratedCompositingEnabled; bool m_accelerated2dCanvasEnabled; WebPreferences m_prefs; - int m_loadCount; - Vector<std::string> m_javaScriptFlags; + bool m_stressOpt; + bool m_stressDeopt; + std::string m_javaScriptFlags; bool m_dumpWhenFinished; diff --git a/Tools/DumpRenderTree/chromium/TestShellMac.mm b/Tools/DumpRenderTree/chromium/TestShellMac.mm index 53ede56..d79a8c8 100644 --- a/Tools/DumpRenderTree/chromium/TestShellMac.mm +++ b/Tools/DumpRenderTree/chromium/TestShellMac.mm @@ -31,9 +31,12 @@ #include "config.h" #include "TestShell.h" +#include "WebThemeEngineDRTMac.h" #include "webkit/support/webkit_support.h" #import <AppKit/AppKit.h> +static WebThemeEngineDRTMac themeEngine; + // A class to be the target/selector of the "watchdog" thread that ensures // pages timeout if they take too long and tells the test harness via stdout. @interface WatchDogTarget : NSObject { @@ -126,6 +129,7 @@ void TestShell::waitTestFinished() void platformInit(int*, char***) { + webkit_support::SetThemeEngine(&themeEngine); } void openStartupDialog() diff --git a/Tools/DumpRenderTree/chromium/TextInputController.cpp b/Tools/DumpRenderTree/chromium/TextInputController.cpp index 3603840..c5dbe29 100644 --- a/Tools/DumpRenderTree/chromium/TextInputController.cpp +++ b/Tools/DumpRenderTree/chromium/TextInputController.cpp @@ -79,17 +79,10 @@ void TextInputController::insertText(const CppArgumentList& arguments, CppVarian { result->setNull(); - WebFrame* mainFrame = getMainFrame(); - if (!mainFrame) - return; if (arguments.size() < 1 || !arguments[0].isString()) return; - if (mainFrame->hasMarkedText()) { - mainFrame->unmarkText(); - mainFrame->replaceSelection(WebString()); - } - mainFrame->insertText(WebString::fromUTF8(arguments[0].toString())); + testShell->webView()->confirmComposition(WebString::fromUTF8(arguments[0].toString())); } void TextInputController::doCommand(const CppArgumentList& arguments, CppVariant* result) @@ -108,15 +101,13 @@ void TextInputController::setMarkedText(const CppArgumentList& arguments, CppVar { result->setNull(); - WebFrame* mainFrame = getMainFrame(); - if (!mainFrame) - return; - if (arguments.size() >= 3 && arguments[0].isString() && arguments[1].isNumber() && arguments[2].isNumber()) { - mainFrame->setMarkedText(WebString::fromUTF8(arguments[0].toString()), - arguments[1].toInt32(), - arguments[2].toInt32()); + WebVector<WebCompositionUnderline> underlines; + testShell->webView()->setComposition(WebString::fromUTF8(arguments[0].toString()), + underlines, + arguments[1].toInt32(), + arguments[1].toInt32() + arguments[2].toInt32()); } } @@ -124,11 +115,7 @@ void TextInputController::unmarkText(const CppArgumentList&, CppVariant* result) { result->setNull(); - WebFrame* mainFrame = getMainFrame(); - if (!mainFrame) - return; - - mainFrame->unmarkText(); + testShell->webView()->confirmComposition(); } void TextInputController::hasMarkedText(const CppArgumentList&, CppVariant* result) diff --git a/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.h b/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.h new file mode 100644 index 0000000..a59e207 --- /dev/null +++ b/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.h @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2010 Google Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * 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. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// This implements the WebThemeEngine API in such a way that we match the Mac +// port rendering more than usual Chromium path, thus allowing us to share +// more pixel baselines. + +#ifndef WebThemeEngineDRTMac_h +#define WebThemeEngineDRTMac_h + +#include "third_party/WebKit/WebKit/chromium/public/mac/WebThemeEngine.h" + +class WebThemeEngineDRTMac : public WebKit::WebThemeEngine { +public: + virtual void paintScrollbarThumb( + WebKit::WebCanvas*, + WebKit::WebThemeEngine::State, + WebKit::WebThemeEngine::Size, + const WebKit::WebRect&, + const WebKit::WebThemeEngine::ScrollbarInfo&); +private: + virtual void paintHIThemeScrollbarThumb( + WebKit::WebCanvas*, + WebKit::WebThemeEngine::State, + WebKit::WebThemeEngine::Size, + const WebKit::WebRect&, + const WebKit::WebThemeEngine::ScrollbarInfo&); + virtual void paintNSScrollerScrollbarThumb( + WebKit::WebCanvas*, + WebKit::WebThemeEngine::State, + WebKit::WebThemeEngine::Size, + const WebKit::WebRect&, + const WebKit::WebThemeEngine::ScrollbarInfo&); +}; + +#endif // WebThemeEngineDRTMac_h diff --git a/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.mm b/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.mm new file mode 100644 index 0000000..6333a37 --- /dev/null +++ b/Tools/DumpRenderTree/chromium/WebThemeEngineDRTMac.mm @@ -0,0 +1,186 @@ +/* + * Copyright (C) 2010 Google Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "WebThemeEngineDRTMac.h" + +#include "third_party/WebKit/WebKit/chromium/public/WebCanvas.h" +#include "third_party/WebKit/WebKit/chromium/public/WebRect.h" +#import <AppKit/NSAffineTransform.h> +#import <AppKit/NSGraphicsContext.h> +#import <AppKit/NSScroller.h> +#import <AppKit/NSWindow.h> +#include <Carbon/Carbon.h> + +using WebKit::WebCanvas; +using WebKit::WebRect; +using WebKit::WebThemeEngine; + +// We can't directly tell the NSScroller to draw itself as active or inactive, +// instead we have to make it a child of an (in)active window. This class lets +// us fake that parent window. +@interface FakeActiveWindow : NSWindow { +@private + BOOL hasActiveControls; +} ++ (NSWindow*)alwaysActiveWindow; ++ (NSWindow*)alwaysInactiveWindow; +- (id)initWithActiveControls:(BOOL)_hasActiveControls; +- (BOOL)_hasActiveControls; +@end + +@implementation FakeActiveWindow + +static NSWindow* alwaysActiveWindow = nil; +static NSWindow* alwaysInactiveWindow = nil; + ++ (NSWindow*)alwaysActiveWindow +{ + if (alwaysActiveWindow == nil) + alwaysActiveWindow = [[self alloc] initWithActiveControls:YES]; + return alwaysActiveWindow; +} + ++ (NSWindow*)alwaysInactiveWindow +{ + if (alwaysInactiveWindow == nil) + alwaysInactiveWindow = [[self alloc] initWithActiveControls:NO]; + return alwaysInactiveWindow; +} + +- (id)initWithActiveControls:(BOOL)_hasActiveControls +{ + self = [super init]; + hasActiveControls = _hasActiveControls; + return self; +} + +- (BOOL)_hasActiveControls +{ + return hasActiveControls; +} + +@end + +void WebThemeEngineDRTMac::paintScrollbarThumb( + WebCanvas* canvas, + WebThemeEngine::State state, + WebThemeEngine::Size size, + const WebRect& rect, + const WebThemeEngine::ScrollbarInfo& scrollbarInfo) +{ + // To match the Mac port, we still use HITheme for inner scrollbars. + if (scrollbarInfo.parent == WebThemeEngine::ScrollbarParentRenderLayer) + paintHIThemeScrollbarThumb(canvas, state, size, rect, scrollbarInfo); + else + paintNSScrollerScrollbarThumb(canvas, state, size, rect, scrollbarInfo); +} + +static ThemeTrackEnableState stateToHIEnableState(WebThemeEngine::State state) +{ + switch (state) { + case WebThemeEngine::StateDisabled: + return kThemeTrackDisabled; + case WebThemeEngine::StateInactive: + return kThemeTrackInactive; + default: + return kThemeTrackActive; + } +} + +// Duplicated from webkit/glue/webthemeengine_impl_mac.cc in the downstream +// Chromium WebThemeEngine implementation. +void WebThemeEngineDRTMac::paintHIThemeScrollbarThumb( + WebCanvas* canvas, + WebThemeEngine::State state, + WebThemeEngine::Size size, + const WebRect& rect, + const WebThemeEngine::ScrollbarInfo& scrollbarInfo) +{ + HIThemeTrackDrawInfo trackInfo; + trackInfo.version = 0; + trackInfo.kind = size == WebThemeEngine::SizeRegular ? kThemeMediumScrollBar : kThemeSmallScrollBar; + trackInfo.bounds = CGRectMake(rect.x, rect.y, rect.width, rect.height); + trackInfo.min = 0; + trackInfo.max = scrollbarInfo.maxValue; + trackInfo.value = scrollbarInfo.currentValue; + trackInfo.trackInfo.scrollbar.viewsize = scrollbarInfo.visibleSize; + trackInfo.attributes = 0; + if (scrollbarInfo.orientation == WebThemeEngine::ScrollbarOrientationHorizontal) + trackInfo.attributes |= kThemeTrackHorizontal; + + trackInfo.enableState = stateToHIEnableState(state); + + trackInfo.trackInfo.scrollbar.pressState = + state == WebThemeEngine::StatePressed ? kThemeThumbPressed : 0; + trackInfo.attributes |= (kThemeTrackShowThumb | kThemeTrackHideTrack); + HIThemeDrawTrack(&trackInfo, 0, canvas, kHIThemeOrientationNormal); +} + +void WebThemeEngineDRTMac::paintNSScrollerScrollbarThumb( + WebCanvas* canvas, + WebThemeEngine::State state, + WebThemeEngine::Size size, + const WebRect& rect, + const WebThemeEngine::ScrollbarInfo& scrollbarInfo) +{ + NSScroller* scroller = [[NSScroller alloc] initWithFrame:NSMakeRect(rect.x, rect.y, rect.width, rect.height)]; + [scroller setEnabled:state != WebThemeEngine::StateDisabled]; + if (state == WebThemeEngine::StateInactive) + [[[FakeActiveWindow alwaysInactiveWindow] contentView] addSubview:scroller]; + else + [[[FakeActiveWindow alwaysActiveWindow] contentView] addSubview:scroller]; + + [scroller setControlSize:size == WebThemeEngine::SizeRegular ? NSRegularControlSize : NSSmallControlSize]; + + double value = double(scrollbarInfo.currentValue) / double(scrollbarInfo.maxValue); + [scroller setDoubleValue: value]; + + float knobProportion = float(scrollbarInfo.visibleSize) / float(scrollbarInfo.totalSize); + [scroller setKnobProportion: knobProportion]; + + NSGraphicsContext* previousGraphicsContext = [NSGraphicsContext currentContext]; + NSGraphicsContext* nsGraphicsContext = [NSGraphicsContext graphicsContextWithGraphicsPort:canvas flipped:YES]; + [NSGraphicsContext setCurrentContext:nsGraphicsContext]; + + // Despite passing in frameRect() to the scroller, it always draws at (0, 0). + // Force it to draw in the right location by translating the whole graphics + // context. + [nsGraphicsContext saveGraphicsState]; + NSAffineTransform *transform = [NSAffineTransform transform]; + [transform translateXBy:rect.x yBy:rect.y]; + [transform concat]; + + [scroller drawKnob]; + + [scroller release]; + + [nsGraphicsContext restoreGraphicsState]; + [NSGraphicsContext setCurrentContext:previousGraphicsContext]; +} diff --git a/Tools/DumpRenderTree/chromium/WebViewHost.cpp b/Tools/DumpRenderTree/chromium/WebViewHost.cpp index e3c8c28..849312c 100644 --- a/Tools/DumpRenderTree/chromium/WebViewHost.cpp +++ b/Tools/DumpRenderTree/chromium/WebViewHost.cpp @@ -235,7 +235,7 @@ WebView* WebViewHost::createView(WebFrame*, const WebWindowFeatures&, const WebS { if (!layoutTestController()->canOpenWindows()) return 0; - return m_shell->createWebView()->webView(); + return m_shell->createNewWindow(WebURL())->webView(); } WebWidget* WebViewHost::createPopupMenu(WebPopupType) @@ -410,11 +410,7 @@ bool WebViewHost::handleCurrentKeyboardEvent() void WebViewHost::spellCheck(const WebString& text, int& misspelledOffset, int& misspelledLength) { // Check the spelling of the given text. -#if OS(MAC_OS_X) - // FIXME: rebaseline layout-test results of Windows and Linux so we - // can enable this mock spellchecker on them. m_spellcheck.spellCheckWord(text, &misspelledOffset, &misspelledLength); -#endif } WebString WebViewHost::autoCorrectWord(const WebString&) @@ -1133,10 +1129,6 @@ WebViewHost::~WebViewHost() loadURLForFrame(GURL("about:blank"), WebString()); } - // Call GC twice to clean up garbage. - m_shell->callJSGC(); - m_shell->callJSGC(); - webWidget()->close(); if (m_inModalLoop) diff --git a/Tools/DumpRenderTree/gtk/AccessibilityControllerGtk.cpp b/Tools/DumpRenderTree/gtk/AccessibilityControllerGtk.cpp index 589e53c..c572633 100644 --- a/Tools/DumpRenderTree/gtk/AccessibilityControllerGtk.cpp +++ b/Tools/DumpRenderTree/gtk/AccessibilityControllerGtk.cpp @@ -60,13 +60,11 @@ AccessibilityUIElement AccessibilityController::focusedElement() AccessibilityUIElement AccessibilityController::rootElement() { - WebKitWebView* view = webkit_web_frame_get_web_view(mainFrame); + AtkObject* accessible = DumpRenderTreeSupportGtk::getRootAccessibleElement(mainFrame); + if (!accessible) + return 0; - // The presumed, desired rootElement is the parent of the web view. - GtkWidget* webViewParent = gtk_widget_get_parent(GTK_WIDGET(view)); - AtkObject* axObject = gtk_widget_get_accessible(webViewParent); - - return AccessibilityUIElement(axObject); + return AccessibilityUIElement(accessible); } void AccessibilityController::setLogFocusEvents(bool) diff --git a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp index 7e1a9c2..ff76e4b 100644 --- a/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp +++ b/Tools/DumpRenderTree/gtk/AccessibilityUIElementGtk.cpp @@ -376,7 +376,7 @@ static bool checkElementState(PlatformUIElement element, AtkStateType stateType) if (!ATK_IS_OBJECT(element)) return false; - PlatformRefPtr<AtkStateSet> stateSet = adoptPlatformRef(atk_object_ref_state_set(ATK_OBJECT(element))); + GRefPtr<AtkStateSet> stateSet = adoptGRef(atk_object_ref_state_set(ATK_OBJECT(element))); return atk_state_set_contains_state(stateSet.get(), stateType); } @@ -408,7 +408,7 @@ bool AccessibilityUIElement::isFocused() const if (!ATK_IS_OBJECT(m_element)) return false; - PlatformRefPtr<AtkStateSet> stateSet = adoptPlatformRef(atk_object_ref_state_set(ATK_OBJECT(m_element))); + GRefPtr<AtkStateSet> stateSet = adoptGRef(atk_object_ref_state_set(ATK_OBJECT(m_element))); gboolean isFocused = atk_state_set_contains_state(stateSet.get(), ATK_STATE_FOCUSED); return isFocused; @@ -670,7 +670,7 @@ bool AccessibilityUIElement::isFocusable() const if (!ATK_IS_OBJECT(m_element)) return false; - PlatformRefPtr<AtkStateSet> stateSet = adoptPlatformRef(atk_object_ref_state_set(ATK_OBJECT(m_element))); + GRefPtr<AtkStateSet> stateSet = adoptGRef(atk_object_ref_state_set(ATK_OBJECT(m_element))); gboolean isFocusable = atk_state_set_contains_state(stateSet.get(), ATK_STATE_FOCUSABLE); return isFocusable; diff --git a/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm b/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm index 9d7edef..1a9f9c9 100644 --- a/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm +++ b/Tools/DumpRenderTree/mac/AccessibilityControllerMac.mm @@ -28,8 +28,10 @@ #import "AccessibilityController.h" #import "AccessibilityUIElement.h" +#import <AppKit/NSColor.h> #import <Foundation/Foundation.h> #import <WebKit/WebFrame.h> +#import <WebKit/WebFramePrivate.h> #import <WebKit/WebHTMLView.h> AccessibilityController::AccessibilityController() @@ -49,14 +51,14 @@ AccessibilityUIElement AccessibilityController::elementAtPoint(int x, int y) AccessibilityUIElement AccessibilityController::focusedElement() { // FIXME: we could do some caching here. - id accessibilityObject = [[[mainFrame frameView] documentView] accessibilityFocusedUIElement]; + id accessibilityObject = [[mainFrame accessibilityRoot] accessibilityFocusedUIElement]; return AccessibilityUIElement(accessibilityObject); } AccessibilityUIElement AccessibilityController::rootElement() { // FIXME: we could do some caching here. - id accessibilityObject = [[mainFrame frameView] documentView]; + id accessibilityObject = [mainFrame accessibilityRoot]; return AccessibilityUIElement(accessibilityObject); } diff --git a/Tools/DumpRenderTree/mac/AccessibilityTextMarkerMac.mm b/Tools/DumpRenderTree/mac/AccessibilityTextMarkerMac.mm index 9170ab6..18ddb85 100644 --- a/Tools/DumpRenderTree/mac/AccessibilityTextMarkerMac.mm +++ b/Tools/DumpRenderTree/mac/AccessibilityTextMarkerMac.mm @@ -28,7 +28,7 @@ #import "AccessibilityTextMarker.h" #import "DumpRenderTree.h" -#pragma mark AccessibilityTextMarker +// MARK: AccessibilityTextMarker AccessibilityTextMarker::AccessibilityTextMarker(PlatformTextMarker marker) : m_textMarker(marker) @@ -54,7 +54,7 @@ PlatformTextMarker AccessibilityTextMarker::platformTextMarker() const return m_textMarker.get(); } -#pragma mark AccessibilityTextMarkerRange +// MARK: AccessibilityTextMarkerRange AccessibilityTextMarkerRange::AccessibilityTextMarkerRange(PlatformTextMarkerRange markerRange) : m_textMarkerRange(markerRange) diff --git a/Tools/DumpRenderTree/mac/ObjCController.m b/Tools/DumpRenderTree/mac/ObjCController.m index f1d1c10..ba866f8 100644 --- a/Tools/DumpRenderTree/mac/ObjCController.m +++ b/Tools/DumpRenderTree/mac/ObjCController.m @@ -270,8 +270,8 @@ static void* runJavaScriptThread(void* arg) return nil; } -#pragma mark - -#pragma mark Testing Objective-C DOM HTML Bindings +// MARK: - +// MARK: Testing Objective-C DOM HTML Bindings - (void)setSelectElement:(WebScriptObject *)element selectedIndex:(int)index allowingMultiple:(BOOL)allowingMultiple { diff --git a/Tools/DumpRenderTree/qt/DumpRenderTree.pro b/Tools/DumpRenderTree/qt/DumpRenderTree.pro index e8831a3..a7c6c26 100644 --- a/Tools/DumpRenderTree/qt/DumpRenderTree.pro +++ b/Tools/DumpRenderTree/qt/DumpRenderTree.pro @@ -6,9 +6,9 @@ BASEDIR = $$PWD/../ isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../.. include(../../../WebKit.pri) -INCLUDEPATH += ../../.. -INCLUDEPATH += ../../../JavaScriptCore -INCLUDEPATH += ../../../JavaScriptCore/ForwardingHeaders +INCLUDEPATH += ../../../Source +INCLUDEPATH += ../../../Source/JavaScriptCore +INCLUDEPATH += ../../../Source/JavaScriptCore/ForwardingHeaders INCLUDEPATH += $$BASEDIR DESTDIR = ../../../bin @@ -29,7 +29,7 @@ HEADERS = $$BASEDIR/WorkQueue.h \ GCControllerQt.h \ PlainTextControllerQt.h \ testplugin.h -SOURCES = ../../../JavaScriptCore/wtf/Assertions.cpp \ +SOURCES = ../../../Source/JavaScriptCore/wtf/Assertions.cpp \ $$BASEDIR/WorkQueue.cpp \ DumpRenderTreeQt.cpp \ EventSenderQt.cpp \ @@ -50,4 +50,4 @@ wince*: { LIBS += $$WCECOMPAT/lib/wcecompat.lib } -DEFINES+=USE_SYSTEM_MALLOC +DEFINES += USE_SYSTEM_MALLOC=1 diff --git a/Tools/DumpRenderTree/qt/ImageDiff.pro b/Tools/DumpRenderTree/qt/ImageDiff.pro index 74fabf8..a218449 100644 --- a/Tools/DumpRenderTree/qt/ImageDiff.pro +++ b/Tools/DumpRenderTree/qt/ImageDiff.pro @@ -3,7 +3,7 @@ CONFIG -= app_bundle isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../../.. include(../../../WebKit.pri) -INCLUDEPATH += ../../../JavaScriptCore +INCLUDEPATH += ../../../Source/JavaScriptCore DESTDIR = $$OUTPUT_DIR/bin QT = core gui diff --git a/Tools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro b/Tools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro index de3cf6a..6f96d0a 100644 --- a/Tools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro +++ b/Tools/DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro @@ -18,11 +18,11 @@ mac { debug_and_release:TARGET = $$qtLibraryTarget($$TARGET) } -INCLUDEPATH += ../../../../JavaScriptCore \ +INCLUDEPATH += ../../../../Source/JavaScriptCore \ ../../unix/TestNetscapePlugin/ForwardingHeaders \ ../../unix/TestNetscapePlugin/ForwardingHeaders/WebKit \ - ../../../../WebCore \ - ../../../../WebCore/bridge \ + ../../../../Source/WebCore \ + ../../../../Source/WebCore/bridge \ ../../TestNetscapePlugIn SOURCES = PluginObject.cpp \ @@ -44,3 +44,7 @@ mac { } else { SOURCES += ../../unix/TestNetscapePlugin/TestNetscapePlugin.cpp } + +!win32:!embedded:!mac:!symbian { + LIBS += -lX11 +} diff --git a/Tools/DumpRenderTree/win/DumpRenderTreeCommon.vsprops b/Tools/DumpRenderTree/win/DumpRenderTreeCommon.vsprops index 71d261b..d511f68 100644 --- a/Tools/DumpRenderTree/win/DumpRenderTreeCommon.vsprops +++ b/Tools/DumpRenderTree/win/DumpRenderTreeCommon.vsprops @@ -6,7 +6,7 @@ > <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(ProjectDir)\.";"$(ProjectDir)\..";"$(WebKitOutputDir)\Include";"$(WebKitOutputDir)\Include\private";"$(WebKitOutputDir)\Include\DumpRenderTree\ForwardingHeaders";"$(WebKitOutputDir)\Include\JavaScriptCore";"$(WebKitOutputDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\include\pthreads";"$(WebKitOutputDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore"" + AdditionalIncludeDirectories=""$(ProjectDir)\.";"$(ProjectDir)\..";"$(ConfigurationBuildDir)\Include";"$(ConfigurationBuildDir)\Include\private";"$(ConfigurationBuildDir)\Include\DumpRenderTree\ForwardingHeaders";"$(ConfigurationBuildDir)\Include\JavaScriptCore";"$(ConfigurationBuildDir)\Include\private\JavaScriptCore";"$(WebKitLibrariesDir)\Include";"$(WebKitLibrariesDir)\Include\private";"$(WebKitLibrariesDir)\include\pthreads";"$(ConfigurationBuildDir)\Include\WebCore";"$(WebKitLibrariesDir)\Include\WebCore"" PreprocessorDefinitions="_CONSOLE" DisableSpecificWarnings="4146" ForcedIncludeFiles="DumpRenderTreePrefix.h" diff --git a/Tools/DumpRenderTree/win/DumpRenderTreePostBuild.cmd b/Tools/DumpRenderTree/win/DumpRenderTreePostBuild.cmd index fc8c778..7016e0e 100644 --- a/Tools/DumpRenderTree/win/DumpRenderTreePostBuild.cmd +++ b/Tools/DumpRenderTree/win/DumpRenderTreePostBuild.cmd @@ -1,40 +1,40 @@ -if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" del "%CONFIGURATIONBUILDDIR%\buildfailed" if not defined ARCHIVE_BUILD (if defined PRODUCTION exit /b) -mkdir 2>NUL "%WEBKITOUTPUTDIR%\bin" +mkdir 2>NUL "%CONFIGURATIONBUILDDIR%\bin" if not exist "%WEBKITLIBRARIESDIR%\bin\CoreFoundation%LIBRARYCONFIGSUFFIX%.dll" exit /b -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreFoundation%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreFoundation%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreVideo%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreVideo%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CFNetwork%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CFNetwork%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CFNetwork.resources" "%WEBKITOUTPUTDIR%\bin\CFNetwork.resources" -xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CoreFoundation.resources" "%WEBKITOUTPUTDIR%\bin\CoreFoundation.resources" -xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CharacterSets" "%WEBKITOUTPUTDIR%\bin\CharacterSets" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreGraphics%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreGraphics%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\dnssd.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icudt40.dll" xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt40.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icudt40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt40%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icudt42.dll" xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt42.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icudt42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt42%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -if exist "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\libxml2%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\libxslt%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\pthreadVC2%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\pthreadVC2%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\SQLite3%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\SQLite3%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\zlib1%LIBRARYCONFIGSUFFIX%.dll" "%WEBKITOUTPUTDIR%\bin" -xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\zlib1%LIBRARYCONFIGSUFFIX%.pdb" "%WEBKITOUTPUTDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreFoundation%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreFoundation%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreVideo%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreVideo%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CFNetwork%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CFNetwork%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CFNetwork.resources" "%CONFIGURATIONBUILDDIR%\bin\CFNetwork.resources" +xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CoreFoundation.resources" "%CONFIGURATIONBUILDDIR%\bin\CoreFoundation.resources" +xcopy /y /d /e /i "%WEBKITLIBRARIESDIR%\bin\CharacterSets" "%CONFIGURATIONBUILDDIR%\bin\CharacterSets" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreGraphics%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\CoreGraphics%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\dnssd.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icudt40.dll" xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt40.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icudt40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt40%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin40%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc40%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icudt42.dll" xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt42.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icudt42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icudt42%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuin42%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.dll"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +if exist "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.pdb"xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\icuuc42%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\libxml2%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\libxslt%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\pthreadVC2%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\pthreadVC2%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\SQLite3%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\SQLite3%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\zlib1%LIBRARYCONFIGSUFFIX%.dll" "%CONFIGURATIONBUILDDIR%\bin" +xcopy /y /d "%WEBKITLIBRARIESDIR%\bin\zlib1%LIBRARYCONFIGSUFFIX%.pdb" "%CONFIGURATIONBUILDDIR%\bin" diff --git a/Tools/DumpRenderTree/win/DumpRenderTreePreBuild.cmd b/Tools/DumpRenderTree/win/DumpRenderTreePreBuild.cmd index 1d3fa8b..a843d70 100644 --- a/Tools/DumpRenderTree/win/DumpRenderTreePreBuild.cmd +++ b/Tools/DumpRenderTree/win/DumpRenderTreePreBuild.cmd @@ -1,18 +1,18 @@ %SystemDrive%\cygwin\bin\which.exe bash if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% cmd /c -if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" grep XX%PROJECTNAME%XX "%CONFIGURATIONBUILDDIR%\buildfailed" if errorlevel 1 exit 1 -echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" +echo XX%PROJECTNAME%XX > "%CONFIGURATIONBUILDDIR%\buildfailed" -mkdir 2>NUL "%WEBKITOUTPUTDIR%\include\DumpRenderTree" -mkdir 2>NUL "%WEBKITOUTPUTDIR%\include\DumpRenderTree\ForwardingHeaders" -mkdir 2>NUL "%WEBKITOUTPUTDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" +mkdir 2>NUL "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree" +mkdir 2>NUL "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree\ForwardingHeaders" +mkdir 2>NUL "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" -xcopy /y /d "%PROJECTDIR%\..\ForwardingHeaders\wtf\*.h" "%WEBKITOUTPUTDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" +xcopy /y /d "%PROJECTDIR%\..\ForwardingHeaders\wtf\*.h" "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" -if "%CONFIGURATIONNAME%"=="Debug_Cairo_CFLite" xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\ForwardingHeaders\wtf\MD5.h" "%WEBKITOUTPUTDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" -if "%CONFIGURATIONNAME%"=="Release_Cairo_CFLite" xcopy /y /d "%WEBKITOUTPUTDIR%\include\WebCore\ForwardingHeaders\wtf\MD5.h" "%WEBKITOUTPUTDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" +if "%CONFIGURATIONNAME%"=="Debug_Cairo_CFLite" xcopy /y /d "%CONFIGURATIONBUILDDIR%\include\WebCore\ForwardingHeaders\wtf\MD5.h" "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" +if "%CONFIGURATIONNAME%"=="Release_Cairo_CFLite" xcopy /y /d "%CONFIGURATIONBUILDDIR%\include\WebCore\ForwardingHeaders\wtf\MD5.h" "%CONFIGURATIONBUILDDIR%\include\DumpRenderTree\ForwardingHeaders\wtf" if "%CONFIGURATIONNAME%"=="Debug_Cairo" xcopy /y /d "%TARGETDIR%\..\include\WebCore\ForwardingHeaders\wtf\MD5.h" if "%CONFIGURATIONNAME%"=="Release_Cairo" xcopy /y /d "%TARGETDIR%\..\include\WebCore\ForwardingHeaders\wtf\MD5.h" diff --git a/Tools/DumpRenderTree/win/ImageDiffCommon.vsprops b/Tools/DumpRenderTree/win/ImageDiffCommon.vsprops index e93d262..1156a72 100644 --- a/Tools/DumpRenderTree/win/ImageDiffCommon.vsprops +++ b/Tools/DumpRenderTree/win/ImageDiffCommon.vsprops @@ -6,7 +6,7 @@ > <Tool Name="VCCLCompilerTool" - AdditionalIncludeDirectories=""$(WebKitOutputDir)\include";"$(WebKitOutputDir)\include\private";"$(WebKitOutputDir)\include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private"" + AdditionalIncludeDirectories=""$(ConfigurationBuildDir)\include";"$(ConfigurationBuildDir)\include\private";"$(ConfigurationBuildDir)\include\WebCore\ForwardingHeaders";"$(WebKitLibrariesDir)\include";"$(WebKitLibrariesDir)\include\private"" /> <Tool Name="VCLinkerTool" diff --git a/Tools/DumpRenderTree/win/ImageDiffPostBuild.cmd b/Tools/DumpRenderTree/win/ImageDiffPostBuild.cmd index f011495..26707ca 100644 --- a/Tools/DumpRenderTree/win/ImageDiffPostBuild.cmd +++ b/Tools/DumpRenderTree/win/ImageDiffPostBuild.cmd @@ -1 +1 @@ -if exist "%WEBKITOUTPUTDIR%\buildfailed" del "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" del "%CONFIGURATIONBUILDDIR%\buildfailed" diff --git a/Tools/DumpRenderTree/win/ImageDiffPreBuild.cmd b/Tools/DumpRenderTree/win/ImageDiffPreBuild.cmd index 3a84c26..a770776 100644 --- a/Tools/DumpRenderTree/win/ImageDiffPreBuild.cmd +++ b/Tools/DumpRenderTree/win/ImageDiffPreBuild.cmd @@ -1,6 +1,6 @@ %SystemDrive%\cygwin\bin\which.exe bash if errorlevel 1 set PATH=%SystemDrive%\cygwin\bin;%PATH% cmd /c -if exist "%WEBKITOUTPUTDIR%\buildfailed" grep XX%PROJECTNAME%XX "%WEBKITOUTPUTDIR%\buildfailed" +if exist "%CONFIGURATIONBUILDDIR%\buildfailed" grep XX%PROJECTNAME%XX "%CONFIGURATIONBUILDDIR%\buildfailed" if errorlevel 1 exit 1 -echo XX%PROJECTNAME%XX > "%WEBKITOUTPUTDIR%\buildfailed" +echo XX%PROJECTNAME%XX > "%CONFIGURATIONBUILDDIR%\buildfailed" diff --git a/Tools/DumpRenderTree/wscript b/Tools/DumpRenderTree/wscript index 4aaedb4..d583f1a 100644 --- a/Tools/DumpRenderTree/wscript +++ b/Tools/DumpRenderTree/wscript @@ -31,9 +31,9 @@ from settings import * include_paths = [ os.path.join(output_dir), - os.path.join(wk_root, 'JavaScriptCore'), - os.path.join(wk_root, 'WebCore'), - os.path.join(wk_root, 'WebCore', 'bindings', 'wx'), + os.path.join(wk_root, 'Source', 'JavaScriptCore'), + os.path.join(wk_root, 'Source', 'WebCore'), + os.path.join(wk_root, 'Source', 'WebCore', 'bindings', 'wx'), os.path.join(wk_root, 'WebKit', 'wx'), '.', 'wx' |