Changeset 248467 in webkit
- Timestamp:
- Aug 9, 2019, 9:58:47 AM (7 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 deleted
- 9 edited
-
ChangeLog (modified) (1 diff)
-
Modules/mediastream/MediaStream.cpp (modified) (7 diffs)
-
Modules/mediastream/MediaStream.h (modified) (3 diffs)
-
Modules/mediastream/MediaStreamRegistry.cpp (deleted)
-
Modules/mediastream/MediaStreamRegistry.h (deleted)
-
Modules/mediastream/MediaStreamTrack.cpp (modified) (4 diffs)
-
Modules/mediastream/MediaStreamTrack.h (modified) (1 diff)
-
Sources.txt (modified) (1 diff)
-
WebCore.xcodeproj/project.pbxproj (modified) (9 diffs)
-
dom/Document.cpp (modified) (3 diffs)
-
html/HTMLMediaElement.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r248464 r248467 1 2019-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 1 32 2019-08-09 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> 2 33 -
trunk/Source/WebCore/Modules/mediastream/MediaStream.cpp
r246470 r248467 37 37 #include "FrameLoader.h" 38 38 #include "Logging.h" 39 #include "MediaStreamRegistry.h"40 39 #include "MediaStreamTrackEvent.h" 41 40 #include "NetworkingContext.h" … … 93 92 setIsActive(m_private->active()); 94 93 m_private->addObserver(*this); 95 MediaStreamRegistry::shared().registerStream(*this);96 94 suspendIfNeeded(); 97 95 } … … 106 104 setIsActive(m_private->active()); 107 105 m_private->addObserver(*this); 108 MediaStreamRegistry::shared().registerStream(*this);109 106 110 107 for (auto& trackPrivate : m_private->tracks()) { … … 121 118 // mediaState(), are short circuited. 122 119 m_isActive = false; 123 MediaStreamRegistry::shared().unregisterStream(*this);124 120 m_private->removeObserver(*this); 125 121 for (auto& track : m_trackSet.values()) … … 326 322 } 327 323 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 338 324 MediaProducer::MediaStateFlags MediaStream::mediaState() const 339 325 { … … 385 371 } 386 372 387 URLRegistry& MediaStream::registry() const388 {389 return MediaStreamRegistry::shared();390 }391 392 373 MediaStreamTrackVector MediaStream::trackVectorForType(RealtimeMediaSource::Type filterType) const 393 374 { … … 484 465 { 485 466 m_isActive = false; 486 endCaptureTracks();487 467 } 488 468 -
trunk/Source/WebCore/Modules/mediastream/MediaStream.h
r246470 r248467 50 50 51 51 class MediaStream final 52 : public URLRegistrable 53 , public EventTargetWithInlineData 52 : public EventTargetWithInlineData 54 53 , public ActiveDOMObject 55 54 , public MediaStreamTrack::Observer … … 95 94 void stopProducingData(); 96 95 97 void endCaptureTracks();98 99 96 // EventTarget 100 97 EventTargetInterface eventTargetInterface() const final { return MediaStreamEventTargetInterfaceType; } … … 103 100 using RefCounted<MediaStream>::ref; 104 101 using RefCounted<MediaStream>::deref; 105 106 // URLRegistrable107 URLRegistry& registry() const override;108 102 109 103 void addObserver(Observer*); -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp
r248161 r248467 49 49 namespace WebCore { 50 50 51 static HashSet<MediaStreamTrack*>& allCaptureTracks() 52 { 53 static NeverDestroyed<HashSet<MediaStreamTrack*>> captureTracks; 54 return captureTracks; 55 } 56 51 57 static MediaProducer::MediaStateFlags sourceCaptureState(RealtimeMediaSource&); 52 58 … … 71 77 if (!isCaptureTrack()) 72 78 return; 79 80 allCaptureTracks().add(this); 73 81 74 82 if (auto document = this->document()) { … … 87 95 if (!isCaptureTrack()) 88 96 return; 97 98 allCaptureTracks().remove(this); 89 99 90 100 #if !PLATFORM(IOS_FAMILY) … … 474 484 #endif 475 485 486 void 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 476 495 void MediaStreamTrack::trackStarted(MediaStreamTrackPrivate&) 477 496 { -
trunk/Source/WebCore/Modules/mediastream/MediaStreamTrack.h
r248161 r248467 69 69 virtual ~MediaStreamTrack(); 70 70 71 static void endCapture(Document&); 72 71 73 #if PLATFORM(IOS_FAMILY) 72 74 static MediaProducer::MediaStateFlags captureState(); -
trunk/Source/WebCore/Sources.txt
r248403 r248467 163 163 Modules/mediastream/MediaDevicesRequest.cpp 164 164 Modules/mediastream/MediaStream.cpp 165 Modules/mediastream/MediaStreamRegistry.cpp166 165 Modules/mediastream/MediaStreamTrack.cpp 167 166 Modules/mediastream/MediaStreamTrackEvent.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r248403 r248467 148 148 0787C46A1BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 0787C4681BFBDF6F006DCD7F /* JSMediaTrackSupportedConstraints.h */; }; 149 149 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, ); }; };151 150 078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5517CEC32700848E51 /* MediaStreamTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; 152 151 078E091917D14D1C00420AA1 /* MediaStreamTrackEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 07221B5817CEC32700848E51 /* MediaStreamTrackEvent.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 4020 4019 CD5FF49D2162E4DB004BD86F /* ISOProtectionSchemeInfoBox.h in Headers */ = {isa = PBXBuildFile; fileRef = CD871C601FB52B6500F0B965 /* ISOProtectionSchemeInfoBox.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4021 4020 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 */; };4023 4021 CD62FB961AF018E70012ED7D /* GenericTaskQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CD62FB941AF018E70012ED7D /* GenericTaskQueue.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4024 4022 CD641EB31818F5ED00EE4C41 /* MediaSourcePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CD641EB11818F5ED00EE4C41 /* MediaSourcePrivate.h */; }; … … 5271 5269 07221B4D17CEC32700848E51 /* MediaStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStream.h; sourceTree = "<group>"; }; 5272 5270 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>"; };5275 5271 07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MediaStreamTrack.cpp; sourceTree = "<group>"; }; 5276 5272 07221B5517CEC32700848E51 /* MediaStreamTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamTrack.h; sourceTree = "<group>"; }; … … 7264 7260 417612AD1E3A993B00C3D81D /* LibWebRTCPeerConnectionBackend.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LibWebRTCPeerConnectionBackend.cpp; path = libwebrtc/LibWebRTCPeerConnectionBackend.cpp; sourceTree = "<group>"; }; 7265 7261 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>"; }; 7266 7264 417DA4CE13734326007C57FB /* Internals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Internals.h; sourceTree = "<group>"; }; 7267 7265 417DA4CF13734326007C57FB /* Internals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Internals.cpp; sourceTree = "<group>"; }; … … 12035 12033 B10B697E140C174000BC1C26 /* WebVTTTokenizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebVTTTokenizer.cpp; sourceTree = "<group>"; }; 12036 12034 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>"; };12039 12035 B1AD4E7113A12A4600846B27 /* TextTrackLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextTrackLoader.cpp; sourceTree = "<group>"; }; 12040 12036 B1AD4E7213A12A4600846B27 /* TextTrackLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextTrackLoader.h; sourceTree = "<group>"; }; … … 15675 15671 07221B4D17CEC32700848E51 /* MediaStream.h */, 15676 15672 07221B4E17CEC32700848E51 /* MediaStream.idl */, 15677 07221B5217CEC32700848E51 /* MediaStreamRegistry.cpp */,15678 07221B5317CEC32700848E51 /* MediaStreamRegistry.h */,15679 15673 07221B5417CEC32700848E51 /* MediaStreamTrack.cpp */, 15680 15674 07221B5517CEC32700848E51 /* MediaStreamTrack.h */, … … 23780 23774 CD3A495617A9D01B00274E42 /* MediaSource.h */, 23781 23775 CD3A495717A9D01B00274E42 /* MediaSource.idl */, 23782 B1A942E115B5CE2200D525D1/* MediaSourceRegistry.cpp */,23783 B1A942E215B5CE2200D525D1/* MediaSourceRegistry.h */,23776 4176900422FCD8F200B1576D /* MediaSourceRegistry.cpp */, 23777 4176900322FCD8F200B1576D /* MediaSourceRegistry.h */, 23784 23778 CDD7089418359F6E002B3DC6 /* SampleMap.cpp */, 23785 23779 CDD7089518359F6F002B3DC6 /* SampleMap.h */, … … 30725 30719 CDC8B5A7180474F70016E685 /* MediaSourcePrivateAVFObjC.h in Headers */, 30726 30720 CDDC1E7A18A952F30027A9D4 /* MediaSourcePrivateClient.h in Headers */, 30727 CD61FE681794AADB004101EB /* MediaSourceRegistry.h in Headers */,30728 30721 078E091517D14D1C00420AA1 /* MediaStream.h in Headers */, 30729 30722 078E094C17D1709600420AA1 /* MediaStreamAudioDestinationNode.h in Headers */, … … 30732 30725 070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */, 30733 30726 078E093717D16B2C00420AA1 /* MediaStreamPrivate.h in Headers */, 30734 078E091717D14D1C00420AA1 /* MediaStreamRegistry.h in Headers */,30735 30727 078E3CC01FE1C73C00483C1D /* MediaStreamRequest.h in Headers */, 30736 30728 078E091817D14D1C00420AA1 /* MediaStreamTrack.h in Headers */, -
trunk/Source/WebCore/dom/Document.cpp
r248288 r248467 125 125 #include "MediaQueryList.h" 126 126 #include "MediaQueryMatcher.h" 127 #include "MediaStream.h" 127 128 #include "MessageEvent.h" 128 129 #include "Microtasks.h" … … 307 308 #endif 308 309 309 #if ENABLE(MEDIA_STREAM)310 #include "MediaStream.h"311 #include "MediaStreamRegistry.h"312 #endif313 314 310 #if ENABLE(WEBGL) 315 311 #include "WebGLRenderingContext.h" … … 7665 7661 void Document::stopMediaCapture() 7666 7662 { 7667 MediaStreamRegistry::shared().forEach([this](MediaStream& stream) { 7668 if (stream.document() == this) 7669 stream.endCaptureTracks(); 7670 }); 7663 MediaStreamTrack::endCapture(*this); 7671 7664 } 7672 7665 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r248387 r248467 145 145 #include "DOMURL.h" 146 146 #include "MediaStream.h" 147 #include "MediaStreamRegistry.h"148 147 #endif 149 148 … … 1584 1583 if (m_mediaSource) { 1585 1584 loadAttempted = true; 1586 1585 1587 1586 ALWAYS_LOG(LOGIDENTIFIER, "loading MSE blob"); 1588 1587 if (!m_mediaSource->attachToElement(*this) || !m_player->load(url, contentType, m_mediaSource.get())) { … … 1594 1593 } 1595 1594 #endif 1596 1597 1595 #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); 1608 1601 } 1609 1602 #endif
Note:
See TracChangeset
for help on using the changeset viewer.