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" |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 return session_; | 141 return session_; |
142 } | 142 } |
143 | 143 |
144 // static | 144 // static |
145 void HttpNetworkLayer::EnableSpdy(const std::string& mode) { | 145 void HttpNetworkLayer::EnableSpdy(const std::string& mode) { |
146 static const char kSSL[] = "ssl"; | 146 static const char kSSL[] = "ssl"; |
147 static const char kDisableSSL[] = "no-ssl"; | 147 static const char kDisableSSL[] = "no-ssl"; |
148 static const char kDisableCompression[] = "no-compress"; | 148 static const char kDisableCompression[] = "no-compress"; |
149 static const char kDisableAltProtocols[] = "no-alt-protocols"; | 149 static const char kDisableAltProtocols[] = "no-alt-protocols"; |
150 static const char kEnableVersionOne[] = "v1"; | 150 static const char kEnableVersionOne[] = "v1"; |
| 151 static const char kForceAltProtocols[] = "force-alt-protocols"; |
| 152 |
151 | 153 |
152 // If flow-control is enabled, received WINDOW_UPDATE and SETTINGS | 154 // If flow-control is enabled, received WINDOW_UPDATE and SETTINGS |
153 // messages are processed and outstanding window size is actually obeyed | 155 // messages are processed and outstanding window size is actually obeyed |
154 // when sending data frames, and WINDOW_UPDATE messages are generated | 156 // when sending data frames, and WINDOW_UPDATE messages are generated |
155 // when data is consumed. | 157 // when data is consumed. |
156 static const char kEnableFlowControl[] = "flow-control"; | 158 static const char kEnableFlowControl[] = "flow-control"; |
157 | 159 |
158 // We want an A/B experiment between SPDY enabled and SPDY disabled, | 160 // We want an A/B experiment between SPDY enabled and SPDY disabled, |
159 // but only for pages where SPDY *could have been* negotiated. To do | 161 // but only for pages where SPDY *could have been* negotiated. To do |
160 // this, we use NPN, but prevent it from negotiating SPDY. If the | 162 // this, we use NPN, but prevent it from negotiating SPDY. If the |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 HttpStreamFactory::set_use_alternate_protocols(false); | 205 HttpStreamFactory::set_use_alternate_protocols(false); |
204 HttpStreamFactory::set_next_protos(kNpnProtosHttpOnly); | 206 HttpStreamFactory::set_next_protos(kNpnProtosHttpOnly); |
205 } else if (option == kEnableVersionOne) { | 207 } else if (option == kEnableVersionOne) { |
206 spdy::SpdyFramer::set_protocol_version(1); | 208 spdy::SpdyFramer::set_protocol_version(1); |
207 HttpStreamFactory::set_next_protos(kNpnProtosFullV1); | 209 HttpStreamFactory::set_next_protos(kNpnProtosFullV1); |
208 } else if (option == kDisableAltProtocols) { | 210 } else if (option == kDisableAltProtocols) { |
209 use_alt_protocols = false; | 211 use_alt_protocols = false; |
210 HttpStreamFactory::set_use_alternate_protocols(false); | 212 HttpStreamFactory::set_use_alternate_protocols(false); |
211 } else if (option == kEnableFlowControl) { | 213 } else if (option == kEnableFlowControl) { |
212 SpdySession::SetFlowControl(true); | 214 SpdySession::SetFlowControl(true); |
| 215 } else if (option == kForceAltProtocols) { |
| 216 HttpAlternateProtocols::PortProtocolPair pair; |
| 217 pair.port = 443; |
| 218 pair.protocol = HttpAlternateProtocols::NPN_SPDY_2; |
| 219 HttpAlternateProtocols::ForceAlternateProtocol(pair); |
213 } else if (option.empty() && it == spdy_options.begin()) { | 220 } else if (option.empty() && it == spdy_options.begin()) { |
214 continue; | 221 continue; |
215 } else { | 222 } else { |
216 LOG(DFATAL) << "Unrecognized spdy option: " << option; | 223 LOG(DFATAL) << "Unrecognized spdy option: " << option; |
217 } | 224 } |
218 } | 225 } |
219 } | 226 } |
220 } // namespace net | 227 } // namespace net |
OLD | NEW |