Index: chrome/browser/extensions/extension_host.cc |
diff --git a/chrome/browser/extensions/extension_host.cc b/chrome/browser/extensions/extension_host.cc |
index f159d00e3739ba34cb120a80f43d12f302abe7ce..7016a299bd77c5e500551e30e64f590f344949e0 100644 |
--- a/chrome/browser/extensions/extension_host.cc |
+++ b/chrome/browser/extensions/extension_host.cc |
@@ -163,6 +163,15 @@ ExtensionHost::~ExtensionHost() { |
UMA_HISTOGRAM_LONG_TIMES("Extensions.EventPageActiveTime", |
since_created_.Elapsed()); |
} |
+ // Clear the extension's renderer process out from any WebContents |
+ // that might have it in their back history. |
+ // TODO(jyasskin): Remove this hack by making extension reloading |
+ // wait for renderer shutdown. |
+ content::NotificationService::current()->Notify( |
+ content::NOTIFICATION_RENDERER_PROCESS_CLOSING, |
+ content::Source<content::RenderProcessHost>(render_process_host()), |
+ content::NotificationService::NoDetails()); |
+ |
content::NotificationService::current()->Notify( |
chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
content::Source<Profile>(profile_), |