Index: third_party/WebKit/Source/modules/mediacapturefromelement/TimedCanvasDrawListener.cpp |
diff --git a/third_party/WebKit/Source/modules/mediacapturefromelement/TimedCanvasDrawListener.cpp b/third_party/WebKit/Source/modules/mediacapturefromelement/TimedCanvasDrawListener.cpp |
index c57578a6cfe8d58c0ff298e456b1ebd3d05dd4e3..f05e2c559508a1d9fbf29095ba05b17aa64d31cb 100644 |
--- a/third_party/WebKit/Source/modules/mediacapturefromelement/TimedCanvasDrawListener.cpp |
+++ b/third_party/WebKit/Source/modules/mediacapturefromelement/TimedCanvasDrawListener.cpp |
@@ -4,16 +4,13 @@ |
#include "modules/mediacapturefromelement/TimedCanvasDrawListener.h" |
-#include "public/platform/Platform.h" |
-#include "public/platform/WebTaskRunner.h" |
-#include "public/platform/WebTraceLocation.h" |
- |
namespace blink { |
TimedCanvasDrawListener::TimedCanvasDrawListener(const PassOwnPtr<WebCanvasCaptureHandler>& handler, double frameRate) |
: CanvasDrawListener(handler) |
+ , m_frameInterval(1 / frameRate) |
+ , m_requestFrameTimer(this, &TimedCanvasDrawListener::requestFrameTimerFired) |
{ |
- m_frameInterval = 1000 / frameRate; |
} |
TimedCanvasDrawListener::~TimedCanvasDrawListener() {} |
@@ -22,7 +19,7 @@ TimedCanvasDrawListener::~TimedCanvasDrawListener() {} |
TimedCanvasDrawListener* TimedCanvasDrawListener::create(const PassOwnPtr<WebCanvasCaptureHandler>& handler, double frameRate) |
{ |
TimedCanvasDrawListener* listener = new TimedCanvasDrawListener(handler, frameRate); |
- listener->postRequestFrameCaptureTask(); |
+ listener->m_requestFrameTimer.startRepeating(listener->m_frameInterval, BLINK_FROM_HERE); |
return listener; |
} |
@@ -32,10 +29,10 @@ void TimedCanvasDrawListener::sendNewFrame(const WTF::PassRefPtr<SkImage>& image |
CanvasDrawListener::sendNewFrame(image); |
} |
-void TimedCanvasDrawListener::postRequestFrameCaptureTask() |
+void TimedCanvasDrawListener::requestFrameTimerFired(Timer<TimedCanvasDrawListener>*) |
{ |
+ // TODO(emircan): Measure the jitter and log, see crbug.com/589974. |
m_frameCaptureRequested = true; |
- Platform::current()->currentThread()->taskRunner()->postDelayedTask(BLINK_FROM_HERE, bind(&TimedCanvasDrawListener::postRequestFrameCaptureTask, this), m_frameInterval); |
} |
} // namespace blink |