Chromium Code Reviews| Index: content/browser/renderer_host/media/video_capture_manager.cc | 
| diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc | 
| index be5738de38e27da91802d8e2a04467529ce4710b..088b699c5b9c0991c7120d472d30a70fa3f1b637 100644 | 
| --- a/content/browser/renderer_host/media/video_capture_manager.cc | 
| +++ b/content/browser/renderer_host/media/video_capture_manager.cc | 
| @@ -38,16 +38,15 @@ struct VideoCaptureManager::Controller { | 
| Handlers handlers; | 
| }; | 
| -VideoCaptureManager::VideoCaptureManager() | 
| - : vc_device_thread_("VideoCaptureManagerThread"), | 
| - listener_(NULL), | 
| - new_capture_session_id_(kFirstSessionId), | 
| - use_fake_device_(false) { | 
| - vc_device_thread_.Start(); | 
| +VideoCaptureManager::VideoCaptureManager( | 
| + scoped_refptr<base::MessageLoopProxy> message_loop) | 
| 
 
tommi (sloooow) - chröme
2012/07/02 13:36:36
no need for scoped_refptr<>
 
no longer working on chromium
2012/07/04 12:35:25
Done.
 
 | 
| + : message_loop_(message_loop), | 
| + listener_(NULL), | 
| + new_capture_session_id_(kFirstSessionId), | 
| + use_fake_device_(false) { | 
| } | 
| VideoCaptureManager::~VideoCaptureManager() { | 
| - vc_device_thread_.Stop(); | 
| DCHECK(devices_.empty()); | 
| DCHECK(controllers_.empty()); | 
| } | 
| @@ -68,7 +67,7 @@ void VideoCaptureManager::EnumerateDevices() { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| DCHECK(listener_); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnEnumerateDevices, this)); | 
| } | 
| @@ -80,7 +79,7 @@ int VideoCaptureManager::Open(const StreamDeviceInfo& device) { | 
| // Generate a new id for this device. | 
| int video_capture_session_id = new_capture_session_id_++; | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnOpen, this, video_capture_session_id, | 
| device)); | 
| @@ -92,7 +91,7 @@ void VideoCaptureManager::Close(int capture_session_id) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| DCHECK(listener_); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnClose, this, capture_session_id)); | 
| } | 
| @@ -102,7 +101,7 @@ void VideoCaptureManager::Start( | 
| media::VideoCaptureDevice::EventHandler* video_capture_receiver) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnStart, this, capture_params, | 
| video_capture_receiver)); | 
| @@ -113,7 +112,7 @@ void VideoCaptureManager::Stop( | 
| base::Closure stopped_cb) { | 
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnStop, this, capture_session_id, | 
| stopped_cb)); | 
| @@ -128,12 +127,8 @@ void VideoCaptureManager::UseFakeDevice() { | 
| use_fake_device_ = true; | 
| } | 
| -MessageLoop* VideoCaptureManager::GetMessageLoop() { | 
| - return vc_device_thread_.message_loop(); | 
| -} | 
| - | 
| void VideoCaptureManager::OnEnumerateDevices() { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| media::VideoCaptureDevice::Names device_names; | 
| GetAvailableDevices(&device_names); | 
| @@ -152,7 +147,7 @@ void VideoCaptureManager::OnEnumerateDevices() { | 
| void VideoCaptureManager::OnOpen(int capture_session_id, | 
| const StreamDeviceInfo& device) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| DCHECK(devices_.find(capture_session_id) == devices_.end()); | 
| DVLOG(1) << "VideoCaptureManager::OnOpen, id " << capture_session_id; | 
| @@ -186,7 +181,7 @@ void VideoCaptureManager::OnOpen(int capture_session_id, | 
| } | 
| void VideoCaptureManager::OnClose(int capture_session_id) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| DVLOG(1) << "VideoCaptureManager::OnClose, id " << capture_session_id; | 
| media::VideoCaptureDevice* video_capture_device = NULL; | 
| @@ -222,7 +217,7 @@ void VideoCaptureManager::OnClose(int capture_session_id) { | 
| void VideoCaptureManager::OnStart( | 
| const media::VideoCaptureParams capture_params, | 
| media::VideoCaptureDevice::EventHandler* video_capture_receiver) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| DCHECK(video_capture_receiver != NULL); | 
| DVLOG(1) << "VideoCaptureManager::OnStart, (" << capture_params.width | 
| << ", " << capture_params.height | 
| @@ -253,7 +248,7 @@ void VideoCaptureManager::OnStart( | 
| void VideoCaptureManager::OnStop( | 
| const media::VideoCaptureSessionId capture_session_id, | 
| base::Closure stopped_cb) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| DVLOG(1) << "VideoCaptureManager::OnStop, id " << capture_session_id; | 
| VideoCaptureDevices::iterator it = devices_.find(capture_session_id); | 
| @@ -325,7 +320,7 @@ void VideoCaptureManager::OnError(int capture_session_id, | 
| } | 
| void VideoCaptureManager::PostOnOpened(int capture_session_id) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| BrowserThread::PostTask(BrowserThread::IO, | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnOpened, this, | 
| @@ -333,7 +328,7 @@ void VideoCaptureManager::PostOnOpened(int capture_session_id) { | 
| } | 
| void VideoCaptureManager::PostOnClosed(int capture_session_id) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| BrowserThread::PostTask(BrowserThread::IO, | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnClosed, this, | 
| @@ -342,7 +337,7 @@ void VideoCaptureManager::PostOnClosed(int capture_session_id) { | 
| void VideoCaptureManager::PostOnDevicesEnumerated( | 
| const StreamDeviceInfoArray& devices) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| BrowserThread::PostTask(BrowserThread::IO, | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::OnDevicesEnumerated, | 
| @@ -359,13 +354,13 @@ void VideoCaptureManager::PostOnError(int capture_session_id, | 
| capture_session_id, error)); | 
| } | 
| -bool VideoCaptureManager::IsOnCaptureDeviceThread() const { | 
| - return MessageLoop::current() == vc_device_thread_.message_loop(); | 
| +bool VideoCaptureManager::IsOnDeviceThread() const { | 
| + return message_loop_->BelongsToCurrentThread(); | 
| } | 
| void VideoCaptureManager::GetAvailableDevices( | 
| media::VideoCaptureDevice::Names* device_names) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| if (!use_fake_device_) { | 
| media::VideoCaptureDevice::GetDeviceNames(device_names); | 
| @@ -376,7 +371,7 @@ void VideoCaptureManager::GetAvailableDevices( | 
| bool VideoCaptureManager::DeviceOpened( | 
| const media::VideoCaptureDevice::Name& device_name) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| for (VideoCaptureDevices::iterator it = devices_.begin(); | 
| it != devices_.end(); ++it) { | 
| @@ -390,7 +385,7 @@ bool VideoCaptureManager::DeviceOpened( | 
| media::VideoCaptureDevice* VideoCaptureManager::GetOpenedDevice( | 
| const StreamDeviceInfo& device_info) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| for (VideoCaptureDevices::iterator it = devices_.begin(); | 
| it != devices_.end(); it++) { | 
| @@ -403,7 +398,7 @@ media::VideoCaptureDevice* VideoCaptureManager::GetOpenedDevice( | 
| bool VideoCaptureManager::DeviceInUse( | 
| const media::VideoCaptureDevice* video_capture_device) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| for (VideoCaptureDevices::iterator it = devices_.begin(); | 
| it != devices_.end(); ++it) { | 
| @@ -420,7 +415,7 @@ void VideoCaptureManager::AddController( | 
| VideoCaptureControllerEventHandler* handler, | 
| base::Callback<void(VideoCaptureController*)> added_cb) { | 
| DCHECK(handler); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::DoAddControllerOnDeviceThread, | 
| this, capture_params, handler, added_cb)); | 
| @@ -430,7 +425,7 @@ void VideoCaptureManager::DoAddControllerOnDeviceThread( | 
| const media::VideoCaptureParams capture_params, | 
| VideoCaptureControllerEventHandler* handler, | 
| base::Callback<void(VideoCaptureController*)> added_cb) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| media::VideoCaptureDevice* video_capture_device = | 
| GetDeviceInternal(capture_params.session_id); | 
| @@ -452,7 +447,7 @@ void VideoCaptureManager::RemoveController( | 
| VideoCaptureController* controller, | 
| VideoCaptureControllerEventHandler* handler) { | 
| DCHECK(handler); | 
| - vc_device_thread_.message_loop()->PostTask( | 
| + message_loop_->PostTask( | 
| FROM_HERE, | 
| base::Bind(&VideoCaptureManager::DoRemoveControllerOnDeviceThread, this, | 
| make_scoped_refptr(controller), handler)); | 
| @@ -461,7 +456,7 @@ void VideoCaptureManager::RemoveController( | 
| void VideoCaptureManager::DoRemoveControllerOnDeviceThread( | 
| VideoCaptureController* controller, | 
| VideoCaptureControllerEventHandler* handler) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| for (Controllers::iterator cit = controllers_.begin(); | 
| cit != controllers_.end(); ++cit) { | 
| @@ -485,7 +480,7 @@ void VideoCaptureManager::DoRemoveControllerOnDeviceThread( | 
| media::VideoCaptureDevice* VideoCaptureManager::GetDeviceInternal( | 
| int capture_session_id) { | 
| - DCHECK(IsOnCaptureDeviceThread()); | 
| + DCHECK(IsOnDeviceThread()); | 
| VideoCaptureDevices::iterator dit = devices_.find(capture_session_id); | 
| if (dit != devices_.end()) { | 
| return dit->second; |