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

Unified Diff: content/browser/renderer_host/resource_dispatcher_host_impl.cc

Issue 10065028: Fixing a problem, where a hung renderer process is not killed when navigating away (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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: content/browser/renderer_host/resource_dispatcher_host_impl.cc
diff --git a/content/browser/renderer_host/resource_dispatcher_host_impl.cc b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
index 373a792f13899c99afe71c4e77e9e8c2ca6104d0..95e0f3ed34e4f1b995ec52fb319863a322669e6a 100644
--- a/content/browser/renderer_host/resource_dispatcher_host_impl.cc
+++ b/content/browser/renderer_host/resource_dispatcher_host_impl.cc
@@ -288,11 +288,13 @@ net::RequestPriority DetermineRequestPriority(ResourceType::Type type) {
}
}
-void OnSwapOutACKHelper(int render_process_id, int render_view_id) {
+void OnSwapOutACKHelper(int render_process_id,
+ int render_view_id,
+ bool timed_out) {
RenderViewHostImpl* rvh = RenderViewHostImpl::FromID(render_process_id,
render_view_id);
if (rvh)
- rvh->OnSwapOutACK();
+ rvh->OnSwapOutACK(timed_out);
}
net::Error CallbackAndReturn(
@@ -1083,8 +1085,20 @@ ResourceRequestInfoImpl* ResourceDispatcherHostImpl::CreateRequestInfo(
context);
}
+
void ResourceDispatcherHostImpl::OnSwapOutACK(
+ const ViewMsg_SwapOut_Params& params) {
+ HandleSwapOutACK(params, false);
+}
+
+void ResourceDispatcherHostImpl::OnSimulateSwapOutACK(
const ViewMsg_SwapOut_Params& params) {
+ // Call the real implementation with true, which means that we timed out.
+ HandleSwapOutACK(params, true);
+}
+
+void ResourceDispatcherHostImpl::HandleSwapOutACK(
+ const ViewMsg_SwapOut_Params& params, bool timed_out) {
// Closes for cross-site transitions are handled such that the cross-site
// transition continues.
GlobalRequestID global_id(params.new_render_process_host_id,
@@ -1103,7 +1117,8 @@ void ResourceDispatcherHostImpl::OnSwapOutACK(
FROM_HERE,
base::Bind(&OnSwapOutACKHelper,
params.closing_process_id,
- params.closing_route_id));
+ params.closing_route_id,
+ timed_out));
}
void ResourceDispatcherHostImpl::OnDidLoadResourceFromMemoryCache(
« no previous file with comments | « content/browser/renderer_host/resource_dispatcher_host_impl.h ('k') | content/browser/renderer_host/test_render_view_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698