Title: [202580] trunk
Revision
202580
Author
[email protected]
Date
2016-06-28 12:10:31 -0700 (Tue, 28 Jun 2016)

Log Message

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

Reviewed by Alex Christensen.

Source/_javascript_Core:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to `this` instead of a pointer to `this`.

* inspector/agents/InspectorHeapAgent.cpp:
(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):

Source/WebCore:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to `this` instead of a pointer to `this`.

* Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::WebMediaSessionManager):
* Modules/mediasession/WebMediaSessionManager.h:
* page/WheelEventTestTrigger.cpp:
(WebCore::WheelEventTestTrigger::WheelEventTestTrigger):
* page/WheelEventTestTrigger.h:
* page/mac/TextIndicatorWindow.h:
* page/mac/TextIndicatorWindow.mm:
(WebCore::TextIndicatorWindow::TextIndicatorWindow):
* platform/MainThreadSharedTimer.h:
* platform/cocoa/ScrollController.h:
* platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::ScrollController):
* platform/glib/MainThreadSharedTimerGLib.cpp:
(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
* platform/graphics/MediaPlaybackTargetPicker.cpp:
(WebCore::MediaPlaybackTargetPicker::MediaPlaybackTargetPicker):
* platform/graphics/MediaPlaybackTargetPicker.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(VideoRenderRequestScheduler::VideoRenderRequestScheduler):
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy):
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
* platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
* platform/mock/MediaPlaybackTargetPickerMock.cpp:
(WebCore::MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock):
* platform/mock/MediaPlaybackTargetPickerMock.h:
* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
* platform/mock/MockRealtimeVideoSource.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):

Source/WebKit2:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to `this` instead of a pointer to `this`.

* NetworkProcess/Downloads/soup/DownloadSoup.cpp:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::PluginControllerProxy):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::PluginProcess):
* PluginProcess/PluginProcess.h:
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::ChildProcess):
* Shared/ChildProcess.h:
* Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
* UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:
(API::SharedJSContext::SharedJSContext):
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
* UIProcess/DrawingAreaProxy.cpp:
(WebKit::DrawingAreaProxy::DrawingAreaProxy):
* UIProcess/DrawingAreaProxy.h:
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
* UIProcess/DrawingAreaProxyImpl.h:
* UIProcess/Plugins/gtk/PluginInfoCache.cpp:
(WebKit::PluginInfoCache::PluginInfoCache):
* UIProcess/Plugins/gtk/PluginInfoCache.h:
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::ProcessThrottler):
* UIProcess/ProcessThrottler.h:
* UIProcess/ResponsivenessTimer.cpp:
(WebKit::ResponsivenessTimer::ResponsivenessTimer):
* UIProcess/ResponsivenessTimer.h:
* UIProcess/ViewGestureController.cpp:
(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker):
* UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::VisitedLinkStore):
* UIProcess/VisitedLinkStore.h:
* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::WebInspectorProxy):
* UIProcess/WebInspectorProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::m_hiddenPageThrottlingTimer):
* UIProcess/WebProcessPool.h:
* UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::DragGesture::DragGesture):
(WebKit::GestureController::ZoomGesture::ZoomGesture):
* UIProcess/gtk/GestureController.h:
* UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
* UIProcess/gtk/WebPopupMenuProxyGtk.h:
* UIProcess/mac/ViewGestureController.h:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::WebLoaderStrategy):
* WebProcess/Network/WebLoaderStrategy.h:
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::NPRuntimeObjectMap):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::NetscapePlugin):
(WebKit::NetscapePlugin::Timer::Timer):
* WebProcess/Plugins/Netscape/NetscapePlugin.h:
* WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::NetscapePluginStream):
* WebProcess/Plugins/Netscape/NetscapePluginStream.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::PluginView):
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea):
* WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::DrawingAreaImpl):
* WebProcess/WebPage/DrawingAreaImpl.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler):
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

Source/WTF:

Refactor RunLoop::Timer to align with WebCore::Timer. Use a constructor
template instead of a class template. Store a bound std::function rather than
a templated member and function. Add a constructor that takes a std::function.

* wtf/RunLoop.h:
(WTF::RunLoop::Timer::Timer):
(WTF::RunLoop::Timer::fired):

Tools:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to `this` instead of a pointer to `this`.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::TestRunner):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* TestWebKitAPI/Tests/WTF/RunLoop.cpp:
(TestWebKitAPI::TEST):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (202579 => 202580)


--- trunk/Source/_javascript_Core/ChangeLog	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,3 +1,16 @@
+2016-06-28  Brian Burg  <[email protected]>
+
+        RunLoop::Timer should use constructor templates instead of class templates
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+
+        Reviewed by Alex Christensen.
+
+        Remove the RunLoop::Timer class template argument, and pass its constructor
+        a reference to `this` instead of a pointer to `this`.
+
+        * inspector/agents/InspectorHeapAgent.cpp:
+        (Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
+
 2016-06-28  Joseph Pecoraro  <[email protected]>
 
         Web Inspector: selectElement.options shows unexpected entries in console (named indexes beyond collection length)

Modified: trunk/Source/_javascript_Core/inspector/agents/InspectorHeapAgent.cpp (202579 => 202580)


--- trunk/Source/_javascript_Core/inspector/agents/InspectorHeapAgent.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/_javascript_Core/inspector/agents/InspectorHeapAgent.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -55,13 +55,13 @@
 
     HeapFrontendDispatcher& m_frontendDispatcher;
     Vector<GarbageCollectionData> m_collections;
-    RunLoop::Timer<SendGarbageCollectionEventsTask> m_timer;
+    RunLoop::Timer 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)
 {
 }
 

Modified: trunk/Source/WTF/ChangeLog (202579 => 202580)


--- trunk/Source/WTF/ChangeLog	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WTF/ChangeLog	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,3 +1,18 @@
+2016-06-28  Brian Burg  <[email protected]>
+
+        RunLoop::Timer should use constructor templates instead of class templates
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+
+        Reviewed by Alex Christensen.
+
+        Refactor RunLoop::Timer to align with WebCore::Timer. Use a constructor
+        template instead of a class template. Store a bound std::function rather than
+        a templated member and function. Add a constructor that takes a std::function.
+
+        * wtf/RunLoop.h:
+        (WTF::RunLoop::Timer::Timer):
+        (WTF::RunLoop::Timer::fired):
+
 2016-06-28  Tomas Popela  <[email protected]>
 
         THUMB2 support not correctly detected on Fedora with GCC 6.1.

