| Index: chrome/browser/media/media_capture_devices_dispatcher.cc
|
| diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| index 40a439bef6d95950a002cb4bae5600f2bda902bb..6030ab229bfbd10737d402234d653341d77831f2 100644
|
| --- a/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| +++ b/chrome/browser/media/media_capture_devices_dispatcher.cc
|
| @@ -351,7 +351,7 @@ void MediaCaptureDevicesDispatcher::ProcessDesktopCaptureAccessRequest(
|
| scoped_ptr<content::MediaStreamUI> ui;
|
|
|
| if (request.video_type != content::MEDIA_DESKTOP_VIDEO_CAPTURE) {
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, content::MEDIA_DEVICE_INVALID_STATE, ui.Pass());
|
| return;
|
| }
|
|
|
| @@ -374,7 +374,7 @@ void MediaCaptureDevicesDispatcher::ProcessDesktopCaptureAccessRequest(
|
|
|
| // Received invalid device id.
|
| if (media_id.type == content::DesktopMediaID::TYPE_NONE) {
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, content::MEDIA_DEVICE_INVALID_STATE, ui.Pass());
|
| return;
|
| }
|
|
|
| @@ -395,7 +395,7 @@ void MediaCaptureDevicesDispatcher::ProcessDesktopCaptureAccessRequest(
|
| GetApplicationTitle(web_contents, extension),
|
| base::UTF8ToUTF16(original_extension_name));
|
|
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, content::MEDIA_DEVICE_OK, ui.Pass());
|
| }
|
|
|
| void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest(
|
| @@ -485,7 +485,11 @@ void MediaCaptureDevicesDispatcher::ProcessScreenCaptureAccessRequest(
|
| }
|
| }
|
|
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(
|
| + devices,
|
| + devices.empty() ? content::MEDIA_DEVICE_INVALID_STATE :
|
| + content::MEDIA_DEVICE_OK,
|
| + ui.Pass());
|
| }
|
|
|
| void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
|
| @@ -498,7 +502,7 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
|
|
|
| #if defined(OS_ANDROID)
|
| // Tab capture is not supported on Android.
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, content::MEDIA_DEVICE_TAB_CAPTURE_FAILURE, ui.Pass());
|
| #else // defined(OS_ANDROID)
|
| Profile* profile =
|
| Profile::FromBrowserContext(web_contents->GetBrowserContext());
|
| @@ -506,7 +510,7 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
|
| extensions::TabCaptureRegistry::Get(profile);
|
| if (!tab_capture_registry) {
|
| NOTREACHED();
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, content::MEDIA_DEVICE_INVALID_STATE, ui.Pass());
|
| return;
|
| }
|
| bool tab_capture_allowed =
|
| @@ -531,7 +535,11 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest(
|
| ui = media_stream_capture_indicator_->RegisterMediaStream(
|
| web_contents, devices);
|
| }
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(
|
| + devices,
|
| + devices.empty() ? content::MEDIA_DEVICE_INVALID_STATE :
|
| + content::MEDIA_DEVICE_OK,
|
| + ui.Pass());
|
| #endif // !defined(OS_ANDROID)
|
| }
|
|
|
| @@ -560,7 +568,11 @@ void MediaCaptureDevicesDispatcher::
|
| ui = media_stream_capture_indicator_->RegisterMediaStream(
|
| web_contents, devices);
|
| }
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(
|
| + devices,
|
| + devices.empty() ? content::MEDIA_DEVICE_INVALID_STATE :
|
| + content::MEDIA_DEVICE_OK,
|
| + ui.Pass());
|
| }
|
|
|
| void MediaCaptureDevicesDispatcher::ProcessRegularMediaAccessRequest(
|
| @@ -615,6 +627,7 @@ void MediaCaptureDevicesDispatcher::ProcessQueuedAccessRequest(
|
| void MediaCaptureDevicesDispatcher::OnAccessRequestResponse(
|
| content::WebContents* web_contents,
|
| const content::MediaStreamDevices& devices,
|
| + content::MediaStreamRequestResult result,
|
| scoped_ptr<content::MediaStreamUI> ui) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| @@ -642,7 +655,7 @@ void MediaCaptureDevicesDispatcher::OnAccessRequestResponse(
|
| base::Unretained(this), web_contents));
|
| }
|
|
|
| - callback.Run(devices, ui.Pass());
|
| + callback.Run(devices, result, ui.Pass());
|
| }
|
|
|
| void MediaCaptureDevicesDispatcher::GetDefaultDevicesForProfile(
|
|
|