Title: [248896] trunk/Source/WebCore
- Revision
- 248896
- Author
- you...@apple.com
- Date
- 2019-08-20 02:39:25 -0700 (Tue, 20 Aug 2019)
Log Message
PendingActivationMediaStream does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=200879
Reviewed by Alex Christensen.
No observable change of behavior.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::mediaStreamDidFail):
No need to asynchronously remove the observer since MediaStreamPrivate handles that properply now.
* Modules/mediastream/UserMediaRequest.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (248895 => 248896)
--- trunk/Source/WebCore/ChangeLog 2019-08-20 07:04:02 UTC (rev 248895)
+++ trunk/Source/WebCore/ChangeLog 2019-08-20 09:39:25 UTC (rev 248896)
@@ -1,3 +1,18 @@
+2019-08-20 Youenn Fablet <you...@apple.com>
+
+ PendingActivationMediaStream does not need to be refcounted
+ https://bugs.webkit.org/show_bug.cgi?id=200879
+
+ Reviewed by Alex Christensen.
+
+ No observable change of behavior.
+
+ * Modules/mediastream/UserMediaRequest.cpp:
+ (WebCore::UserMediaRequest::allow):
+ (WebCore::UserMediaRequest::mediaStreamDidFail):
+ No need to asynchronously remove the observer since MediaStreamPrivate handles that properply now.
+ * Modules/mediastream/UserMediaRequest.h:
+
2019-08-19 Devin Rousso <drou...@apple.com>
Web Inspector: Debugger: add a global breakpoint for pausing in the next microtask
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp (248895 => 248896)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2019-08-20 07:04:02 UTC (rev 248895)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.cpp 2019-08-20 09:39:25 UTC (rev 248896)
@@ -240,7 +240,7 @@
}
scopeExit.release();
- m_pendingActivationMediaStream = PendingActivationMediaStream::create(WTFMove(protector), *this, WTFMove(stream), WTFMove(completionHandler));
+ m_pendingActivationMediaStream = makeUnique<PendingActivationMediaStream>(WTFMove(protector), *this, WTFMove(stream), WTFMove(completionHandler));
};
auto& document = downcast<Document>(*scriptExecutionContext());
@@ -395,8 +395,7 @@
break;
}
m_promise.reject(NotReadableError, makeString("Failed starting capture of a "_s, typeDescription, " track"_s));
- // We are in an observer iterator loop, we do not want to change the observers within this loop.
- callOnMainThread([stream = WTFMove(m_pendingActivationMediaStream)] { });
+ m_pendingActivationMediaStream = nullptr;
}
} // namespace WebCore
Modified: trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h (248895 => 248896)
--- trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2019-08-20 07:04:02 UTC (rev 248895)
+++ trunk/Source/WebCore/Modules/mediastream/UserMediaRequest.h 2019-08-20 09:39:25 UTC (rev 248896)
@@ -82,17 +82,13 @@
void mediaStreamIsReady(Ref<MediaStream>&&);
void mediaStreamDidFail(RealtimeMediaSource::Type);
- class PendingActivationMediaStream : public RefCounted<PendingActivationMediaStream>, private MediaStreamPrivate::Observer {
+ class PendingActivationMediaStream : private MediaStreamPrivate::Observer {
+ WTF_MAKE_FAST_ALLOCATED;
public:
- static Ref<PendingActivationMediaStream> create(Ref<PendingActivity<UserMediaRequest>>&& protectingUserMediaRequest, UserMediaRequest& userMediaRequest, Ref<MediaStream>&& stream, CompletionHandler<void()>&& completionHandler)
- {
- return adoptRef(*new PendingActivationMediaStream { WTFMove(protectingUserMediaRequest), userMediaRequest, WTFMove(stream), WTFMove(completionHandler) });
- }
+ PendingActivationMediaStream(Ref<PendingActivity<UserMediaRequest>>&&, UserMediaRequest&, Ref<MediaStream>&&, CompletionHandler<void()>&&);
~PendingActivationMediaStream();
private:
- PendingActivationMediaStream(Ref<PendingActivity<UserMediaRequest>>&&, UserMediaRequest&, Ref<MediaStream>&&, CompletionHandler<void()>&&);
-
void characteristicsChanged() final;
Ref<PendingActivity<UserMediaRequest>> m_protectingUserMediaRequest;
@@ -105,7 +101,7 @@
Vector<String> m_audioDeviceUIDs;
DOMPromiseDeferred<IDLInterface<MediaStream>> m_promise;
- RefPtr<PendingActivationMediaStream> m_pendingActivationMediaStream;
+ std::unique_ptr<PendingActivationMediaStream> m_pendingActivationMediaStream;
MediaStreamRequest m_request;
};
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes