Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_mac.mm |
| diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm |
| index a73a09ff790015c68ed33b744e1bbc1f3c9dd1a0..cffcca94e75ef6440e88f6adad85d18b8bd97f03 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_mac.mm |
| +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm |
| @@ -563,13 +563,6 @@ RenderWidgetHostViewMac::~RenderWidgetHostViewMac() { |
| UnlockMouse(); |
| - if (render_widget_host_ && render_widget_host_->delegate() && |
| - render_widget_host_->delegate()->GetInputEventRouter()) { |
| - render_widget_host_->delegate() |
| - ->GetInputEventRouter() |
| - ->RemoveSurfaceIdNamespaceOwner(GetSurfaceIdNamespace()); |
| - } |
| - |
| // Ensure that the browser compositor is destroyed in a safe order. |
| ShutdownBrowserCompositor(); |
| @@ -1056,6 +1049,9 @@ void RenderWidgetHostViewMac::RenderProcessGone(base::TerminationStatus status, |
| } |
| void RenderWidgetHostViewMac::Destroy() { |
| + // SurfaceIdNames registered with RenderWidgetHostInputEventRouter |
|
kenrb
2016/02/22 17:05:10
nit: s/SurfaceIdNames/SurfaceIdNamespaces
wjmaclean
2016/02/23 13:13:26
Done.
|
| + // have already been cleared when RenderWidgetHostViewBase notified its |
| + // observers of our impending destruction. |
| [[NSNotificationCenter defaultCenter] |
| removeObserver:cocoa_view_ |
| name:NSWindowWillCloseNotification |
| @@ -1078,19 +1074,14 @@ void RenderWidgetHostViewMac::Destroy() { |
| // object needs to survive until the stack unwinds. |
| pepper_fullscreen_window_.autorelease(); |
| - // Clear SurfaceID namespace ownership before we shutdown the |
| - // compositor. |
| - if (render_widget_host_ && render_widget_host_->delegate() && |
| - render_widget_host_->delegate()->GetInputEventRouter()) { |
| - render_widget_host_->delegate() |
| - ->GetInputEventRouter() |
| - ->RemoveSurfaceIdNamespaceOwner(GetSurfaceIdNamespace()); |
| - } |
| - |
| // Delete the delegated frame state, which will reach back into |
| // render_widget_host_. |
| ShutdownBrowserCompositor(); |
| + // Make sure none of our observers send events for us to process after |
| + // we release render_widget_host_. |
| + NotifyObserversAboutShutdown(); |
| + |
| // We get this call just before |render_widget_host_| deletes |
| // itself. But we are owned by |cocoa_view_|, which may be retained |
| // by some other code. Examples are WebContentsViewMac's |