diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-23 08:05:30 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-23 08:05:30 +0000 |
commit | 6a0da012555eafd1a049d75c1c83b5c2c6387c31 (patch) | |
tree | 93007e82dca587cff2061b09ae64b7a29e481ee3 /content/browser/renderer_host | |
parent | bb4e4f25dfe061cb83b899ba3e727416b9089ee2 (diff) | |
download | chromium_src-6a0da012555eafd1a049d75c1c83b5c2c6387c31.zip chromium_src-6a0da012555eafd1a049d75c1c83b5c2c6387c31.tar.gz chromium_src-6a0da012555eafd1a049d75c1c83b5c2c6387c31.tar.bz2 |
Revert 242361 "Add AshDesktopMediaList and enable Desktop Captur..."
new tests leak: http://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20OS%20%28valgrind%29%284%29/builds/23948
> Add AshDesktopMediaList and enable Desktop Capture API on Chrome OS.
>
> The new AshDesktopMediaList gets list of windows/screens for the window
> picker dialog which allows to enable Desktop Capture API on Chrome OS.
>
> BUG=295102
> R=ben@chromium.org, hshi@chromium.org
>
> Review URL: https://codereview.chromium.org/100833002
TBR=sergeyu@chromium.org
Review URL: https://codereview.chromium.org/104583004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@242366 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/renderer_host')
-rw-r--r-- | content/browser/renderer_host/media/desktop_capture_device_aura.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/content/browser/renderer_host/media/desktop_capture_device_aura.cc b/content/browser/renderer_host/media/desktop_capture_device_aura.cc index 15e86f0..a36d26b 100644 --- a/content/browser/renderer_host/media/desktop_capture_device_aura.cc +++ b/content/browser/renderer_host/media/desktop_capture_device_aura.cc @@ -217,17 +217,14 @@ void DesktopVideoCaptureMachine::Stop() { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); // Stop observing window events. - if (desktop_window_) { + if (desktop_window_) desktop_window_->RemoveObserver(this); - desktop_window_ = NULL; - } // Stop observing compositor updates. if (desktop_layer_) { ui::Compositor* compositor = desktop_layer_->GetCompositor(); if (compositor) compositor->RemoveObserver(this); - desktop_layer_ = NULL; } // Stop timer. @@ -293,7 +290,7 @@ void DesktopVideoCaptureMachine::DidCopyOutput( base::Time start_time, const ThreadSafeCaptureOracle::CaptureFrameCallback& capture_frame_cb, scoped_ptr<cc::CopyOutputResult> result) { - if (result->IsEmpty() || result->size().IsEmpty() || !desktop_layer_) + if (result->IsEmpty() || result->size().IsEmpty()) return; // Compute the dest size we want after the letterboxing resize. Make the @@ -399,11 +396,13 @@ void DesktopVideoCaptureMachine::OnWindowBoundsChanged( } void DesktopVideoCaptureMachine::OnWindowDestroyed(aura::Window* window) { - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - - Stop(); + DCHECK(desktop_window_ && window == desktop_window_); + desktop_window_ = NULL; + desktop_layer_ = NULL; - oracle_proxy_->ReportError(); + // Post task to stop capture on UI thread. + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, base::Bind( + &DesktopVideoCaptureMachine::Stop, AsWeakPtr())); } void DesktopVideoCaptureMachine::OnCompositingEnded( |