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

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

Issue 1366883002: [Reland] Post loading tasks on the appropriate WebFrameScheduler's queue (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 2 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "content/child/web_url_loader_impl.h" 5 #include "content/child/web_url_loader_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/files/file_path.h" 12 #include "base/files/file_path.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
16 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
17 #include "base/time/time.h" 17 #include "base/time/time.h"
18 #include "components/mime_util/mime_util.h" 18 #include "components/mime_util/mime_util.h"
19 #include "components/scheduler/child/web_task_runner_impl.h"
19 #include "content/child/child_thread_impl.h" 20 #include "content/child/child_thread_impl.h"
20 #include "content/child/ftp_directory_listing_response_delegate.h" 21 #include "content/child/ftp_directory_listing_response_delegate.h"
21 #include "content/child/multipart_response_delegate.h" 22 #include "content/child/multipart_response_delegate.h"
22 #include "content/child/request_extra_data.h" 23 #include "content/child/request_extra_data.h"
23 #include "content/child/request_info.h" 24 #include "content/child/request_info.h"
24 #include "content/child/resource_dispatcher.h" 25 #include "content/child/resource_dispatcher.h"
25 #include "content/child/shared_memory_data_consumer_handle.h" 26 #include "content/child/shared_memory_data_consumer_handle.h"
26 #include "content/child/sync_load_response.h" 27 #include "content/child/sync_load_response.h"
27 #include "content/child/web_url_request_util.h" 28 #include "content/child/web_url_request_util.h"
28 #include "content/child/weburlresponse_extradata_impl.h" 29 #include "content/child/weburlresponse_extradata_impl.h"
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 void set_client(WebURLLoaderClient* client) { client_ = client; } 261 void set_client(WebURLLoaderClient* client) { client_ = client; }
261 262
262 void Cancel(); 263 void Cancel();
263 void SetDefersLoading(bool value); 264 void SetDefersLoading(bool value);
264 void DidChangePriority(WebURLRequest::Priority new_priority, 265 void DidChangePriority(WebURLRequest::Priority new_priority,
265 int intra_priority_value); 266 int intra_priority_value);
266 bool AttachThreadedDataReceiver( 267 bool AttachThreadedDataReceiver(
267 blink::WebThreadedDataReceiver* threaded_data_receiver); 268 blink::WebThreadedDataReceiver* threaded_data_receiver);
268 void Start(const WebURLRequest& request, 269 void Start(const WebURLRequest& request,
269 SyncLoadResponse* sync_load_response); 270 SyncLoadResponse* sync_load_response);
271 void SetTaskRunner(scoped_refptr<base::SingleThreadTaskRunner> task_runner);
270 272
271 // RequestPeer methods: 273 // RequestPeer methods:
272 void OnUploadProgress(uint64 position, uint64 size) override; 274 void OnUploadProgress(uint64 position, uint64 size) override;
273 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, 275 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info,
274 const ResourceResponseInfo& info) override; 276 const ResourceResponseInfo& info) override;
275 void OnReceivedResponse(const ResourceResponseInfo& info) override; 277 void OnReceivedResponse(const ResourceResponseInfo& info) override;
276 void OnDownloadedData(int len, int encoded_data_length) override; 278 void OnDownloadedData(int len, int encoded_data_length) override;
277 void OnReceivedData(scoped_ptr<ReceivedData> data) override; 279 void OnReceivedData(scoped_ptr<ReceivedData> data) override;
278 void OnReceivedCachedMetadata(const char* data, int len) override; 280 void OnReceivedCachedMetadata(const char* data, int len) override;
279 void OnCompletedRequest(int error_code, 281 void OnCompletedRequest(int error_code,
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 request_info.fetch_credentials_mode = 477 request_info.fetch_credentials_mode =
476 GetFetchCredentialsModeForWebURLRequest(request); 478 GetFetchCredentialsModeForWebURLRequest(request);
477 request_info.fetch_redirect_mode = 479 request_info.fetch_redirect_mode =
478 GetFetchRedirectModeForWebURLRequest(request); 480 GetFetchRedirectModeForWebURLRequest(request);
479 request_info.fetch_request_context_type = 481 request_info.fetch_request_context_type =
480 GetRequestContextTypeForWebURLRequest(request); 482 GetRequestContextTypeForWebURLRequest(request);
481 request_info.fetch_frame_type = 483 request_info.fetch_frame_type =
482 GetRequestContextFrameTypeForWebURLRequest(request); 484 GetRequestContextFrameTypeForWebURLRequest(request);
483 request_info.extra_data = request.extraData(); 485 request_info.extra_data = request.extraData();
484 request_info.report_raw_headers = request.reportRawHeaders(); 486 request_info.report_raw_headers = request.reportRawHeaders();
487 request_info.loading_task_queue = task_runner_;
485 488
486 scoped_refptr<ResourceRequestBody> request_body = 489 scoped_refptr<ResourceRequestBody> request_body =
487 GetRequestBodyForWebURLRequest(request).get(); 490 GetRequestBodyForWebURLRequest(request).get();
488 491
489 if (sync_load_response) { 492 if (sync_load_response) {
490 resource_dispatcher_->StartSync( 493 resource_dispatcher_->StartSync(
491 request_info, request_body.get(), sync_load_response); 494 request_info, request_body.get(), sync_load_response);
492 return; 495 return;
493 } 496 }
494 497
495 request_id_ = resource_dispatcher_->StartAsync( 498 request_id_ = resource_dispatcher_->StartAsync(
496 request_info, request_body.get(), this); 499 request_info, request_body.get(), this);
497 } 500 }
498 501
502 void WebURLLoaderImpl::Context::SetTaskRunner(
503 scoped_refptr<base::SingleThreadTaskRunner> task_runner) {
504 task_runner_ = task_runner;
505 }
506
499 void WebURLLoaderImpl::Context::OnUploadProgress(uint64 position, uint64 size) { 507 void WebURLLoaderImpl::Context::OnUploadProgress(uint64 position, uint64 size) {
500 if (client_) 508 if (client_)
501 client_->didSendData(loader_, position, size); 509 client_->didSendData(loader_, position, size);
502 } 510 }
503 511
504 bool WebURLLoaderImpl::Context::OnReceivedRedirect( 512 bool WebURLLoaderImpl::Context::OnReceivedRedirect(
505 const net::RedirectInfo& redirect_info, 513 const net::RedirectInfo& redirect_info,
506 const ResourceResponseInfo& info) { 514 const ResourceResponseInfo& info) {
507 if (!client_) 515 if (!client_)
508 return false; 516 return false;
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority, 1060 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority,
1053 int intra_priority_value) { 1061 int intra_priority_value) {
1054 context_->DidChangePriority(new_priority, intra_priority_value); 1062 context_->DidChangePriority(new_priority, intra_priority_value);
1055 } 1063 }
1056 1064
1057 bool WebURLLoaderImpl::attachThreadedDataReceiver( 1065 bool WebURLLoaderImpl::attachThreadedDataReceiver(
1058 blink::WebThreadedDataReceiver* threaded_data_receiver) { 1066 blink::WebThreadedDataReceiver* threaded_data_receiver) {
1059 return context_->AttachThreadedDataReceiver(threaded_data_receiver); 1067 return context_->AttachThreadedDataReceiver(threaded_data_receiver);
1060 } 1068 }
1061 1069
1070 void WebURLLoaderImpl::setLoadingTaskRunner(
1071 blink::WebTaskRunner* loading_task_runner) {
1072 scheduler::WebTaskRunnerImpl* web_task_runner_impl =
Sami 2015/09/25 13:31:27 Is this downcast safe? I think anyone could call t
1073 static_cast<scheduler::WebTaskRunnerImpl*>(loading_task_runner);
1074 context_->SetTaskRunner(web_task_runner_impl->task_runner());
1075 }
1076
1062 } // namespace content 1077 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698