Index: extensions/browser/process_manager.cc |
diff --git a/extensions/browser/process_manager.cc b/extensions/browser/process_manager.cc |
index a4a46cd6205d29523599e0f30d32fa2eafdfa2ba..8b2b4b534b92e13bad3a2a9530c0f928c93eb284 100644 |
--- a/extensions/browser/process_manager.cc |
+++ b/extensions/browser/process_manager.cc |
@@ -553,6 +553,8 @@ void ProcessManager::OnNetworkRequestStarted( |
uint64 request_id) { |
ExtensionHost* host = GetBackgroundHostForExtension( |
GetExtensionID(render_frame_host)); |
+ auto result = pending_network_requests_.insert(request_id); |
+ DCHECK(result.second) << "Duplicate network request IDs."; |
if (host && IsFrameInExtensionHost(host, render_frame_host)) { |
IncrementLazyKeepaliveCount(host->extension()); |
host->OnNetworkRequestStarted(request_id); |
@@ -566,7 +568,8 @@ void ProcessManager::OnNetworkRequestDone( |
GetExtensionID(render_frame_host)); |
if (host && IsFrameInExtensionHost(host, render_frame_host)) { |
host->OnNetworkRequestDone(request_id); |
- DecrementLazyKeepaliveCount(host->extension()); |
+ if (pending_network_requests_.erase(request_id)) |
+ DecrementLazyKeepaliveCount(host->extension()); |
} |
} |