| 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 24ef6825bfd520b7177f8b5f97cb61a6294aaa40..64e45f337dd4dbeb7625fdac1e82e8da15aae910 100644
|
| --- a/content/browser/renderer_host/resource_dispatcher_host.cc
|
| +++ b/content/browser/renderer_host/resource_dispatcher_host.cc
|
| @@ -338,6 +338,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,
|
| @@ -634,6 +636,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);
|
| +}
|
| +
|
| void ResourceDispatcherHost::OnFollowRedirect(
|
| int request_id,
|
| bool has_new_first_party_for_cookies,
|
| @@ -1319,6 +1326,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();
|
|
|