Modified: trunk/Source/WTF/wtf/RunLoop.h (202579 => 202580)


--- trunk/Source/WTF/wtf/RunLoop.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WTF/wtf/RunLoop.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2016 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,23 +128,25 @@
 #endif
     };
 
-    template <typename TimerFiredClass>
     class Timer : public TimerBase {
     public:
-        typedef void (TimerFiredClass::*TimerFiredFunction)();
+        template <typename TimerFiredClass, typename TimerFiredBaseClass>
+        Timer(RunLoop& runLoop, TimerFiredClass& object, void (TimerFiredBaseClass::*function)())
+            : TimerBase(runLoop)
+            , m_function(std::bind(function, &object))
+        {
+        }
 
-        Timer(RunLoop& runLoop, TimerFiredClass* o, TimerFiredFunction f)
+        Timer(RunLoop& runLoop, std::function<void ()> function)
             : TimerBase(runLoop)
-            , m_object(o)
-            , m_function(f)
+            , m_function(WTFMove(function))
         {
         }
 
     private:
-        virtual void fired() { (m_object->*m_function)(); }
+        virtual void fired() { m_function(); }
 
-        TimerFiredClass* m_object;
-        TimerFiredFunction m_function;
+        std::function<void ()> m_function;
     };
 
     class Holder;

Modified: trunk/Source/WebCore/ChangeLog (202579 => 202580)


--- trunk/Source/WebCore/ChangeLog	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/ChangeLog	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,3 +1,52 @@
+2016-06-28  Brian Burg  <[email protected]>
+
+        RunLoop::Timer should use constructor templates instead of class templates
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+
+        Reviewed by Alex Christensen.
+
+        Remove the RunLoop::Timer class template argument, and pass its constructor
+        a reference to `this` instead of a pointer to `this`.
+
+        * Modules/mediasession/WebMediaSessionManager.cpp:
+        (WebCore::WebMediaSessionManager::WebMediaSessionManager):
+        * Modules/mediasession/WebMediaSessionManager.h:
+        * page/WheelEventTestTrigger.cpp:
+        (WebCore::WheelEventTestTrigger::WheelEventTestTrigger):
+        * page/WheelEventTestTrigger.h:
+        * page/mac/TextIndicatorWindow.h:
+        * page/mac/TextIndicatorWindow.mm:
+        (WebCore::TextIndicatorWindow::TextIndicatorWindow):
+        * platform/MainThreadSharedTimer.h:
+        * platform/cocoa/ScrollController.h:
+        * platform/cocoa/ScrollController.mm:
+        (WebCore::ScrollController::ScrollController):
+        * platform/glib/MainThreadSharedTimerGLib.cpp:
+        (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
+        * platform/graphics/MediaPlaybackTargetPicker.cpp:
+        (WebCore::MediaPlaybackTargetPicker::MediaPlaybackTargetPicker):
+        * platform/graphics/MediaPlaybackTargetPicker.h:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
+        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
+        (VideoRenderRequestScheduler::VideoRenderRequestScheduler):
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
+        (WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy):
+        (WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
+        * platform/mock/MediaPlaybackTargetPickerMock.cpp:
+        (WebCore::MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock):
+        * platform/mock/MediaPlaybackTargetPickerMock.h:
+        * platform/mock/MockRealtimeVideoSource.cpp:
+        (WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
+        * platform/mock/MockRealtimeVideoSource.h:
+        * platform/network/ResourceHandleInternal.h:
+        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
+
 2016-06-27  Jer Noble  <[email protected]>
 
         Cross-domain video loads do not prompt for authorization.

Modified: trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp (202579 => 202580)


--- trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -127,8 +127,8 @@
 }
 
 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)
 {
 }
 

Modified: trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h (202579 => 202580)


--- trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/Modules/mediasession/WebMediaSessionManager.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -96,8 +96,8 @@
 
     void watchdogTimerFired();
 
-    RunLoop::Timer<WebMediaSessionManager> m_taskTimer;
-    RunLoop::Timer<WebMediaSessionManager> m_watchdogTimer;
+    RunLoop::Timer m_taskTimer;
+    RunLoop::Timer m_watchdogTimer;
 
     Vector<std::unique_ptr<ClientState>> m_clientState;
     RefPtr<MediaPlaybackTarget> m_playbackTarget;

Modified: trunk/Source/WebCore/page/WheelEventTestTrigger.cpp (202579 => 202580)


--- trunk/Source/WebCore/page/WheelEventTestTrigger.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/page/WheelEventTestTrigger.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -39,7 +39,7 @@
 namespace WebCore {
 
 WheelEventTestTrigger::WheelEventTestTrigger()
-    : m_testTriggerTimer(RunLoop::current(), this, &WheelEventTestTrigger::triggerTestTimerFired)
+    : m_testTriggerTimer(RunLoop::current(), *this, &WheelEventTestTrigger::triggerTestTimerFired)
 {
 }
 

Modified: trunk/Source/WebCore/page/WheelEventTestTrigger.h (202579 => 202580)


--- trunk/Source/WebCore/page/WheelEventTestTrigger.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/page/WheelEventTestTrigger.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -59,7 +59,7 @@
 
 private:
     std::function<void()> m_testNotificationCallback;
-    RunLoop::Timer<WheelEventTestTrigger> m_testTriggerTimer;
+    RunLoop::Timer m_testTriggerTimer;
     mutable Lock m_testTriggerMutex;
     WTF::HashMap<ScrollableAreaIdentifier, std::set<DeferTestTriggerReason>> m_deferTestTriggerReasons;
 };

Modified: trunk/Source/WebCore/page/mac/TextIndicatorWindow.h (202579 => 202580)


--- trunk/Source/WebCore/page/mac/TextIndicatorWindow.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/page/mac/TextIndicatorWindow.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -74,7 +74,7 @@
     RetainPtr<NSWindow> m_textIndicatorWindow;
     RetainPtr<WebTextIndicatorView> m_textIndicatorView;
 
-    RunLoop::Timer<TextIndicatorWindow> m_temporaryTextIndicatorTimer;
+    RunLoop::Timer m_temporaryTextIndicatorTimer;
 };
 
 #endif // PLATFORM(MAC)

