1/*
2 * Copyright (C) 2010-2017 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23 * THE POSSIBILITY OF SUCH DAMAGE.
24 */
25#ifndef JSTestRunner_h
26#define JSTestRunner_h
27
28#include "JSWrapper.h"
29
30namespace WTR {
31
32class TestRunner;
33
34class JSTestRunner : public JSWrapper {
35public:
36 static JSClassRef testRunnerClass();
37
38private:
39 static const JSStaticFunction* staticFunctions();
40 static const JSStaticValue* staticValues();
41
42 // Functions
43
44 static JSValueRef dumpAsText(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
45 static JSValueRef dumpChildFramesAsText(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
46 static JSValueRef waitForPolicyDelegate(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
47 static JSValueRef waitUntilDone(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
48 static JSValueRef notifyDone(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
49 static JSValueRef preciseTime(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
50 static JSValueRef waitUntilDownloadFinished(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
51 static JSValueRef setShouldLogDownloadCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
52 static JSValueRef setRenderTreeDumpOptions(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
53 static JSValueRef dumpBackForwardList(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
54 static JSValueRef dumpChildFrameScrollPositions(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
55 static JSValueRef dumpEditingCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
56 static JSValueRef dumpSelectionRect(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
57 static JSValueRef dumpStatusCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
58 static JSValueRef dumpTitleChanges(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
59 static JSValueRef dumpFullScreenCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
60 static JSValueRef dumpFrameLoadCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
61 static JSValueRef dumpProgressFinishedCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
62 static JSValueRef dumpResourceLoadCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
63 static JSValueRef dumpResourceResponseMIMETypes(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
64 static JSValueRef dumpWillCacheResponse(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
65 static JSValueRef dumpApplicationCacheDelegateCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
66 static JSValueRef dumpDatabaseCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
67 static JSValueRef dumpDOMAsWebArchive(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
68 static JSValueRef dumpPolicyDelegateCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
69 static JSValueRef dumpResourceLoadStatistics(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
70 static JSValueRef dumpAdClickAttribution(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
71 static JSValueRef clearDOMCaches(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
72 static JSValueRef clearDOMCache(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
73 static JSValueRef hasDOMCache(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
74 static JSValueRef domCacheSize(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
75 static JSValueRef setAllowStorageQuotaIncrease(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
76 static JSValueRef keepWebHistory(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
77 static JSValueRef setAcceptsEditing(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
78 static JSValueRef setCanOpenWindows(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
79 static JSValueRef setCloseRemainingWindowsWhenComplete(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
80 static JSValueRef setXSSAuditorEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
81 static JSValueRef setAllowUniversalAccessFromFileURLs(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
82 static JSValueRef setAllowFileAccessFromFileURLs(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
83 static JSValueRef setNeedsStorageAccessFromFileURLsQuirk(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
84 static JSValueRef setPluginsEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
85 static JSValueRef setJavaScriptCanAccessClipboard(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
86 static JSValueRef setPrivateBrowsingEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
87 static JSValueRef setUseDashboardCompatibilityMode(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
88 static JSValueRef setPopupBlockingEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
89 static JSValueRef setAuthorAndUserStylesEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
90 static JSValueRef setCustomPolicyDelegate(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
91 static JSValueRef addOriginAccessWhitelistEntry(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
92 static JSValueRef removeOriginAccessWhitelistEntry(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
93 static JSValueRef setUserStyleSheetEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
94 static JSValueRef setUserStyleSheetLocation(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
95 static JSValueRef setSpatialNavigationEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
96 static JSValueRef setTabKeyCyclesThroughElements(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
97 static JSValueRef setSerializeHTTPLoads(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
98 static JSValueRef dispatchPendingLoadRequests(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
99 static JSValueRef setCacheModel(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
100 static JSValueRef setAsynchronousSpellCheckingEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
101 static JSValueRef setPrinting(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
102 static JSValueRef setShouldDecideNavigationPolicyAfterDelay(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
103 static JSValueRef setShouldDecideResponsePolicyAfterDelay(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
104 static JSValueRef setNavigationGesturesEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
105 static JSValueRef setIgnoresViewportScaleLimits(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
106 static JSValueRef setShouldDownloadUndisplayableMIMETypes(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
107 static JSValueRef clearBackForwardList(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
108 static JSValueRef execCommand(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
109 static JSValueRef isCommandEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
110 static JSValueRef windowCount(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
111 static JSValueRef setShouldAllowDeviceOrientationAndMotionAccess(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
112 static JSValueRef testRepaint(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
113 static JSValueRef repaintSweepHorizontally(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
114 static JSValueRef display(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
115 static JSValueRef displayAndTrackRepaints(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
116 static JSValueRef forceImmediateCompletion(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
117 static JSValueRef isPageBoxVisible(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
118 static JSValueRef dumpAllHTTPRedirectedResponseHeaders(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
119 static JSValueRef setValueForUser(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
120 static JSValueRef addUserScript(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
121 static JSValueRef addUserStyleSheet(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
122 static JSValueRef clearAllDatabases(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
123 static JSValueRef setDatabaseQuota(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
124 static JSValueRef pathToLocalResource(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
125 static JSValueRef setIDBPerOriginQuota(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
126 static JSValueRef clearAllApplicationCaches(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
127 static JSValueRef setAppCacheMaximumSize(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
128 static JSValueRef applicationCacheDiskUsageForOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
129 static JSValueRef clearApplicationCacheForOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
130 static JSValueRef disallowIncreaseForApplicationCacheQuota(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
131 static JSValueRef originsWithApplicationCache(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
132 static JSValueRef findString(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
133 static JSValueRef findStringMatchesInPage(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
134 static JSValueRef replaceFindMatchesAtIndices(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
135 static JSValueRef evaluateScriptInIsolatedWorld(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
136 static JSValueRef showWebInspector(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
137 static JSValueRef closeWebInspector(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
138 static JSValueRef evaluateInWebInspector(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
139 static JSValueRef setPOSIXLocale(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
140 static JSValueRef setTextDirection(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
141 static JSValueRef setWillSendRequestReturnsNull(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
142 static JSValueRef setWillSendRequestReturnsNullOnRedirect(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
143 static JSValueRef setWillSendRequestAddsHTTPBody(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
144 static JSValueRef setShouldStayOnPageAfterHandlingBeforeUnload(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
145 static JSValueRef setStopProvisionalFrameLoads(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
146 static JSValueRef clearDidReceiveServerRedirectForProvisionalNavigation(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
147 static JSValueRef addChromeInputField(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
148 static JSValueRef removeChromeInputField(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
149 static JSValueRef focusWebView(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
150 static JSValueRef setBackingScaleFactor(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
151 static JSValueRef setWindowIsKey(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
152 static JSValueRef setViewSize(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
153 static JSValueRef setAlwaysAcceptCookies(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
154 static JSValueRef setOnlyAcceptFirstPartyCookies(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
155 static JSValueRef overridePreference(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
156 static JSValueRef setPageVisibility(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
157 static JSValueRef resetPageVisibility(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
158 static JSValueRef setHasCustomFullScreenBehavior(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
159 static JSValueRef grantWebNotificationPermission(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
160 static JSValueRef denyWebNotificationPermission(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
161 static JSValueRef removeAllWebNotificationPermissions(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
162 static JSValueRef simulateWebNotificationClick(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
163 static JSValueRef setGeolocationPermission(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
164 static JSValueRef setMockGeolocationPosition(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
165 static JSValueRef setMockGeolocationPositionUnavailableError(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
166 static JSValueRef isGeolocationProviderActive(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
167 static JSValueRef setUserMediaPermission(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
168 static JSValueRef resetUserMediaPermission(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
169 static JSValueRef setUserMediaPersistentPermissionForOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
170 static JSValueRef userMediaPermissionRequestCountForOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
171 static JSValueRef resetUserMediaPermissionRequestCountForOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
172 static JSValueRef setAudioResult(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
173 static JSValueRef callShouldCloseOnWebView(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
174 static JSValueRef queueBackNavigation(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
175 static JSValueRef queueForwardNavigation(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
176 static JSValueRef queueLoad(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
177 static JSValueRef queueLoadHTMLString(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
178 static JSValueRef queueReload(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
179 static JSValueRef queueLoadingScript(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
180 static JSValueRef queueNonLoadingScript(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
181 static JSValueRef setRejectsProtectionSpaceAndContinueForAuthenticationChallenges(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
182 static JSValueRef setHandlesAuthenticationChallenges(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
183 static JSValueRef setShouldLogCanAuthenticateAgainstProtectionSpace(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
184 static JSValueRef setAuthenticationUsername(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
185 static JSValueRef setAuthenticationPassword(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
186 static JSValueRef setAllowsAnySSLCertificate(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
187 static JSValueRef setBlockAllPlugins(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
188 static JSValueRef setPluginSupportedMode(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
189 static JSValueRef failNextNewCodeBlock(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
190 static JSValueRef numberOfDFGCompiles(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
191 static JSValueRef neverInlineFunction(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
192 static JSValueRef installDidBeginSwipeCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
193 static JSValueRef installWillEndSwipeCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
194 static JSValueRef installDidEndSwipeCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
195 static JSValueRef installDidRemoveSwipeSnapshotCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
196 static JSValueRef imageCountInGeneralPasteboard(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
197 static JSValueRef runUIScript(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
198 static JSValueRef clearTestRunnerCallbacks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
199 static JSValueRef accummulateLogsForChannel(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
200 static JSValueRef setAllowedMenuActions(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
201 static JSValueRef installCustomMenuAction(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
202 static JSValueRef setMockGamepadDetails(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
203 static JSValueRef setMockGamepadAxisValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
204 static JSValueRef setMockGamepadButtonValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
205 static JSValueRef connectMockGamepad(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
206 static JSValueRef disconnectMockGamepad(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
207 static JSValueRef installStatisticsDidModifyDataRecordsCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
208 static JSValueRef installStatisticsDidScanDataRecordsCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
209 static JSValueRef installStatisticsDidRunTelemetryCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
210 static JSValueRef setStatisticsDebugMode(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
211 static JSValueRef setStatisticsPrevalentResourceForDebugMode(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
212 static JSValueRef setStatisticsLastSeen(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
213 static JSValueRef setStatisticsPrevalentResource(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
214 static JSValueRef setStatisticsVeryPrevalentResource(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
215 static JSValueRef isStatisticsPrevalentResource(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
216 static JSValueRef isStatisticsVeryPrevalentResource(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
217 static JSValueRef isStatisticsRegisteredAsSubresourceUnder(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
218 static JSValueRef isStatisticsRegisteredAsSubFrameUnder(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
219 static JSValueRef isStatisticsRegisteredAsRedirectingTo(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
220 static JSValueRef setStatisticsHasHadUserInteraction(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
221 static JSValueRef isStatisticsHasHadUserInteraction(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
222 static JSValueRef setStatisticsGrandfathered(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
223 static JSValueRef isStatisticsGrandfathered(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
224 static JSValueRef setStatisticsSubframeUnderTopFrameOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
225 static JSValueRef setStatisticsSubresourceUnderTopFrameOrigin(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
226 static JSValueRef setStatisticsSubresourceUniqueRedirectTo(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
227 static JSValueRef setStatisticsSubresourceUniqueRedirectFrom(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
228 static JSValueRef setStatisticsTopFrameUniqueRedirectTo(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
229 static JSValueRef setStatisticsTopFrameUniqueRedirectFrom(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
230 static JSValueRef setStatisticsCrossSiteLoadWithLinkDecoration(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
231 static JSValueRef setStatisticsTimeToLiveUserInteraction(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
232 static JSValueRef statisticsNotifyObserver(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
233 static JSValueRef statisticsProcessStatisticsAndDataRecords(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
234 static JSValueRef statisticsUpdateCookieBlocking(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
235 static JSValueRef statisticsSubmitTelemetry(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
236 static JSValueRef setStatisticsNotifyPagesWhenDataRecordsWereScanned(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
237 static JSValueRef setStatisticsIsRunningTest(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
238 static JSValueRef setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
239 static JSValueRef setStatisticsNotifyPagesWhenTelemetryWasCaptured(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
240 static JSValueRef setStatisticsMinimumTimeBetweenDataRecordsRemoval(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
241 static JSValueRef setStatisticsGrandfatheringTime(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
242 static JSValueRef setStatisticsMaxStatisticsEntries(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
243 static JSValueRef setStatisticsPruneEntriesDownTo(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
244 static JSValueRef statisticsClearInMemoryAndPersistentStore(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
245 static JSValueRef statisticsClearInMemoryAndPersistentStoreModifiedSinceHours(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
246 static JSValueRef statisticsClearThroughWebsiteDataRemoval(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
247 static JSValueRef statisticsDeleteCookiesForHost(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
248 static JSValueRef isStatisticsHasLocalStorage(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
249 static JSValueRef setStatisticsCacheMaxAgeCap(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
250 static JSValueRef statisticsResetToConsistentState(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
251 static JSValueRef installTextDidChangeInTextFieldCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
252 static JSValueRef installTextFieldDidBeginEditingCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
253 static JSValueRef installTextFieldDidEndEditingCallback(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
254 static JSValueRef setStorageAccessAPIEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
255 static JSValueRef getAllStorageAccessEntries(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
256 static JSValueRef setOpenPanelFiles(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
257 static JSValueRef setOpenPanelFilesMediaIcon(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
258 static JSValueRef setShouldDismissJavaScriptAlertsAsynchronously(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
259 static JSValueRef abortModal(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
260 static JSValueRef setWebRTCMDNSICECandidatesEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
261 static JSValueRef setWebRTCUnifiedPlanEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
262 static JSValueRef setCustomUserAgent(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
263 static JSValueRef setWebAPIStatisticsEnabled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
264 static JSValueRef terminateNetworkProcess(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
265 static JSValueRef terminateServiceWorkerProcess(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
266 static JSValueRef setCanHandleHTTPSServerTrustEvaluation(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
267 static JSValueRef removeAllSessionCredentials(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
268 static JSValueRef getApplicationManifestThen(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
269 static JSValueRef installFakeHelvetica(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
270 static JSValueRef addMockCameraDevice(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
271 static JSValueRef addMockMicrophoneDevice(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
272 static JSValueRef addMockScreenDevice(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
273 static JSValueRef clearMockMediaDevices(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
274 static JSValueRef removeMockMediaDevice(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
275 static JSValueRef resetMockMediaDevices(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
276 static JSValueRef injectUserScript(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
277 static JSValueRef sendDisplayConfigurationChangedMessageForTesting(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
278 static JSValueRef setWebAuthenticationMockConfiguration(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
279 static JSValueRef addTestKeyToKeychain(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
280 static JSValueRef cleanUpKeychain(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
281 static JSValueRef keyExistsInKeychain(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
282 static JSValueRef clearAdClickAttribution(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
283 static JSValueRef clearAdClickAttributionsThroughWebsiteDataRemoval(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
284 static JSValueRef setAdClickAttributionOverrideTimerForTesting(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
285 static JSValueRef setAdClickAttributionConversionURLForTesting(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
286 static JSValueRef markAdClickAttributionsAsExpiredForTesting(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
287
288 // Attributes
289
290 static JSValueRef isWebKit2(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
291 static JSValueRef timeout(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
292 static JSValueRef globalFlag(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
293 static bool setGlobalFlag(JSContextRef, JSObjectRef, JSStringRef, JSValueRef, JSValueRef*);
294 static JSValueRef databaseDefaultQuota(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
295 static bool setDatabaseDefaultQuota(JSContextRef, JSObjectRef, JSStringRef, JSValueRef, JSValueRef*);
296 static JSValueRef databaseMaxQuota(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
297 static bool setDatabaseMaxQuota(JSContextRef, JSObjectRef, JSStringRef, JSValueRef, JSValueRef*);
298 static JSValueRef inspectorTestStubURL(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
299 static JSValueRef didReceiveServerRedirectForProvisionalNavigation(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
300 static JSValueRef isDoingMediaCapture(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
301 static JSValueRef secureEventInputIsEnabled(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
302 static JSValueRef canDoServerTrustEvaluationInNetworkProcess(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
303 static JSValueRef serverTrustEvaluationCallbackCallsCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
304 static JSValueRef didCancelClientRedirect(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
305 static JSValueRef userScriptInjectedCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
306};
307
308TestRunner* toTestRunner(JSContextRef, JSValueRef);
309
310} // namespace WTR
311
312#endif // JSTestRunner_h
313