| 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 5eb767921d4c4ee9746ecf1652b30c1393ceba05..d5d37cd4861fe7848ad262a276a59d69eaaa4332 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();
|
|
|
| @@ -1060,6 +1053,9 @@ void RenderWidgetHostViewMac::RenderProcessGone(base::TerminationStatus status,
|
| }
|
|
|
| void RenderWidgetHostViewMac::Destroy() {
|
| + // SurfaceIdNamespaces registered with RenderWidgetHostInputEventRouter
|
| + // have already been cleared when RenderWidgetHostViewBase notified its
|
| + // observers of our impending destruction.
|
| [[NSNotificationCenter defaultCenter]
|
| removeObserver:cocoa_view_
|
| name:NSWindowWillCloseNotification
|
| @@ -1082,19 +1078,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
|
|
|