Modified: trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm (202579 => 202580)


--- trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/page/mac/TextIndicatorWindow.mm	2016-06-28 19:10:31 UTC (rev 202580)
@@ -404,7 +404,7 @@
 
 TextIndicatorWindow::TextIndicatorWindow(NSView *targetView)
     : m_targetView(targetView)
-    , m_temporaryTextIndicatorTimer(RunLoop::main(), this, &TextIndicatorWindow::startFadeOut)
+    , m_temporaryTextIndicatorTimer(RunLoop::main(), *this, &TextIndicatorWindow::startFadeOut)
 {
 }
 

Modified: trunk/Source/WebCore/platform/MainThreadSharedTimer.h (202579 => 202580)


--- trunk/Source/WebCore/platform/MainThreadSharedTimer.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/MainThreadSharedTimer.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -55,7 +55,7 @@
 
     std::function<void()> m_firedFunction;
 #if PLATFORM(GTK)
-    RunLoop::Timer<MainThreadSharedTimer> m_timer;
+    RunLoop::Timer m_timer;
 #endif
 };
 

Modified: trunk/Source/WebCore/platform/cocoa/ScrollController.h (202579 => 202580)


--- trunk/Source/WebCore/platform/cocoa/ScrollController.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/cocoa/ScrollController.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -177,7 +177,7 @@
     CFTimeInterval m_startTime { 0 };
     FloatSize m_startStretch;
     FloatSize m_origVelocity;
-    RunLoop::Timer<ScrollController> m_snapRubberbandTimer;
+    RunLoop::Timer m_snapRubberbandTimer;
 #endif
 
 #if ENABLE(CSS_SCROLL_SNAP)
@@ -187,7 +187,7 @@
     std::unique_ptr<ScrollSnapAnimatorState> m_verticalScrollSnapState;
     std::unique_ptr<ScrollSnapAnimationCurveState> m_scrollSnapCurveState;
 #if PLATFORM(MAC)
-    RunLoop::Timer<ScrollController> m_scrollSnapTimer;
+    RunLoop::Timer m_scrollSnapTimer;
 #endif
 #endif
 

Modified: trunk/Source/WebCore/platform/cocoa/ScrollController.mm (202579 => 202580)


--- trunk/Source/WebCore/platform/cocoa/ScrollController.mm	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/cocoa/ScrollController.mm	2016-06-28 19:10:31 UTC (rev 202580)
@@ -121,10 +121,10 @@
 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
 {
 }

Modified: trunk/Source/WebCore/platform/glib/MainThreadSharedTimerGLib.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/glib/MainThreadSharedTimerGLib.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/glib/MainThreadSharedTimerGLib.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -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);

Modified: trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -37,7 +37,7 @@
 
 MediaPlaybackTargetPicker::MediaPlaybackTargetPicker(Client& client)
     : m_client(&client)
-    , m_pendingActionTimer(RunLoop::main(), this, &MediaPlaybackTargetPicker::pendingActionTimerFired)
+    , m_pendingActionTimer(RunLoop::main(), *this, &MediaPlaybackTargetPicker::pendingActionTimerFired)
 {
 }
 

Modified: trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.h (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/MediaPlaybackTargetPicker.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -79,7 +79,7 @@
 
     PendingActionFlags m_pendingActionFlags { 0 };
     Client* m_client;
-    RunLoop::Timer<MediaPlaybackTargetPicker> m_pendingActionTimer;
+    RunLoop::Timer m_pendingActionTimer;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -163,7 +163,7 @@
     , 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)

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -231,7 +231,7 @@
     bool m_volumeAndMuteInitialized;
     bool m_hasVideo;
     bool m_hasAudio;
-    RunLoop::Timer<MediaPlayerPrivateGStreamer> m_readyTimerHandler;
+    RunLoop::Timer m_readyTimerHandler;
     mutable unsigned long long m_totalBytes;
     URL m_url;
     bool m_preservesPitch;

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -150,7 +150,7 @@
     , 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)

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -182,7 +182,7 @@
     mutable GMutex m_sampleMutex;
     GRefPtr<GstSample> m_sample;
 #if USE(GSTREAMER_GL)
-    RunLoop::Timer<MediaPlayerPrivateGStreamerBase> m_drawTimer;
+    RunLoop::Timer m_drawTimer;
 #endif
     mutable FloatSize m_videoSize;
     bool m_usingFallbackVideoSink;

Modified: trunk/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -74,7 +74,7 @@
 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 @@
     GRefPtr<GstSample> m_sample;
 
 #if !USE(COORDINATED_GRAPHICS_THREADED)
-    RunLoop::Timer<VideoRenderRequestScheduler> m_timer;
+    RunLoop::Timer m_timer;
     Condition m_dataCondition;
     GRefPtr<WebKitVideoSink> m_sink;
 #endif

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -41,7 +41,7 @@
 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 @@
     if (m_targetLayer && m_currentBuffer)
         m_targetLayer->setContentsLayer(m_currentBuffer.get());
 
-    m_compositorThreadUpdateTimer = std::make_unique<RunLoop::Timer<TextureMapperPlatformLayerProxy>>(RunLoop::current(), this, &TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired);
+    m_compositorThreadUpdateTimer = std::make_unique<RunLoop::Timer>(RunLoop::current(), *this, &TextureMapperPlatformLayerProxy::compositorThreadUpdateTimerFired);
 }
 
 void TextureMapperPlatformLayerProxy::invalidate()

Modified: trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h (202579 => 202580)


--- trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxy.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -93,13 +93,13 @@
 
     Vector<std::unique_ptr<TextureMapperPlatformLayerBuffer>> m_usedBuffers;
 
