Index: content/browser/browser_plugin/browser_plugin_guest.cc |
diff --git a/content/browser/browser_plugin/browser_plugin_guest.cc b/content/browser/browser_plugin/browser_plugin_guest.cc |
index 61dbe6c349a1cd6d7279ecab44a10dc22380760f..7d2ee45066a3e7dee940d97f60a3f6e2ac174105 100644 |
--- a/content/browser/browser_plugin/browser_plugin_guest.cc |
+++ b/content/browser/browser_plugin/browser_plugin_guest.cc |
@@ -802,6 +802,9 @@ void BrowserPluginGuest::OnWillAttachComplete( |
SendQueuedMessages(); |
delegate_->DidAttach(GetGuestProxyRoutingID()); |
+ RenderWidgetHostViewGuest* rwhv = static_cast<RenderWidgetHostViewGuest*>( |
+ web_contents()->GetRenderWidgetHostView()); |
+ rwhv->RegisterSurfaceNamespaceId(); |
if (!use_cross_process_frames) |
has_render_view_ = true; |
@@ -827,6 +830,12 @@ void BrowserPluginGuest::OnDetach(int browser_plugin_instance_id) { |
// it's attached again. |
attached_ = false; |
+ RenderWidgetHostViewGuest* rwhv = static_cast<RenderWidgetHostViewGuest*>( |
+ web_contents()->GetRenderWidgetHostView()); |
+ // If the guest is terminated, our host may already be gone. |
+ if (rwhv) |
+ rwhv->UnregisterSurfaceNamespaceId(); |
+ |
delegate_->DidDetach(); |
} |