| OLD | NEW |
| 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 #include "net/http/http_network_layer.h" | 5 #include "net/http/http_network_layer.h" |
| 6 | 6 |
| 7 #include "base/field_trial.h" | 7 #include "base/field_trial.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/string_util.h" | 9 #include "base/string_util.h" |
| 10 #include "net/http/http_network_session.h" | 10 #include "net/http/http_network_session.h" |
| 11 #include "net/http/http_network_transaction.h" | 11 #include "net/http/http_network_transaction.h" |
| 12 #include "net/socket/client_socket_factory.h" | 12 #include "net/socket/client_socket_factory.h" |
| 13 #include "net/spdy/spdy_framer.h" | 13 #include "net/spdy/spdy_framer.h" |
| 14 #include "net/spdy/spdy_network_transaction.h" | 14 #include "net/spdy/spdy_network_transaction.h" |
| 15 #include "net/spdy/spdy_session.h" | 15 #include "net/spdy/spdy_session.h" |
| 16 #include "net/spdy/spdy_session_pool.h" | 16 #include "net/spdy/spdy_session_pool.h" |
| 17 | 17 |
| 18 namespace net { | 18 namespace net { |
| 19 | 19 |
| 20 //----------------------------------------------------------------------------- | 20 //----------------------------------------------------------------------------- |
| 21 | 21 |
| 22 // static | 22 // static |
| 23 HttpTransactionFactory* HttpNetworkLayer::CreateFactory( | 23 HttpTransactionFactory* HttpNetworkLayer::CreateFactory( |
| 24 NetworkChangeNotifier* network_change_notifier, | 24 NetworkChangeNotifier* network_change_notifier, |
| 25 HostResolver* host_resolver, | 25 HostResolver* host_resolver, |
| 26 ProxyService* proxy_service, | 26 ProxyService* proxy_service, |
| 27 SSLConfigService* ssl_config_service, | 27 SSLConfigService* ssl_config_service, |
| 28 HttpAuthHandlerFactory* http_auth_handler_factory) { | 28 HttpAuthHandlerFactory* http_auth_handler_factory, |
| 29 NetLog* net_log) { |
| 29 DCHECK(proxy_service); | 30 DCHECK(proxy_service); |
| 30 | 31 |
| 31 return new HttpNetworkLayer(ClientSocketFactory::GetDefaultFactory(), | 32 return new HttpNetworkLayer(ClientSocketFactory::GetDefaultFactory(), |
| 32 network_change_notifier, | 33 network_change_notifier, |
| 33 host_resolver, proxy_service, ssl_config_service, | 34 host_resolver, proxy_service, ssl_config_service, |
| 34 http_auth_handler_factory); | 35 http_auth_handler_factory, |
| 36 net_log); |
| 35 } | 37 } |
| 36 | 38 |
| 37 // static | 39 // static |
| 38 HttpTransactionFactory* HttpNetworkLayer::CreateFactory( | 40 HttpTransactionFactory* HttpNetworkLayer::CreateFactory( |
| 39 HttpNetworkSession* session) { | 41 HttpNetworkSession* session) { |
| 40 DCHECK(session); | 42 DCHECK(session); |
| 41 | 43 |
| 42 return new HttpNetworkLayer(session); | 44 return new HttpNetworkLayer(session); |
| 43 } | 45 } |
| 44 | 46 |
| 45 //----------------------------------------------------------------------------- | 47 //----------------------------------------------------------------------------- |
| 46 bool HttpNetworkLayer::force_spdy_ = false; | 48 bool HttpNetworkLayer::force_spdy_ = false; |
| 47 | 49 |
| 48 HttpNetworkLayer::HttpNetworkLayer( | 50 HttpNetworkLayer::HttpNetworkLayer( |
| 49 ClientSocketFactory* socket_factory, | 51 ClientSocketFactory* socket_factory, |
| 50 NetworkChangeNotifier* network_change_notifier, | 52 NetworkChangeNotifier* network_change_notifier, |
| 51 HostResolver* host_resolver, | 53 HostResolver* host_resolver, |
| 52 ProxyService* proxy_service, | 54 ProxyService* proxy_service, |
| 53 SSLConfigService* ssl_config_service, | 55 SSLConfigService* ssl_config_service, |
| 54 HttpAuthHandlerFactory* http_auth_handler_factory) | 56 HttpAuthHandlerFactory* http_auth_handler_factory, |
| 57 NetLog* net_log) |
| 55 : socket_factory_(socket_factory), | 58 : socket_factory_(socket_factory), |
| 56 network_change_notifier_(network_change_notifier), | 59 network_change_notifier_(network_change_notifier), |
| 57 host_resolver_(host_resolver), | 60 host_resolver_(host_resolver), |
| 58 proxy_service_(proxy_service), | 61 proxy_service_(proxy_service), |
| 59 ssl_config_service_(ssl_config_service), | 62 ssl_config_service_(ssl_config_service), |
| 60 session_(NULL), | 63 session_(NULL), |
| 61 spdy_session_pool_(NULL), | 64 spdy_session_pool_(NULL), |
| 62 http_auth_handler_factory_(http_auth_handler_factory), | 65 http_auth_handler_factory_(http_auth_handler_factory), |
| 66 net_log_(net_log), |
| 63 suspended_(false) { | 67 suspended_(false) { |
| 64 DCHECK(proxy_service_); | 68 DCHECK(proxy_service_); |
| 65 DCHECK(ssl_config_service_.get()); | 69 DCHECK(ssl_config_service_.get()); |
| 66 } | 70 } |
| 67 | 71 |
| 68 HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) | 72 HttpNetworkLayer::HttpNetworkLayer(HttpNetworkSession* session) |
| 69 : socket_factory_(ClientSocketFactory::GetDefaultFactory()), | 73 : socket_factory_(ClientSocketFactory::GetDefaultFactory()), |
| 70 network_change_notifier_(NULL), | 74 network_change_notifier_(NULL), |
| 71 ssl_config_service_(NULL), | 75 ssl_config_service_(NULL), |
| 72 session_(session), | 76 session_(session), |
| 73 spdy_session_pool_(session->spdy_session_pool()), | 77 spdy_session_pool_(session->spdy_session_pool()), |
| 74 http_auth_handler_factory_(NULL), | 78 http_auth_handler_factory_(NULL), |
| 79 net_log_(NULL), |
| 75 suspended_(false) { | 80 suspended_(false) { |
| 76 DCHECK(session_.get()); | 81 DCHECK(session_.get()); |
| 77 } | 82 } |
| 78 | 83 |
| 79 HttpNetworkLayer::~HttpNetworkLayer() { | 84 HttpNetworkLayer::~HttpNetworkLayer() { |
| 80 } | 85 } |
| 81 | 86 |
| 82 int HttpNetworkLayer::CreateTransaction(scoped_ptr<HttpTransaction>* trans) { | 87 int HttpNetworkLayer::CreateTransaction(scoped_ptr<HttpTransaction>* trans) { |
| 83 if (suspended_) | 88 if (suspended_) |
| 84 return ERR_NETWORK_IO_SUSPENDED; | 89 return ERR_NETWORK_IO_SUSPENDED; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 101 session_->tcp_socket_pool()->CloseIdleSockets(); | 106 session_->tcp_socket_pool()->CloseIdleSockets(); |
| 102 } | 107 } |
| 103 | 108 |
| 104 HttpNetworkSession* HttpNetworkLayer::GetSession() { | 109 HttpNetworkSession* HttpNetworkLayer::GetSession() { |
| 105 if (!session_) { | 110 if (!session_) { |
| 106 DCHECK(proxy_service_); | 111 DCHECK(proxy_service_); |
| 107 SpdySessionPool* spdy_pool = new SpdySessionPool; | 112 SpdySessionPool* spdy_pool = new SpdySessionPool; |
| 108 session_ = new HttpNetworkSession( | 113 session_ = new HttpNetworkSession( |
| 109 network_change_notifier_, host_resolver_, proxy_service_, | 114 network_change_notifier_, host_resolver_, proxy_service_, |
| 110 socket_factory_, ssl_config_service_, spdy_pool, | 115 socket_factory_, ssl_config_service_, spdy_pool, |
| 111 http_auth_handler_factory_); | 116 http_auth_handler_factory_, |
| 117 net_log_); |
| 112 // These were just temps for lazy-initializing HttpNetworkSession. | 118 // These were just temps for lazy-initializing HttpNetworkSession. |
| 113 network_change_notifier_ = NULL; | 119 network_change_notifier_ = NULL; |
| 114 host_resolver_ = NULL; | 120 host_resolver_ = NULL; |
| 115 proxy_service_ = NULL; | 121 proxy_service_ = NULL; |
| 116 socket_factory_ = NULL; | 122 socket_factory_ = NULL; |
| 117 http_auth_handler_factory_ = NULL; | 123 http_auth_handler_factory_ = NULL; |
| 124 net_log_ = NULL; |
| 118 } | 125 } |
| 119 return session_; | 126 return session_; |
| 120 } | 127 } |
| 121 | 128 |
| 122 // static | 129 // static |
| 123 void HttpNetworkLayer::EnableSpdy(const std::string& mode) { | 130 void HttpNetworkLayer::EnableSpdy(const std::string& mode) { |
| 124 static const char kDisableSSL[] = "no-ssl"; | 131 static const char kDisableSSL[] = "no-ssl"; |
| 125 static const char kDisableCompression[] = "no-compress"; | 132 static const char kDisableCompression[] = "no-compress"; |
| 126 | 133 |
| 127 // We want an A/B experiment between SPDY enabled and SPDY disabled, | 134 // We want an A/B experiment between SPDY enabled and SPDY disabled, |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 force_spdy_ = false; | 175 force_spdy_ = false; |
| 169 } else if (option.empty() && it == spdy_options.begin()) { | 176 } else if (option.empty() && it == spdy_options.begin()) { |
| 170 continue; | 177 continue; |
| 171 } else { | 178 } else { |
| 172 LOG(DFATAL) << "Unrecognized spdy option: " << option; | 179 LOG(DFATAL) << "Unrecognized spdy option: " << option; |
| 173 } | 180 } |
| 174 } | 181 } |
| 175 } | 182 } |
| 176 | 183 |
| 177 } // namespace net | 184 } // namespace net |
| OLD | NEW |