| 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 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 RTCPeerConnection::~RTCPeerConnection() | 209 RTCPeerConnection::~RTCPeerConnection() |
| 210 { | 210 { |
| 211 stop(); | 211 stop(); |
| 212 } | 212 } |
| 213 | 213 |
| 214 void RTCPeerConnection::createOffer(PassOwnPtr<RTCSessionDescriptionCallback> su
ccessCallback, PassOwnPtr<RTCErrorCallback> errorCallback, const Dictionary& med
iaConstraints, ExceptionState& exceptionState) | 214 void RTCPeerConnection::createOffer(PassOwnPtr<RTCSessionDescriptionCallback> su
ccessCallback, PassOwnPtr<RTCErrorCallback> errorCallback, const Dictionary& med
iaConstraints, ExceptionState& exceptionState) |
| 215 { | 215 { |
| 216 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) | 216 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) |
| 217 return; | 217 return; |
| 218 | 218 |
| 219 if (!successCallback) { | 219 ASSERT(successCallback); |
| 220 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(1, "RTCSessionDescriptionCallback")); | |
| 221 return; | |
| 222 } | |
| 223 | 220 |
| 224 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC
onstraints, exceptionState); | 221 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC
onstraints, exceptionState); |
| 225 if (exceptionState.hadException()) | 222 if (exceptionState.hadException()) |
| 226 return; | 223 return; |
| 227 | 224 |
| 228 RefPtr<RTCSessionDescriptionRequest> request = RTCSessionDescriptionRequestI
mpl::create(executionContext(), successCallback, errorCallback); | 225 RefPtr<RTCSessionDescriptionRequest> request = RTCSessionDescriptionRequestI
mpl::create(executionContext(), successCallback, errorCallback); |
| 229 m_peerHandler->createOffer(request.release(), constraints); | 226 m_peerHandler->createOffer(request.release(), constraints); |
| 230 } | 227 } |
| 231 | 228 |
| 232 void RTCPeerConnection::createAnswer(PassOwnPtr<RTCSessionDescriptionCallback> s
uccessCallback, PassOwnPtr<RTCErrorCallback> errorCallback, const Dictionary& me
diaConstraints, ExceptionState& exceptionState) | 229 void RTCPeerConnection::createAnswer(PassOwnPtr<RTCSessionDescriptionCallback> s
uccessCallback, PassOwnPtr<RTCErrorCallback> errorCallback, const Dictionary& me
diaConstraints, ExceptionState& exceptionState) |
| 233 { | 230 { |
| 234 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) | 231 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) |
| 235 return; | 232 return; |
| 236 | 233 |
| 237 if (!successCallback) { | 234 ASSERT(successCallback); |
| 238 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(1, "RTCSessionDescriptionCallback")); | |
| 239 return; | |
| 240 } | |
| 241 | 235 |
| 242 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC
onstraints, exceptionState); | 236 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC
onstraints, exceptionState); |
| 243 if (exceptionState.hadException()) | 237 if (exceptionState.hadException()) |
| 244 return; | 238 return; |
| 245 | 239 |
| 246 RefPtr<RTCSessionDescriptionRequest> request = RTCSessionDescriptionRequestI
mpl::create(executionContext(), successCallback, errorCallback); | 240 RefPtr<RTCSessionDescriptionRequest> request = RTCSessionDescriptionRequestI
mpl::create(executionContext(), successCallback, errorCallback); |
| 247 m_peerHandler->createAnswer(request.release(), constraints); | 241 m_peerHandler->createAnswer(request.release(), constraints); |
| 248 } | 242 } |
| 249 | 243 |
| 250 void RTCPeerConnection::setLocalDescription(PassRefPtr<RTCSessionDescription> pr
pSessionDescription, PassOwnPtr<VoidCallback> successCallback, PassOwnPtr<RTCErr
orCallback> errorCallback, ExceptionState& exceptionState) | 244 void RTCPeerConnection::setLocalDescription(PassRefPtr<RTCSessionDescription> pr
pSessionDescription, PassOwnPtr<VoidCallback> successCallback, PassOwnPtr<RTCErr
orCallback> errorCallback, ExceptionState& exceptionState) |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 | 326 |
| 333 void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, PassOwnPt
r<VoidCallback> successCallback, PassOwnPtr<RTCErrorCallback> errorCallback, Exc
eptionState& exceptionState) | 327 void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, PassOwnPt
r<VoidCallback> successCallback, PassOwnPtr<RTCErrorCallback> errorCallback, Exc
eptionState& exceptionState) |
| 334 { | 328 { |
| 335 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) | 329 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) |
| 336 return; | 330 return; |
| 337 | 331 |
| 338 if (!iceCandidate) { | 332 if (!iceCandidate) { |
| 339 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(1, "RTCIceCandidate")); | 333 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(1, "RTCIceCandidate")); |
| 340 return; | 334 return; |
| 341 } | 335 } |
| 342 if (!successCallback) { | 336 ASSERT(successCallback); |
| 343 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(2, "Function")); | 337 ASSERT(errorCallback); |
| 344 return; | |
| 345 } | |
| 346 if (!errorCallback) { | |
| 347 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a
rgumentNullOrIncorrectType(3, "RTCErrorCallback")); | |
| 348 return; | |
| 349 } | |
| 350 | 338 |
| 351 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext
(), successCallback, errorCallback); | 339 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext
(), successCallback, errorCallback); |
| 352 | 340 |
| 353 bool implemented = m_peerHandler->addICECandidate(request.release(), iceCand
idate->webCandidate()); | 341 bool implemented = m_peerHandler->addICECandidate(request.release(), iceCand
idate->webCandidate()); |
| 354 if (!implemented) | 342 if (!implemented) |
| 355 exceptionState.throwDOMException(NotSupportedError, "This method is not
yet implemented."); | 343 exceptionState.throwDOMException(NotSupportedError, "This method is not
yet implemented."); |
| 356 } | 344 } |
| 357 | 345 |
| 358 String RTCPeerConnection::signalingState() const | 346 String RTCPeerConnection::signalingState() const |
| 359 { | 347 { |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 events.swap(m_scheduledEvents); | 705 events.swap(m_scheduledEvents); |
| 718 | 706 |
| 719 Vector<RefPtr<Event> >::iterator it = events.begin(); | 707 Vector<RefPtr<Event> >::iterator it = events.begin(); |
| 720 for (; it != events.end(); ++it) | 708 for (; it != events.end(); ++it) |
| 721 dispatchEvent((*it).release()); | 709 dispatchEvent((*it).release()); |
| 722 | 710 |
| 723 events.clear(); | 711 events.clear(); |
| 724 } | 712 } |
| 725 | 713 |
| 726 } // namespace WebCore | 714 } // namespace WebCore |
| OLD | NEW |