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 <stdint.h> | 7 #include <stdint.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <memory> | 10 #include <memory> |
(...skipping 24 matching lines...) Expand all Loading... |
35 #include "content/common/resource_request_body_impl.h" | 35 #include "content/common/resource_request_body_impl.h" |
36 #include "content/common/service_worker/service_worker_types.h" | 36 #include "content/common/service_worker/service_worker_types.h" |
37 #include "content/common/ssl_status_serialization.h" | 37 #include "content/common/ssl_status_serialization.h" |
38 #include "content/common/url_loader.mojom.h" | 38 #include "content/common/url_loader.mojom.h" |
39 #include "content/public/child/fixed_received_data.h" | 39 #include "content/public/child/fixed_received_data.h" |
40 #include "content/public/child/request_peer.h" | 40 #include "content/public/child/request_peer.h" |
41 #include "content/public/common/browser_side_navigation_policy.h" | 41 #include "content/public/common/browser_side_navigation_policy.h" |
42 #include "content/public/common/ssl_status.h" | 42 #include "content/public/common/ssl_status.h" |
43 #include "net/base/data_url.h" | 43 #include "net/base/data_url.h" |
44 #include "net/base/filename_util.h" | 44 #include "net/base/filename_util.h" |
| 45 #include "net/base/load_flags.h" |
45 #include "net/base/net_errors.h" | 46 #include "net/base/net_errors.h" |
46 #include "net/cert/cert_status_flags.h" | 47 #include "net/cert/cert_status_flags.h" |
47 #include "net/cert/ct_sct_to_string.h" | 48 #include "net/cert/ct_sct_to_string.h" |
48 #include "net/http/http_response_headers.h" | 49 #include "net/http/http_response_headers.h" |
49 #include "net/http/http_util.h" | 50 #include "net/http/http_util.h" |
50 #include "net/ssl/ssl_cipher_suite_names.h" | 51 #include "net/ssl/ssl_cipher_suite_names.h" |
51 #include "net/ssl/ssl_connection_status_flags.h" | 52 #include "net/ssl/ssl_connection_status_flags.h" |
52 #include "net/url_request/url_request_data_job.h" | 53 #include "net/url_request/url_request_data_job.h" |
53 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" | 54 #include "third_party/WebKit/public/platform/WebHTTPLoadInfo.h" |
54 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" | 55 #include "third_party/WebKit/public/platform/WebSecurityOrigin.h" |
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 ConvertWebKitPriorityToNetPriority(new_priority), | 443 ConvertWebKitPriorityToNetPriority(new_priority), |
443 intra_priority_value); | 444 intra_priority_value); |
444 } | 445 } |
445 } | 446 } |
446 | 447 |
447 void WebURLLoaderImpl::Context::Start(const WebURLRequest& request, | 448 void WebURLLoaderImpl::Context::Start(const WebURLRequest& request, |
448 SyncLoadResponse* sync_load_response) { | 449 SyncLoadResponse* sync_load_response) { |
449 DCHECK(request_id_ == -1); | 450 DCHECK(request_id_ == -1); |
450 request_ = request; // Save the request. | 451 request_ = request; // Save the request. |
451 GURL url = request.url(); | 452 GURL url = request.url(); |
452 | |
453 if (CanHandleDataURLRequestLocally()) { | 453 if (CanHandleDataURLRequestLocally()) { |
454 if (sync_load_response) { | 454 if (sync_load_response) { |
455 // This is a sync load. Do the work now. | 455 // This is a sync load. Do the work now. |
456 sync_load_response->url = url; | 456 sync_load_response->url = url; |
457 sync_load_response->error_code = | 457 sync_load_response->error_code = |
458 GetInfoFromDataURL(sync_load_response->url, sync_load_response, | 458 GetInfoFromDataURL(sync_load_response->url, sync_load_response, |
459 &sync_load_response->data); | 459 &sync_load_response->data); |
460 } else { | 460 } else { |
461 task_runner_->PostTask(FROM_HERE, | 461 task_runner_->PostTask(FROM_HERE, |
462 base::Bind(&Context::HandleDataURL, this)); | 462 base::Bind(&Context::HandleDataURL, this)); |
(...skipping 29 matching lines...) Expand all Loading... |
492 request_info.method = method; | 492 request_info.method = method; |
493 request_info.url = url; | 493 request_info.url = url; |
494 request_info.first_party_for_cookies = request.firstPartyForCookies(); | 494 request_info.first_party_for_cookies = request.firstPartyForCookies(); |
495 request_info.request_initiator = request.requestorOrigin(); | 495 request_info.request_initiator = request.requestorOrigin(); |
496 referrer_policy_ = request.referrerPolicy(); | 496 referrer_policy_ = request.referrerPolicy(); |
497 request_info.referrer = Referrer(referrer_url, referrer_policy_); | 497 request_info.referrer = Referrer(referrer_url, referrer_policy_); |
498 request_info.headers = GetWebURLRequestHeaders(request); | 498 request_info.headers = GetWebURLRequestHeaders(request); |
499 request_info.load_flags = GetLoadFlagsForWebURLRequest(request); | 499 request_info.load_flags = GetLoadFlagsForWebURLRequest(request); |
500 request_info.enable_load_timing = true; | 500 request_info.enable_load_timing = true; |
501 request_info.enable_upload_progress = request.reportUploadProgress(); | 501 request_info.enable_upload_progress = request.reportUploadProgress(); |
| 502 if (request_.linkPreload()) |
| 503 request_info.load_flags |= net::LOAD_PREFETCH; |
| 504 |
502 if (request.getRequestContext() == | 505 if (request.getRequestContext() == |
503 WebURLRequest::RequestContextXMLHttpRequest && | 506 WebURLRequest::RequestContextXMLHttpRequest && |
504 (url.has_username() || url.has_password())) { | 507 (url.has_username() || url.has_password())) { |
505 request_info.do_not_prompt_for_login = true; | 508 request_info.do_not_prompt_for_login = true; |
506 } | 509 } |
507 // requestor_pid only needs to be non-zero if the request originates outside | 510 // requestor_pid only needs to be non-zero if the request originates outside |
508 // the render process, so we can use requestorProcessID even for requests | 511 // the render process, so we can use requestorProcessID even for requests |
509 // from in-process plugins. | 512 // from in-process plugins. |
510 request_info.requestor_pid = request.requestorProcessID(); | 513 request_info.requestor_pid = request.requestorProcessID(); |
511 request_info.request_type = WebURLRequestToResourceType(request); | 514 request_info.request_type = WebURLRequestToResourceType(request); |
(...skipping 701 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1213 response->clearHTTPHeaderField(webStringName); | 1216 response->clearHTTPHeaderField(webStringName); |
1214 while (response_headers->EnumerateHeader(&iterator, name, &value)) { | 1217 while (response_headers->EnumerateHeader(&iterator, name, &value)) { |
1215 response->addHTTPHeaderField(webStringName, | 1218 response->addHTTPHeaderField(webStringName, |
1216 WebString::fromLatin1(value)); | 1219 WebString::fromLatin1(value)); |
1217 } | 1220 } |
1218 } | 1221 } |
1219 return true; | 1222 return true; |
1220 } | 1223 } |
1221 | 1224 |
1222 } // namespace content | 1225 } // namespace content |
OLD | NEW |