| 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 #include "content/browser/loader/resource_loader.h" | 5 #include "content/browser/loader/resource_loader.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/location.h" | 10 #include "base/location.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "content/browser/service_worker/service_worker_response_info.h" | 24 #include "content/browser/service_worker/service_worker_response_info.h" |
| 25 #include "content/browser/ssl/ssl_client_auth_handler.h" | 25 #include "content/browser/ssl/ssl_client_auth_handler.h" |
| 26 #include "content/browser/ssl/ssl_manager.h" | 26 #include "content/browser/ssl/ssl_manager.h" |
| 27 #include "content/browser/ssl/ssl_policy.h" | 27 #include "content/browser/ssl/ssl_policy.h" |
| 28 #include "content/public/browser/resource_dispatcher_host_login_delegate.h" | 28 #include "content/public/browser/resource_dispatcher_host_login_delegate.h" |
| 29 #include "content/public/common/content_client.h" | 29 #include "content/public/common/content_client.h" |
| 30 #include "content/public/common/content_switches.h" | 30 #include "content/public/common/content_switches.h" |
| 31 #include "content/public/common/process_type.h" | 31 #include "content/public/common/process_type.h" |
| 32 #include "content/public/common/resource_response.h" | 32 #include "content/public/common/resource_response.h" |
| 33 #include "content/public/common/resource_type.h" | 33 #include "content/public/common/resource_type.h" |
| 34 #include "net/base/host_port_pair.h" |
| 34 #include "net/base/io_buffer.h" | 35 #include "net/base/io_buffer.h" |
| 35 #include "net/base/load_flags.h" | 36 #include "net/base/load_flags.h" |
| 36 #include "net/http/http_response_headers.h" | 37 #include "net/http/http_response_headers.h" |
| 37 #include "net/nqe/effective_connection_type.h" | 38 #include "net/nqe/effective_connection_type.h" |
| 38 #include "net/nqe/network_quality_estimator.h" | 39 #include "net/nqe/network_quality_estimator.h" |
| 40 #include "net/proxy/proxy_server.h" |
| 39 #include "net/ssl/client_cert_store.h" | 41 #include "net/ssl/client_cert_store.h" |
| 40 #include "net/ssl/ssl_platform_key.h" | 42 #include "net/ssl/ssl_platform_key.h" |
| 41 #include "net/ssl/ssl_private_key.h" | 43 #include "net/ssl/ssl_private_key.h" |
| 42 #include "net/url_request/redirect_info.h" | 44 #include "net/url_request/redirect_info.h" |
| 43 #include "net/url_request/url_request_context.h" | 45 #include "net/url_request/url_request_context.h" |
| 44 #include "net/url_request/url_request_status.h" | 46 #include "net/url_request/url_request_status.h" |
| 45 | 47 |
| 46 using base::TimeDelta; | 48 using base::TimeDelta; |
| 47 using base::TimeTicks; | 49 using base::TimeTicks; |
| 48 | 50 |
| 49 namespace content { | 51 namespace content { |
| 50 namespace { | 52 namespace { |
| 51 | 53 |
| 52 void PopulateResourceResponse(ResourceRequestInfoImpl* info, | 54 void PopulateResourceResponse(ResourceRequestInfoImpl* info, |
| 53 net::URLRequest* request, | 55 net::URLRequest* request, |
| 54 ResourceResponse* response) { | 56 ResourceResponse* response) { |
| 55 response->head.request_time = request->request_time(); | 57 response->head.request_time = request->request_time(); |
| 56 response->head.response_time = request->response_time(); | 58 response->head.response_time = request->response_time(); |
| 57 response->head.headers = request->response_headers(); | 59 response->head.headers = request->response_headers(); |
| 58 request->GetCharset(&response->head.charset); | 60 request->GetCharset(&response->head.charset); |
| 59 response->head.content_length = request->GetExpectedContentSize(); | 61 response->head.content_length = request->GetExpectedContentSize(); |
| 60 request->GetMimeType(&response->head.mime_type); | 62 request->GetMimeType(&response->head.mime_type); |
| 61 net::HttpResponseInfo response_info = request->response_info(); | 63 net::HttpResponseInfo response_info = request->response_info(); |
| 62 response->head.was_fetched_via_spdy = response_info.was_fetched_via_spdy; | 64 response->head.was_fetched_via_spdy = response_info.was_fetched_via_spdy; |
| 63 response->head.was_npn_negotiated = response_info.was_npn_negotiated; | 65 response->head.was_npn_negotiated = response_info.was_npn_negotiated; |
| 64 response->head.npn_negotiated_protocol = | 66 response->head.npn_negotiated_protocol = |
| 65 response_info.npn_negotiated_protocol; | 67 response_info.npn_negotiated_protocol; |
| 66 response->head.connection_info = response_info.connection_info; | 68 response->head.connection_info = response_info.connection_info; |
| 67 response->head.was_fetched_via_proxy = request->was_fetched_via_proxy(); | 69 response->head.was_fetched_via_proxy = request->was_fetched_via_proxy(); |
| 68 response->head.proxy_server = response_info.proxy_server; | 70 response->head.proxy_server = |
| 71 !response_info.proxy_server.is_valid() || |
| 72 response_info.proxy_server.is_direct() |
| 73 ? net::HostPortPair() |
| 74 : response_info.proxy_server.host_port_pair(); |
| 69 response->head.socket_address = response_info.socket_address; | 75 response->head.socket_address = response_info.socket_address; |
| 70 const content::ResourceRequestInfo* request_info = | 76 const content::ResourceRequestInfo* request_info = |
| 71 content::ResourceRequestInfo::ForRequest(request); | 77 content::ResourceRequestInfo::ForRequest(request); |
| 72 if (request_info) | 78 if (request_info) |
| 73 response->head.is_using_lofi = request_info->IsUsingLoFi(); | 79 response->head.is_using_lofi = request_info->IsUsingLoFi(); |
| 74 | 80 |
| 75 response->head.effective_connection_type = | 81 response->head.effective_connection_type = |
| 76 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN; | 82 net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN; |
| 77 | 83 |
| 78 if (info->GetResourceType() == RESOURCE_TYPE_MAIN_FRAME) { | 84 if (info->GetResourceType() == RESOURCE_TYPE_MAIN_FRAME) { |
| (...skipping 638 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 717 } | 723 } |
| 718 | 724 |
| 719 UMA_HISTOGRAM_ENUMERATION("Net.Prefetch.Pattern", status, STATUS_MAX); | 725 UMA_HISTOGRAM_ENUMERATION("Net.Prefetch.Pattern", status, STATUS_MAX); |
| 720 } else if (request_->response_info().unused_since_prefetch) { | 726 } else if (request_->response_info().unused_since_prefetch) { |
| 721 TimeDelta total_time = base::TimeTicks::Now() - request_->creation_time(); | 727 TimeDelta total_time = base::TimeTicks::Now() - request_->creation_time(); |
| 722 UMA_HISTOGRAM_TIMES("Net.Prefetch.TimeSpentOnPrefetchHit", total_time); | 728 UMA_HISTOGRAM_TIMES("Net.Prefetch.TimeSpentOnPrefetchHit", total_time); |
| 723 } | 729 } |
| 724 } | 730 } |
| 725 | 731 |
| 726 } // namespace content | 732 } // namespace content |
| OLD | NEW |