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 |