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

Side by Side Diff: content/browser/loader/resource_loader.cc

Issue 2334623003: Store net::ProxyServer in HttpResponseInfo object (Closed)
Patch Set: PS Created 4 years, 3 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 (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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698