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

Side by Side Diff: net/http/http_stream_factory_impl_job.cc

Issue 10534129: NetLogEventParameter to Callback refactoring 5. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Add back original URLs Created 8 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « net/http/http_proxy_client_socket.cc ('k') | net/http/http_stream_factory_impl_request.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "net/http/http_stream_factory_impl_job.h" 5 #include "net/http/http_stream_factory_impl_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 22 matching lines...) Expand all
33 #include "net/socket/client_socket_pool_manager.h" 33 #include "net/socket/client_socket_pool_manager.h"
34 #include "net/socket/socks_client_socket_pool.h" 34 #include "net/socket/socks_client_socket_pool.h"
35 #include "net/socket/ssl_client_socket.h" 35 #include "net/socket/ssl_client_socket.h"
36 #include "net/socket/ssl_client_socket_pool.h" 36 #include "net/socket/ssl_client_socket_pool.h"
37 #include "net/spdy/spdy_http_stream.h" 37 #include "net/spdy/spdy_http_stream.h"
38 #include "net/spdy/spdy_session.h" 38 #include "net/spdy/spdy_session.h"
39 #include "net/spdy/spdy_session_pool.h" 39 #include "net/spdy/spdy_session_pool.h"
40 40
41 namespace net { 41 namespace net {
42 42
43 // Parameters associated with the start of a HTTP stream job. 43 // Returns parameters associated with the start of a HTTP stream job.
44 class HttpStreamJobParameters : public NetLog::EventParameters { 44 Value* NetLogHttpStreamJobCallback(const GURL* original_url,
45 public: 45 const GURL* url,
46 static scoped_refptr<HttpStreamJobParameters> Create( 46 NetLog::LogLevel /* log_level */) {
47 const GURL& original_url,
48 const GURL& url) {
49 return make_scoped_refptr(new HttpStreamJobParameters(original_url, url));
50 }
51
52 virtual Value* ToValue() const;
53
54 protected:
55 virtual ~HttpStreamJobParameters() {}
56
57 private:
58 HttpStreamJobParameters(const GURL& original_url, const GURL& url)
59 : original_url_(original_url.GetOrigin().spec()),
60 url_(url.GetOrigin().spec()) {
61 }
62
63 const std::string original_url_;
64 const std::string url_;
65 };
66
67 Value* HttpStreamJobParameters::ToValue() const {
68 DictionaryValue* dict = new DictionaryValue(); 47 DictionaryValue* dict = new DictionaryValue();
69 dict->SetString("original_url", original_url_); 48 dict->SetString("original_url", original_url->GetOrigin().spec());
70 dict->SetString("url", url_); 49 dict->SetString("url", url->GetOrigin().spec());
71 return dict; 50 return dict;
72 } 51 }
73 52
74 // Parameters associated with the Proto (with NPN negotiation) of a HTTP stream. 53 // Returns parameters associated with the Proto (with NPN negotiation) of a HTTP
75 class HttpStreamProtoParameters : public NetLog::EventParameters { 54 // stream.
76 public: 55 Value* NetLogHttpStreamProtoCallback(
77 static scoped_refptr<HttpStreamProtoParameters> Create( 56 const SSLClientSocket::NextProtoStatus status,
78 const SSLClientSocket::NextProtoStatus status, 57 const std::string* proto,
79 const std::string& proto, 58 const std::string* server_protos,
80 const std::string& server_protos) { 59 NetLog::LogLevel /* log_level */) {
81 return make_scoped_refptr(new HttpStreamProtoParameters(
82 status, proto, server_protos));
83 }
84
85 virtual Value* ToValue() const;
86
87 protected:
88 virtual ~HttpStreamProtoParameters() {}
89
90 private:
91 HttpStreamProtoParameters(const SSLClientSocket::NextProtoStatus status,
92 const std::string& proto,
93 const std::string& server_protos)
94 : status_(status),
95 proto_(proto),
96 server_protos_(server_protos) {
97 }
98
99 const SSLClientSocket::NextProtoStatus status_;
100 const std::string proto_;
101 const std::string server_protos_;
102 };
103
104 Value* HttpStreamProtoParameters::ToValue() const {
105 DictionaryValue* dict = new DictionaryValue(); 60 DictionaryValue* dict = new DictionaryValue();
106 61
107 dict->SetString("next_proto_status", 62 dict->SetString("next_proto_status",
108 SSLClientSocket::NextProtoStatusToString(status_)); 63 SSLClientSocket::NextProtoStatusToString(status));
109 dict->SetString("proto", proto_); 64 dict->SetString("proto", *proto);
110 dict->SetString("server_protos", 65 dict->SetString("server_protos",
111 SSLClientSocket::ServerProtosToString(server_protos_)); 66 SSLClientSocket::ServerProtosToString(*server_protos));
112 return dict; 67 return dict;
113 } 68 }
114 69
115 HttpStreamFactoryImpl::Job::Job(HttpStreamFactoryImpl* stream_factory, 70 HttpStreamFactoryImpl::Job::Job(HttpStreamFactoryImpl* stream_factory,
116 HttpNetworkSession* session, 71 HttpNetworkSession* session,
117 const HttpRequestInfo& request_info, 72 const HttpRequestInfo& request_info,
118 const SSLConfig& server_ssl_config, 73 const SSLConfig& server_ssl_config,
119 const SSLConfig& proxy_ssl_config, 74 const SSLConfig& proxy_ssl_config,
120 NetLog* net_log) 75 NetLog* net_log)
121 : request_(NULL), 76 : request_(NULL),
(...skipping 20 matching lines...) Expand all
142 protocol_negotiated_(kProtoUnknown), 97 protocol_negotiated_(kProtoUnknown),
143 num_streams_(0), 98 num_streams_(0),
144 spdy_session_direct_(false), 99 spdy_session_direct_(false),
145 existing_available_pipeline_(false), 100 existing_available_pipeline_(false),
146 ALLOW_THIS_IN_INITIALIZER_LIST(ptr_factory_(this)) { 101 ALLOW_THIS_IN_INITIALIZER_LIST(ptr_factory_(this)) {
147 DCHECK(stream_factory); 102 DCHECK(stream_factory);
148 DCHECK(session); 103 DCHECK(session);
149 } 104 }
150 105
151 HttpStreamFactoryImpl::Job::~Job() { 106 HttpStreamFactoryImpl::Job::~Job() {
152 net_log_.EndEvent(NetLog::TYPE_HTTP_STREAM_JOB, NULL); 107 net_log_.EndEvent(NetLog::TYPE_HTTP_STREAM_JOB);
153 108
154 // When we're in a partially constructed state, waiting for the user to 109 // When we're in a partially constructed state, waiting for the user to
155 // provide certificate handling information or authentication, we can't reuse 110 // provide certificate handling information or authentication, we can't reuse
156 // this stream at all. 111 // this stream at all.
157 if (next_state_ == STATE_WAITING_USER_ACTION) { 112 if (next_state_ == STATE_WAITING_USER_ACTION) {
158 connection_->socket()->Disconnect(); 113 connection_->socket()->Disconnect();
159 connection_.reset(); 114 connection_.reset();
160 } 115 }
161 116
162 if (pac_request_) 117 if (pac_request_)
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 } 545 }
591 546
592 int HttpStreamFactoryImpl::Job::DoStart() { 547 int HttpStreamFactoryImpl::Job::DoStart() {
593 int port = request_info_.url.EffectiveIntPort(); 548 int port = request_info_.url.EffectiveIntPort();
594 origin_ = HostPortPair(request_info_.url.HostNoBrackets(), port); 549 origin_ = HostPortPair(request_info_.url.HostNoBrackets(), port);
595 origin_url_ = HttpStreamFactory::ApplyHostMappingRules( 550 origin_url_ = HttpStreamFactory::ApplyHostMappingRules(
596 request_info_.url, &origin_); 551 request_info_.url, &origin_);
597 http_pipelining_key_.reset(new HttpPipelinedHost::Key(origin_)); 552 http_pipelining_key_.reset(new HttpPipelinedHost::Key(origin_));
598 553
599 net_log_.BeginEvent(NetLog::TYPE_HTTP_STREAM_JOB, 554 net_log_.BeginEvent(NetLog::TYPE_HTTP_STREAM_JOB,
600 HttpStreamJobParameters::Create(request_info_.url, 555 base::Bind(&NetLogHttpStreamJobCallback,
601 origin_url_)); 556 &request_info_.url, &origin_url_));
602 557
603 // Don't connect to restricted ports. 558 // Don't connect to restricted ports.
604 if (!IsPortAllowedByDefault(port) && !IsPortAllowedByOverride(port)) { 559 if (!IsPortAllowedByDefault(port) && !IsPortAllowedByOverride(port)) {
605 if (waiting_job_) { 560 if (waiting_job_) {
606 waiting_job_->Resume(this); 561 waiting_job_->Resume(this);
607 waiting_job_ = NULL; 562 waiting_job_ = NULL;
608 } 563 }
609 return ERR_UNSAFE_PORT; 564 return ERR_UNSAFE_PORT;
610 } 565 }
611 566
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 was_npn_negotiated_ = true; 788 was_npn_negotiated_ = true;
834 std::string proto; 789 std::string proto;
835 std::string server_protos; 790 std::string server_protos;
836 SSLClientSocket::NextProtoStatus status = 791 SSLClientSocket::NextProtoStatus status =
837 ssl_socket->GetNextProto(&proto, &server_protos); 792 ssl_socket->GetNextProto(&proto, &server_protos);
838 NextProto protocol_negotiated = 793 NextProto protocol_negotiated =
839 SSLClientSocket::NextProtoFromString(proto); 794 SSLClientSocket::NextProtoFromString(proto);
840 protocol_negotiated_ = protocol_negotiated; 795 protocol_negotiated_ = protocol_negotiated;
841 net_log_.AddEvent( 796 net_log_.AddEvent(
842 NetLog::TYPE_HTTP_STREAM_REQUEST_PROTO, 797 NetLog::TYPE_HTTP_STREAM_REQUEST_PROTO,
843 HttpStreamProtoParameters::Create(status, proto, server_protos)); 798 base::Bind(&NetLogHttpStreamProtoCallback,
799 status, &proto, &server_protos));
844 if (ssl_socket->was_spdy_negotiated()) 800 if (ssl_socket->was_spdy_negotiated())
845 SwitchToSpdyMode(); 801 SwitchToSpdyMode();
846 } 802 }
847 if (ShouldForceSpdySSL()) 803 if (ShouldForceSpdySSL())
848 SwitchToSpdyMode(); 804 SwitchToSpdyMode();
849 } else if (proxy_info_.is_https() && connection_->socket() && 805 } else if (proxy_info_.is_https() && connection_->socket() &&
850 result == OK) { 806 result == OK) {
851 ProxyClientSocket* proxy_socket = 807 ProxyClientSocket* proxy_socket =
852 static_cast<ProxyClientSocket*>(connection_->socket()); 808 static_cast<ProxyClientSocket*>(connection_->socket());
853 if (proxy_socket->IsUsingSpdy()) { 809 if (proxy_socket->IsUsingSpdy()) {
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
1309 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH | 1265 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH |
1310 net::LOAD_IS_DOWNLOAD)) { 1266 net::LOAD_IS_DOWNLOAD)) {
1311 // Avoid pipelining resources that may be streamed for a long time. 1267 // Avoid pipelining resources that may be streamed for a long time.
1312 return false; 1268 return false;
1313 } 1269 }
1314 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining( 1270 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining(
1315 *http_pipelining_key_.get()); 1271 *http_pipelining_key_.get());
1316 } 1272 }
1317 1273
1318 } // namespace net 1274 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_proxy_client_socket.cc ('k') | net/http/http_stream_factory_impl_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698