| 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 7584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7595 bool ssl; | 7595 bool ssl; |
| 7596 }; | 7596 }; |
| 7597 | 7597 |
| 7598 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( | 7598 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( |
| 7599 NextProto next_proto, | 7599 NextProto next_proto, |
| 7600 SpdySessionDependencies* session_deps_) { | 7600 SpdySessionDependencies* session_deps_) { |
| 7601 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); | 7601 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); |
| 7602 | 7602 |
| 7603 base::WeakPtr<HttpServerProperties> http_server_properties = | 7603 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 7604 session->http_server_properties(); | 7604 session->http_server_properties(); |
| 7605 http_server_properties->SetAlternateProtocol( | 7605 http_server_properties->AddAlternateProtocol( |
| 7606 HostPortPair("host.with.alternate", 80), 443, | 7606 HostPortPair("host.with.alternate", 80), 443, |
| 7607 AlternateProtocolFromNextProto(next_proto), 1); | 7607 AlternateProtocolFromNextProto(next_proto), 1); |
| 7608 | 7608 |
| 7609 return session; | 7609 return session; |
| 7610 } | 7610 } |
| 7611 | 7611 |
| 7612 int GroupNameTransactionHelper( | 7612 int GroupNameTransactionHelper( |
| 7613 const std::string& url, | 7613 const std::string& url, |
| 7614 const scoped_refptr<HttpNetworkSession>& session) { | 7614 const scoped_refptr<HttpNetworkSession>& session) { |
| 7615 HttpRequestInfo request; | 7615 HttpRequestInfo request; |
| (...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8506 ASSERT_TRUE(response->headers.get() != NULL); | 8506 ASSERT_TRUE(response->headers.get() != NULL); |
| 8507 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8507 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8508 EXPECT_FALSE(response->was_fetched_via_spdy); | 8508 EXPECT_FALSE(response->was_fetched_via_spdy); |
| 8509 EXPECT_FALSE(response->was_npn_negotiated); | 8509 EXPECT_FALSE(response->was_npn_negotiated); |
| 8510 | 8510 |
| 8511 std::string response_data; | 8511 std::string response_data; |
| 8512 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8512 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8513 EXPECT_EQ("hello world", response_data); | 8513 EXPECT_EQ("hello world", response_data); |
| 8514 | 8514 |
| 8515 ASSERT_TRUE(http_server_properties.HasAlternateProtocol(http_host_port_pair)); | 8515 ASSERT_TRUE(http_server_properties.HasAlternateProtocol(http_host_port_pair)); |
| 8516 const AlternateProtocolInfo alternate = | 8516 const AlternateProtocols alternate_protocols = |
| 8517 http_server_properties.GetAlternateProtocol(http_host_port_pair); | 8517 http_server_properties.GetAlternateProtocols(http_host_port_pair); |
| 8518 ASSERT_EQ(1u, alternate_protocols.size()); |
| 8518 AlternateProtocolInfo expected_alternate( | 8519 AlternateProtocolInfo expected_alternate( |
| 8519 443, AlternateProtocolFromNextProto(GetParam()), 1); | 8520 443, AlternateProtocolFromNextProto(GetParam()), 1); |
| 8520 EXPECT_TRUE(expected_alternate.Equals(alternate)); | 8521 EXPECT_TRUE(expected_alternate.Equals(alternate_protocols[0])); |
| 8521 } | 8522 } |
| 8522 | 8523 |
| 8523 TEST_P(HttpNetworkTransactionTest, | 8524 TEST_P(HttpNetworkTransactionTest, |
| 8524 MarkBrokenAlternateProtocolAndFallback) { | 8525 MarkBrokenAlternateProtocolAndFallback) { |
| 8525 session_deps_.use_alternate_protocols = true; | 8526 session_deps_.use_alternate_protocols = true; |
| 8526 | 8527 |
| 8527 HttpRequestInfo request; | 8528 HttpRequestInfo request; |
| 8528 request.method = "GET"; | 8529 request.method = "GET"; |
| 8529 request.url = GURL("http://www.google.com/"); | 8530 request.url = GURL("http://www.google.com/"); |
| 8530 request.load_flags = 0; | 8531 request.load_flags = 0; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 8542 StaticSocketDataProvider second_data( | 8543 StaticSocketDataProvider second_data( |
| 8543 data_reads, arraysize(data_reads), NULL, 0); | 8544 data_reads, arraysize(data_reads), NULL, 0); |
| 8544 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8545 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8545 | 8546 |
| 8546 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8547 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8547 | 8548 |
| 8548 base::WeakPtr<HttpServerProperties> http_server_properties = | 8549 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8549 session->http_server_properties(); | 8550 session->http_server_properties(); |
| 8550 // Port must be < 1024, or the header will be ignored (since initial port was | 8551 // Port must be < 1024, or the header will be ignored (since initial port was |
| 8551 // port 80 (another restricted port). | 8552 // port 80 (another restricted port). |
| 8552 http_server_properties->SetAlternateProtocol( | 8553 http_server_properties->AddAlternateProtocol( |
| 8553 HostPortPair::FromURL(request.url), | 8554 HostPortPair::FromURL(request.url), |
| 8554 666 /* port is ignored by MockConnect anyway */, | 8555 666 /* port is ignored by MockConnect anyway */, |
| 8555 AlternateProtocolFromNextProto(GetParam()), 1); | 8556 AlternateProtocolFromNextProto(GetParam()), 1); |
| 8556 | 8557 |
| 8557 scoped_ptr<HttpTransaction> trans( | 8558 scoped_ptr<HttpTransaction> trans( |
| 8558 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8559 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8559 TestCompletionCallback callback; | 8560 TestCompletionCallback callback; |
| 8560 | 8561 |
| 8561 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8562 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8562 EXPECT_EQ(ERR_IO_PENDING, rv); | 8563 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8563 EXPECT_EQ(OK, callback.WaitForResult()); | 8564 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8564 | 8565 |
| 8565 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8566 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8566 ASSERT_TRUE(response != NULL); | 8567 ASSERT_TRUE(response != NULL); |
| 8567 ASSERT_TRUE(response->headers.get() != NULL); | 8568 ASSERT_TRUE(response->headers.get() != NULL); |
| 8568 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8569 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8569 | 8570 |
| 8570 std::string response_data; | 8571 std::string response_data; |
| 8571 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8572 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8572 EXPECT_EQ("hello world", response_data); | 8573 EXPECT_EQ("hello world", response_data); |
| 8573 | 8574 |
| 8574 ASSERT_TRUE(http_server_properties->HasAlternateProtocol( | 8575 ASSERT_TRUE(http_server_properties->HasAlternateProtocol( |
| 8575 HostPortPair::FromURL(request.url))); | 8576 HostPortPair::FromURL(request.url))); |
| 8576 const AlternateProtocolInfo alternate = | 8577 const AlternateProtocols alternate_protocols = |
| 8577 http_server_properties->GetAlternateProtocol( | 8578 http_server_properties->GetAlternateProtocols( |
| 8578 HostPortPair::FromURL(request.url)); | 8579 HostPortPair::FromURL(request.url)); |
| 8580 ASSERT_EQ(1u, alternate_protocols.size()); |
| 8581 const AlternateProtocolInfo alternate = alternate_protocols[0]; |
| 8579 EXPECT_TRUE(alternate.is_broken); | 8582 EXPECT_TRUE(alternate.is_broken); |
| 8580 } | 8583 } |
| 8581 | 8584 |
| 8582 TEST_P(HttpNetworkTransactionTest, | 8585 TEST_P(HttpNetworkTransactionTest, |
| 8583 AlternateProtocolPortRestrictedBlocked) { | 8586 AlternateProtocolPortRestrictedBlocked) { |
| 8584 // Ensure that we're not allowed to redirect traffic via an alternate | 8587 // Ensure that we're not allowed to redirect traffic via an alternate |
| 8585 // protocol to an unrestricted (port >= 1024) when the original traffic was | 8588 // protocol to an unrestricted (port >= 1024) when the original traffic was |
| 8586 // on a restricted port (port < 1024). Ensure that we can redirect in all | 8589 // on a restricted port (port < 1024). Ensure that we can redirect in all |
| 8587 // other cases. | 8590 // other cases. |
| 8588 session_deps_.use_alternate_protocols = true; | 8591 session_deps_.use_alternate_protocols = true; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 8604 }; | 8607 }; |
| 8605 StaticSocketDataProvider second_data( | 8608 StaticSocketDataProvider second_data( |
| 8606 data_reads, arraysize(data_reads), NULL, 0); | 8609 data_reads, arraysize(data_reads), NULL, 0); |
| 8607 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8610 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8608 | 8611 |
| 8609 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8612 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8610 | 8613 |
| 8611 base::WeakPtr<HttpServerProperties> http_server_properties = | 8614 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8612 session->http_server_properties(); | 8615 session->http_server_properties(); |
| 8613 const int kUnrestrictedAlternatePort = 1024; | 8616 const int kUnrestrictedAlternatePort = 1024; |
| 8614 http_server_properties->SetAlternateProtocol( | 8617 http_server_properties->AddAlternateProtocol( |
| 8615 HostPortPair::FromURL(restricted_port_request.url), | 8618 HostPortPair::FromURL(restricted_port_request.url), |
| 8616 kUnrestrictedAlternatePort, | 8619 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8617 AlternateProtocolFromNextProto(GetParam()), 1); | 8620 1); |
| 8618 | 8621 |
| 8619 scoped_ptr<HttpTransaction> trans( | 8622 scoped_ptr<HttpTransaction> trans( |
| 8620 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8623 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8621 TestCompletionCallback callback; | 8624 TestCompletionCallback callback; |
| 8622 | 8625 |
| 8623 int rv = trans->Start( | 8626 int rv = trans->Start( |
| 8624 &restricted_port_request, | 8627 &restricted_port_request, |
| 8625 callback.callback(), BoundNetLog()); | 8628 callback.callback(), BoundNetLog()); |
| 8626 EXPECT_EQ(ERR_IO_PENDING, rv); | 8629 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8627 // Invalid change to unrestricted port should fail. | 8630 // Invalid change to unrestricted port should fail. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 8655 }; | 8658 }; |
| 8656 StaticSocketDataProvider second_data( | 8659 StaticSocketDataProvider second_data( |
| 8657 data_reads, arraysize(data_reads), NULL, 0); | 8660 data_reads, arraysize(data_reads), NULL, 0); |
| 8658 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8661 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8659 | 8662 |
| 8660 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8663 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8661 | 8664 |
| 8662 base::WeakPtr<HttpServerProperties> http_server_properties = | 8665 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8663 session->http_server_properties(); | 8666 session->http_server_properties(); |
| 8664 const int kUnrestrictedAlternatePort = 1024; | 8667 const int kUnrestrictedAlternatePort = 1024; |
| 8665 http_server_properties->SetAlternateProtocol( | 8668 http_server_properties->AddAlternateProtocol( |
| 8666 HostPortPair::FromURL(restricted_port_request.url), | 8669 HostPortPair::FromURL(restricted_port_request.url), |
| 8667 kUnrestrictedAlternatePort, | 8670 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8668 AlternateProtocolFromNextProto(GetParam()), 1); | 8671 1); |
| 8669 | 8672 |
| 8670 scoped_ptr<HttpTransaction> trans( | 8673 scoped_ptr<HttpTransaction> trans( |
| 8671 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8674 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8672 TestCompletionCallback callback; | 8675 TestCompletionCallback callback; |
| 8673 | 8676 |
| 8674 EXPECT_EQ(ERR_IO_PENDING, trans->Start( | 8677 EXPECT_EQ(ERR_IO_PENDING, trans->Start( |
| 8675 &restricted_port_request, | 8678 &restricted_port_request, |
| 8676 callback.callback(), BoundNetLog())); | 8679 callback.callback(), BoundNetLog())); |
| 8677 // Change to unrestricted port should succeed. | 8680 // Change to unrestricted port should succeed. |
| 8678 EXPECT_EQ(OK, callback.WaitForResult()); | 8681 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 8703 }; | 8706 }; |
| 8704 StaticSocketDataProvider second_data( | 8707 StaticSocketDataProvider second_data( |
| 8705 data_reads, arraysize(data_reads), NULL, 0); | 8708 data_reads, arraysize(data_reads), NULL, 0); |
| 8706 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8709 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8707 | 8710 |
| 8708 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8711 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8709 | 8712 |
| 8710 base::WeakPtr<HttpServerProperties> http_server_properties = | 8713 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8711 session->http_server_properties(); | 8714 session->http_server_properties(); |
| 8712 const int kRestrictedAlternatePort = 80; | 8715 const int kRestrictedAlternatePort = 80; |
| 8713 http_server_properties->SetAlternateProtocol( | 8716 http_server_properties->AddAlternateProtocol( |
| 8714 HostPortPair::FromURL(restricted_port_request.url), | 8717 HostPortPair::FromURL(restricted_port_request.url), |
| 8715 kRestrictedAlternatePort, | 8718 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), 1); |
| 8716 AlternateProtocolFromNextProto(GetParam()), 1); | |
| 8717 | 8719 |
| 8718 scoped_ptr<HttpTransaction> trans( | 8720 scoped_ptr<HttpTransaction> trans( |
| 8719 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8721 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8720 TestCompletionCallback callback; | 8722 TestCompletionCallback callback; |
| 8721 | 8723 |
| 8722 int rv = trans->Start( | 8724 int rv = trans->Start( |
| 8723 &restricted_port_request, | 8725 &restricted_port_request, |
| 8724 callback.callback(), BoundNetLog()); | 8726 callback.callback(), BoundNetLog()); |
| 8725 EXPECT_EQ(ERR_IO_PENDING, rv); | 8727 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8726 // Valid change to restricted port should pass. | 8728 // Valid change to restricted port should pass. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 8752 }; | 8754 }; |
| 8753 StaticSocketDataProvider second_data( | 8755 StaticSocketDataProvider second_data( |
| 8754 data_reads, arraysize(data_reads), NULL, 0); | 8756 data_reads, arraysize(data_reads), NULL, 0); |
| 8755 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8757 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8756 | 8758 |
| 8757 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8759 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8758 | 8760 |
| 8759 base::WeakPtr<HttpServerProperties> http_server_properties = | 8761 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8760 session->http_server_properties(); | 8762 session->http_server_properties(); |
| 8761 const int kRestrictedAlternatePort = 80; | 8763 const int kRestrictedAlternatePort = 80; |
| 8762 http_server_properties->SetAlternateProtocol( | 8764 http_server_properties->AddAlternateProtocol( |
| 8763 HostPortPair::FromURL(unrestricted_port_request.url), | 8765 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8764 kRestrictedAlternatePort, | 8766 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), 1); |
| 8765 AlternateProtocolFromNextProto(GetParam()), 1); | |
| 8766 | 8767 |
| 8767 scoped_ptr<HttpTransaction> trans( | 8768 scoped_ptr<HttpTransaction> trans( |
| 8768 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8769 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8769 TestCompletionCallback callback; | 8770 TestCompletionCallback callback; |
| 8770 | 8771 |
| 8771 int rv = trans->Start( | 8772 int rv = trans->Start( |
| 8772 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8773 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 8773 EXPECT_EQ(ERR_IO_PENDING, rv); | 8774 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8774 // Valid change to restricted port should pass. | 8775 // Valid change to restricted port should pass. |
| 8775 EXPECT_EQ(OK, callback.WaitForResult()); | 8776 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 8800 }; | 8801 }; |
| 8801 StaticSocketDataProvider second_data( | 8802 StaticSocketDataProvider second_data( |
| 8802 data_reads, arraysize(data_reads), NULL, 0); | 8803 data_reads, arraysize(data_reads), NULL, 0); |
| 8803 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8804 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8804 | 8805 |
| 8805 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8806 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8806 | 8807 |
| 8807 base::WeakPtr<HttpServerProperties> http_server_properties = | 8808 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8808 session->http_server_properties(); | 8809 session->http_server_properties(); |
| 8809 const int kUnrestrictedAlternatePort = 1024; | 8810 const int kUnrestrictedAlternatePort = 1024; |
| 8810 http_server_properties->SetAlternateProtocol( | 8811 http_server_properties->AddAlternateProtocol( |
| 8811 HostPortPair::FromURL(unrestricted_port_request.url), | 8812 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8812 kUnrestrictedAlternatePort, | 8813 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8813 AlternateProtocolFromNextProto(GetParam()), 1); | 8814 1); |
| 8814 | 8815 |
| 8815 scoped_ptr<HttpTransaction> trans( | 8816 scoped_ptr<HttpTransaction> trans( |
| 8816 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8817 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8817 TestCompletionCallback callback; | 8818 TestCompletionCallback callback; |
| 8818 | 8819 |
| 8819 int rv = trans->Start( | 8820 int rv = trans->Start( |
| 8820 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8821 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 8821 EXPECT_EQ(ERR_IO_PENDING, rv); | 8822 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8822 // Valid change to an unrestricted port should pass. | 8823 // Valid change to an unrestricted port should pass. |
| 8823 EXPECT_EQ(OK, callback.WaitForResult()); | 8824 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 8843 }; | 8844 }; |
| 8844 StaticSocketDataProvider data( | 8845 StaticSocketDataProvider data( |
| 8845 data_reads, arraysize(data_reads), NULL, 0); | 8846 data_reads, arraysize(data_reads), NULL, 0); |
| 8846 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8847 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8847 | 8848 |
| 8848 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8849 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8849 | 8850 |
| 8850 base::WeakPtr<HttpServerProperties> http_server_properties = | 8851 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8851 session->http_server_properties(); | 8852 session->http_server_properties(); |
| 8852 const int kUnsafePort = 7; | 8853 const int kUnsafePort = 7; |
| 8853 http_server_properties->SetAlternateProtocol( | 8854 http_server_properties->AddAlternateProtocol( |
| 8854 HostPortPair::FromURL(request.url), | 8855 HostPortPair::FromURL(request.url), kUnsafePort, |
| 8855 kUnsafePort, | |
| 8856 AlternateProtocolFromNextProto(GetParam()), 1); | 8856 AlternateProtocolFromNextProto(GetParam()), 1); |
| 8857 | 8857 |
| 8858 scoped_ptr<HttpTransaction> trans( | 8858 scoped_ptr<HttpTransaction> trans( |
| 8859 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8859 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8860 TestCompletionCallback callback; | 8860 TestCompletionCallback callback; |
| 8861 | 8861 |
| 8862 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8862 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8863 EXPECT_EQ(ERR_IO_PENDING, rv); | 8863 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8864 // The HTTP request should succeed. | 8864 // The HTTP request should succeed. |
| 8865 EXPECT_EQ(OK, callback.WaitForResult()); | 8865 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 4382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13248 EXPECT_EQ(ERR_IO_PENDING, rv); | 13248 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 13249 | 13249 |
| 13250 rv = callback.WaitForResult(); | 13250 rv = callback.WaitForResult(); |
| 13251 EXPECT_EQ(ERR_CONNECTION_RESET, rv); | 13251 EXPECT_EQ(ERR_CONNECTION_RESET, rv); |
| 13252 | 13252 |
| 13253 const HttpResponseInfo* response = trans->GetResponseInfo(); | 13253 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 13254 EXPECT_TRUE(response == NULL); | 13254 EXPECT_TRUE(response == NULL); |
| 13255 } | 13255 } |
| 13256 | 13256 |
| 13257 } // namespace net | 13257 } // namespace net |
| OLD | NEW |