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 8194fde724332595de1996e35f27e6c6f4aa7e41..605cc7a546fff01bd4137f87e04150e5cec8f39f 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -690,7 +690,14 @@ void MediaStreamManager::SettingsError(const std::string& label) { |
} |
void MediaStreamManager::UseFakeDevice() { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ if(!BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
+ BrowserThread::PostTask(BrowserThread::IO, |
+ FROM_HERE, |
+ base::Bind(&media_stream::MediaStreamManager::UseFakeDevice, |
+ base::Unretained(this))); |
+ return; |
+ } |
+ |
video_capture_manager()->UseFakeDevice(); |
device_settings_->UseFakeUI(); |
} |
@@ -715,6 +722,9 @@ void MediaStreamManager::WillDestroyCurrentMessageLoop() { |
void MediaStreamManager::NotifyObserverDevicesOpened(DeviceRequest* request) { |
content::MediaObserver* media_observer = |
content::GetContentClient()->browser()->GetMediaObserver(); |
+ // Check if the embedder isn't interested in the notification. |
jam
2012/09/04 15:18:14
nit: no need to comment this, per the style guide
phoglund_chromium
2012/09/05 11:43:54
Done.
|
+ if (media_observer == NULL) |
+ return; |
content::MediaStreamDevices opened_devices; |
DevicesFromRequest(request, &opened_devices); |
DCHECK(!opened_devices.empty()); |
@@ -726,6 +736,9 @@ void MediaStreamManager::NotifyObserverDevicesOpened(DeviceRequest* request) { |
void MediaStreamManager::NotifyObserverDevicesClosed(DeviceRequest* request) { |
content::MediaObserver* media_observer = |
content::GetContentClient()->browser()->GetMediaObserver(); |
+ // Check if the embedder isn't interested in the notification. |
+ if (media_observer == NULL) |
+ return; |
content::MediaStreamDevices closed_devices; |
DevicesFromRequest(request, &closed_devices); |
if (closed_devices.empty()) |