-    RunLoop::Timer<TextureMapperPlatformLayerProxy> m_releaseUnusedBuffersTimer;
+    RunLoop::Timer m_releaseUnusedBuffersTimer;
 #ifndef NDEBUG
     ThreadIdentifier m_compositorThreadID { 0 };
 #endif
 
     void compositorThreadUpdateTimerFired();
-    std::unique_ptr<RunLoop::Timer<TextureMapperPlatformLayerProxy>> m_compositorThreadUpdateTimer;
+    std::unique_ptr<RunLoop::Timer> m_compositorThreadUpdateTimer;
     std::function<void()> m_compositorThreadUpdateFunction;
 };
 

Modified: trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -41,7 +41,7 @@
 
 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");
 }

Modified: trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.h (202579 => 202580)


--- trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/mock/MediaPlaybackTargetPickerMock.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -55,7 +55,7 @@
     void timerFired();
 
     String m_deviceName;
-    RunLoop::Timer<MediaPlaybackTargetPickerMock> m_timer;
+    RunLoop::Timer m_timer;
     MediaPlaybackTargetContext::State m_state { MediaPlaybackTargetContext::Unknown };
     bool m_showingMenu { false };
 };

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp (202579 => 202580)


--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -64,7 +64,7 @@
 
 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);

Modified: trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h (202579 => 202580)


--- trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/mock/MockRealtimeVideoSource.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -103,7 +103,7 @@
     unsigned m_frameRate { 30 };
     unsigned m_frameNumber { 0 };
 
-    RunLoop::Timer<MockRealtimeVideoSource> m_timer;
+    RunLoop::Timer m_timer;
 };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/platform/network/ResourceHandleInternal.h (202579 => 202580)


--- trunk/Source/WebCore/platform/network/ResourceHandleInternal.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebCore/platform/network/ResourceHandleInternal.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -91,7 +91,7 @@
 #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 @@
         GRefPtr<SoupMultipartInputStream> m_multipartInputStream;
         GRefPtr<GCancellable> m_cancellable;
         GRefPtr<GAsyncResult> m_deferredResult;
-        RunLoop::Timer<ResourceHandle> m_timeoutSource;
+        RunLoop::Timer m_timeoutSource;
         GUniquePtr<SoupBuffer> m_soupBuffer;
         unsigned long m_bodySize;
         unsigned long m_bodyDataSent;

Modified: trunk/Source/WebKit2/ChangeLog (202579 => 202580)


--- trunk/Source/WebKit2/ChangeLog	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/ChangeLog	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,3 +1,100 @@
+2016-06-28  Brian Burg  <[email protected]>
+
+        RunLoop::Timer should use constructor templates instead of class templates
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+
+        Reviewed by Alex Christensen.
+
+        Remove the RunLoop::Timer class template argument, and pass its constructor
+        a reference to `this` instead of a pointer to `this`.
+
+        * NetworkProcess/Downloads/soup/DownloadSoup.cpp:
+        * Platform/IPC/mac/ConnectionMac.mm:
+        (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):
+        * PluginProcess/PluginControllerProxy.cpp:
+        (WebKit::PluginControllerProxy::PluginControllerProxy):
+        * PluginProcess/PluginControllerProxy.h:
+        * PluginProcess/PluginProcess.cpp:
+        (WebKit::PluginProcess::PluginProcess):
+        * PluginProcess/PluginProcess.h:
+        * Shared/ChildProcess.cpp:
+        (WebKit::ChildProcess::ChildProcess):
+        * Shared/ChildProcess.h:
+        * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
+        * UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:
+        (API::SharedJSContext::SharedJSContext):
+        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
+        (_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
+        * UIProcess/DrawingAreaProxy.cpp:
+        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
+        * UIProcess/DrawingAreaProxy.h:
+        * UIProcess/DrawingAreaProxyImpl.cpp:
+        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
+        * UIProcess/DrawingAreaProxyImpl.h:
+        * UIProcess/Plugins/gtk/PluginInfoCache.cpp:
+        (WebKit::PluginInfoCache::PluginInfoCache):
+        * UIProcess/Plugins/gtk/PluginInfoCache.h:
+        * UIProcess/ProcessThrottler.cpp:
+        (WebKit::ProcessThrottler::ProcessThrottler):
+        * UIProcess/ProcessThrottler.h:
+        * UIProcess/ResponsivenessTimer.cpp:
+        (WebKit::ResponsivenessTimer::ResponsivenessTimer):
+        * UIProcess/ResponsivenessTimer.h:
+        * UIProcess/ViewGestureController.cpp:
+        (WebKit::ViewGestureController::ViewGestureController):
+        (WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker):
+        * UIProcess/VisitedLinkStore.cpp:
+        (WebKit::VisitedLinkStore::VisitedLinkStore):
+        * UIProcess/VisitedLinkStore.h:
+        * UIProcess/WebInspectorProxy.cpp:
+        (WebKit::WebInspectorProxy::WebInspectorProxy):
+        * UIProcess/WebInspectorProxy.h:
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::m_hiddenPageThrottlingTimer):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/gtk/GestureController.cpp:
+        (WebKit::GestureController::DragGesture::DragGesture):
+        (WebKit::GestureController::ZoomGesture::ZoomGesture):
+        * UIProcess/gtk/GestureController.h:
+        * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
+        (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
+        * UIProcess/gtk/WebPopupMenuProxyGtk.h:
+        * UIProcess/mac/ViewGestureController.h:
+        * WebProcess/Network/WebLoaderStrategy.cpp:
+        (WebKit::WebLoaderStrategy::WebLoaderStrategy):
+        * WebProcess/Network/WebLoaderStrategy.h:
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
+        (WebKit::NPRuntimeObjectMap::NPRuntimeObjectMap):
+        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
+        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
+        (WebKit::NetscapePlugin::NetscapePlugin):
+        (WebKit::NetscapePlugin::Timer::Timer):
+        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
+        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
+        (WebKit::NetscapePluginStream::NetscapePluginStream):
+        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
+        * WebProcess/Plugins/PluginView.cpp:
+        (WebKit::PluginView::PluginView):
+        * WebProcess/Plugins/PluginView.h:
+        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
+        (WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea):
+        * WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
+        * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
+        (WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
+        * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
+        * WebProcess/WebPage/DrawingAreaImpl.cpp:
+        (WebKit::DrawingAreaImpl::DrawingAreaImpl):
+        * WebProcess/WebPage/DrawingAreaImpl.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::WebPage):
+        * WebProcess/WebPage/WebPage.h:
+        * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
+        (WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler):
+        * WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
+        * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
+        (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
+
 2016-06-28  Chris Dumez  <[email protected]>
 
         [WK2] Add some logging related to NetworkProcess suspension

Modified: trunk/Source/WebKit2/NetworkProcess/Downloads/soup/DownloadSoup.cpp (202579 => 202580)


--- trunk/Source/WebKit2/NetworkProcess/Downloads/soup/DownloadSoup.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/NetworkProcess/Downloads/soup/DownloadSoup.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -50,7 +50,7 @@
 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 @@
     GRefPtr<GFile> m_destinationFile;
     GRefPtr<GFile> m_intermediateFile;
     ResourceResponse m_delayedResponse;
-    RunLoop::Timer<DownloadClient> m_handleResponseLater;
+    RunLoop::Timer m_handleResponseLater;
     bool m_allowOverwrite;
 };
 

Modified: trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm (202579 => 202580)


--- trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/Platform/IPC/mac/ConnectionMac.mm	2016-06-28 19:10:31 UTC (rev 202580)
@@ -88,7 +88,7 @@
 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 @@
     }
 
     OSObjectPtr<xpc_connection_t> m_xpcConnection;
