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

Side by Side Diff: content/child/resource_dispatcher.cc

Issue 398903002: Plumb redirect info out of net, through content, and into child processes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: darin comments Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/child/resource_dispatcher.h ('k') | content/child/resource_dispatcher_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading 5 // See http://dev.chromium.org/developers/design-documents/multi-process-resourc e-loading
6 6
7 #include "content/child/resource_dispatcher.h" 7 #include "content/child/resource_dispatcher.h"
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 492
493 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); 493 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id);
494 if (!request_info) 494 if (!request_info)
495 return; 495 return;
496 496
497 request_info->peer->OnDownloadedData(data_len, encoded_data_length); 497 request_info->peer->OnDownloadedData(data_len, encoded_data_length);
498 } 498 }
499 499
500 void ResourceDispatcher::OnReceivedRedirect( 500 void ResourceDispatcher::OnReceivedRedirect(
501 int request_id, 501 int request_id,
502 const GURL& new_url, 502 const net::RedirectInfo& redirect_info,
503 const GURL& new_first_party_for_cookies,
504 const ResourceResponseHead& response_head) { 503 const ResourceResponseHead& response_head) {
505 TRACE_EVENT0("loader", "ResourceDispatcher::OnReceivedRedirect"); 504 TRACE_EVENT0("loader", "ResourceDispatcher::OnReceivedRedirect");
506 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); 505 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id);
507 if (!request_info) 506 if (!request_info)
508 return; 507 return;
509 request_info->response_start = ConsumeIOTimestamp(); 508 request_info->response_start = ConsumeIOTimestamp();
510 509
511 ResourceResponseInfo renderer_response_info; 510 ResourceResponseInfo renderer_response_info;
512 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info); 511 ToResourceResponseInfo(*request_info, response_head, &renderer_response_info);
513 if (request_info->peer->OnReceivedRedirect( 512 if (request_info->peer->OnReceivedRedirect(redirect_info,
514 new_url, new_first_party_for_cookies, renderer_response_info)) { 513 renderer_response_info)) {
515 // Double-check if the request is still around. The call above could 514 // Double-check if the request is still around. The call above could
516 // potentially remove it. 515 // potentially remove it.
517 request_info = GetPendingRequestInfo(request_id); 516 request_info = GetPendingRequestInfo(request_id);
518 if (!request_info) 517 if (!request_info)
519 return; 518 return;
520 // We update the response_url here so that we can send it to 519 // We update the response_url here so that we can send it to
521 // SiteIsolationPolicy later when OnReceivedResponse is called. 520 // SiteIsolationPolicy later when OnReceivedResponse is called.
522 request_info->response_url = new_url; 521 request_info->response_url = redirect_info.new_url;
523 request_info->pending_redirect_message.reset( 522 request_info->pending_redirect_message.reset(
524 new ResourceHostMsg_FollowRedirect(request_id)); 523 new ResourceHostMsg_FollowRedirect(request_id));
525 if (!request_info->is_deferred) { 524 if (!request_info->is_deferred) {
526 FollowPendingRedirect(request_id, *request_info); 525 FollowPendingRedirect(request_id, *request_info);
527 } 526 }
528 } else { 527 } else {
529 CancelPendingRequest(request_id); 528 CancelPendingRequest(request_id);
530 } 529 }
531 } 530 }
532 531
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 void ResourceDispatcher::ReleaseResourcesInMessageQueue(MessageQueue* queue) { 859 void ResourceDispatcher::ReleaseResourcesInMessageQueue(MessageQueue* queue) {
861 while (!queue->empty()) { 860 while (!queue->empty()) {
862 IPC::Message* message = queue->front(); 861 IPC::Message* message = queue->front();
863 ReleaseResourcesInDataMessage(*message); 862 ReleaseResourcesInDataMessage(*message);
864 queue->pop_front(); 863 queue->pop_front();
865 delete message; 864 delete message;
866 } 865 }
867 } 866 }
868 867
869 } // namespace content 868 } // namespace content
OLDNEW
« no previous file with comments | « content/child/resource_dispatcher.h ('k') | content/child/resource_dispatcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698