LayoutTestController.h revision f05b935882198ccf7d81675736e3aeb089c5113a
1563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark/* 2563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2007, 2008, 2009 Apple Inc. All rights reserved. 3563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 4563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Redistribution and use in source and binary forms, with or without 5563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * modification, are permitted provided that the following conditions 6563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * are met: 7563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 8563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 1. Redistributions of source code must retain the above copyright 9563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer. 10563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 2. Redistributions in binary form must reproduce the above copyright 11563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * notice, this list of conditions and the following disclaimer in the 12563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * documentation and/or other materials provided with the distribution. 13563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * its contributors may be used to endorse or promote products derived 15563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * from this software without specific prior written permission. 16563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 17563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark */ 28563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 29563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#ifndef LayoutTestController_h 30563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define LayoutTestController_h 31563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 32563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <JavaScriptCore/JSObjectRef.h> 33cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block#include <JavaScriptCore/JSRetainPtr.h> 34dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <set> 35563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <string> 36231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#include <vector> 3706ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen#include <wtf/PassRefPtr.h> 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/RefCounted.h> 39563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 40563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkclass LayoutTestController : public RefCounted<LayoutTestController> { 41563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkpublic: 4206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen static PassRefPtr<LayoutTestController> create(const std::string& testPathOrURL, const std::string& expectedPixelHash); 43563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark ~LayoutTestController(); 44563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 45563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void makeWindowObject(JSContextRef context, JSObjectRef windowObject, JSValueRef* exception); 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void addDisallowedURL(JSStringRef url); 48dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void clearAllApplicationCaches(); 49563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void clearAllDatabases(); 50563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void clearBackForwardList(); 510bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void clearPersistentUserStyleSheet(); 52dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block bool callShouldCloseOnWebView(); 53563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark JSStringRef copyDecodedHostName(JSStringRef name); 54563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark JSStringRef copyEncodedHostName(JSStringRef name); 55f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch JSRetainPtr<JSStringRef> counterValueForElementById(JSStringRef id); 560bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void disableImageLoading(); 570bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void dispatchPendingLoadRequests(); 58563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void display(); 590bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void execCommand(JSStringRef name, JSStringRef value); 60f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch bool findString(JSContextRef, JSStringRef, JSObjectRef optionsArray); 61563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool isCommandEnabled(JSStringRef name); 62563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void keepWebHistory(); 63dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSValueRef computedStyleIncludingVisitedInfo(JSContextRef, JSValueRef); 64bec39347bb3bb5bf1187ccaf471d26247f28b585Kristian Monsen JSValueRef nodesFromRect(JSContextRef, JSValueRef, int x, int y, unsigned top, unsigned right, unsigned bottom, unsigned left, bool ignoreClipping); 65563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void notifyDone(); 668a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block int numberOfPages(float pageWidthInPixels, float pageHeightInPixels); 67231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void overridePreference(JSStringRef key, JSStringRef value); 685e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block int pageNumberForElementById(JSStringRef id, float pageWidthInPixels, float pageHeightInPixels); 6906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen JSRetainPtr<JSStringRef> pageProperty(const char* propertyName, int pageNumber) const; 70ca9cb53ed1119a3fd98fafa0972ffeb56dee1c24Steve Block JSRetainPtr<JSStringRef> pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const; 7106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen bool isPageBoxVisible(int pageNumber) const; 72563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark JSStringRef pathToLocalResource(JSContextRef, JSStringRef url); 73563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void queueBackNavigation(int howFarBackward); 74563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void queueForwardNavigation(int howFarForward); 75563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void queueLoad(JSStringRef url, JSStringRef target); 76967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch void queueLoadHTMLString(JSStringRef content, JSStringRef baseURL); 770bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void queueLoadingScript(JSStringRef script); 780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void queueNonLoadingScript(JSStringRef script); 79563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void queueReload(); 80cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block void removeAllVisitedLinks(); 81563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setAcceptsEditing(bool acceptsEditing); 82643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void setAllowUniversalAccessFromFileURLs(bool); 83692e5dbf12901edacf14812a6fae25462920af42Steve Block void setAllowFileAccessFromFileURLs(bool); 845e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block void setAppCacheMaximumSize(unsigned long long quota); 85dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setApplicationCacheOriginQuota(unsigned long long quota); 86563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setAuthorAndUserStylesEnabled(bool); 870bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setCacheModel(int); 88563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setCustomPolicyDelegate(bool setDelegate, bool permissive); 89563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDatabaseQuota(unsigned long long quota); 90d0825bca7fe65beaee391d30da42e937db621564Steve Block void setDomainRelaxationForbiddenForURLScheme(bool forbidden, JSStringRef scheme); 91563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setIconDatabaseEnabled(bool iconDatabaseEnabled); 92563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setJavaScriptProfilingEnabled(bool profilingEnabled); 9321939df44de1705786c545cd1bf519d47250322dBen Murdoch void setJavaScriptCanAccessClipboard(bool flag); 94563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setMainFrameIsFirstResponder(bool flag); 95db14019a23d96bc8a444b6576a5da8bd1cfbc8b0Steve Block void setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma); 965e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block void setMockGeolocationError(int code, JSStringRef message); 975e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block void setMockGeolocationPosition(double latitude, double longitude, double accuracy); 984576aa36e9a9671459299c7963ac95aa94beaea9Shimeng (Simon) Wang void addMockSpeechInputResult(JSStringRef result, double confidence, JSStringRef language); 990bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setPersistentUserStyleSheetLocation(JSStringRef path); 10021939df44de1705786c545cd1bf519d47250322dBen Murdoch void setPluginsEnabled(bool flag); 101563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setPopupBlockingEnabled(bool flag); 1020bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setPrivateBrowsingEnabled(bool flag); 103563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setSelectTrailingWhitespaceEnabled(bool flag); 1040bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setSmartInsertDeleteEnabled(bool flag); 1050bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setTabKeyCyclesThroughElements(bool cycles); 106563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setUseDashboardCompatibilityMode(bool flag); 107563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setUserStyleSheetEnabled(bool flag); 108563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setUserStyleSheetLocation(JSStringRef path); 109e8b154fd68f9b33be40a3590e58347f353835f5cSteve Block void setViewModeMediaFeature(JSStringRef mode); 1105e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block void setXSSAuditorEnabled(bool flag); 111dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setFrameFlatteningEnabled(bool enable); 112dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setSpatialNavigationEnabled(bool enable); 113dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setScrollbarPolicy(JSStringRef orientation, JSStringRef policy); 114e78cbe89e6f337f2f1fe40315be88f742b547151Steve Block void setEditingBehavior(const char* editingBehavior); 1155e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block 1160bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void waitForPolicyDelegate(); 1170bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch size_t webHistoryItemCount(); 118231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block unsigned workerThreadCount() const; 119563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark int windowCount(); 120563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 121231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void grantDesktopNotificationPermission(JSStringRef origin); 122231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool checkDesktopNotificationPermission(JSStringRef origin); 123563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 124231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool elementDoesAutoCompleteForElementWithId(JSStringRef id); 125563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 126563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpAsPDF() const { return m_dumpAsPDF; } 127563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpAsPDF(bool dumpAsPDF) { m_dumpAsPDF = dumpAsPDF; } 128231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 129231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpAsText() const { return m_dumpAsText; } 130231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpAsText(bool dumpAsText) { m_dumpAsText = dumpAsText; } 131967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 132967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch bool generatePixelResults() const { return m_generatePixelResults; } 133967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch void setGeneratePixelResults(bool generatePixelResults) { m_generatePixelResults = generatePixelResults; } 134967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 135dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch bool dumpApplicationCacheDelegateCallbacks() const { return m_dumpApplicationCacheDelegateCallbacks; } 136dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setDumpApplicationCacheDelegateCallbacks(bool dumpCallbacks) { m_dumpApplicationCacheDelegateCallbacks = dumpCallbacks; } 137dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 138563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpBackForwardList() const { return m_dumpBackForwardList; } 139563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpBackForwardList(bool dumpBackForwardList) { m_dumpBackForwardList = dumpBackForwardList; } 140563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 141563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpChildFrameScrollPositions() const { return m_dumpChildFrameScrollPositions; } 142563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpChildFrameScrollPositions(bool dumpChildFrameScrollPositions) { m_dumpChildFrameScrollPositions = dumpChildFrameScrollPositions; } 143563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 144563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpChildFramesAsText() const { return m_dumpChildFramesAsText; } 145563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpChildFramesAsText(bool dumpChildFramesAsText) { m_dumpChildFramesAsText = dumpChildFramesAsText; } 146563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 147563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpDatabaseCallbacks() const { return m_dumpDatabaseCallbacks; } 148563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpDatabaseCallbacks(bool dumpDatabaseCallbacks) { m_dumpDatabaseCallbacks = dumpDatabaseCallbacks; } 149563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 150563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpDOMAsWebArchive() const { return m_dumpDOMAsWebArchive; } 151563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpDOMAsWebArchive(bool dumpDOMAsWebArchive) { m_dumpDOMAsWebArchive = dumpDOMAsWebArchive; } 152563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 153563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpEditingCallbacks() const { return m_dumpEditingCallbacks; } 154563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpEditingCallbacks(bool dumpEditingCallbacks) { m_dumpEditingCallbacks = dumpEditingCallbacks; } 155563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 156231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpFrameLoadCallbacks() const { return m_dumpFrameLoadCallbacks; } 157231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpFrameLoadCallbacks(bool dumpFrameLoadCallbacks) { m_dumpFrameLoadCallbacks = dumpFrameLoadCallbacks; } 158e14391e94c850b8bd03680c23b38978db68687a8John Reck 159e14391e94c850b8bd03680c23b38978db68687a8John Reck bool dumpUserGestureInFrameLoadCallbacks() const { return m_dumpUserGestureInFrameLoadCallbacks; } 160e14391e94c850b8bd03680c23b38978db68687a8John Reck void setDumpUserGestureInFrameLoadCallbacks(bool dumpUserGestureInFrameLoadCallbacks) { m_dumpUserGestureInFrameLoadCallbacks = dumpUserGestureInFrameLoadCallbacks; } 161231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 162cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block bool dumpHistoryDelegateCallbacks() const { return m_dumpHistoryDelegateCallbacks; } 163cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block void setDumpHistoryDelegateCallbacks(bool dumpHistoryDelegateCallbacks) { m_dumpHistoryDelegateCallbacks = dumpHistoryDelegateCallbacks; } 164cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 165563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool dumpResourceLoadCallbacks() const { return m_dumpResourceLoadCallbacks; } 166563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setDumpResourceLoadCallbacks(bool dumpResourceLoadCallbacks) { m_dumpResourceLoadCallbacks = dumpResourceLoadCallbacks; } 1670bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 1680bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool dumpResourceResponseMIMETypes() const { return m_dumpResourceResponseMIMETypes; } 1690bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setDumpResourceResponseMIMETypes(bool dumpResourceResponseMIMETypes) { m_dumpResourceResponseMIMETypes = dumpResourceResponseMIMETypes; } 1700bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 171231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpSelectionRect() const { return m_dumpSelectionRect; } 172231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpSelectionRect(bool dumpSelectionRect) { m_dumpSelectionRect = dumpSelectionRect; } 173563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 174231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpSourceAsWebArchive() const { return m_dumpSourceAsWebArchive; } 175231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpSourceAsWebArchive(bool dumpSourceAsWebArchive) { m_dumpSourceAsWebArchive = dumpSourceAsWebArchive; } 176231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 177231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpStatusCallbacks() const { return m_dumpStatusCallbacks; } 178231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpStatusCallbacks(bool dumpStatusCallbacks) { m_dumpStatusCallbacks = dumpStatusCallbacks; } 179563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 180231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpTitleChanges() const { return m_dumpTitleChanges; } 181231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpTitleChanges(bool dumpTitleChanges) { m_dumpTitleChanges = dumpTitleChanges; } 182cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 18321939df44de1705786c545cd1bf519d47250322dBen Murdoch bool dumpIconChanges() const { return m_dumpIconChanges; } 18421939df44de1705786c545cd1bf519d47250322dBen Murdoch void setDumpIconChanges(bool dumpIconChanges) { m_dumpIconChanges = dumpIconChanges; } 18521939df44de1705786c545cd1bf519d47250322dBen Murdoch 186cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block bool dumpVisitedLinksCallback() const { return m_dumpVisitedLinksCallback; } 187cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block void setDumpVisitedLinksCallback(bool dumpVisitedLinksCallback) { m_dumpVisitedLinksCallback = dumpVisitedLinksCallback; } 188231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 189231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool dumpWillCacheResponse() const { return m_dumpWillCacheResponse; } 190231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setDumpWillCacheResponse(bool dumpWillCacheResponse) { m_dumpWillCacheResponse = dumpWillCacheResponse; } 191231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 192563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool callCloseOnWebViews() const { return m_callCloseOnWebViews; } 193563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setCallCloseOnWebViews(bool callCloseOnWebViews) { m_callCloseOnWebViews = callCloseOnWebViews; } 194563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 195563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool canOpenWindows() const { return m_canOpenWindows; } 196563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setCanOpenWindows(bool canOpenWindows) { m_canOpenWindows = canOpenWindows; } 197563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 198563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool closeRemainingWindowsWhenComplete() const { return m_closeRemainingWindowsWhenComplete; } 199563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setCloseRemainingWindowsWhenComplete(bool closeRemainingWindowsWhenComplete) { m_closeRemainingWindowsWhenComplete = closeRemainingWindowsWhenComplete; } 200563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 2015e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block bool newWindowsCopyBackForwardList() const { return m_newWindowsCopyBackForwardList; } 2025e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block void setNewWindowsCopyBackForwardList(bool newWindowsCopyBackForwardList) { m_newWindowsCopyBackForwardList = newWindowsCopyBackForwardList; } 2035e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block 204563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool stopProvisionalFrameLoads() const { return m_stopProvisionalFrameLoads; } 205563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setStopProvisionalFrameLoads(bool stopProvisionalFrameLoads) { m_stopProvisionalFrameLoads = stopProvisionalFrameLoads; } 206563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 207563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool testOnscreen() const { return m_testOnscreen; } 208563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setTestOnscreen(bool testOnscreen) { m_testOnscreen = testOnscreen; } 209563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 210563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool testRepaint() const { return m_testRepaint; } 211563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setTestRepaint(bool testRepaint) { m_testRepaint = testRepaint; } 212563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 213563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool testRepaintSweepHorizontally() const { return m_testRepaintSweepHorizontally; } 214563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setTestRepaintSweepHorizontally(bool testRepaintSweepHorizontally) { m_testRepaintSweepHorizontally = testRepaintSweepHorizontally; } 215563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 216563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool waitToDump() const { return m_waitToDump; } 217563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setWaitToDump(bool waitToDump); 218231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void waitToDumpWatchdogTimerFired(); 219563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 220dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block const std::set<std::string>& willSendRequestClearHeaders() const { return m_willSendRequestClearHeaders; } 221dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setWillSendRequestClearHeader(std::string header) { m_willSendRequestClearHeaders.insert(header); } 222dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 223d0825bca7fe65beaee391d30da42e937db621564Steve Block bool willSendRequestReturnsNull() const { return m_willSendRequestReturnsNull; } 224d0825bca7fe65beaee391d30da42e937db621564Steve Block void setWillSendRequestReturnsNull(bool returnsNull) { m_willSendRequestReturnsNull = returnsNull; } 225d0825bca7fe65beaee391d30da42e937db621564Steve Block 2260bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool willSendRequestReturnsNullOnRedirect() const { return m_willSendRequestReturnsNullOnRedirect; } 2270bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch void setWillSendRequestReturnsNullOnRedirect(bool returnsNull) { m_willSendRequestReturnsNullOnRedirect = returnsNull; } 2280bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch 229563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool windowIsKey() const { return m_windowIsKey; } 230563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setWindowIsKey(bool windowIsKey); 231563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 232231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool alwaysAcceptCookies() const { return m_alwaysAcceptCookies; } 233231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setAlwaysAcceptCookies(bool alwaysAcceptCookies); 234231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 235231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool handlesAuthenticationChallenges() const { return m_handlesAuthenticationChallenges; } 236231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setHandlesAuthenticationChallenges(bool handlesAuthenticationChallenges) { m_handlesAuthenticationChallenges = handlesAuthenticationChallenges; } 237231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 23821939df44de1705786c545cd1bf519d47250322dBen Murdoch bool isPrinting() const { return m_isPrinting; } 23921939df44de1705786c545cd1bf519d47250322dBen Murdoch void setIsPrinting(bool isPrinting) { m_isPrinting = isPrinting; } 24021939df44de1705786c545cd1bf519d47250322dBen Murdoch 241231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block const std::string& authenticationUsername() const { return m_authenticationUsername; } 242231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setAuthenticationUsername(std::string username) { m_authenticationUsername = username; } 243231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 244231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block const std::string& authenticationPassword() const { return m_authenticationPassword; } 245231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setAuthenticationPassword(std::string password) { m_authenticationPassword = password; } 246231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 247563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool globalFlag() const { return m_globalFlag; } 248563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void setGlobalFlag(bool globalFlag) { m_globalFlag = globalFlag; } 249563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 250967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch bool deferMainResourceDataLoad() const { return m_deferMainResourceDataLoad; } 251967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch void setDeferMainResourceDataLoad(bool flag) { m_deferMainResourceDataLoad = flag; } 252967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch 253563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark const std::string& testPathOrURL() const { return m_testPathOrURL; } 254563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark const std::string& expectedPixelHash() const { return m_expectedPixelHash; } 255563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 256563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool pauseAnimationAtTimeOnElementWithId(JSStringRef animationName, double time, JSStringRef elementId); 257563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool pauseTransitionAtTimeOnElementWithId(JSStringRef propertyName, double time, JSStringRef elementId); 258643ca7872b450ea4efacab6188849e5aac2ba161Steve Block bool sampleSVGAnimationForElementAtTime(JSStringRef animationId, double time, JSStringRef elementId); 259563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark unsigned numberOfActiveAnimations() const; 260f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick void suspendAnimations() const; 261f486d19d62f1bc33246748b14b14a9dfa617b57fIain Merrick void resumeAnimations() const; 262231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 263dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void addOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains); 264dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void removeOriginAccessWhitelistEntry(JSStringRef sourceOrigin, JSStringRef destinationProtocol, JSStringRef destinationHost, bool allowDestinationSubdomains); 265231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 266e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void addUserScript(JSStringRef source, bool runAtStart, bool allFrames); 267e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke void addUserStyleSheet(JSStringRef source, bool allFrames); 268231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 269231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setGeolocationPermission(bool allow); 270231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool isGeolocationPermissionSet() const { return m_isGeolocationPermissionSet; } 271231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool geolocationPermission() const { return m_geolocationPermission; } 272231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 273dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setDeveloperExtrasEnabled(bool); 274f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void setAsynchronousSpellCheckingEnabled(bool); 275231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void showWebInspector(); 276231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void closeWebInspector(); 277643ca7872b450ea4efacab6188849e5aac2ba161Steve Block void setTimelineProfilingEnabled(bool enabled); 278231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void evaluateInWebInspector(long callId, JSStringRef script); 279cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block void evaluateScriptInIsolatedWorld(unsigned worldId, JSObjectRef globalObject, JSStringRef script); 280231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 281231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block void setPOSIXLocale(JSStringRef locale); 282dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 283dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void setWebViewEditable(bool); 284dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 28506ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen void abortModal(); 28606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 287a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch bool hasSpellingMarker(int from, int length); 288a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 289f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch void dumpConfigurationForViewport(int availableWidth, int availableHeight); 290f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 291f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch static void setSerializeHTTPLoads(bool serialize); 292f05b935882198ccf7d81675736e3aeb089c5113aBen Murdoch 293692e5dbf12901edacf14812a6fae25462920af42Steve Block // The following API test functions should probably be moved to platform-specific 294692e5dbf12901edacf14812a6fae25462920af42Steve Block // unit tests outside of DRT once they exist. 295692e5dbf12901edacf14812a6fae25462920af42Steve Block void apiTestNewWindowDataLoadBaseURL(JSStringRef utf8Data, JSStringRef baseURL); 296dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void apiTestGoToCurrentBackForwardItem(); 297dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 298dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block // Simulate a request an embedding application could make, populating per-session credential storage. 299dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block void authenticateSession(JSStringRef url, JSStringRef username, JSStringRef password); 300dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 301dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSRetainPtr<JSStringRef> layerTreeAsText() const; 302dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 303dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block JSRetainPtr<JSStringRef> markerTextForListItem(JSContextRef context, JSValueRef nodeObject) const; 304692e5dbf12901edacf14812a6fae25462920af42Steve Block 305692e5dbf12901edacf14812a6fae25462920af42Steve Block static const unsigned maxViewWidth; 306692e5dbf12901edacf14812a6fae25462920af42Steve Block static const unsigned maxViewHeight; 307231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 308563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkprivate: 30906ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen LayoutTestController(const std::string& testPathOrURL, const std::string& expectedPixelHash); 31006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 311dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch void setGeolocationPermissionCommon(bool allow); 312dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch 313dd8bb3de4f353a81954234999f1fea748aee2ea9Ben Murdoch bool m_dumpApplicationCacheDelegateCallbacks; 314563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpAsPDF; 315231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpAsText; 316563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpBackForwardList; 317563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpChildFrameScrollPositions; 318563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpChildFramesAsText; 319563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpDOMAsWebArchive; 320231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpDatabaseCallbacks; 321231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpEditingCallbacks; 322231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpFrameLoadCallbacks; 323e14391e94c850b8bd03680c23b38978db68687a8John Reck bool m_dumpUserGestureInFrameLoadCallbacks; 324cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block bool m_dumpHistoryDelegateCallbacks; 325231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpResourceLoadCallbacks; 326231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_dumpResourceResponseMIMETypes; 327563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpSelectionRect; 328563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpSourceAsWebArchive; 329563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpStatusCallbacks; 330563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_dumpTitleChanges; 33121939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_dumpIconChanges; 332cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block bool m_dumpVisitedLinksCallback; 3330bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool m_dumpWillCacheResponse; 334967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch bool m_generatePixelResults; 335563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_callCloseOnWebViews; 336563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_canOpenWindows; 337563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_closeRemainingWindowsWhenComplete; 3385e2bc6953fe6923165b8a5d7679939693a1d58d6Steve Block bool m_newWindowsCopyBackForwardList; 339563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_stopProvisionalFrameLoads; 340563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_testOnscreen; 341563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_testRepaint; 342563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_testRepaintSweepHorizontally; 343563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_waitToDump; // True if waitUntilDone() has been called, but notifyDone() has not yet been called. 344d0825bca7fe65beaee391d30da42e937db621564Steve Block bool m_willSendRequestReturnsNull; 3450bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdoch bool m_willSendRequestReturnsNullOnRedirect; 346563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_windowIsKey; 347231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_alwaysAcceptCookies; 348563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark bool m_globalFlag; 349231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_isGeolocationPermissionSet; 350231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_geolocationPermission; 351231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block bool m_handlesAuthenticationChallenges; 35221939df44de1705786c545cd1bf519d47250322dBen Murdoch bool m_isPrinting; 353967717af5423377c967781471ee106e2bb4e11c8Ben Murdoch bool m_deferMainResourceDataLoad; 354563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 355231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block std::string m_authenticationUsername; 356231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block std::string m_authenticationPassword; 357563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark std::string m_testPathOrURL; 358563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark std::string m_expectedPixelHash; // empty string if no hash 359dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block 360dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block std::set<std::string> m_willSendRequestClearHeaders; 361563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 362231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // origins which have been granted desktop notification access 363231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block std::vector<JSStringRef> m_desktopNotificationAllowedOrigins; 364231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 365563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark static JSClassRef getJSClass(); 366563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark static JSStaticValue* staticValues(); 367563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark static JSStaticFunction* staticFunctions(); 368563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark}; 369563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 370563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#endif // LayoutTestController_h 371