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

Side by Side Diff: net/socket_stream/socket_stream.h

Issue 848006: Generalize the net module's LoadLog facility from a passive container, to an event stream (NetLog). (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Split up RequestTracker into ConnectJobTracker+RequestTracker+RequestTrackerBase, address comments Created 10 years, 9 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/socket/tcp_client_socket_win.cc ('k') | net/socket_stream/socket_stream.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #ifndef NET_SOCKET_STREAM_SOCKET_STREAM_H_ 5 #ifndef NET_SOCKET_STREAM_SOCKET_STREAM_H_
6 #define NET_SOCKET_STREAM_SOCKET_STREAM_H_ 6 #define NET_SOCKET_STREAM_SOCKET_STREAM_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/linked_ptr.h" 13 #include "base/linked_ptr.h"
14 #include "base/ref_counted.h" 14 #include "base/ref_counted.h"
15 #include "base/scoped_ptr.h" 15 #include "base/scoped_ptr.h"
16 #include "base/task.h" 16 #include "base/task.h"
17 #include "net/base/address_list.h" 17 #include "net/base/address_list.h"
18 #include "net/base/completion_callback.h" 18 #include "net/base/completion_callback.h"
19 #include "net/base/io_buffer.h" 19 #include "net/base/io_buffer.h"
20 #include "net/base/net_log.h"
20 #include "net/http/http_auth.h" 21 #include "net/http/http_auth.h"
21 #include "net/http/http_auth_cache.h" 22 #include "net/http/http_auth_cache.h"
22 #include "net/http/http_auth_handler.h" 23 #include "net/http/http_auth_handler.h"
23 #include "net/proxy/proxy_service.h" 24 #include "net/proxy/proxy_service.h"
24 #include "net/socket/tcp_client_socket.h" 25 #include "net/socket/tcp_client_socket.h"
25 #include "net/url_request/request_tracker.h"
26 #include "net/url_request/url_request_context.h" 26 #include "net/url_request/url_request_context.h"
27 27
28 namespace net { 28 namespace net {
29 29
30 class AuthChallengeInfo; 30 class AuthChallengeInfo;
31 class ClientSocketFactory; 31 class ClientSocketFactory;
32 class HostResolver; 32 class HostResolver;
33 class HttpAuthHandlerFactory; 33 class HttpAuthHandlerFactory;
34 class LoadLog;
35 class SSLConfigService; 34 class SSLConfigService;
36 class SingleRequestHostResolver; 35 class SingleRequestHostResolver;
37 class SocketStreamMetrics; 36 class SocketStreamMetrics;
38 class SocketStreamThrottle; 37 class SocketStreamThrottle;
39 38
40 // SocketStream is used to implement Web Sockets. 39 // SocketStream is used to implement Web Sockets.
41 // It provides plain full-duplex stream with proxy and SSL support. 40 // It provides plain full-duplex stream with proxy and SSL support.
42 // For proxy authentication, only basic mechanisum is supported. It will try 41 // For proxy authentication, only basic mechanisum is supported. It will try
43 // authentication identity for proxy URL first. If server requires proxy 42 // authentication identity for proxy URL first. If server requires proxy
44 // authentication, it will try authentication identity for realm that server 43 // authentication, it will try authentication identity for realm that server
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 101
103 const GURL& url() const { return url_; } 102 const GURL& url() const { return url_; }
104 bool is_secure() const; 103 bool is_secure() const;
105 const AddressList& address_list() const { return addresses_; } 104 const AddressList& address_list() const { return addresses_; }
106 Delegate* delegate() const { return delegate_; } 105 Delegate* delegate() const { return delegate_; }
107 int max_pending_send_allowed() const { return max_pending_send_allowed_; } 106 int max_pending_send_allowed() const { return max_pending_send_allowed_; }
108 107
109 URLRequestContext* context() const { return context_.get(); } 108 URLRequestContext* context() const { return context_.get(); }
110 void set_context(URLRequestContext* context); 109 void set_context(URLRequestContext* context);
111 110
112 LoadLog* load_log() const { return load_log_; } 111 BoundNetLog* net_log() { return &net_log_; }
113 112
114 // Opens the connection on the IO thread. 113 // Opens the connection on the IO thread.
115 // Once the connection is established, calls delegate's OnConnected. 114 // Once the connection is established, calls delegate's OnConnected.
116 virtual void Connect(); 115 virtual void Connect();
117 116
118 // Requests to send |len| bytes of |data| on the connection. 117 // Requests to send |len| bytes of |data| on the connection.
119 // Returns true if |data| is buffered in the job. 118 // Returns true if |data| is buffered in the job.
120 // Returns false if size of buffered data would exceeds 119 // Returns false if size of buffered data would exceeds
121 // |max_pending_send_allowed_| and |data| is not sent at all. 120 // |max_pending_send_allowed_| and |data| is not sent at all.
122 virtual bool SendData(const char* data, int len); 121 virtual bool SendData(const char* data, int len);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 STATE_CLOSE, 199 STATE_CLOSE,
201 }; 200 };
202 201
203 enum ProxyMode { 202 enum ProxyMode {
204 kDirectConnection, // If using a direct connection 203 kDirectConnection, // If using a direct connection
205 kTunnelProxy, // If using a tunnel (CONNECT method as HTTPS) 204 kTunnelProxy, // If using a tunnel (CONNECT method as HTTPS)
206 kSOCKSProxy, // If using a SOCKS proxy 205 kSOCKSProxy, // If using a SOCKS proxy
207 }; 206 };
208 207
209 typedef std::deque< scoped_refptr<IOBufferWithSize> > PendingDataQueue; 208 typedef std::deque< scoped_refptr<IOBufferWithSize> > PendingDataQueue;
210 friend class RequestTracker<SocketStream>;
211 209
212 friend class WebSocketThrottleTest; 210 friend class WebSocketThrottleTest;
213 211
214 // Copies the given addrinfo list in |addresses_|. 212 // Copies the given addrinfo list in |addresses_|.
215 // Used for WebSocketThrottleTest. 213 // Used for WebSocketThrottleTest.
216 void CopyAddrInfo(struct addrinfo* head); 214 void CopyAddrInfo(struct addrinfo* head);
217 215
218 // Finishes the job. 216 // Finishes the job.
219 // Calls OnError and OnClose of delegate, and no more 217 // Calls OnError and OnClose of delegate, and no more
220 // notifications will be sent to delegate. 218 // notifications will be sent to delegate.
(...skipping 28 matching lines...) Expand all
249 GURL ProxyAuthOrigin() const; 247 GURL ProxyAuthOrigin() const;
250 int HandleAuthChallenge(const HttpResponseHeaders* headers); 248 int HandleAuthChallenge(const HttpResponseHeaders* headers);
251 void DoAuthRequired(); 249 void DoAuthRequired();
252 void DoRestartWithAuth(); 250 void DoRestartWithAuth();
253 251
254 int HandleCertificateError(int result); 252 int HandleCertificateError(int result);
255 253
256 SSLConfigService* ssl_config_service() const; 254 SSLConfigService* ssl_config_service() const;
257 ProxyService* proxy_service() const; 255 ProxyService* proxy_service() const;
258 256
259 void GetInfoForTracker( 257 BoundNetLog net_log_;
260 RequestTracker<SocketStream>::RecentRequestInfo* info) const;
261
262 scoped_refptr<LoadLog> load_log_;
263 258
264 GURL url_; 259 GURL url_;
265 int max_pending_send_allowed_; 260 int max_pending_send_allowed_;
266 scoped_refptr<URLRequestContext> context_; 261 scoped_refptr<URLRequestContext> context_;
267 262
268 typedef std::map<const void*, linked_ptr<UserData> > UserDataMap; 263 typedef std::map<const void*, linked_ptr<UserData> > UserDataMap;
269 UserDataMap user_data_; 264 UserDataMap user_data_;
270 265
271 State next_state_; 266 State next_state_;
272 scoped_refptr<HostResolver> host_resolver_; 267 scoped_refptr<HostResolver> host_resolver_;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 scoped_refptr<IOBuffer> write_buf_; 310 scoped_refptr<IOBuffer> write_buf_;
316 scoped_refptr<DrainableIOBuffer> current_write_buf_; 311 scoped_refptr<DrainableIOBuffer> current_write_buf_;
317 int write_buf_offset_; 312 int write_buf_offset_;
318 int write_buf_size_; 313 int write_buf_size_;
319 PendingDataQueue pending_write_bufs_; 314 PendingDataQueue pending_write_bufs_;
320 315
321 SocketStreamThrottle* throttle_; 316 SocketStreamThrottle* throttle_;
322 317
323 scoped_ptr<SocketStreamMetrics> metrics_; 318 scoped_ptr<SocketStreamMetrics> metrics_;
324 319
325 RequestTracker<SocketStream>::Node request_tracker_node_;
326
327 DISALLOW_COPY_AND_ASSIGN(SocketStream); 320 DISALLOW_COPY_AND_ASSIGN(SocketStream);
328 }; 321 };
329 322
330 } // namespace net 323 } // namespace net
331 324
332 #endif // NET_SOCKET_STREAM_SOCKET_STREAM_H_ 325 #endif // NET_SOCKET_STREAM_SOCKET_STREAM_H_
OLDNEW
« no previous file with comments | « net/socket/tcp_client_socket_win.cc ('k') | net/socket_stream/socket_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698