| 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 14c0d4dc4675bb96ae83d0b79c0eb23a82f6ca30..709ff9059b8482365d8330b38a628cebce475a3e 100644
|
| --- a/content/browser/renderer_host/media/media_stream_manager.cc
|
| +++ b/content/browser/renderer_host/media/media_stream_manager.cc
|
| @@ -82,7 +82,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) {
|
| @@ -102,7 +102,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;
|
| }
|
| }
|
| }
|
| @@ -1030,7 +1030,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;
|
| }
|
|
|
| @@ -1044,14 +1046,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;
|
| }
|
|
|
| @@ -1078,7 +1084,7 @@ void MediaStreamManager::SetupRequest(const std::string& label) {
|
| }
|
|
|
| if (!SetupDeviceCaptureRequest(request)) {
|
| - FinalizeRequestFailed(label, request);
|
| + FinalizeRequestFailed(label, request, MEDIA_DEVICE_CAPTURE_FAILURE);
|
| return;
|
| }
|
| }
|
| @@ -1273,11 +1279,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()) {
|
| @@ -1524,7 +1532,9 @@ void MediaStreamManager::DevicesEnumerated(
|
| break;
|
| }
|
| if (!SetupDeviceCaptureRequest(request))
|
| - FinalizeRequestFailed(*it, request);
|
| + FinalizeRequestFailed(*it,
|
| + request,
|
| + MEDIA_DEVICE_CAPTURE_FAILURE);
|
| else
|
| PostRequestToUI(*it, request);
|
| break;
|
| @@ -1590,7 +1600,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 << "})";
|
| @@ -1607,8 +1618,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;
|
| }
|
|
|
|
|