| 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 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 651 } | 651 } |
| 652 | 652 |
| 653 if (ipc_type == blink::WebURLRequest::LoadingIPCType::kMojo) { | 653 if (ipc_type == blink::WebURLRequest::LoadingIPCType::kMojo) { |
| 654 scoped_refptr<base::SingleThreadTaskRunner> task_runner = | 654 scoped_refptr<base::SingleThreadTaskRunner> task_runner = |
| 655 loading_task_runner ? loading_task_runner : main_thread_task_runner_; | 655 loading_task_runner ? loading_task_runner : main_thread_task_runner_; |
| 656 std::unique_ptr<URLLoaderClientImpl> client( | 656 std::unique_ptr<URLLoaderClientImpl> client( |
| 657 new URLLoaderClientImpl(request_id, this, std::move(task_runner))); | 657 new URLLoaderClientImpl(request_id, this, std::move(task_runner))); |
| 658 mojom::URLLoaderAssociatedPtr url_loader; | 658 mojom::URLLoaderAssociatedPtr url_loader; |
| 659 mojom::URLLoaderClientPtr client_ptr; | 659 mojom::URLLoaderClientPtr client_ptr; |
| 660 client->Bind(&client_ptr); | 660 client->Bind(&client_ptr); |
| 661 url_loader_factory->CreateLoaderAndStart(MakeRequest(&url_loader), | 661 url_loader_factory->CreateLoaderAndStart( |
| 662 routing_id, request_id, *request, | 662 MakeRequest(&url_loader), routing_id, request_id, |
| 663 std::move(client_ptr)); | 663 mojom::kURLLoadOptionNone, *request, std::move(client_ptr)); |
| 664 pending_requests_[request_id]->url_loader = std::move(url_loader); | 664 pending_requests_[request_id]->url_loader = std::move(url_loader); |
| 665 pending_requests_[request_id]->url_loader_client = std::move(client); | 665 pending_requests_[request_id]->url_loader_client = std::move(client); |
| 666 } else { | 666 } else { |
| 667 message_sender_->Send( | 667 message_sender_->Send( |
| 668 new ResourceHostMsg_RequestResource(routing_id, request_id, *request)); | 668 new ResourceHostMsg_RequestResource(routing_id, request_id, *request)); |
| 669 } | 669 } |
| 670 | 670 |
| 671 return request_id; | 671 return request_id; |
| 672 } | 672 } |
| 673 | 673 |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); | 757 PendingRequestInfo* request_info = GetPendingRequestInfo(request_id); |
| 758 if (!request_info) | 758 if (!request_info) |
| 759 return; | 759 return; |
| 760 | 760 |
| 761 URLLoaderClientImpl* client_ptr = request_info->url_loader_client.get(); | 761 URLLoaderClientImpl* client_ptr = request_info->url_loader_client.get(); |
| 762 | 762 |
| 763 // Short circuiting call to OnReceivedResponse to immediately start | 763 // Short circuiting call to OnReceivedResponse to immediately start |
| 764 // the request. ResourceResponseHead can be empty here because we | 764 // the request. ResourceResponseHead can be empty here because we |
| 765 // pull the StreamOverride's one in | 765 // pull the StreamOverride's one in |
| 766 // WebURLLoaderImpl::Context::OnReceivedResponse. | 766 // WebURLLoaderImpl::Context::OnReceivedResponse. |
| 767 client_ptr->OnReceiveResponse(ResourceResponseHead(), | 767 client_ptr->OnReceiveResponse(ResourceResponseHead(), base::nullopt, |
| 768 mojom::DownloadedTempFilePtr()); | 768 mojom::DownloadedTempFilePtr()); |
| 769 // Start streaming now. | 769 // Start streaming now. |
| 770 client_ptr->OnStartLoadingResponseBody(std::move(consumer_handle)); | 770 client_ptr->OnStartLoadingResponseBody(std::move(consumer_handle)); |
| 771 | 771 |
| 772 // Call OnComplete now too, as it won't get called on the client. | 772 // Call OnComplete now too, as it won't get called on the client. |
| 773 // TODO(kinuko): Fill this properly. | 773 // TODO(kinuko): Fill this properly. |
| 774 ResourceRequestCompletionStatus completion_status; | 774 ResourceRequestCompletionStatus completion_status; |
| 775 completion_status.error_code = net::OK; | 775 completion_status.error_code = net::OK; |
| 776 completion_status.was_ignored_by_handler = false; | 776 completion_status.was_ignored_by_handler = false; |
| 777 completion_status.exists_in_cache = false; | 777 completion_status.exists_in_cache = false; |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 834 delete message; | 834 delete message; |
| 835 } | 835 } |
| 836 } | 836 } |
| 837 | 837 |
| 838 void ResourceDispatcher::SetResourceSchedulingFilter( | 838 void ResourceDispatcher::SetResourceSchedulingFilter( |
| 839 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { | 839 scoped_refptr<ResourceSchedulingFilter> resource_scheduling_filter) { |
| 840 resource_scheduling_filter_ = resource_scheduling_filter; | 840 resource_scheduling_filter_ = resource_scheduling_filter; |
| 841 } | 841 } |
| 842 | 842 |
| 843 } // namespace content | 843 } // namespace content |
| OLD | NEW |