⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 248467 in webkit


Ignore:
Timestamp:
Aug 9, 2019, 9:58:47 AM (7 years ago)
Author:
youenn@apple.com
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):

Location:
trunk/Source/WebCore
Files:
2 deleted
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r248464 r248467  
     12019-08-09  Youenn Fablet  <youenn@apple.com>
     2
     3        Remove MediaStreamRegistry
     4        https://bugs.webkit.org/show_bug.cgi?id=200570
     5
     6        Reviewed by Eric Carlson.
     7
     8        MediaStream cannot be registered as an URL by JavaScript.
     9        Remove MediaStreamRegistry and the 'src' loading specific handling in HTMLMediaElement.
     10        Implement ending of capture track by directly handling MediaStreamTrack which is more accurate.
     11        No change of behavior.
     12
     13        * Modules/mediastream/MediaStream.cpp:
     14        (WebCore::MediaStream::MediaStream):
     15        (WebCore::MediaStream::~MediaStream):
     16        (WebCore::MediaStream::stop):
     17        * Modules/mediastream/MediaStream.h:
     18        * Modules/mediastream/MediaStreamRegistry.cpp: Removed.
     19        * Modules/mediastream/MediaStreamRegistry.h: Removed.
     20        * Modules/mediastream/MediaStreamTrack.cpp:
     21        (WebCore::MediaStreamTrack::MediaStreamTrack):
     22        (WebCore::MediaStreamTrack::~MediaStreamTrack):
     23        (WebCore::MediaStreamTrack::endCapture):
     24        * Modules/mediastream/MediaStreamTrack.h:
     25        * Sources.txt:
     26        * WebCore.xcodeproj/project.pbxproj:
     27        * dom/Document.cpp:
     28        (WebCore::Document::stopMediaCapture):
     29        * html/HTMLMediaElement.cpp:
     30        (WebCore::HTMLMediaElement::loadResource):
     31
    1322019-08-09  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
    233
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp

    r246470 r248467  
    3737#include "FrameLoader.h"
    3838#include "Logging.h"
    39 #include "MediaStreamRegistry.h"
    4039#include "MediaStreamTrackEvent.h"
    4140#include "NetworkingContext.h"
     
    9392    setIsActive(m_private->active());
    9493    m_private->addObserver(*this);
    95     MediaStreamRegistry::shared().registerStream(*this);
    9694    suspendIfNeeded();
    9795}
     
    106104    setIsActive(m_private->active());
    107105    m_private->addObserver(*this);
    108     MediaStreamRegistry::shared().registerStream(*this);
    109106
    110107    for (auto& trackPrivate : m_private->tracks()) {
     
    121118    // mediaState(), are short circuited.
    122119    m_isActive = false;
    123     MediaStreamRegistry::shared().unregisterStream(*this);
    124120    m_private->removeObserver(*this);
    125121    for (auto& track : m_trackSet.values())
     
    326322}
    327323
    328 void MediaStream::endCaptureTracks()
    329 {
    330     ALWAYS_LOG(LOGIDENTIFIER);
    331 
    332     for (auto& track : m_trackSet.values()) {
    333         if (track->isCaptureTrack())
    334             track->stopTrack(MediaStreamTrack::StopMode::PostEvent);
    335     }
    336 }
    337 
    338324MediaProducer::MediaStateFlags MediaStream::mediaState() const
    339325{
     
    385371}
    386372
    387 URLRegistry& MediaStream::registry() const
    388 {
    389     return MediaStreamRegistry::shared();
    390 }
    391 
    392373MediaStreamTrackVector MediaStream::trackVectorForType(RealtimeMediaSource::Type filterType) const
    393374{
     
    484465{
    485466    m_isActive = false;
    486     endCaptureTracks();
    487467}
    488468
  • trunk/Source/WebCore/Modules/mediastream/MediaStream.h

    r246470 r248467  
    5050
    5151class MediaStream final
    52     : public URLRegistrable
    53     , public EventTargetWithInlineData
     52    : public EventTargetWithInlineData
    5453    , public ActiveDOMObject
    5554    , public MediaStreamTrack::Observer
     
    9594    void stopProducingData();
    9695
    97     void endCaptureTracks();
    98 
    9996    // EventTarget
    10097    EventTargetInterface eventTargetInterface() const final { return MediaStreamEventTargetInterfaceType; }
     
    103100    using RefCounted<MediaStream>::ref;
    104101    using RefCounted<MediaStream>::deref;
    105 
    106     // URLRegistrable
    107     URLRegistry& registry() const override;
    108102
    109103    void addObserver(Observer*);
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp

    r248161 r248467  
    4949namespace WebCore {
    5050
     51static HashSet<MediaStreamTrack*>& allCaptureTracks()
     52{
     53    static NeverDestroyed<HashSet<MediaStreamTrack*>> captureTracks;
     54    return captureTracks;
     55}
     56
    5157static MediaProducer::MediaStateFlags sourceCaptureState(RealtimeMediaSource&);
    5258
     
    7177    if (!isCaptureTrack())
    7278        return;
     79
     80    allCaptureTracks().add(this);
    7381
    7482    if (auto document = this->document()) {
     
    8795    if (!isCaptureTrack())
    8896        return;
     97
     98    allCaptureTracks().remove(this);
    8999
    90100#if !PLATFORM(IOS_FAMILY)
     
    474484#endif
    475485
     486void MediaStreamTrack::endCapture(Document& document)
     487{
     488    for (auto* captureTrack : allCaptureTracks()) {
     489        if (captureTrack->document() != &document)
     490            continue;
     491        captureTrack->stopTrack(MediaStreamTrack::StopMode::PostEvent);
     492    }
     493}
     494
    476495void MediaStreamTrack::trackStarted(MediaStreamTrackPrivate&)
    477496{
  • trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h

    r248161 r248467  
    6969    virtual ~MediaStreamTrack();
    7070
     71    static void endCapture(Document&);
     72
    7173#if PLATFORM(IOS_FAMILY)
    7274    static MediaProducer::MediaStateFlags captureState();
  • trunk/Source/WebCore/Sources.txt

    r248403 r248467  
    163163Modules/mediastream/MediaDevicesRequest.cpp
    164164Modules/mediastream/MediaStream.cpp
    165 Modules/mediastream/MediaStreamRegistry.cpp
    166165Modules/mediastream/MediaStreamTrack.cpp
    167166Modules/mediastream/MediaStreamTrackEvent.cpp
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r248403 r248467  
    148148                0787C46A1BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */; };
    149149                078E091517D14D1C00420AA1 /* MediaStream.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B4D17CEC32700848E51 /* MediaStream.h */; };
    150                 078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */; settings = {ATTRIBUTES = (Private, ); }; };
    151150                078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5517CEC32700848E51 /* MediaStreamTrack.h */; settings = {ATTRIBUTES = (Private, ); }; };
    152151                078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    40204019                CD5FF49D2162E4DB004BD86F /* ISOProtectionSchemeInfoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C601FB52B6500F0B965 /* ISOProtectionSchemeInfoBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
    40214020                CD5FF49E2162E4E8004BD86F /* ISOOriginalFormatBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C671FB52B6800F0B965 /* ISOOriginalFormatBox.h */; settings = {ATTRIBUTES = (Private, ); }; };
    4022                 CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */; };
    40234021                CD62FB961AF018E70012ED7D /* GenericTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CD62FB941AF018E70012ED7D /* GenericTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; };
    40244022                CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */; };
     
    52715269                07221B4D17CEC32700848E51 /* MediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStream.h; sourceTree = "<group>"; };
    52725270                07221B4E17CEC32700848E51 /* MediaStream.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MediaStream.idl; sourceTree = "<group>"; };
    5273                 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamRegistry.cpp; sourceTree = "<group>"; };
    5274                 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamRegistry.h; sourceTree = "<group>"; };
    52755271                07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrack.cpp; sourceTree = "<group>"; };
    52765272                07221B5517CEC32700848E51 /* MediaStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrack.h; sourceTree = "<group>"; };
     
    72647260                417612AD1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCPeerConnectionBackend.cpp; path = libwebrtc/LibWebRTCPeerConnectionBackend.cpp; sourceTree = "<group>"; };
    72657261                417612AE1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LibWebRTCPeerConnectionBackend.h; path = libwebrtc/LibWebRTCPeerConnectionBackend.h; sourceTree = "<group>"; };
     7262                4176900322FCD8F200B1576D /* MediaSourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceRegistry.h; sourceTree = "<group>"; };
     7263                4176900422FCD8F200B1576D /* MediaSourceRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceRegistry.cpp; sourceTree = "<group>"; };
    72667264                417DA4CE13734326007C57FB /* Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Internals.h; sourceTree = "<group>"; };
    72677265                417DA4CF13734326007C57FB /* Internals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Internals.cpp; sourceTree = "<group>"; };
     
    1203512033                B10B697E140C174000BC1C26 /* WebVTTTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVTTTokenizer.cpp; sourceTree = "<group>"; };
    1203612034                B10B697F140C174000BC1C26 /* WebVTTTokenizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebVTTTokenizer.h; sourceTree = "<group>"; };
    12037                 B1A942E115B5CE2200D525D1 /* MediaSourceRegistry.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaSourceRegistry.cpp; sourceTree = "<group>"; };
    12038                 B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaSourceRegistry.h; sourceTree = "<group>"; };
    1203912035                B1AD4E7113A12A4600846B27 /* TextTrackLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackLoader.cpp; sourceTree = "<group>"; };
    1204012036                B1AD4E7213A12A4600846B27 /* TextTrackLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextTrackLoader.h; sourceTree = "<group>"; };
     
    1567515671                                07221B4D17CEC32700848E51 /* MediaStream.h */,
    1567615672                                07221B4E17CEC32700848E51 /* MediaStream.idl */,
    15677                                 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */,
    15678                                 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */,
    1567915673                                07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */,
    1568015674                                07221B5517CEC32700848E51 /* MediaStreamTrack.h */,
     
    2378023774                                CD3A495617A9D01B00274E42 /* MediaSource.h */,
    2378123775                                CD3A495717A9D01B00274E42 /* MediaSource.idl */,
    23782                                 B1A942E115B5CE2200D525D1 /* MediaSourceRegistry.cpp */,
    23783                                 B1A942E215B5CE2200D525D1 /* MediaSourceRegistry.h */,
     23776                                4176900422FCD8F200B1576D /* MediaSourceRegistry.cpp */,
     23777                                4176900322FCD8F200B1576D /* MediaSourceRegistry.h */,
    2378423778                                CDD7089418359F6E002B3DC6 /* SampleMap.cpp */,
    2378523779                                CDD7089518359F6F002B3DC6 /* SampleMap.h */,
     
    3072530719                                CDC8B5A7180474F70016E685 /* MediaSourcePrivateAVFObjC.h in Headers */,
    3072630720                                CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */,
    30727                                 CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */,
    3072830721                                078E091517D14D1C00420AA1 /* MediaStream.h in Headers */,
    3072930722                                078E094C17D1709600420AA1 /* MediaStreamAudioDestinationNode.h in Headers */,
     
    3073230725                                070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */,
    3073330726                                078E093717D16B2C00420AA1 /* MediaStreamPrivate.h in Headers */,
    30734                                 078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */,
    3073530727                                078E3CC01FE1C73C00483C1D /* MediaStreamRequest.h in Headers */,
    3073630728                                078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */,
  • trunk/Source/WebCore/dom/Document.cpp

    r248288 r248467  
    125125#include "MediaQueryList.h"
    126126#include "MediaQueryMatcher.h"
     127#include "MediaStream.h"
    127128#include "MessageEvent.h"
    128129#include "Microtasks.h"
     
    307308#endif
    308309
    309 #if ENABLE(MEDIA_STREAM)
    310 #include "MediaStream.h"
    311 #include "MediaStreamRegistry.h"
    312 #endif
    313 
    314310#if ENABLE(WEBGL)
    315311#include "WebGLRenderingContext.h"
     
    76657661void Document::stopMediaCapture()
    76667662{
    7667     MediaStreamRegistry::shared().forEach([this](MediaStream& stream) {
    7668         if (stream.document() == this)
    7669             stream.endCaptureTracks();
    7670     });
     7663    MediaStreamTrack::endCapture(*this);
    76717664}
    76727665
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r248387 r248467  
    145145#include "DOMURL.h"
    146146#include "MediaStream.h"
    147 #include "MediaStreamRegistry.h"
    148147#endif
    149148
     
    15841583    if (m_mediaSource) {
    15851584        loadAttempted = true;
    1586        
     1585
    15871586        ALWAYS_LOG(LOGIDENTIFIER, "loading MSE blob");
    15881587        if (!m_mediaSource->attachToElement(*this) || !m_player->load(url, contentType, m_mediaSource.get())) {
     
    15941593    }
    15951594#endif
    1596 
    15971595#if ENABLE(MEDIA_STREAM)
    1598     if (!loadAttempted) {
    1599         if (!m_mediaStreamSrcObject && url.protocolIs(mediaStreamBlobProtocol))
    1600             m_mediaStreamSrcObject = MediaStreamRegistry::shared().lookUp(url);
    1601 
    1602         if (m_mediaStreamSrcObject) {
    1603             loadAttempted = true;
    1604             ALWAYS_LOG(LOGIDENTIFIER, "loading media stream blob");
    1605             if (!m_player->load(m_mediaStreamSrcObject->privateStream()))
    1606                 mediaLoadingFailed(MediaPlayer::FormatError);
    1607         }
     1596    if (!loadAttempted && m_mediaStreamSrcObject) {
     1597        loadAttempted = true;
     1598        ALWAYS_LOG(LOGIDENTIFIER, "loading media stream blob");
     1599        if (!m_player->load(m_mediaStreamSrcObject->privateStream()))
     1600            mediaLoadingFailed(MediaPlayer::FormatError);
    16081601    }
    16091602#endif
Note: See TracChangeset for help on using the changeset viewer.