-    RunLoop::Timer<ConnectionTerminationWatchdog> m_watchdogTimer;
+    RunLoop::Timer m_watchdogTimer;
 #if PLATFORM(IOS)
     std::unique_ptr<WebKit::ProcessAndUIAssertion> m_assertion;
 #endif

Modified: trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp (202579 => 202580)


--- trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -65,9 +65,9 @@
     , 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)

Modified: trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h (202579 => 202580)


--- trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/PluginProcess/PluginControllerProxy.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -194,7 +194,7 @@
     WebCore::IntRect m_dirtyRect;
 
     // The paint timer, used for coalescing painting.
-    RunLoop::Timer<PluginControllerProxy> m_paintTimer;
+    RunLoop::Timer m_paintTimer;
     
     // A counter used to prevent the plug-in from being destroyed.
     unsigned m_pluginDestructionProtectCount;
@@ -201,7 +201,7 @@
 
     // A timer that we use to prevent destruction of the plug-in while plug-in
     // code is on the stack.
-    RunLoop::Timer<PluginControllerProxy> m_pluginDestroyTimer;
+    RunLoop::Timer 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.

Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp (202579 => 202580)


--- trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -56,7 +56,7 @@
 
 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);

Modified: trunk/Source/WebKit2/PluginProcess/PluginProcess.h (202579 => 202580)


--- trunk/Source/WebKit2/PluginProcess/PluginProcess.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/PluginProcess/PluginProcess.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -127,7 +127,7 @@
     
     bool m_supportsAsynchronousPluginInitialization;
 
-    RunLoop::Timer<PluginProcess> m_minimumLifetimeTimer;
+    RunLoop::Timer m_minimumLifetimeTimer;
 
 #if PLATFORM(COCOA)
     // The Mach port used for accelerated compositing.

Modified: trunk/Source/WebKit2/Shared/ChildProcess.cpp (202579 => 202580)


--- trunk/Source/WebKit2/Shared/ChildProcess.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/Shared/ChildProcess.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -36,7 +36,7 @@
 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")
 {
 }

Modified: trunk/Source/WebKit2/Shared/ChildProcess.h (202579 => 202580)


--- trunk/Source/WebKit2/Shared/ChildProcess.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/Shared/ChildProcess.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -119,7 +119,7 @@
     // after a given period of time.
     unsigned m_terminationCounter;
 
-    RunLoop::Timer<ChildProcess> m_terminationTimer;
+    RunLoop::Timer m_terminationTimer;
 
     RefPtr<IPC::Connection> m_connection;
     IPC::MessageReceiverMap m_messageReceiverMap;

Modified: trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h (202579 => 202580)


--- trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -59,7 +59,7 @@
     void updateTimerFired();
 
     RunLoop& m_runLoop;
-    RunLoop::Timer<CompositingRunLoop> m_updateTimer;
+    RunLoop::Timer m_updateTimer;
     std::function<void ()> m_updateFunction;
     Lock m_dispatchSyncConditionMutex;
     Condition m_dispatchSyncCondition;

Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm	2016-06-28 19:10:31 UTC (rev 202580)
@@ -38,7 +38,7 @@
 class SharedJSContext {
 public:
     SharedJSContext()
-        : m_timer(RunLoop::main(), this, &SharedJSContext::releaseContext)
+        : m_timer(RunLoop::main(), *this, &SharedJSContext::releaseContext)
     {
     }
 
@@ -58,7 +58,7 @@
 
 private:
     RetainPtr<JSContext> m_context;
-    RunLoop::Timer<SharedJSContext> m_timer;
+    RunLoop::Timer m_timer;
 };
 
 id SerializedScriptValue::deserialize(WebCore::SerializedScriptValue& serializedScriptValue, JSValueRef* exception)

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -150,9 +150,9 @@
 
 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 @@
     // View State.
     ViewState::Flags viewState;
     ViewState::Flags viewStateFlagsToUpdate;
-    RunLoop::Timer<WebKitWebViewBasePrivate> updateViewStateTimer;
+    RunLoop::Timer updateViewStateTimer;
 
     WebKitWebViewBaseDownloadRequestHandler downloadHandler;
 
@@ -216,7 +216,7 @@
 
 #if USE(REDIRECTED_XCOMPOSITE_WINDOW)
     std::unique_ptr<RedirectedXCompositeWindow> redirectedWindow;
-    RunLoop::Timer<WebKitWebViewBasePrivate> clearRedirectedWindowSoonTimer;
+    RunLoop::Timer clearRedirectedWindowSoonTimer;
 #endif
 
 #if ENABLE(DRAG_SUPPORT)

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -44,7 +44,7 @@
     , 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);

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -136,7 +136,7 @@
     virtual void intrinsicContentSizeDidChange(const WebCore::IntSize&) { }
 
 #if PLATFORM(MAC)
