Chromium Code Reviews| Index: chrome/browser/media/media_stream_capture_indicator.cc |
| diff --git a/chrome/browser/media/media_stream_capture_indicator.cc b/chrome/browser/media/media_stream_capture_indicator.cc |
| index b5a7bac618ed929a1e23c390362cd6bcf70d1c83..5e0907e3cc761e21d5d3a6ab133a2dc7d14f80f9 100644 |
| --- a/chrome/browser/media/media_stream_capture_indicator.cc |
| +++ b/chrome/browser/media/media_stream_capture_indicator.cc |
| @@ -124,7 +124,8 @@ MediaStreamCaptureIndicator::MediaStreamCaptureIndicator() |
| mic_image_(NULL), |
| camera_image_(NULL), |
| balloon_image_(NULL), |
| - request_index_(0) { |
| + request_index_(0), |
| + weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
| } |
| MediaStreamCaptureIndicator::~MediaStreamCaptureIndicator() { |
| @@ -175,7 +176,8 @@ void MediaStreamCaptureIndicator::CaptureDevicesOpened( |
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| base::Bind(&MediaStreamCaptureIndicator::DoDevicesOpenedOnUIThread, |
| - this, render_process_id, render_view_id, devices)); |
| + weak_ptr_factory_.GetWeakPtr(), |
| + render_process_id, render_view_id, devices)); |
| } |
| void MediaStreamCaptureIndicator::CaptureDevicesClosed( |
| @@ -188,7 +190,8 @@ void MediaStreamCaptureIndicator::CaptureDevicesClosed( |
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| base::Bind(&MediaStreamCaptureIndicator::DoDevicesClosedOnUIThread, |
| - this, render_process_id, render_view_id, devices)); |
| + weak_ptr_factory_.GetWeakPtr(), |
|
no longer working on chromium
2012/10/23 08:56:53
Do we know that if MediaInternals will always outl
stevenjb
2012/10/23 18:11:31
As a Singleton, yes, it will outlive the UI messag
|
| + render_process_id, render_view_id, devices)); |
| } |
| void MediaStreamCaptureIndicator::DoDevicesOpenedOnUIThread( |
| @@ -451,6 +454,16 @@ void MediaStreamCaptureIndicator::RemoveCaptureDeviceTab( |
| UpdateStatusTrayIconContextMenu(); |
| } |
| +bool MediaStreamCaptureIndicator::IsProcessCapturing(int render_process_id, |
| + int render_view_id) const { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + CaptureDeviceTabs::const_iterator iter = std::find_if( |
| + tabs_.begin(), tabs_.end(), TabEquals(render_process_id, render_view_id)); |
| + if (iter == tabs_.end()) |
| + return false; |
| + return (iter->audio_ref_count > 0 || iter->video_ref_count > 0); |
| +} |
| + |
| void MediaStreamCaptureIndicator::EnsureImageLoadingTracker() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| if (tracker_.get()) |