diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc b/chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc index 250c7cb0490..11c6c25f223 100644 --- a/chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc +++ b/chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc @@ -38,19 +38,23 @@ namespace blink { RTCVoidRequestImpl* RTCVoidRequestImpl::Create( ExecutionContext* context, + base::Optional<RTCSetSessionDescriptionOperation> operation, RTCPeerConnection* requester, V8VoidFunction* success_callback, V8RTCPeerConnectionErrorCallback* error_callback) { - return new RTCVoidRequestImpl(context, requester, success_callback, - error_callback); + return MakeGarbageCollected<RTCVoidRequestImpl>(context, std::move(operation), + requester, success_callback, + error_callback); } RTCVoidRequestImpl::RTCVoidRequestImpl( ExecutionContext* context, + base::Optional<RTCSetSessionDescriptionOperation> operation, RTCPeerConnection* requester, V8VoidFunction* success_callback, V8RTCPeerConnectionErrorCallback* error_callback) : ContextLifecycleObserver(context), + operation_(std::move(operation)), success_callback_(ToV8PersistentCallbackFunction(success_callback)), error_callback_(ToV8PersistentCallbackFunction(error_callback)), requester_(requester) { @@ -62,8 +66,11 @@ RTCVoidRequestImpl::~RTCVoidRequestImpl() = default; void RTCVoidRequestImpl::RequestSucceeded() { bool should_fire_callback = requester_ && requester_->ShouldFireDefaultCallbacks(); - if (should_fire_callback && success_callback_) + if (should_fire_callback && success_callback_) { + if (operation_) + requester_->NoteVoidRequestCompleted(*operation_, true); success_callback_->InvokeAndReportException(nullptr); + } Clear(); } @@ -72,6 +79,8 @@ void RTCVoidRequestImpl::RequestFailed(const webrtc::RTCError& error) { bool should_fire_callback = requester_ && requester_->ShouldFireDefaultCallbacks(); if (should_fire_callback && error_callback_.Get()) { + if (operation_) + requester_->NoteVoidRequestCompleted(*operation_, false); error_callback_->InvokeAndReportException( nullptr, CreateDOMExceptionFromRTCError(error)); } |