| Index: content/browser/renderer_host/media/desktop_capture_device_aura.cc
|
| 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 a36d26b8b5f8955646ba33964c72a9e55a133769..0899ad7fc0774092ead2e227530f3e402eadddd3 100644
|
| --- a/content/browser/renderer_host/media/desktop_capture_device_aura.cc
|
| +++ b/content/browser/renderer_host/media/desktop_capture_device_aura.cc
|
| @@ -217,14 +217,17 @@ 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.
|
| @@ -396,13 +399,11 @@ void DesktopVideoCaptureMachine::OnWindowBoundsChanged(
|
| }
|
|
|
| void DesktopVideoCaptureMachine::OnWindowDestroyed(aura::Window* window) {
|
| - DCHECK(desktop_window_ && window == desktop_window_);
|
| - desktop_window_ = NULL;
|
| - desktop_layer_ = NULL;
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
|
|
| - // Post task to stop capture on UI thread.
|
| - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, base::Bind(
|
| - &DesktopVideoCaptureMachine::Stop, AsWeakPtr()));
|
| + Stop();
|
| +
|
| + oracle_proxy_->ReportError();
|
| }
|
|
|
| void DesktopVideoCaptureMachine::OnCompositingEnded(
|
|
|