7610578d0667c8f713d8d1d07495bf590911f654
[WebKit.git] / Source / WebCore / testing / Internals.idl
1 /*
2  * Copyright (C) 2012 Google Inc. All rights reserved.
3  * Copyright (C) 2013-2015 Apple Inc. All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1.  Redistributions of source code must retain the above copyright
10  *     notice, this list of conditions and the following disclaimer.
11  * 2.  Redistributions in binary form must reproduce the above copyright
12  *     notice, this list of conditions and the following disclaimer in the
13  *     documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
19  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26
27 enum PageOverlayType {
28     "view",
29     "document"
30 };
31
32 // These map to ResourceRequestCachePolicy.
33 enum CachePolicy {
34     "UseProtocolCachePolicy",
35     "ReloadIgnoringCacheData",
36     "ReturnCacheDataElseLoad",
37     "ReturnCacheDataDontLoad"
38 };
39
40 // FIXME: Strings in an enum should not have the name of the enum as a prefix.
41 enum ResourceLoadPriority {
42     "ResourceLoadPriorityVeryLow",
43     "ResourceLoadPriorityLow",
44     "ResourceLoadPriorityMedium",
45     "ResourceLoadPriorityHigh",
46     "ResourceLoadPriorityVeryHigh"
47 };
48
49 [Conditional=MEDIA_SESSION] enum MediaSessionInterruptingCategory {
50     "content",
51     "transient",
52     "transient-solo"
53 };
54
55 [Conditional=MEDIA_SESSION] enum MediaControlEvent {
56     "play-pause",
57     "next-track",
58     "previous-track"
59 };
60
61 // FIXME: Strings in an enum should not have the name of the enum as a prefix.
62 enum AutoFillButtonType {
63     "AutoFillButtonTypeNone",
64     "AutoFillButtonTypeContacts",
65     "AutoFillButtonTypeCredentials"
66 };
67
68 enum UserInterfaceLayoutDirection {
69     "LTR",
70     "RTL"
71 };
72
73 [
74     ExportMacro=WEBCORE_TESTSUPPORT_EXPORT,
75     NoInterfaceObject,
76 ] interface Internals {
77     DOMString address(Node node);
78     boolean nodeNeedsStyleRecalc(Node node);
79     DOMString styleChangeType(Node node);
80     DOMString description(any value);
81
82     // Animated image pausing testing.
83     boolean hasPausedImageAnimations(Element element);
84
85     [MayThrowLegacyException] DOMString elementRenderTreeAsText(Element element);
86     boolean isPreloaded(DOMString url);
87     boolean isLoadingFromMemoryCache(DOMString url);
88     DOMString xhrResponseSource(XMLHttpRequest xhr);
89     boolean isSharingStyleSheetContents(HTMLLinkElement a, HTMLLinkElement b);
90     boolean isStyleSheetLoadingSubresources(HTMLLinkElement link);
91     void clearMemoryCache();
92     void pruneMemoryCacheToSize(long size);
93     long memoryCacheSize();
94     void setOverrideCachePolicy(CachePolicy policy);
95     void setOverrideResourceLoadPriority(ResourceLoadPriority priority);
96     void setStrictRawResourceValidationPolicyDisabled(boolean disabled);
97
98     void clearPageCache();
99     unsigned long pageCacheSize();
100
101     CSSStyleDeclaration computedStyleIncludingVisitedInfo(Element element);
102
103     [MayThrowLegacyException] Node ensureShadowRoot(Element host);
104     Node ensureUserAgentShadowRoot(Element host);
105     [MayThrowLegacyException] Node createShadowRoot(Element host);
106     Node shadowRoot(Element host);
107
108     [MayThrowLegacyException] DOMString shadowRootType(Node root);
109     DOMString shadowPseudoId(Element element);
110     void setShadowPseudoId(Element element, DOMString id);
111     Node treeScopeRootNode(Node node);
112     Node parentTreeScope(Node node);
113
114     // Spatial Navigation testing
115     [MayThrowLegacyException] unsigned long lastSpatialNavigationCandidateCount();
116
117     // CSS Animation testing.
118     unsigned long numberOfActiveAnimations();
119     [MayThrowLegacyException] void suspendAnimations();
120     [MayThrowLegacyException] void resumeAnimations();
121     [MayThrowLegacyException] boolean animationsAreSuspended();
122     [MayThrowLegacyException] boolean pauseAnimationAtTimeOnElement(DOMString animationName, unrestricted double pauseTime, Element element);
123     [MayThrowLegacyException] boolean pauseAnimationAtTimeOnPseudoElement(DOMString animationName, unrestricted double pauseTime, Element element, DOMString pseudoId);
124
125     // CSS Transition testing.
126     [MayThrowLegacyException] boolean pauseTransitionAtTimeOnElement(DOMString propertyName, unrestricted double pauseTime, Element element);
127     [MayThrowLegacyException] boolean pauseTransitionAtTimeOnPseudoElement(DOMString property, unrestricted double pauseTime, Element element, DOMString pseudoId);
128
129     DOMString visiblePlaceholder(Element element);
130     void selectColorInColorChooser(HTMLInputElement element, DOMString colorValue);
131     [MayThrowLegacyException] sequence<DOMString> formControlStateOfPreviousHistoryItem();
132     [MayThrowLegacyException] void setFormControlStateOfPreviousHistoryItem(sequence<DOMString> values);
133
134     [MayThrowLegacyException] ClientRect absoluteCaretBounds();
135
136     ClientRect boundingBox(Element element);
137
138     [MayThrowLegacyException] ClientRectList inspectorHighlightRects();
139     [MayThrowLegacyException] DOMString inspectorHighlightObject();
140
141     [MayThrowLegacyException] unsigned long markerCountForNode(Node node, DOMString markerType);
142     [MayThrowLegacyException] Range markerRangeForNode(Node node, DOMString markerType, unsigned long index);
143     [MayThrowLegacyException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
144     [MayThrowLegacyException] DOMString dumpMarkerRects(DOMString markerType);
145     void addTextMatchMarker(Range range, boolean isActive);
146     [MayThrowLegacyException] void setMarkedTextMatchesAreHighlighted(boolean flag);
147
148     void invalidateFontCache();
149
150     [MayThrowLegacyException] void setScrollViewPosition(long x, long y);
151
152     [MayThrowLegacyException] void setViewBaseBackgroundColor(DOMString colorValue);
153
154     [MayThrowLegacyException] void setPagination(DOMString mode, long gap, optional long pageLength = 0);
155     [MayThrowLegacyException] void setPaginationLineGridEnabled(boolean enabled);
156
157     [MayThrowLegacyException] DOMString configurationForViewport(unrestricted float devicePixelRatio, long deviceWidth, long deviceHeight, long availableWidth, long availableHeight);
158
159     [MayThrowLegacyException] boolean wasLastChangeUserEdit(Element textField);
160     boolean elementShouldAutoComplete(HTMLInputElement inputElement);
161     void setEditingValue(HTMLInputElement inputElement, DOMString value);
162     void setAutofilled(HTMLInputElement inputElement, boolean enabled);
163     void setShowAutoFillButton(HTMLInputElement inputElement, AutoFillButtonType autoFillButtonType);
164     [MayThrowLegacyException] unsigned long countMatchesForText(DOMString text, unsigned long findOptions, DOMString markMatches);
165     [MayThrowLegacyException] unsigned long countFindMatches(DOMString text, unsigned long findOptions);
166
167     [MayThrowLegacyException] DOMString autofillFieldName(Element formControlElement);
168
169     [MayThrowLegacyException] void paintControlTints();
170
171     [MayThrowLegacyException] void scrollElementToRect(Element element, long x, long y, long w, long h);
172
173     Range rangeFromLocationAndLength(Element scope, long rangeLocation, long rangeLength);
174     unsigned long locationFromRange(Element scope, Range range);
175     unsigned long lengthFromRange(Element scope, Range range);
176     DOMString rangeAsText(Range range);
177     Range subrange(Range range, long rangeLocation, long rangeLength);
178     [MayThrowLegacyException] Range rangeForDictionaryLookupAtLocation(long x, long y);
179
180     [MayThrowLegacyException] void setDelegatesScrolling(boolean enabled);
181
182     [MayThrowLegacyException] long lastSpellCheckRequestSequence();
183     [MayThrowLegacyException] long lastSpellCheckProcessedSequence();
184
185     sequence<DOMString> userPreferredLanguages();
186     void setUserPreferredLanguages(sequence<DOMString> languages);
187
188     sequence<DOMString> userPreferredAudioCharacteristics();
189     void setUserPreferredAudioCharacteristic(DOMString characteristic);
190
191     [MayThrowLegacyException] unsigned long wheelEventHandlerCount();
192     [MayThrowLegacyException] unsigned long touchEventHandlerCount();
193
194     [MayThrowLegacyException] NodeList nodesFromRect(Document document, long x, long y,
195         unsigned long topPadding, unsigned long rightPadding, unsigned long bottomPadding, unsigned long leftPadding,
196         boolean ignoreClipping, boolean allowShadowContent, boolean allowChildFrameContent);
197
198     // Calling parserMetaData() with no arguments gets the metadata for the script of the current scope.
199     DOMString parserMetaData(optional any func);
200
201     void updateEditorUINowIfScheduled();
202
203     [MayThrowLegacyException] boolean hasSpellingMarker(long from, long length);
204     [MayThrowLegacyException] boolean hasGrammarMarker(long from, long length);
205     [MayThrowLegacyException] boolean hasAutocorrectedMarker(long from, long length);
206     void setContinuousSpellCheckingEnabled(boolean enabled);
207     void setAutomaticQuoteSubstitutionEnabled(boolean enabled);
208     void setAutomaticLinkDetectionEnabled(boolean enabled);
209     void setAutomaticDashSubstitutionEnabled(boolean enabled);
210     void setAutomaticTextReplacementEnabled(boolean enabled);
211     void setAutomaticSpellingCorrectionEnabled(boolean enabled);
212
213     [MayThrowLegacyException] void handleAcceptedCandidate(DOMString candidate, unsigned long location, unsigned long length);
214
215     [MayThrowLegacyException] boolean isOverwriteModeEnabled();
216     [MayThrowLegacyException] void toggleOverwriteModeEnabled();
217
218     [MayThrowLegacyException] unsigned long numberOfScrollableAreas();
219
220     [MayThrowLegacyException] boolean isPageBoxVisible(long pageNumber);
221
222     unsigned long imageFrameIndex(HTMLImageElement element);
223
224     readonly attribute InternalSettings settings;
225     readonly attribute unsigned long workerThreadCount;
226
227     // Flags for layerTreeAsText.
228     const unsigned short LAYER_TREE_INCLUDES_VISIBLE_RECTS = 1;
229     const unsigned short LAYER_TREE_INCLUDES_TILE_CACHES = 2;
230     const unsigned short LAYER_TREE_INCLUDES_REPAINT_RECTS = 4;
231     const unsigned short LAYER_TREE_INCLUDES_PAINTING_PHASES = 8;
232     const unsigned short LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16;
233     [MayThrowLegacyException] DOMString layerTreeAsText(Document document, optional unsigned short flags = 0);
234
235     [MayThrowLegacyException] DOMString scrollingStateTreeAsText();
236     [MayThrowLegacyException] DOMString mainThreadScrollingReasons(); // FIXME: rename to synchronousScrollingReasons().
237     [MayThrowLegacyException] ClientRectList nonFastScrollableRects();
238
239     [MayThrowLegacyException] DOMString repaintRectsAsText();
240
241     // These throw if the element does not have a compositing layer.
242     [MayThrowLegacyException] void setElementUsesDisplayListDrawing(Element element, boolean usesDisplayListDrawing);
243     [MayThrowLegacyException] void setElementTracksDisplayListReplay(Element element, boolean trackReplay);
244
245     // Flags for displayListForElement.
246     const unsigned short DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS = 1;
247     // Returns the recorded display list.
248     [MayThrowLegacyException] DOMString displayListForElement(Element element, optional unsigned short flags = 0);
249     // Returns the display list that was actually painted.
250     [MayThrowLegacyException] DOMString replayDisplayListForElement(Element element, optional unsigned short flags = 0);
251
252     [MayThrowLegacyException] void garbageCollectDocumentResources();
253
254     [MayThrowLegacyException] void insertAuthorCSS(DOMString css);
255     [MayThrowLegacyException] void insertUserCSS(DOMString css);
256
257     readonly attribute boolean isUnderMemoryPressure;
258     void beginSimulatedMemoryPressure();
259     void endSimulatedMemoryPressure();
260
261 #if defined(ENABLE_BATTERY_STATUS) && ENABLE_BATTERY_STATUS
262     [MayThrowLegacyException] void setBatteryStatus(DOMString eventType, boolean charging, unrestricted double chargingTime, unrestricted double dischargingTime, unrestricted double level);
263 #endif
264
265 #if defined(ENABLE_PROXIMITY_EVENTS) && ENABLE_PROXIMITY_EVENTS
266     [MayThrowLegacyException] void setDeviceProximity(DOMString eventType, unrestricted double value, unrestricted double min, unrestricted double max);
267 #endif
268
269     unsigned long numberOfLiveNodes();
270     unsigned long numberOfLiveDocuments();
271     DOMWindow openDummyInspectorFrontend(DOMString url);
272     void closeDummyInspectorFrontend();
273     [MayThrowLegacyException] void setInspectorIsUnderTest(boolean isUnderTest);
274
275     DOMString counterValue(Element element);
276     long pageNumber(Element element, optional unrestricted float pageWidth = 800, optional unrestricted float pageHeight = 600);
277     sequence<DOMString> shortcutIconURLs();
278     long numberOfPages(optional unrestricted double pageWidthInPixels = 800, optional unrestricted double pageHeightInPixels = 600);
279     [MayThrowLegacyException] DOMString pageProperty(DOMString propertyName, long pageNumber);
280     [MayThrowLegacyException] DOMString pageSizeAndMarginsInPixels(long pageIndex, long width, long height, long marginTop, long marginRight, long marginBottom, long marginLeft);
281
282     [MayThrowLegacyException] void setPageScaleFactor(unrestricted float scaleFactor, long x, long y);
283     [MayThrowLegacyException] void setPageZoomFactor(unrestricted float zoomFactor);
284     [MayThrowLegacyException] void setTextZoomFactor(unrestricted float zoomFactor);
285
286     [MayThrowLegacyException] void setUseFixedLayout(boolean useFixedLayout);
287     [MayThrowLegacyException] void setFixedLayoutSize(long width, long height);
288
289     [MayThrowLegacyException] void setViewExposedRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
290
291     void setHeaderHeight(unrestricted float height);
292     void setFooterHeight(unrestricted float height);
293
294     void setTopContentInset(unrestricted float contentInset);
295
296 #if defined(ENABLE_FULLSCREEN_API) && ENABLE_FULLSCREEN_API
297     void webkitWillEnterFullScreenForElement(Element element);
298     void webkitDidEnterFullScreenForElement(Element element);
299     void webkitWillExitFullScreenForElement(Element element);
300     void webkitDidExitFullScreenForElement(Element element);
301 #endif
302
303     void setApplicationCacheOriginQuota(unsigned long long quota);
304
305     void registerURLSchemeAsBypassingContentSecurityPolicy(DOMString scheme);
306     void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(DOMString scheme);
307
308     MallocStatistics mallocStatistics();
309     TypeConversions typeConversions();
310     MemoryInfo memoryInfo();
311
312     sequence<DOMString> getReferencedFilePaths();
313
314     // These functions both reset the tracked repaint rects. They are intended to be used in the following order:
315     //  startTrackingRepaints, repaintRectsAsText, stopTrackingRepaints.
316     [MayThrowLegacyException] void startTrackingRepaints();
317     [MayThrowLegacyException] void stopTrackingRepaints();
318
319     [MayThrowLegacyException] void startTrackingLayerFlushes();
320     [MayThrowLegacyException] unsigned long layerFlushCount();
321
322     // Query if a timer is currently throttled, to debug timer throttling.
323     [MayThrowLegacyException] boolean isTimerThrottled(long timerHandle);
324
325     boolean isRequestAnimationFrameThrottled();
326     boolean areTimersThrottled();
327
328     [MayThrowLegacyException] void startTrackingStyleRecalcs();
329     [MayThrowLegacyException] unsigned long styleRecalcCount();
330
331     [MayThrowLegacyException] void startTrackingCompositingUpdates();
332     [MayThrowLegacyException] unsigned long compositingUpdateCount();
333
334     // |node| should be Document, HTMLIFrameElement, or unspecified.
335     // If |node| is an HTMLIFrameElement, it assumes node.contentDocument is
336     // specified without security checks. Unspecified or null means this document.
337     [MayThrowLegacyException] void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(optional Node? node = null);
338
339     readonly attribute unsigned long layoutCount;
340
341     // Returns a string with information about the mouse cursor used at the specified client location.
342     [MayThrowLegacyException] DOMString getCurrentCursorInfo();
343
344     DOMString markerTextForListItem(Element element);
345
346     DOMString toolTipFromElement(Element element);
347
348     SerializedScriptValue deserializeBuffer(ArrayBuffer buffer);
349     ArrayBuffer serializeObject(SerializedScriptValue obj);
350
351     boolean isFromCurrentWorld(any obj);
352
353     void setUsesOverlayScrollbars(boolean enabled);
354     void setUsesMockScrollAnimator(boolean enabled);
355
356     void forceReload(boolean endToEnd);
357
358     void enableAutoSizeMode(boolean enabled, long minimumWidth, long minimumHeight, long maximumWidth, long maximumHeight);
359
360     [Conditional=VIDEO] void simulateAudioInterruption(HTMLMediaElement element);
361     [Conditional=VIDEO, MayThrowLegacyException] boolean mediaElementHasCharacteristic(HTMLMediaElement element, DOMString characteristic);
362
363     [Conditional=ENCRYPTED_MEDIA_V2] void initializeMockCDM();
364
365     [Conditional=SPEECH_SYNTHESIS] void enableMockSpeechSynthesizer();
366
367     DOMString getImageSourceURL(Element element);
368
369     [Conditional=VIDEO_TRACK, MayThrowLegacyException] DOMString captionsStyleSheetOverride();
370     [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setCaptionsStyleSheetOverride(DOMString override);
371     [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setPrimaryAudioTrackLanguageOverride(DOMString language);
372     [Conditional=VIDEO_TRACK, MayThrowLegacyException] void setCaptionDisplayMode(DOMString mode);
373
374     [Conditional=VIDEO] TimeRanges createTimeRanges(Float32Array startTimes, Float32Array
375      endTimes);
376     [Conditional=VIDEO] unrestricted double closestTimeToTimeRanges(unrestricted double time, TimeRanges ranges);
377
378     boolean isSelectPopupVisible(HTMLSelectElement element);
379
380 #if defined(ENABLE_VIBRATION) && ENABLE_VIBRATION
381     boolean isVibrating();
382 #endif
383
384     [MayThrowLegacyException] boolean isPluginUnavailabilityIndicatorObscured(Element element);
385     boolean isPluginSnapshotted(Element element);
386
387     [MayThrowLegacyException] ClientRect selectionBounds();
388
389     [Conditional=MEDIA_SOURCE] void initializeMockMediaSource();
390     [Conditional=MEDIA_SOURCE] sequence<DOMString> bufferedSamplesForTrackID(SourceBuffer buffer, DOMString trackID);
391     [Conditional=MEDIA_SOURCE] sequence<DOMString> enqueuedSamplesForTrackID(SourceBuffer buffer, DOMString trackID);
392     [Conditional=MEDIA_SOURCE] void setShouldGenerateTimestamps(SourceBuffer buffer, boolean flag);
393
394     [Conditional=VIDEO, MayThrowLegacyException] void beginMediaSessionInterruption(DOMString interruptionType);
395     [Conditional=VIDEO] void endMediaSessionInterruption(DOMString flags);
396     [Conditional=MEDIA_SESSION] void sendMediaSessionStartOfInterruptionNotification(MediaSessionInterruptingCategory category);
397     [Conditional=MEDIA_SESSION] void sendMediaSessionEndOfInterruptionNotification(MediaSessionInterruptingCategory category);
398     [Conditional=MEDIA_SESSION] DOMString mediaSessionCurrentState(MediaSession session);
399     [Conditional=MEDIA_SESSION] double mediaElementPlayerVolume(HTMLMediaElement element);
400     [Conditional=MEDIA_SESSION] void sendMediaControlEvent(MediaControlEvent event);
401     [Conditional=VIDEO] void applicationDidEnterForeground();
402     [Conditional=VIDEO] void applicationWillEnterBackground();
403     [Conditional=VIDEO, MayThrowLegacyException] void setMediaSessionRestrictions(DOMString mediaType, DOMString restrictions);
404     [Conditional=VIDEO] void setMediaElementRestrictions(HTMLMediaElement element, DOMString restrictions);
405     [Conditional=WEB_AUDIO] void setAudioContextRestrictions(AudioContext context, DOMString restrictions);
406     [Conditional=VIDEO, MayThrowLegacyException] void postRemoteControlCommand(DOMString command, optional unrestricted float argument = 0);
407     [Conditional=WIRELESS_PLAYBACK_TARGET] void setMockMediaPlaybackTargetPickerEnabled(boolean enabled);
408     [Conditional=WIRELESS_PLAYBACK_TARGET, MayThrowLegacyException] void setMockMediaPlaybackTargetPickerState(DOMString deviceName, DOMString deviceState);
409     [Conditional=MEDIA_STREAM] void setMockMediaCaptureDevicesEnabled(boolean enabled);
410
411     [Conditional=VIDEO] void simulateSystemSleep();
412     [Conditional=VIDEO] void simulateSystemWake();
413     [Conditional=VIDEO] boolean elementIsBlockingDisplaySleep(HTMLMediaElement element);
414
415     [MayThrowLegacyException] MockPageOverlay installMockPageOverlay(PageOverlayType type);
416     [MayThrowLegacyException] DOMString pageOverlayLayerTreeAsText();
417
418     void setPageMuted(boolean muted);
419     boolean isPagePlayingAudio();
420
421     void setPageDefersLoading(boolean defersLoading);
422
423     File createFile(DOMString url);
424     void queueMicroTask(long testNumber);
425     boolean testPreloaderSettingViewport();
426
427     [Conditional=CONTENT_FILTERING] readonly attribute MockContentFilterSettings mockContentFilterSettings;
428
429 #if defined(ENABLE_CSS_SCROLL_SNAP) && ENABLE_CSS_SCROLL_SNAP
430     [MayThrowLegacyException] DOMString scrollSnapOffsets(Element element);
431 #endif
432
433     [MayThrowLegacyException] DOMString pathStringWithShrinkWrappedRects(sequence<double> rectComponents, double radius);
434
435     [Conditional=VIDEO] DOMString getCurrentMediaControlsStatusForElement(HTMLMediaElement element);
436
437     DOMString userVisibleString(DOMURL url);
438
439     void setShowAllPlugins(boolean showAll);
440
441     [Conditional=READABLE_STREAM_API, CallWith=ScriptState] boolean isReadableStreamDisturbed(any stream);
442
443     DOMString resourceLoadStatisticsForOrigin(DOMString domain);
444     void setResourceLoadStatisticsEnabled(boolean enable);
445
446     [MayThrowLegacyException] void setCanShowModalDialogOverride(boolean allow);
447
448     DOMString composedTreeAsText(Node parent);
449
450     void setLinkPreloadSupport(boolean scalable);
451
452 #if defined(ENABLE_CSS_GRID_LAYOUT) && ENABLE_CSS_GRID_LAYOUT
453     void setCSSGridLayoutEnabled(boolean enable);
454 #endif
455
456 #if defined(ENABLE_WEBGL2) && ENABLE_WEBGL2
457     boolean webGL2Enabled();
458     void setWebGL2Enabled(boolean enable);
459 #endif
460
461     void setResourceTimingSupport(boolean scalable);
462     
463     boolean isProcessingUserGesture();
464
465     GCObservation observeGC(any observed);
466
467     void setUserInterfaceLayoutDirection(UserInterfaceLayoutDirection userInterfaceLayoutDirection);
468 };