Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: third_party/WebKit/Source/modules/mediastream/RTCVoidRequestPromiseImpl.cpp

Issue 1661493002: Add promise-based addIceCandidate, setLocalDescription and setRemoteDescription to RTCPeerConnection (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: yhirano's comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "modules/mediastream/RTCVoidRequestPromiseImpl.h"
6
7 #include "bindings/core/v8/ScriptPromiseResolver.h"
8 #include "core/dom/DOMException.h"
9 #include "modules/mediastream/RTCPeerConnection.h"
10
11 namespace blink {
12
13 RTCVoidRequestPromiseImpl* RTCVoidRequestPromiseImpl::create(RTCPeerConnection* requester, ScriptPromiseResolver* resolver, const String& errorName)
14 {
15 RTCVoidRequestPromiseImpl* request = new RTCVoidRequestPromiseImpl(requester , resolver, errorName);
16 return request;
17 }
18
19 RTCVoidRequestPromiseImpl::RTCVoidRequestPromiseImpl(RTCPeerConnection* requeste r, ScriptPromiseResolver* resolver, const String& errorName)
20 : m_resolver(resolver)
21 , m_errorName(errorName)
22 , m_requester(requester)
23 {
24 ASSERT(m_resolver);
25 ASSERT(m_requester);
26 m_resolver->keepAliveWhilePending();
27 }
28
29 RTCVoidRequestPromiseImpl::~RTCVoidRequestPromiseImpl()
30 {
31 }
32
33 void RTCVoidRequestPromiseImpl::requestSucceeded()
34 {
35 bool shouldFireCallback = m_requester && m_requester->shouldFireDefaultCallb acks() && m_resolver->executionContext() && !m_resolver->executionContext()->act iveDOMObjectsAreStopped();
yhirano 2016/02/11 01:58:17 When keepAliveWhilePending is called, the resolver
Guido Urdaneta 2016/02/11 10:47:08 With regards to the ActiveDOMObjectsAreStopped() c
yhirano 2016/02/11 18:28:31 I'd recommend calling resolve or reject unconditio
Guido Urdaneta 2016/02/11 20:00:05 Removed the unnecessary activeDOMObjects check. Ho
yhirano 2016/02/11 21:56:30 It's problematic because the resolver continues to
Guido Urdaneta 2016/02/11 22:27:36 Done.
haraken 2016/02/15 01:31:31 It sounds weird that a promise is left without get
36 if (shouldFireCallback)
37 m_resolver->resolve();
38
39 clear();
40 }
41
42 void RTCVoidRequestPromiseImpl::requestFailed(const String& error)
43 {
44 bool shouldFireCallback = m_requester && m_requester->shouldFireDefaultCallb acks() && m_resolver->executionContext() && !m_resolver->executionContext()->act iveDOMObjectsAreStopped();
45 if (shouldFireCallback)
46 m_resolver->reject(DOMException::create(error, m_errorName));
47
48 clear();
49 }
50
51 void RTCVoidRequestPromiseImpl::clear()
52 {
53 m_resolver.clear();
54 m_requester.clear();
55 }
56
57 DEFINE_TRACE(RTCVoidRequestPromiseImpl)
58 {
59 visitor->trace(m_resolver);
60 visitor->trace(m_requester);
61 RTCVoidRequest::trace(visitor);
62 }
63
64 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698