summaryrefslogtreecommitdiffstats
path: root/content/browser/renderer_host
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-23 08:05:30 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-23 08:05:30 +0000
commit6a0da012555eafd1a049d75c1c83b5c2c6387c31 (patch)
tree93007e82dca587cff2061b09ae64b7a29e481ee3 /content/browser/renderer_host
parentbb4e4f25dfe061cb83b899ba3e727416b9089ee2 (diff)
downloadchromium_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.cc17
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(