summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-16 20:06:35 +0000
committermbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-16 20:06:35 +0000
commit858374f4e74ff749e9ecdc282599575227e4f4c8 (patch)
tree721b62d0e1bb73b55088981697ed401e306ae77c
parenta5998de65d1447fb9a4a5d34f706ea47be69e187 (diff)
downloadchromium_src-858374f4e74ff749e9ecdc282599575227e4f4c8.zip
chromium_src-858374f4e74ff749e9ecdc282599575227e4f4c8.tar.gz
chromium_src-858374f4e74ff749e9ecdc282599575227e4f4c8.tar.bz2
Revert 61897 - Do not use Alternate-Protocol for establishing new SpdySessions.
Only use Alternate-Protocol for latching onto existing SpdySessions. This is a temporary change until SSL improvements are made, so we can begin sending http over spdy when available. Note that we have to do proxy resolution one time to figure out how to check for the appropriate existing SpdySession. If no SpdySession exists, we fallback again and have to redo proxy resolution (since the alternate protocol of npn-spdy requires rewriting the URI from http:// to https://). So we may end up doing two proxy resolutions in the fallback case. I had to disable all the tests that test establishing a new SpdySession for http:// URIs, since we don't do that for now. BUG=none TEST=none Review URL: http://codereview.chromium.org/3573013 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/3788006 git-svn-id: svn://svn.chromium.org/chrome/branches/552/src@62871 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--net/base/run_all_unittests.cc3
-rw-r--r--net/http/http_network_transaction_unittest.cc54
-rw-r--r--net/http/http_stream_factory.cc3
-rw-r--r--net/http/http_stream_factory.h10
-rw-r--r--net/http/http_stream_request.cc13
5 files changed, 5 insertions, 78 deletions
diff --git a/net/base/run_all_unittests.cc b/net/base/run_all_unittests.cc
index 5f2207d..77f00f0 100644
--- a/net/base/run_all_unittests.cc
+++ b/net/base/run_all_unittests.cc
@@ -6,7 +6,6 @@
#include "base/histogram.h"
#include "base/nss_util.h"
#include "net/base/net_test_suite.h"
-#include "net/http/http_stream_factory.h"
#if defined(OS_WIN)
#include "net/socket/ssl_client_socket_nss_factory.h"
#endif
@@ -25,7 +24,5 @@ int main(int argc, char** argv) {
base::EnsureNSPRInit();
#endif
- net::HttpStreamFactory::set_create_new_spdy_session_for_http(true);
-
return test_suite.Run();
}
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 508cc28..8a7a902 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -4834,6 +4834,7 @@ TEST_F(HttpNetworkTransactionTest, GroupNameForHTTPProxyConnections) {
"ssl/www.google.com:443",
true,
},
+
{
"http_proxy",
"http://host.with.alternate/direct",
@@ -4899,6 +4900,7 @@ TEST_F(HttpNetworkTransactionTest, GroupNameForSOCKSConnections) {
"socks5/ssl/www.google.com:443",
true,
},
+
{
"socks4://socks_proxy:1080",
"http://host.with.alternate/direct",
@@ -7409,56 +7411,4 @@ TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) {
EXPECT_EQ(OK, callback.WaitForResult());
}
-
-TEST_F(HttpNetworkTransactionTest, DoNotCreateSpdySessionForHttp) {
- HttpStreamFactory::set_create_new_spdy_session_for_http(false);
- HttpStreamFactory::set_use_alternate_protocols(true);
- HttpStreamFactory::set_next_protos(kExpectedNPNString);
-
- SessionDependencies session_deps;
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
- MockRead data_reads[] = {
- MockRead("HTTP/1.1 200 OK\r\n\r\n"),
- MockRead("hello world"),
- MockRead(true, OK),
- };
- StaticSocketDataProvider data(
- data_reads, arraysize(data_reads), NULL, 0);
- session_deps.socket_factory.AddSocketDataProvider(&data);
-
- TestCompletionCallback callback;
-
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
- HostPortPair http_host_port_pair("www.google.com", 80);
- HttpAlternateProtocols* alternate_protocols =
- session->mutable_alternate_protocols();
- alternate_protocols->SetAlternateProtocolFor(
- http_host_port_pair, 443 /* port is ignored */,
- HttpAlternateProtocols::NPN_SPDY_2);
-
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
- int rv = trans->Start(&request, &callback, BoundNetLog());
- EXPECT_EQ(ERR_IO_PENDING, rv);
- EXPECT_EQ(OK, callback.WaitForResult());
-
- const HttpResponseInfo* response = trans->GetResponseInfo();
- ASSERT_TRUE(response != NULL);
- ASSERT_TRUE(response->headers != NULL);
- EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine());
-
- std::string response_data;
- ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data));
- EXPECT_EQ("hello world", response_data);
-
- HttpStreamFactory::set_next_protos("");
- HttpStreamFactory::set_use_alternate_protocols(false);
- HttpStreamFactory::set_create_new_spdy_session_for_http(true);
-}
-
} // namespace net
diff --git a/net/http/http_stream_factory.cc b/net/http/http_stream_factory.cc
index f471a4f..bbe2878 100644
--- a/net/http/http_stream_factory.cc
+++ b/net/http/http_stream_factory.cc
@@ -27,8 +27,6 @@ bool HttpStreamFactory::force_spdy_over_ssl_ = true;
bool HttpStreamFactory::force_spdy_always_ = false;
// static
bool HttpStreamFactory::ignore_certificate_errors_ = false;
-// static
-bool HttpStreamFactory::g_create_new_spdy_session_for_http_ = false;
// static
void HttpStreamFactory::SetHostMappingRules(const std::string& rules) {
@@ -140,3 +138,4 @@ GURL HttpStreamFactory::ApplyHostMappingRules(const GURL& url,
}
} // namespace net
+
diff --git a/net/http/http_stream_factory.h b/net/http/http_stream_factory.h
index db50038..804ef35 100644
--- a/net/http/http_stream_factory.h
+++ b/net/http/http_stream_factory.h
@@ -89,14 +89,6 @@ class HttpStreamFactory : public StreamFactory,
return ignore_certificate_errors_;
}
- static void set_create_new_spdy_session_for_http(bool value) {
- g_create_new_spdy_session_for_http_ = value;
- }
-
- static bool create_new_spdy_session_for_http() {
- return g_create_new_spdy_session_for_http_;
- }
-
static void SetHostMappingRules(const std::string& rules);
private:
@@ -108,7 +100,6 @@ class HttpStreamFactory : public StreamFactory,
static bool force_spdy_over_ssl_;
static bool force_spdy_always_;
static bool ignore_certificate_errors_;
- static bool g_create_new_spdy_session_for_http_;
DISALLOW_COPY_AND_ASSIGN(HttpStreamFactory);
};
@@ -116,3 +107,4 @@ class HttpStreamFactory : public StreamFactory,
} // namespace net
#endif // NET_HTTP_HTTP_STREAM_FACTORY_H_
+
diff --git a/net/http/http_stream_request.cc b/net/http/http_stream_request.cc
index 35832c7..59a7e8c 100644
--- a/net/http/http_stream_request.cc
+++ b/net/http/http_stream_request.cc
@@ -422,18 +422,7 @@ int HttpStreamRequest::DoResolveProxyComplete(int result) {
return ERR_NO_SUPPORTED_PROXIES;
}
- HostPortProxyPair pair(endpoint_, proxy_info()->proxy_server());
- if (!factory_->create_new_spdy_session_for_http() &&
- alternate_protocol_mode_ == kUsingAlternateProtocol &&
- !session_->spdy_session_pool()->HasSession(pair)) {
- // If we don't already have a SpdySession, then don't pay the SSL handshake
- // cost of setup. Just use HTTP.
- next_state_ = STATE_RESOLVE_PROXY;
- alternate_protocol_mode_ = kDoNotUseAlternateProtocol;
- } else {
- next_state_ = STATE_INIT_CONNECTION;
- }
-
+ next_state_ = STATE_INIT_CONNECTION;
return OK;
}