From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- Source/WebCore/testing/Internals.h | 550 +++++++++++++++++++++++++------------ 1 file changed, 373 insertions(+), 177 deletions(-) (limited to 'Source/WebCore/testing/Internals.h') diff --git a/Source/WebCore/testing/Internals.h b/Source/WebCore/testing/Internals.h index 1b936332a..f5c08a87d 100644 --- a/Source/WebCore/testing/Internals.h +++ b/Source/WebCore/testing/Internals.h @@ -1,6 +1,6 @@ /* * Copyright (C) 2012 Google Inc. All rights reserved. - * Copyright (C) 2013 Apple Inc. All rights reserved. + * Copyright (C) 2013-2017 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -24,184 +24,237 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef Internals_h -#define Internals_h +#pragma once #include "CSSComputedStyleDeclaration.h" #include "ContextDestructionObserver.h" -#include "ExceptionCodePlaceholder.h" -#include "NodeList.h" -#include -#include +#include "ExceptionOr.h" +#include "PageConsoleClient.h" #include -#include -#include -#include + +#if ENABLE(MEDIA_SESSION) +#include "MediaSessionInterruptionProvider.h" +#endif namespace WebCore { +class AudioContext; class ClientRect; class ClientRectList; -class DOMStringList; +class DOMURL; class DOMWindow; class Document; -class DocumentMarker; class Element; +class File; class Frame; -class InspectorFrontendChannelDummy; +class GCObservation; +class HTMLImageElement; +class HTMLInputElement; +class HTMLLinkElement; +class HTMLMediaElement; +class HTMLSelectElement; +class InspectorStubFrontend; class InternalSettings; +class MallocStatistics; +class MediaSession; class MemoryInfo; -class Node; +class MockCDMFactory; +class MockContentFilterSettings; +class MockPageOverlay; +class NodeList; class Page; class Range; -class ScriptExecutionContext; -class ShadowRoot; -class MallocStatistics; +class RenderedDocumentMarker; +class RTCPeerConnection; class SerializedScriptValue; +class SourceBuffer; +class StyleSheet; class TimeRanges; class TypeConversions; +class XMLHttpRequest; -typedef int ExceptionCode; - -class Internals : public RefCounted - , public ContextDestructionObserver { +class Internals final : public RefCounted, private ContextDestructionObserver { public: - static PassRefPtr create(Document*); + static Ref create(Document&); virtual ~Internals(); - static void resetToConsistentState(Page*); + static void resetToConsistentState(Page&); - String elementRenderTreeAsText(Element*, ExceptionCode&); + ExceptionOr elementRenderTreeAsText(Element&); + bool hasPausedImageAnimations(Element&); - String address(Node*); + String address(Node&); + bool nodeNeedsStyleRecalc(Node&); + String styleChangeType(Node&); + String description(JSC::JSValue); bool isPreloaded(const String& url); bool isLoadingFromMemoryCache(const String& url); - - PassRefPtr computedStyleIncludingVisitedInfo(Node*, ExceptionCode&) const; - -#if ENABLE(SHADOW_DOM) - typedef ShadowRoot ShadowRootIfShadowDOMEnabledOrNode; -#else - typedef Node ShadowRootIfShadowDOMEnabledOrNode; -#endif - ShadowRootIfShadowDOMEnabledOrNode* ensureShadowRoot(Element* host, ExceptionCode&); - ShadowRootIfShadowDOMEnabledOrNode* createShadowRoot(Element* host, ExceptionCode&); - ShadowRootIfShadowDOMEnabledOrNode* shadowRoot(Element* host, ExceptionCode&); - String shadowRootType(const Node*, ExceptionCode&) const; - Element* includerFor(Node*, ExceptionCode&); - String shadowPseudoId(Element*, ExceptionCode&); - void setShadowPseudoId(Element*, const String&, ExceptionCode&); + String xhrResponseSource(XMLHttpRequest&); + bool isSharingStyleSheetContents(HTMLLinkElement&, HTMLLinkElement&); + bool isStyleSheetLoadingSubresources(HTMLLinkElement&); + enum class CachePolicy { UseProtocolCachePolicy, ReloadIgnoringCacheData, ReturnCacheDataElseLoad, ReturnCacheDataDontLoad }; + void setOverrideCachePolicy(CachePolicy); + ExceptionOr setCanShowModalDialogOverride(bool allow); + enum class ResourceLoadPriority { ResourceLoadPriorityVeryLow, ResourceLoadPriorityLow, ResourceLoadPriorityMedium, ResourceLoadPriorityHigh, ResourceLoadPriorityVeryHigh }; + void setOverrideResourceLoadPriority(ResourceLoadPriority); + void setStrictRawResourceValidationPolicyDisabled(bool); + + void clearMemoryCache(); + void pruneMemoryCacheToSize(unsigned size); + unsigned memoryCacheSize() const; + + unsigned imageFrameIndex(HTMLImageElement&); + void setImageFrameDecodingDuration(HTMLImageElement&, float duration); + void resetImageAnimation(HTMLImageElement&); + + void clearPageCache(); + unsigned pageCacheSize() const; + + void disableTileSizeUpdateDelay(); + + Ref computedStyleIncludingVisitedInfo(Element&) const; + + Node* ensureUserAgentShadowRoot(Element& host); + Node* shadowRoot(Element& host); + ExceptionOr shadowRootType(const Node&) const; + String shadowPseudoId(Element&); + void setShadowPseudoId(Element&, const String&); + + // CSS Deferred Parsing Testing + unsigned deferredStyleRulesCount(StyleSheet&); + unsigned deferredGroupRulesCount(StyleSheet&); + unsigned deferredKeyframesRulesCount(StyleSheet&); + + // DOMTimers throttling testing. + ExceptionOr isTimerThrottled(int timeoutId); + bool isRequestAnimationFrameThrottled() const; + bool areTimersThrottled() const; + + enum EventThrottlingBehavior { Responsive, Unresponsive }; + void setEventThrottlingBehaviorOverride(std::optional); + std::optional eventThrottlingBehaviorOverride() const; // Spatial Navigation testing. - unsigned lastSpatialNavigationCandidateCount(ExceptionCode&) const; + ExceptionOr lastSpatialNavigationCandidateCount() const; // CSS Animation testing. unsigned numberOfActiveAnimations() const; - bool animationsAreSuspended(ExceptionCode&) const; - void suspendAnimations(ExceptionCode&) const; - void resumeAnimations(ExceptionCode&) const; - bool pauseAnimationAtTimeOnElement(const String& animationName, double pauseTime, Element*, ExceptionCode&); - bool pauseAnimationAtTimeOnPseudoElement(const String& animationName, double pauseTime, Element*, const String& pseudoId, ExceptionCode&); + ExceptionOr animationsAreSuspended() const; + ExceptionOr suspendAnimations() const; + ExceptionOr resumeAnimations() const; + ExceptionOr pauseAnimationAtTimeOnElement(const String& animationName, double pauseTime, Element&); + ExceptionOr pauseAnimationAtTimeOnPseudoElement(const String& animationName, double pauseTime, Element&, const String& pseudoId); // CSS Transition testing. - bool pauseTransitionAtTimeOnElement(const String& propertyName, double pauseTime, Element*, ExceptionCode&); - bool pauseTransitionAtTimeOnPseudoElement(const String& property, double pauseTime, Element*, const String& pseudoId, ExceptionCode&); + ExceptionOr pauseTransitionAtTimeOnElement(const String& propertyName, double pauseTime, Element&); + ExceptionOr pauseTransitionAtTimeOnPseudoElement(const String& property, double pauseTime, Element&, const String& pseudoId); - Node* treeScopeRootNode(Node*, ExceptionCode&); - Node* parentTreeScope(Node*, ExceptionCode&); - bool hasSelectorForIdInShadow(Element* host, const String& idValue, ExceptionCode&); - bool hasSelectorForClassInShadow(Element* host, const String& className, ExceptionCode&); - bool hasSelectorForAttributeInShadow(Element* host, const String& attributeName, ExceptionCode&); - bool hasSelectorForPseudoClassInShadow(Element* host, const String& pseudoClass, ExceptionCode&); + Node* treeScopeRootNode(Node&); + Node* parentTreeScope(Node&); - bool attached(Node*, ExceptionCode&); + String visiblePlaceholder(Element&); + void selectColorInColorChooser(HTMLInputElement&, const String& colorValue); + ExceptionOr> formControlStateOfPreviousHistoryItem(); + ExceptionOr setFormControlStateOfPreviousHistoryItem(const Vector&); - String visiblePlaceholder(Element*); -#if ENABLE(INPUT_TYPE_COLOR) - void selectColorInColorChooser(Element*, const String& colorValue); -#endif - Vector formControlStateOfPreviousHistoryItem(ExceptionCode&); - void setFormControlStateOfPreviousHistoryItem(const Vector&, ExceptionCode&); + ExceptionOr> absoluteCaretBounds(); + + Ref boundingBox(Element&); - PassRefPtr absoluteCaretBounds(ExceptionCode&); + ExceptionOr> inspectorHighlightRects(); + ExceptionOr inspectorHighlightObject(); - PassRefPtr boundingBox(Element*, ExceptionCode&); + ExceptionOr markerCountForNode(Node&, const String&); + ExceptionOr> markerRangeForNode(Node&, const String& markerType, unsigned index); + ExceptionOr markerDescriptionForNode(Node&, const String& markerType, unsigned index); + ExceptionOr dumpMarkerRects(const String& markerType); + void addTextMatchMarker(const Range&, bool isActive); + ExceptionOr setMarkedTextMatchesAreHighlighted(bool); - PassRefPtr inspectorHighlightRects(ExceptionCode&); - String inspectorHighlightObject(ExceptionCode&); + void invalidateFontCache(); - unsigned markerCountForNode(Node*, const String&, ExceptionCode&); - PassRefPtr markerRangeForNode(Node*, const String& markerType, unsigned index, ExceptionCode&); - String markerDescriptionForNode(Node*, const String& markerType, unsigned index, ExceptionCode&); - void addTextMatchMarker(const Range*, bool isActive); + ExceptionOr setScrollViewPosition(int x, int y); + + ExceptionOr> layoutViewportRect(); + ExceptionOr> visualViewportRect(); + + ExceptionOr setViewBaseBackgroundColor(const String& colorValue); - void setScrollViewPosition(long x, long y, ExceptionCode&); - void setPagination(const String& mode, int gap, ExceptionCode& ec) { setPagination(mode, gap, 0, ec); } - void setPagination(const String& mode, int gap, int pageLength, ExceptionCode&); - String configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight, ExceptionCode&); + ExceptionOr setPagination(const String& mode, int gap, int pageLength); + ExceptionOr setPaginationLineGridEnabled(bool); + ExceptionOr configurationForViewport(float devicePixelRatio, int deviceWidth, int deviceHeight, int availableWidth, int availableHeight); - bool wasLastChangeUserEdit(Element* textField, ExceptionCode&); - bool elementShouldAutoComplete(Element* inputElement, ExceptionCode&); - String suggestedValue(Element* inputElement, ExceptionCode&); - void setSuggestedValue(Element* inputElement, const String&, ExceptionCode&); - void setEditingValue(Element* inputElement, const String&, ExceptionCode&); - void setAutofilled(Element*, bool enabled, ExceptionCode&); - void scrollElementToRect(Element*, long x, long y, long w, long h, ExceptionCode&); + ExceptionOr wasLastChangeUserEdit(Element& textField); + bool elementShouldAutoComplete(HTMLInputElement&); + void setEditingValue(HTMLInputElement&, const String&); + void setAutofilled(HTMLInputElement&, bool enabled); + enum class AutoFillButtonType { AutoFillButtonTypeNone, AutoFillButtonTypeContacts, AutoFillButtonTypeCredentials }; + void setShowAutoFillButton(HTMLInputElement&, AutoFillButtonType); + ExceptionOr scrollElementToRect(Element&, int x, int y, int w, int h); - void paintControlTints(ExceptionCode&); + ExceptionOr autofillFieldName(Element&); - PassRefPtr rangeFromLocationAndLength(Element* scope, int rangeLocation, int rangeLength, ExceptionCode&); - unsigned locationFromRange(Element* scope, const Range*, ExceptionCode&); - unsigned lengthFromRange(Element* scope, const Range*, ExceptionCode&); - String rangeAsText(const Range*, ExceptionCode&); + ExceptionOr paintControlTints(); - void setDelegatesScrolling(bool enabled, ExceptionCode&); + RefPtr rangeFromLocationAndLength(Element& scope, int rangeLocation, int rangeLength); + unsigned locationFromRange(Element& scope, const Range&); + unsigned lengthFromRange(Element& scope, const Range&); + String rangeAsText(const Range&); + Ref subrange(Range&, int rangeLocation, int rangeLength); + ExceptionOr> rangeForDictionaryLookupAtLocation(int x, int y); + RefPtr rangeOfStringNearLocation(const Range&, const String&, unsigned); - int lastSpellCheckRequestSequence(ExceptionCode&); - int lastSpellCheckProcessedSequence(ExceptionCode&); + ExceptionOr setDelegatesScrolling(bool enabled); + + ExceptionOr lastSpellCheckRequestSequence(); + ExceptionOr lastSpellCheckProcessedSequence(); Vector userPreferredLanguages() const; void setUserPreferredLanguages(const Vector&); - unsigned wheelEventHandlerCount(ExceptionCode&); - unsigned touchEventHandlerCount(ExceptionCode&); + Vector userPreferredAudioCharacteristics() const; + void setUserPreferredAudioCharacteristic(const String&); + + ExceptionOr wheelEventHandlerCount(); + ExceptionOr touchEventHandlerCount(); + + ExceptionOr> nodesFromRect(Document&, int x, int y, unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent) const; - PassRefPtr nodesFromRect(Document*, int x, int y, unsigned topPadding, unsigned rightPadding, - unsigned bottomPadding, unsigned leftPadding, bool ignoreClipping, bool allowShadowContent, bool allowChildFrameContent, ExceptionCode&) const; + String parserMetaData(JSC::JSValue = JSC::JSValue::JSUndefined); - void emitInspectorDidBeginFrame(); - void emitInspectorDidCancelFrame(); + void updateEditorUINowIfScheduled(); - String parserMetaData(Deprecated::ScriptValue = Deprecated::ScriptValue()); + bool hasSpellingMarker(int from, int length); + bool hasGrammarMarker(int from, int length); + bool hasAutocorrectedMarker(int from, int length); + void setContinuousSpellCheckingEnabled(bool); + void setAutomaticQuoteSubstitutionEnabled(bool); + void setAutomaticLinkDetectionEnabled(bool); + void setAutomaticDashSubstitutionEnabled(bool); + void setAutomaticTextReplacementEnabled(bool); + void setAutomaticSpellingCorrectionEnabled(bool); - bool hasSpellingMarker(int from, int length, ExceptionCode&); - bool hasGrammarMarker(int from, int length, ExceptionCode&); - bool hasAutocorrectedMarker(int from, int length, ExceptionCode&); - void setContinuousSpellCheckingEnabled(bool enabled, ExceptionCode&); - void setAutomaticQuoteSubstitutionEnabled(bool enabled, ExceptionCode&); - void setAutomaticLinkDetectionEnabled(bool enabled, ExceptionCode&); - void setAutomaticDashSubstitutionEnabled(bool enabled, ExceptionCode&); - void setAutomaticTextReplacementEnabled(bool enabled, ExceptionCode&); - void setAutomaticSpellingCorrectionEnabled(bool enabled, ExceptionCode&); + void handleAcceptedCandidate(const String& candidate, unsigned location, unsigned length); - bool isOverwriteModeEnabled(ExceptionCode&); - void toggleOverwriteModeEnabled(ExceptionCode&); + bool isOverwriteModeEnabled(); + void toggleOverwriteModeEnabled(); - unsigned numberOfScrollableAreas(ExceptionCode&); + ExceptionOr> rangeOfString(const String&, RefPtr&&, const Vector& findOptions); + ExceptionOr countMatchesForText(const String&, const Vector& findOptions, const String& markMatches); + ExceptionOr countFindMatches(const String&, const Vector& findOptions); - bool isPageBoxVisible(int pageNumber, ExceptionCode&); + unsigned numberOfScrollableAreas(); + + ExceptionOr isPageBoxVisible(int pageNumber); static const char* internalsId; InternalSettings* settings() const; unsigned workerThreadCount() const; + bool areSVGAnimationsPaused() const; - void setBatteryStatus(const String& eventType, bool charging, double chargingTime, double dischargingTime, double level, ExceptionCode&); - - void setNetworkInformation(const String& eventType, double bandwidth, bool metered, ExceptionCode&); - - void setDeviceProximity(const String& eventType, double value, double min, double max, ExceptionCode&); + ExceptionOr setDeviceProximity(const String& eventType, double value, double min, double max); enum { // Values need to be kept in sync with Internals.idl. @@ -209,140 +262,283 @@ public: LAYER_TREE_INCLUDES_TILE_CACHES = 2, LAYER_TREE_INCLUDES_REPAINT_RECTS = 4, LAYER_TREE_INCLUDES_PAINTING_PHASES = 8, - LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16 + LAYER_TREE_INCLUDES_CONTENT_LAYERS = 16, + LAYER_TREE_INCLUDES_ACCELERATES_DRAWING = 32, + }; + ExceptionOr layerTreeAsText(Document&, unsigned short flags) const; + ExceptionOr repaintRectsAsText() const; + ExceptionOr scrollingStateTreeAsText() const; + ExceptionOr mainThreadScrollingReasons() const; + ExceptionOr> nonFastScrollableRects() const; + + ExceptionOr setElementUsesDisplayListDrawing(Element&, bool usesDisplayListDrawing); + ExceptionOr setElementTracksDisplayListReplay(Element&, bool isTrackingReplay); + + enum { + // Values need to be kept in sync with Internals.idl. + DISPLAY_LIST_INCLUDES_PLATFORM_OPERATIONS = 1, }; - String layerTreeAsText(Document*, unsigned flags, ExceptionCode&) const; - String layerTreeAsText(Document*, ExceptionCode&) const; - String repaintRectsAsText(ExceptionCode&) const; - String scrollingStateTreeAsText(ExceptionCode&) const; - String mainThreadScrollingReasons(ExceptionCode&) const; - PassRefPtr nonFastScrollableRects(ExceptionCode&) const; + ExceptionOr displayListForElement(Element&, unsigned short flags); + ExceptionOr replayDisplayListForElement(Element&, unsigned short flags); - void garbageCollectDocumentResources(ExceptionCode&) const; + ExceptionOr garbageCollectDocumentResources() const; - void allowRoundingHacks() const; + void beginSimulatedMemoryPressure(); + void endSimulatedMemoryPressure(); + bool isUnderMemoryPressure(); - void insertAuthorCSS(const String&, ExceptionCode&) const; - void insertUserCSS(const String&, ExceptionCode&) const; + ExceptionOr insertAuthorCSS(const String&) const; + ExceptionOr insertUserCSS(const String&) const; -#if ENABLE(INSPECTOR) unsigned numberOfLiveNodes() const; unsigned numberOfLiveDocuments() const; - Vector consoleMessageArgumentCounts() const; - PassRefPtr openDummyInspectorFrontend(const String& url); + + RefPtr openDummyInspectorFrontend(const String& url); void closeDummyInspectorFrontend(); - void setInspectorResourcesDataSizeLimits(int maximumResourcesContentSize, int maximumSingleResourceContentSize, ExceptionCode&); - void setJavaScriptProfilingEnabled(bool enabled, ExceptionCode&); -#endif + ExceptionOr setInspectorIsUnderTest(bool); - String counterValue(Element*); + String counterValue(Element&); - int pageNumber(Element*, float pageWidth = 800, float pageHeight = 600); + int pageNumber(Element&, float pageWidth = 800, float pageHeight = 600); Vector shortcutIconURLs() const; - Vector allIconURLs() const; int numberOfPages(float pageWidthInPixels = 800, float pageHeightInPixels = 600); - String pageProperty(String, int, ExceptionCode& = ASSERT_NO_EXCEPTION) const; - String pageSizeAndMarginsInPixels(int, int, int, int, int, int, int, ExceptionCode& = ASSERT_NO_EXCEPTION) const; + ExceptionOr pageProperty(const String& propertyName, int pageNumber) const; + ExceptionOr pageSizeAndMarginsInPixels(int pageNumber, int width, int height, int marginTop, int marginRight, int marginBottom, int marginLeft) const; + + ExceptionOr pageScaleFactor() const; - void setPageScaleFactor(float scaleFactor, int x, int y, ExceptionCode&); + ExceptionOr setPageScaleFactor(float scaleFactor, int x, int y); + ExceptionOr setPageZoomFactor(float); + ExceptionOr setTextZoomFactor(float); + + ExceptionOr setUseFixedLayout(bool); + ExceptionOr setFixedLayoutSize(int width, int height); + ExceptionOr setViewExposedRect(float left, float top, float width, float height); void setHeaderHeight(float); void setFooterHeight(float); + void setTopContentInset(float); + #if ENABLE(FULLSCREEN_API) - void webkitWillEnterFullScreenForElement(Element*); - void webkitDidEnterFullScreenForElement(Element*); - void webkitWillExitFullScreenForElement(Element*); - void webkitDidExitFullScreenForElement(Element*); + void webkitWillEnterFullScreenForElement(Element&); + void webkitDidEnterFullScreenForElement(Element&); + void webkitWillExitFullScreenForElement(Element&); + void webkitDidExitFullScreenForElement(Element&); #endif - void setApplicationCacheOriginQuota(unsigned long long); + WEBCORE_TESTSUPPORT_EXPORT void setApplicationCacheOriginQuota(unsigned long long); void registerURLSchemeAsBypassingContentSecurityPolicy(const String& scheme); void removeURLSchemeRegisteredAsBypassingContentSecurityPolicy(const String& scheme); - PassRefPtr mallocStatistics() const; - PassRefPtr typeConversions() const; - PassRefPtr memoryInfo() const; + void registerDefaultPortForProtocol(unsigned short port, const String& protocol); + + Ref mallocStatistics() const; + Ref typeConversions() const; + Ref memoryInfo() const; Vector getReferencedFilePaths() const; - void startTrackingRepaints(ExceptionCode&); - void stopTrackingRepaints(ExceptionCode&); - void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(ExceptionCode&); - void updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node*, ExceptionCode&); + ExceptionOr startTrackingRepaints(); + ExceptionOr stopTrackingRepaints(); + + ExceptionOr startTrackingLayerFlushes(); + ExceptionOr layerFlushCount(); + + ExceptionOr startTrackingStyleRecalcs(); + ExceptionOr styleRecalcCount(); + unsigned lastStyleUpdateSize() const; + + ExceptionOr startTrackingCompositingUpdates(); + ExceptionOr compositingUpdateCount(); - PassRefPtr serializeObject(PassRefPtr) const; - PassRefPtr deserializeBuffer(PassRefPtr) const; + ExceptionOr updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(Node*); + unsigned layoutCount() const; - void setUsesOverlayScrollbars(bool enabled); + Ref serializeObject(const RefPtr&) const; + Ref deserializeBuffer(ArrayBuffer&) const; - String getCurrentCursorInfo(ExceptionCode&); + bool isFromCurrentWorld(JSC::JSValue) const; - String markerTextForListItem(Element*, ExceptionCode&); + void setUsesOverlayScrollbars(bool); + void setUsesMockScrollAnimator(bool); + + ExceptionOr getCurrentCursorInfo(); + + String markerTextForListItem(Element&); + + String toolTipFromElement(Element&) const; void forceReload(bool endToEnd); -#if ENABLE(ENCRYPTED_MEDIA_V2) + void enableAutoSizeMode(bool enabled, int minimumWidth, int minimumHeight, int maximumWidth, int maximumHeight); + +#if ENABLE(LEGACY_ENCRYPTED_MEDIA) void initializeMockCDM(); #endif +#if ENABLE(ENCRYPTED_MEDIA) + Ref registerMockCDM(); +#endif + #if ENABLE(SPEECH_SYNTHESIS) void enableMockSpeechSynthesizer(); #endif #if ENABLE(MEDIA_STREAM) + void setMockMediaCaptureDevicesEnabled(bool); +#endif + +#if ENABLE(WEB_RTC) + void enableMockMediaEndpoint(); void enableMockRTCPeerConnectionHandler(); + void emulateRTCPeerConnectionPlatformEvent(RTCPeerConnection&, const String& action); + void useMockRTCPeerConnectionFactory(const String&); #endif - String getImageSourceURL(Element*, ExceptionCode&); + String getImageSourceURL(Element&); #if ENABLE(VIDEO) - void simulateAudioInterruption(Node*); + void simulateAudioInterruption(HTMLMediaElement&); + ExceptionOr mediaElementHasCharacteristic(HTMLMediaElement&, const String&); #endif - bool isSelectPopupVisible(Node*); + bool isSelectPopupVisible(HTMLSelectElement&); - String captionsStyleSheetOverride(ExceptionCode&); - void setCaptionsStyleSheetOverride(const String&, ExceptionCode&); - void setPrimaryAudioTrackLanguageOverride(const String&, ExceptionCode&); - void setCaptionDisplayMode(const String&, ExceptionCode&); + ExceptionOr captionsStyleSheetOverride(); + ExceptionOr setCaptionsStyleSheetOverride(const String&); + ExceptionOr setPrimaryAudioTrackLanguageOverride(const String&); + ExceptionOr setCaptionDisplayMode(const String&); #if ENABLE(VIDEO) - PassRefPtr createTimeRanges(Float32Array* startTimes, Float32Array* endTimes); - double closestTimeToTimeRanges(double time, TimeRanges*); + Ref createTimeRanges(Float32Array& startTimes, Float32Array& endTimes); + double closestTimeToTimeRanges(double time, TimeRanges&); #endif - PassRefPtr selectionBounds(ExceptionCode&); + ExceptionOr> selectionBounds(); #if ENABLE(VIBRATION) bool isVibrating(); #endif - bool isPluginUnavailabilityIndicatorObscured(Element*, ExceptionCode&); + ExceptionOr isPluginUnavailabilityIndicatorObscured(Element&); + bool isPluginSnapshotted(Element&); #if ENABLE(MEDIA_SOURCE) - void initializeMockMediaSource(); + WEBCORE_TESTSUPPORT_EXPORT void initializeMockMediaSource(); + Vector bufferedSamplesForTrackID(SourceBuffer&, const AtomicString&); + Vector enqueuedSamplesForTrackID(SourceBuffer&, const AtomicString&); + void setShouldGenerateTimestamps(SourceBuffer&, bool); #endif - void beginMediaSessionInterruption(); +#if ENABLE(VIDEO) + ExceptionOr beginMediaSessionInterruption(const String&); void endMediaSessionInterruption(const String&); - void setMediaSessionRestrictions(const String& mediaType, const String& restrictions, ExceptionCode& ec); + void applicationDidEnterForeground() const; + void applicationWillEnterBackground() const; + ExceptionOr setMediaSessionRestrictions(const String& mediaType, const String& restrictions); + ExceptionOr mediaSessionRestrictions(const String& mediaType) const; + void setMediaElementRestrictions(HTMLMediaElement&, const String& restrictions); + ExceptionOr postRemoteControlCommand(const String&, float argument); + bool elementIsBlockingDisplaySleep(HTMLMediaElement&) const; +#endif + +#if ENABLE(MEDIA_SESSION) + void sendMediaSessionStartOfInterruptionNotification(MediaSessionInterruptingCategory); + void sendMediaSessionEndOfInterruptionNotification(MediaSessionInterruptingCategory); + String mediaSessionCurrentState(MediaSession&) const; + double mediaElementPlayerVolume(HTMLMediaElement&) const; + enum class MediaControlEvent { PlayPause, NextTrack, PreviousTrack }; + void sendMediaControlEvent(MediaControlEvent); +#endif + +#if ENABLE(WIRELESS_PLAYBACK_TARGET) + void setMockMediaPlaybackTargetPickerEnabled(bool); + ExceptionOr setMockMediaPlaybackTargetPickerState(const String& deviceName, const String& deviceState); +#endif + +#if ENABLE(WEB_AUDIO) + void setAudioContextRestrictions(AudioContext&, const String& restrictions); +#endif + + void simulateSystemSleep() const; + void simulateSystemWake() const; + + enum class PageOverlayType { View, Document }; + ExceptionOr> installMockPageOverlay(PageOverlayType); + ExceptionOr pageOverlayLayerTreeAsText(unsigned short flags) const; + + void setPageMuted(const String&); + String pageMediaState(); + + void setPageDefersLoading(bool); + + RefPtr createFile(const String&); + void queueMicroTask(int); + bool testPreloaderSettingViewport(); + +#if ENABLE(CONTENT_FILTERING) + MockContentFilterSettings& mockContentFilterSettings(); +#endif + +#if ENABLE(CSS_SCROLL_SNAP) + ExceptionOr scrollSnapOffsets(Element&); + void setPlatformMomentumScrollingPredictionEnabled(bool); +#endif + + ExceptionOr pathStringWithShrinkWrappedRects(const Vector& rectComponents, double radius); + + String getCurrentMediaControlsStatusForElement(HTMLMediaElement&); + + String userVisibleString(const DOMURL&); + void setShowAllPlugins(bool); + + String resourceLoadStatisticsForOrigin(const String& origin); + void setResourceLoadStatisticsEnabled(bool); + +#if ENABLE(READABLE_STREAM_API) + bool isReadableStreamDisturbed(JSC::ExecState&, JSC::JSValue); +#endif + + String composedTreeAsText(Node&); + + bool isProcessingUserGesture(); + + RefPtr observeGC(JSC::JSValue); + + enum class UserInterfaceLayoutDirection { LTR, RTL }; + void setUserInterfaceLayoutDirection(UserInterfaceLayoutDirection); + + bool userPrefersReducedMotion() const; + + void reportBacktrace(); + + enum class BaseWritingDirection { Natural, Ltr, Rtl }; + void setBaseWritingDirection(BaseWritingDirection); + +#if ENABLE(POINTER_LOCK) + bool pageHasPendingPointerLock() const; + bool pageHasPointerLock() const; +#endif + + Vector accessKeyModifiers() const; + +#if PLATFORM(IOS) + void setQuickLookPassword(const String&); +#endif + + void setAsRunningUserScripts(Document&); private: - explicit Internals(Document*); + explicit Internals(Document&); Document* contextDocument() const; Frame* frame() const; - Vector iconURLs(Document*, int iconTypesMask) const; - DocumentMarker* markerAt(Node*, const String& markerType, unsigned index, ExceptionCode&); -#if ENABLE(INSPECTOR) - RefPtr m_frontendWindow; - OwnPtr m_frontendChannel; -#endif + ExceptionOr markerAt(Node&, const String& markerType, unsigned index); + + std::unique_ptr m_inspectorFrontend; }; } // namespace WebCore - -#endif -- cgit v1.2.1