| 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 | 
|  |