Wrap legacy WebRTC API in runtime flag
[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     void setCookieStoragePartitioningEnabled(boolean enabled);
167
168     void overridePreference(DOMString preference, DOMString value);
169
170     // Page Visibility API
171     void setPageVisibility(DOMString state);
172     void resetPageVisibility();
173
174     // Control full screen behavior.
175     void setHasCustomFullScreenBehavior(boolean value);
176
177     // Web notifications support
178     void grantWebNotificationPermission(DOMString origin);
179     void denyWebNotificationPermission(DOMString origin);
180     void removeAllWebNotificationPermissions();
181     void simulateWebNotificationClick(object notification);
182
183     // Geolocation
184     void setGeolocationPermission(boolean value);
185     void setMockGeolocationPosition(double latitude, double longitude, double accuracy, optional object altitude, optional object altitudeAccuracy, optional object heading, optional object speed);
186     void setMockGeolocationPositionUnavailableError(DOMString errorMessage);
187     boolean isGeolocationProviderActive();
188
189     // MediaStream
190     void setUserMediaPermission(boolean value);
191     void setUserMediaPersistentPermissionForOrigin(boolean permission, DOMString origin, DOMString parentOrigin);
192     unsigned long userMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
193     void resetUserMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
194
195     // Audio testing.
196     [PassContext] void setAudioResult(object data);
197
198     boolean callShouldCloseOnWebView();
199
200     // Work queue.
201     void queueBackNavigation(unsigned long howFarBackward);
202     void queueForwardNavigation(unsigned long howFarForward);
203     void queueLoad(DOMString url, DOMString target, optional boolean shouldOpenExternalURLs);
204     void queueLoadHTMLString(DOMString content, optional DOMString baseURL, optional DOMString unreachableURL);
205     void queueReload();
206     void queueLoadingScript(DOMString script);
207     void queueNonLoadingScript(DOMString script);
208
209     // Authentication
210     void setRejectsProtectionSpaceAndContinueForAuthenticationChallenges(boolean value);
211     void setHandlesAuthenticationChallenges(boolean value);
212     void setShouldLogCanAuthenticateAgainstProtectionSpace(boolean value);
213     void setAuthenticationUsername(DOMString username);
214     void setAuthenticationPassword(DOMString password);
215
216     void setAllowsAnySSLCertificate(boolean value);
217
218     // Secure text input mode (Mac only)
219     readonly attribute boolean secureEventInputIsEnabled;
220     
221     // Override plugin load policy.
222     void setBlockAllPlugins(boolean shouldBlock);
223     
224     // Hooks to the JSC compiler.
225     object failNextNewCodeBlock();
226     object numberOfDFGCompiles(object function);
227     object neverInlineFunction(object function);
228
229     // Swipe gestures
230     void installDidBeginSwipeCallback(object callback);
231     void installWillEndSwipeCallback(object callback);
232     void installDidEndSwipeCallback(object callback);
233     void installDidRemoveSwipeSnapshotCallback(object callback);
234
235     unsigned long imageCountInGeneralPasteboard();
236
237     // UI Process Testing
238     void runUIScript(DOMString script, object callback);
239
240     void clearTestRunnerCallbacks();
241
242     void accummulateLogsForChannel(DOMString channel);
243
244     // Gamepad
245     void setMockGamepadDetails(unsigned long index, DOMString id, unsigned long axisCount, unsigned long buttonCount);
246     void setMockGamepadAxisValue(unsigned long index, unsigned long axisIndex, double value);
247     void setMockGamepadButtonValue(unsigned long index, unsigned long buttonIndex, double value);
248     void connectMockGamepad(unsigned long index);
249     void disconnectMockGamepad(unsigned long index);
250
251     // Resource Load Statistics
252     void installStatisticsDidModifyDataRecordsCallback(object callback);
253     void setStatisticsPrevalentResource(DOMString hostName, boolean value);
254     boolean isStatisticsPrevalentResource(DOMString hostName);
255     void setStatisticsHasHadUserInteraction(DOMString hostName, boolean value);
256     boolean isStatisticsHasHadUserInteraction(DOMString hostName);
257     void setStatisticsSubframeUnderTopFrameOrigin(DOMString hostName, DOMString topFrameHostName);
258     void setStatisticsSubresourceUnderTopFrameOrigin(DOMString hostName, DOMString topFrameHostName);
259     void setStatisticsSubresourceUniqueRedirectTo(DOMString hostName, DOMString hostNameRedirectedTo);
260     void setStatisticsTimeToLiveUserInteraction(double seconds);
261     void statisticsFireDataModificationHandler();
262     void statisticsFireShouldPartitionCookiesHandler(DOMString hostName, boolean value);
263     void setStatisticsNotifyPagesWhenDataRecordsWereScanned(boolean value);
264     void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(boolean value);
265     void setStatisticsMinimumTimeBetweeenDataRecordsRemoval(double seconds);
266     void statisticsClearInMemoryAndPersistentStore();
267     void statisticsResetToConsistentState();
268
269     // Open panel
270     void setOpenPanelFiles(object filesArray);
271
272     void setWebRTCLegacyAPIEnabled(boolean value);
273 };