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( |