Chromium Code Reviews| 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 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ | 5 #ifndef NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ |
| 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ | 6 #define NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ |
| 7 | 7 |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 STATE_NONE | 133 STATE_NONE |
| 134 }; | 134 }; |
| 135 | 135 |
| 136 enum JobStatus { | 136 enum JobStatus { |
| 137 STATUS_RUNNING, | 137 STATUS_RUNNING, |
| 138 STATUS_FAILED, | 138 STATUS_FAILED, |
| 139 STATUS_BROKEN, | 139 STATUS_BROKEN, |
| 140 STATUS_SUCCEEDED | 140 STATUS_SUCCEEDED |
| 141 }; | 141 }; |
| 142 | 142 |
| 143 // Wrapper class for SpdySessionPool methods to enforce certificate | |
| 144 // requirements for SpdySessions. | |
| 145 class ValidSpdySessionPool { | |
| 146 public: | |
| 147 ValidSpdySessionPool(SpdySessionPool* spdy_session_pool, | |
| 148 GURL& origin_url, | |
| 149 bool is_spdy_alternate); | |
| 150 | |
| 151 // The following two methods return OK if a SpdySession was not found (in | |
| 152 // which case |spdy_session| is set to nullptr), or if one was found (in | |
| 153 // which case |spdy_session| is set to it) and it has an associated SSL | |
| 154 // certificate with is valid for |origin_url_|, or if this requirement does | |
| 155 // not apply because the Job is not a SPDY alternate job. They return the | |
| 156 // appropriate error code otherwise, in which case |spdy_session| should not | |
| 157 // be used. | |
|
Ryan Hamilton
2015/04/27 15:35:55
nit: This comment is confusing, I think because it
Bence
2015/04/28 14:42:21
Done.
| |
| 158 int FindAvailableSession(const SpdySessionKey& key, | |
| 159 const BoundNetLog& net_log, | |
| 160 base::WeakPtr<SpdySession>* spdy_session); | |
| 161 int CreateAvailableSessionFromSocket( | |
| 162 const SpdySessionKey& key, | |
| 163 scoped_ptr<ClientSocketHandle> connection, | |
| 164 const BoundNetLog& net_log, | |
| 165 int certificate_error_code, | |
| 166 bool is_secure, | |
| 167 base::WeakPtr<SpdySession>* spdy_session); | |
| 168 | |
| 169 private: | |
| 170 // Returns OK if |spdy_session| has an associated SSL certificate with is | |
| 171 // valid for |origin_url_|, or if this requirement does not apply because | |
| 172 // the Job is not a SPDY alternate job, or if |spdy_session| is null. | |
| 173 // Returns appropriate error code otherwise. | |
| 174 int CheckAlternativeServiceValidityForOrigin( | |
| 175 base::WeakPtr<SpdySession> spdy_session); | |
| 176 | |
| 177 SpdySessionPool* const spdy_session_pool_; | |
| 178 const GURL origin_url_; | |
| 179 const bool is_spdy_alternate_; | |
| 180 }; | |
| 181 | |
| 143 void OnStreamReadyCallback(); | 182 void OnStreamReadyCallback(); |
| 144 void OnWebSocketHandshakeStreamReadyCallback(); | 183 void OnWebSocketHandshakeStreamReadyCallback(); |
| 145 // This callback function is called when a new SPDY session is created. | 184 // This callback function is called when a new SPDY session is created. |
| 146 void OnNewSpdySessionReadyCallback(); | 185 void OnNewSpdySessionReadyCallback(); |
| 147 void OnStreamFailedCallback(int result); | 186 void OnStreamFailedCallback(int result); |
| 148 void OnCertificateErrorCallback(int result, const SSLInfo& ssl_info); | 187 void OnCertificateErrorCallback(int result, const SSLInfo& ssl_info); |
| 149 void OnNeedsProxyAuthCallback(const HttpResponseInfo& response_info, | 188 void OnNeedsProxyAuthCallback(const HttpResponseInfo& response_info, |
| 150 HttpAuthController* auth_controller); | 189 HttpAuthController* auth_controller); |
| 151 void OnNeedsClientAuthCallback(SSLCertRequestInfo* cert_info); | 190 void OnNeedsClientAuthCallback(SSLCertRequestInfo* cert_info); |
| 152 void OnHttpsProxyTunnelResponseCallback(const HttpResponseInfo& response_info, | 191 void OnHttpsProxyTunnelResponseCallback(const HttpResponseInfo& response_info, |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 320 // True if we negotiated NPN. | 359 // True if we negotiated NPN. |
| 321 bool was_npn_negotiated_; | 360 bool was_npn_negotiated_; |
| 322 | 361 |
| 323 // Protocol negotiated with the server. | 362 // Protocol negotiated with the server. |
| 324 NextProto protocol_negotiated_; | 363 NextProto protocol_negotiated_; |
| 325 | 364 |
| 326 // 0 if we're not preconnecting. Otherwise, the number of streams to | 365 // 0 if we're not preconnecting. Otherwise, the number of streams to |
| 327 // preconnect. | 366 // preconnect. |
| 328 int num_streams_; | 367 int num_streams_; |
| 329 | 368 |
| 369 scoped_ptr<ValidSpdySessionPool> valid_spdy_session_pool_; | |
| 370 | |
| 330 // Initialized when we create a new SpdySession. | 371 // Initialized when we create a new SpdySession. |
| 331 base::WeakPtr<SpdySession> new_spdy_session_; | 372 base::WeakPtr<SpdySession> new_spdy_session_; |
| 332 | 373 |
| 333 // Initialized when we have an existing SpdySession. | 374 // Initialized when we have an existing SpdySession. |
| 334 base::WeakPtr<SpdySession> existing_spdy_session_; | 375 base::WeakPtr<SpdySession> existing_spdy_session_; |
| 335 | 376 |
| 336 // Only used if |new_spdy_session_| is non-NULL. | 377 // Only used if |new_spdy_session_| is non-NULL. |
| 337 bool spdy_session_direct_; | 378 bool spdy_session_direct_; |
| 338 | 379 |
| 339 JobStatus job_status_; | 380 JobStatus job_status_; |
| 340 JobStatus other_job_status_; | 381 JobStatus other_job_status_; |
| 341 | 382 |
| 342 base::WeakPtrFactory<Job> ptr_factory_; | 383 base::WeakPtrFactory<Job> ptr_factory_; |
| 343 | 384 |
| 344 DISALLOW_COPY_AND_ASSIGN(Job); | 385 DISALLOW_COPY_AND_ASSIGN(Job); |
| 345 }; | 386 }; |
| 346 | 387 |
| 347 } // namespace net | 388 } // namespace net |
| 348 | 389 |
| 349 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ | 390 #endif // NET_HTTP_HTTP_STREAM_FACTORY_IMPL_JOB_H_ |
| OLD | NEW |