blob: dc692028d53ebbadc8b34e706de500287341ecc4 [file] [log] [blame]
/*
* Copyright (C) 2012 Google Inc. All rights reserved.
* Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
[
DoNotCheckConstants,
GarbageCollected,
ConstructorCallWith=ScriptState,
] interface Internals {
DOMString address(Node node);
GCObservation observeGC(any observed);
[RaisesException] DOMString elementLayoutTreeAsText(Element element);
boolean isPreloaded(DOMString url);
boolean isPreloadedBy(DOMString url, Document document);
boolean isLoadingFromMemoryCache(DOMString url);
boolean isSharingStyle(Element element1, Element element2);
CSSStyleDeclaration computedStyleIncludingVisitedInfo(Node node);
ShadowRoot createUserAgentShadowRoot(Element host);
ShadowRoot shadowRoot(Element host);
ShadowRoot youngestShadowRoot(Element host);
ShadowRoot oldestShadowRoot(Element host);
[RaisesException] ShadowRoot youngerShadowRoot(Node root);
[RaisesException] DOMString shadowRootType(Node root);
[RaisesException] boolean hasShadowInsertionPoint(Node root);
[RaisesException] boolean hasContentElement(Node root);
[RaisesException] unsigned long countElementShadow(Node Root);
DOMString shadowPseudoId(Element element);
[RaisesException] boolean isValidContentSelect(Element contentElement);
Node treeScopeRootNode(Node node);
Node parentTreeScope(Node node);
[RaisesException] boolean hasSelectorForIdInShadow(Element host, DOMString id);
[RaisesException] boolean hasSelectorForClassInShadow(Element host, DOMString className);
[RaisesException] boolean hasSelectorForAttributeInShadow(Element host, DOMString attributeName);
[RaisesException] unsigned short compareTreeScopePosition(Node treeScope1, Node treeScope2);
[RaisesException] unsigned long updateStyleAndReturnAffectedElementCount();
[RaisesException] unsigned long needsLayoutCount();
[RaisesException] unsigned long hitTestCount(Document document);
[RaisesException] unsigned long hitTestCacheHits(Document document);
[RaisesException] Element? elementFromPoint(Document document, double x, double y, boolean ignoreClipping, boolean allowChildFrameContent);
[RaisesException] void clearHitTestCache(Document document);
// Animation testing.
[RaisesException] void pauseAnimations(double pauseTime);
bool isCompositedAnimation(Animation animation);
void disableCompositedAnimation(Animation animation);
void disableCSSAdditiveAnimations();
// Modifies m_desiredFrameStartTime in BitmapImage to advance the next frame time
// for testing whether animated images work properly.
[RaisesException] void advanceTimeForImage(Element image, double deltaTimeInSeconds);
// Advances an animated image. For BitmapImage (e.g., animated gifs) this
// will advance to the next frame. For SVGImage, this will trigger an
// animation update for CSS and advance the SMIL timeline by one frame.
[RaisesException] void advanceImageAnimation(Element image);
[RaisesException] Node nextSiblingInFlatTree(Node node);
[RaisesException] Node firstChildInFlatTree(Node node);
[RaisesException] Node lastChildInFlatTree(Node node);
[RaisesException] Node nextInFlatTree(Node node);
[RaisesException] Node previousInFlatTree(Node node);
DOMString visiblePlaceholder(Element element);
void selectColorInColorChooser(Element element, DOMString colorValue);
void endColorChooser(Element element);
// If the argument is omitted, the top-level document is used.
boolean hasAutofocusRequest(optional Document document);
[RaisesException] DOMString[] formControlStateOfHistoryItem();
[RaisesException] void setFormControlStateOfHistoryItem(sequence<DOMString> values);
readonly attribute Window pagePopupWindow;
[RaisesException] ClientRect absoluteCaretBounds();
ClientRect boundingBox(Element element);
[RaisesException] unsigned long markerCountForNode(Node node, DOMString markerType);
unsigned long activeMarkerCountForNode(Node node);
[RaisesException] Range markerRangeForNode(Node node, DOMString markerType, unsigned long index);
[RaisesException] DOMString markerDescriptionForNode(Node node, DOMString markerType, unsigned long index);
void addTextMatchMarker(Range range, boolean isActive);
void setMarkersActive(Node node, unsigned long startOffset, unsigned long endOffset, boolean active);
void setMarkedTextMatchesAreHighlighted(Document document, boolean highlight);
[RaisesException] void setFrameViewPosition(Document document, long x, long y);
[RaisesException] DOMString viewportAsText(Document document,
float devicePixelRatio,
long availableWidth,
long availableHeight);
[RaisesException] boolean elementShouldAutoComplete(Element inputElement);
[RaisesException] DOMString suggestedValue(Element inputElement);
[RaisesException] void setSuggestedValue(Element inputElement, DOMString value);
[RaisesException] void setEditingValue(Element inputElement, DOMString value);
[RaisesException] void setAutofilled(Element inputElement, boolean enabled);
Range rangeFromLocationAndLength(Element scope, long rangeLocation, long rangeLength);
unsigned long locationFromRange(Element scope, Range range);
unsigned long lengthFromRange(Element scope, Range range);
DOMString rangeAsText(Range range);
[RaisesException] DOMPoint touchPositionAdjustedToBestClickableNode(long x, long y, long width, long height, Document document);
[RaisesException] Node touchNodeAdjustedToBestClickableNode(long x, long y, long width, long height, Document document);
[RaisesException] DOMPoint touchPositionAdjustedToBestContextMenuNode(long x, long y, long width, long height, Document document);
[RaisesException] Node touchNodeAdjustedToBestContextMenuNode(long x, long y, long width, long height, Document document);
[RaisesException] ClientRect bestZoomableAreaForTouchPoint(long x, long y, long width, long height, Document document);
[RaisesException] long lastSpellCheckRequestSequence(Document document);
[RaisesException] long lastSpellCheckProcessedSequence(Document document);
sequence<DOMString> userPreferredLanguages();
void setUserPreferredLanguages(sequence<DOMString> languages);
unsigned long activeDOMObjectCount(Document document);
unsigned long wheelEventHandlerCount(Document document);
unsigned long scrollEventHandlerCount(Document document);
unsigned long touchEventHandlerCount(Document document);
[RaisesException] LayerRectList touchEventTargetLayerRects(Document document);
[RaisesException] boolean executeCommand(Document document, DOMString name, DOMString value);
DOMString htmlNamespace();
sequence<DOMString> htmlTags();
DOMString svgNamespace();
sequence<DOMString> svgTags();
[RaisesException] NodeList nodesFromRect(Document document, long x, long y,
unsigned long topPadding, unsigned long rightPadding, unsigned long bottomPadding, unsigned long leftPadding,
boolean ignoreClipping, boolean allowChildFrameContent);
boolean hasSpellingMarker(Document document, long from, long length);
boolean hasGrammarMarker(Document document, long from, long length);
void setContinuousSpellCheckingEnabled(boolean enabled);
boolean isOverwriteModeEnabled(Document document);
void toggleOverwriteModeEnabled(Document document);
unsigned long numberOfScrollableAreas(Document document);
boolean isPageBoxVisible(Document document, long pageNumber);
readonly attribute InternalSettings settings;
readonly attribute InternalRuntimeFlags runtimeFlags;
readonly attribute unsigned long workerThreadCount;
// Flags for layerTreeAsText.
// The values of these constants must be kept in sync with the values of LayerTreeFlags in GraphicsLayerClient.h.
const unsigned short LAYER_TREE_INCLUDES_DEBUG_INFO = 1;
const unsigned short LAYER_TREE_INCLUDES_REPAINT_RECTS = 2;
const unsigned short LAYER_TREE_INCLUDES_PAINTING_PHASES = 4;
const unsigned short LAYER_TREE_INCLUDES_ROOT_LAYER = 8;
const unsigned short LAYER_TREE_INCLUDES_CLIP_AND_SCROLL_PARENTS = 16;
const unsigned short LAYER_TREE_INCLUDES_PAINT_INVALIDATION_OBJECTS = 32;
const unsigned short LAYER_TREE_INCLUDES_COMPOSITING_REASONS = 64;
[RaisesException] DOMString layerTreeAsText(Document document, optional unsigned short flags);
[RaisesException] DOMString elementLayerTreeAsText(Element element, optional unsigned short flags);
[RaisesException] boolean scrollsWithRespectTo(Element element1, Element element2);
DOMString scrollingStateTreeAsText(Document document);
[RaisesException] DOMString mainThreadScrollingReasons(Document document);
[RaisesException] ClientRectList nonFastScrollableRects(Document document);
void evictAllResources();
unsigned long numberOfLiveNodes();
unsigned long numberOfLiveDocuments();
DOMString dumpRefCountedInstanceCounts();
sequence<DOMString> consoleMessageArgumentCounts(Document document);
unsigned long[] setMemoryCacheCapacities(unsigned long minDeadBytes, unsigned long maxDeadBytes, unsigned long totalBytes);
DOMString counterValue(Element element);
[RaisesException] long pageNumber(Element element, optional float pageWidth = 800, optional float pageHeight = 600);
DOMString[] shortcutIconURLs(Document document);
DOMString[] allIconURLs(Document document);
[RaisesException] long numberOfPages(optional double pageWidthInPixels = 800, optional double pageHeightInPixels = 600);
[RaisesException] DOMString pageProperty(DOMString propertyName, long pageNumber);
[RaisesException] DOMString pageSizeAndMarginsInPixels(long pageIndex, long width, long height, long marginTop, long marginRight, long marginBottom, long marginLeft);
[RaisesException] void setPageScaleFactor(float scaleFactor);
[RaisesException] void setPageScaleFactorLimits(float minScaleFactor, float maxScaleFactor);
[RaisesException] void setIsCursorVisible(Document document, boolean isVisible);
double effectiveMediaVolume(HTMLMediaElement mediaElement);
void mediaPlayerRemoteRouteAvailabilityChanged(HTMLMediaElement mediaElement, boolean available);
void mediaPlayerPlayingRemotelyChanged(HTMLMediaElement mediaElement, boolean remote);
void setAllowHiddenVolumeControls(HTMLMediaElement mediaElement, boolean allow);
void registerURLSchemeAsBypassingContentSecurityPolicy(DOMString scheme);
void registerURLSchemeAsBypassingContentSecurityPolicy(DOMString scheme, sequence<DOMString> policyAreas);
void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(DOMString scheme);
TypeConversions typeConversions();
// This is enabled only in Debug builds.
// This is because we want to avoid putting the byte stream of testing private scripts
// into the binary of Release builds.
PrivateScriptTest privateScriptTest();
DOMString[] getReferencedFilePaths();
// These functions both reset the tracked repaint rects. They are intended to be used in the following order:
// startTrackingRepaints(), repaintRectsAsText(), stopTrackingRepaints().
// TODO(wangxianzhu): Remove these functions when we no longer use repaint rects.
[RaisesException] void startTrackingRepaints(Document document);
[RaisesException] void stopTrackingRepaints(Document document);
// |node| should be Document, HTMLIFrameElement, or unspecified.
// If |node| is an HTMLIFrameElement, it assumes node.contentDocument is
// specified without security checks. Unspecified means this document.
[RaisesException] void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(optional Node? node = null);
[RaisesException] void forceFullRepaint(Document document);
// These functions both reset the tracked paint invalidation objects. They are intended to be used in the following order:
// startTrackingPaintInvalidationObjects(), trackedPaintInvalidationObjects(), stopTrackingPaintInvalidationObjects().
void startTrackingPaintInvalidationObjects();
void stopTrackingPaintInvalidationObjects();
// Returns a list of debug strings for objects that were invalidated between
// startTrackingPaintInvalidationObjects() and stopTrackingPaintInvalidationObjects().
// If an object is invalidated multiple times, it will appear in the list multiple times.
DOMString[] trackedPaintInvalidationObjects();
// Returns a list of draggable/non-draggable regions in the document.
[RaisesException] ClientRectList draggableRegions(Document document);
[RaisesException] ClientRectList nonDraggableRegions(Document document);
// Returns a string with information about the mouse cursor used at the specified client location.
DOMString getCurrentCursorInfo();
readonly attribute boolean cursorUpdatePending;
DOMString markerTextForListItem(Element element);
SerializedScriptValue deserializeBuffer(ArrayBuffer buffer);
ArrayBuffer serializeObject(SerializedScriptValue obj);
void forceReload(boolean endToEnd);
DOMString getImageSourceURL(Element element);
DOMString selectMenuListText(HTMLSelectElement select);
boolean isSelectPopupVisible(Node node);
boolean selectPopupItemStyleIsRtl(Node select, long itemIndex);
long selectPopupItemStyleFontHeight(Node select, long itemIndex);
void resetTypeAheadSession(HTMLSelectElement select);
[RaisesException] ClientRect selectionBounds();
boolean loseSharedGraphicsContext3D();
[RaisesException] void forceCompositingUpdate(Document document);
void setZoomFactor(float factor);
[RaisesException] void setShouldRevealPassword(Element element, boolean reveal);
[CallWith=ScriptState] Promise createResolvedPromise(any value);
[CallWith=ScriptState] Promise createRejectedPromise(any reason);
[CallWith=ScriptState] Promise addOneToPromise(Promise promise);
[CallWith=ScriptState, RaisesException] Promise promiseCheck(long arg1, boolean arg2, Dictionary arg3, DOMString arg4, DOMString[] arg5);
[CallWith=ScriptState] Promise promiseCheckWithoutExceptionState(Dictionary arg1, DOMString arg2, DOMString... variadic);
[CallWith=ScriptState] Promise promiseCheckRange([EnforceRange] octet arg1);
[CallWith=ScriptState] Promise promiseCheckOverload(Location arg1);
[CallWith=ScriptState] Promise promiseCheckOverload(Document arg1);
[CallWith=ScriptState] Promise promiseCheckOverload(Location arg1, long arg2, long arg3);
void setValueForUser(Element element, DOMString value);
DOMString textSurroundingNode(Node node, long x, long y, unsigned long maxLength);
void setFocused(boolean focused);
void setInitialFocus(boolean reverse);
boolean ignoreLayoutWithPendingStylesheets(Document document);
// These functions are for testing NetInfo. You must call setNetworkStateNotifierTestOnly(true)
// before calling setNetworkConnectionInfo.
void setNetworkStateNotifierTestOnly(boolean testOnly);
[RaisesException] void setNetworkConnectionInfo(DOMString type, double downlinkMaxMbps);
// This function is for testing HitRegions on Canvas2D.
unsigned long countHitRegions(CanvasRenderingContext2D context);
boolean isInCanvasFontCache(Document document, DOMString fontString);
unsigned long canvasFontCacheMaxFonts();
DictionaryTest dictionaryTest();
UnionTypesTest unionTypesTest();
[RaisesException] void setScrollChain(ScrollState scrollState, Element[] elements);
void forceBlinkGCWithoutV8GC();
DOMString selectedHTMLForClipboard();
DOMString selectedTextForClipboard();
void setVisualViewportOffset(long x, long y);
int visualViewportHeight();
int visualViewportWidth();
double visualViewportScrollX();
double visualViewportScrollY();
bool magnifyScaleAroundAnchor(float offset, float x, float y);
boolean isUseCounted(Document document, long useCounterId);
boolean isCSSPropertyUseCounted(Document document, DOMString propertyName);
iterable<long>;
[Unscopeable] readonly attribute DOMString unscopeableAttribute;
[Unscopeable] DOMString unscopeableMethod();
ClientRectList focusRingRects(Element element);
ClientRectList outlineRects(Element element);
void setCapsLockState(boolean enabled);
// Returns whether the scrollbar was able to be shown or hidden; not all platforms
// support overlay scrollbars.
bool setScrollbarVisibilityInScrollableArea(Node node, boolean visible);
void forceRestrictIFramePermissions();
[RaisesException] double monotonicTimeToZeroBasedDocumentTime(double platformTime);
void setMediaElementNetworkState(HTMLMediaElement element, long state);
// TODO(liberato): remove once autoplay gesture override experiment concludes.
void triggerAutoplayViewportCheck(HTMLMediaElement mediaElement);
int getScrollAnimationState(Node node);
};