-    RunLoop::Timer<DrawingAreaProxy> m_viewExposedRectChangedTimer;
+    RunLoop::Timer m_viewExposedRectChangedTimer;
     Optional<WebCore::FloatRect> m_viewExposedRect;
     Optional<WebCore::FloatRect> m_lastSentViewExposedRect;
 #endif // PLATFORM(MAC)

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -47,7 +47,7 @@
     , m_isWaitingForDidUpdateBackingStoreState(false)
     , m_hasReceivedFirstUpdate(false)
     , m_isBackingStoreDiscardable(true)
-    , m_discardBackingStoreTimer(RunLoop::current(), this, &DrawingAreaProxyImpl::discardBackingStore)
+    , m_discardBackingStoreTimer(RunLoop::current(), *this, &DrawingAreaProxyImpl::discardBackingStore)
 {
 }
 

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxyImpl.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -108,7 +108,7 @@
     bool m_isBackingStoreDiscardable;
     std::unique_ptr<BackingStore> m_backingStore;
 
-    RunLoop::Timer<DrawingAreaProxyImpl> m_discardBackingStoreTimer;
+    RunLoop::Timer m_discardBackingStoreTimer;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -44,7 +44,7 @@
 
 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);

Modified: trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -52,7 +52,7 @@
 
     GUniquePtr<GKeyFile> m_cacheFile;
     GUniquePtr<char> m_cachePath;
-    RunLoop::Timer<PluginInfoCache> m_saveToFileIdle;
+    RunLoop::Timer m_saveToFileIdle;
     bool m_readOnlyMode;
 };
 

Modified: trunk/Source/WebKit2/UIProcess/ProcessThrottler.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/ProcessThrottler.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/ProcessThrottler.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -34,7 +34,7 @@
     
 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)

Modified: trunk/Source/WebKit2/UIProcess/ProcessThrottler.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/ProcessThrottler.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/ProcessThrottler.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -71,7 +71,7 @@
 
     ProcessThrottlerClient& m_process;
     std::unique_ptr<ProcessAndUIAssertion> m_assertion;
-    RunLoop::Timer<ProcessThrottler> m_suspendTimer;
+    RunLoop::Timer m_suspendTimer;
     ForegroundActivityCounter m_foregroundCounter;
     BackgroundActivityCounter m_backgroundCounter;
     int m_suspendMessageCount;

Modified: trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -33,7 +33,7 @@
 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)
 {
 }
 

Modified: trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/ResponsivenessTimer.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -60,7 +60,7 @@
     ResponsivenessTimer::Client& m_client;
     bool m_isResponsive;
 
-    RunLoop::Timer<ResponsivenessTimer> m_timer;
+    RunLoop::Timer m_timer;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/ViewGestureController.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/ViewGestureController.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/ViewGestureController.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -56,7 +56,7 @@
 
 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 @@
 }
 
 ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker()
-    : m_watchdogTimer(RunLoop::main(), this, &SnapshotRemovalTracker::watchdogTimerFired)
+    : m_watchdogTimer(RunLoop::main(), *this, &SnapshotRemovalTracker::watchdogTimerFired)
 {
 }
 

Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkStore.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/VisitedLinkStore.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkStore.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -64,7 +64,7 @@
     : m_identifier(generateIdentifier())
     , m_keyCount(0)
     , m_tableSize(0)
-    , m_pendingVisitedLinksTimer(RunLoop::main(), this, &VisitedLinkStore::pendingVisitedLinksTimerFired)
+    , m_pendingVisitedLinksTimer(RunLoop::main(), *this, &VisitedLinkStore::pendingVisitedLinksTimerFired)
 {
 }
 

Modified: trunk/Source/WebKit2/UIProcess/VisitedLinkStore.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/VisitedLinkStore.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/VisitedLinkStore.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -80,7 +80,7 @@
     VisitedLinkTable m_table;
 
     HashSet<WebCore::LinkHash, WebCore::LinkHashHash> m_pendingVisitedLinks;
-    RunLoop::Timer<VisitedLinkStore> m_pendingVisitedLinksTimer;
+    RunLoop::Timer m_pendingVisitedLinksTimer;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -71,7 +71,7 @@
 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);

Modified: trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/WebInspectorProxy.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -255,7 +255,7 @@
     RetainPtr<NSWindow> m_inspectorWindow;
     RetainPtr<WKWebInspectorProxyObjCAdapter> m_inspectorProxyObjCAdapter;
     HashMap<String, RetainPtr<NSURL>> m_suggestedToActualURLMap;
-    RunLoop::Timer<WebInspectorProxy> m_closeTimer;
+    RunLoop::Timer m_closeTimer;
     String m_urlString;
 #elif PLATFORM(GTK)
     WebInspectorClientGtk m_client;

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -166,7 +166,7 @@
     , 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);

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -525,7 +525,7 @@
     UserObservablePageCounter m_userObservablePageCounter;
     ProcessSuppressionDisabledCounter m_processSuppressionDisabledForPageCounter;
     HiddenPageThrottlingAutoIncreasesCounter m_hiddenPageThrottlingAutoIncreasesCounter;
-    RunLoop::Timer<WebProcessPool> m_hiddenPageThrottlingTimer;
+    RunLoop::Timer m_hiddenPageThrottlingTimer;
 
 #if PLATFORM(COCOA)
     RetainPtr<NSMutableDictionary> m_bundleParameters;

Modified: trunk/Source/WebKit2/UIProcess/gtk/GestureController.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/gtk/GestureController.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/gtk/GestureController.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -163,7 +163,7 @@
 
 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 @@
     : 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);

Modified: trunk/Source/WebKit2/UIProcess/gtk/GestureController.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/gtk/GestureController.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/gtk/GestureController.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -77,7 +77,7 @@
 
         WebCore::FloatPoint m_start;
         WebCore::FloatPoint m_offset;
-        RunLoop::Timer<DragGesture> m_longPressTimeout;
+        RunLoop::Timer m_longPressTimeout;
         GRefPtr<GtkGesture> m_longPress;
         bool m_inDrag;
     };
@@ -97,7 +97,7 @@
         gdouble m_scale;
         WebCore::IntPoint m_initialPoint;
         WebCore::IntPoint m_viewPoint;
