Diff
Modified: trunk/Source/WebCore/ChangeLog (248466 => 248467)
--- trunk/Source/WebCore/ChangeLog 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/ChangeLog 2019-08-09 16:58:47 UTC (rev 248467)
@@ -1,3 +1,34 @@
+2019-08-09 Youenn Fablet <[email protected]>
+
+ Remove MediaStreamRegistry
+ https://bugs.webkit.org/show_bug.cgi?id=200570
+
+ Reviewed by Eric Carlson.
+
+ MediaStream cannot be registered as an URL by _javascript_.
+ Remove MediaStreamRegistry and the 'src' loading specific handling in HTMLMediaElement.
+ Implement ending of capture track by directly handling MediaStreamTrack which is more accurate.
+ No change of behavior.
+
+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::MediaStream):
+ (WebCore::MediaStream::~MediaStream):
+ (WebCore::MediaStream::stop):
+ * Modules/mediastream/MediaStream.h:
+ * Modules/mediastream/MediaStreamRegistry.cpp: Removed.
+ * Modules/mediastream/MediaStreamRegistry.h: Removed.
+ * Modules/mediastream/MediaStreamTrack.cpp:
+ (WebCore::MediaStreamTrack::MediaStreamTrack):
+ (WebCore::MediaStreamTrack::~MediaStreamTrack):
+ (WebCore::MediaStreamTrack::endCapture):
+ * Modules/mediastream/MediaStreamTrack.h:
+ * Sources.txt:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/Document.cpp:
+ (WebCore::Document::stopMediaCapture):
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::loadResource):
+
2019-08-09 Víctor Manuel Jáquez Leal <[email protected]>
[GL][GStreamer] activate wrapped shared context
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp 2019-08-09 16:58:47 UTC (rev 248467)
@@ -36,7 +36,6 @@
#include "Frame.h"
#include "FrameLoader.h"
#include "Logging.h"
-#include "MediaStreamRegistry.h"
#include "MediaStreamTrackEvent.h"
#include "NetworkingContext.h"
#include "Page.h"
@@ -92,7 +91,6 @@
setIsActive(m_private->active());
m_private->addObserver(*this);
- MediaStreamRegistry::shared().registerStream(*this);
suspendIfNeeded();
}
@@ -105,7 +103,6 @@
setIsActive(m_private->active());
m_private->addObserver(*this);
- MediaStreamRegistry::shared().registerStream(*this);
for (auto& trackPrivate : m_private->tracks()) {
auto track = MediaStreamTrack::create(document, *trackPrivate);
@@ -120,7 +117,6 @@
// Set isActive to false immediately so any callbacks triggered by shutting down, e.g.
// mediaState(), are short circuited.
m_isActive = false;
- MediaStreamRegistry::shared().unregisterStream(*this);
m_private->removeObserver(*this);
for (auto& track : m_trackSet.values())
track->removeObserver(*this);
@@ -325,16 +321,6 @@
m_private->stopProducingData();
}
-void MediaStream::endCaptureTracks()
-{
- ALWAYS_LOG(LOGIDENTIFIER);
-
- for (auto& track : m_trackSet.values()) {
- if (track->isCaptureTrack())
- track->stopTrack(MediaStreamTrack::StopMode::PostEvent);
- }
-}
-
MediaProducer::MediaStateFlags MediaStream::mediaState() const
{
MediaProducer::MediaStateFlags state = MediaProducer::IsNotPlaying;
@@ -384,11 +370,6 @@
setIsActive(active);
}
-URLRegistry& MediaStream::registry() const
-{
- return MediaStreamRegistry::shared();
-}
-
MediaStreamTrackVector MediaStream::trackVectorForType(RealtimeMediaSource::Type filterType) const
{
MediaStreamTrackVector tracks;
@@ -483,7 +464,6 @@
void MediaStream::stop()
{
m_isActive = false;
- endCaptureTracks();
}
const char* MediaStream::activeDOMObjectName() const
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStream.h (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStream.h 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStream.h 2019-08-09 16:58:47 UTC (rev 248467)
@@ -49,8 +49,7 @@
class Document;
class MediaStream final
- : public URLRegistrable
- , public EventTargetWithInlineData
+ : public EventTargetWithInlineData
, public ActiveDOMObject
, public MediaStreamTrack::Observer
, public MediaStreamPrivate::Observer
@@ -94,8 +93,6 @@
void startProducingData();
void stopProducingData();
- void endCaptureTracks();
-
// EventTarget
EventTargetInterface eventTargetInterface() const final { return MediaStreamEventTargetInterfaceType; }
ScriptExecutionContext* scriptExecutionContext() const final { return ContextDestructionObserver::scriptExecutionContext(); }
@@ -103,9 +100,6 @@
using RefCounted<MediaStream>::ref;
using RefCounted<MediaStream>::deref;
- // URLRegistrable
- URLRegistry& registry() const override;
-
void addObserver(Observer*);
void removeObserver(Observer*);
Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp 2019-08-09 16:58:47 UTC (rev 248467)
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#include "MediaStreamRegistry.h"
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "MediaStream.h"
-#include <wtf/MainThread.h>
-#include <wtf/NeverDestroyed.h>
-#include <wtf/URL.h>
-
-namespace WebCore {
-
-MediaStreamRegistry& MediaStreamRegistry::shared()
-{
- // Since WebWorkers cannot obtain MediaSource objects, we should be on the main thread.
- ASSERT(isMainThread());
- static NeverDestroyed<MediaStreamRegistry> instance;
- return instance;
-}
-
-void MediaStreamRegistry::registerURL(SecurityOrigin*, const URL& url, URLRegistrable& stream)
-{
- ASSERT(&stream.registry() == this);
- ASSERT(isMainThread());
- m_mediaStreams.set(url.string(), static_cast<MediaStream*>(&stream));
-}
-
-void MediaStreamRegistry::unregisterURL(const URL& url)
-{
- ASSERT(isMainThread());
- m_mediaStreams.remove(url.string());
-}
-
-URLRegistrable* MediaStreamRegistry::lookup(const String& url) const
-{
- ASSERT(isMainThread());
- return m_mediaStreams.get(url);
-}
-
-MediaStream* MediaStreamRegistry::lookUp(const URL& url) const
-{
- return static_cast<MediaStream*>(lookup(url.string()));
-}
-
-static Vector<MediaStream*>& mediaStreams()
-{
- static NeverDestroyed<Vector<MediaStream*>> streams;
- return streams;
-}
-
-void MediaStreamRegistry::registerStream(MediaStream& stream)
-{
- mediaStreams().append(&stream);
-}
-
-void MediaStreamRegistry::unregisterStream(MediaStream& stream)
-{
- auto& allStreams = mediaStreams();
- size_t pos = allStreams.find(&stream);
- if (pos != notFound)
- allStreams.remove(pos);
-}
-
-void MediaStreamRegistry::forEach(const WTF::Function<void(MediaStream&)>& callback) const
-{
- for (auto& stream : mediaStreams())
- callback(*stream);
-}
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
Deleted: trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamRegistry.h 2019-08-09 16:58:47 UTC (rev 248467)
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies).
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#if ENABLE(MEDIA_STREAM)
-
-#include "URLRegistry.h"
-#include <wtf/Function.h>
-#include <wtf/HashMap.h>
-#include <wtf/text/StringHash.h>
-
-namespace WebCore {
-
-class MediaStream;
-class MediaStreamPrivate;
-
-class MediaStreamRegistry final : public URLRegistry {
-public:
- friend class NeverDestroyed<MediaStreamRegistry>;
-
- // Returns a single instance of MediaStreamRegistry.
- static MediaStreamRegistry& shared();
-
- // Registers a blob URL referring to the specified stream data.
- void registerURL(SecurityOrigin*, const URL&, URLRegistrable&) override;
- void unregisterURL(const URL&) override;
-
- URLRegistrable* lookup(const String&) const override;
-
- void registerStream(MediaStream&);
- void unregisterStream(MediaStream&);
-
- MediaStream* lookUp(const URL&) const;
-
- void forEach(const WTF::Function<void(MediaStream&)>&) const;
-
-private:
- MediaStreamRegistry() = default;
- HashMap<String, RefPtr<MediaStream>> m_mediaStreams;
-};
-
-} // namespace WebCore
-
-#endif // ENABLE(MEDIA_STREAM)
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp 2019-08-09 16:58:47 UTC (rev 248467)
@@ -48,6 +48,12 @@
namespace WebCore {
+static HashSet<MediaStreamTrack*>& allCaptureTracks()
+{
+ static NeverDestroyed<HashSet<MediaStreamTrack*>> captureTracks;
+ return captureTracks;
+}
+
static MediaProducer::MediaStateFlags sourceCaptureState(RealtimeMediaSource&);
WTF_MAKE_ISO_ALLOCATED_IMPL(MediaStreamTrack);
@@ -71,6 +77,8 @@
if (!isCaptureTrack())
return;
+ allCaptureTracks().add(this);
+
if (auto document = this->document()) {
if (document->page() && document->page()->mutedState())
setMuted(true);
@@ -87,6 +95,8 @@
if (!isCaptureTrack())
return;
+ allCaptureTracks().remove(this);
+
#if !PLATFORM(IOS_FAMILY)
if (auto document = this->document())
document->removeAudioProducer(*this);
@@ -473,6 +483,15 @@
}
#endif
+void MediaStreamTrack::endCapture(Document& document)
+{
+ for (auto* captureTrack : allCaptureTracks()) {
+ if (captureTrack->document() != &document)
+ continue;
+ captureTrack->stopTrack(MediaStreamTrack::StopMode::PostEvent);
+ }
+}
+
void MediaStreamTrack::trackStarted(MediaStreamTrackPrivate&)
{
configureTrackRendering();
Modified: trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h (248466 => 248467)
--- trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h 2019-08-09 16:58:47 UTC (rev 248467)
@@ -68,6 +68,8 @@
static Ref<MediaStreamTrack> create(ScriptExecutionContext&, Ref<MediaStreamTrackPrivate>&&);
virtual ~MediaStreamTrack();
+ static void endCapture(Document&);
+
#if PLATFORM(IOS_FAMILY)
static MediaProducer::MediaStateFlags captureState();
static void muteCapture();
Modified: trunk/Source/WebCore/Sources.txt (248466 => 248467)
--- trunk/Source/WebCore/Sources.txt 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/Sources.txt 2019-08-09 16:58:47 UTC (rev 248467)
@@ -162,7 +162,6 @@
Modules/mediastream/MediaDevicesEnumerationRequest.cpp
Modules/mediastream/MediaDevicesRequest.cpp
Modules/mediastream/MediaStream.cpp
-Modules/mediastream/MediaStreamRegistry.cpp
Modules/mediastream/MediaStreamTrack.cpp
Modules/mediastream/MediaStreamTrackEvent.cpp
Modules/mediastream/MediaTrackConstraints.cpp
Modified: trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj (248466 => 248467)
--- trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj 2019-08-09 16:58:47 UTC (rev 248467)
@@ -147,7 +147,6 @@
07846385145B1B8E00A58DF1 /* JSTrackCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 07846384145B1B8E00A58DF1 /* JSTrackCustom.h */; };
0787C46A1BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */; };
078E091517D14D1C00420AA1 /* MediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B4D17CEC32700848E51 /* MediaStream.h */; };
- 078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5517CEC32700848E51 /* MediaStreamTrack.h */; settings = {ATTRIBUTES = (Private, ); }; };
078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
078E091E17D14D1C00420AA1 /* RTCDataChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B6417CEC32700848E51 /* RTCDataChannel.h */; settings = {ATTRIBUTES = (Private, ); }; };
@@ -4019,7 +4018,6 @@
CD5FF49C2162E4CF004BD86F /* ISOProtectionSystemSpecificHeaderBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 12F75A9A86EA03DAF24B7971 /* ISOProtectionSystemSpecificHeaderBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
CD5FF49D2162E4DB004BD86F /* ISOProtectionSchemeInfoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C601FB52B6500F0B965 /* ISOProtectionSchemeInfoBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
CD5FF49E2162E4E8004BD86F /* ISOOriginalFormatBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C671FB52B6800F0B965 /* ISOOriginalFormatBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
- CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */; };
CD62FB961AF018E70012ED7D /* GenericTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CD62FB941AF018E70012ED7D /* GenericTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */; };
CD641EB41818F5ED00EE4C41 /* SourceBufferPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB21818F5ED00EE4C41 /* SourceBufferPrivate.h */; };
@@ -5270,8 +5268,6 @@
07221B4C17CEC32700848E51 /* MediaStream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStream.cpp; sourceTree = "<group>"; };
07221B4D17CEC32700848E51 /* MediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStream.h; sourceTree = "<group>"; };
07221B4E17CEC32700848E51 /* MediaStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStream.idl; sourceTree = "<group>"; };
- 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamRegistry.cpp; sourceTree = "<group>"; };
- 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamRegistry.h; sourceTree = "<group>"; };
07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrack.cpp; sourceTree = "<group>"; };
07221B5517CEC32700848E51 /* MediaStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrack.h; sourceTree = "<group>"; };
07221B5617CEC32700848E51 /* MediaStreamTrack.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStreamTrack.idl; sourceTree = "<group>"; };
@@ -7263,6 +7259,8 @@
417612AC1E3A993B00C3D81D /* LibWebRTCMediaEndpoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCMediaEndpoint.h; path = libwebrtc/LibWebRTCMediaEndpoint.h; sourceTree = "<group>"; };
417612AD1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCPeerConnectionBackend.cpp; path = libwebrtc/LibWebRTCPeerConnectionBackend.cpp; sourceTree = "<group>"; };
417612AE1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCPeerConnectionBackend.h; path = libwebrtc/LibWebRTCPeerConnectionBackend.h; sourceTree = "<group>"; };
+ 4176900322FCD8F200B1576D /* MediaSourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceRegistry.h; sourceTree = "<group>"; };
+ 4176900422FCD8F200B1576D /* MediaSourceRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceRegistry.cpp; sourceTree = "<group>"; };
417DA4CE13734326007C57FB /* Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Internals.h; sourceTree = "<group>"; };
417DA4CF13734326007C57FB /* Internals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Internals.cpp; sourceTree = "<group>"; };
417DA6D013734E02007C57FB /* libWebCoreTestSupport.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libWebCoreTestSupport.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -12034,8 +12032,6 @@
B10B697D140C174000BC1C26 /* WebVTTToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVTTToken.h; sourceTree = "<group>"; };
B10B697E140C174000BC1C26 /* WebVTTTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVTTTokenizer.cpp; sourceTree = "<group>"; };
B10B697F140C174000BC1C26 /* WebVTTTokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVTTTokenizer.h; sourceTree = "<group>"; };
- B1A942E115B5CE2200D525D1 /* MediaSourceRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceRegistry.cpp; sourceTree = "<group>"; };
- B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceRegistry.h; sourceTree = "<group>"; };
B1AD4E7113A12A4600846B27 /* TextTrackLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackLoader.cpp; sourceTree = "<group>"; };
B1AD4E7213A12A4600846B27 /* TextTrackLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextTrackLoader.h; sourceTree = "<group>"; };
B20111050AB7740500DB0E68 /* JSSVGAElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSSVGAElement.cpp; sourceTree = "<group>"; };
@@ -15674,8 +15670,6 @@
07221B4C17CEC32700848E51 /* MediaStream.cpp */,
07221B4D17CEC32700848E51 /* MediaStream.h */,
07221B4E17CEC32700848E51 /* MediaStream.idl */,
- 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */,
- 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */,
07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */,
07221B5517CEC32700848E51 /* MediaStreamTrack.h */,
07221B5617CEC32700848E51 /* MediaStreamTrack.idl */,
@@ -23779,8 +23773,8 @@
CD3A495517A9D01B00274E42 /* MediaSource.cpp */,
CD3A495617A9D01B00274E42 /* MediaSource.h */,
CD3A495717A9D01B00274E42 /* MediaSource.idl */,
- B1A942E115B5CE2200D525D1 /* MediaSourceRegistry.cpp */,
- B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */,
+ 4176900422FCD8F200B1576D /* MediaSourceRegistry.cpp */,
+ 4176900322FCD8F200B1576D /* MediaSourceRegistry.h */,
CDD7089418359F6E002B3DC6 /* SampleMap.cpp */,
CDD7089518359F6F002B3DC6 /* SampleMap.h */,
CD3A495817A9D01B00274E42 /* SourceBuffer.cpp */,
@@ -30724,7 +30718,6 @@
CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */,
CDC8B5A7180474F70016E685 /* MediaSourcePrivateAVFObjC.h in Headers */,
CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */,
- CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */,
078E091517D14D1C00420AA1 /* MediaStream.h in Headers */,
078E094C17D1709600420AA1 /* MediaStreamAudioDestinationNode.h in Headers */,
0783228518013ED800999E0C /* MediaStreamAudioSource.h in Headers */,
@@ -30731,7 +30724,6 @@
FD671A78159BB07000197559 /* MediaStreamAudioSourceNode.h in Headers */,
070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */,
078E093717D16B2C00420AA1 /* MediaStreamPrivate.h in Headers */,
- 078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */,
078E3CC01FE1C73C00483C1D /* MediaStreamRequest.h in Headers */,
078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */,
078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */,
Modified: trunk/Source/WebCore/dom/Document.cpp (248466 => 248467)
--- trunk/Source/WebCore/dom/Document.cpp 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/dom/Document.cpp 2019-08-09 16:58:47 UTC (rev 248467)
@@ -124,6 +124,7 @@
#include "MediaProducer.h"
#include "MediaQueryList.h"
#include "MediaQueryMatcher.h"
+#include "MediaStream.h"
#include "MessageEvent.h"
#include "Microtasks.h"
#include "MouseEventWithHitTestResults.h"
@@ -306,11 +307,6 @@
#include "XSLTProcessor.h"
#endif
-#if ENABLE(MEDIA_STREAM)
-#include "MediaStream.h"
-#include "MediaStreamRegistry.h"
-#endif
-
#if ENABLE(WEBGL)
#include "WebGLRenderingContext.h"
#endif
@@ -7664,10 +7660,7 @@
#if ENABLE(MEDIA_STREAM)
void Document::stopMediaCapture()
{
- MediaStreamRegistry::shared().forEach([this](MediaStream& stream) {
- if (stream.document() == this)
- stream.endCaptureTracks();
- });
+ MediaStreamTrack::endCapture(*this);
}
void Document::registerForMediaStreamStateChangeCallbacks(HTMLMediaElement& element)
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (248466 => 248467)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-08-09 15:53:59 UTC (rev 248466)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2019-08-09 16:58:47 UTC (rev 248467)
@@ -144,7 +144,6 @@
#if ENABLE(MEDIA_STREAM)
#include "DOMURL.h"
#include "MediaStream.h"
-#include "MediaStreamRegistry.h"
#endif
#if ENABLE(LEGACY_ENCRYPTED_MEDIA)
@@ -1583,7 +1582,7 @@
if (m_mediaSource) {
loadAttempted = true;
-
+
ALWAYS_LOG(LOGIDENTIFIER, "loading MSE blob");
if (!m_mediaSource->attachToElement(*this) || !m_player->load(url, contentType, m_mediaSource.get())) {
// Forget our reference to the MediaSource, so we leave it alone
@@ -1593,18 +1592,12 @@
}
}
#endif
-
#if ENABLE(MEDIA_STREAM)
- if (!loadAttempted) {
- if (!m_mediaStreamSrcObject && url.protocolIs(mediaStreamBlobProtocol))
- m_mediaStreamSrcObject = MediaStreamRegistry::shared().lookUp(url);
-
- if (m_mediaStreamSrcObject) {
- loadAttempted = true;
- ALWAYS_LOG(LOGIDENTIFIER, "loading media stream blob");
- if (!m_player->load(m_mediaStreamSrcObject->privateStream()))
- mediaLoadingFailed(MediaPlayer::FormatError);
- }
+ if (!loadAttempted && m_mediaStreamSrcObject) {
+ loadAttempted = true;
+ ALWAYS_LOG(LOGIDENTIFIER, "loading media stream blob");
+ if (!m_player->load(m_mediaStreamSrcObject->privateStream()))
+ mediaLoadingFailed(MediaPlayer::FormatError);
}
#endif