OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 #include "public/platform/WebRTCDataChannelHandler.h" | 81 #include "public/platform/WebRTCDataChannelHandler.h" |
82 #include "public/platform/WebRTCDataChannelInit.h" | 82 #include "public/platform/WebRTCDataChannelInit.h" |
83 #include "public/platform/WebRTCICECandidate.h" | 83 #include "public/platform/WebRTCICECandidate.h" |
84 #include "public/platform/WebRTCKeyParams.h" | 84 #include "public/platform/WebRTCKeyParams.h" |
85 #include "public/platform/WebRTCOfferOptions.h" | 85 #include "public/platform/WebRTCOfferOptions.h" |
86 #include "public/platform/WebRTCSessionDescription.h" | 86 #include "public/platform/WebRTCSessionDescription.h" |
87 #include "public/platform/WebRTCSessionDescriptionRequest.h" | 87 #include "public/platform/WebRTCSessionDescriptionRequest.h" |
88 #include "public/platform/WebRTCStatsRequest.h" | 88 #include "public/platform/WebRTCStatsRequest.h" |
89 #include "public/platform/WebRTCVoidRequest.h" | 89 #include "public/platform/WebRTCVoidRequest.h" |
90 | 90 |
| 91 #include <memory> |
| 92 |
91 namespace blink { | 93 namespace blink { |
92 | 94 |
93 namespace { | 95 namespace { |
94 | 96 |
95 const char kSignalingStateClosedMessage[] = "The RTCPeerConnection's signalingSt
ate is 'closed'."; | 97 const char kSignalingStateClosedMessage[] = "The RTCPeerConnection's signalingSt
ate is 'closed'."; |
96 | 98 |
97 bool throwExceptionIfSignalingStateClosed(RTCPeerConnection::SignalingState stat
e, ExceptionState& exceptionState) | 99 bool throwExceptionIfSignalingStateClosed(RTCPeerConnection::SignalingState stat
e, ExceptionState& exceptionState) |
98 { | 100 { |
99 if (state == RTCPeerConnection::SignalingStateClosed) { | 101 if (state == RTCPeerConnection::SignalingStateClosed) { |
100 exceptionState.throwDOMException(InvalidStateError, kSignalingStateClose
dMessage); | 102 exceptionState.throwDOMException(InvalidStateError, kSignalingStateClose
dMessage); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 class WebRTCCertificateObserver : public WebRTCCertificateCallback { | 164 class WebRTCCertificateObserver : public WebRTCCertificateCallback { |
163 public: | 165 public: |
164 // Takes ownership of |resolver|. | 166 // Takes ownership of |resolver|. |
165 static WebRTCCertificateObserver* create(ScriptPromiseResolver* resolver) | 167 static WebRTCCertificateObserver* create(ScriptPromiseResolver* resolver) |
166 { | 168 { |
167 return new WebRTCCertificateObserver(resolver); | 169 return new WebRTCCertificateObserver(resolver); |
168 } | 170 } |
169 | 171 |
170 ~WebRTCCertificateObserver() override {} | 172 ~WebRTCCertificateObserver() override {} |
171 | 173 |
172 DEFINE_INLINE_TRACE() { visitor->trace(m_resolver); } | |
173 | |
174 private: | 174 private: |
175 WebRTCCertificateObserver(ScriptPromiseResolver* resolver) | 175 WebRTCCertificateObserver(ScriptPromiseResolver* resolver) |
176 : m_resolver(resolver) {} | 176 : m_resolver(resolver) {} |
177 | 177 |
178 void onSuccess(WebPassOwnPtr<WebRTCCertificate> certificate) override | 178 void onSuccess(std::unique_ptr<WebRTCCertificate> certificate) override |
179 { | 179 { |
180 m_resolver->resolve(new RTCCertificate(certificate)); | 180 m_resolver->resolve(new RTCCertificate(std::move(certificate))); |
181 } | 181 } |
182 | 182 |
183 void onError() override | 183 void onError() override |
184 { | 184 { |
185 m_resolver->reject(); | 185 m_resolver->reject(); |
186 } | 186 } |
187 | 187 |
188 Persistent<ScriptPromiseResolver> m_resolver; | 188 Persistent<ScriptPromiseResolver> m_resolver; |
189 }; | 189 }; |
190 | 190 |
(...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 Platform::current()->createRTCCertificateGenerator()); | 698 Platform::current()->createRTCCertificateGenerator()); |
699 | 699 |
700 // |keyParams| was successfully constructed, but does the certificate genera
tor support these parameters? | 700 // |keyParams| was successfully constructed, but does the certificate genera
tor support these parameters? |
701 if (!certificateGenerator->isSupportedKeyParams(keyParams.get())) { | 701 if (!certificateGenerator->isSupportedKeyParams(keyParams.get())) { |
702 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::
create(NotSupportedError, unsupportedParamsString)); | 702 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::
create(NotSupportedError, unsupportedParamsString)); |
703 } | 703 } |
704 | 704 |
705 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; | 705 ScriptPromiseResolver* resolver = ScriptPromiseResolver::create(scriptState)
; |
706 ScriptPromise promise = resolver->promise(); | 706 ScriptPromise promise = resolver->promise(); |
707 | 707 |
708 WebPassOwnPtr<WebRTCCertificateObserver> certificateObserver = adoptWebPtr(W
ebRTCCertificateObserver::create(resolver)); | 708 std::unique_ptr<WebRTCCertificateObserver> certificateObserver(WebRTCCertifi
cateObserver::create(resolver)); |
709 | 709 |
710 // Generate certificate. The |certificateObserver| will resolve the promise
asynchronously upon completion. | 710 // Generate certificate. The |certificateObserver| will resolve the promise
asynchronously upon completion. |
711 // The observer will manage its own destruction as well as the resolver's de
struction. | 711 // The observer will manage its own destruction as well as the resolver's de
struction. |
712 certificateGenerator->generateCertificate( | 712 certificateGenerator->generateCertificate( |
713 keyParams.get(), | 713 keyParams.get(), |
714 toDocument(scriptState->getExecutionContext())->url(), | 714 toDocument(scriptState->getExecutionContext())->url(), |
715 toDocument(scriptState->getExecutionContext())->firstPartyForCookies(), | 715 toDocument(scriptState->getExecutionContext())->firstPartyForCookies(), |
716 certificateObserver); | 716 std::move(certificateObserver)); |
717 | 717 |
718 return promise; | 718 return promise; |
719 } | 719 } |
720 | 720 |
721 ScriptPromise RTCPeerConnection::addIceCandidate(ScriptState* scriptState, const
RTCIceCandidateInitOrRTCIceCandidate& candidate) | 721 ScriptPromise RTCPeerConnection::addIceCandidate(ScriptState* scriptState, const
RTCIceCandidateInitOrRTCIceCandidate& candidate) |
722 { | 722 { |
723 if (m_signalingState == SignalingStateClosed) | 723 if (m_signalingState == SignalingStateClosed) |
724 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::
create(InvalidStateError, kSignalingStateClosedMessage)); | 724 return ScriptPromise::rejectWithDOMException(scriptState, DOMException::
create(InvalidStateError, kSignalingStateClosedMessage)); |
725 | 725 |
726 if (isIceCandidateMissingSdp(candidate)) | 726 if (isIceCandidateMissingSdp(candidate)) |
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1166 { | 1166 { |
1167 visitor->trace(m_localStreams); | 1167 visitor->trace(m_localStreams); |
1168 visitor->trace(m_remoteStreams); | 1168 visitor->trace(m_remoteStreams); |
1169 visitor->trace(m_dispatchScheduledEventRunner); | 1169 visitor->trace(m_dispatchScheduledEventRunner); |
1170 visitor->trace(m_scheduledEvents); | 1170 visitor->trace(m_scheduledEvents); |
1171 RefCountedGarbageCollectedEventTargetWithInlineData<RTCPeerConnection>::trac
e(visitor); | 1171 RefCountedGarbageCollectedEventTargetWithInlineData<RTCPeerConnection>::trac
e(visitor); |
1172 ActiveDOMObject::trace(visitor); | 1172 ActiveDOMObject::trace(visitor); |
1173 } | 1173 } |
1174 | 1174 |
1175 } // namespace blink | 1175 } // namespace blink |
OLD | NEW |