Index: content/browser/renderer_host/resource_dispatcher_host.cc |
diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc |
index 8e9f1323ab624a6cd5b4cb1e7930116c5ff66f1b..f79c0e236f20737dc0c7005deb8085aab7ec6593 100644 |
--- a/content/browser/renderer_host/resource_dispatcher_host.cc |
+++ b/content/browser/renderer_host/resource_dispatcher_host.cc |
@@ -345,6 +345,8 @@ bool ResourceDispatcherHost::OnMessageReceived(const IPC::Message& message, |
IPC_MESSAGE_HANDLER(ResourceHostMsg_DataDownloaded_ACK, OnDataDownloadedACK) |
IPC_MESSAGE_HANDLER(ResourceHostMsg_UploadProgress_ACK, OnUploadProgressACK) |
IPC_MESSAGE_HANDLER(ResourceHostMsg_CancelRequest, OnCancelRequest) |
+ IPC_MESSAGE_HANDLER(ResourceHostMsg_TransferRequestToNewPage, |
+ OnTransferRequestToNewPage) |
IPC_MESSAGE_HANDLER(ResourceHostMsg_FollowRedirect, OnFollowRedirect) |
IPC_MESSAGE_HANDLER(ViewHostMsg_SwapOut_ACK, OnSwapOutACK) |
IPC_MESSAGE_HANDLER(ViewHostMsg_DidLoadResourceFromMemoryCache, |
@@ -641,6 +643,11 @@ void ResourceDispatcherHost::OnCancelRequest(int request_id) { |
CancelRequest(filter_->child_id(), request_id, true); |
} |
+void ResourceDispatcherHost::OnTransferRequestToNewPage(const IPC::Message& msg, |
+ int request_id) { |
+ TransferRequestToNewPage(filter_->child_id(), msg.routing_id(), request_id); |
jam
2011/08/15 16:31:02
nit: no need to call out from message dispatcher t
Dmitry Titov
2011/08/15 20:50:10
Done.
|
+} |
+ |
void ResourceDispatcherHost::OnFollowRedirect( |
int request_id, |
bool has_new_first_party_for_cookies, |
@@ -1326,6 +1333,23 @@ void ResourceDispatcherHost::CancelRequest(int child_id, |
} |
} |
+void ResourceDispatcherHost::TransferRequestToNewPage(int process_unique_id, |
+ int new_routing_id, |
+ int request_id) { |
+ PendingRequestList::iterator i = pending_requests_.find( |
+ GlobalRequestID(process_unique_id, request_id)); |
+ if (i == pending_requests_.end()) { |
+ // We probably want to remove this warning eventually, but I wanted to be |
+ // able to notice when this happens during initial development since it |
+ // should be rare and may indicate a bug. |
+ DLOG(WARNING) << "Updating a request that wasn't found"; |
+ return; |
+ } |
+ net::URLRequest* request = i->second; |
+ ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); |
+ info->set_route_id(new_routing_id); |
+} |
+ |
bool ResourceDispatcherHost::CancelRequestInternal(net::URLRequest* request, |
bool from_renderer) { |
VLOG(1) << "CancelRequest: " << request->url().spec(); |