Changeset 248896 in webkit
- Timestamp:
- Aug 20, 2019 2:39:25 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r248894 r248896 1 2019-08-20 Youenn Fablet <youenn@apple.com> 2 3 PendingActivationMediaStream does not need to be refcounted 4 https://bugs.webkit.org/show_bug.cgi?id=200879 5 6 Reviewed by Alex Christensen. 7 8 No observable change of behavior. 9 10 * Modules/mediastream/UserMediaRequest.cpp: 11 (WebCore::UserMediaRequest::allow): 12 (WebCore::UserMediaRequest::mediaStreamDidFail): 13 No need to asynchronously remove the observer since MediaStreamPrivate handles that properply now. 14 * Modules/mediastream/UserMediaRequest.h: 15 1 16 2019-08-19 Devin Rousso <drousso@apple.com> 2 17 -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp
r246470 r248896 241 241 242 242 scopeExit.release(); 243 m_pendingActivationMediaStream = PendingActivationMediaStream::create(WTFMove(protector), *this, WTFMove(stream), WTFMove(completionHandler));243 m_pendingActivationMediaStream = makeUnique<PendingActivationMediaStream>(WTFMove(protector), *this, WTFMove(stream), WTFMove(completionHandler)); 244 244 }; 245 245 … … 396 396 } 397 397 m_promise.reject(NotReadableError, makeString("Failed starting capture of a "_s, typeDescription, " track"_s)); 398 // We are in an observer iterator loop, we do not want to change the observers within this loop. 399 callOnMainThread([stream = WTFMove(m_pendingActivationMediaStream)] { }); 398 m_pendingActivationMediaStream = nullptr; 400 399 } 401 400 -
trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h
r245335 r248896 83 83 void mediaStreamDidFail(RealtimeMediaSource::Type); 84 84 85 class PendingActivationMediaStream : public RefCounted<PendingActivationMediaStream>, private MediaStreamPrivate::Observer { 85 class PendingActivationMediaStream : private MediaStreamPrivate::Observer { 86 WTF_MAKE_FAST_ALLOCATED; 86 87 public: 87 static Ref<PendingActivationMediaStream> create(Ref<PendingActivity<UserMediaRequest>>&& protectingUserMediaRequest, UserMediaRequest& userMediaRequest, Ref<MediaStream>&& stream, CompletionHandler<void()>&& completionHandler) 88 { 89 return adoptRef(*new PendingActivationMediaStream { WTFMove(protectingUserMediaRequest), userMediaRequest, WTFMove(stream), WTFMove(completionHandler) }); 90 } 88 PendingActivationMediaStream(Ref<PendingActivity<UserMediaRequest>>&&, UserMediaRequest&, Ref<MediaStream>&&, CompletionHandler<void()>&&); 91 89 ~PendingActivationMediaStream(); 92 90 93 91 private: 94 PendingActivationMediaStream(Ref<PendingActivity<UserMediaRequest>>&&, UserMediaRequest&, Ref<MediaStream>&&, CompletionHandler<void()>&&);95 96 92 void characteristicsChanged() final; 97 93 … … 106 102 107 103 DOMPromiseDeferred<IDLInterface<MediaStream>> m_promise; 108 RefPtr<PendingActivationMediaStream> m_pendingActivationMediaStream;104 std::unique_ptr<PendingActivationMediaStream> m_pendingActivationMediaStream; 109 105 MediaStreamRequest m_request; 110 106 };
Note: See TracChangeset
for help on using the changeset viewer.