Index: third_party/WebKit/Source/modules/mediastream/HTMLMediaElementMediaStream.cpp |
diff --git a/third_party/WebKit/Source/modules/mediastream/HTMLMediaElementMediaStream.cpp b/third_party/WebKit/Source/modules/mediastream/HTMLMediaElementMediaStream.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ad55eb15fd14d99234e1db4dce739c30186b0525 |
--- /dev/null |
+++ b/third_party/WebKit/Source/modules/mediastream/HTMLMediaElementMediaStream.cpp |
@@ -0,0 +1,54 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
haraken
2016/03/18 23:37:40
2016
Guido Urdaneta
2016/03/20 12:16:30
Done.
|
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "modules/mediastream/HTMLMediaElementMediaStream.h" |
+ |
+#include "modules/mediastream/MediaStream.h" |
+#include "modules/mediastream/URLMediaStream.h" |
+ |
+namespace blink { |
+ |
+HTMLMediaElementMediaStream::HTMLMediaElementMediaStream() |
+ : m_srcObject(nullptr) |
+{ |
+} |
+ |
+// static |
+MediaStream* HTMLMediaElementMediaStream::srcObject(HTMLMediaElement& element) |
+{ |
+ HTMLMediaElementMediaStream& thisElement = HTMLMediaElementMediaStream::from(element); |
+ return thisElement.m_srcObject; |
+} |
+ |
+// static |
+void HTMLMediaElementMediaStream::setSrcObject(HTMLMediaElement& element, MediaStream* mediaStream) |
+{ |
+ HTMLMediaElementMediaStream& thisElement = HTMLMediaElementMediaStream::from(element); |
+ thisElement.m_srcObject = mediaStream; |
+ AtomicString url(URLMediaStream::createObjectURL(element.getExecutionContext(), mediaStream)); |
+ element.setSrcObjectURL(url); |
+} |
+ |
+HTMLMediaElementMediaStream& HTMLMediaElementMediaStream::from(HTMLMediaElement& element) |
+{ |
+ HTMLMediaElementMediaStream* supplement = static_cast<HTMLMediaElementMediaStream*>(WillBeHeapSupplement<HTMLMediaElement>::from(element, supplementName())); |
+ if (!supplement) { |
+ supplement = new HTMLMediaElementMediaStream(); |
+ provideTo(element, supplementName(), adoptPtrWillBeNoop(supplement)); |
+ } |
+ return *supplement; |
+} |
+ |
+const char* HTMLMediaElementMediaStream::supplementName() |
+{ |
+ return "HTMLMediaElementMediaStream"; |
+} |
+ |
+DEFINE_TRACE(HTMLMediaElementMediaStream) |
+{ |
+ visitor->trace(m_srcObject); |
+ WillBeHeapSupplement<HTMLMediaElement>::trace(visitor); |
+} |
+ |
+} // namespace blink |