-        RunLoop::Timer<ZoomGesture> m_idle;
+        RunLoop::Timer m_idle;
     };
 
     DragGesture m_dragGesture;

Modified: trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -42,7 +42,7 @@
     : 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);

Modified: trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebPopupMenuProxyGtk.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -67,7 +67,7 @@
     GtkWidget* m_webView { nullptr };
     GtkWidget* m_popup { nullptr };
 
-    RunLoop::Timer<WebPopupMenuProxyGtk> m_dismissMenuTimer;
+    RunLoop::Timer m_dismissMenuTimer;
 
     // Typeahead find.
     unsigned m_previousKeyEventCharacter { 0 };

Modified: trunk/Source/WebKit2/UIProcess/mac/ViewGestureController.h (202579 => 202580)


--- trunk/Source/WebKit2/UIProcess/mac/ViewGestureController.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/UIProcess/mac/ViewGestureController.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -178,7 +178,7 @@
         std::function<void()> m_removalCallback;
         std::chrono::steady_clock::time_point m_startTime;
 
-        RunLoop::Timer<SnapshotRemovalTracker> m_watchdogTimer;
+        RunLoop::Timer m_watchdogTimer;
     };
 
 #if PLATFORM(MAC)
@@ -239,7 +239,7 @@
     WebPageProxy& m_webPageProxy;
     ViewGestureType m_activeGestureType { ViewGestureType::None };
 
-    RunLoop::Timer<ViewGestureController> m_swipeActiveLoadMonitoringTimer;
+    RunLoop::Timer m_swipeActiveLoadMonitoringTimer;
 
     WebCore::Color m_backgroundColorForCurrentSnapshot;
 

Modified: trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -63,7 +63,7 @@
 namespace WebKit {
 
 WebLoaderStrategy::WebLoaderStrategy()
-    : m_internallyFailedLoadTimer(RunLoop::main(), this, &WebLoaderStrategy::internallyFailedLoadTimerFired)
+    : m_internallyFailedLoadTimer(RunLoop::main(), *this, &WebLoaderStrategy::internallyFailedLoadTimerFired)
 {
 }
 

Modified: trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Network/WebLoaderStrategy.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -69,7 +69,7 @@
     void startLocalLoad(WebCore::ResourceLoader&);
 
     HashSet<RefPtr<WebCore::ResourceLoader>> m_internallyFailedResourceLoaders;
-    RunLoop::Timer<WebLoaderStrategy> m_internallyFailedLoadTimer;
+    RunLoop::Timer m_internallyFailedLoadTimer;
     
     HashMap<unsigned long, RefPtr<WebResourceLoader>> m_webResourceLoaders;
 };

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -54,7 +54,7 @@
 
 NPRuntimeObjectMap::NPRuntimeObjectMap(PluginView* pluginView)
     : m_pluginView(pluginView)
-    , m_finalizationTimer(RunLoop::main(), this, &NPRuntimeObjectMap::invalidateQueuedObjects)
+    , m_finalizationTimer(RunLoop::main(), *this, &NPRuntimeObjectMap::invalidateQueuedObjects)
 {
 }
 

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -98,7 +98,7 @@
     HashMap<JSC::JSObject*, NPJSObject*> m_npJSObjects;
     HashMap<NPObject*, JSC::Weak<JSNPObject>> m_jsNPObjects;
     Vector<NPObject*> m_npObjectsToFinalize;
-    RunLoop::Timer<NPRuntimeObjectMap> m_finalizationTimer;
+    RunLoop::Timer m_finalizationTimer;
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -91,7 +91,7 @@
     , 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 @@
     , m_interval(interval)
     , m_repeat(repeat)
     , m_timerFunc(timerFunc)
-    , m_timer(RunLoop::main(), this, &Timer::timerFired)
+    , m_timer(RunLoop::main(), *this, &Timer::timerFired)
 {
 }
 

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -338,7 +338,7 @@
         bool m_repeat;
         TimerFunc m_timerFunc;
 
-        RunLoop::Timer<Timer> m_timer;
+        RunLoop::Timer m_timer;
     };
     typedef HashMap<unsigned, std::unique_ptr<Timer>> TimerMap;
     TimerMap m_timers;
@@ -383,7 +383,7 @@
 
     // FIXME: It's a bit wasteful to have one null event timer per plug-in.
     // We should investigate having one per window.
-    RunLoop::Timer<NetscapePlugin> m_nullEventTimer;
+    RunLoop::Timer m_nullEventTimer;
     NP_CGContext m_npCGContext;
 #endif
 #elif PLUGIN_ARCHITECTURE(X11)

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -50,7 +50,7 @@
 #if !ASSERT_DISABLED
     , m_urlNotifyHasBeenCalled(false)
 #endif    
-    , m_deliveryDataTimer(RunLoop::main(), this, &NetscapePluginStream::deliverDataToPlugin)
+    , m_deliveryDataTimer(RunLoop::main(), *this, &NetscapePluginStream::deliverDataToPlugin)
     , m_stopStreamWhenDoneDelivering(false)
 {
 }

Modified: trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/Netscape/NetscapePluginStream.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -108,7 +108,7 @@
     CString m_mimeType;
     CString m_headers;
 
-    RunLoop::Timer<NetscapePluginStream> m_deliveryDataTimer;
+    RunLoop::Timer m_deliveryDataTimer;
     std::unique_ptr<Vector<uint8_t>> m_deliveryData;
     bool m_stopStreamWhenDoneDelivering;
 };

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -312,7 +312,7 @@
 #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

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -257,7 +257,7 @@
 
     // Pending URLRequests that the plug-in has made.
     Deque<RefPtr<URLRequest>> m_pendingURLRequests;
-    RunLoop::Timer<PluginView> m_pendingURLRequestsTimer;
+    RunLoop::Timer m_pendingURLRequestsTimer;
 
     // Pending frame loads that the plug-in has made.
     typedef HashMap<RefPtr<WebFrame>, RefPtr<URLRequest>> FrameLoadMap;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -64,7 +64,7 @@
     , 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);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -108,7 +108,7 @@
     // won't paint until painting has resumed again.
     bool m_isPaintingSuspended;
 
