OLD | NEW |
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 <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
536 PendingRequestInfo* pending_request = index->second.get(); | 536 PendingRequestInfo* pending_request = index->second.get(); |
537 if (pending_request->is_deferred) { | 537 if (pending_request->is_deferred) { |
538 pending_request->deferred_message_queue.swap(q); | 538 pending_request->deferred_message_queue.swap(q); |
539 return; | 539 return; |
540 } | 540 } |
541 } | 541 } |
542 } | 542 } |
543 } | 543 } |
544 | 544 |
545 void ResourceDispatcher::StartSync(const RequestInfo& request_info, | 545 void ResourceDispatcher::StartSync(const RequestInfo& request_info, |
546 ResourceRequestBody* request_body, | 546 ResourceRequestBodyImpl* request_body, |
547 SyncLoadResponse* response) { | 547 SyncLoadResponse* response) { |
548 std::unique_ptr<ResourceRequest> request = | 548 std::unique_ptr<ResourceRequest> request = |
549 CreateRequest(request_info, request_body, NULL); | 549 CreateRequest(request_info, request_body, NULL); |
550 | 550 |
551 SyncLoadResult result; | 551 SyncLoadResult result; |
552 IPC::SyncMessage* msg = new ResourceHostMsg_SyncLoad( | 552 IPC::SyncMessage* msg = new ResourceHostMsg_SyncLoad( |
553 request_info.routing_id, MakeRequestID(), *request, &result); | 553 request_info.routing_id, MakeRequestID(), *request, &result); |
554 | 554 |
555 // NOTE: This may pump events (see RenderThread::Send). | 555 // NOTE: This may pump events (see RenderThread::Send). |
556 if (!message_sender_->Send(msg)) { | 556 if (!message_sender_->Send(msg)) { |
(...skipping 10 matching lines...) Expand all Loading... |
567 response->response_time = result.response_time; | 567 response->response_time = result.response_time; |
568 response->encoded_data_length = result.encoded_data_length; | 568 response->encoded_data_length = result.encoded_data_length; |
569 response->load_timing = result.load_timing; | 569 response->load_timing = result.load_timing; |
570 response->devtools_info = result.devtools_info; | 570 response->devtools_info = result.devtools_info; |
571 response->data.swap(result.data); | 571 response->data.swap(result.data); |
572 response->download_file_path = result.download_file_path; | 572 response->download_file_path = result.download_file_path; |
573 response->socket_address = result.socket_address; | 573 response->socket_address = result.socket_address; |
574 } | 574 } |
575 | 575 |
576 int ResourceDispatcher::StartAsync(const RequestInfo& request_info, | 576 int ResourceDispatcher::StartAsync(const RequestInfo& request_info, |
577 ResourceRequestBody* request_body, | 577 ResourceRequestBodyImpl* request_body, |
578 std::unique_ptr<RequestPeer> peer) { | 578 std::unique_ptr<RequestPeer> peer) { |
579 GURL frame_origin; | 579 GURL frame_origin; |
580 std::unique_ptr<ResourceRequest> request = | 580 std::unique_ptr<ResourceRequest> request = |
581 CreateRequest(request_info, request_body, &frame_origin); | 581 CreateRequest(request_info, request_body, &frame_origin); |
582 | 582 |
583 // Compute a unique request_id for this renderer process. | 583 // Compute a unique request_id for this renderer process. |
584 int request_id = MakeRequestID(); | 584 int request_id = MakeRequestID(); |
585 pending_requests_[request_id] = base::WrapUnique(new PendingRequestInfo( | 585 pending_requests_[request_id] = base::WrapUnique(new PendingRequestInfo( |
586 std::move(peer), request->resource_type, request->origin_pid, | 586 std::move(peer), request->resource_type, request->origin_pid, |
587 frame_origin, request->url, request_info.download_to_file)); | 587 frame_origin, request->url, request_info.download_to_file)); |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 while (!queue->empty()) { | 728 while (!queue->empty()) { |
729 IPC::Message* message = queue->front(); | 729 IPC::Message* message = queue->front(); |
730 ReleaseResourcesInDataMessage(*message); | 730 ReleaseResourcesInDataMessage(*message); |
731 queue->pop_front(); | 731 queue->pop_front(); |
732 delete message; | 732 delete message; |
733 } | 733 } |
734 } | 734 } |
735 | 735 |
736 std::unique_ptr<ResourceRequest> ResourceDispatcher::CreateRequest( | 736 std::unique_ptr<ResourceRequest> ResourceDispatcher::CreateRequest( |
737 const RequestInfo& request_info, | 737 const RequestInfo& request_info, |
738 ResourceRequestBody* request_body, | 738 ResourceRequestBodyImpl* request_body, |
739 GURL* frame_origin) { | 739 GURL* frame_origin) { |
740 std::unique_ptr<ResourceRequest> request(new ResourceRequest); | 740 std::unique_ptr<ResourceRequest> request(new ResourceRequest); |
741 request->method = request_info.method; | 741 request->method = request_info.method; |
742 request->url = request_info.url; | 742 request->url = request_info.url; |
743 request->first_party_for_cookies = request_info.first_party_for_cookies; | 743 request->first_party_for_cookies = request_info.first_party_for_cookies; |
744 request->request_initiator = request_info.request_initiator; | 744 request->request_initiator = request_info.request_initiator; |
745 request->referrer = request_info.referrer.url; | 745 request->referrer = request_info.referrer.url; |
746 request->referrer_policy = request_info.referrer.policy; | 746 request->referrer_policy = request_info.referrer.policy; |
747 request->headers = request_info.headers; | 747 request->headers = request_info.headers; |
748 request->load_flags = request_info.load_flags; | 748 request->load_flags = request_info.load_flags; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 *frame_origin = extra_data->frame_origin(); | 808 *frame_origin = extra_data->frame_origin(); |
809 return request; | 809 return request; |
810 } | 810 } |
811 | 811 |
812 void ResourceDispatcher::SetResourceSchedulingFilter( | 812 void ResourceDispatcher::SetResourceSchedulingFilter( |
813 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { | 813 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { |
814 resource_scheduling_filter_ = resource_scheduling_filter; | 814 resource_scheduling_filter_ = resource_scheduling_filter; |
815 } | 815 } |
816 | 816 |
817 } // namespace content | 817 } // namespace content |
OLD | NEW |