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

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

Issue 138513002: Plumb network stack information about existence of cached copy (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Incorporated comments from Matt & Ricardo. Created 6 years, 10 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
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 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 void ResourceDispatcher::FollowPendingRedirect( 514 void ResourceDispatcher::FollowPendingRedirect(
515 int request_id, 515 int request_id,
516 PendingRequestInfo& request_info) { 516 PendingRequestInfo& request_info) {
517 IPC::Message* msg = request_info.pending_redirect_message.release(); 517 IPC::Message* msg = request_info.pending_redirect_message.release();
518 if (msg) 518 if (msg)
519 message_sender()->Send(msg); 519 message_sender()->Send(msg);
520 } 520 }
521 521
522 void ResourceDispatcher::OnRequestComplete( 522 void ResourceDispatcher::OnRequestComplete(
523 int request_id, 523 int request_id,
524 int error_code, 524 const ResourceMsg_RequestCompleteData& request_complete_data) {
525 bool was_ignored_by_handler,
526 const std::string& security_info,
527 const base::TimeTicks& browser_completion_time) {
528 TRACE_EVENT0("loader", "ResourceDispatcher::OnRequestComplete"); 525 TRACE_EVENT0("loader", "ResourceDispatcher::OnRequestComplete");
529 SiteIsolationPolicy::OnRequestComplete(request_id); 526 SiteIsolationPolicy::OnRequestComplete(request_id);
530 527
531 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); 528 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id);
532 if (!request_info) 529 if (!request_info)
533 return; 530 return;
534 request_info->completion_time = ConsumeIOTimestamp(); 531 request_info->completion_time = ConsumeIOTimestamp();
535 request_info->buffer.reset(); 532 request_info->buffer.reset();
536 request_info->buffer_size = 0; 533 request_info->buffer_size = 0;
537 534
538 ResourceLoaderBridge::Peer* peer = request_info->peer; 535 ResourceLoaderBridge::Peer* peer = request_info->peer;
539 536
540 if (delegate_) { 537 if (delegate_) {
541 ResourceLoaderBridge::Peer* new_peer = 538 ResourceLoaderBridge::Peer* new_peer =
542 delegate_->OnRequestComplete( 539 delegate_->OnRequestComplete(
543 request_info->peer, request_info->resource_type, error_code); 540 request_info->peer, request_info->resource_type,
541 request_complete_data.error_code);
544 if (new_peer) 542 if (new_peer)
545 request_info->peer = new_peer; 543 request_info->peer = new_peer;
546 } 544 }
547 545
548 base::TimeTicks renderer_completion_time = ToRendererCompletionTime( 546 base::TimeTicks renderer_completion_time = ToRendererCompletionTime(
549 *request_info, browser_completion_time); 547 *request_info, request_complete_data.completion_time);
550 // The request ID will be removed from our pending list in the destructor. 548 // The request ID will be removed from our pending list in the destructor.
551 // Normally, dispatching this message causes the reference-counted request to 549 // Normally, dispatching this message causes the reference-counted request to
552 // die immediately. 550 // die immediately.
553 peer->OnCompletedRequest(error_code, was_ignored_by_handler, security_info, 551 peer->OnCompletedRequest(request_complete_data.error_code,
552 request_complete_data.was_ignored_by_handler,
553 request_complete_data.exists_in_cache,
554 request_complete_data.security_info,
554 renderer_completion_time); 555 renderer_completion_time);
555 } 556 }
556 557
557 int ResourceDispatcher::AddPendingRequest( 558 int ResourceDispatcher::AddPendingRequest(
558 ResourceLoaderBridge::Peer* callback, 559 ResourceLoaderBridge::Peer* callback,
559 ResourceType::Type resource_type, 560 ResourceType::Type resource_type,
560 int origin_pid, 561 int origin_pid,
561 const GURL& frame_origin, 562 const GURL& frame_origin,
562 const GURL& request_url) { 563 const GURL& request_url) {
563 // Compute a unique request_id for this renderer process. 564 // Compute a unique request_id for this renderer process.
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 void ResourceDispatcher::ReleaseResourcesInMessageQueue(MessageQueue* queue) { 803 void ResourceDispatcher::ReleaseResourcesInMessageQueue(MessageQueue* queue) {
803 while (!queue->empty()) { 804 while (!queue->empty()) {
804 IPC::Message* message = queue->front(); 805 IPC::Message* message = queue->front();
805 ReleaseResourcesInDataMessage(*message); 806 ReleaseResourcesInDataMessage(*message);
806 queue->pop_front(); 807 queue->pop_front();
807 delete message; 808 delete message;
808 } 809 }
809 } 810 }
810 811
811 } // namespace content 812 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698