diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-23 17:51:19 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-04-23 17:51:19 +0000 |
commit | 43f663c3cec6e516bd8ea085971c24debd34e1ef (patch) | |
tree | 0d5c28d0c0b8d81d3c143111eed28ee12e4052ad | |
parent | da5683db1bbf401694c72f7d4216f38249ac2c13 (diff) | |
download | chromium_src-43f663c3cec6e516bd8ea085971c24debd34e1ef.zip chromium_src-43f663c3cec6e516bd8ea085971c24debd34e1ef.tar.gz chromium_src-43f663c3cec6e516bd8ea085971c24debd34e1ef.tar.bz2 |
Fix race condition on browser_tests shutdown
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@82798 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/renderer_host/chrome_render_message_filter.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc index 77aac3c..902570c 100644 --- a/chrome/browser/renderer_host/chrome_render_message_filter.cc +++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc @@ -243,7 +243,7 @@ void ChromeRenderMessageFilter::OnExtensionAddListener( const std::string& extension_id, const std::string& event_name) { RenderProcessHost* process = RenderProcessHost::FromID(render_process_id_); - if (!profile_->GetExtensionEventRouter() || !process) + if (!process || !profile_->GetExtensionEventRouter()) return; profile_->GetExtensionEventRouter()->AddEventListener( @@ -254,7 +254,7 @@ void ChromeRenderMessageFilter::OnExtensionRemoveListener( const std::string& extension_id, const std::string& event_name) { RenderProcessHost* process = RenderProcessHost::FromID(render_process_id_); - if (!profile_->GetExtensionEventRouter() || !process) + if (!process || !profile_->GetExtensionEventRouter()) return; profile_->GetExtensionEventRouter()->RemoveEventListener( @@ -262,6 +262,9 @@ void ChromeRenderMessageFilter::OnExtensionRemoveListener( } void ChromeRenderMessageFilter::OnExtensionCloseChannel(int port_id) { + if (!RenderProcessHost::FromID(render_process_id_)) + return; // To guard against crash in browser_tests shutdown. + if (profile_->GetExtensionMessageService()) profile_->GetExtensionMessageService()->CloseChannel(port_id); } |