diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Tools/WebKitTestRunner/InjectedBundle/TestRunner.h | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Tools/WebKitTestRunner/InjectedBundle/TestRunner.h')
-rw-r--r-- | Tools/WebKitTestRunner/InjectedBundle/TestRunner.h | 141 |
1 files changed, 115 insertions, 26 deletions
diff --git a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h index cefb6a5d1..764c9e4a9 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h +++ b/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2011, 2012 Apple Inc. All rights reserved. + * Copyright (C) 2010-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 @@ -23,28 +23,28 @@ * THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef TestRunner_h -#define TestRunner_h +#pragma once #include "JSWrappable.h" +#include "StringFunctions.h" #include <JavaScriptCore/JSRetainPtr.h> -#include <WebKit2/WKBundleScriptWorld.h> -#include <WebKit2/WKRetainPtr.h> +#include <WebKit/WKBundleScriptWorld.h> +#include <WebKit/WKRetainPtr.h> #include <string> -#include <wtf/PassRefPtr.h> +#include <wtf/Ref.h> +#include <wtf/text/WTFString.h> -#if PLATFORM(MAC) +#if PLATFORM(COCOA) #include <wtf/RetainPtr.h> #include <CoreFoundation/CFRunLoop.h> typedef RetainPtr<CFRunLoopTimerRef> PlatformTimerRef; #elif PLATFORM(GTK) -typedef unsigned int PlatformTimerRef; +#include <wtf/RunLoop.h> +namespace WTR { +class TestRunner; +typedef RunLoop::Timer<TestRunner> PlatformTimerRef; +} #elif PLATFORM(EFL) -#if USE(EO) -typedef struct _Eo_Opaque Ecore_Timer; -#else -typedef struct _Ecore_Timer Ecore_Timer; -#endif typedef Ecore_Timer* PlatformTimerRef; #endif @@ -52,7 +52,7 @@ namespace WTR { class TestRunner : public JSWrappable { public: - static PassRefPtr<TestRunner> create(); + static Ref<TestRunner> create(); virtual ~TestRunner(); // JSWrappable @@ -60,13 +60,19 @@ public: void makeWindowObject(JSContextRef, JSObjectRef windowObject, JSValueRef* exception); + bool isWebKit2() const { return true; } + // The basics. + WKURLRef testURL() const { return m_testURL.get(); } + void setTestURL(WKURLRef url) { m_testURL = url; } void dumpAsText(bool dumpPixels); void waitForPolicyDelegate(); void dumpChildFramesAsText() { m_whatToDump = AllFramesText; } + void waitUntilDownloadFinished(); void waitUntilDone(); void notifyDone(); double preciseTime(); + double timeout() { return m_timeout; } // Other dumping. void dumpBackForwardList() { m_shouldDumpBackForwardListsForAllWindows = true; } @@ -84,6 +90,7 @@ public: void dumpApplicationCacheDelegateCallbacks() { m_dumpApplicationCacheDelegateCallbacks = true; } void dumpDatabaseCallbacks() { m_dumpDatabaseCallbacks = true; } void dumpDOMAsWebArchive() { m_whatToDump = DOMAsWebArchive; } + void dumpPolicyDelegateCallbacks() { m_dumpPolicyCallbacks = true; } void setShouldDumpFrameLoadCallbacks(bool value) { m_dumpFrameLoadCallbacks = value; } void setShouldDumpProgressFinishedCallback(bool value) { m_dumpProgressFinishedCallback = value; } @@ -94,11 +101,18 @@ public: void setCanOpenWindows(bool); void setCloseRemainingWindowsWhenComplete(bool value) { m_shouldCloseExtraWindows = value; } void setXSSAuditorEnabled(bool); + void setShadowDOMEnabled(bool); + void setCustomElementsEnabled(bool); + void setModernMediaControlsEnabled(bool); + void setWebGL2Enabled(bool); + void setFetchAPIEnabled(bool); void setAllowUniversalAccessFromFileURLs(bool); void setAllowFileAccessFromFileURLs(bool); + void setNeedsStorageAccessFromFileURLsQuirk(bool); void setPluginsEnabled(bool); void setJavaScriptCanAccessClipboard(bool); void setPrivateBrowsingEnabled(bool); + void setUseDashboardCompatibilityMode(bool); void setPopupBlockingEnabled(bool); void setAuthorAndUserStylesEnabled(bool); void setCustomPolicyDelegate(bool enabled, bool permissive = false); @@ -112,6 +126,12 @@ public: void dispatchPendingLoadRequests(); void setCacheModel(int); void setAsynchronousSpellCheckingEnabled(bool); + void setDownloadAttributeEnabled(bool); + void setAllowsAnySSLCertificate(bool); + void setEncryptedMediaAPIEnabled(bool); + void setSubtleCryptoEnabled(bool); + void setMediaStreamEnabled(bool); + void setPeerConnectionEnabled(bool); // Special DOM functions. void clearBackForwardList(); @@ -151,7 +171,9 @@ public: void setPrinting() { m_isPrinting = true; } // Authentication + void setRejectsProtectionSpaceAndContinueForAuthenticationChallenges(bool); void setHandlesAuthenticationChallenges(bool); + void setShouldLogCanAuthenticateAgainstProtectionSpace(bool); void setAuthenticationUsername(JSStringRef); void setAuthenticationPassword(JSStringRef); @@ -181,6 +203,7 @@ public: bool shouldDumpApplicationCacheDelegateCallbacks() const { return m_dumpApplicationCacheDelegateCallbacks; } bool shouldDumpDatabaseCallbacks() const { return m_dumpDatabaseCallbacks; } bool shouldDumpSelectionRect() const { return m_dumpSelectionRect; } + bool shouldDumpPolicyCallbacks() const { return m_dumpPolicyCallbacks; } bool isPolicyDelegateEnabled() const { return m_policyDelegateEnabled; } bool isPolicyDelegatePermissive() const { return m_policyDelegatePermissive; } @@ -188,6 +211,7 @@ public: bool waitToDump() const { return m_waitToDump; } void waitToDumpWatchdogTimerFired(); void invalidateWaitToDumpWatchdogTimer(); + bool shouldFinishAfterDownload() const { return m_shouldFinishAfterDownload; } bool shouldAllowEditing() const { return m_shouldAllowEditing; } @@ -198,7 +222,8 @@ public: void showWebInspector(); void closeWebInspector(); - void evaluateInWebInspector(long callId, JSStringRef script); + void evaluateInWebInspector(JSStringRef script); + JSRetainPtr<JSStringRef> inspectorTestStubURL(); void setPOSIXLocale(JSStringRef); @@ -206,6 +231,8 @@ public: void setWillSendRequestReturnsNull(bool f) { m_willSendRequestReturnsNull = f; } bool willSendRequestReturnsNullOnRedirect() const { return m_willSendRequestReturnsNullOnRedirect; } void setWillSendRequestReturnsNullOnRedirect(bool f) { m_willSendRequestReturnsNullOnRedirect = f; } + void setWillSendRequestAddsHTTPBody(JSStringRef body) { m_willSendRequestHTTPBody = toWTFString(toWK(body)); } + String willSendRequestHTTPBody() const { return m_willSendRequestHTTPBody; } void setTextDirection(JSStringRef); @@ -232,6 +259,8 @@ public: void setWindowIsKey(bool); + void setViewSize(double width, double height); + void callAddChromeInputFieldCallback(); void callRemoveChromeInputFieldCallback(); void callFocusWebViewCallback(); @@ -247,45 +276,98 @@ public: bool hasCustomFullScreenBehavior() const { return m_customFullScreenBehavior; } // Web notifications. - void grantWebNotificationPermission(JSStringRef origin); - void denyWebNotificationPermission(JSStringRef origin); - void removeAllWebNotificationPermissions(); - void simulateWebNotificationClick(JSValueRef notification); + static void grantWebNotificationPermission(JSStringRef origin); + static void denyWebNotificationPermission(JSStringRef origin); + static void removeAllWebNotificationPermissions(); + static void simulateWebNotificationClick(JSValueRef notification); // Geolocation. void setGeolocationPermission(bool); void setMockGeolocationPosition(double latitude, double longitude, double accuracy, JSValueRef altitude, JSValueRef altitudeAccuracy, JSValueRef heading, JSValueRef speed); void setMockGeolocationPositionUnavailableError(JSStringRef message); + bool isGeolocationProviderActive(); + + // MediaStream + void setUserMediaPermission(bool); + void setUserMediaPersistentPermissionForOrigin(bool permission, JSStringRef origin, JSStringRef parentOrigin); + unsigned userMediaPermissionRequestCountForOrigin(JSStringRef origin, JSStringRef parentOrigin) const; + void resetUserMediaPermissionRequestCountForOrigin(JSStringRef origin, JSStringRef parentOrigin); void setPageVisibility(JSStringRef state); void resetPageVisibility(); bool callShouldCloseOnWebView(); - void setCustomTimeout(int duration); + void setCustomTimeout(int duration) { m_timeout = duration; } // Work queue. void queueBackNavigation(unsigned howFarBackward); void queueForwardNavigation(unsigned howFarForward); - void queueLoad(JSStringRef url, JSStringRef target); + void queueLoad(JSStringRef url, JSStringRef target, bool shouldOpenExternalURLs); void queueLoadHTMLString(JSStringRef content, JSStringRef baseURL, JSStringRef unreachableURL); void queueReload(); void queueLoadingScript(JSStringRef script); void queueNonLoadingScript(JSStringRef script); bool secureEventInputIsEnabled() const; - + + JSValueRef failNextNewCodeBlock(); JSValueRef numberOfDFGCompiles(JSValueRef theFunction); JSValueRef neverInlineFunction(JSValueRef theFunction); -private: - static const double waitToDumpWatchdogTimerInterval; + bool shouldDecideNavigationPolicyAfterDelay() const { return m_shouldDecideNavigationPolicyAfterDelay; } + void setShouldDecideNavigationPolicyAfterDelay(bool); + void setNavigationGesturesEnabled(bool); + void setIgnoresViewportScaleLimits(bool); + void setShouldDownloadUndisplayableMIMETypes(bool); + + void runUIScript(JSStringRef script, JSValueRef callback); + void runUIScriptCallback(unsigned callbackID, JSStringRef result); + + void installDidBeginSwipeCallback(JSValueRef); + void installWillEndSwipeCallback(JSValueRef); + void installDidEndSwipeCallback(JSValueRef); + void installDidRemoveSwipeSnapshotCallback(JSValueRef); + void callDidBeginSwipeCallback(); + void callWillEndSwipeCallback(); + void callDidEndSwipeCallback(); + void callDidRemoveSwipeSnapshotCallback(); + + void clearTestRunnerCallbacks(); + void accummulateLogsForChannel(JSStringRef channel); + + unsigned imageCountInGeneralPasteboard() const; + + // Gamepads + void connectMockGamepad(unsigned index); + void disconnectMockGamepad(unsigned index); + void setMockGamepadDetails(unsigned index, JSStringRef gamepadID, unsigned axisCount, unsigned buttonCount); + void setMockGamepadAxisValue(unsigned index, unsigned axisIndex, double value); + void setMockGamepadButtonValue(unsigned index, unsigned buttonIndex, double value); + + // Resource Load Statistics + void installStatisticsDidModifyDataRecordsCallback(JSValueRef callback); + void statisticsDidModifyDataRecordsCallback(); + void statisticsFireDataModificationHandler(); + void setStatisticsPrevalentResource(JSStringRef hostName, bool value); + bool isStatisticsPrevalentResource(JSStringRef hostName); + void setStatisticsHasHadUserInteraction(JSStringRef hostName, bool value); + bool isStatisticsHasHadUserInteraction(JSStringRef hostName); + void setStatisticsTimeToLiveUserInteraction(double seconds); + void setStatisticsNotifyPagesWhenDataRecordsWereScanned(bool); + void setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval(bool); + void setStatisticsMinimumTimeBetweeenDataRecordsRemoval(double); + void statisticsResetToConsistentState(); + +private: TestRunner(); void platformInitialize(); void initializeWaitToDumpWatchdogTimerIfNeeded(); + WKRetainPtr<WKURLRef> m_testURL; // Set by InjectedBundlePage once provisional load starts. + WhatToDump m_whatToDump; bool m_shouldDumpAllFrameScrollPositions; bool m_shouldDumpBackForwardListsForAllWindows; @@ -306,6 +388,7 @@ private: bool m_dumpWillCacheResponse; bool m_dumpApplicationCacheDelegateCallbacks; bool m_dumpDatabaseCallbacks; + bool m_dumpPolicyCallbacks { false }; bool m_disallowIncreaseForApplicationCacheQuota; bool m_waitToDump; // True if waitUntilDone() has been called, but notifyDone() has not yet been called. bool m_testRepaint; @@ -315,6 +398,7 @@ private: bool m_willSendRequestReturnsNull; bool m_willSendRequestReturnsNullOnRedirect; bool m_shouldStopProvisionalFrameLoads; + String m_willSendRequestHTTPBody; bool m_policyDelegateEnabled; bool m_policyDelegatePermissive; @@ -327,12 +411,17 @@ private: double m_databaseDefaultQuota; double m_databaseMaxQuota; + bool m_shouldDecideNavigationPolicyAfterDelay { false }; + bool m_shouldFinishAfterDownload { false }; + bool m_userStyleSheetEnabled; WKRetainPtr<WKStringRef> m_userStyleSheetLocation; + WKRetainPtr<WKArrayRef> m_allowedHosts; + + size_t m_userMediaPermissionRequestCount { 0 }; + PlatformTimerRef m_waitToDumpWatchdogTimer; }; } // namespace WTR - -#endif // TestRunner_h |