Index: third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp |
diff --git a/third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp b/third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp |
index 736e41d45487525427e897f4f9ad5925b317f3f0..a8a12892e584146fc2c1a7917173909d933991e4 100644 |
--- a/third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp |
+++ b/third_party/WebKit/Source/modules/mediacapturefromelement/CanvasCaptureMediaStreamTrack.cpp |
@@ -8,6 +8,7 @@ |
#include "core/html/HTMLCanvasElement.h" |
#include "modules/mediacapturefromelement/AutoCanvasDrawListener.h" |
#include "platform/NotImplemented.h" |
+#include "platform/mediastream/MediaStreamCenter.h" |
namespace blink { |
@@ -27,6 +28,14 @@ void CanvasCaptureMediaStreamTrack::requestFrame() |
return; |
} |
+CanvasCaptureMediaStreamTrack* CanvasCaptureMediaStreamTrack::clone(ExecutionContext* context) |
+{ |
+ MediaStreamComponent* clonedComponent = MediaStreamComponent::create(component()->source()); |
+ CanvasCaptureMediaStreamTrack* clonedTrack = new CanvasCaptureMediaStreamTrack(*this, clonedComponent); |
+ MediaStreamCenter::instance().didCreateMediaStreamTrack(clonedComponent); |
+ return clonedTrack; |
+} |
+ |
DEFINE_TRACE(CanvasCaptureMediaStreamTrack) |
{ |
visitor->trace(m_canvasElement); |
@@ -34,6 +43,15 @@ DEFINE_TRACE(CanvasCaptureMediaStreamTrack) |
MediaStreamTrack::trace(visitor); |
} |
+CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(const CanvasCaptureMediaStreamTrack& track, MediaStreamComponent* component) |
+ :MediaStreamTrack(track.m_canvasElement->executionContext(), component) |
+ , m_canvasElement(track.m_canvasElement) |
+ , m_drawListener(track.m_drawListener) |
+{ |
+ suspendIfNeeded(); |
+ m_canvasElement->addListener(m_drawListener.get()); |
+} |
+ |
CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack(MediaStreamComponent* component, PassRefPtrWillBeRawPtr<HTMLCanvasElement> element, const PassOwnPtr<WebCanvasCaptureHandler> handler) |
: MediaStreamTrack(element->executionContext(), component) |
, m_canvasElement(element) |