1dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block/* 2dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Copyright (C) 2010 Google Inc. All rights reserved. 3dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 4dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * Redistribution and use in source and binary forms, with or without 5dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * modification, are permitted provided that the following conditions are 6dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * met: 7dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 8dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * * Redistributions of source code must retain the above copyright 9dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * notice, this list of conditions and the following disclaimer. 10dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * * Redistributions in binary form must reproduce the above 11dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * copyright notice, this list of conditions and the following disclaimer 12dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * in the documentation and/or other materials provided with the 13dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * distribution. 14dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * * Neither the name of Google Inc. nor the names of its 15dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * contributors may be used to endorse or promote products derived from 16dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * this software without specific prior written permission. 17dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * 18dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block */ 30dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 31e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#ifndef TestShell_h 32e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#define TestShell_h 33e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "AccessibilityController.h" 35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "EventSender.h" 36dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "LayoutTestController.h" 376c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen#include "NotificationPresenter.h" 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "PlainTextController.h" 395af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke#include "TestEventPrinter.h" 40dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "TextInputController.h" 4168513a70bcd92384395513322f1b801e7bf9c729Steve Block#include "WebPreferences.h" 42dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "WebViewHost.h" 43dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <string> 44dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/OwnPtr.h> 45dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/Vector.h> 46dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 47dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block// TestShell is a container of global variables and has bridge functions between 48dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block// various objects. Only one instance is created in one DRT process. 49dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 50dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blocknamespace WebKit { 51e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass WebDevToolsAgentClient; 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass WebFrame; 536c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsenclass WebNotificationPresenter; 54dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass WebView; 55dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass WebURL; 56dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block} 57dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 58e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass DRTDevToolsAgent; 59e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass DRTDevToolsCallArgs; 60e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarkeclass DRTDevToolsClient; 61e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 62dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockstruct TestParams { 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool dumpTree; 64dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool dumpPixels; 652bde8e466a4451c7319e3a072d118917957d6554Steve Block bool debugRenderTree; 662bde8e466a4451c7319e3a072d118917957d6554Steve Block bool debugLayerTree; 67dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool printSeparators; 68dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebKit::WebURL testUrl; 69e14391e94c850b8bd03680c23b38978db68687a8John Reck // Resultant image file name. Required only if the test_shell mode. 70dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block std::string pixelFileName; 71dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block std::string pixelHash; 72dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 73dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block TestParams() 74dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block : dumpTree(true) 75dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block , dumpPixels(false) 762bde8e466a4451c7319e3a072d118917957d6554Steve Block , debugRenderTree(false) 772bde8e466a4451c7319e3a072d118917957d6554Steve Block , debugLayerTree(false) 78dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block , printSeparators(false) {} 79dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}; 80dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 81dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockclass TestShell { 82dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockpublic: 835af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke TestShell(bool testShellMode); 84dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block ~TestShell(); 85e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 86dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // The main WebView. 87dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebKit::WebView* webView() const { return m_webView; } 88dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Returns the host for the main WebView. 89dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebViewHost* webViewHost() const { return m_webViewHost; } 90dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block LayoutTestController* layoutTestController() const { return m_layoutTestController.get(); } 916c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen EventSender* eventSender() const { return m_eventSender.get(); } 92dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block AccessibilityController* accessibilityController() const { return m_accessibilityController.get(); } 936c2af9490927c3c5959b5cb07461b646f8b32f6cKristian Monsen NotificationPresenter* notificationPresenter() const { return m_notificationPresenter.get(); } 945af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke TestEventPrinter* printer() const { return m_printer.get(); } 95dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 9668513a70bcd92384395513322f1b801e7bf9c729Steve Block WebPreferences* preferences() { return &m_prefs; } 9768513a70bcd92384395513322f1b801e7bf9c729Steve Block void applyPreferences() { m_prefs.applyTo(m_webView); } 9868513a70bcd92384395513322f1b801e7bf9c729Steve Block 99dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void bindJSObjectsToWindow(WebKit::WebFrame*); 100dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void runFileTest(const TestParams&); 101dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void callJSGC(); 102dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void resetTestController(); 103dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void waitTestFinished(); 104dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 105dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Operations to the main window. 106dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void loadURL(const WebKit::WebURL& url); 107dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void reload(); 108dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void goToOffset(int offset); 109dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block int navigationEntryCount() const; 110dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setFocus(WebKit::WebWidget*, bool enable); 112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool shouldDumpFrameLoadCallbacks() const { return (m_testIsPreparing || m_testIsPending) && layoutTestController()->shouldDumpFrameLoadCallbacks(); } 113e14391e94c850b8bd03680c23b38978db68687a8John Reck bool shouldDumpUserGestureInFrameLoadCallbacks() const { return (m_testIsPreparing || m_testIsPending) && layoutTestController()->shouldDumpUserGestureInFrameLoadCallbacks(); } 114dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool shouldDumpResourceLoadCallbacks() const { return (m_testIsPreparing || m_testIsPending) && layoutTestController()->shouldDumpResourceLoadCallbacks(); } 11568513a70bcd92384395513322f1b801e7bf9c729Steve Block bool shouldDumpResourceResponseMIMETypes() const { return (m_testIsPreparing || m_testIsPending) && layoutTestController()->shouldDumpResourceResponseMIMETypes(); } 116dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setIsLoading(bool flag) { m_isLoading = flag; } 117dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 118dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Called by the LayoutTestController to signal test completion. 119dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void testFinished(); 120dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Called by LayoutTestController when a test hits the timeout, but does not 121dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // cause a hang. We can avoid killing TestShell in this case and still dump 122dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // the test results. 123dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void testTimedOut(); 124dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 12506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen bool allowExternalPages() const { return m_allowExternalPages; } 12606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen void setAllowExternalPages(bool allowExternalPages) { m_allowExternalPages = allowExternalPages; } 12706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 128a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch void setAcceleratedCompositingEnabled(bool enabled) { m_acceleratedCompositingEnabled = enabled; } 1292bde8e466a4451c7319e3a072d118917957d6554Steve Block void setForceCompositingMode(bool enabled) { m_forceCompositingMode = enabled; } 130bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen void setAccelerated2dCanvasEnabled(bool enabled) { m_accelerated2dCanvasEnabled = enabled; } 131bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen 132dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if defined(OS_WIN) 133dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Access to the finished event. Used by the static WatchDog thread. 134dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block HANDLE finishedEvent() { return m_finishedEvent; } 135dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 136dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 137dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Get the timeout for running a test in milliseconds. 1385af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int layoutTestTimeout() { return m_timeout; } 1395af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int layoutTestTimeoutForWatchDog() { return layoutTestTimeout() + 1000; } 1405af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke void setLayoutTestTimeout(int timeout) { m_timeout = timeout; } 141dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 142cad810f21b803229eb11403f9209855525a25d57Steve Block // V8 JavaScript stress test options. 143cad810f21b803229eb11403f9209855525a25d57Steve Block int stressOpt() { return m_stressOpt; } 144cad810f21b803229eb11403f9209855525a25d57Steve Block void setStressOpt(bool stressOpt) { m_stressOpt = stressOpt; } 145cad810f21b803229eb11403f9209855525a25d57Steve Block int stressDeopt() { return m_stressDeopt; } 146cad810f21b803229eb11403f9209855525a25d57Steve Block void setStressDeopt(int stressDeopt) { m_stressDeopt = stressDeopt; } 147e14391e94c850b8bd03680c23b38978db68687a8John Reck 148cad810f21b803229eb11403f9209855525a25d57Steve Block // The JavaScript flags specified as a strings. 149cad810f21b803229eb11403f9209855525a25d57Steve Block std::string javaScriptFlags() { return m_javaScriptFlags; } 150cad810f21b803229eb11403f9209855525a25d57Steve Block void setJavaScriptFlags(std::string javaScriptFlags) { m_javaScriptFlags = javaScriptFlags; } 151e14391e94c850b8bd03680c23b38978db68687a8John Reck 152e14391e94c850b8bd03680c23b38978db68687a8John Reck // Set whether to dump when the loaded page has finished processing. This is used with multiple load 153e14391e94c850b8bd03680c23b38978db68687a8John Reck // testing where we only want to have the output from the last load. 154e14391e94c850b8bd03680c23b38978db68687a8John Reck void setDumpWhenFinished(bool dumpWhenFinished) { m_dumpWhenFinished = dumpWhenFinished; } 155e14391e94c850b8bd03680c23b38978db68687a8John Reck 156dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebViewHost* createNewWindow(const WebKit::WebURL&); 157dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void closeWindow(WebViewHost*); 158dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void closeRemainingWindows(); 159dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block int windowCount(); 160dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block static void resizeWindowForTest(WebViewHost*, const WebKit::WebURL&); 161e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 162e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void showDevTools(); 163e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void closeDevTools(); 164e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 165e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke DRTDevToolsAgent* drtDevToolsAgent() { return m_drtDevToolsAgent.get(); } 166e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke DRTDevToolsClient* drtDevToolsClient() { return m_drtDevToolsClient.get(); } 167f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch WebViewHost* devToolsWebView() { return m_devTools; } 168dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 169dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block static const int virtualWindowBorder = 3; 170dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef Vector<WebViewHost*> WindowList; 17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch WindowList windowList() const { return m_windowList; } 17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 174dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Blockprivate: 175cad810f21b803229eb11403f9209855525a25d57Steve Block WebViewHost* createNewWindow(const WebKit::WebURL&, DRTDevToolsAgent*); 176cad810f21b803229eb11403f9209855525a25d57Steve Block void createMainWindow(); 177e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void createDRTDevToolsClient(DRTDevToolsAgent*); 178e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 17968513a70bcd92384395513322f1b801e7bf9c729Steve Block void resetWebSettings(WebKit::WebView&); 180dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void dump(); 181dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block std::string dumpAllBackForwardLists(); 1822daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch void dumpImage(SkCanvas*) const; 183dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 184dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool m_testIsPending; 185dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool m_testIsPreparing; 186dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool m_isLoading; 187dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebKit::WebView* m_webView; 188dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebKit::WebWidget* m_focusedWidget; 1895af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke bool m_testShellMode; 190dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WebViewHost* m_webViewHost; 191e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke WebViewHost* m_devTools; 192e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke OwnPtr<DRTDevToolsAgent> m_drtDevToolsAgent; 193e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke OwnPtr<DRTDevToolsClient> m_drtDevToolsClient; 19406ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<AccessibilityController> m_accessibilityController; 19506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<EventSender> m_eventSender; 19606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<LayoutTestController> m_layoutTestController; 19706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<PlainTextController> m_plainTextController; 19806ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<TextInputController> m_textInputController; 19906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<NotificationPresenter> m_notificationPresenter; 20006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen OwnPtr<TestEventPrinter> m_printer; 201dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block TestParams m_params; 2025af96e2c7b73ebc627c6894727826a7576d31758Leon Clarke int m_timeout; // timeout value in millisecond 20306ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen bool m_allowExternalPages; 204a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool m_acceleratedCompositingEnabled; 2052bde8e466a4451c7319e3a072d118917957d6554Steve Block bool m_forceCompositingMode; 206bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen bool m_accelerated2dCanvasEnabled; 20768513a70bcd92384395513322f1b801e7bf9c729Steve Block WebPreferences m_prefs; 208cad810f21b803229eb11403f9209855525a25d57Steve Block bool m_stressOpt; 209cad810f21b803229eb11403f9209855525a25d57Steve Block bool m_stressDeopt; 210cad810f21b803229eb11403f9209855525a25d57Steve Block std::string m_javaScriptFlags; 211e14391e94c850b8bd03680c23b38978db68687a8John Reck bool m_dumpWhenFinished; 212e14391e94c850b8bd03680c23b38978db68687a8John Reck 213dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 214dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // List of all windows in this process. 215dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // The main window should be put into windowList[0]. 216dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block WindowList m_windowList; 217dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 218dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#if defined(OS_WIN) 219dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Used by the watchdog to know when it's finished. 220dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block HANDLE m_finishedEvent; 221dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#endif 222dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block}; 223e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block 224db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Blockvoid platformInit(int*, char***); 225dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdochvoid openStartupDialog(); 2265abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrickbool checkLayoutTestSystemDependencies(); 227e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke 228e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke#endif // TestShell_h 229