Title: [248467] trunk/Source/WebCore
Revision
248467
Author
[email protected]
Date
2019-08-09 09:58:47 -0700 (Fri, 09 Aug 2019)

Log Message

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):

Modified Paths

Removed Paths

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
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to