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

Side by Side Diff: Source/modules/mediastream/RTCPeerConnection.cpp

Issue 235123002: Should throw TypeError instead of TypeMismatchError (modules) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 8 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
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 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 m_peerHandler->createAnswer(request.release(), constraints); 241 m_peerHandler->createAnswer(request.release(), constraints);
242 } 242 }
243 243
244 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)
245 { 245 {
246 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 246 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
247 return; 247 return;
248 248
249 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription; 249 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription;
250 if (!sessionDescription) { 250 if (!sessionDescription) {
251 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "RTCSessionDescription")); 251 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "RTCSessionDescription"));
252 return; 252 return;
253 } 253 }
254 254
255 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback); 255 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback);
256 m_peerHandler->setLocalDescription(request.release(), sessionDescription->we bSessionDescription()); 256 m_peerHandler->setLocalDescription(request.release(), sessionDescription->we bSessionDescription());
257 } 257 }
258 258
259 PassRefPtr<RTCSessionDescription> RTCPeerConnection::localDescription(ExceptionS tate& exceptionState) 259 PassRefPtr<RTCSessionDescription> RTCPeerConnection::localDescription(ExceptionS tate& exceptionState)
260 { 260 {
261 blink::WebRTCSessionDescription webSessionDescription = m_peerHandler->local Description(); 261 blink::WebRTCSessionDescription webSessionDescription = m_peerHandler->local Description();
262 if (webSessionDescription.isNull()) 262 if (webSessionDescription.isNull())
263 return nullptr; 263 return nullptr;
264 264
265 RefPtr<RTCSessionDescription> sessionDescription = RTCSessionDescription::cr eate(webSessionDescription); 265 RefPtr<RTCSessionDescription> sessionDescription = RTCSessionDescription::cr eate(webSessionDescription);
266 return sessionDescription.release(); 266 return sessionDescription.release();
267 } 267 }
268 268
269 void RTCPeerConnection::setRemoteDescription(PassRefPtr<RTCSessionDescription> p rpSessionDescription, PassOwnPtr<VoidCallback> successCallback, PassOwnPtr<RTCEr rorCallback> errorCallback, ExceptionState& exceptionState) 269 void RTCPeerConnection::setRemoteDescription(PassRefPtr<RTCSessionDescription> p rpSessionDescription, PassOwnPtr<VoidCallback> successCallback, PassOwnPtr<RTCEr rorCallback> errorCallback, ExceptionState& exceptionState)
270 { 270 {
271 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 271 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
272 return; 272 return;
273 273
274 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription; 274 RefPtr<RTCSessionDescription> sessionDescription = prpSessionDescription;
275 if (!sessionDescription) { 275 if (!sessionDescription) {
276 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "RTCSessionDescription")); 276 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "RTCSessionDescription"));
277 return; 277 return;
278 } 278 }
279 279
280 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback); 280 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback);
281 m_peerHandler->setRemoteDescription(request.release(), sessionDescription->w ebSessionDescription()); 281 m_peerHandler->setRemoteDescription(request.release(), sessionDescription->w ebSessionDescription());
282 } 282 }
283 283
284 PassRefPtr<RTCSessionDescription> RTCPeerConnection::remoteDescription(Exception State& exceptionState) 284 PassRefPtr<RTCSessionDescription> RTCPeerConnection::remoteDescription(Exception State& exceptionState)
285 { 285 {
286 blink::WebRTCSessionDescription webSessionDescription = m_peerHandler->remot eDescription(); 286 blink::WebRTCSessionDescription webSessionDescription = m_peerHandler->remot eDescription();
(...skipping 21 matching lines...) Expand all
308 if (!valid) 308 if (!valid)
309 exceptionState.throwDOMException(SyntaxError, "Could not update the ICE Agent with the given configuration."); 309 exceptionState.throwDOMException(SyntaxError, "Could not update the ICE Agent with the given configuration.");
310 } 310 }
311 311
312 void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, Exception State& exceptionState) 312 void RTCPeerConnection::addIceCandidate(RTCIceCandidate* iceCandidate, Exception State& exceptionState)
313 { 313 {
314 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 314 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
315 return; 315 return;
316 316
317 if (!iceCandidate) { 317 if (!iceCandidate) {
318 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "RTCIceCandidate")); 318 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "RTCIceCandidate"));
319 return; 319 return;
320 } 320 }
321 321
322 bool valid = m_peerHandler->addICECandidate(iceCandidate->webCandidate()); 322 bool valid = m_peerHandler->addICECandidate(iceCandidate->webCandidate());
323 if (!valid) 323 if (!valid)
324 exceptionState.throwDOMException(SyntaxError, "The ICE candidate could n ot be added."); 324 exceptionState.throwDOMException(SyntaxError, "The ICE candidate could n ot be added.");
325 } 325 }
326 326
327 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)
328 { 328 {
329 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 329 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
330 return; 330 return;
331 331
332 if (!iceCandidate) { 332 if (!iceCandidate) {
333 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "RTCIceCandidate")); 333 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "RTCIceCandidate"));
334 return; 334 return;
335 } 335 }
336 ASSERT(successCallback); 336 ASSERT(successCallback);
337 ASSERT(errorCallback); 337 ASSERT(errorCallback);
338 338
339 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback); 339 RefPtr<RTCVoidRequest> request = RTCVoidRequestImpl::create(executionContext (), successCallback, errorCallback);
340 340
341 bool implemented = m_peerHandler->addICECandidate(request.release(), iceCand idate->webCandidate()); 341 bool implemented = m_peerHandler->addICECandidate(request.release(), iceCand idate->webCandidate());
342 if (!implemented) 342 if (!implemented)
343 exceptionState.throwDOMException(NotSupportedError, "This method is not yet implemented."); 343 exceptionState.throwDOMException(NotSupportedError, "This method is not yet implemented.");
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 return String(); 402 return String();
403 } 403 }
404 404
405 void RTCPeerConnection::addStream(PassRefPtr<MediaStream> prpStream, const Dicti onary& mediaConstraints, ExceptionState& exceptionState) 405 void RTCPeerConnection::addStream(PassRefPtr<MediaStream> prpStream, const Dicti onary& mediaConstraints, ExceptionState& exceptionState)
406 { 406 {
407 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 407 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
408 return; 408 return;
409 409
410 RefPtr<MediaStream> stream = prpStream; 410 RefPtr<MediaStream> stream = prpStream;
411 if (!stream) { 411 if (!stream) {
412 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "MediaStream")); 412 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "MediaStream"));
413 return; 413 return;
414 } 414 }
415 415
416 if (m_localStreams.contains(stream)) 416 if (m_localStreams.contains(stream))
417 return; 417 return;
418 418
419 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC onstraints, exceptionState); 419 blink::WebMediaConstraints constraints = MediaConstraintsImpl::create(mediaC onstraints, exceptionState);
420 if (exceptionState.hadException()) 420 if (exceptionState.hadException())
421 return; 421 return;
422 422
423 m_localStreams.append(stream); 423 m_localStreams.append(stream);
424 424
425 bool valid = m_peerHandler->addStream(stream->descriptor(), constraints); 425 bool valid = m_peerHandler->addStream(stream->descriptor(), constraints);
426 if (!valid) 426 if (!valid)
427 exceptionState.throwDOMException(SyntaxError, "Unable to add the provide d stream."); 427 exceptionState.throwDOMException(SyntaxError, "Unable to add the provide d stream.");
428 } 428 }
429 429
430 void RTCPeerConnection::removeStream(PassRefPtr<MediaStream> prpStream, Exceptio nState& exceptionState) 430 void RTCPeerConnection::removeStream(PassRefPtr<MediaStream> prpStream, Exceptio nState& exceptionState)
431 { 431 {
432 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState)) 432 if (throwExceptionIfSignalingStateClosed(m_signalingState, exceptionState))
433 return; 433 return;
434 434
435 if (!prpStream) { 435 if (!prpStream) {
436 exceptionState.throwDOMException(TypeMismatchError, ExceptionMessages::a rgumentNullOrIncorrectType(1, "MediaStream")); 436 exceptionState.throwDOMException(TypeError, ExceptionMessages::argumentN ullOrIncorrectType(1, "MediaStream"));
437 return; 437 return;
438 } 438 }
439 439
440 RefPtr<MediaStream> stream = prpStream; 440 RefPtr<MediaStream> stream = prpStream;
441 441
442 size_t pos = m_localStreams.find(stream); 442 size_t pos = m_localStreams.find(stream);
443 if (pos == kNotFound) 443 if (pos == kNotFound)
444 return; 444 return;
445 445
446 m_localStreams.remove(pos); 446 m_localStreams.remove(pos);
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
705 events.swap(m_scheduledEvents); 705 events.swap(m_scheduledEvents);
706 706
707 WillBeHeapVector<RefPtrWillBeMember<Event> >::iterator it = events.begin(); 707 WillBeHeapVector<RefPtrWillBeMember<Event> >::iterator it = events.begin();
708 for (; it != events.end(); ++it) 708 for (; it != events.end(); ++it)
709 dispatchEvent((*it).release()); 709 dispatchEvent((*it).release());
710 710
711 events.clear(); 711 events.clear();
712 } 712 }
713 713
714 } // namespace WebCore 714 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/modules/mediastream/RTCIceCandidate.cpp ('k') | Source/modules/mediastream/RTCSessionDescription.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698