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

Side by Side Diff: content/renderer/media/user_media_client_impl.cc

Issue 937293002: Unify request failure handling in content::UserMediaClientImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed remaining breaks + updated unit test code Created 5 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
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media/user_media_client_impl.h" 5 #include "content/renderer/media/user_media_client_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/hash.h" 9 #include "base/hash.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 DVLOG(1) << "UserMediaClientImpl::OnStreamGenerationFailed(" 492 DVLOG(1) << "UserMediaClientImpl::OnStreamGenerationFailed("
493 << request_id << ")"; 493 << request_id << ")";
494 UserMediaRequestInfo* request_info = FindUserMediaRequestInfo(request_id); 494 UserMediaRequestInfo* request_info = FindUserMediaRequestInfo(request_id);
495 if (!request_info) { 495 if (!request_info) {
496 // This can happen if the request is canceled or the frame reloads while 496 // This can happen if the request is canceled or the frame reloads while
497 // MediaStreamDispatcher is processing the request. 497 // MediaStreamDispatcher is processing the request.
498 DVLOG(1) << "Request ID not found"; 498 DVLOG(1) << "Request ID not found";
499 return; 499 return;
500 } 500 }
501 501
502 GetUserMediaRequestFailed(&request_info->request, result); 502 GetUserMediaRequestFailed(&request_info->request, result, "");
503 DeleteUserMediaRequestInfo(request_info); 503 DeleteUserMediaRequestInfo(request_info);
504 } 504 }
505 505
506 // Callback from MediaStreamDispatcher. 506 // Callback from MediaStreamDispatcher.
507 // The browser process has stopped a device used by a MediaStream. 507 // The browser process has stopped a device used by a MediaStream.
508 void UserMediaClientImpl::OnDeviceStopped( 508 void UserMediaClientImpl::OnDeviceStopped(
509 const std::string& label, 509 const std::string& label,
510 const StreamDeviceInfo& device_info) { 510 const StreamDeviceInfo& device_info) {
511 DCHECK(CalledOnValidThread()); 511 DCHECK(CalledOnValidThread());
512 DVLOG(1) << "UserMediaClientImpl::OnDeviceStopped(" 512 DVLOG(1) << "UserMediaClientImpl::OnDeviceStopped("
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 void UserMediaClientImpl::OnCreateNativeTracksCompleted( 647 void UserMediaClientImpl::OnCreateNativeTracksCompleted(
648 UserMediaRequestInfo* request, 648 UserMediaRequestInfo* request,
649 MediaStreamRequestResult result, 649 MediaStreamRequestResult result,
650 const blink::WebString& result_name) { 650 const blink::WebString& result_name) {
651 DVLOG(1) << "UserMediaClientImpl::OnCreateNativeTracksComplete(" 651 DVLOG(1) << "UserMediaClientImpl::OnCreateNativeTracksComplete("
652 << "{request_id = " << request->request_id << "} " 652 << "{request_id = " << request->request_id << "} "
653 << "{result = " << result << "})"; 653 << "{result = " << result << "})";
654 if (result == content::MEDIA_DEVICE_OK) 654 if (result == content::MEDIA_DEVICE_OK)
655 GetUserMediaRequestSucceeded(request->web_stream, &request->request); 655 GetUserMediaRequestSucceeded(request->web_stream, &request->request);
656 else 656 else
657 GetUserMediaRequestTrackStartedFailed(&request->request, 657 GetUserMediaRequestFailed(&request->request, result, result_name);
658 result,
659 result_name);
660 658
661 DeleteUserMediaRequestInfo(request); 659 DeleteUserMediaRequestInfo(request);
662 } 660 }
663 661
664 void UserMediaClientImpl::OnDevicesEnumerated( 662 void UserMediaClientImpl::OnDevicesEnumerated(
665 int request_id, 663 int request_id,
666 const StreamDeviceInfoArray& device_array) { 664 const StreamDeviceInfoArray& device_array) {
667 DVLOG(1) << "UserMediaClientImpl::OnDevicesEnumerated(" << request_id << ")"; 665 DVLOG(1) << "UserMediaClientImpl::OnDevicesEnumerated(" << request_id << ")";
668 666
669 MediaDevicesRequestInfo* request = FindMediaDevicesRequestInfo(request_id); 667 MediaDevicesRequestInfo* request = FindMediaDevicesRequestInfo(request_id);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 void UserMediaClientImpl::GetUserMediaRequestSucceeded( 715 void UserMediaClientImpl::GetUserMediaRequestSucceeded(
718 const blink::WebMediaStream& stream, 716 const blink::WebMediaStream& stream,
719 blink::WebUserMediaRequest* request_info) { 717 blink::WebUserMediaRequest* request_info) {
720 DVLOG(1) << "UserMediaClientImpl::GetUserMediaRequestSucceeded"; 718 DVLOG(1) << "UserMediaClientImpl::GetUserMediaRequestSucceeded";
721 LogUserMediaRequestResult(MEDIA_DEVICE_OK); 719 LogUserMediaRequestResult(MEDIA_DEVICE_OK);
722 request_info->requestSucceeded(stream); 720 request_info->requestSucceeded(stream);
723 } 721 }
724 722
725 void UserMediaClientImpl::GetUserMediaRequestFailed( 723 void UserMediaClientImpl::GetUserMediaRequestFailed(
726 blink::WebUserMediaRequest* request_info, 724 blink::WebUserMediaRequest* request_info,
727 MediaStreamRequestResult result) { 725 MediaStreamRequestResult result,
726 const blink::WebString& result_name) {
728 LogUserMediaRequestResult(result); 727 LogUserMediaRequestResult(result);
729 switch (result) { 728 switch (result) {
730 case MEDIA_DEVICE_OK: 729 case MEDIA_DEVICE_OK:
730 case NUM_MEDIA_REQUEST_RESULTS:
731 NOTREACHED(); 731 NOTREACHED();
732 break; 732 return;
733 case MEDIA_DEVICE_PERMISSION_DENIED: 733 case MEDIA_DEVICE_PERMISSION_DENIED:
734 request_info->requestDenied(); 734 request_info->requestDenied();
735 break; 735 return;
736 case MEDIA_DEVICE_PERMISSION_DISMISSED: 736 case MEDIA_DEVICE_PERMISSION_DISMISSED:
737 request_info->requestFailedUASpecific("PermissionDismissedError"); 737 request_info->requestFailedUASpecific("PermissionDismissedError");
738 break; 738 return;
739 case MEDIA_DEVICE_INVALID_STATE: 739 case MEDIA_DEVICE_INVALID_STATE:
740 request_info->requestFailedUASpecific("InvalidStateError"); 740 request_info->requestFailedUASpecific("InvalidStateError");
741 break; 741 return;
742 case MEDIA_DEVICE_NO_HARDWARE: 742 case MEDIA_DEVICE_NO_HARDWARE:
743 request_info->requestFailedUASpecific("DevicesNotFoundError"); 743 request_info->requestFailedUASpecific("DevicesNotFoundError");
744 break; 744 return;
745 case MEDIA_DEVICE_INVALID_SECURITY_ORIGIN: 745 case MEDIA_DEVICE_INVALID_SECURITY_ORIGIN:
746 request_info->requestFailedUASpecific("InvalidSecurityOriginError"); 746 request_info->requestFailedUASpecific("InvalidSecurityOriginError");
747 break; 747 return;
748 case MEDIA_DEVICE_TAB_CAPTURE_FAILURE: 748 case MEDIA_DEVICE_TAB_CAPTURE_FAILURE:
749 request_info->requestFailedUASpecific("TabCaptureError"); 749 request_info->requestFailedUASpecific("TabCaptureError");
750 break; 750 return;
751 case MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE: 751 case MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE:
752 request_info->requestFailedUASpecific("ScreenCaptureError"); 752 request_info->requestFailedUASpecific("ScreenCaptureError");
753 break; 753 return;
754 case MEDIA_DEVICE_CAPTURE_FAILURE: 754 case MEDIA_DEVICE_CAPTURE_FAILURE:
755 request_info->requestFailedUASpecific("DeviceCaptureError"); 755 request_info->requestFailedUASpecific("DeviceCaptureError");
756 break; 756 return;
757 default:
758 NOTREACHED();
759 request_info->requestFailed();
760 break;
761 }
762 }
763
764 void UserMediaClientImpl::GetUserMediaRequestTrackStartedFailed(
765 blink::WebUserMediaRequest* request_info,
766 MediaStreamRequestResult result,
767 const blink::WebString& result_name) {
768 switch (result) {
769 case MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED: 757 case MEDIA_DEVICE_CONSTRAINT_NOT_SATISFIED:
770 request_info->requestFailedConstraint(result_name); 758 request_info->requestFailedConstraint(result_name);
771 break; 759 return;
772 case MEDIA_DEVICE_TRACK_START_FAILURE: 760 case MEDIA_DEVICE_TRACK_START_FAILURE:
773 request_info->requestFailedUASpecific("TrackStartError"); 761 request_info->requestFailedUASpecific("TrackStartError");
774 break; 762 return;
775 default: 763 case MEDIA_DEVICE_NOT_SUPPORTED:
776 NOTREACHED(); 764 request_info->requestFailedUASpecific("MediaDeviceNotSupported");
777 request_info->requestFailed(); 765 return;
778 break; 766 case MEDIA_DEVICE_FAILED_DUE_TO_SHUTDOWN:
767 request_info->requestFailedUASpecific("MediaDeviceFailedDueToShutdown");
768 return;
779 } 769 }
770 NOTREACHED();
771 request_info->requestFailed();
780 } 772 }
781 773
782 void UserMediaClientImpl::EnumerateDevicesSucceded( 774 void UserMediaClientImpl::EnumerateDevicesSucceded(
783 blink::WebMediaDevicesRequest* request, 775 blink::WebMediaDevicesRequest* request,
784 blink::WebVector<blink::WebMediaDeviceInfo>& devices) { 776 blink::WebVector<blink::WebMediaDeviceInfo>& devices) {
785 request->requestSucceeded(devices); 777 request->requestSucceeded(devices);
786 } 778 }
787 779
788 void UserMediaClientImpl::EnumerateSourcesSucceded( 780 void UserMediaClientImpl::EnumerateSourcesSucceded(
789 blink::WebMediaStreamTrackSourcesRequest* request, 781 blink::WebMediaStreamTrackSourcesRequest* request,
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 return; 1054 return;
1063 } 1055 }
1064 } 1056 }
1065 } 1057 }
1066 1058
1067 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const { 1059 bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const {
1068 return !sources_waiting_for_callback_.empty(); 1060 return !sources_waiting_for_callback_.empty();
1069 } 1061 }
1070 1062
1071 } // namespace content 1063 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/user_media_client_impl.h ('k') | content/renderer/media/user_media_client_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698