Unsubscribe observer when OffScreenRenderWidgetHostView is destroyed

This commit is contained in:
Cheng Zhao 2016-09-19 16:51:03 +09:00
parent 07a08077a2
commit 5bf746700e
2 changed files with 9 additions and 0 deletions

View file

@ -377,6 +377,9 @@ OffScreenRenderWidgetHostView::OffScreenRenderWidgetHostView(
} }
OffScreenRenderWidgetHostView::~OffScreenRenderWidgetHostView() { OffScreenRenderWidgetHostView::~OffScreenRenderWidgetHostView() {
if (native_window_)
native_window_->RemoveObserver(this);
#if defined(OS_MACOSX) #if defined(OS_MACOSX)
if (is_showing_) if (is_showing_)
browser_compositor_->SetRenderWidgetHostIsHidden(true); browser_compositor_->SetRenderWidgetHostIsHidden(true);
@ -924,4 +927,9 @@ void OffScreenRenderWidgetHostView::OnWindowResize() {
SetSize(size); SetSize(size);
} }
void OffScreenRenderWidgetHostView::OnWindowClosed() {
native_window_->RemoveObserver(this);
native_window_ = nullptr;
}
} // namespace atom } // namespace atom

View file

@ -176,6 +176,7 @@ class OffScreenRenderWidgetHostView
// NativeWindowObserver: // NativeWindowObserver:
void OnWindowResize() override; void OnWindowResize() override;
void OnWindowClosed() override;
void OnBeginFrameTimerTick(); void OnBeginFrameTimerTick();
void SendBeginFrame(base::TimeTicks frame_time, void SendBeginFrame(base::TimeTicks frame_time,