summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/modules/peerconnection/rtc_void_request_impl.cc
diff options
context:
space:
mode:
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.cc15
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));
}