Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(699)

Unified Diff: chrome/browser/renderer_host/chrome_render_message_filter.cc

Issue 8343079: Don't close background pages if there is a pending response (callback). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Only track in-flight events when lazy Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/renderer_host/chrome_render_message_filter.cc
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc
index 5472214c920f3919a7d4ca2237422002232889a8..9e98fddd7a1dcfbca6d075510736df7b11f07fbe 100644
--- a/chrome/browser/renderer_host/chrome_render_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc
@@ -130,6 +130,7 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message,
IPC_MESSAGE_HANDLER(ExtensionHostMsg_RemoveListener,
OnExtensionRemoveListener)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_ExtensionIdle, OnExtensionIdle)
+ IPC_MESSAGE_HANDLER(ExtensionHostMsg_EventDispatch, OnEventDispatch)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_CloseChannel, OnExtensionCloseChannel)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_RequestForIOThread,
OnExtensionRequestForIOThread)
@@ -192,6 +193,7 @@ void ChromeRenderMessageFilter::OverrideThreadForMessage(
case ExtensionHostMsg_AddListener::ID:
case ExtensionHostMsg_RemoveListener::ID:
case ExtensionHostMsg_ExtensionIdle::ID:
+ case ExtensionHostMsg_EventDispatch::ID:
case ExtensionHostMsg_CloseChannel::ID:
case ChromeViewHostMsg_UpdatedCacheStats::ID:
*thread = BrowserThread::UI;
@@ -381,6 +383,12 @@ void ChromeRenderMessageFilter::OnExtensionIdle(
profile_->GetExtensionProcessManager()->OnExtensionIdle(extension_id);
}
+void ChromeRenderMessageFilter::OnEventDispatch(
+ const std::string& extension_id) {
+ if (profile_->GetExtensionEventRouter())
+ profile_->GetExtensionEventRouter()->DecrementInFlightEvents(extension_id);
+}
+
void ChromeRenderMessageFilter::OnExtensionCloseChannel(int port_id) {
if (!RenderProcessHost::FromID(render_process_id_))
return; // To guard against crash in browser_tests shutdown.

Powered by Google App Engine
This is Rietveld 408576698