diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
| commit | 284837daa07b29d6a63a748544a90b1f5842ac5c (patch) | |
| tree | ecd258180bde91fe741e0cfd2638beb3c6da7e8e /Tools/WebKitTestRunner/TestController.cpp | |
| parent | 2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff) | |
| download | qtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz | |
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Tools/WebKitTestRunner/TestController.cpp')
| -rw-r--r-- | Tools/WebKitTestRunner/TestController.cpp | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/Tools/WebKitTestRunner/TestController.cpp b/Tools/WebKitTestRunner/TestController.cpp index d18fe3f30..af8f702e9 100644 --- a/Tools/WebKitTestRunner/TestController.cpp +++ b/Tools/WebKitTestRunner/TestController.cpp @@ -30,6 +30,9 @@ #include "StringFunctions.h" #include "TestInvocation.h" #include <WebKit2/WKContextPrivate.h> +#include <WebKit2/WKNotification.h> +#include <WebKit2/WKNotificationManager.h> +#include <WebKit2/WKNotificationPermissionRequest.h> #include <WebKit2/WKNumber.h> #include <WebKit2/WKPageGroup.h> #include <WebKit2/WKPagePrivate.h> @@ -333,6 +336,10 @@ void TestController::initialize(int argc, const char* argv[]) }; WKContextSetInjectedBundleClient(m_context.get(), &injectedBundleClient); + WKNotificationManagerRef notificationManager = WKContextGetNotificationManager(m_context.get()); + WKNotificationProvider notificationKit = m_webNotificationProvider.provider(); + WKNotificationManagerSetProvider(notificationManager, ¬ificationKit); + if (testPluginDirectory()) WKContextSetAdditionalPluginsDirectory(m_context.get(), testPluginDirectory()); @@ -382,7 +389,7 @@ void TestController::initialize(int argc, const char* argv[]) 0, // shouldInterruptJavaScript createOtherPage, 0, // mouseDidMoveOverElement - 0, // decidePolicyForNotificationPermissionRequest + decidePolicyForNotificationPermissionRequest, // decidePolicyForNotificationPermissionRequest 0, // unavailablePluginButtonClicked }; WKPageSetPageUIClient(m_mainWebView->page(), &pageUIClient); @@ -468,6 +475,8 @@ bool TestController::resetStateToConsistentValues() WKPreferencesSetAsynchronousPluginInitializationEnabled(preferences, false); WKPreferencesSetAsynchronousPluginInitializationEnabledForAllPlugins(preferences, false); WKPreferencesSetArtificialPluginInitializationDelayEnabled(preferences, false); + WKPreferencesSetTabToLinksEnabled(preferences, false); + WKPreferencesSetInteractiveFormValidationEnabled(preferences, true); // [Qt][WK2]REGRESSION(r104881):It broke hundreds of tests // FIXME: https://bugs.webkit.org/show_bug.cgi?id=76247 @@ -501,6 +510,9 @@ bool TestController::resetStateToConsistentValues() // Re-set to the default backing scale factor by setting the custom scale factor to 0. WKPageSetCustomBackingScaleFactor(m_mainWebView->page(), 0); + // Reset notification permissions + m_webNotificationProvider.reset(); + // Reset main page back to about:blank m_doneResetting = false; @@ -752,6 +764,23 @@ WKRetainPtr<WKTypeRef> TestController::didReceiveSynchronousMessageFromInjectedB return 0; } + if (WKStringIsEqualToUTF8CString(subMessageName, "ContinuousMouseScrollBy")) { + WKRetainPtr<WKStringRef> xKey = adoptWK(WKStringCreateWithUTF8CString("X")); + double x = WKDoubleGetValue(static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, xKey.get()))); + + WKRetainPtr<WKStringRef> yKey = adoptWK(WKStringCreateWithUTF8CString("Y")); + double y = WKDoubleGetValue(static_cast<WKDoubleRef>(WKDictionaryGetItemForKey(messageBodyDictionary, yKey.get()))); + + WKRetainPtr<WKStringRef> pagedKey = adoptWK(WKStringCreateWithUTF8CString("Paged")); + bool paged = static_cast<bool>(WKUInt64GetValue(static_cast<WKUInt64Ref>(WKDictionaryGetItemForKey(messageBodyDictionary, pagedKey.get())))); + + // Forward to WebProcess + WKPageSetShouldSendEventsSynchronously(mainWebView()->page(), true); + m_eventSenderProxy->continuousMouseScrollBy(x, y, paged); + WKPageSetShouldSendEventsSynchronously(mainWebView()->page(), false); + return 0; + } + if (WKStringIsEqualToUTF8CString(subMessageName, "LeapForward")) { WKRetainPtr<WKStringRef> timeKey = adoptWK(WKStringCreateWithUTF8CString("TimeInMilliseconds")); unsigned time = static_cast<unsigned>(WKUInt64GetValue(static_cast<WKUInt64Ref>(WKDictionaryGetItemForKey(messageBodyDictionary, timeKey.get())))); @@ -921,4 +950,19 @@ void TestController::processDidCrash() exit(1); } +void TestController::simulateWebNotificationClick(uint64_t notificationID) +{ + m_webNotificationProvider.simulateWebNotificationClick(notificationID); +} + +void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef page, WKSecurityOriginRef origin, WKNotificationPermissionRequestRef request, const void* clientInfo) +{ + static_cast<TestController*>(const_cast<void*>(clientInfo))->decidePolicyForNotificationPermissionRequest(page, origin, request); +} + +void TestController::decidePolicyForNotificationPermissionRequest(WKPageRef, WKSecurityOriginRef, WKNotificationPermissionRequestRef request) +{ + WKNotificationPermissionRequestAllow(request); +} + } // namespace WTR |
