Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(789)

Unified Diff: third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp

Issue 1508023002: Add TimedCanvasDrawListener (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@spec-change
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp
diff --git a/third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp b/third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp
index 45700b6a95ee732beafc1ccf6dbf9de600e2c828..a85ca38238341c1d26c3ab7abbf9955d2138e34d 100644
--- a/third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp
+++ b/third_party/WebKit/Source/modules/mediacapturefromelement/HTMLCanvasElementCapture.cpp
@@ -21,6 +21,16 @@ namespace blink {
MediaStream* HTMLCanvasElementCapture::captureStream(HTMLCanvasElement& element, ExceptionState& exceptionState)
{
+ return HTMLCanvasElementCapture::captureStream(element, false, 0, exceptionState);
+}
+
+MediaStream* HTMLCanvasElementCapture::captureStream(HTMLCanvasElement& element, double frameRate, ExceptionState& exceptionState)
+{
+ return HTMLCanvasElementCapture::captureStream(element, true, frameRate, exceptionState);
+}
+
+MediaStream* HTMLCanvasElementCapture::captureStream(HTMLCanvasElement& element, bool givenFrameRate, double frameRate, ExceptionState& exceptionState)
+{
if (!element.originClean()) {
exceptionState.throwDOMException(SecurityError, "Canvas is not origin-clean.");
return MediaStream::create(element.executionContext());
@@ -28,7 +38,11 @@ MediaStream* HTMLCanvasElementCapture::captureStream(HTMLCanvasElement& element,
WebMediaStreamTrack track;
WebSize size(element.width(), element.height());
- OwnPtr<WebCanvasCaptureHandler> handler = adoptPtr(Platform::current()->createCanvasCaptureHandler(size, kDefaultFrameRate, &track));
+ OwnPtr<WebCanvasCaptureHandler> handler;
+ if (givenFrameRate)
+ handler = adoptPtr(Platform::current()->createCanvasCaptureHandler(size, frameRate, &track));
+ else
+ handler = adoptPtr(Platform::current()->createCanvasCaptureHandler(size, kDefaultFrameRate, &track));
ASSERT(handler);
if (!handler) {
exceptionState.throwDOMException(NotSupportedError, "No CanvasCapture handler can be created.");
@@ -36,7 +50,10 @@ MediaStream* HTMLCanvasElementCapture::captureStream(HTMLCanvasElement& element,
}
MediaStreamTrackVector tracks;
- tracks.append(CanvasCaptureMediaStreamTrack::create(track, &element, handler.release()));
+ if (givenFrameRate)
+ tracks.append(CanvasCaptureMediaStreamTrack::create(track, &element, handler.release(), frameRate));
+ else
+ tracks.append(CanvasCaptureMediaStreamTrack::create(track, &element, handler.release()));
return MediaStream::create(element.executionContext(), tracks);
}

Powered by Google App Engine
This is Rietveld 408576698