Index: Source/core/html/MediaProvider.cpp |
diff --git a/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp b/Source/core/html/MediaProvider.cpp |
similarity index 51% |
copy from Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp |
copy to Source/core/html/MediaProvider.cpp |
index d5e946c4b0c7c7c94903f766a0981b4648e30b69..5760387823ea4783f186f7f80e66b36aae8f61b8 100644 |
--- a/Source/core/dom/custom/CustomElementAsyncImportMicrotaskQueue.cpp |
+++ b/Source/core/html/MediaProvider.cpp |
@@ -29,27 +29,63 @@ |
*/ |
#include "config.h" |
-#include "core/dom/custom/CustomElementAsyncImportMicrotaskQueue.h" |
+#include "core/html/MediaProvider.h" |
-#include "core/dom/custom/CustomElementMicrotaskImportStep.h" |
+#include "core/dom/DOMURL.h" |
+#include "modules/mediasource/MediaSource.h" |
+#include "modules/mediastream/MediaStream.h" |
+#include "wtf/PassRefPtr.h" |
namespace blink { |
-void CustomElementAsyncImportMicrotaskQueue::enqueue(PassOwnPtrWillBeRawPtr<CustomElementMicrotaskStep> step) |
+MediaProvider::MediaProvider(PassRefPtrWillBeRawPtr<MediaStream> stream) |
+ : m_mediastream(stream.get()) |
{ |
- m_queue.append(step); |
} |
-void CustomElementAsyncImportMicrotaskQueue::doDispatch() |
+MediaProvider::MediaProvider(PassRefPtrWillBeRawPtr<MediaSource> source) |
+ : m_mediasource(source.get()) |
{ |
- WillBeHeapVector<OwnPtrWillBeMember<CustomElementMicrotaskStep> > remaining; |
+} |
+ |
+MediaStream* MediaProvider::mediaStream() const { |
+ return m_mediastream.get(); |
+} |
- for (unsigned i = 0; i < m_queue.size(); ++i) { |
- if (CustomElementMicrotaskStep::Processing == m_queue[i]->process()) |
- remaining.append(m_queue[i].release()); |
+MediaSource* MediaProvider::mediaSource() const { |
+ return m_mediasource.get(); |
+} |
+ |
+String MediaProvider::createObjectUrl() { |
+ blink::ExecutionContext* context = NULL; |
+ URLRegistrable* registrable = NULL; |
+ if (m_mediastream) { |
+ context = m_mediastream->executionContext(); |
+ registrable = m_mediastream.get(); |
+ } else if (m_mediasource) { |
+ context = m_mediasource->executionContext(); |
+ registrable = m_mediasource.get(); |
} |
+ return DOMURL::createPublicURL(context, registrable); |
+} |
- m_queue.swap(remaining); |
+PassRefPtrWillBeRawPtr<MediaProvider> MediaProvider::createFromMediaStream(PassRefPtrWillBeRawPtr<MediaStream> stream) |
+{ |
+ if (!stream) |
+ return nullptr; |
+ return adoptRefWillBeNoop(new MediaProvider(stream)); |
+} |
+ |
+PassRefPtrWillBeRawPtr<MediaProvider> MediaProvider::createFromMediaSource(PassRefPtrWillBeRawPtr<MediaSource> source) |
+{ |
+ if (!source) |
+ return nullptr; |
+ return adoptRefWillBeNoop(new MediaProvider(source)); |
+} |
+ |
+void MediaProvider::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_mediastream); |
} |
-} // namespace blink |
+} // namespace blink |