https://bugs.webkit.org/show_bug.cgi?id=138831
Reviewed by Sergio Villar Senin.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
(WTR::TestRunner::platformInitialize):
(WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
(WTR::waitToDumpWatchdogTimerCallback): Deleted.
* WebKitTestRunner/gtk/TestControllerGtk.cpp:
(WTR::TestController::notifyDone):
(WTR::TestController::platformRunUntil):
(WTR::cancelTimeout): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@176921
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
2014-12-07 Carlos Garcia Campos <cgarcia@igalia.com>
2014-12-07 Carlos Garcia Campos <cgarcia@igalia.com>
+ [GTK] Use GMainLoopSource in WebKitTestRunner
+ https://bugs.webkit.org/show_bug.cgi?id=138831
+
+ Reviewed by Sergio Villar Senin.
+
+ * WebKitTestRunner/InjectedBundle/TestRunner.h:
+ * WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:
+ (WTR::TestRunner::platformInitialize):
+ (WTR::TestRunner::invalidateWaitToDumpWatchdogTimer):
+ (WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):
+ (WTR::waitToDumpWatchdogTimerCallback): Deleted.
+ * WebKitTestRunner/gtk/TestControllerGtk.cpp:
+ (WTR::TestController::notifyDone):
+ (WTR::TestController::platformRunUntil):
+ (WTR::cancelTimeout): Deleted.
+
+2014-12-07 Carlos Garcia Campos <cgarcia@igalia.com>
+
[GTK] Missing API detected in GObject DOM bindings after r176630
https://bugs.webkit.org/show_bug.cgi?id=139201
[GTK] Missing API detected in GObject DOM bindings after r176630
https://bugs.webkit.org/show_bug.cgi?id=139201
#include <CoreFoundation/CFRunLoop.h>
typedef RetainPtr<CFRunLoopTimerRef> PlatformTimerRef;
#elif PLATFORM(GTK)
#include <CoreFoundation/CFRunLoop.h>
typedef RetainPtr<CFRunLoopTimerRef> PlatformTimerRef;
#elif PLATFORM(GTK)
-typedef unsigned int PlatformTimerRef;
+#include <wtf/gobject/GMainLoopSource.h>
+typedef GMainLoopSource PlatformTimerRef;
#elif PLATFORM(EFL)
typedef Ecore_Timer* PlatformTimerRef;
#endif
#elif PLATFORM(EFL)
typedef Ecore_Timer* PlatformTimerRef;
#endif
-static gboolean waitToDumpWatchdogTimerCallback(gpointer)
-{
- InjectedBundle::shared().testRunner()->waitToDumpWatchdogTimerFired();
- return FALSE;
-}
-
void TestRunner::platformInitialize()
{
void TestRunner::platformInitialize()
{
- m_waitToDumpWatchdogTimer = 0;
}
void TestRunner::invalidateWaitToDumpWatchdogTimer()
{
}
void TestRunner::invalidateWaitToDumpWatchdogTimer()
{
- if (!m_waitToDumpWatchdogTimer)
- return;
- g_source_remove(m_waitToDumpWatchdogTimer);
- m_waitToDumpWatchdogTimer = 0;
+ m_waitToDumpWatchdogTimer.cancel();
}
void TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded()
{
}
void TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded()
{
- if (m_waitToDumpWatchdogTimer)
+ if (m_waitToDumpWatchdogTimer.isScheduled())
- m_waitToDumpWatchdogTimer = g_timeout_add(waitToDumpWatchdogTimerInterval * 1000,
- waitToDumpWatchdogTimerCallback, 0);
- g_source_set_name_by_id(m_waitToDumpWatchdogTimer, "[WebKit] waitToDumpWatchdogTimerCallback");
+ m_waitToDumpWatchdogTimer.scheduleAfterDelay("[WTR] waitToDumpWatchdogTimerCallback", [this] { waitToDumpWatchdogTimerFired(); },
+ std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(waitToDumpWatchdogTimerInterval)));
}
JSRetainPtr<JSStringRef> TestRunner::pathToLocalResource(JSStringRef url)
}
JSRetainPtr<JSStringRef> TestRunner::pathToLocalResource(JSStringRef url)
#include <gtk/gtk.h>
#include <wtf/Platform.h>
#include <gtk/gtk.h>
#include <wtf/Platform.h>
+#include <wtf/gobject/GMainLoopSource.h>
#include <wtf/gobject/GUniquePtr.h>
#include <wtf/text/WTFString.h>
namespace WTR {
#include <wtf/gobject/GUniquePtr.h>
#include <wtf/text/WTFString.h>
namespace WTR {
-static guint gTimeoutSourceId = 0;
-
-static void cancelTimeout()
-{
- if (!gTimeoutSourceId)
- return;
- g_source_remove(gTimeoutSourceId);
- gTimeoutSourceId = 0;
-}
+static GMainLoopSource timeoutSource;
void TestController::notifyDone()
{
gtk_main_quit();
void TestController::notifyDone()
{
gtk_main_quit();
+ timeoutSource.cancel();
}
void TestController::platformInitialize()
}
void TestController::platformInitialize()
-static gboolean timeoutCallback(gpointer)
-{
- fprintf(stderr, "FAIL: TestControllerRunLoop timed out.\n");
- gtk_main_quit();
- return FALSE;
-}
-
void TestController::platformWillRunTest(const TestInvocation&)
{
}
void TestController::platformRunUntil(bool&, double timeout)
{
void TestController::platformWillRunTest(const TestInvocation&)
{
}
void TestController::platformRunUntil(bool&, double timeout)
{
if (timeout != m_noTimeout) {
if (timeout != m_noTimeout) {
- gTimeoutSourceId = g_timeout_add(timeout * 1000, timeoutCallback, 0);
- g_source_set_name_by_id(gTimeoutSourceId, "[WebKit] timeoutCallback");
- }
+ timeoutSource.scheduleAfterDelay("[WTR] Test timeout source", [] {
+ fprintf(stderr, "FAIL: TestControllerRunLoop timed out.\n");
+ gtk_main_quit();
+ }, std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::duration<double>(timeout)));
+ } else
+ timeoutSource.cancel();