| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_transaction.h" | 5 #include "net/http/http_network_transaction.h" |
| 6 | 6 |
| 7 #include <math.h> // ceil | 7 #include <math.h> // ceil |
| 8 #include <stdarg.h> | 8 #include <stdarg.h> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 7846 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7857 | 7857 |
| 7858 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( | 7858 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( |
| 7859 NextProto next_proto, | 7859 NextProto next_proto, |
| 7860 SpdySessionDependencies* session_deps_) { | 7860 SpdySessionDependencies* session_deps_) { |
| 7861 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); | 7861 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); |
| 7862 | 7862 |
| 7863 base::WeakPtr<HttpServerProperties> http_server_properties = | 7863 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 7864 session->http_server_properties(); | 7864 session->http_server_properties(); |
| 7865 AlternativeService alternative_service( | 7865 AlternativeService alternative_service( |
| 7866 AlternateProtocolFromNextProto(next_proto), "", 443); | 7866 AlternateProtocolFromNextProto(next_proto), "", 443); |
| 7867 http_server_properties->SetAlternativeService( | 7867 http_server_properties->AddAlternativeService( |
| 7868 HostPortPair("host.with.alternate", 80), alternative_service, 1.0); | 7868 HostPortPair("host.with.alternate", 80), alternative_service, 1.0); |
| 7869 | 7869 |
| 7870 return session; | 7870 return session; |
| 7871 } | 7871 } |
| 7872 | 7872 |
| 7873 int GroupNameTransactionHelper( | 7873 int GroupNameTransactionHelper( |
| 7874 const std::string& url, | 7874 const std::string& url, |
| 7875 const scoped_refptr<HttpNetworkSession>& session) { | 7875 const scoped_refptr<HttpNetworkSession>& session) { |
| 7876 HttpRequestInfo request; | 7876 HttpRequestInfo request; |
| 7877 request.method = "GET"; | 7877 request.method = "GET"; |
| (...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8739 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8739 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8740 scoped_ptr<HttpTransaction> trans( | 8740 scoped_ptr<HttpTransaction> trans( |
| 8741 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8741 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8742 | 8742 |
| 8743 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8743 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8744 EXPECT_EQ(ERR_IO_PENDING, rv); | 8744 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8745 | 8745 |
| 8746 HostPortPair http_host_port_pair("www.example.org", 80); | 8746 HostPortPair http_host_port_pair("www.example.org", 80); |
| 8747 HttpServerProperties& http_server_properties = | 8747 HttpServerProperties& http_server_properties = |
| 8748 *session->http_server_properties(); | 8748 *session->http_server_properties(); |
| 8749 AlternativeService alternative_service = | 8749 AlternativeServiceVector alternative_service_vector = |
| 8750 http_server_properties.GetAlternativeService(http_host_port_pair); | 8750 http_server_properties.GetAlternativeServices(http_host_port_pair); |
| 8751 EXPECT_EQ(alternative_service.protocol, UNINITIALIZED_ALTERNATE_PROTOCOL); | 8751 EXPECT_EQ(0u, alternative_service_vector.size()); |
| 8752 | 8752 |
| 8753 EXPECT_EQ(OK, callback.WaitForResult()); | 8753 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8754 | 8754 |
| 8755 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8755 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8756 ASSERT_TRUE(response != NULL); | 8756 ASSERT_TRUE(response != NULL); |
| 8757 ASSERT_TRUE(response->headers.get() != NULL); | 8757 ASSERT_TRUE(response->headers.get() != NULL); |
| 8758 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8758 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8759 EXPECT_FALSE(response->was_fetched_via_spdy); | 8759 EXPECT_FALSE(response->was_fetched_via_spdy); |
| 8760 EXPECT_FALSE(response->was_npn_negotiated); | 8760 EXPECT_FALSE(response->was_npn_negotiated); |
| 8761 | 8761 |
| 8762 std::string response_data; | 8762 std::string response_data; |
| 8763 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8763 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8764 EXPECT_EQ("hello world", response_data); | 8764 EXPECT_EQ("hello world", response_data); |
| 8765 | 8765 |
| 8766 alternative_service = | 8766 alternative_service_vector = |
| 8767 http_server_properties.GetAlternativeService(http_host_port_pair); | 8767 http_server_properties.GetAlternativeServices(http_host_port_pair); |
| 8768 EXPECT_EQ(443, alternative_service.port); | 8768 ASSERT_EQ(1u, alternative_service_vector.size()); |
| 8769 EXPECT_EQ(443, alternative_service_vector[0].port); |
| 8769 EXPECT_EQ(AlternateProtocolFromNextProto(GetParam()), | 8770 EXPECT_EQ(AlternateProtocolFromNextProto(GetParam()), |
| 8770 alternative_service.protocol); | 8771 alternative_service_vector[0].protocol); |
| 8771 } | 8772 } |
| 8772 | 8773 |
| 8773 TEST_P(HttpNetworkTransactionTest, EmptyAlternateProtocolHeader) { | 8774 TEST_P(HttpNetworkTransactionTest, EmptyAlternateProtocolHeader) { |
| 8774 session_deps_.next_protos = SpdyNextProtos(); | 8775 session_deps_.next_protos = SpdyNextProtos(); |
| 8775 session_deps_.use_alternate_protocols = true; | 8776 session_deps_.use_alternate_protocols = true; |
| 8776 | 8777 |
| 8777 MockRead data_reads[] = { | 8778 MockRead data_reads[] = { |
| 8778 MockRead("HTTP/1.1 200 OK\r\n"), | 8779 MockRead("HTTP/1.1 200 OK\r\n"), |
| 8779 MockRead("Alternate-Protocol: \r\n\r\n"), | 8780 MockRead("Alternate-Protocol: \r\n\r\n"), |
| 8780 MockRead("hello world"), | 8781 MockRead("hello world"), |
| (...skipping 10 matching lines...) Expand all Loading... |
| 8791 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8792 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8792 | 8793 |
| 8793 TestCompletionCallback callback; | 8794 TestCompletionCallback callback; |
| 8794 | 8795 |
| 8795 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8796 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8796 | 8797 |
| 8797 HostPortPair http_host_port_pair("www.example.org", 80); | 8798 HostPortPair http_host_port_pair("www.example.org", 80); |
| 8798 HttpServerProperties& http_server_properties = | 8799 HttpServerProperties& http_server_properties = |
| 8799 *session->http_server_properties(); | 8800 *session->http_server_properties(); |
| 8800 AlternativeService alternative_service(QUIC, "", 80); | 8801 AlternativeService alternative_service(QUIC, "", 80); |
| 8801 http_server_properties.SetAlternativeService(http_host_port_pair, | 8802 http_server_properties.AddAlternativeService(http_host_port_pair, |
| 8802 alternative_service, 1.0); | 8803 alternative_service, 1.0); |
| 8803 | 8804 |
| 8804 alternative_service = | 8805 AlternativeServiceVector alternative_service_vector = |
| 8805 http_server_properties.GetAlternativeService(http_host_port_pair); | 8806 http_server_properties.GetAlternativeServices(http_host_port_pair); |
| 8806 EXPECT_EQ(alternative_service.protocol, QUIC); | 8807 ASSERT_EQ(1u, alternative_service_vector.size()); |
| 8808 EXPECT_EQ(QUIC, alternative_service_vector[0].protocol); |
| 8807 | 8809 |
| 8808 scoped_ptr<HttpTransaction> trans( | 8810 scoped_ptr<HttpTransaction> trans( |
| 8809 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8811 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8810 | 8812 |
| 8811 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8813 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8812 EXPECT_EQ(ERR_IO_PENDING, rv); | 8814 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8813 | 8815 |
| 8814 EXPECT_EQ(OK, callback.WaitForResult()); | 8816 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8815 | 8817 |
| 8816 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8818 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8817 ASSERT_TRUE(response != NULL); | 8819 ASSERT_TRUE(response != NULL); |
| 8818 ASSERT_TRUE(response->headers.get() != NULL); | 8820 ASSERT_TRUE(response->headers.get() != NULL); |
| 8819 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8821 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8820 EXPECT_FALSE(response->was_fetched_via_spdy); | 8822 EXPECT_FALSE(response->was_fetched_via_spdy); |
| 8821 EXPECT_FALSE(response->was_npn_negotiated); | 8823 EXPECT_FALSE(response->was_npn_negotiated); |
| 8822 | 8824 |
| 8823 std::string response_data; | 8825 std::string response_data; |
| 8824 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8826 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8825 EXPECT_EQ("hello world", response_data); | 8827 EXPECT_EQ("hello world", response_data); |
| 8826 | 8828 |
| 8827 alternative_service = | 8829 alternative_service_vector = |
| 8828 http_server_properties.GetAlternativeService(http_host_port_pair); | 8830 http_server_properties.GetAlternativeServices(http_host_port_pair); |
| 8829 EXPECT_EQ(alternative_service.protocol, UNINITIALIZED_ALTERNATE_PROTOCOL); | 8831 EXPECT_EQ(0u, alternative_service_vector.size()); |
| 8830 } | 8832 } |
| 8831 | 8833 |
| 8832 TEST_P(HttpNetworkTransactionTest, | 8834 TEST_P(HttpNetworkTransactionTest, |
| 8833 MarkBrokenAlternateProtocolAndFallback) { | 8835 MarkBrokenAlternateProtocolAndFallback) { |
| 8834 session_deps_.use_alternate_protocols = true; | 8836 session_deps_.use_alternate_protocols = true; |
| 8835 | 8837 |
| 8836 HttpRequestInfo request; | 8838 HttpRequestInfo request; |
| 8837 request.method = "GET"; | 8839 request.method = "GET"; |
| 8838 request.url = GURL("http://www.example.org/"); | 8840 request.url = GURL("http://www.example.org/"); |
| 8839 request.load_flags = 0; | 8841 request.load_flags = 0; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 8852 data_reads, arraysize(data_reads), NULL, 0); | 8854 data_reads, arraysize(data_reads), NULL, 0); |
| 8853 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8855 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8854 | 8856 |
| 8855 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8857 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8856 | 8858 |
| 8857 base::WeakPtr<HttpServerProperties> http_server_properties = | 8859 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8858 session->http_server_properties(); | 8860 session->http_server_properties(); |
| 8859 const HostPortPair host_port_pair = HostPortPair::FromURL(request.url); | 8861 const HostPortPair host_port_pair = HostPortPair::FromURL(request.url); |
| 8860 // Port must be < 1024, or the header will be ignored (since initial port was | 8862 // Port must be < 1024, or the header will be ignored (since initial port was |
| 8861 // port 80 (another restricted port). | 8863 // port 80 (another restricted port). |
| 8862 AlternativeService alternative_service( | 8864 const AlternativeService alternative_service( |
| 8863 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 8865 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 8864 666); /* port is ignored by MockConnect anyway */ | 8866 666); // Port is ignored by MockConnect anyway. |
| 8865 http_server_properties->SetAlternativeService(host_port_pair, | 8867 http_server_properties->AddAlternativeService(host_port_pair, |
| 8866 alternative_service, 1.0); | 8868 alternative_service, 1.0); |
| 8867 | 8869 |
| 8868 scoped_ptr<HttpTransaction> trans( | 8870 scoped_ptr<HttpTransaction> trans( |
| 8869 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8871 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8870 TestCompletionCallback callback; | 8872 TestCompletionCallback callback; |
| 8871 | 8873 |
| 8872 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8874 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8873 EXPECT_EQ(ERR_IO_PENDING, rv); | 8875 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8874 EXPECT_EQ(OK, callback.WaitForResult()); | 8876 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8875 | 8877 |
| 8876 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8878 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8877 ASSERT_TRUE(response != NULL); | 8879 ASSERT_TRUE(response != NULL); |
| 8878 ASSERT_TRUE(response->headers.get() != NULL); | 8880 ASSERT_TRUE(response->headers.get() != NULL); |
| 8879 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8881 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8880 | 8882 |
| 8881 std::string response_data; | 8883 std::string response_data; |
| 8882 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8884 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8883 EXPECT_EQ("hello world", response_data); | 8885 EXPECT_EQ("hello world", response_data); |
| 8884 | 8886 |
| 8885 alternative_service = | 8887 const AlternativeServiceVector alternative_service_vector = |
| 8886 http_server_properties->GetAlternativeService(host_port_pair); | 8888 http_server_properties->GetAlternativeServices(host_port_pair); |
| 8887 EXPECT_NE(UNINITIALIZED_ALTERNATE_PROTOCOL, alternative_service.protocol); | 8889 ASSERT_EQ(1u, alternative_service_vector.size()); |
| 8888 EXPECT_TRUE( | 8890 EXPECT_EQ(alternative_service, alternative_service_vector[0]); |
| 8889 http_server_properties->IsAlternativeServiceBroken(alternative_service)); | 8891 EXPECT_TRUE(http_server_properties->IsAlternativeServiceBroken( |
| 8892 alternative_service_vector[0])); |
| 8890 } | 8893 } |
| 8891 | 8894 |
| 8892 TEST_P(HttpNetworkTransactionTest, | 8895 TEST_P(HttpNetworkTransactionTest, |
| 8893 AlternateProtocolPortRestrictedBlocked) { | 8896 AlternateProtocolPortRestrictedBlocked) { |
| 8894 // Ensure that we're not allowed to redirect traffic via an alternate | 8897 // Ensure that we're not allowed to redirect traffic via an alternate |
| 8895 // protocol to an unrestricted (port >= 1024) when the original traffic was | 8898 // protocol to an unrestricted (port >= 1024) when the original traffic was |
| 8896 // on a restricted port (port < 1024). Ensure that we can redirect in all | 8899 // on a restricted port (port < 1024). Ensure that we can redirect in all |
| 8897 // other cases. | 8900 // other cases. |
| 8898 session_deps_.use_alternate_protocols = true; | 8901 session_deps_.use_alternate_protocols = true; |
| 8899 | 8902 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 8917 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8920 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8918 | 8921 |
| 8919 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8922 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8920 | 8923 |
| 8921 base::WeakPtr<HttpServerProperties> http_server_properties = | 8924 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8922 session->http_server_properties(); | 8925 session->http_server_properties(); |
| 8923 const int kUnrestrictedAlternatePort = 1024; | 8926 const int kUnrestrictedAlternatePort = 1024; |
| 8924 AlternativeService alternative_service( | 8927 AlternativeService alternative_service( |
| 8925 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 8928 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 8926 kUnrestrictedAlternatePort); | 8929 kUnrestrictedAlternatePort); |
| 8927 http_server_properties->SetAlternativeService( | 8930 http_server_properties->AddAlternativeService( |
| 8928 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 8931 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| 8929 1.0); | 8932 1.0); |
| 8930 | 8933 |
| 8931 scoped_ptr<HttpTransaction> trans( | 8934 scoped_ptr<HttpTransaction> trans( |
| 8932 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8935 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8933 TestCompletionCallback callback; | 8936 TestCompletionCallback callback; |
| 8934 | 8937 |
| 8935 int rv = trans->Start( | 8938 int rv = trans->Start( |
| 8936 &restricted_port_request, | 8939 &restricted_port_request, |
| 8937 callback.callback(), BoundNetLog()); | 8940 callback.callback(), BoundNetLog()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8970 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8973 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8971 | 8974 |
| 8972 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8975 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8973 | 8976 |
| 8974 base::WeakPtr<HttpServerProperties> http_server_properties = | 8977 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8975 session->http_server_properties(); | 8978 session->http_server_properties(); |
| 8976 const int kUnrestrictedAlternatePort = 1024; | 8979 const int kUnrestrictedAlternatePort = 1024; |
| 8977 AlternativeService alternative_service( | 8980 AlternativeService alternative_service( |
| 8978 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 8981 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 8979 kUnrestrictedAlternatePort); | 8982 kUnrestrictedAlternatePort); |
| 8980 http_server_properties->SetAlternativeService( | 8983 http_server_properties->AddAlternativeService( |
| 8981 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 8984 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| 8982 1.0); | 8985 1.0); |
| 8983 | 8986 |
| 8984 scoped_ptr<HttpTransaction> trans( | 8987 scoped_ptr<HttpTransaction> trans( |
| 8985 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8988 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8986 TestCompletionCallback callback; | 8989 TestCompletionCallback callback; |
| 8987 | 8990 |
| 8988 EXPECT_EQ(ERR_IO_PENDING, trans->Start( | 8991 EXPECT_EQ(ERR_IO_PENDING, trans->Start( |
| 8989 &restricted_port_request, | 8992 &restricted_port_request, |
| 8990 callback.callback(), BoundNetLog())); | 8993 callback.callback(), BoundNetLog())); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 9020 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9023 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9021 | 9024 |
| 9022 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9025 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9023 | 9026 |
| 9024 base::WeakPtr<HttpServerProperties> http_server_properties = | 9027 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9025 session->http_server_properties(); | 9028 session->http_server_properties(); |
| 9026 const int kRestrictedAlternatePort = 80; | 9029 const int kRestrictedAlternatePort = 80; |
| 9027 AlternativeService alternative_service( | 9030 AlternativeService alternative_service( |
| 9028 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9031 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9029 kRestrictedAlternatePort); | 9032 kRestrictedAlternatePort); |
| 9030 http_server_properties->SetAlternativeService( | 9033 http_server_properties->AddAlternativeService( |
| 9031 HostPortPair::FromURL(restricted_port_request.url), alternative_service, | 9034 HostPortPair::FromURL(restricted_port_request.url), alternative_service, |
| 9032 1.0); | 9035 1.0); |
| 9033 | 9036 |
| 9034 scoped_ptr<HttpTransaction> trans( | 9037 scoped_ptr<HttpTransaction> trans( |
| 9035 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9038 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9036 TestCompletionCallback callback; | 9039 TestCompletionCallback callback; |
| 9037 | 9040 |
| 9038 int rv = trans->Start( | 9041 int rv = trans->Start( |
| 9039 &restricted_port_request, | 9042 &restricted_port_request, |
| 9040 callback.callback(), BoundNetLog()); | 9043 callback.callback(), BoundNetLog()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 9071 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9074 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9072 | 9075 |
| 9073 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9076 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9074 | 9077 |
| 9075 base::WeakPtr<HttpServerProperties> http_server_properties = | 9078 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9076 session->http_server_properties(); | 9079 session->http_server_properties(); |
| 9077 const int kRestrictedAlternatePort = 80; | 9080 const int kRestrictedAlternatePort = 80; |
| 9078 AlternativeService alternative_service( | 9081 AlternativeService alternative_service( |
| 9079 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9082 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9080 kRestrictedAlternatePort); | 9083 kRestrictedAlternatePort); |
| 9081 http_server_properties->SetAlternativeService( | 9084 http_server_properties->AddAlternativeService( |
| 9082 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, | 9085 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, |
| 9083 1.0); | 9086 1.0); |
| 9084 | 9087 |
| 9085 scoped_ptr<HttpTransaction> trans( | 9088 scoped_ptr<HttpTransaction> trans( |
| 9086 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9089 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9087 TestCompletionCallback callback; | 9090 TestCompletionCallback callback; |
| 9088 | 9091 |
| 9089 int rv = trans->Start( | 9092 int rv = trans->Start( |
| 9090 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 9093 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 9091 EXPECT_EQ(ERR_IO_PENDING, rv); | 9094 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 9121 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 9124 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 9122 | 9125 |
| 9123 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9126 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9124 | 9127 |
| 9125 base::WeakPtr<HttpServerProperties> http_server_properties = | 9128 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9126 session->http_server_properties(); | 9129 session->http_server_properties(); |
| 9127 const int kUnrestrictedAlternatePort = 1024; | 9130 const int kUnrestrictedAlternatePort = 1024; |
| 9128 AlternativeService alternative_service( | 9131 AlternativeService alternative_service( |
| 9129 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9132 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9130 kUnrestrictedAlternatePort); | 9133 kUnrestrictedAlternatePort); |
| 9131 http_server_properties->SetAlternativeService( | 9134 http_server_properties->AddAlternativeService( |
| 9132 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, | 9135 HostPortPair::FromURL(unrestricted_port_request.url), alternative_service, |
| 9133 1.0); | 9136 1.0); |
| 9134 | 9137 |
| 9135 scoped_ptr<HttpTransaction> trans( | 9138 scoped_ptr<HttpTransaction> trans( |
| 9136 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9139 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9137 TestCompletionCallback callback; | 9140 TestCompletionCallback callback; |
| 9138 | 9141 |
| 9139 int rv = trans->Start( | 9142 int rv = trans->Start( |
| 9140 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 9143 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 9141 EXPECT_EQ(ERR_IO_PENDING, rv); | 9144 EXPECT_EQ(ERR_IO_PENDING, rv); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 9166 session_deps_.socket_factory->AddSocketDataProvider(&data); | 9169 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 9167 | 9170 |
| 9168 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 9171 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 9169 | 9172 |
| 9170 base::WeakPtr<HttpServerProperties> http_server_properties = | 9173 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 9171 session->http_server_properties(); | 9174 session->http_server_properties(); |
| 9172 const int kUnsafePort = 7; | 9175 const int kUnsafePort = 7; |
| 9173 AlternativeService alternative_service( | 9176 AlternativeService alternative_service( |
| 9174 AlternateProtocolFromNextProto(GetParam()), "www.example.org", | 9177 AlternateProtocolFromNextProto(GetParam()), "www.example.org", |
| 9175 kUnsafePort); | 9178 kUnsafePort); |
| 9176 http_server_properties->SetAlternativeService( | 9179 http_server_properties->AddAlternativeService( |
| 9177 HostPortPair::FromURL(request.url), alternative_service, 1.0); | 9180 HostPortPair::FromURL(request.url), alternative_service, 1.0); |
| 9178 | 9181 |
| 9179 scoped_ptr<HttpTransaction> trans( | 9182 scoped_ptr<HttpTransaction> trans( |
| 9180 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 9183 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 9181 TestCompletionCallback callback; | 9184 TestCompletionCallback callback; |
| 9182 | 9185 |
| 9183 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 9186 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 9184 EXPECT_EQ(ERR_IO_PENDING, rv); | 9187 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 9185 // The HTTP request should succeed. | 9188 // The HTTP request should succeed. |
| 9186 EXPECT_EQ(OK, callback.WaitForResult()); | 9189 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 2630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11817 StaticSocketDataProvider data_refused; | 11820 StaticSocketDataProvider data_refused; |
| 11818 data_refused.set_connect_data(mock_connect); | 11821 data_refused.set_connect_data(mock_connect); |
| 11819 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 11822 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 11820 | 11823 |
| 11821 session_deps_.use_alternate_protocols = true; | 11824 session_deps_.use_alternate_protocols = true; |
| 11822 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11825 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11823 base::WeakPtr<HttpServerProperties> http_server_properties = | 11826 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 11824 session->http_server_properties(); | 11827 session->http_server_properties(); |
| 11825 AlternativeService alternative_service( | 11828 AlternativeService alternative_service( |
| 11826 AlternateProtocolFromNextProto(GetParam()), alternative); | 11829 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 11827 http_server_properties->SetAlternativeService(origin, alternative_service, | 11830 http_server_properties->AddAlternativeService(origin, alternative_service, |
| 11828 1.0); | 11831 1.0); |
| 11829 | 11832 |
| 11830 // First request to alternative. | 11833 // First request to alternative. |
| 11831 if (pooling) { | 11834 if (pooling) { |
| 11832 scoped_ptr<HttpTransaction> trans0( | 11835 scoped_ptr<HttpTransaction> trans0( |
| 11833 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11836 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11834 HttpRequestInfo request0; | 11837 HttpRequestInfo request0; |
| 11835 request0.method = "GET"; | 11838 request0.method = "GET"; |
| 11836 request0.url = GURL(url0); | 11839 request0.url = GURL(url0); |
| 11837 request0.load_flags = 0; | 11840 request0.load_flags = 0; |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11921 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); | 11924 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); |
| 11922 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 11925 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 11923 | 11926 |
| 11924 // Set up alternative service for origin. | 11927 // Set up alternative service for origin. |
| 11925 session_deps_.use_alternate_protocols = true; | 11928 session_deps_.use_alternate_protocols = true; |
| 11926 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 11929 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11927 base::WeakPtr<HttpServerProperties> http_server_properties = | 11930 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 11928 session->http_server_properties(); | 11931 session->http_server_properties(); |
| 11929 AlternativeService alternative_service( | 11932 AlternativeService alternative_service( |
| 11930 AlternateProtocolFromNextProto(GetParam()), alternative); | 11933 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 11931 http_server_properties->SetAlternativeService(origin, alternative_service, | 11934 http_server_properties->AddAlternativeService(origin, alternative_service, |
| 11932 1.0); | 11935 1.0); |
| 11933 | 11936 |
| 11934 scoped_ptr<HttpTransaction> trans( | 11937 scoped_ptr<HttpTransaction> trans( |
| 11935 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11938 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11936 HttpRequestInfo request; | 11939 HttpRequestInfo request; |
| 11937 request.method = "GET"; | 11940 request.method = "GET"; |
| 11938 request.url = GURL("https://origin.example.org:443"); | 11941 request.url = GURL("https://origin.example.org:443"); |
| 11939 request.load_flags = 0; | 11942 request.load_flags = 0; |
| 11940 TestCompletionCallback callback; | 11943 TestCompletionCallback callback; |
| 11941 | 11944 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11993 http_writes, arraysize(http_writes)); | 11996 http_writes, arraysize(http_writes)); |
| 11994 session_deps_.socket_factory->AddSocketDataProvider(&http_data); | 11997 session_deps_.socket_factory->AddSocketDataProvider(&http_data); |
| 11995 | 11998 |
| 11996 // Set up alternative service for origin. | 11999 // Set up alternative service for origin. |
| 11997 session_deps_.use_alternate_protocols = true; | 12000 session_deps_.use_alternate_protocols = true; |
| 11998 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12001 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 11999 base::WeakPtr<HttpServerProperties> http_server_properties = | 12002 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12000 session->http_server_properties(); | 12003 session->http_server_properties(); |
| 12001 AlternativeService alternative_service( | 12004 AlternativeService alternative_service( |
| 12002 AlternateProtocolFromNextProto(GetParam()), alternative); | 12005 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12003 http_server_properties->SetAlternativeService(origin, alternative_service, | 12006 http_server_properties->AddAlternativeService(origin, alternative_service, |
| 12004 1.0); | 12007 1.0); |
| 12005 | 12008 |
| 12006 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); | 12009 HttpNetworkTransaction trans1(DEFAULT_PRIORITY, session.get()); |
| 12007 HttpRequestInfo request1; | 12010 HttpRequestInfo request1; |
| 12008 request1.method = "GET"; | 12011 request1.method = "GET"; |
| 12009 request1.url = GURL("https://origin.example.org:443"); | 12012 request1.url = GURL("https://origin.example.org:443"); |
| 12010 request1.load_flags = 0; | 12013 request1.load_flags = 0; |
| 12011 TestCompletionCallback callback1; | 12014 TestCompletionCallback callback1; |
| 12012 | 12015 |
| 12013 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); | 12016 int rv = trans1.Start(&request1, callback1.callback(), BoundNetLog()); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12101 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); | 12104 data_refused.set_connect_data(MockConnect(ASYNC, ERR_CONNECTION_REFUSED)); |
| 12102 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); | 12105 session_deps_.socket_factory->AddSocketDataProvider(&data_refused); |
| 12103 | 12106 |
| 12104 // Set up alternative service for origin. | 12107 // Set up alternative service for origin. |
| 12105 session_deps_.use_alternate_protocols = true; | 12108 session_deps_.use_alternate_protocols = true; |
| 12106 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 12109 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 12107 base::WeakPtr<HttpServerProperties> http_server_properties = | 12110 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 12108 session->http_server_properties(); | 12111 session->http_server_properties(); |
| 12109 AlternativeService alternative_service( | 12112 AlternativeService alternative_service( |
| 12110 AlternateProtocolFromNextProto(GetParam()), alternative); | 12113 AlternateProtocolFromNextProto(GetParam()), alternative); |
| 12111 http_server_properties->SetAlternativeService(origin, alternative_service, | 12114 http_server_properties->AddAlternativeService(origin, alternative_service, |
| 12112 1.0); | 12115 1.0); |
| 12113 | 12116 |
| 12114 // First transaction to alternative to open an HTTP/1.1 socket. | 12117 // First transaction to alternative to open an HTTP/1.1 socket. |
| 12115 scoped_ptr<HttpTransaction> trans1( | 12118 scoped_ptr<HttpTransaction> trans1( |
| 12116 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 12119 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 12117 HttpRequestInfo request1; | 12120 HttpRequestInfo request1; |
| 12118 request1.method = "GET"; | 12121 request1.method = "GET"; |
| 12119 request1.url = GURL(alternative_url); | 12122 request1.url = GURL(alternative_url); |
| 12120 request1.load_flags = 0; | 12123 request1.load_flags = 0; |
| 12121 TestCompletionCallback callback1; | 12124 TestCompletionCallback callback1; |
| (...skipping 2051 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14173 ASSERT_TRUE(response); | 14176 ASSERT_TRUE(response); |
| 14174 ASSERT_TRUE(response->headers.get()); | 14177 ASSERT_TRUE(response->headers.get()); |
| 14175 | 14178 |
| 14176 EXPECT_EQ(101, response->headers->response_code()); | 14179 EXPECT_EQ(101, response->headers->response_code()); |
| 14177 | 14180 |
| 14178 trans.reset(); | 14181 trans.reset(); |
| 14179 session->CloseAllConnections(); | 14182 session->CloseAllConnections(); |
| 14180 } | 14183 } |
| 14181 | 14184 |
| 14182 } // namespace net | 14185 } // namespace net |
| OLD | NEW |