Unreviewed, rolling out r202580.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Jun 2016 04:49:27 +0000 (04:49 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 29 Jun 2016 04:49:27 +0000 (04:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=159245

Caused all WKTR tests to fail on GuardMalloc and Production
only for unknown reasons, investigating offline. (Requested by
brrian on #webkit).

Reverted changeset:

"RunLoop::Timer should use constructor templates instead of
class templates"
https://bugs.webkit.org/show_bug.cgi?id=159153
http://trac.webkit.org/changeset/202580

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

89 files changed:
Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp
Source/WTF/ChangeLog
Source/WTF/wtf/RunLoop.h
Source/WebCore/ChangeLog
Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp
Source/WebCore/Modules/mediasession/WebMediaSessionManager.h
Source/WebCore/page/WheelEventTestTrigger.cpp
Source/WebCore/page/WheelEventTestTrigger.h
Source/WebCore/page/mac/TextIndicatorWindow.h
Source/WebCore/page/mac/TextIndicatorWindow.mm
Source/WebCore/platform/MainThreadSharedTimer.h
Source/WebCore/platform/cocoa/ScrollController.h
Source/WebCore/platform/cocoa/ScrollController.mm
Source/WebCore/platform/glib/MainThreadSharedTimerGLib.cpp
Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.cpp
Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.h
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp
Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h
Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp
Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp
Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h
Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp
Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.h
Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp
Source/WebCore/platform/mock/MockRealtimeVideoSource.h
Source/WebCore/platform/network/ResourceHandleInternal.h
Source/WebKit2/ChangeLog
Source/WebKit2/NetworkProcess/Downloads/soup/DownloadSoup.cpp
Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm
Source/WebKit2/PluginProcess/PluginControllerProxy.cpp
Source/WebKit2/PluginProcess/PluginControllerProxy.h
Source/WebKit2/PluginProcess/PluginProcess.cpp
Source/WebKit2/PluginProcess/PluginProcess.h
Source/WebKit2/Shared/ChildProcess.cpp
Source/WebKit2/Shared/ChildProcess.h
Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h
Source/WebKit2/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm
Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
Source/WebKit2/UIProcess/DrawingAreaProxy.cpp
Source/WebKit2/UIProcess/DrawingAreaProxy.h
Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp
Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h
Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp
Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.h
Source/WebKit2/UIProcess/ProcessThrottler.cpp
Source/WebKit2/UIProcess/ProcessThrottler.h
Source/WebKit2/UIProcess/ResponsivenessTimer.cpp
Source/WebKit2/UIProcess/ResponsivenessTimer.h
Source/WebKit2/UIProcess/ViewGestureController.cpp
Source/WebKit2/UIProcess/VisitedLinkStore.cpp
Source/WebKit2/UIProcess/VisitedLinkStore.h
Source/WebKit2/UIProcess/WebInspectorProxy.cpp
Source/WebKit2/UIProcess/WebInspectorProxy.h
Source/WebKit2/UIProcess/WebProcessPool.cpp
Source/WebKit2/UIProcess/WebProcessPool.h
Source/WebKit2/UIProcess/gtk/GestureController.cpp
Source/WebKit2/UIProcess/gtk/GestureController.h
Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp
Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.h
Source/WebKit2/UIProcess/mac/ViewGestureController.h
Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp
Source/WebKit2/WebProcess/Network/WebLoaderStrategy.h
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp
Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h
Source/WebKit2/WebProcess/Plugins/PluginView.cpp
Source/WebKit2/WebProcess/Plugins/PluginView.h
Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp
Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h
Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp
Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h
Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp
Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h
Source/WebKit2/WebProcess/WebPage/WebPage.cpp
Source/WebKit2/WebProcess/WebPage/WebPage.h
Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp
Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h
Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h
Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm
Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp
Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp
Tools/WebKitTestRunner/InjectedBundle/TestRunner.h

index 486bc21..fd8e9ac 100644 (file)
@@ -1,3 +1,19 @@
+2016-06-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r202580.
+        https://bugs.webkit.org/show_bug.cgi?id=159245
+
+        Caused all WKTR tests to fail on GuardMalloc and Production
+        only for unknown reasons, investigating offline. (Requested by
+        brrian on #webkit).
+
+        Reverted changeset:
+
+        "RunLoop::Timer should use constructor templates instead of
+        class templates"
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+        http://trac.webkit.org/changeset/202580
+
 2016-06-28  Keith Miller  <keith_miller@apple.com>
 
         We should not crash there is a finally inside a for-in loop
index 4055bae..d99a1fc 100644 (file)
@@ -55,13 +55,13 @@ private:
 
     HeapFrontendDispatcher& m_frontendDispatcher;
     Vector<GarbageCollectionData> m_collections;
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<SendGarbageCollectionEventsTask> m_timer;
     Lock m_mutex;
 };
 
 SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask(HeapFrontendDispatcher& frontendDispatcher)
     : m_frontendDispatcher(frontendDispatcher)
-    , m_timer(RunLoop::current(), *this, &SendGarbageCollectionEventsTask::timerFired)
+    , m_timer(RunLoop::current(), this, &SendGarbageCollectionEventsTask::timerFired)
 {
 }
 
index 3ed9bb6..ab239d8 100644 (file)
@@ -1,3 +1,19 @@
+2016-06-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r202580.
+        https://bugs.webkit.org/show_bug.cgi?id=159245
+
+        Caused all WKTR tests to fail on GuardMalloc and Production
+        only for unknown reasons, investigating offline. (Requested by
+        brrian on #webkit).
+
+        Reverted changeset:
+
+        "RunLoop::Timer should use constructor templates instead of
+        class templates"
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+        http://trac.webkit.org/changeset/202580
+
 2016-06-28  Brian Burg  <bburg@apple.com>
 
         RunLoop::Timer should use constructor templates instead of class templates
index e6a84a4..3611d7a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010, 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies)
  * Portions Copyright (c) 2010 Motorola Mobility, Inc.  All rights reserved.
  *
@@ -128,25 +128,23 @@ public:
 #endif
     };
 
+    template <typename TimerFiredClass>
     class Timer : public TimerBase {
     public:
-        template <typename TimerFiredClass, typename TimerFiredBaseClass>
-        Timer(RunLoop& runLoop, TimerFiredClass& object, void (TimerFiredBaseClass::*function)())
-            : TimerBase(runLoop)
-            , m_function(std::bind(function, &object))
-        {
-        }
+        typedef void (TimerFiredClass::*TimerFiredFunction)();
 
-        Timer(RunLoop& runLoop, std::function<void ()> function)
+        Timer(RunLoop& runLoop, TimerFiredClass* o, TimerFiredFunction f)
             : TimerBase(runLoop)
-            , m_function(WTFMove(function))
+            , m_object(o)
+            , m_function(f)
         {
         }
 
     private:
-        virtual void fired() { m_function(); }
+        virtual void fired() { (m_object->*m_function)(); }
 
-        std::function<void ()> m_function;
+        TimerFiredClass* m_object;
+        TimerFiredFunction m_function;
     };
 
     class Holder;
index 94ce179..52e83d9 100644 (file)
@@ -1,3 +1,19 @@
+2016-06-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r202580.
+        https://bugs.webkit.org/show_bug.cgi?id=159245
+
+        Caused all WKTR tests to fail on GuardMalloc and Production
+        only for unknown reasons, investigating offline. (Requested by
+        brrian on #webkit).
+
+        Reverted changeset:
+
+        "RunLoop::Timer should use constructor templates instead of
+        class templates"
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+        http://trac.webkit.org/changeset/202580
+
 2016-06-28  Benjamin Poulain  <benjamin@webkit.org>
 
         Rename ChildrenAffectedByActive to StyleAffectedByActive
index 32660c3..7a3369f 100644 (file)
@@ -127,8 +127,8 @@ WebCore::MediaPlaybackTargetPicker& WebMediaSessionManager::targetPicker()
 }
 
 WebMediaSessionManager::WebMediaSessionManager()
-    : m_taskTimer(RunLoop::current(), *this, &WebMediaSessionManager::taskTimerFired)
-    , m_watchdogTimer(RunLoop::current(), *this, &WebMediaSessionManager::watchdogTimerFired)
+    : m_taskTimer(RunLoop::current(), this, &WebMediaSessionManager::taskTimerFired)
+    , m_watchdogTimer(RunLoop::current(), this, &WebMediaSessionManager::watchdogTimerFired)
 {
 }
 
index 6be79ed..2f8e909 100644 (file)
@@ -96,8 +96,8 @@ private:
 
     void watchdogTimerFired();
 
-    RunLoop::Timer m_taskTimer;
-    RunLoop::Timer m_watchdogTimer;
+    RunLoop::Timer<WebMediaSessionManager> m_taskTimer;
+    RunLoop::Timer<WebMediaSessionManager> m_watchdogTimer;
 
     Vector<std::unique_ptr<ClientState>> m_clientState;
     RefPtr<MediaPlaybackTarget> m_playbackTarget;
index 7fad1b7..39887f1 100644 (file)
@@ -39,7 +39,7 @@
 namespace WebCore {
 
 WheelEventTestTrigger::WheelEventTestTrigger()
-    : m_testTriggerTimer(RunLoop::current(), *this, &WheelEventTestTrigger::triggerTestTimerFired)
+    : m_testTriggerTimer(RunLoop::current(), this, &WheelEventTestTrigger::triggerTestTimerFired)
 {
 }
 
index 1c27a0e..b8c9b9d 100644 (file)
@@ -59,7 +59,7 @@ public:
 
 private:
     std::function<void()> m_testNotificationCallback;
-    RunLoop::Timer m_testTriggerTimer;
+    RunLoop::Timer<WheelEventTestTrigger> m_testTriggerTimer;
     mutable Lock m_testTriggerMutex;
     WTF::HashMap<ScrollableAreaIdentifier, std::set<DeferTestTriggerReason>> m_deferTestTriggerReasons;
 };
index 5092980..c6be84e 100644 (file)
@@ -74,7 +74,7 @@ private:
     RetainPtr<NSWindow> m_textIndicatorWindow;
     RetainPtr<WebTextIndicatorView> m_textIndicatorView;
 
-    RunLoop::Timer m_temporaryTextIndicatorTimer;
+    RunLoop::Timer<TextIndicatorWindow> m_temporaryTextIndicatorTimer;
 };
 
 #endif // PLATFORM(MAC)
index 690f91b..364a9a8 100644 (file)
@@ -404,7 +404,7 @@ namespace WebCore {
 
 TextIndicatorWindow::TextIndicatorWindow(NSView *targetView)
     : m_targetView(targetView)
-    , m_temporaryTextIndicatorTimer(RunLoop::main(), *this, &TextIndicatorWindow::startFadeOut)
+    , m_temporaryTextIndicatorTimer(RunLoop::main(), this, &TextIndicatorWindow::startFadeOut)
 {
 }
 
index e4f313d..f7a0c91 100644 (file)
@@ -55,7 +55,7 @@ private:
 
     std::function<void()> m_firedFunction;
 #if PLATFORM(GTK)
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<MainThreadSharedTimer> m_timer;
 #endif
 };
 
index 02c5019..1b64812 100644 (file)
@@ -177,7 +177,7 @@ private:
     CFTimeInterval m_startTime { 0 };
     FloatSize m_startStretch;
     FloatSize m_origVelocity;
-    RunLoop::Timer m_snapRubberbandTimer;
+    RunLoop::Timer<ScrollController> m_snapRubberbandTimer;
 #endif
 
 #if ENABLE(CSS_SCROLL_SNAP)
@@ -187,7 +187,7 @@ private:
     std::unique_ptr<ScrollSnapAnimatorState> m_verticalScrollSnapState;
     std::unique_ptr<ScrollSnapAnimationCurveState> m_scrollSnapCurveState;
 #if PLATFORM(MAC)
-    RunLoop::Timer m_scrollSnapTimer;
+    RunLoop::Timer<ScrollController> m_scrollSnapTimer;
 #endif
 #endif
 
index 9b239bc..cd6fdbe 100644 (file)
@@ -121,10 +121,10 @@ static float scrollWheelMultiplier()
 ScrollController::ScrollController(ScrollControllerClient& client)
     : m_client(client)
 #if ENABLE(RUBBER_BANDING)
-    , m_snapRubberbandTimer(RunLoop::current(), *this, &ScrollController::snapRubberBandTimerFired)
+    , m_snapRubberbandTimer(RunLoop::current(), this, &ScrollController::snapRubberBandTimerFired)
 #endif
 #if ENABLE(CSS_SCROLL_SNAP) && PLATFORM(MAC)
-    , m_scrollSnapTimer(RunLoop::current(), *this, &ScrollController::scrollSnapTimerFired)
+    , m_scrollSnapTimer(RunLoop::current(), this, &ScrollController::scrollSnapTimerFired)
 #endif
 {
 }
index 72b8606..7dca387 100644 (file)
@@ -33,7 +33,7 @@
 namespace WebCore {
 
 MainThreadSharedTimer::MainThreadSharedTimer()
-    : m_timer(RunLoop::main(), *this, &MainThreadSharedTimer::fired)
+    : m_timer(RunLoop::main(), this, &MainThreadSharedTimer::fired)
 {
     // This is GDK_PRIORITY_REDRAW, but we don't want to depend on GDK here just to use a constant.
     m_timer.setPriority(G_PRIORITY_HIGH_IDLE + 20);
index df010a7..4931686 100644 (file)
@@ -37,7 +37,7 @@ static const double pendingActionInterval = 1.0 / 10.0;
 
 MediaPlaybackTargetPicker::MediaPlaybackTargetPicker(Client& client)
     : m_client(&client)
-    , m_pendingActionTimer(RunLoop::main(), *this, &MediaPlaybackTargetPicker::pendingActionTimerFired)
+    , m_pendingActionTimer(RunLoop::main(), this, &MediaPlaybackTargetPicker::pendingActionTimerFired)
 {
 }
 
index cd3e614..afe0bd3 100644 (file)
@@ -79,7 +79,7 @@ private:
 
     PendingActionFlags m_pendingActionFlags { 0 };
     Client* m_client;
-    RunLoop::Timer m_pendingActionTimer;
+    RunLoop::Timer<MediaPlaybackTargetPicker> m_pendingActionTimer;
 };
 
 } // namespace WebCore
index f2c2d91..a06afa5 100644 (file)
@@ -163,7 +163,7 @@ MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer(MediaPlayer* player)
     , m_volumeAndMuteInitialized(false)
     , m_hasVideo(false)
     , m_hasAudio(false)
-    , m_readyTimerHandler(RunLoop::main(), *this, &MediaPlayerPrivateGStreamer::readyTimerFired)
+    , m_readyTimerHandler(RunLoop::main(), this, &MediaPlayerPrivateGStreamer::readyTimerFired)
     , m_totalBytes(0)
     , m_preservesPitch(false)
 #if ENABLE(WEB_AUDIO)
index a772be4..24139cf 100644 (file)
@@ -231,7 +231,7 @@ private:
     bool m_volumeAndMuteInitialized;
     bool m_hasVideo;
     bool m_hasAudio;
-    RunLoop::Timer m_readyTimerHandler;
+    RunLoop::Timer<MediaPlayerPrivateGStreamer> m_readyTimerHandler;
     mutable unsigned long long m_totalBytes;
     URL m_url;
     bool m_preservesPitch;
index 0c99e8c..6494d0e 100644 (file)
@@ -150,7 +150,7 @@ MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase(MediaPlayer* pl
     , m_readyState(MediaPlayer::HaveNothing)
     , m_networkState(MediaPlayer::Empty)
 #if USE(GSTREAMER_GL)
-    , m_drawTimer(RunLoop::main(), *this, &MediaPlayerPrivateGStreamerBase::repaint)
+    , m_drawTimer(RunLoop::main(), this, &MediaPlayerPrivateGStreamerBase::repaint)
 #endif
     , m_usingFallbackVideoSink(false)
     , m_videoSourceRotation(NoVideoSourceRotation)
index 1be91ea..d6bd904 100644 (file)
@@ -182,7 +182,7 @@ protected:
     mutable GMutex m_sampleMutex;
     GRefPtr<GstSample> m_sample;
 #if USE(GSTREAMER_GL)
-    RunLoop::Timer m_drawTimer;
+    RunLoop::Timer<MediaPlayerPrivateGStreamerBase> m_drawTimer;
 #endif
     mutable FloatSize m_videoSize;
     bool m_usingFallbackVideoSink;
index 2aa6462..642610f 100644 (file)
@@ -74,7 +74,7 @@ class VideoRenderRequestScheduler {
 public:
     VideoRenderRequestScheduler()
 #if !USE(COORDINATED_GRAPHICS_THREADED)
-        : m_timer(RunLoop::main(), *this, &VideoRenderRequestScheduler::render)
+        : m_timer(RunLoop::main(), this, &VideoRenderRequestScheduler::render)
 #endif
     {
 #if PLATFORM(GTK) && !USE(COORDINATED_GRAPHICS_THREADED)
@@ -140,7 +140,7 @@ private:
     GRefPtr<GstSample> m_sample;
 
 #if !USE(COORDINATED_GRAPHICS_THREADED)
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<VideoRenderRequestScheduler> m_timer;
     Condition m_dataCondition;
     GRefPtr<WebKitVideoSink> m_sink;
 #endif
index 73c794e..5e3c82f 100644 (file)
@@ -41,7 +41,7 @@ namespace WebCore {
 TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy()
     : m_compositor(nullptr)
     , m_targetLayer(nullptr)
-    , m_releaseUnusedBuffersTimer(RunLoop::current(), *this, &TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired)
+    , m_releaseUnusedBuffersTimer(RunLoop::current(), this, &TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired)
 {
 }
 
@@ -66,7 +66,7 @@ void TextureMapperPlatformLayerProxy::activateOnCompositingThread(Compositor* co
     if (m_targetLayer && m_currentBuffer)
         m_targetLayer->setContentsLayer(m_currentBuffer.get());
 
-    m_compositorThreadUpdateTimer = std::make_unique<RunLoop::Timer>(RunLoop::current(), *this, &TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired);
+    m_compositorThreadUpdateTimer = std::make_unique<RunLoop::Timer<TextureMapperPlatformLayerProxy>>(RunLoop::current(), this, &TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired);
 }
 
 void TextureMapperPlatformLayerProxy::invalidate()
index c600aa1..4b54214 100644 (file)
@@ -93,13 +93,13 @@ private:
 
     Vector<std::unique_ptr<TextureMapperPlatformLayerBuffer>> m_usedBuffers;
 
-    RunLoop::Timer m_releaseUnusedBuffersTimer;
+    RunLoop::Timer<TextureMapperPlatformLayerProxy> m_releaseUnusedBuffersTimer;
 #ifndef NDEBUG
     ThreadIdentifier m_compositorThreadID { 0 };
 #endif
 
     void compositorThreadUpdateTimerFired();
-    std::unique_ptr<RunLoop::Timer> m_compositorThreadUpdateTimer;
+    std::unique_ptr<RunLoop::Timer<TextureMapperPlatformLayerProxy>> m_compositorThreadUpdateTimer;
     std::function<void()> m_compositorThreadUpdateFunction;
 };
 
index fd246e2..1a60ca2 100644 (file)
@@ -41,7 +41,7 @@ static const double timerInterval = 1.0 / 10.0;
 
 MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock(MediaPlaybackTargetPicker::Client& client)
     : MediaPlaybackTargetPicker(client)
-    , m_timer(RunLoop::main(), *this, &MediaPlaybackTargetPickerMock::timerFired)
+    , m_timer(RunLoop::main(), this, &MediaPlaybackTargetPickerMock::timerFired)
 {
     LOG(Media, "MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock");
 }
index 400e0e6..35cc954 100644 (file)
@@ -55,7 +55,7 @@ private:
     void timerFired();
 
     String m_deviceName;
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<MediaPlaybackTargetPickerMock> m_timer;
     MediaPlaybackTargetContext::State m_state { MediaPlaybackTargetContext::Unknown };
     bool m_showingMenu { false };
 };
index e8295b7..ef170f6 100644 (file)
@@ -64,7 +64,7 @@ Ref<MockRealtimeVideoSource> MockRealtimeVideoSource::createMuted(const String&
 
 MockRealtimeVideoSource::MockRealtimeVideoSource(const String& name)
     : MockRealtimeMediaSource(createCanonicalUUIDString(), RealtimeMediaSource::Video, name)
-    , m_timer(RunLoop::current(), *this, &MockRealtimeVideoSource::generateFrame)
+    , m_timer(RunLoop::current(), this, &MockRealtimeVideoSource::generateFrame)
 {
     m_dashWidths.reserveInitialCapacity(2);
     m_dashWidths.uncheckedAppend(6);
index 78d59a1..ad03fdd 100644 (file)
@@ -103,7 +103,7 @@ private:
     unsigned m_frameRate { 30 };
     unsigned m_frameNumber { 0 };
 
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<MockRealtimeVideoSource> m_timer;
 };
 
 } // namespace WebCore
index 84039b7..6123f14 100644 (file)
@@ -91,7 +91,7 @@ namespace WebCore {
 #endif
 #if USE(SOUP)
             , m_cancelled(false)
-            , m_timeoutSource(RunLoop::main(), *loader, &ResourceHandle::timeoutFired)
+            , m_timeoutSource(RunLoop::main(), loader, &ResourceHandle::timeoutFired)
             , m_bodySize(0)
             , m_bodyDataSent(0)
             , m_redirectCount(0)
@@ -170,7 +170,7 @@ namespace WebCore {
         GRefPtr<SoupMultipartInputStream> m_multipartInputStream;
         GRefPtr<GCancellable> m_cancellable;
         GRefPtr<GAsyncResult> m_deferredResult;
-        RunLoop::Timer m_timeoutSource;
+        RunLoop::Timer<ResourceHandle> m_timeoutSource;
         GUniquePtr<SoupBuffer> m_soupBuffer;
         unsigned long m_bodySize;
         unsigned long m_bodyDataSent;
index aeeb36e..c762d79 100644 (file)
@@ -1,5 +1,21 @@
 2016-06-28  Commit Queue  <commit-queue@webkit.org>
 
+        Unreviewed, rolling out r202580.
+        https://bugs.webkit.org/show_bug.cgi?id=159245
+
+        Caused all WKTR tests to fail on GuardMalloc and Production
+        only for unknown reasons, investigating offline. (Requested by
+        brrian on #webkit).
+
+        Reverted changeset:
+
+        "RunLoop::Timer should use constructor templates instead of
+        class templates"
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+        http://trac.webkit.org/changeset/202580
+
+2016-06-28  Commit Queue  <commit-queue@webkit.org>
+
         Unreviewed, rolling out r202598.
         https://bugs.webkit.org/show_bug.cgi?id=159244
 
index 7a78527..56bbd00 100644 (file)
@@ -50,7 +50,7 @@ class DownloadClient final : public ResourceHandleClient {
 public:
     DownloadClient(Download& download)
         : m_download(download)
-        , m_handleResponseLater(RunLoop::main(), *this, &DownloadClient::handleResponse)
+        , m_handleResponseLater(RunLoop::main(), this, &DownloadClient::handleResponse)
         , m_allowOverwrite(false)
     {
     }
@@ -203,7 +203,7 @@ public:
     GRefPtr<GFile> m_destinationFile;
     GRefPtr<GFile> m_intermediateFile;
     ResourceResponse m_delayedResponse;
-    RunLoop::Timer m_handleResponseLater;
+    RunLoop::Timer<DownloadClient> m_handleResponseLater;
     bool m_allowOverwrite;
 };
 
index 13ba1a2..5fe0bfb 100644 (file)
@@ -88,7 +88,7 @@ public:
 private:
     ConnectionTerminationWatchdog(OSObjectPtr<xpc_connection_t>& xpcConnection, double intervalInSeconds)
         : m_xpcConnection(xpcConnection)
-        , m_watchdogTimer(RunLoop::main(), *this, &ConnectionTerminationWatchdog::watchdogTimerFired)
+        , m_watchdogTimer(RunLoop::main(), this, &ConnectionTerminationWatchdog::watchdogTimerFired)
 #if PLATFORM(IOS)
         , m_assertion(std::make_unique<WebKit::ProcessAndUIAssertion>(xpc_connection_get_pid(m_xpcConnection.get()), WebKit::AssertionState::Background))
 #endif
@@ -103,7 +103,7 @@ private:
     }
 
     OSObjectPtr<xpc_connection_t> m_xpcConnection;
-    RunLoop::Timer m_watchdogTimer;
+    RunLoop::Timer<ConnectionTerminationWatchdog> m_watchdogTimer;
 #if PLATFORM(IOS)
     std::unique_ptr<WebKit::ProcessAndUIAssertion> m_assertion;
 #endif
index cac3c36..dc6d343 100644 (file)
@@ -65,9 +65,9 @@ PluginControllerProxy::PluginControllerProxy(WebProcessConnection* connection, c
     , m_isInitializing(false)
     , m_isVisible(false)
     , m_isWindowVisible(false)
-    , m_paintTimer(RunLoop::main(), *this, &PluginControllerProxy::paint)
+    , m_paintTimer(RunLoop::main(), this, &PluginControllerProxy::paint)
     , m_pluginDestructionProtectCount(0)
-    , m_pluginDestroyTimer(RunLoop::main(), *this, &PluginControllerProxy::destroy)
+    , m_pluginDestroyTimer(RunLoop::main(), this, &PluginControllerProxy::destroy)
     , m_waitingForDidUpdate(false)
     , m_pluginCanceledManualStreamLoad(false)
 #if PLATFORM(COCOA)
index 67efe31..72cfd89 100644 (file)
@@ -194,14 +194,14 @@ private:
     WebCore::IntRect m_dirtyRect;
 
     // The paint timer, used for coalescing painting.
-    RunLoop::Timer m_paintTimer;
+    RunLoop::Timer<PluginControllerProxy> m_paintTimer;
     
     // A counter used to prevent the plug-in from being destroyed.
     unsigned m_pluginDestructionProtectCount;
 
     // A timer that we use to prevent destruction of the plug-in while plug-in
     // code is on the stack.
-    RunLoop::Timer m_pluginDestroyTimer;
+    RunLoop::Timer<PluginControllerProxy> m_pluginDestroyTimer;
 
     // Whether we're waiting for the plug-in proxy in the web process to draw the contents of its
     // backing store into the web process backing store.
index 2f4f0ac..7555702 100644 (file)
@@ -56,7 +56,7 @@ PluginProcess& PluginProcess::singleton()
 
 PluginProcess::PluginProcess()
     : m_supportsAsynchronousPluginInitialization(false)
-    , m_minimumLifetimeTimer(RunLoop::main(), *this, &PluginProcess::minimumLifetimeTimerFired)
+    , m_minimumLifetimeTimer(RunLoop::main(), this, &PluginProcess::minimumLifetimeTimerFired)
     , m_connectionActivity("PluginProcess connection activity.")
 {
     NetscapePlugin::setSetExceptionFunction(WebProcessConnection::setGlobalException);
index a99639d..9be5b4a 100644 (file)
@@ -127,7 +127,7 @@ private:
     
     bool m_supportsAsynchronousPluginInitialization;
 
-    RunLoop::Timer m_minimumLifetimeTimer;
+    RunLoop::Timer<PluginProcess> m_minimumLifetimeTimer;
 
 #if PLATFORM(COCOA)
     // The Mach port used for accelerated compositing.
index 6465547..8058bd7 100644 (file)
@@ -36,7 +36,7 @@ namespace WebKit {
 ChildProcess::ChildProcess()
     : m_terminationTimeout(0)
     , m_terminationCounter(0)
-    , m_terminationTimer(RunLoop::main(), *this, &ChildProcess::terminationTimerFired)
+    , m_terminationTimer(RunLoop::main(), this, &ChildProcess::terminationTimerFired)
     , m_processSuppressionDisabled("Process Suppression Disabled by UIProcess")
 {
 }
index 476ba4c..82f1df9 100644 (file)
@@ -119,7 +119,7 @@ private:
     // after a given period of time.
     unsigned m_terminationCounter;
 
-    RunLoop::Timer m_terminationTimer;
+    RunLoop::Timer<ChildProcess> m_terminationTimer;
 
     RefPtr<IPC::Connection> m_connection;
     IPC::MessageReceiverMap m_messageReceiverMap;
index d997d59..606f9ba 100644 (file)
@@ -59,7 +59,7 @@ private:
     void updateTimerFired();
 
     RunLoop& m_runLoop;
-    RunLoop::Timer m_updateTimer;
+    RunLoop::Timer<CompositingRunLoop> m_updateTimer;
     std::function<void ()> m_updateFunction;
     Lock m_dispatchSyncConditionMutex;
     Condition m_dispatchSyncCondition;
index f8153b8..83945df 100644 (file)
@@ -38,7 +38,7 @@ namespace API {
 class SharedJSContext {
 public:
     SharedJSContext()
-        : m_timer(RunLoop::main(), *this, &SharedJSContext::releaseContext)
+        : m_timer(RunLoop::main(), this, &SharedJSContext::releaseContext)
     {
     }
 
@@ -58,7 +58,7 @@ public:
 
 private:
     RetainPtr<JSContext> m_context;
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<SharedJSContext> m_timer;
 };
 
 id SerializedScriptValue::deserialize(WebCore::SerializedScriptValue& serializedScriptValue, JSValueRef* exception)
index d6d7b47..9752b77 100644 (file)
@@ -150,9 +150,9 @@ typedef HashMap<uint32_t, GUniquePtr<GdkEvent>> TouchEventsMap;
 
 struct _WebKitWebViewBasePrivate {
     _WebKitWebViewBasePrivate()
-        : updateViewStateTimer(RunLoop::main(), *this, &_WebKitWebViewBasePrivate::updateViewStateTimerFired)
+        : updateViewStateTimer(RunLoop::main(), this, &_WebKitWebViewBasePrivate::updateViewStateTimerFired)
 #if USE(REDIRECTED_XCOMPOSITE_WINDOW)
-        , clearRedirectedWindowSoonTimer(RunLoop::main(), *this, &_WebKitWebViewBasePrivate::clearRedirectedWindowSoonTimerFired)
+        , clearRedirectedWindowSoonTimer(RunLoop::main(), this, &_WebKitWebViewBasePrivate::clearRedirectedWindowSoonTimerFired)
 #endif
     {
     }
@@ -202,7 +202,7 @@ struct _WebKitWebViewBasePrivate {
     // View State.
     ViewState::Flags viewState;
     ViewState::Flags viewStateFlagsToUpdate;
-    RunLoop::Timer updateViewStateTimer;
+    RunLoop::Timer<WebKitWebViewBasePrivate> updateViewStateTimer;
 
     WebKitWebViewBaseDownloadRequestHandler downloadHandler;
 
@@ -216,7 +216,7 @@ struct _WebKitWebViewBasePrivate {
 
 #if USE(REDIRECTED_XCOMPOSITE_WINDOW)
     std::unique_ptr<RedirectedXCompositeWindow> redirectedWindow;
-    RunLoop::Timer clearRedirectedWindowSoonTimer;
+    RunLoop::Timer<WebKitWebViewBasePrivate> clearRedirectedWindowSoonTimer;
 #endif
 
 #if ENABLE(DRAG_SUPPORT)
index ca42d9b..69e8c5b 100644 (file)
@@ -44,7 +44,7 @@ DrawingAreaProxy::DrawingAreaProxy(DrawingAreaType type, WebPageProxy& webPagePr
     , m_webPageProxy(webPageProxy)
     , m_size(webPageProxy.viewSize())
 #if PLATFORM(MAC)
-    , m_viewExposedRectChangedTimer(RunLoop::main(), *this, &DrawingAreaProxy::viewExposedRectChangedTimerFired)
+    , m_viewExposedRectChangedTimer(RunLoop::main(), this, &DrawingAreaProxy::viewExposedRectChangedTimerFired)
 #endif
 {
     m_webPageProxy.process().addMessageReceiver(Messages::DrawingAreaProxy::messageReceiverName(), m_webPageProxy.pageID(), *this);
index f592b25..413fe3f 100644 (file)
@@ -136,7 +136,7 @@ private:
     virtual void intrinsicContentSizeDidChange(const WebCore::IntSize&) { }
 
 #if PLATFORM(MAC)
-    RunLoop::Timer m_viewExposedRectChangedTimer;
+    RunLoop::Timer<DrawingAreaProxy> m_viewExposedRectChangedTimer;
     Optional<WebCore::FloatRect> m_viewExposedRect;
     Optional<WebCore::FloatRect> m_lastSentViewExposedRect;
 #endif // PLATFORM(MAC)
index 41b6661..5e89680 100644 (file)
@@ -47,7 +47,7 @@ DrawingAreaProxyImpl::DrawingAreaProxyImpl(WebPageProxy& webPageProxy)
     , m_isWaitingForDidUpdateBackingStoreState(false)
     , m_hasReceivedFirstUpdate(false)
     , m_isBackingStoreDiscardable(true)
-    , m_discardBackingStoreTimer(RunLoop::current(), *this, &DrawingAreaProxyImpl::discardBackingStore)
+    , m_discardBackingStoreTimer(RunLoop::current(), this, &DrawingAreaProxyImpl::discardBackingStore)
 {
 }
 
index 8259d1b..f961f45 100644 (file)
@@ -108,7 +108,7 @@ private:
     bool m_isBackingStoreDiscardable;
     std::unique_ptr<BackingStore> m_backingStore;
 
-    RunLoop::Timer m_discardBackingStoreTimer;
+    RunLoop::Timer<DrawingAreaProxyImpl> m_discardBackingStoreTimer;
 };
 
 } // namespace WebKit
index 74dcac8..9345033 100644 (file)
@@ -44,7 +44,7 @@ PluginInfoCache& PluginInfoCache::singleton()
 
 PluginInfoCache::PluginInfoCache()
     : m_cacheFile(g_key_file_new())
-    , m_saveToFileIdle(RunLoop::main(), *this, &PluginInfoCache::saveToFile)
+    , m_saveToFileIdle(RunLoop::main(), this, &PluginInfoCache::saveToFile)
     , m_readOnlyMode(false)
 {
     m_saveToFileIdle.setPriority(G_PRIORITY_DEFAULT_IDLE);
index a88e667..1af7085 100644 (file)
@@ -52,7 +52,7 @@ private:
 
     GUniquePtr<GKeyFile> m_cacheFile;
     GUniquePtr<char> m_cachePath;
-    RunLoop::Timer m_saveToFileIdle;
+    RunLoop::Timer<PluginInfoCache> m_saveToFileIdle;
     bool m_readOnlyMode;
 };
 
index 07474e8..84f742c 100644 (file)
@@ -34,7 +34,7 @@ static const unsigned processSuspensionTimeout = 30;
     
 ProcessThrottler::ProcessThrottler(ProcessThrottlerClient& process)
     : m_process(process)
-    , m_suspendTimer(RunLoop::main(), *this, &ProcessThrottler::suspendTimerFired)
+    , m_suspendTimer(RunLoop::main(), this, &ProcessThrottler::suspendTimerFired)
     , m_foregroundCounter([this](RefCounterEvent) { updateAssertion(); })
     , m_backgroundCounter([this](RefCounterEvent) { updateAssertion(); })
     , m_suspendMessageCount(0)
index 3bf1669..29f58a1 100644 (file)
@@ -71,7 +71,7 @@ private:
 
     ProcessThrottlerClient& m_process;
     std::unique_ptr<ProcessAndUIAssertion> m_assertion;
-    RunLoop::Timer m_suspendTimer;
+    RunLoop::Timer<ProcessThrottler> m_suspendTimer;
     ForegroundActivityCounter m_foregroundCounter;
     BackgroundActivityCounter m_backgroundCounter;
     int m_suspendMessageCount;
index b718062..c3cc981 100644 (file)
@@ -33,7 +33,7 @@ static const double responsivenessTimeout = 3;
 ResponsivenessTimer::ResponsivenessTimer(ResponsivenessTimer::Client& client)
     : m_client(client)
     , m_isResponsive(true)
-    , m_timer(RunLoop::main(), *this, &ResponsivenessTimer::timerFired)
+    , m_timer(RunLoop::main(), this, &ResponsivenessTimer::timerFired)
 {
 }
 
index 18f1e91..6d2bd4e 100644 (file)
@@ -60,7 +60,7 @@ private:
     ResponsivenessTimer::Client& m_client;
     bool m_isResponsive;
 
-    RunLoop::Timer m_timer;
+    RunLoop::Timer<ResponsivenessTimer> m_timer;
 };
 
 } // namespace WebKit
index 749f74a..9010950 100644 (file)
@@ -56,7 +56,7 @@ static HashMap<uint64_t, ViewGestureController*>& viewGestureControllersForAllPa
 
 ViewGestureController::ViewGestureController(WebPageProxy& webPageProxy)
     : m_webPageProxy(webPageProxy)
-    , m_swipeActiveLoadMonitoringTimer(RunLoop::main(), *this, &ViewGestureController::checkForActiveLoads)
+    , m_swipeActiveLoadMonitoringTimer(RunLoop::main(), this, &ViewGestureController::checkForActiveLoads)
 #if PLATFORM(MAC)
     , m_pendingSwipeTracker(webPageProxy, std::bind(&ViewGestureController::trackSwipeGesture, this, std::placeholders::_1, std::placeholders::_2))
 #endif
@@ -162,7 +162,7 @@ void ViewGestureController::checkForActiveLoads()
 }
 
 ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker()
-    : m_watchdogTimer(RunLoop::main(), *this, &SnapshotRemovalTracker::watchdogTimerFired)
+    : m_watchdogTimer(RunLoop::main(), this, &SnapshotRemovalTracker::watchdogTimerFired)
 {
 }
 
index 69fa65a..a3fb770 100644 (file)
@@ -64,7 +64,7 @@ VisitedLinkStore::VisitedLinkStore()
     : m_identifier(generateIdentifier())
     , m_keyCount(0)
     , m_tableSize(0)
-    , m_pendingVisitedLinksTimer(RunLoop::main(), *this, &VisitedLinkStore::pendingVisitedLinksTimerFired)
+    , m_pendingVisitedLinksTimer(RunLoop::main(), this, &VisitedLinkStore::pendingVisitedLinksTimerFired)
 {
 }
 
index ac4c06f..e8c6e86 100644 (file)
@@ -80,7 +80,7 @@ private:
     VisitedLinkTable m_table;
 
     HashSet<WebCore::LinkHash, WebCore::LinkHashHash> m_pendingVisitedLinks;
-    RunLoop::Timer m_pendingVisitedLinksTimer;
+    RunLoop::Timer<VisitedLinkStore> m_pendingVisitedLinksTimer;
 };
 
 } // namespace WebKit
index f782843..3022a54 100644 (file)
@@ -71,7 +71,7 @@ static PageLevelMap& pageLevelMap()
 WebInspectorProxy::WebInspectorProxy(WebPageProxy* inspectedPage)
     : m_inspectedPage(inspectedPage)
 #if PLATFORM(MAC) && WK_API_ENABLED
-    , m_closeTimer(RunLoop::main(), *this, &WebInspectorProxy::closeTimerFired)
+    , m_closeTimer(RunLoop::main(), this, &WebInspectorProxy::closeTimerFired)
 #endif
 {
     m_inspectedPage->process().addMessageReceiver(Messages::WebInspectorProxy::messageReceiverName(), m_inspectedPage->pageID(), *this);
index 24bfae3..5fa4c90 100644 (file)
@@ -255,7 +255,7 @@ private:
     RetainPtr<NSWindow> m_inspectorWindow;
     RetainPtr<WKWebInspectorProxyObjCAdapter> m_inspectorProxyObjCAdapter;
     HashMap<String, RetainPtr<NSURL>> m_suggestedToActualURLMap;
-    RunLoop::Timer m_closeTimer;
+    RunLoop::Timer<WebInspectorProxy> m_closeTimer;
     String m_urlString;
 #elif PLATFORM(GTK)
     WebInspectorClientGtk m_client;
index abc2882..a7e0346 100644 (file)
@@ -166,7 +166,7 @@ WebProcessPool::WebProcessPool(API::ProcessPoolConfiguration& configuration)
     , m_userObservablePageCounter([this](RefCounterEvent) { updateProcessSuppressionState(); })
     , m_processSuppressionDisabledForPageCounter([this](RefCounterEvent) { updateProcessSuppressionState(); })
     , m_hiddenPageThrottlingAutoIncreasesCounter([this](RefCounterEvent) { m_hiddenPageThrottlingTimer.startOneShot(0); })
-    , m_hiddenPageThrottlingTimer(RunLoop::main(), *this, &WebProcessPool::updateHiddenPageThrottlingAutoIncreaseLimit)
+    , m_hiddenPageThrottlingTimer(RunLoop::main(), this, &WebProcessPool::updateHiddenPageThrottlingAutoIncreaseLimit)
 {
     for (auto& scheme : m_configuration->alwaysRevalidatedURLSchemes())
         m_schemesToRegisterAsAlwaysRevalidated.add(scheme);
index d635e7d..d57b09e 100644 (file)
@@ -525,7 +525,7 @@ private:
     UserObservablePageCounter m_userObservablePageCounter;
     ProcessSuppressionDisabledCounter m_processSuppressionDisabledForPageCounter;
     HiddenPageThrottlingAutoIncreasesCounter m_hiddenPageThrottlingAutoIncreasesCounter;
-    RunLoop::Timer m_hiddenPageThrottlingTimer;
+    RunLoop::Timer<WebProcessPool> m_hiddenPageThrottlingTimer;
 
 #if PLATFORM(COCOA)
     RetainPtr<NSMutableDictionary> m_bundleParameters;
index 6166009..7e1577c 100644 (file)
@@ -163,7 +163,7 @@ void GestureController::DragGesture::longPressFired()
 
 GestureController::DragGesture::DragGesture(WebPageProxy& page)
     : Gesture(gtk_gesture_drag_new(page.viewWidget()), page)
-    , m_longPressTimeout(RunLoop::main(), *this, &GestureController::DragGesture::longPressFired)
+    , m_longPressTimeout(RunLoop::main(), this, &GestureController::DragGesture::longPressFired)
     , m_inDrag(false)
 {
     gtk_gesture_single_set_touch_only(GTK_GESTURE_SINGLE(m_gesture.get()), TRUE);
@@ -213,7 +213,7 @@ GestureController::ZoomGesture::ZoomGesture(WebPageProxy& page)
     : Gesture(gtk_gesture_zoom_new(page.viewWidget()), page)
     , m_initialScale(0)
     , m_scale(0)
-    , m_idle(RunLoop::main(), *this, &GestureController::ZoomGesture::handleZoom)
+    , m_idle(RunLoop::main(), this, &GestureController::ZoomGesture::handleZoom)
 {
     g_signal_connect_swapped(m_gesture.get(), "begin", G_CALLBACK(begin), this);
     g_signal_connect_swapped(m_gesture.get(), "scale-changed", G_CALLBACK(scaleChanged), this);
index 2d51a59..86792df 100644 (file)
@@ -77,7 +77,7 @@ private:
 
         WebCore::FloatPoint m_start;
         WebCore::FloatPoint m_offset;
-        RunLoop::Timer m_longPressTimeout;
+        RunLoop::Timer<DragGesture> m_longPressTimeout;
         GRefPtr<GtkGesture> m_longPress;
         bool m_inDrag;
     };
@@ -97,7 +97,7 @@ private:
         gdouble m_scale;
         WebCore::IntPoint m_initialPoint;
         WebCore::IntPoint m_viewPoint;
-        RunLoop::Timer m_idle;
+        RunLoop::Timer<ZoomGesture> m_idle;
     };
 
     DragGesture m_dragGesture;
index 07d9e69..dc198d8 100644 (file)
@@ -42,7 +42,7 @@ WebPopupMenuProxyGtk::WebPopupMenuProxyGtk(GtkWidget* webView, WebPopupMenuProxy
     : WebPopupMenuProxy(client)
     , m_webView(webView)
     , m_popup(gtk_menu_new())
-    , m_dismissMenuTimer(RunLoop::main(), *this, &WebPopupMenuProxyGtk::dismissMenuTimerFired)
+    , m_dismissMenuTimer(RunLoop::main(), this, &WebPopupMenuProxyGtk::dismissMenuTimerFired)
 {
     g_signal_connect(m_popup, "key-press-event", G_CALLBACK(keyPressEventCallback), this);
     g_signal_connect(m_popup, "unmap", G_CALLBACK(menuUnmappedCallback), this);
index 7cc891e..c9ceb69 100644 (file)
@@ -67,7 +67,7 @@ private:
     GtkWidget* m_webView { nullptr };
     GtkWidget* m_popup { nullptr };
 
-    RunLoop::Timer m_dismissMenuTimer;
+    RunLoop::Timer<WebPopupMenuProxyGtk> m_dismissMenuTimer;
 
     // Typeahead find.
     unsigned m_previousKeyEventCharacter { 0 };
index bdd5be4..b5b1155 100644 (file)
@@ -178,7 +178,7 @@ private:
         std::function<void()> m_removalCallback;
         std::chrono::steady_clock::time_point m_startTime;
 
-        RunLoop::Timer m_watchdogTimer;
+        RunLoop::Timer<SnapshotRemovalTracker> m_watchdogTimer;
     };
 
 #if PLATFORM(MAC)
@@ -239,7 +239,7 @@ private:
     WebPageProxy& m_webPageProxy;
     ViewGestureType m_activeGestureType { ViewGestureType::None };
 
-    RunLoop::Timer m_swipeActiveLoadMonitoringTimer;
+    RunLoop::Timer<ViewGestureController> m_swipeActiveLoadMonitoringTimer;
 
     WebCore::Color m_backgroundColorForCurrentSnapshot;
 
index 528855d..fea2e75 100644 (file)
@@ -63,7 +63,7 @@ using namespace WebCore;
 namespace WebKit {
 
 WebLoaderStrategy::WebLoaderStrategy()
-    : m_internallyFailedLoadTimer(RunLoop::main(), *this, &WebLoaderStrategy::internallyFailedLoadTimerFired)
+    : m_internallyFailedLoadTimer(RunLoop::main(), this, &WebLoaderStrategy::internallyFailedLoadTimerFired)
 {
 }
 
index 3faac33..c94bac2 100644 (file)
@@ -69,7 +69,7 @@ private:
     void startLocalLoad(WebCore::ResourceLoader&);
 
     HashSet<RefPtr<WebCore::ResourceLoader>> m_internallyFailedResourceLoaders;
-    RunLoop::Timer m_internallyFailedLoadTimer;
+    RunLoop::Timer<WebLoaderStrategy> m_internallyFailedLoadTimer;
     
     HashMap<unsigned long, RefPtr<WebResourceLoader>> m_webResourceLoaders;
 };
index eb2cb63..49c1d3b 100644 (file)
@@ -54,7 +54,7 @@ namespace WebKit {
 
 NPRuntimeObjectMap::NPRuntimeObjectMap(PluginView* pluginView)
     : m_pluginView(pluginView)
-    , m_finalizationTimer(RunLoop::main(), *this, &NPRuntimeObjectMap::invalidateQueuedObjects)
+    , m_finalizationTimer(RunLoop::main(), this, &NPRuntimeObjectMap::invalidateQueuedObjects)
 {
 }
 
index 08859bd..fade41d 100644 (file)
@@ -98,7 +98,7 @@ private:
     HashMap<JSC::JSObject*, NPJSObject*> m_npJSObjects;
     HashMap<NPObject*, JSC::Weak<JSNPObject>> m_jsNPObjects;
     Vector<NPObject*> m_npObjectsToFinalize;
-    RunLoop::Timer m_finalizationTimer;
+    RunLoop::Timer<NPRuntimeObjectMap> m_finalizationTimer;
 };
 
 } // namespace WebKit
index 4239f09..8f15d35 100644 (file)
@@ -91,7 +91,7 @@ NetscapePlugin::NetscapePlugin(PassRefPtr<NetscapePluginModule> pluginModule)
     , m_hasHandledAKeyDownEvent(false)
     , m_ignoreNextKeyUpEventCounter(0)
 #ifndef NP_NO_CARBON
-    , m_nullEventTimer(RunLoop::main(), *this, &NetscapePlugin::nullEventTimerFired)
+    , m_nullEventTimer(RunLoop::main(), this, &NetscapePlugin::nullEventTimerFired)
     , m_npCGContext()
 #endif
 #endif
@@ -316,7 +316,7 @@ NetscapePlugin::Timer::Timer(NetscapePlugin* netscapePlugin, unsigned timerID, u
     , m_interval(interval)
     , m_repeat(repeat)
     , m_timerFunc(timerFunc)
-    , m_timer(RunLoop::main(), *this, &Timer::timerFired)
+    , m_timer(RunLoop::main(), this, &Timer::timerFired)
 {
 }
 
index 43d4d9b..bf569fe 100644 (file)
@@ -338,7 +338,7 @@ private:
         bool m_repeat;
         TimerFunc m_timerFunc;
 
-        RunLoop::Timer m_timer;
+        RunLoop::Timer<Timer> m_timer;
     };
     typedef HashMap<unsigned, std::unique_ptr<Timer>> TimerMap;
     TimerMap m_timers;
@@ -383,7 +383,7 @@ private:
 
     // FIXME: It's a bit wasteful to have one null event timer per plug-in.
     // We should investigate having one per window.
-    RunLoop::Timer m_nullEventTimer;
+    RunLoop::Timer<NetscapePlugin> m_nullEventTimer;
     NP_CGContext m_npCGContext;
 #endif
 #elif PLUGIN_ARCHITECTURE(X11)
index 8045b78..7d54d88 100644 (file)
@@ -50,7 +50,7 @@ NetscapePluginStream::NetscapePluginStream(PassRefPtr<NetscapePlugin> plugin, ui
 #if !ASSERT_DISABLED
     , m_urlNotifyHasBeenCalled(false)
 #endif    
-    , m_deliveryDataTimer(RunLoop::main(), *this, &NetscapePluginStream::deliverDataToPlugin)
+    , m_deliveryDataTimer(RunLoop::main(), this, &NetscapePluginStream::deliverDataToPlugin)
     , m_stopStreamWhenDoneDelivering(false)
 {
 }
index 302d5db..7c7045f 100644 (file)
@@ -108,7 +108,7 @@ private:
     CString m_mimeType;
     CString m_headers;
 
-    RunLoop::Timer m_deliveryDataTimer;
+    RunLoop::Timer<NetscapePluginStream> m_deliveryDataTimer;
     std::unique_ptr<Vector<uint8_t>> m_deliveryData;
     bool m_stopStreamWhenDoneDelivering;
 };
index 07aa826..9a33f7c 100644 (file)
@@ -312,7 +312,7 @@ PluginView::PluginView(PassRefPtr<HTMLPlugInElement> pluginElement, PassRefPtr<P
 #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
     , m_didPlugInStartOffScreen(false)
 #endif
-    , m_pendingURLRequestsTimer(RunLoop::main(), *this, &PluginView::pendingURLRequestsTimerFired)
+    , m_pendingURLRequestsTimer(RunLoop::main(), this, &PluginView::pendingURLRequestsTimerFired)
 #if ENABLE(NETSCAPE_PLUGIN_API)
     , m_npRuntimeObjectMap(this)
 #endif
index f4a40e3..3068f05 100644 (file)
@@ -257,7 +257,7 @@ private:
 
     // Pending URLRequests that the plug-in has made.
     Deque<RefPtr<URLRequest>> m_pendingURLRequests;
-    RunLoop::Timer m_pendingURLRequestsTimer;
+    RunLoop::Timer<PluginView> m_pendingURLRequestsTimer;
 
     // Pending frame loads that the plug-in has made.
     typedef HashMap<RefPtr<WebFrame>, RefPtr<URLRequest>> FrameLoadMap;
index b94986d..ca11084 100644 (file)
@@ -64,7 +64,7 @@ CoordinatedDrawingArea::CoordinatedDrawingArea(WebPage& webPage, const WebPageCr
     , m_layerTreeStateIsFrozen(false)
     , m_wantsToExitAcceleratedCompositingMode(false)
     , m_isPaintingSuspended(false)
-    , m_exitCompositingTimer(RunLoop::main(), *this, &CoordinatedDrawingArea::exitAcceleratedCompositingMode)
+    , m_exitCompositingTimer(RunLoop::main(), this, &CoordinatedDrawingArea::exitAcceleratedCompositingMode)
 {
     // Always use compositing in CoordinatedGraphics
     enterAcceleratedCompositingMode(0);
index ef483be..d0b9f3e 100644 (file)
@@ -108,7 +108,7 @@ private:
     // won't paint until painting has resumed again.
     bool m_isPaintingSuspended;
 
-    RunLoop::Timer m_exitCompositingTimer;
+    RunLoop::Timer<CoordinatedDrawingArea> m_exitCompositingTimer;
 
     // The layer tree host that handles accelerated compositing.
     RefPtr<LayerTreeHost> m_layerTreeHost;
index 38bfbc3..6317da3 100644 (file)
@@ -63,7 +63,7 @@ ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost(WebPage& webP
     , m_notifyAfterScheduledLayerFlush(false)
     , m_isSuspended(false)
     , m_isWaitingForRenderer(false)
-    , m_layerFlushTimer(RunLoop::main(), *this, &ThreadedCoordinatedLayerTreeHost::performScheduledLayerFlush)
+    , m_layerFlushTimer(RunLoop::main(), this, &ThreadedCoordinatedLayerTreeHost::performScheduledLayerFlush)
     , m_layerFlushSchedulingEnabled(true)
 {
     m_coordinator = std::make_unique<CompositingCoordinator>(m_webPage.corePage(), this);
index 1fe7409..54dc214 100644 (file)
@@ -140,7 +140,7 @@ private:
     float m_lastScaleFactor;
     WebCore::IntPoint m_lastScrollPosition;
 
-    RunLoop::Timer m_layerFlushTimer;
+    RunLoop::Timer<ThreadedCoordinatedLayerTreeHost> m_layerFlushTimer;
     bool m_layerFlushSchedulingEnabled;
 };
 
index 82ee661..6733102 100644 (file)
@@ -65,8 +65,8 @@ DrawingAreaImpl::DrawingAreaImpl(WebPage& webPage, const WebPageCreationParamete
     , m_wantsToExitAcceleratedCompositingMode(false)
     , m_isPaintingSuspended(!(parameters.viewState & ViewState::IsVisible))
     , m_alwaysUseCompositing(false)
-    , m_displayTimer(RunLoop::main(), *this, &DrawingAreaImpl::displayTimerFired)
-    , m_exitCompositingTimer(RunLoop::main(), *this, &DrawingAreaImpl::exitAcceleratedCompositingMode)
+    , m_displayTimer(RunLoop::main(), this, &DrawingAreaImpl::displayTimerFired)
+    , m_exitCompositingTimer(RunLoop::main(), this, &DrawingAreaImpl::exitAcceleratedCompositingMode)
 {
 }
 
index c50f1a8..6f1f874 100644 (file)
@@ -131,8 +131,8 @@ private:
 
     bool m_forceRepaintAfterBackingStoreStateUpdate { false };
 
-    RunLoop::Timer m_displayTimer;
-    RunLoop::Timer m_exitCompositingTimer;
+    RunLoop::Timer<DrawingAreaImpl> m_displayTimer;
+    RunLoop::Timer<DrawingAreaImpl> m_exitCompositingTimer;
 
     // The layer tree host that handles accelerated compositing.
     RefPtr<LayerTreeHost> m_layerTreeHost;
index 99bd3f5..2548813 100644 (file)
@@ -301,7 +301,7 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
     , m_readyToFindPrimarySnapshottedPlugin(false)
     , m_didFindPrimarySnapshottedPlugin(false)
     , m_numberOfPrimarySnapshotDetectionAttempts(0)
-    , m_determinePrimarySnapshottedPlugInTimer(RunLoop::main(), *this, &WebPage::determinePrimarySnapshottedPlugInTimerFired)
+    , m_determinePrimarySnapshottedPlugInTimer(RunLoop::main(), this, &WebPage::determinePrimarySnapshottedPlugInTimerFired)
 #endif
     , m_layerHostingMode(parameters.layerHostingMode)
 #if PLATFORM(COCOA)
@@ -311,7 +311,7 @@ WebPage::WebPage(uint64_t pageID, const WebPageCreationParameters& parameters)
 #elif HAVE(ACCESSIBILITY) && (PLATFORM(GTK) || PLATFORM(EFL))
     , m_accessibilityObject(nullptr)
 #endif
-    , m_setCanStartMediaTimer(RunLoop::main(), *this, &WebPage::setCanStartMediaTimerFired)
+    , m_setCanStartMediaTimer(RunLoop::main(), this, &WebPage::setCanStartMediaTimerFired)
 #if ENABLE(CONTEXT_MENUS)
     , m_contextMenuClient(std::make_unique<API::InjectedBundle::PageContextMenuClient>())
 #endif
index cb2b4f9..173796e 100644 (file)
@@ -1250,7 +1250,7 @@ private:
     String m_primaryPlugInPageOrigin;
     String m_primaryPlugInOrigin;
     String m_primaryPlugInMimeType;
-    RunLoop::Timer m_determinePrimarySnapshottedPlugInTimer;
+    RunLoop::Timer<WebPage> m_determinePrimarySnapshottedPlugInTimer;
 #endif
 
     // The layer hosting mode.
@@ -1291,7 +1291,7 @@ private:
     RefPtr<PageBanner> m_footerBanner;
 #endif // !PLATFORM(IOS)
 
-    RunLoop::Timer m_setCanStartMediaTimer;
+    RunLoop::Timer<WebPage> m_setCanStartMediaTimer;
     bool m_mayStartMediaWhenInWindow;
 
     HashMap<uint64_t, RefPtr<WebUndoStep>> m_undoStepMap;
index 8e762fb..552a762 100644 (file)
@@ -63,7 +63,7 @@ namespace WebKit {
 
 LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler(std::function<bool()> renderer)
     : m_renderer(WTFMove(renderer))
-    , m_timer(RunLoop::main(), *this, &LayerTreeHostGtk::RenderFrameScheduler::renderFrame)
+    , m_timer(RunLoop::main(), this, &LayerTreeHostGtk::RenderFrameScheduler::renderFrame)
 {
     // We use a RunLoop timer because otherwise GTK+ event handling during dragging can starve WebCore timers, which have a lower priority.
     // Use a higher priority than WebCore timers.
index e10d958..bbfb321 100644 (file)
@@ -75,7 +75,7 @@ private:
         void nextFrame();
 
         std::function<bool()> m_renderer;
-        RunLoop::Timer m_timer;
+        RunLoop::Timer<RenderFrameScheduler> m_timer;
         double m_fireTime { 0 };
         double m_lastImmediateFlushTime { 0 };
     };
index 33f7cfa..0c99572 100644 (file)
@@ -144,7 +144,7 @@ private:
 
     WebCore::TransformationMatrix m_transform;
 
-    RunLoop::Timer m_sendDidUpdateViewStateTimer;
+    RunLoop::Timer<TiledCoreAnimationDrawingArea> m_sendDidUpdateViewStateTimer;
     Vector<uint64_t> m_nextViewStateChangeCallbackIDs;
     bool m_wantsDidUpdateViewState;
 
index d70356a..f86eef4 100644 (file)
@@ -79,7 +79,7 @@ TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea(WebPage& webPage, c
     , m_layerFlushScheduler(this)
     , m_isPaintingSuspended(!(parameters.viewState & ViewState::IsVisible))
     , m_transientZoomScale(1)
-    , m_sendDidUpdateViewStateTimer(RunLoop::main(), *this, &TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired)
+    , m_sendDidUpdateViewStateTimer(RunLoop::main(), this, &TiledCoreAnimationDrawingArea::didUpdateViewStateTimerFired)
     , m_wantsDidUpdateViewState(false)
     , m_viewOverlayRootLayer(nullptr)
 {
index 81782ce..dae6f8b 100644 (file)
@@ -1,3 +1,19 @@
+2016-06-28  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r202580.
+        https://bugs.webkit.org/show_bug.cgi?id=159245
+
+        Caused all WKTR tests to fail on GuardMalloc and Production
+        only for unknown reasons, investigating offline. (Requested by
+        brrian on #webkit).
+
+        Reverted changeset:
+
+        "RunLoop::Timer should use constructor templates instead of
+        class templates"
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+        http://trac.webkit.org/changeset/202580
+
 2016-06-28  Srinivasan Vijayaraghavan  <svijayaraghavan@apple.com>
 
         Use a regex to check if a test step is for JavaScriptCore
index 7a83663..1dc7e93 100644 (file)
@@ -75,10 +75,10 @@ TEST(WTF_RunLoop, OneShotTimer)
 
     bool testFinished = false;
 
-    class DerivedTimer : public RunLoop::Timer {
+    class DerivedTimer : public RunLoop::Timer<DerivedTimer> {
     public:
         DerivedTimer(bool& testFinished)
-            : RunLoop::Timer(RunLoop::current(), *this, &DerivedTimer::fired)
+            : RunLoop::Timer<DerivedTimer>(RunLoop::current(), this, &DerivedTimer::fired)
             , m_testFinished(testFinished)
         {
         }
@@ -106,10 +106,10 @@ TEST(WTF_RunLoop, RepeatingTimer)
 
     bool testFinished = false;
 
-    class DerivedTimer : public RunLoop::Timer {
+    class DerivedTimer : public RunLoop::Timer<DerivedTimer> {
     public:
         DerivedTimer(bool& testFinished)
-            : RunLoop::Timer(RunLoop::current(), *this, &DerivedTimer::fired)
+            : RunLoop::Timer<DerivedTimer>(RunLoop::current(), this, &DerivedTimer::fired)
             , m_testFinished(testFinished)
         {
         }
index 0c0dafd..880d621 100644 (file)
@@ -97,7 +97,7 @@ TestRunner::TestRunner()
     , m_userStyleSheetEnabled(false)
     , m_userStyleSheetLocation(adoptWK(WKStringCreateWithUTF8CString("")))
 #if PLATFORM(GTK)
-    , m_waitToDumpWatchdogTimer(RunLoop::main(), *this, &TestRunner::waitToDumpWatchdogTimerFired)
+    , m_waitToDumpWatchdogTimer(RunLoop::main(), this, &TestRunner::waitToDumpWatchdogTimerFired)
 #endif
 {
     platformInitialize();
index 8bf6b9b..2cf0bf0 100644 (file)
@@ -43,7 +43,7 @@ typedef RetainPtr<CFRunLoopTimerRef> PlatformTimerRef;
 #include <wtf/RunLoop.h>
 namespace WTR {
 class TestRunner;
-typedef RunLoop::Timer PlatformTimerRef;
+typedef RunLoop::Timer<TestRunner> PlatformTimerRef;
 }
 #elif PLATFORM(EFL)
 typedef Ecore_Timer* PlatformTimerRef;