OLD | NEW |
---|---|
(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, ExceptionCode exceptionCode) | |
14 { | |
15 RTCVoidRequestPromiseImpl* request = new RTCVoidRequestPromiseImpl(requester , resolver, exceptionCode); | |
16 return request; | |
17 } | |
18 | |
19 RTCVoidRequestPromiseImpl::RTCVoidRequestPromiseImpl(RTCPeerConnection* requeste r, ScriptPromiseResolver* resolver, ExceptionCode exceptionCode) | |
20 : m_requester(requester) | |
21 , m_resolver(resolver) | |
22 , m_exceptionCode(exceptionCode) | |
23 { | |
24 ASSERT(m_requester); | |
25 ASSERT(m_resolver); | |
26 m_resolver->keepAliveWhilePending(); | |
yhirano
2016/02/11 23:32:50
Sorry I didn't notice this before, but is this cal
Guido Urdaneta
2016/02/12 09:30:55
I wasn't completely sure it was needed. Removed no
| |
27 } | |
28 | |
29 RTCVoidRequestPromiseImpl::~RTCVoidRequestPromiseImpl() | |
30 { | |
31 } | |
32 | |
33 void RTCVoidRequestPromiseImpl::requestSucceeded() | |
34 { | |
35 if (m_requester && m_requester->shouldFireDefaultCallbacks()) { | |
36 m_resolver->resolve(); | |
37 } else { | |
38 // This is needed to have the resolver release its internal resources | |
39 // while leaving the associated promise pending as specified". | |
yhirano
2016/02/11 23:32:50
You don't need the last double quotation.
Guido Urdaneta
2016/02/12 09:30:55
Done.
| |
40 m_resolver->stop(); | |
41 } | |
42 | |
43 clear(); | |
44 } | |
45 | |
46 void RTCVoidRequestPromiseImpl::requestFailed(const String& error) | |
47 { | |
48 if (m_requester && m_requester->shouldFireDefaultCallbacks()) { | |
49 m_resolver->reject(DOMException::create(m_exceptionCode, error)); | |
50 } else { | |
51 // This is needed to have the resolver release its internal resources | |
52 // while leaving the associated promise pending as specified". | |
53 m_resolver->stop(); | |
54 } | |
55 | |
56 clear(); | |
57 } | |
58 | |
59 void RTCVoidRequestPromiseImpl::clear() | |
60 { | |
61 m_requester.clear(); | |
62 } | |
63 | |
64 DEFINE_TRACE(RTCVoidRequestPromiseImpl) | |
65 { | |
66 visitor->trace(m_resolver); | |
67 visitor->trace(m_requester); | |
68 RTCVoidRequest::trace(visitor); | |
69 } | |
70 | |
71 } // namespace blink | |
OLD | NEW |