diff --git a/atom/browser/osr/osr_render_widget_host_view.cc b/atom/browser/osr/osr_render_widget_host_view.cc index 918fced5036b..aa12cdcb83a2 100644 --- a/atom/browser/osr/osr_render_widget_host_view.cc +++ b/atom/browser/osr/osr_render_widget_host_view.cc @@ -377,6 +377,9 @@ OffScreenRenderWidgetHostView::OffScreenRenderWidgetHostView( } OffScreenRenderWidgetHostView::~OffScreenRenderWidgetHostView() { + if (native_window_) + native_window_->RemoveObserver(this); + #if defined(OS_MACOSX) if (is_showing_) browser_compositor_->SetRenderWidgetHostIsHidden(true); @@ -924,4 +927,9 @@ void OffScreenRenderWidgetHostView::OnWindowResize() { SetSize(size); } +void OffScreenRenderWidgetHostView::OnWindowClosed() { + native_window_->RemoveObserver(this); + native_window_ = nullptr; +} + } // namespace atom diff --git a/atom/browser/osr/osr_render_widget_host_view.h b/atom/browser/osr/osr_render_widget_host_view.h index 8ea3003a4e5c..edd1ce990c57 100644 --- a/atom/browser/osr/osr_render_widget_host_view.h +++ b/atom/browser/osr/osr_render_widget_host_view.h @@ -176,6 +176,7 @@ class OffScreenRenderWidgetHostView // NativeWindowObserver: void OnWindowResize() override; + void OnWindowClosed() override; void OnBeginFrameTimerTick(); void SendBeginFrame(base::TimeTicks frame_time,