Index: content/browser/renderer_host/media/media_stream_manager.cc |
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc |
index b297e46bea4d21e4d92b7b6ef454e882480a3110..e07c2da6551ebf1d67358d01d8c906469a1916fb 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -88,7 +88,7 @@ void ParseStreamType(const StreamOptions& options, |
} |
} else { |
// This is normal audio device capture. |
- *audio_type = content::MEDIA_DEVICE_AUDIO_CAPTURE; |
+ *audio_type = MEDIA_DEVICE_AUDIO_CAPTURE; |
} |
} |
if (options.video_requested) { |
@@ -108,7 +108,7 @@ void ParseStreamType(const StreamOptions& options, |
} |
} else { |
// This is normal video device capture. |
- *video_type = content::MEDIA_DEVICE_VIDEO_CAPTURE; |
+ *video_type = MEDIA_DEVICE_VIDEO_CAPTURE; |
} |
} |
} |
@@ -1052,7 +1052,9 @@ void MediaStreamManager::SetupRequest(const std::string& label) { |
if (!request->security_origin.is_valid()) { |
LOG(ERROR) << "Invalid security origin. " |
<< request->security_origin; |
- FinalizeRequestFailed(label, request); |
+ FinalizeRequestFailed(label, |
+ request, |
+ MEDIA_DEVICE_INVALID_SECURITY_ORIGIN); |
return; |
} |
@@ -1066,14 +1068,18 @@ void MediaStreamManager::SetupRequest(const std::string& label) { |
audio_type == MEDIA_TAB_AUDIO_CAPTURE || |
video_type == MEDIA_TAB_VIDEO_CAPTURE; |
if (is_web_contents_capture && !SetupTabCaptureRequest(request)) { |
- FinalizeRequestFailed(label, request); |
+ FinalizeRequestFailed(label, |
+ request, |
+ MEDIA_DEVICE_TAB_CAPTURE_FAILURE); |
return; |
} |
bool is_screen_capture = |
video_type == MEDIA_DESKTOP_VIDEO_CAPTURE; |
if (is_screen_capture && !SetupScreenCaptureRequest(request)) { |
- FinalizeRequestFailed(label, request); |
+ FinalizeRequestFailed(label, |
+ request, |
+ MEDIA_DEVICE_SCREEN_CAPTURE_FAILURE); |
return; |
} |
@@ -1100,7 +1106,7 @@ void MediaStreamManager::SetupRequest(const std::string& label) { |
} |
if (!SetupDeviceCaptureRequest(request)) { |
- FinalizeRequestFailed(label, request); |
+ FinalizeRequestFailed(label, request, MEDIA_DEVICE_CAPTURE_FAILURE); |
return; |
} |
} |
@@ -1295,11 +1301,13 @@ void MediaStreamManager::FinalizeGenerateStream(const std::string& label, |
void MediaStreamManager::FinalizeRequestFailed( |
const std::string& label, |
- DeviceRequest* request) { |
+ DeviceRequest* request, |
+ content::MediaStreamRequestResult result) { |
if (request->requester) |
request->requester->StreamGenerationFailed( |
request->requesting_view_id, |
- request->page_request_id); |
+ request->page_request_id, |
+ result); |
if (request->request_type == MEDIA_DEVICE_ACCESS && |
!request->callback.is_null()) { |
@@ -1545,10 +1553,13 @@ void MediaStreamManager::DevicesEnumerated( |
// the device lists to handle the request. |
break; |
} |
- if (!SetupDeviceCaptureRequest(request)) |
- FinalizeRequestFailed(*it, request); |
- else |
+ if (!SetupDeviceCaptureRequest(request)) { |
+ FinalizeRequestFailed(*it, |
+ request, |
+ MEDIA_DEVICE_CAPTURE_FAILURE); |
+ } else { |
PostRequestToUI(*it, request); |
+ } |
break; |
} |
} |
@@ -1612,7 +1623,8 @@ void MediaStreamManager::AddLogMessageOnUIThread( |
void MediaStreamManager::HandleAccessRequestResponse( |
const std::string& label, |
- const MediaStreamDevices& devices) { |
+ const MediaStreamDevices& devices, |
+ content::MediaStreamRequestResult result) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
DVLOG(1) << "HandleAccessRequestResponse(" |
<< ", {label = " << label << "})"; |
@@ -1629,8 +1641,8 @@ void MediaStreamManager::HandleAccessRequestResponse( |
} |
// Handle the case when the request was denied. |
- if (devices.empty()) { |
- FinalizeRequestFailed(label, request); |
+ if (result != MEDIA_DEVICE_OK) { |
+ FinalizeRequestFailed(label, request, result); |
return; |
} |