Rolling out r212757
[WebKit-https.git] / Tools / WebKitTestRunner / InjectedBundle / Bindings / TestRunner.idl
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
26 interface TestRunner {
27     readonly attribute boolean isWebKit2;
28
29     // The basics.
30     void dumpAsText(boolean dumpPixels);
31     void dumpChildFramesAsText();
32     void waitForPolicyDelegate();
33     void waitUntilDone();
34     void waitUntilDownloadFinished();
35     void notifyDone();
36     double preciseTime();
37     readonly attribute double timeout;
38
39     // Other dumping.
40     void dumpBackForwardList();
41     void dumpChildFrameScrollPositions();
42     void dumpEditingCallbacks();
43     void dumpSelectionRect();
44     void dumpStatusCallbacks();
45     void dumpTitleChanges();
46     void dumpFullScreenCallbacks();
47     void dumpFrameLoadCallbacks();
48     void dumpProgressFinishedCallback();
49     void dumpResourceLoadCallbacks();
50     void dumpResourceResponseMIMETypes();
51     void dumpWillCacheResponse();
52     void dumpApplicationCacheDelegateCallbacks();
53     void dumpDatabaseCallbacks();
54     void dumpDOMAsWebArchive();
55     void dumpPolicyDelegateCallbacks();
56
57     // Special options.
58     void keepWebHistory();
59     void setAcceptsEditing(boolean value);
60     void setCanOpenWindows(boolean value);
61     void setCloseRemainingWindowsWhenComplete(boolean value);
62     void setXSSAuditorEnabled(boolean value);
63     void setAllowUniversalAccessFromFileURLs(boolean value);
64     void setAllowFileAccessFromFileURLs(boolean value);
65     void setNeedsStorageAccessFromFileURLsQuirk(boolean value);
66     void setPluginsEnabled(boolean value);
67     void setJavaScriptCanAccessClipboard(boolean value);
68     void setPrivateBrowsingEnabled(boolean value);
69     void setUseDashboardCompatibilityMode(boolean value);
70     void setPopupBlockingEnabled(boolean value);
71     void setAuthorAndUserStylesEnabled(boolean value);
72     void setCustomPolicyDelegate(boolean enabled, boolean permissive);
73     void addOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains);
74     void removeOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains);
75     void setUserStyleSheetEnabled(boolean value);
76     void setUserStyleSheetLocation(DOMString location);
77     void setSpatialNavigationEnabled(boolean value);
78     void setTabKeyCyclesThroughElements(boolean enabled);
79     void setSerializeHTTPLoads();
80     void dispatchPendingLoadRequests();
81     void setCacheModel(long model);
82     void setAsynchronousSpellCheckingEnabled(boolean value);
83     void setPrinting();
84     void setShouldDecideNavigationPolicyAfterDelay(boolean value);
85     void setNavigationGesturesEnabled(boolean value);
86     void setIgnoresViewportScaleLimits(boolean value);
87     void setShouldDownloadUndisplayableMIMETypes(boolean value);
88
89     // Special DOM functions.
90     void clearBackForwardList();
91     void execCommand(DOMString name, DOMString argument);
92     boolean isCommandEnabled(DOMString name);
93     unsigned long windowCount();
94
95     // Special DOM variables.
96     attribute boolean globalFlag;
97
98     // Repaint testing.
99     void testRepaint();
100     void repaintSweepHorizontally();
101     void display();
102
103     // Printing
104     boolean isPageBoxVisible(long pageIndex);
105
106     [PassContext] void setValueForUser(object element, DOMString value);
107
108     // UserContent testing.
109     void addUserScript(DOMString source, boolean runAtStart, boolean allFrames);
110     void addUserStyleSheet(DOMString source, boolean allFrames);
111
112     // Local storage API
113     void clearAllDatabases();
114     void setDatabaseQuota(unsigned long long quota);
115     DOMString pathToLocalResource(DOMString url);
116
117     attribute double databaseDefaultQuota;
118     attribute double databaseMaxQuota;
119
120     // Application Cache API
121     void clearAllApplicationCaches();
122     void setAppCacheMaximumSize(unsigned long long size);
123     long long applicationCacheDiskUsageForOrigin(DOMString origin);
124     void clearApplicationCacheForOrigin(DOMString name);
125     void disallowIncreaseForApplicationCacheQuota();
126     object originsWithApplicationCache();
127
128     // Text search testing.
129     boolean findString(DOMString target, object optionsArray);
130
131     // Evaluating script in a special context.
132     [PassContext] void evaluateScriptInIsolatedWorld(unsigned long worldID, DOMString script);
133
134     // For Web Inspector tests
135     void showWebInspector();
136     void closeWebInspector();
137     void evaluateInWebInspector(DOMString script);
138     readonly attribute DOMString inspectorTestStubURL;
139
140     void setPOSIXLocale(DOMString locale);
141
142     void setTextDirection(DOMString direction);
143
144     void setWillSendRequestReturnsNull(boolean flag);
145     void setWillSendRequestReturnsNullOnRedirect(boolean flag);
146     void setWillSendRequestAddsHTTPBody(DOMString body);
147     
148     void setShouldStayOnPageAfterHandlingBeforeUnload(boolean flag);
149
150     void setDefersLoading(boolean flag);
151     void setStopProvisionalFrameLoads();
152
153     // Focus testing.
154     void addChromeInputField(object callback);
155     void removeChromeInputField(object callback);
156     void focusWebView(object callback);
157
158     // Window/view state
159     void setBackingScaleFactor(double backingScaleFactor, object callback);
160
161     void setWindowIsKey(boolean isKey);
162     void setViewSize(double width, double height);
163
164     // Cookies testing
165     void setAlwaysAcceptCookies(boolean accept);
166
167     void overridePreference(DOMString preference, DOMString value);
168
169     // Page Visibility API
170     void setPageVisibility(DOMString state);
171     void resetPageVisibility();
172
173     // Control full screen behavior.
174     void setHasCustomFullScreenBehavior(boolean value);
175
176     // Web notifications support
177     void grantWebNotificationPermission(DOMString origin);
178     void denyWebNotificationPermission(DOMString origin);
179     void removeAllWebNotificationPermissions();
180     void simulateWebNotificationClick(object notification);
181
182     // Geolocation
183     void setGeolocationPermission(boolean value);
184     void setMockGeolocationPosition(double latitude, double longitude, double accuracy, optional object altitude, optional object altitudeAccuracy, optional object heading, optional object speed);
185     void setMockGeolocationPositionUnavailableError(DOMString errorMessage);
186     boolean isGeolocationProviderActive();
187
188     // MediaStream
189     void setUserMediaPermission(boolean value);
190     void setUserMediaPersistentPermissionForOrigin(boolean permission, DOMString origin, DOMString parentOrigin);
191     unsigned long userMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
192     void resetUserMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
193
194     // Audio testing.
195     [PassContext] void setAudioResult(object data);
196
197     boolean callShouldCloseOnWebView();
198
199     // Work queue.
200     void queueBackNavigation(unsigned long howFarBackward);
201     void queueForwardNavigation(unsigned long howFarForward);
202     void queueLoad(DOMString url, DOMString target, optional boolean shouldOpenExternalURLs);
203     void queueLoadHTMLString(DOMString content, optional DOMString baseURL, optional DOMString unreachableURL);
204     void queueReload();
205     void queueLoadingScript(DOMString script);
206     void queueNonLoadingScript(DOMString script);
207
208     // Authentication
209     void setRejectsProtectionSpaceAndContinueForAuthenticationChallenges(boolean value);
210     void setHandlesAuthenticationChallenges(boolean value);
211     void setShouldLogCanAuthenticateAgainstProtectionSpace(boolean value);
212     void setAuthenticationUsername(DOMString username);
213     void setAuthenticationPassword(DOMString password);
214
215     void setAllowsAnySSLCertificate(boolean value);
216
217     // Secure text input mode (Mac only)
218     readonly attribute boolean secureEventInputIsEnabled;
219     
220     // Override plugin load policy.
221     void setBlockAllPlugins(boolean shouldBlock);
222     
223     // Hooks to the JSC compiler.
224     object failNextNewCodeBlock();
225     object numberOfDFGCompiles(object function);
226     object neverInlineFunction(object function);
227
228     // Swipe gestures
229     void installDidBeginSwipeCallback(object callback);
230     void installWillEndSwipeCallback(object callback);
231     void installDidEndSwipeCallback(object callback);
232     void installDidRemoveSwipeSnapshotCallback(object callback);
233
234     unsigned long imageCountInGeneralPasteboard();
235
236     // UI Process Testing
237     void runUIScript(DOMString script, object callback);
238
239     void clearTestRunnerCallbacks();
240
241     void accummulateLogsForChannel(DOMString channel);
242
243     // Gamepad
244     void setMockGamepadDetails(unsigned long index, DOMString id, unsigned long axisCount, unsigned long buttonCount);
245     void setMockGamepadAxisValue(unsigned long index, unsigned long axisIndex, double value);
246     void setMockGamepadButtonValue(unsigned long index, unsigned long buttonIndex, double value);
247     void connectMockGamepad(unsigned long index);
248     void disconnectMockGamepad(unsigned long index);
249
250     // Resource Load Statistics
251     void installStatisticsDidModifyDataRecordsCallback(object callback);
252     void setStatisticsPrevalentResource(DOMString hostName, boolean value);
253     boolean isStatisticsPrevalentResource(DOMString hostName);
254     void setStatisticsHasHadUserInteraction(DOMString hostName, boolean value);
255     boolean isStatisticsHasHadUserInteraction(DOMString hostName);
256     void setStatisticsTimeToLiveUserInteraction(double seconds);
257     void statisticsFireDataModificationHandler();
258     void setStatisticsNotifyPagesWhenDataRecordsWereScanned(boolean value);
259     void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(boolean value);
260     void setStatisticsMinimumTimeBetweeenDataRecordsRemoval(double seconds);
261     void statisticsResetToConsistentState();
262 };