The HttpRequestInfo object must outlive the HttpNetworkTransaction object because HttpRequestInfo is passed to HttpNetworkTransaction::Start() and HttpNetworkTransaction access the request info object in many places.
With the current code UploadData gets deleted before HttpStreamParser and that causes
read-after-free cases as shown in the below bug.
BUG=70825
TEST=verify that the valgrind issue mentioned in the bug gets fixed
Review URL: http://codereview.chromium.org/6327020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72954 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/http/http_network_transaction_unittest.cc b/net/http/http_network_transaction_unittest.cc
index 82011903..e5219a30 100644
--- a/net/http/http_network_transaction_unittest.cc
+++ b/net/http/http_network_transaction_unittest.cc
@@ -148,15 +148,15 @@
size_t reads_count) {
SimpleGetHelperResult out;
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
StaticSocketDataProvider data(data_reads, reads_count, NULL, 0);
session_deps.socket_factory.AddSocketDataProvider(&data);
@@ -564,15 +564,15 @@
// Do a request using the HEAD method. Verify that we don't try to read the
// message body (since HEAD has none).
TEST_F(HttpNetworkTransactionTest, Head) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "HEAD";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes1[] = {
MockWrite("HEAD / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -642,13 +642,13 @@
};
for (int i = 0; i < 2; ++i) {
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
TestCompletionCallback callback;
int rv = trans->Start(&request, &callback, BoundNetLog());
@@ -671,10 +671,6 @@
}
TEST_F(HttpNetworkTransactionTest, Ignores100) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.foo.com/");
@@ -682,6 +678,10 @@
request.upload_data->AppendBytes("foo", 3);
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead("HTTP/1.0 100 Continue\r\n\r\n"),
MockRead("HTTP/1.0 200 OK\r\n\r\n"),
@@ -715,15 +715,15 @@
// a 102 instead of a 100. Also, instead of HTTP/1.0 the response is
// HTTP/1.1 and the two status headers are read in one read.
TEST_F(HttpNetworkTransactionTest, Ignores1xx) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.foo.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead("HTTP/1.1 102 Unspecified status code\r\n\r\n"
"HTTP/1.1 200 OK\r\n\r\n"),
@@ -754,15 +754,15 @@
}
TEST_F(HttpNetworkTransactionTest, Incomplete100ThenEOF) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.foo.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead(false, "HTTP/1.0 100 Continue\r\n"),
MockRead(true, 0),
@@ -785,15 +785,15 @@
}
TEST_F(HttpNetworkTransactionTest, EmptyResponse) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.foo.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead(true, 0),
};
@@ -813,14 +813,14 @@
// transaction to resend the request.
void HttpNetworkTransactionTest::KeepAliveConnectionResendRequestTest(
const MockRead& read_failure) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.foo.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockRead data1_reads[] = {
MockRead("HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"),
MockRead("hello"),
@@ -876,15 +876,15 @@
}
TEST_F(HttpNetworkTransactionTest, NonKeepAliveConnectionReset) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead(true, ERR_CONNECTION_RESET),
MockRead("HTTP/1.0 200 OK\r\n\r\n"), // Should not be used
@@ -930,14 +930,14 @@
// Test that we correctly reuse a keep-alive connection after not explicitly
// reading the body.
TEST_F(HttpNetworkTransactionTest, KeepAliveAfterUnreadBody) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.foo.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
// Note that because all these reads happen in the same
// StaticSocketDataProvider, it shows that the same socket is being reused for
// all transactions.
@@ -1025,15 +1025,15 @@
// Test the request-challenge-retry sequence for basic auth.
// (basic auth is the easiest to mock, because it has no randomness).
TEST_F(HttpNetworkTransactionTest, BasicAuth) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1110,15 +1110,15 @@
}
TEST_F(HttpNetworkTransactionTest, DoNotSendAuth) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1153,14 +1153,14 @@
// Test the request-challenge-retry sequence for basic auth, over a keep-alive
// connection.
TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAlive) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1228,14 +1228,14 @@
// Test the request-challenge-retry sequence for basic auth, over a keep-alive
// connection and with no response body to drain.
TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveNoBody) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1301,14 +1301,14 @@
// Test the request-challenge-retry sequence for basic auth, over a keep-alive
// connection and with a large response body to drain.
TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveLargeBody) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1382,14 +1382,14 @@
// Test the request-challenge-retry sequence for basic auth, over a keep-alive
// connection, but the server gets impatient and closes the connection.
TEST_F(HttpNetworkTransactionTest, BasicAuthKeepAliveImpatientServer) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1473,18 +1473,18 @@
// Test the request-challenge-retry sequence for basic auth, over a connection
// that requires a restart when setting up an SSL tunnel.
TEST_F(HttpNetworkTransactionTest, BasicAuthProxyNoKeepAlive) {
- // Configure against proxy server "myproxy:70".
- SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
- CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
- session_deps.net_log = log.bound().net_log();
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("https://www.google.com/");
// when the no authentication data flag is set.
request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA;
+ // Configure against proxy server "myproxy:70".
+ SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
+ CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
+ session_deps.net_log = log.bound().net_log();
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes1[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -1583,6 +1583,13 @@
// Test the request-challenge-retry sequence for basic auth, over a keep-alive
// proxy connection, when setting up an SSL tunnel.
TEST_F(HttpNetworkTransactionTest, BasicAuthProxyKeepAlive) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ // Ensure that proxy authentication is attempted even
+ // when the no authentication data flag is set.
+ request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA;
+
// Configure against proxy server "myproxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
@@ -1591,13 +1598,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- // Ensure that proxy authentication is attempted even
- // when the no authentication data flag is set.
- request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA;
-
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes1[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -1697,6 +1697,11 @@
// Test that we don't read the response body when we fail to establish a tunnel,
// even if the user cancels the proxy's auth attempt.
TEST_F(HttpNetworkTransactionTest, BasicAuthProxyCancelTunnel) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
// Configure against proxy server "myproxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
@@ -1704,11 +1709,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -1755,16 +1755,16 @@
// Test when a server (non-proxy) returns a 407 (proxy-authenticate).
// The request should fail with ERR_UNEXPECTED_PROXY_AUTH.
TEST_F(HttpNetworkTransactionTest, UnexpectedProxyAuth) {
- // We are using a DIRECT connection (i.e. no proxy) for this session.
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ // We are using a DIRECT connection (i.e. no proxy) for this session.
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -1800,15 +1800,15 @@
// response came from the proxy or the server, so it is treated as if the proxy
// issued the challenge.
TEST_F(HttpNetworkTransactionTest, HttpsServerRequestsProxyAuthThroughProxy) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+
SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
session_deps.net_log = log.bound().net_log();
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
-
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes1[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -1857,16 +1857,16 @@
// Test a simple get through an HTTPS Proxy.
TEST_F(HttpNetworkTransactionTest, HttpsProxyGet) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
session_deps.net_log = log.bound().net_log();
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
-
// Since we have proxy, should use full url
MockWrite data_writes1[] = {
MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
@@ -1911,17 +1911,17 @@
// Test a SPDY get through an HTTPS Proxy.
TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGet) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+ request.load_flags = 0;
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
session_deps.net_log = log.bound().net_log();
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
// fetch http://www.google.com/ via SPDY
scoped_ptr<spdy::SpdyFrame> req(ConstructSpdyGet(NULL, 0, false, 1, LOWEST,
false));
@@ -1970,6 +1970,11 @@
// Test a SPDY get through an HTTPS Proxy.
TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyGetWithProxyAuth) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+ request.load_flags = 0;
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(
ProxyService::CreateFixed("https://proxy:70"));
@@ -1977,11 +1982,6 @@
session_deps.net_log = log.bound().net_log();
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
// The first request will be a bare GET, the second request will be a
// GET with a Proxy-Authorization header.
scoped_ptr<spdy::SpdyFrame> req_get(
@@ -2077,6 +2077,11 @@
// Test a SPDY CONNECT through an HTTPS Proxy to an HTTPS (non-SPDY) Server.
TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectHttps) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
@@ -2085,11 +2090,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
// CONNECT to www.google.com:443 via SPDY
scoped_ptr<spdy::SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1));
// fetch https://www.google.com/ via HTTP
@@ -2155,6 +2155,11 @@
// Test a SPDY CONNECT through an HTTPS Proxy to a SPDY server.
TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectSpdy) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
@@ -2163,11 +2168,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
// CONNECT to www.google.com:443 via SPDY
scoped_ptr<spdy::SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1));
// fetch https://www.google.com/ via SPDY
@@ -2229,6 +2229,11 @@
// Test a SPDY CONNECT failure through an HTTPS Proxy.
TEST_F(HttpNetworkTransactionTest, HttpsProxySpdyConnectFailure) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
// Configure against https proxy server "proxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
@@ -2237,11 +2242,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
// CONNECT to www.google.com:443 via SPDY
scoped_ptr<spdy::SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1));
scoped_ptr<spdy::SpdyFrame> get(ConstructSpdyRstStream(1, spdy::CANCEL));
@@ -2290,18 +2290,18 @@
// Test the challenge-response-retry sequence through an HTTPS Proxy
TEST_F(HttpNetworkTransactionTest, HttpsProxyAuthRetry) {
- // Configure against https proxy server "proxy:70".
- SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
- CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
- session_deps.net_log = log.bound().net_log();
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
// when the no authentication data flag is set.
request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA;
+ // Configure against https proxy server "proxy:70".
+ SessionDependencies session_deps(ProxyService::CreateFixed("https://proxy:70"));
+ CapturingBoundNetLog log(CapturingNetLog::kUnbounded);
+ session_deps.net_log = log.bound().net_log();
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
// Since we have proxy, should use full url
MockWrite data_writes1[] = {
MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
@@ -2382,16 +2382,16 @@
void HttpNetworkTransactionTest::ConnectStatusHelperWithExpectedStatus(
const MockRead& status, int expected_status) {
- // Configure against proxy server "myproxy:70".
- SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
-
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("https://www.google.com/");
request.load_flags = 0;
+ // Configure against proxy server "myproxy:70".
+ SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
+
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -2594,17 +2594,17 @@
// authentication. Again, this uses basic auth for both since that is
// the simplest to mock.
TEST_F(HttpNetworkTransactionTest, BasicAuthProxyThenServer) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+ request.load_flags = 0;
+
SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
// Configure against proxy server "myproxy:70".
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(
CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
MockWrite data_writes1[] = {
MockWrite("GET http://www.google.com/ HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -2731,16 +2731,16 @@
// Enter the correct password and authenticate successfully.
TEST_F(HttpNetworkTransactionTest, NTLMAuth1) {
- HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom1,
- MockGetHostName);
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://172.22.68.17/kids/login.aspx");
request.load_flags = 0;
+ HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom1,
+ MockGetHostName);
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
"Host: 172.22.68.17\r\n"
@@ -2859,16 +2859,16 @@
// Enter a wrong password, and then the correct one.
TEST_F(HttpNetworkTransactionTest, NTLMAuth2) {
- HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom2,
- MockGetHostName);
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://172.22.68.17/kids/login.aspx");
request.load_flags = 0;
+ HttpAuthHandlerNTLM::ScopedProcSetter proc_setter(MockGenerateRandom2,
+ MockGetHostName);
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
MockWrite data_writes1[] = {
MockWrite("GET /kids/login.aspx HTTP/1.1\r\n"
"Host: 172.22.68.17\r\n"
@@ -3066,15 +3066,15 @@
// After some maximum number of bytes is consumed, the transaction should
// fail with ERR_RESPONSE_HEADERS_TOO_BIG.
TEST_F(HttpNetworkTransactionTest, LargeHeadersNoBody) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
// Respond with 300 kb of headers (we should fail after 256 kb).
std::string large_headers_string;
FillLargeHeadersString(&large_headers_string, 300 * 1024);
@@ -3104,6 +3104,11 @@
// establish tunnel.
// http://code.google.com/p/chromium/issues/detail?id=3772
TEST_F(HttpNetworkTransactionTest, DontRecycleTCPSocketForSSLTunnel) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
// Configure against proxy server "myproxy:70".
SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
@@ -3111,11 +3116,6 @@
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
// Since we have proxy, should try to establish tunnel.
MockWrite data_writes1[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
@@ -3162,16 +3162,16 @@
// Make sure that we recycle a socket after reading all of the response body.
TEST_F(HttpNetworkTransactionTest, RecycleSocket) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockRead data_reads[] = {
// A part of the response body is received with the response headers.
MockRead("HTTP/1.1 200 OK\r\nContent-Length: 11\r\n\r\nhel"),
@@ -3372,11 +3372,6 @@
// Make sure that we recycle a socket after a zero-length response.
// http://crbug.com/9880
TEST_F(HttpNetworkTransactionTest, RecycleSocketAfterZeroContentLength) {
- SessionDependencies session_deps;
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
-
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/csi?v=3&s=web&action=&"
@@ -3385,6 +3380,11 @@
"rt=prt.2642,ol.2649,xjs.2951");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockRead data_reads[] = {
MockRead("HTTP/1.1 204 No Content\r\n"
"Content-Length: 0\r\n"
@@ -3517,15 +3517,15 @@
// an identity in the URL. The request should be sent as normal, but when
// it fails the identity from the URL is used to answer the challenge.
TEST_F(HttpNetworkTransactionTest, AuthIdentityInURL) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
// Note: the URL has a username:password in it.
request.url = GURL("http://foo:b@[email protected]/");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
// The password contains an escaped character -- for this test to pass it
// will need to be unescaped by HttpNetworkTransaction.
EXPECT_EQ("b%40r", request.url.password());
@@ -3599,10 +3599,6 @@
// an incorrect identity in the URL. The identity from the URL should be used
// only once.
TEST_F(HttpNetworkTransactionTest, WrongAuthIdentityInURL) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
// Note: the URL has a username:password in it. The password "baz" is
@@ -3611,6 +3607,10 @@
request.load_flags = LOAD_NORMAL;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes1[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -3716,13 +3716,13 @@
// Transaction 1: authenticate (foo, bar) on MyRealm1
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/x/y/z");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/y/z HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -3795,8 +3795,6 @@
// Transaction 2: authenticate (foo2, bar2) on MyRealm2
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
// Note that Transaction 1 was at /x/y/z, so this is in the same
@@ -3804,6 +3802,8 @@
request.url = GURL("http://www.google.com/x/y/a/b");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/y/a/b HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -3881,13 +3881,13 @@
// Transaction 3: Resend a request in MyRealm's protection space --
// succeed with preemptive authorization.
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/x/y/z2");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/y/z2 HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -3928,13 +3928,13 @@
// Transaction 4: request another URL in MyRealm (however the
// url is not known to belong to the protection space, so no pre-auth).
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/x/1");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/1 HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -3997,13 +3997,13 @@
// Transaction 5: request a URL in MyRealm, but the server rejects the
// cached identity. Should invalidate and re-prompt.
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/p/q/t");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /p/q/t HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4115,13 +4115,13 @@
// Transaction 1: authenticate (foo, bar) on MyRealm1
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/x/y/z");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/y/z HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4197,8 +4197,6 @@
// This will preemptively add an Authorization header which should have an
// "nc" value of 2 (as compared to 1 in the first use.
{
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
// Note that Transaction 1 was at /x/y/z, so this is in the same
@@ -4206,6 +4204,8 @@
request.url = GURL("http://www.google.com/x/y/a/b");
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
MockWrite data_writes1[] = {
MockWrite("GET /x/y/a/b HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4286,15 +4286,15 @@
// Test HTTPS connections to a site with a bad certificate
TEST_F(HttpNetworkTransactionTest, HTTPSBadCertificate) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("https://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4787,16 +4787,16 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_UserAgent) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent,
"Chromium Ultra Awesome X Edition");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4826,16 +4826,16 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_UserAgentOverTunnel) {
- SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("https://www.google.com/");
request.extra_headers.SetHeader(HttpRequestHeaders::kUserAgent,
"Chromium Ultra Awesome X Edition");
+ SessionDependencies session_deps(ProxyService::CreateFixed("myproxy:70"));
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("CONNECT www.google.com:443 HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4864,16 +4864,16 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_Referer) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
request.referrer = GURL("http://the.previous.site.com/");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4903,14 +4903,14 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_PostContentLengthZero) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("POST / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4940,14 +4940,14 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_PutContentLengthZero) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "PUT";
request.url = GURL("http://www.google.com/");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("PUT / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -4977,14 +4977,14 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_HeadContentLengthZero) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "HEAD";
request.url = GURL("http://www.google.com/");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("HEAD / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -5014,15 +5014,15 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_CacheControlNoCache) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = LOAD_BYPASS_CACHE;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -5054,15 +5054,15 @@
TEST_F(HttpNetworkTransactionTest,
BuildRequest_CacheControlValidateCache) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = LOAD_VALIDATE_CACHE;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -5092,15 +5092,15 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeaders) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.extra_headers.SetHeader("FooHeader", "Bar");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -5130,10 +5130,6 @@
}
TEST_F(HttpNetworkTransactionTest, BuildRequest_ExtraHeadersStripped) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
@@ -5141,6 +5137,10 @@
request.extra_headers.SetHeader("hEllo", "Kitty");
request.extra_headers.SetHeader("FoO", "bar");
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockWrite data_writes[] = {
MockWrite("GET / HTTP/1.1\r\n"
"Host: www.google.com\r\n"
@@ -5171,17 +5171,17 @@
}
TEST_F(HttpNetworkTransactionTest, SOCKS4_HTTP_GET) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+ request.load_flags = 0;
+
SessionDependencies session_deps(
ProxyService::CreateFixed("socks4://myproxy:1080"));
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
char write_buffer[] = { 0x04, 0x01, 0x00, 0x50, 127, 0, 0, 1, 0 };
char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
@@ -5222,17 +5222,17 @@
}
TEST_F(HttpNetworkTransactionTest, SOCKS4_SSL_GET) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
SessionDependencies session_deps(
ProxyService::CreateFixed("socks4://myproxy:1080"));
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
unsigned char write_buffer[] = { 0x04, 0x01, 0x01, 0xBB, 127, 0, 0, 1, 0 };
unsigned char read_buffer[] = { 0x00, 0x5A, 0x00, 0x00, 0, 0, 0, 0 };
@@ -5278,17 +5278,17 @@
}
TEST_F(HttpNetworkTransactionTest, SOCKS5_HTTP_GET) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+ request.load_flags = 0;
+
SessionDependencies session_deps(
ProxyService::CreateFixed("socks5://myproxy:1080"));
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
- request.load_flags = 0;
-
const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 };
const char kSOCKS5GreetResponse[] = { 0x05, 0x00 };
const char kSOCKS5OkRequest[] = {
@@ -5343,17 +5343,17 @@
}
TEST_F(HttpNetworkTransactionTest, SOCKS5_SSL_GET) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("https://www.google.com/");
+ request.load_flags = 0;
+
SessionDependencies session_deps(
ProxyService::CreateFixed("socks5://myproxy:1080"));
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("https://www.google.com/");
- request.load_flags = 0;
-
const char kSOCKS5GreetRequest[] = { 0x05, 0x01, 0x00 };
const char kSOCKS5GreetResponse[] = { 0x05, 0x00 };
const unsigned char kSOCKS5OkRequest[] = {
@@ -5438,13 +5438,13 @@
int GroupNameTransactionHelper(
const std::string& url,
const scoped_refptr<HttpNetworkSession>& session) {
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL(url);
request.load_flags = 0;
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
+
TestCompletionCallback callback;
// We do not complete this request, the dtor will clean the transaction up.
@@ -5636,6 +5636,10 @@
}
TEST_F(HttpNetworkTransactionTest, ReconsiderProxyAfterFailedConnection) {
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.url = GURL("http://www.google.com/");
+
SessionDependencies session_deps(
ProxyService::CreateFixed("myproxy:70;foobar:80"));
@@ -5646,10 +5650,6 @@
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
- HttpRequestInfo request;
- request.method = "GET";
- request.url = GURL("http://www.google.com/");
-
TestCompletionCallback callback;
int rv = trans->Start(&request, &callback, BoundNetLog());
@@ -5706,6 +5706,12 @@
EXPECT_TRUE(referrer.is_valid());
ResolutionReferrerObserver resolution_observer(referrer);
+ // Issue a request, containing an HTTP referrer.
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.referrer = referrer;
+ request.url = GURL("http://www.google.com/");
+
SessionDependencies session_deps;
scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(
CreateSession(&session_deps)));
@@ -5720,12 +5726,6 @@
StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
session_deps.socket_factory.AddSocketDataProvider(&data);
- // Issue a request, containing an HTTP referrer.
- HttpRequestInfo request;
- request.method = "GET";
- request.referrer = referrer;
- request.url = GURL("http://www.google.com/");
-
// Run the request until it fails reading from the socket.
TestCompletionCallback callback;
int rv = trans->Start(&request, &callback, BoundNetLog());
@@ -5740,6 +5740,12 @@
// Base test to make sure that when the load flags for a request specify to
// bypass the cache, the DNS cache is not used.
void BypassHostCacheOnRefreshHelper(int load_flags) {
+ // Issue a request, asking to bypass the cache(s).
+ HttpRequestInfo request;
+ request.method = "GET";
+ request.load_flags = load_flags;
+ request.url = GURL("http://www.google.com/");
+
SessionDependencies session_deps;
// Select a host resolver that does caching.
@@ -5775,12 +5781,6 @@
StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
session_deps.socket_factory.AddSocketDataProvider(&data);
- // Issue a request, asking to bypass the cache(s).
- HttpRequestInfo request;
- request.method = "GET";
- request.load_flags = load_flags;
- request.url = GURL("http://www.google.com/");
-
// Run the request.
TestCompletionCallback callback;
rv = trans->Start(&request, &callback, BoundNetLog());
@@ -5996,15 +5996,15 @@
}
TEST_F(HttpNetworkTransactionTest, LargeContentLengthThenClose) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
MockRead data_reads[] = {
MockRead("HTTP/1.0 200 OK\r\nContent-Length:6719476739\r\n\r\n"),
MockRead(false, OK),
@@ -6032,16 +6032,16 @@
}
TEST_F(HttpNetworkTransactionTest, UploadFileSmallerThanLength) {
- SessionDependencies session_deps;
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "POST";
request.url = GURL("http://www.google.com/upload");
request.upload_data = new UploadData;
request.load_flags = 0;
+ SessionDependencies session_deps;
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
FilePath temp_file_path;
ASSERT_TRUE(file_util::CreateTemporaryFile(&temp_file_path));
const uint64 kFakeSize = 100000; // file is actually blank
@@ -6085,6 +6085,12 @@
}
TEST_F(HttpNetworkTransactionTest, UploadUnreadableFile) {
+ HttpRequestInfo request;
+ request.method = "POST";
+ request.url = GURL("http://www.google.com/upload");
+ request.upload_data = new UploadData;
+ request.load_flags = 0;
+
// If we try to upload an unreadable file, the network stack should report
// the file size as zero and upload zero bytes for that file.
SessionDependencies session_deps;
@@ -6098,12 +6104,6 @@
temp_file_content.length()));
ASSERT_TRUE(file_util::MakeFileUnreadable(temp_file));
- HttpRequestInfo request;
- request.method = "POST";
- request.url = GURL("http://www.google.com/upload");
- request.upload_data = new UploadData;
- request.load_flags = 0;
-
std::vector<UploadData::Element> elements;
UploadData::Element element;
element.SetToFilePath(temp_file);
@@ -6142,6 +6142,12 @@
}
TEST_F(HttpNetworkTransactionTest, UnreadableUploadFileAfterAuthRestart) {
+ HttpRequestInfo request;
+ request.method = "POST";
+ request.url = GURL("http://www.google.com/upload");
+ request.upload_data = new UploadData;
+ request.load_flags = 0;
+
SessionDependencies session_deps;
scoped_ptr<HttpTransaction> trans(
new HttpNetworkTransaction(CreateSession(&session_deps)));
@@ -6153,12 +6159,6 @@
ASSERT_TRUE(file_util::WriteFile(temp_file, temp_file_contents.c_str(),
temp_file_contents.length()));
- HttpRequestInfo request;
- request.method = "POST";
- request.url = GURL("http://www.google.com/upload");
- request.upload_data = new UploadData;
- request.load_flags = 0;
-
std::vector<UploadData::Element> elements;
UploadData::Element element;
element.SetToFilePath(temp_file);
@@ -7384,15 +7384,15 @@
origin, BoundNetLog());
auth_factory->set_mock_handler(auth_handler, HttpAuth::AUTH_SERVER);
- scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
- scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
-
int rv = OK;
const HttpResponseInfo* response = NULL;
HttpRequestInfo request;
request.method = "GET";
request.url = origin;
request.load_flags = 0;
+
+ scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
+ scoped_ptr<HttpTransaction> trans(new HttpNetworkTransaction(session));
TestCompletionCallback callback;
const MockWrite kGet(
@@ -7859,16 +7859,16 @@
MockRead(false, OK),
};
- SessionDependencies session_deps;
- session_deps.host_resolver->set_synchronous_mode(true);
- scoped_ptr<HttpTransaction> trans(
- new HttpNetworkTransaction(CreateSession(&session_deps)));
-
HttpRequestInfo request;
request.method = "GET";
request.url = GURL("http://www.google.com/");
request.load_flags = 0;
+ SessionDependencies session_deps;
+ session_deps.host_resolver->set_synchronous_mode(true);
+ scoped_ptr<HttpTransaction> trans(
+ new HttpNetworkTransaction(CreateSession(&session_deps)));
+
StaticSocketDataProvider data(data_reads, arraysize(data_reads), NULL, 0);
data.set_connect_data(mock_connect);
session_deps.socket_factory.AddSocketDataProvider(&data);
@@ -8119,6 +8119,11 @@
// Given a net error, cause that error to be returned from the first Write()
// call and verify that the HttpTransaction fails with that error.
static void CheckErrorIsPassedBack(int error, bool async) {
+ net::HttpRequestInfo request_info;
+ request_info.url = GURL("https://www.example.com/");
+ request_info.method = "GET";
+ request_info.load_flags = net::LOAD_NORMAL;
+
SessionDependencies session_deps;
SSLSocketDataProvider ssl_data(async, OK);
@@ -8133,11 +8138,6 @@
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session));
- net::HttpRequestInfo request_info;
- request_info.url = GURL("https://www.example.com/");
- request_info.method = "GET";
- request_info.load_flags = net::LOAD_NORMAL;
-
TestCompletionCallback callback;
int rv = trans->Start(&request_info, &callback, net::BoundNetLog());
if (rv == net::ERR_IO_PENDING)
@@ -8160,6 +8160,11 @@
// Test that the transaction is restarted in the event of an NPN misprediction.
TEST_F(HttpNetworkTransactionTest, NPNMispredict) {
+ net::HttpRequestInfo request_info;
+ request_info.url = GURL("https://www.example.com/");
+ request_info.method = "GET";
+ request_info.load_flags = net::LOAD_NORMAL;
+
SessionDependencies session_deps;
SSLSocketDataProvider ssl_data1(true /* async */, OK);
@@ -8191,11 +8196,6 @@
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session));
- net::HttpRequestInfo request_info;
- request_info.url = GURL("https://www.example.com/");
- request_info.method = "GET";
- request_info.load_flags = net::LOAD_NORMAL;
-
TestCompletionCallback callback;
int rv = trans->Start(&request_info, &callback, net::BoundNetLog());
if (rv == net::ERR_IO_PENDING)
@@ -8215,6 +8215,11 @@
// 3) The initial TLS handshake requests a client certificate.
// 4) The client supplies an invalid/unacceptable certificate.
TEST_F(HttpNetworkTransactionTest, ClientAuthCertCache_Direct_NoFalseStart) {
+ net::HttpRequestInfo request_info;
+ request_info.url = GURL("https://www.example.com/");
+ request_info.method = "GET";
+ request_info.load_flags = net::LOAD_NORMAL;
+
SessionDependencies session_deps;
scoped_refptr<SSLCertRequestInfo> cert_request(new SSLCertRequestInfo());
@@ -8260,11 +8265,6 @@
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session));
- net::HttpRequestInfo request_info;
- request_info.url = GURL("https://www.example.com/");
- request_info.method = "GET";
- request_info.load_flags = net::LOAD_NORMAL;
-
// Begin the SSL handshake with the peer. This consumes ssl_data1.
TestCompletionCallback callback;
int rv = trans->Start(&request_info, &callback, net::BoundNetLog());
@@ -8308,6 +8308,11 @@
// 3) The initial TLS handshake requests a client certificate.
// 4) The client supplies an invalid/unacceptable certificate.
TEST_F(HttpNetworkTransactionTest, ClientAuthCertCache_Direct_FalseStart) {
+ net::HttpRequestInfo request_info;
+ request_info.url = GURL("https://www.example.com/");
+ request_info.method = "GET";
+ request_info.load_flags = net::LOAD_NORMAL;
+
SessionDependencies session_deps;
scoped_refptr<SSLCertRequestInfo> cert_request(new SSLCertRequestInfo());
@@ -8365,11 +8370,6 @@
scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps));
scoped_ptr<HttpNetworkTransaction> trans(new HttpNetworkTransaction(session));
- net::HttpRequestInfo request_info;
- request_info.url = GURL("https://www.example.com/");
- request_info.method = "GET";
- request_info.load_flags = net::LOAD_NORMAL;
-
// Begin the initial SSL handshake.
TestCompletionCallback callback;
int rv = trans->Start(&request_info, &callback, net::BoundNetLog());