Multiple File Input Icon Set Regardless of File List
[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 notifyDone();
35     double preciseTime(); // seconds since the epoch
36     readonly attribute double timeout; // milliseconds
37
38     // Downloads.
39     void waitUntilDownloadFinished();
40     void setShouldLogDownloadCallbacks(boolean value);
41
42     // Other dumping.
43     void dumpBackForwardList();
44     void dumpChildFrameScrollPositions();
45     void dumpEditingCallbacks();
46     void dumpSelectionRect();
47     void dumpStatusCallbacks();
48     void dumpTitleChanges();
49     void dumpFullScreenCallbacks();
50     void dumpFrameLoadCallbacks();
51     void dumpProgressFinishedCallback();
52     void dumpResourceLoadCallbacks();
53     void dumpResourceResponseMIMETypes();
54     void dumpWillCacheResponse();
55     void dumpApplicationCacheDelegateCallbacks();
56     void dumpDatabaseCallbacks();
57     void dumpDOMAsWebArchive();
58     void dumpPolicyDelegateCallbacks();
59     void dumpResourceLoadStatistics();
60     void dumpAdClickAttribution();
61
62     void clearDOMCaches();
63     void clearDOMCache(DOMString origin);
64     boolean hasDOMCache(DOMString origin);
65     unsigned long domCacheSize(DOMString origin);
66     void setAllowStorageQuotaIncrease(boolean value);
67
68     // Special options.
69     void keepWebHistory();
70     void setAcceptsEditing(boolean value);
71     void setCanOpenWindows();
72     void setCloseRemainingWindowsWhenComplete(boolean value);
73     void setXSSAuditorEnabled(boolean value);
74     void setAllowUniversalAccessFromFileURLs(boolean value);
75     void setAllowFileAccessFromFileURLs(boolean value);
76     void setNeedsStorageAccessFromFileURLsQuirk(boolean value);
77     void setPluginsEnabled(boolean value);
78     void setJavaScriptCanAccessClipboard(boolean value);
79     void setPrivateBrowsingEnabled(boolean value);
80     void setUseDashboardCompatibilityMode(boolean value);
81     void setPopupBlockingEnabled(boolean value);
82     void setAuthorAndUserStylesEnabled(boolean value);
83     void setCustomPolicyDelegate(boolean enabled, boolean permissive);
84     void addOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains);
85     void removeOriginAccessWhitelistEntry(DOMString sourceOrigin, DOMString destinationProtocol, DOMString destinationHost, boolean allowDestinationSubdomains);
86     void setUserStyleSheetEnabled(boolean value);
87     void setUserStyleSheetLocation(DOMString location);
88     void setSpatialNavigationEnabled(boolean value);
89     void setTabKeyCyclesThroughElements(boolean enabled);
90     void setSerializeHTTPLoads();
91     void dispatchPendingLoadRequests();
92     void setCacheModel(long model);
93     void setAsynchronousSpellCheckingEnabled(boolean value);
94     void setPrinting();
95     void setShouldDecideNavigationPolicyAfterDelay(boolean value);
96     void setShouldDecideResponsePolicyAfterDelay(boolean value);
97     void setNavigationGesturesEnabled(boolean value);
98     void setIgnoresViewportScaleLimits(boolean value);
99     void setShouldDownloadUndisplayableMIMETypes(boolean value);
100
101     // Special DOM functions.
102     void clearBackForwardList();
103     void execCommand(DOMString name, DOMString showUI, DOMString value);
104     boolean isCommandEnabled(DOMString name);
105     unsigned long windowCount();
106
107     // Device Orientation Motion.
108     void setShouldAllowDeviceOrientationAndMotionAccess(boolean value);
109
110     // Special DOM variables.
111     attribute boolean globalFlag;
112
113     // Repaint testing.
114     void testRepaint();
115     void repaintSweepHorizontally();
116     void display();
117     void displayAndTrackRepaints();
118
119     // Failed load condition testing
120     void forceImmediateCompletion();
121
122     // Printing
123     boolean isPageBoxVisible(long pageIndex);
124
125     void dumpAllHTTPRedirectedResponseHeaders();
126
127     [PassContext] void setValueForUser(object element, DOMString value);
128
129     // UserContent testing.
130     void addUserScript(DOMString source, boolean runAtStart, boolean allFrames);
131     void addUserStyleSheet(DOMString source, boolean allFrames);
132
133     // Local storage API
134     void clearAllDatabases();
135     void setDatabaseQuota(unsigned long long quota);
136     DOMString pathToLocalResource(DOMString url);
137
138     attribute double databaseDefaultQuota;
139     attribute double databaseMaxQuota;
140
141     // IndexedDB API
142     void setIDBPerOriginQuota(unsigned long long quota);
143
144     // Application Cache API
145     void clearAllApplicationCaches();
146     void setAppCacheMaximumSize(unsigned long long size);
147     long long applicationCacheDiskUsageForOrigin(DOMString origin);
148     void clearApplicationCacheForOrigin(DOMString name);
149     void disallowIncreaseForApplicationCacheQuota();
150     object originsWithApplicationCache();
151
152     // Text search testing.
153     boolean findString(DOMString target, object optionsArray);
154     void findStringMatchesInPage(DOMString target, object optionsArray);
155     void replaceFindMatchesAtIndices(object matchIndicesArray, DOMString replacementText, boolean selectionOnly);
156
157     // Evaluating script in a special context.
158     [PassContext] void evaluateScriptInIsolatedWorld(unsigned long worldID, DOMString script);
159
160     // For Web Inspector tests
161     void showWebInspector();
162     void closeWebInspector();
163     void evaluateInWebInspector(DOMString script);
164     readonly attribute DOMString inspectorTestStubURL;
165
166     void setPOSIXLocale(DOMString locale);
167
168     void setTextDirection(DOMString direction);
169
170     void setWillSendRequestReturnsNull(boolean flag);
171     void setWillSendRequestReturnsNullOnRedirect(boolean flag);
172     void setWillSendRequestAddsHTTPBody(DOMString body);
173     
174     void setShouldStayOnPageAfterHandlingBeforeUnload(boolean flag);
175
176     void setStopProvisionalFrameLoads();
177
178     readonly attribute boolean didReceiveServerRedirectForProvisionalNavigation;
179     void clearDidReceiveServerRedirectForProvisionalNavigation();
180
181     // Focus testing.
182     void addChromeInputField(object callback);
183     void removeChromeInputField(object callback);
184     void focusWebView(object callback);
185
186     // Window/view state
187     void setBackingScaleFactor(double backingScaleFactor, object callback);
188
189     void setWindowIsKey(boolean isKey);
190     void setViewSize(double width, double height);
191
192     // Cookies testing
193     void setAlwaysAcceptCookies(boolean accept);
194     void setOnlyAcceptFirstPartyCookies(boolean accept);
195
196     void overridePreference(DOMString preference, DOMString value);
197
198     // Page Visibility API
199     void setPageVisibility(DOMString state);
200     void resetPageVisibility();
201
202     // Control full screen behavior.
203     void setHasCustomFullScreenBehavior(boolean value);
204
205     // Web notifications support
206     void grantWebNotificationPermission(DOMString origin);
207     void denyWebNotificationPermission(DOMString origin);
208     void removeAllWebNotificationPermissions();
209     void simulateWebNotificationClick(object notification);
210
211     // Geolocation
212     void setGeolocationPermission(boolean value);
213     void setMockGeolocationPosition(double latitude, double longitude, double accuracy, optional object altitude, optional object altitudeAccuracy, optional object heading, optional object speed, optional object floorLevel);
214     void setMockGeolocationPositionUnavailableError(DOMString errorMessage);
215     boolean isGeolocationProviderActive();
216
217     // MediaStream
218     void setUserMediaPermission(boolean value);
219     void resetUserMediaPermission();
220     void setUserMediaPersistentPermissionForOrigin(boolean permission, DOMString origin, DOMString parentOrigin);
221     unsigned long userMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
222     void resetUserMediaPermissionRequestCountForOrigin(DOMString origin, DOMString parentOrigin);
223     readonly attribute boolean isDoingMediaCapture;
224
225     // Audio testing.
226     [PassContext] void setAudioResult(object data);
227
228     boolean callShouldCloseOnWebView();
229
230     // Work queue.
231     void queueBackNavigation(unsigned long howFarBackward);
232     void queueForwardNavigation(unsigned long howFarForward);
233     void queueLoad(DOMString url, DOMString target, optional boolean shouldOpenExternalURLs);
234     void queueLoadHTMLString(DOMString content, optional DOMString baseURL, optional DOMString unreachableURL);
235     void queueReload();
236     void queueLoadingScript(DOMString script);
237     void queueNonLoadingScript(DOMString script);
238
239     // Authentication
240     void setRejectsProtectionSpaceAndContinueForAuthenticationChallenges(boolean value);
241     void setHandlesAuthenticationChallenges(boolean value);
242     void setShouldLogCanAuthenticateAgainstProtectionSpace(boolean value);
243     void setAuthenticationUsername(DOMString username);
244     void setAuthenticationPassword(DOMString password);
245
246     void setAllowsAnySSLCertificate(boolean value);
247
248     // Secure text input mode (Mac only)
249     readonly attribute boolean secureEventInputIsEnabled;
250     
251     // Override plugin load policy.
252     void setBlockAllPlugins(boolean shouldBlock);
253     void setPluginSupportedMode(DOMString mode);
254
255     // Hooks to the JSC compiler.
256     object failNextNewCodeBlock();
257     object numberOfDFGCompiles(object function);
258     object neverInlineFunction(object function);
259
260     // Swipe gestures
261     void installDidBeginSwipeCallback(object callback);
262     void installWillEndSwipeCallback(object callback);
263     void installDidEndSwipeCallback(object callback);
264     void installDidRemoveSwipeSnapshotCallback(object callback);
265
266     unsigned long imageCountInGeneralPasteboard();
267
268     // UI Process Testing
269     void runUIScript(DOMString script, object callback);
270
271     void clearTestRunnerCallbacks();
272
273     void accummulateLogsForChannel(DOMString channel);
274
275     // Contextual menu actions
276     void setAllowedMenuActions(object actions);
277     void installCustomMenuAction(DOMString name, boolean dismissesAutomatically, object callback);
278
279     // Gamepad
280     void setMockGamepadDetails(unsigned long index, DOMString id, unsigned long axisCount, unsigned long buttonCount);
281     void setMockGamepadAxisValue(unsigned long index, unsigned long axisIndex, double value);
282     void setMockGamepadButtonValue(unsigned long index, unsigned long buttonIndex, double value);
283     void connectMockGamepad(unsigned long index);
284     void disconnectMockGamepad(unsigned long index);
285
286     // Resource Load Statistics
287     void installStatisticsDidModifyDataRecordsCallback(object callback);
288     void installStatisticsDidScanDataRecordsCallback(object callback);
289     void installStatisticsDidRunTelemetryCallback(object callback);
290     void setStatisticsDebugMode(boolean value, object completionHandler);
291     void setStatisticsPrevalentResourceForDebugMode(DOMString hostName, object completionHandler);
292     void setStatisticsLastSeen(DOMString hostName, double seconds, object completionHandler);
293     void setStatisticsPrevalentResource(DOMString hostName, boolean value, object completionHandler);
294     void setStatisticsVeryPrevalentResource(DOMString hostName, boolean value, object completionHandler);
295     boolean isStatisticsPrevalentResource(DOMString hostName);
296     boolean isStatisticsVeryPrevalentResource(DOMString hostName);
297     boolean isStatisticsRegisteredAsSubresourceUnder(DOMString subresourceHost, DOMString topFrameHost);
298     boolean isStatisticsRegisteredAsSubFrameUnder(DOMString subFrameHost, DOMString topFrameHost);
299     boolean isStatisticsRegisteredAsRedirectingTo(DOMString hostRedirectedFrom, DOMString hostRedirectedTo);
300     void setStatisticsHasHadUserInteraction(DOMString hostName, boolean value, object completionHandler);
301     boolean isStatisticsHasHadUserInteraction(DOMString hostName);
302     void setStatisticsGrandfathered(DOMString hostName, boolean value);
303     boolean isStatisticsGrandfathered(DOMString hostName);
304     void setStatisticsSubframeUnderTopFrameOrigin(DOMString hostName, DOMString topFrameHostName);
305     void setStatisticsSubresourceUnderTopFrameOrigin(DOMString hostName, DOMString topFrameHostName);
306     void setStatisticsSubresourceUniqueRedirectTo(DOMString hostName, DOMString hostNameRedirectedTo);
307     void setStatisticsSubresourceUniqueRedirectFrom(DOMString hostName, DOMString hostNameRedirectedTo);
308     void setStatisticsTopFrameUniqueRedirectTo(DOMString hostName, DOMString hostNameRedirectedTo);
309     void setStatisticsTopFrameUniqueRedirectFrom(DOMString hostName, DOMString hostNameRedirectedTo);
310     void setStatisticsCrossSiteLoadWithLinkDecoration(DOMString fromHost, DOMString toHost);
311     void setStatisticsTimeToLiveUserInteraction(double seconds);
312     void statisticsNotifyObserver();
313     void statisticsProcessStatisticsAndDataRecords();
314     void statisticsUpdateCookieBlocking(object completionHandler);
315     void statisticsSubmitTelemetry();
316     void setStatisticsNotifyPagesWhenDataRecordsWereScanned(boolean value);
317     void setStatisticsIsRunningTest(boolean value);
318     void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(boolean value);
319     void setStatisticsNotifyPagesWhenTelemetryWasCaptured(boolean value);
320     void setStatisticsMinimumTimeBetweenDataRecordsRemoval(double seconds);
321     void setStatisticsGrandfatheringTime(double seconds);
322     void setStatisticsMaxStatisticsEntries(unsigned long entries);
323     void setStatisticsPruneEntriesDownTo(unsigned long entries);
324     void statisticsClearInMemoryAndPersistentStore(object callback);
325     void statisticsClearInMemoryAndPersistentStoreModifiedSinceHours(unsigned long hours, object callback);
326     void statisticsClearThroughWebsiteDataRemoval(object callback);
327     void statisticsDeleteCookiesForHost(DOMString hostName, boolean includeHttpOnlyCookies);
328     boolean isStatisticsHasLocalStorage(DOMString hostName);
329     void setStatisticsCacheMaxAgeCap(double seconds);
330     void statisticsResetToConsistentState(object completionHandler);
331
332     // Injected bundle form client.
333     void installTextDidChangeInTextFieldCallback(object callback);
334     void installTextFieldDidBeginEditingCallback(object callback);
335     void installTextFieldDidEndEditingCallback(object callback);
336
337     // Storage Access API
338     void setStorageAccessAPIEnabled(boolean enabled);
339     void getAllStorageAccessEntries(object callback);
340
341     // Open panel
342     void setOpenPanelFiles(object filesArray);
343     void setOpenPanelFilesMediaIcon(object mediaIcon);
344
345     // Modal alerts
346     void setShouldDismissJavaScriptAlertsAsynchronously(boolean value);
347
348     void setWebRTCMDNSICECandidatesEnabled(boolean value);
349     void setWebRTCUnifiedPlanEnabled(boolean value);
350     void setCustomUserAgent(DOMString userAgent);
351
352     void setWebAPIStatisticsEnabled(boolean value);
353
354     void terminateNetworkProcess();
355     void terminateServiceWorkerProcess();
356
357     void setCanHandleHTTPSServerTrustEvaluation(boolean canHandle);
358     readonly attribute boolean canDoServerTrustEvaluationInNetworkProcess;
359     readonly attribute unsigned long serverTrustEvaluationCallbackCallsCount;
360
361     readonly attribute boolean didCancelClientRedirect;
362
363     void removeAllSessionCredentials(object callback);
364
365     void getApplicationManifestThen(object callback);
366
367     void installFakeHelvetica(DOMString configuration);
368
369     void addMockCameraDevice(DOMString persistentId, DOMString label);
370     void addMockMicrophoneDevice(DOMString persistentId, DOMString label);
371     void addMockScreenDevice(DOMString persistentId, DOMString label);
372     void clearMockMediaDevices();
373     void removeMockMediaDevice(DOMString persistentId);
374     void resetMockMediaDevices();
375
376     void injectUserScript(DOMString string);
377     readonly attribute unsigned long userScriptInjectedCount;
378
379     void sendDisplayConfigurationChangedMessageForTesting();
380
381     // WebAuthN
382     void setWebAuthenticationMockConfiguration(object configuration);
383     void addTestKeyToKeychain(DOMString privateKeyBase64, DOMString attrLabel, DOMString applicationTagBase64);
384     void cleanUpKeychain(DOMString attrLabel);
385     boolean keyExistsInKeychain(DOMString attrLabel, DOMString applicationTagBase64);
386
387     // Ad Click Attribution
388     void clearAdClickAttribution();
389     void setAdClickAttributionOverrideTimerForTesting(boolean value);
390     void setAdClickAttributionConversionURLForTesting(DOMString url);
391 };