OLD | NEW |
---|---|
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" |
29 #include "content/common/resource_messages.h" | 30 #include "content/common/resource_messages.h" |
30 #include "content/common/resource_request_body.h" | 31 #include "content/common/resource_request_body.h" |
31 #include "content/common/service_worker/service_worker_types.h" | 32 #include "content/common/service_worker/service_worker_types.h" |
32 #include "content/common/ssl_status_serialization.h" | 33 #include "content/common/ssl_status_serialization.h" |
33 #include "content/public/child/fixed_received_data.h" | 34 #include "content/public/child/fixed_received_data.h" |
34 #include "content/public/child/request_peer.h" | 35 #include "content/public/child/request_peer.h" |
35 #include "content/public/common/content_switches.h" | 36 #include "content/public/common/content_switches.h" |
36 #include "net/base/data_url.h" | 37 #include "net/base/data_url.h" |
37 #include "net/base/filename_util.h" | 38 #include "net/base/filename_util.h" |
38 #include "net/base/net_errors.h" | 39 #include "net/base/net_errors.h" |
39 #include "net/http/http_response_headers.h" | 40 #include "net/http/http_response_headers.h" |
40 #include "net/http/http_util.h" | 41 #include "net/http/http_util.h" |
41 #include "net/ssl/ssl_cipher_suite_names.h" | 42 #include "net/ssl/ssl_cipher_suite_names.h" |
42 #include "net/ssl/ssl_connection_status_flags.h" | 43 #include "net/ssl/ssl_connection_status_flags.h" |
43 #include "net/url_request/url_request_data_job.h" | 44 #include "net/url_request/url_request_data_job.h" |
44 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" | 45 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" |
46 #include "third_party/WebKit/public/platform/WebTraceLocation.h" | |
45 #include "third_party/WebKit/public/platform/WebURL.h" | 47 #include "third_party/WebKit/public/platform/WebURL.h" |
46 #include "third_party/WebKit/public/platform/WebURLError.h" | 48 #include "third_party/WebKit/public/platform/WebURLError.h" |
47 #include "third_party/WebKit/public/platform/WebURLLoadTiming.h" | 49 #include "third_party/WebKit/public/platform/WebURLLoadTiming.h" |
48 #include "third_party/WebKit/public/platform/WebURLLoaderClient.h" | 50 #include "third_party/WebKit/public/platform/WebURLLoaderClient.h" |
49 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 51 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
50 #include "third_party/WebKit/public/platform/WebURLResponse.h" | 52 #include "third_party/WebKit/public/platform/WebURLResponse.h" |
51 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" | 53 #include "third_party/WebKit/public/web/WebSecurityPolicy.h" |
52 | 54 |
53 using base::Time; | 55 using base::Time; |
54 using base::TimeTicks; | 56 using base::TimeTicks; |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
247 // WebURLLoaderImpl::Context -------------------------------------------------- | 249 // WebURLLoaderImpl::Context -------------------------------------------------- |
248 | 250 |
249 // This inner class exists since the WebURLLoader may be deleted while inside a | 251 // This inner class exists since the WebURLLoader may be deleted while inside a |
250 // call to WebURLLoaderClient. Refcounting is to keep the context from being | 252 // call to WebURLLoaderClient. Refcounting is to keep the context from being |
251 // deleted if it may have work to do after calling into the client. | 253 // deleted if it may have work to do after calling into the client. |
252 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, | 254 class WebURLLoaderImpl::Context : public base::RefCounted<Context>, |
253 public RequestPeer { | 255 public RequestPeer { |
254 public: | 256 public: |
255 Context(WebURLLoaderImpl* loader, | 257 Context(WebURLLoaderImpl* loader, |
256 ResourceDispatcher* resource_dispatcher, | 258 ResourceDispatcher* resource_dispatcher, |
257 scoped_refptr<base::SingleThreadTaskRunner> task_runner); | 259 blink::WebTaskRunner* task_runner); |
Sami
2015/09/29 11:22:46
scoped_ptr here too?
alex clarke (OOO till 29th)
2015/09/29 16:10:36
Done.
| |
258 | 260 |
259 WebURLLoaderClient* client() const { return client_; } | 261 WebURLLoaderClient* client() const { return client_; } |
260 void set_client(WebURLLoaderClient* client) { client_ = client; } | 262 void set_client(WebURLLoaderClient* client) { client_ = client; } |
261 | 263 |
262 void Cancel(); | 264 void Cancel(); |
263 void SetDefersLoading(bool value); | 265 void SetDefersLoading(bool value); |
264 void DidChangePriority(WebURLRequest::Priority new_priority, | 266 void DidChangePriority(WebURLRequest::Priority new_priority, |
265 int intra_priority_value); | 267 int intra_priority_value); |
266 bool AttachThreadedDataReceiver( | 268 bool AttachThreadedDataReceiver( |
267 blink::WebThreadedDataReceiver* threaded_data_receiver); | 269 blink::WebThreadedDataReceiver* threaded_data_receiver); |
268 void Start(const WebURLRequest& request, | 270 void Start(const WebURLRequest& request, |
269 SyncLoadResponse* sync_load_response); | 271 SyncLoadResponse* sync_load_response); |
272 // Takes owbership of |task_runner|. | |
273 void SetWebTaskRunner(blink::WebTaskRunner* task_runner); | |
Sami
2015/09/29 11:22:46
Could this be a scoped_ptr? This would mean the ca
alex clarke (OOO till 29th)
2015/09/29 16:10:36
Done, but It already did call clone.
| |
270 | 274 |
271 // RequestPeer methods: | 275 // RequestPeer methods: |
272 void OnUploadProgress(uint64 position, uint64 size) override; | 276 void OnUploadProgress(uint64 position, uint64 size) override; |
273 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, | 277 bool OnReceivedRedirect(const net::RedirectInfo& redirect_info, |
274 const ResourceResponseInfo& info) override; | 278 const ResourceResponseInfo& info) override; |
275 void OnReceivedResponse(const ResourceResponseInfo& info) override; | 279 void OnReceivedResponse(const ResourceResponseInfo& info) override; |
276 void OnDownloadedData(int len, int encoded_data_length) override; | 280 void OnDownloadedData(int len, int encoded_data_length) override; |
277 void OnReceivedData(scoped_ptr<ReceivedData> data) override; | 281 void OnReceivedData(scoped_ptr<ReceivedData> data) override; |
278 void OnReceivedCachedMetadata(const char* data, int len) override; | 282 void OnReceivedCachedMetadata(const char* data, int len) override; |
279 void OnCompletedRequest(int error_code, | 283 void OnCompletedRequest(int error_code, |
280 bool was_ignored_by_handler, | 284 bool was_ignored_by_handler, |
281 bool stale_copy_in_cache, | 285 bool stale_copy_in_cache, |
282 const std::string& security_info, | 286 const std::string& security_info, |
283 const base::TimeTicks& completion_time, | 287 const base::TimeTicks& completion_time, |
284 int64 total_transfer_size) override; | 288 int64 total_transfer_size) override; |
285 void OnReceivedCompletedResponse(const ResourceResponseInfo& info, | 289 void OnReceivedCompletedResponse(const ResourceResponseInfo& info, |
286 scoped_ptr<ReceivedData> data, | 290 scoped_ptr<ReceivedData> data, |
287 int error_code, | 291 int error_code, |
288 bool was_ignored_by_handler, | 292 bool was_ignored_by_handler, |
289 bool stale_copy_in_cache, | 293 bool stale_copy_in_cache, |
290 const std::string& security_info, | 294 const std::string& security_info, |
291 const base::TimeTicks& completion_time, | 295 const base::TimeTicks& completion_time, |
292 int64 total_transfer_size) override; | 296 int64 total_transfer_size) override; |
293 | 297 |
294 private: | 298 private: |
295 friend class base::RefCounted<Context>; | 299 friend class base::RefCounted<Context>; |
296 ~Context() override; | 300 ~Context() override; |
297 | 301 |
302 class HandleDataURLTask : public blink::WebTaskRunner::Task { | |
303 public: | |
304 explicit HandleDataURLTask(Context* context) : context_(context) {} | |
305 | |
306 void run() override { | |
307 context_->HandleDataURL(); | |
308 } | |
309 | |
310 private: | |
311 scoped_refptr<Context> context_; | |
312 }; | |
313 | |
298 // Called when the body data stream is detached from the reader side. | 314 // Called when the body data stream is detached from the reader side. |
299 void CancelBodyStreaming(); | 315 void CancelBodyStreaming(); |
300 // We can optimize the handling of data URLs in most cases. | 316 // We can optimize the handling of data URLs in most cases. |
301 bool CanHandleDataURLRequestLocally() const; | 317 bool CanHandleDataURLRequestLocally() const; |
302 void HandleDataURL(); | 318 void HandleDataURL(); |
303 | 319 |
304 WebURLLoaderImpl* loader_; | 320 WebURLLoaderImpl* loader_; |
305 WebURLRequest request_; | 321 WebURLRequest request_; |
306 WebURLLoaderClient* client_; | 322 WebURLLoaderClient* client_; |
307 ResourceDispatcher* resource_dispatcher_; | 323 ResourceDispatcher* resource_dispatcher_; |
308 scoped_refptr<base::SingleThreadTaskRunner> task_runner_; | 324 scoped_ptr<blink::WebTaskRunner> web_task_runner_; |
309 WebReferrerPolicy referrer_policy_; | 325 WebReferrerPolicy referrer_policy_; |
310 scoped_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_; | 326 scoped_ptr<FtpDirectoryListingResponseDelegate> ftp_listing_delegate_; |
311 scoped_ptr<MultipartResponseDelegate> multipart_delegate_; | 327 scoped_ptr<MultipartResponseDelegate> multipart_delegate_; |
312 scoped_ptr<StreamOverrideParameters> stream_override_; | 328 scoped_ptr<StreamOverrideParameters> stream_override_; |
313 scoped_ptr<SharedMemoryDataConsumerHandle::Writer> body_stream_writer_; | 329 scoped_ptr<SharedMemoryDataConsumerHandle::Writer> body_stream_writer_; |
314 enum DeferState {NOT_DEFERRING, SHOULD_DEFER, DEFERRED_DATA}; | 330 enum DeferState {NOT_DEFERRING, SHOULD_DEFER, DEFERRED_DATA}; |
315 DeferState defers_loading_; | 331 DeferState defers_loading_; |
316 int request_id_; | 332 int request_id_; |
317 }; | 333 }; |
318 | 334 |
319 WebURLLoaderImpl::Context::Context( | 335 WebURLLoaderImpl::Context::Context( |
320 WebURLLoaderImpl* loader, | 336 WebURLLoaderImpl* loader, |
321 ResourceDispatcher* resource_dispatcher, | 337 ResourceDispatcher* resource_dispatcher, |
322 scoped_refptr<base::SingleThreadTaskRunner> task_runner) | 338 blink::WebTaskRunner* web_task_runner) |
323 : loader_(loader), | 339 : loader_(loader), |
324 client_(NULL), | 340 client_(NULL), |
325 resource_dispatcher_(resource_dispatcher), | 341 resource_dispatcher_(resource_dispatcher), |
326 task_runner_(task_runner), | 342 web_task_runner_(web_task_runner), |
327 referrer_policy_(blink::WebReferrerPolicyDefault), | 343 referrer_policy_(blink::WebReferrerPolicyDefault), |
328 defers_loading_(NOT_DEFERRING), | 344 defers_loading_(NOT_DEFERRING), |
329 request_id_(-1) { | 345 request_id_(-1) { |
330 } | 346 } |
331 | 347 |
332 void WebURLLoaderImpl::Context::Cancel() { | 348 void WebURLLoaderImpl::Context::Cancel() { |
333 if (resource_dispatcher_ && // NULL in unittest. | 349 if (resource_dispatcher_ && // NULL in unittest. |
334 request_id_ != -1) { | 350 request_id_ != -1) { |
335 resource_dispatcher_->Cancel(request_id_); | 351 resource_dispatcher_->Cancel(request_id_); |
336 request_id_ = -1; | 352 request_id_ = -1; |
(...skipping 15 matching lines...) Expand all Loading... | |
352 loader_ = NULL; | 368 loader_ = NULL; |
353 } | 369 } |
354 | 370 |
355 void WebURLLoaderImpl::Context::SetDefersLoading(bool value) { | 371 void WebURLLoaderImpl::Context::SetDefersLoading(bool value) { |
356 if (request_id_ != -1) | 372 if (request_id_ != -1) |
357 resource_dispatcher_->SetDefersLoading(request_id_, value); | 373 resource_dispatcher_->SetDefersLoading(request_id_, value); |
358 if (value && defers_loading_ == NOT_DEFERRING) { | 374 if (value && defers_loading_ == NOT_DEFERRING) { |
359 defers_loading_ = SHOULD_DEFER; | 375 defers_loading_ = SHOULD_DEFER; |
360 } else if (!value && defers_loading_ != NOT_DEFERRING) { | 376 } else if (!value && defers_loading_ != NOT_DEFERRING) { |
361 if (defers_loading_ == DEFERRED_DATA) { | 377 if (defers_loading_ == DEFERRED_DATA) { |
362 task_runner_->PostTask(FROM_HERE, | 378 web_task_runner_->postTask( |
363 base::Bind(&Context::HandleDataURL, this)); | 379 ::blink::WebTraceLocation(__FUNCTION__, __FILE__), |
Sami
2015/09/29 11:22:46
Ditto about FROM_HERE
alex clarke (OOO till 29th)
2015/09/29 16:10:36
Done.
| |
380 new HandleDataURLTask(this)); | |
364 } | 381 } |
365 defers_loading_ = NOT_DEFERRING; | 382 defers_loading_ = NOT_DEFERRING; |
366 } | 383 } |
367 } | 384 } |
368 | 385 |
369 void WebURLLoaderImpl::Context::DidChangePriority( | 386 void WebURLLoaderImpl::Context::DidChangePriority( |
370 WebURLRequest::Priority new_priority, int intra_priority_value) { | 387 WebURLRequest::Priority new_priority, int intra_priority_value) { |
371 if (request_id_ != -1) { | 388 if (request_id_ != -1) { |
372 resource_dispatcher_->DidChangePriority( | 389 resource_dispatcher_->DidChangePriority( |
373 request_id_, | 390 request_id_, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
411 } | 428 } |
412 | 429 |
413 if (CanHandleDataURLRequestLocally()) { | 430 if (CanHandleDataURLRequestLocally()) { |
414 if (sync_load_response) { | 431 if (sync_load_response) { |
415 // This is a sync load. Do the work now. | 432 // This is a sync load. Do the work now. |
416 sync_load_response->url = url; | 433 sync_load_response->url = url; |
417 sync_load_response->error_code = | 434 sync_load_response->error_code = |
418 GetInfoFromDataURL(sync_load_response->url, sync_load_response, | 435 GetInfoFromDataURL(sync_load_response->url, sync_load_response, |
419 &sync_load_response->data); | 436 &sync_load_response->data); |
420 } else { | 437 } else { |
421 task_runner_->PostTask(FROM_HERE, | 438 web_task_runner_->postTask( |
422 base::Bind(&Context::HandleDataURL, this)); | 439 ::blink::WebTraceLocation(__FUNCTION__, __FILE__), |
Sami
2015/09/29 11:22:47
Ditto.
alex clarke (OOO till 29th)
2015/09/29 16:10:36
Done.
| |
440 new HandleDataURLTask(this)); | |
423 } | 441 } |
424 return; | 442 return; |
425 } | 443 } |
426 | 444 |
427 // PlzNavigate: outside of tests, the only navigation requests going through | 445 // PlzNavigate: outside of tests, the only navigation requests going through |
428 // the WebURLLoader are the ones created by CommitNavigation. Several browser | 446 // the WebURLLoader are the ones created by CommitNavigation. Several browser |
429 // tests load HTML directly through a data url which will be handled by the | 447 // tests load HTML directly through a data url which will be handled by the |
430 // block above. | 448 // block above. |
431 DCHECK_IMPLIES(base::CommandLine::ForCurrentProcess()->HasSwitch( | 449 DCHECK_IMPLIES(base::CommandLine::ForCurrentProcess()->HasSwitch( |
432 switches::kEnableBrowserSideNavigation), | 450 switches::kEnableBrowserSideNavigation), |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
475 request_info.fetch_credentials_mode = | 493 request_info.fetch_credentials_mode = |
476 GetFetchCredentialsModeForWebURLRequest(request); | 494 GetFetchCredentialsModeForWebURLRequest(request); |
477 request_info.fetch_redirect_mode = | 495 request_info.fetch_redirect_mode = |
478 GetFetchRedirectModeForWebURLRequest(request); | 496 GetFetchRedirectModeForWebURLRequest(request); |
479 request_info.fetch_request_context_type = | 497 request_info.fetch_request_context_type = |
480 GetRequestContextTypeForWebURLRequest(request); | 498 GetRequestContextTypeForWebURLRequest(request); |
481 request_info.fetch_frame_type = | 499 request_info.fetch_frame_type = |
482 GetRequestContextFrameTypeForWebURLRequest(request); | 500 GetRequestContextFrameTypeForWebURLRequest(request); |
483 request_info.extra_data = request.extraData(); | 501 request_info.extra_data = request.extraData(); |
484 request_info.report_raw_headers = request.reportRawHeaders(); | 502 request_info.report_raw_headers = request.reportRawHeaders(); |
503 request_info.loading_web_task_runner = web_task_runner_.get(); | |
Sami
2015/09/29 11:22:46
nit: s/get/Pass/
alex clarke (OOO till 29th)
2015/09/29 16:10:36
Needs to be a clone().
| |
485 | 504 |
486 scoped_refptr<ResourceRequestBody> request_body = | 505 scoped_refptr<ResourceRequestBody> request_body = |
487 GetRequestBodyForWebURLRequest(request).get(); | 506 GetRequestBodyForWebURLRequest(request).get(); |
488 | 507 |
489 if (sync_load_response) { | 508 if (sync_load_response) { |
490 resource_dispatcher_->StartSync( | 509 resource_dispatcher_->StartSync( |
491 request_info, request_body.get(), sync_load_response); | 510 request_info, request_body.get(), sync_load_response); |
492 return; | 511 return; |
493 } | 512 } |
494 | 513 |
495 request_id_ = resource_dispatcher_->StartAsync( | 514 request_id_ = resource_dispatcher_->StartAsync( |
496 request_info, request_body.get(), this); | 515 request_info, request_body.get(), this); |
497 } | 516 } |
498 | 517 |
518 void WebURLLoaderImpl::Context::SetWebTaskRunner( | |
519 blink::WebTaskRunner* web_task_runner) { | |
520 web_task_runner_.reset(web_task_runner); | |
521 } | |
522 | |
499 void WebURLLoaderImpl::Context::OnUploadProgress(uint64 position, uint64 size) { | 523 void WebURLLoaderImpl::Context::OnUploadProgress(uint64 position, uint64 size) { |
500 if (client_) | 524 if (client_) |
501 client_->didSendData(loader_, position, size); | 525 client_->didSendData(loader_, position, size); |
502 } | 526 } |
503 | 527 |
504 bool WebURLLoaderImpl::Context::OnReceivedRedirect( | 528 bool WebURLLoaderImpl::Context::OnReceivedRedirect( |
505 const net::RedirectInfo& redirect_info, | 529 const net::RedirectInfo& redirect_info, |
506 const ResourceResponseInfo& info) { | 530 const ResourceResponseInfo& info) { |
507 if (!client_) | 531 if (!client_) |
508 return false; | 532 return false; |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
834 } | 858 } |
835 | 859 |
836 OnCompletedRequest(error_code, false, false, info.security_info, | 860 OnCompletedRequest(error_code, false, false, info.security_info, |
837 base::TimeTicks::Now(), 0); | 861 base::TimeTicks::Now(), 0); |
838 } | 862 } |
839 | 863 |
840 // WebURLLoaderImpl ----------------------------------------------------------- | 864 // WebURLLoaderImpl ----------------------------------------------------------- |
841 | 865 |
842 WebURLLoaderImpl::WebURLLoaderImpl( | 866 WebURLLoaderImpl::WebURLLoaderImpl( |
843 ResourceDispatcher* resource_dispatcher, | 867 ResourceDispatcher* resource_dispatcher, |
844 scoped_refptr<base::SingleThreadTaskRunner> task_runner) | 868 blink::WebTaskRunner* web_task_runner) |
845 : context_(new Context(this, resource_dispatcher, task_runner)) { | 869 : context_(new Context(this, resource_dispatcher, web_task_runner)) { |
846 } | 870 } |
847 | 871 |
848 WebURLLoaderImpl::~WebURLLoaderImpl() { | 872 WebURLLoaderImpl::~WebURLLoaderImpl() { |
849 cancel(); | 873 cancel(); |
850 } | 874 } |
851 | 875 |
852 void WebURLLoaderImpl::PopulateURLResponse(const GURL& url, | 876 void WebURLLoaderImpl::PopulateURLResponse(const GURL& url, |
853 const ResourceResponseInfo& info, | 877 const ResourceResponseInfo& info, |
854 WebURLResponse* response, | 878 WebURLResponse* response, |
855 bool report_security_info) { | 879 bool report_security_info) { |
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1052 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority, | 1076 void WebURLLoaderImpl::didChangePriority(WebURLRequest::Priority new_priority, |
1053 int intra_priority_value) { | 1077 int intra_priority_value) { |
1054 context_->DidChangePriority(new_priority, intra_priority_value); | 1078 context_->DidChangePriority(new_priority, intra_priority_value); |
1055 } | 1079 } |
1056 | 1080 |
1057 bool WebURLLoaderImpl::attachThreadedDataReceiver( | 1081 bool WebURLLoaderImpl::attachThreadedDataReceiver( |
1058 blink::WebThreadedDataReceiver* threaded_data_receiver) { | 1082 blink::WebThreadedDataReceiver* threaded_data_receiver) { |
1059 return context_->AttachThreadedDataReceiver(threaded_data_receiver); | 1083 return context_->AttachThreadedDataReceiver(threaded_data_receiver); |
1060 } | 1084 } |
1061 | 1085 |
1086 void WebURLLoaderImpl::setLoadingTaskRunner( | |
1087 blink::WebTaskRunner* loading_task_runner) { | |
1088 // There's no guarantee on the lifetime of |loading_task_runner| so we take a | |
1089 // copy. | |
1090 context_->SetWebTaskRunner(loading_task_runner->clone()); | |
1091 } | |
1092 | |
1062 } // namespace content | 1093 } // namespace content |
OLD | NEW |