-    RunLoop::Timer<CoordinatedDrawingArea> m_exitCompositingTimer;
+    RunLoop::Timer m_exitCompositingTimer;
 
     // The layer tree host that handles accelerated compositing.
     RefPtr<LayerTreeHost> m_layerTreeHost;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -63,7 +63,7 @@
     , 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);

Modified: trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -140,7 +140,7 @@
     float m_lastScaleFactor;
     WebCore::IntPoint m_lastScrollPosition;
 
-    RunLoop::Timer<ThreadedCoordinatedLayerTreeHost> m_layerFlushTimer;
+    RunLoop::Timer m_layerFlushTimer;
     bool m_layerFlushSchedulingEnabled;
 };
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -65,8 +65,8 @@
     , 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)
 {
 }
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -131,8 +131,8 @@
 
     bool m_forceRepaintAfterBackingStoreStateUpdate { false };
 
-    RunLoop::Timer<DrawingAreaImpl> m_displayTimer;
-    RunLoop::Timer<DrawingAreaImpl> m_exitCompositingTimer;
+    RunLoop::Timer m_displayTimer;
+    RunLoop::Timer m_exitCompositingTimer;
 
     // The layer tree host that handles accelerated compositing.
     RefPtr<LayerTreeHost> m_layerTreeHost;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -301,7 +301,7 @@
     , 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 @@
 #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

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1250,7 +1250,7 @@
     String m_primaryPlugInPageOrigin;
     String m_primaryPlugInOrigin;
     String m_primaryPlugInMimeType;
-    RunLoop::Timer<WebPage> m_determinePrimarySnapshottedPlugInTimer;
+    RunLoop::Timer m_determinePrimarySnapshottedPlugInTimer;
 #endif
 
     // The layer hosting mode.
@@ -1291,7 +1291,7 @@
     RefPtr<PageBanner> m_footerBanner;
 #endif // !PLATFORM(IOS)
 
-    RunLoop::Timer<WebPage> m_setCanStartMediaTimer;
+    RunLoop::Timer m_setCanStartMediaTimer;
     bool m_mayStartMediaWhenInWindow;
 
     HashMap<uint64_t, RefPtr<WebUndoStep>> m_undoStepMap;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -63,7 +63,7 @@
 
 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.

Modified: trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -75,7 +75,7 @@
         void nextFrame();
 
         std::function<bool()> m_renderer;
-        RunLoop::Timer<RenderFrameScheduler> m_timer;
+        RunLoop::Timer m_timer;
         double m_fireTime { 0 };
         double m_lastImmediateFlushTime { 0 };
     };

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -144,7 +144,7 @@
 
     WebCore::TransformationMatrix m_transform;
 
-    RunLoop::Timer<TiledCoreAnimationDrawingArea> m_sendDidUpdateViewStateTimer;
+    RunLoop::Timer m_sendDidUpdateViewStateTimer;
     Vector<uint64_t> m_nextViewStateChangeCallbackIDs;
     bool m_wantsDidUpdateViewState;
 

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm (202579 => 202580)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm	2016-06-28 19:10:31 UTC (rev 202580)
@@ -79,7 +79,7 @@
     , 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)
 {

Modified: trunk/Tools/ChangeLog (202579 => 202580)


--- trunk/Tools/ChangeLog	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Tools/ChangeLog	2016-06-28 19:10:31 UTC (rev 202580)
@@ -1,3 +1,19 @@
+2016-06-28  Brian Burg  <[email protected]>
+
+        RunLoop::Timer should use constructor templates instead of class templates
+        https://bugs.webkit.org/show_bug.cgi?id=159153
+
+        Reviewed by Alex Christensen.
+
+        Remove the RunLoop::Timer class template argument, and pass its constructor
+        a reference to `this` instead of a pointer to `this`.
+
+        * WebKitTestRunner/InjectedBundle/TestRunner.cpp:
+        (WTR::TestRunner::TestRunner):
+        * WebKitTestRunner/InjectedBundle/TestRunner.h:
+        * TestWebKitAPI/Tests/WTF/RunLoop.cpp:
+        (TestWebKitAPI::TEST):
+
 2016-06-28  Ryosuke Niwa  <[email protected]>
 
         REGRESSION(r201471): FormClient.textFieldDidEndEditing is no longer called when a text field is removed

Modified: trunk/Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp (202579 => 202580)


--- trunk/Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -75,10 +75,10 @@
 
     bool testFinished = false;
 
-    class DerivedTimer : public RunLoop::Timer<DerivedTimer> {
+    class DerivedTimer : public RunLoop::Timer {
     public:
         DerivedTimer(bool& testFinished)
-            : RunLoop::Timer<DerivedTimer>(RunLoop::current(), this, &DerivedTimer::fired)
+            : RunLoop::Timer(RunLoop::current(), *this, &DerivedTimer::fired)
             , m_testFinished(testFinished)
         {
         }
@@ -106,10 +106,10 @@
 
     bool testFinished = false;
 
-    class DerivedTimer : public RunLoop::Timer<DerivedTimer> {
+    class DerivedTimer : public RunLoop::Timer {
     public:
         DerivedTimer(bool& testFinished)
-            : RunLoop::Timer<DerivedTimer>(RunLoop::current(), this, &DerivedTimer::fired)
+            : RunLoop::Timer(RunLoop::current(), *this, &DerivedTimer::fired)
             , m_testFinished(testFinished)
         {
         }

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp (202579 => 202580)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.cpp	2016-06-28 19:10:31 UTC (rev 202580)
@@ -97,7 +97,7 @@
     , 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();

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h (202579 => 202580)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h	2016-06-28 18:25:27 UTC (rev 202579)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/TestRunner.h	2016-06-28 19:10:31 UTC (rev 202580)
@@ -43,7 +43,7 @@
 #include <wtf/RunLoop.h>
 namespace WTR {
 class TestRunner;
-typedef RunLoop::Timer<TestRunner> PlatformTimerRef;
+typedef RunLoop::Timer PlatformTimerRef;
 }
 #elif PLATFORM(EFL)
 typedef Ecore_Timer* PlatformTimerRef;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to