| 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);
|
| }
|
|
|
|
|