Bug 1918096 - Reject gUM/gDM request if video track ends before first frame. a=RyanVM

This case gets hit if the SCContentSharingPicker is cancelled by the user.

Original Revision: https://phabricator.services.mozilla.com/D221854

Differential Revision: https://phabricator.services.mozilla.com/D232474
This commit is contained in:
Andreas Pehrson 2025-01-15 13:37:10 +00:00
parent 5d960a5dff
commit a1ab9c47be
2 changed files with 11 additions and 1 deletions

View file

@ -1769,7 +1769,16 @@ void GetUserMediaStreamTask::PrepareDOMStream() {
return DeviceListener::DeviceListenerPromise::
CreateAndResolve(true, __func__);
},
[] {
[](nsresult aError) {
MOZ_ASSERT(NS_FAILED(aError));
if (aError == NS_ERROR_UNEXPECTED) {
return DeviceListener::DeviceListenerPromise::
CreateAndReject(
MakeRefPtr<MediaMgrError>(
MediaMgrError::Name::NotAllowedError),
__func__);
}
MOZ_ASSERT(aError == NS_ERROR_ABORT);
return DeviceListener::DeviceListenerPromise::
CreateAndReject(MakeRefPtr<MediaMgrError>(
MediaMgrError::Name::AbortError,

View file

@ -393,6 +393,7 @@ const TrackingId& MediaEngineRemoteVideoSource::GetTrackingId() const {
}
void MediaEngineRemoteVideoSource::OnCaptureEnded() {
mFirstFramePromiseHolder.RejectIfExists(NS_ERROR_UNEXPECTED, __func__);
mCaptureEndedEvent.Notify();
}