Chromium Code Reviews| 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(); |