| 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 7596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7607 bool ssl; | 7607 bool ssl; |
| 7608 }; | 7608 }; |
| 7609 | 7609 |
| 7610 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( | 7610 scoped_refptr<HttpNetworkSession> SetupSessionForGroupNameTests( |
| 7611 NextProto next_proto, | 7611 NextProto next_proto, |
| 7612 SpdySessionDependencies* session_deps_) { | 7612 SpdySessionDependencies* session_deps_) { |
| 7613 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); | 7613 scoped_refptr<HttpNetworkSession> session(CreateSession(session_deps_)); |
| 7614 | 7614 |
| 7615 base::WeakPtr<HttpServerProperties> http_server_properties = | 7615 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 7616 session->http_server_properties(); | 7616 session->http_server_properties(); |
| 7617 http_server_properties->SetAlternateProtocol( | 7617 http_server_properties->AddAlternateProtocol( |
| 7618 HostPortPair("host.with.alternate", 80), 443, | 7618 HostPortPair("host.with.alternate", 80), 443, |
| 7619 AlternateProtocolFromNextProto(next_proto), 1.0); | 7619 AlternateProtocolFromNextProto(next_proto), 1.0); |
| 7620 | 7620 |
| 7621 return session; | 7621 return session; |
| 7622 } | 7622 } |
| 7623 | 7623 |
| 7624 int GroupNameTransactionHelper( | 7624 int GroupNameTransactionHelper( |
| 7625 const std::string& url, | 7625 const std::string& url, |
| 7626 const scoped_refptr<HttpNetworkSession>& session) { | 7626 const scoped_refptr<HttpNetworkSession>& session) { |
| 7627 HttpRequestInfo request; | 7627 HttpRequestInfo request; |
| (...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8501 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8501 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8502 scoped_ptr<HttpTransaction> trans( | 8502 scoped_ptr<HttpTransaction> trans( |
| 8503 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8503 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8504 | 8504 |
| 8505 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8505 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8506 EXPECT_EQ(ERR_IO_PENDING, rv); | 8506 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8507 | 8507 |
| 8508 HostPortPair http_host_port_pair("www.google.com", 80); | 8508 HostPortPair http_host_port_pair("www.google.com", 80); |
| 8509 HttpServerProperties& http_server_properties = | 8509 HttpServerProperties& http_server_properties = |
| 8510 *session->http_server_properties(); | 8510 *session->http_server_properties(); |
| 8511 AlternateProtocolInfo alternate = | 8511 AlternateProtocols alternates = |
| 8512 http_server_properties.GetAlternateProtocol(http_host_port_pair); | 8512 http_server_properties.GetAlternateProtocols(http_host_port_pair); |
| 8513 EXPECT_EQ(alternate.protocol, UNINITIALIZED_ALTERNATE_PROTOCOL); | 8513 EXPECT_EQ(0u, alternates.size()); |
| 8514 | 8514 |
| 8515 EXPECT_EQ(OK, callback.WaitForResult()); | 8515 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8516 | 8516 |
| 8517 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8517 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8518 ASSERT_TRUE(response != NULL); | 8518 ASSERT_TRUE(response != NULL); |
| 8519 ASSERT_TRUE(response->headers.get() != NULL); | 8519 ASSERT_TRUE(response->headers.get() != NULL); |
| 8520 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8520 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8521 EXPECT_FALSE(response->was_fetched_via_spdy); | 8521 EXPECT_FALSE(response->was_fetched_via_spdy); |
| 8522 EXPECT_FALSE(response->was_npn_negotiated); | 8522 EXPECT_FALSE(response->was_npn_negotiated); |
| 8523 | 8523 |
| 8524 std::string response_data; | 8524 std::string response_data; |
| 8525 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8525 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8526 EXPECT_EQ("hello world", response_data); | 8526 EXPECT_EQ("hello world", response_data); |
| 8527 | 8527 |
| 8528 alternate = http_server_properties.GetAlternateProtocol(http_host_port_pair); | 8528 alternates = |
| 8529 EXPECT_EQ(443, alternate.port); | 8529 http_server_properties.GetAlternateProtocols(http_host_port_pair); |
| 8530 EXPECT_EQ(AlternateProtocolFromNextProto(GetParam()), alternate.protocol); | 8530 ASSERT_EQ(1u, alternates.size()); |
| 8531 EXPECT_EQ(1.0, alternate.probability); | 8531 EXPECT_EQ(443, alternates[0].port); |
| 8532 EXPECT_EQ(AlternateProtocolFromNextProto(GetParam()), alternates[0].protocol); |
| 8533 EXPECT_EQ(1.0, alternates[0].probability); |
| 8532 } | 8534 } |
| 8533 | 8535 |
| 8534 TEST_P(HttpNetworkTransactionTest, | 8536 TEST_P(HttpNetworkTransactionTest, |
| 8535 MarkBrokenAlternateProtocolAndFallback) { | 8537 MarkBrokenAlternateProtocolAndFallback) { |
| 8536 session_deps_.use_alternate_protocols = true; | 8538 session_deps_.use_alternate_protocols = true; |
| 8537 | 8539 |
| 8538 HttpRequestInfo request; | 8540 HttpRequestInfo request; |
| 8539 request.method = "GET"; | 8541 request.method = "GET"; |
| 8540 request.url = GURL("http://www.google.com/"); | 8542 request.url = GURL("http://www.google.com/"); |
| 8541 request.load_flags = 0; | 8543 request.load_flags = 0; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 8553 StaticSocketDataProvider second_data( | 8555 StaticSocketDataProvider second_data( |
| 8554 data_reads, arraysize(data_reads), NULL, 0); | 8556 data_reads, arraysize(data_reads), NULL, 0); |
| 8555 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8557 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8556 | 8558 |
| 8557 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8559 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8558 | 8560 |
| 8559 base::WeakPtr<HttpServerProperties> http_server_properties = | 8561 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8560 session->http_server_properties(); | 8562 session->http_server_properties(); |
| 8561 // Port must be < 1024, or the header will be ignored (since initial port was | 8563 // Port must be < 1024, or the header will be ignored (since initial port was |
| 8562 // port 80 (another restricted port). | 8564 // port 80 (another restricted port). |
| 8563 http_server_properties->SetAlternateProtocol( | 8565 const HostPortPair http_host_port_pair = HostPortPair::FromURL(request.url); |
| 8564 HostPortPair::FromURL(request.url), | 8566 http_server_properties->AddAlternateProtocol( |
| 8565 666 /* port is ignored by MockConnect anyway */, | 8567 http_host_port_pair, 666 /* port is ignored by MockConnect anyway */, |
| 8566 AlternateProtocolFromNextProto(GetParam()), 1.0); | 8568 AlternateProtocolFromNextProto(GetParam()), 1.0); |
| 8567 | 8569 |
| 8568 scoped_ptr<HttpTransaction> trans( | 8570 scoped_ptr<HttpTransaction> trans( |
| 8569 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8571 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8570 TestCompletionCallback callback; | 8572 TestCompletionCallback callback; |
| 8571 | 8573 |
| 8572 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8574 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8573 EXPECT_EQ(ERR_IO_PENDING, rv); | 8575 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8574 EXPECT_EQ(OK, callback.WaitForResult()); | 8576 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8575 | 8577 |
| 8576 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8578 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| 8577 ASSERT_TRUE(response != NULL); | 8579 ASSERT_TRUE(response != NULL); |
| 8578 ASSERT_TRUE(response->headers.get() != NULL); | 8580 ASSERT_TRUE(response->headers.get() != NULL); |
| 8579 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); | 8581 EXPECT_EQ("HTTP/1.1 200 OK", response->headers->GetStatusLine()); |
| 8580 | 8582 |
| 8581 std::string response_data; | 8583 std::string response_data; |
| 8582 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); | 8584 ASSERT_EQ(OK, ReadTransaction(trans.get(), &response_data)); |
| 8583 EXPECT_EQ("hello world", response_data); | 8585 EXPECT_EQ("hello world", response_data); |
| 8584 | 8586 |
| 8585 const AlternateProtocolInfo alternate = | 8587 const AlternateProtocols alternate_protocols = |
| 8586 http_server_properties->GetAlternateProtocol( | 8588 http_server_properties->GetAlternateProtocols(http_host_port_pair); |
| 8587 HostPortPair::FromURL(request.url)); | 8589 ASSERT_EQ(1u, alternate_protocols.size()); |
| 8588 EXPECT_NE(UNINITIALIZED_ALTERNATE_PROTOCOL, alternate.protocol); | 8590 AlternateProtocolInfo expected_alternate( |
| 8589 EXPECT_TRUE(alternate.is_broken); | 8591 666, AlternateProtocolFromNextProto(GetParam()), 1.0); |
| 8592 EXPECT_TRUE(expected_alternate.Equals(alternate_protocols[0])); |
| 8593 EXPECT_TRUE(alternate_protocols[0].is_broken); |
| 8590 } | 8594 } |
| 8591 | 8595 |
| 8592 TEST_P(HttpNetworkTransactionTest, | 8596 TEST_P(HttpNetworkTransactionTest, |
| 8593 AlternateProtocolPortRestrictedBlocked) { | 8597 AlternateProtocolPortRestrictedBlocked) { |
| 8594 // Ensure that we're not allowed to redirect traffic via an alternate | 8598 // Ensure that we're not allowed to redirect traffic via an alternate |
| 8595 // protocol to an unrestricted (port >= 1024) when the original traffic was | 8599 // protocol to an unrestricted (port >= 1024) when the original traffic was |
| 8596 // on a restricted port (port < 1024). Ensure that we can redirect in all | 8600 // on a restricted port (port < 1024). Ensure that we can redirect in all |
| 8597 // other cases. | 8601 // other cases. |
| 8598 session_deps_.use_alternate_protocols = true; | 8602 session_deps_.use_alternate_protocols = true; |
| 8599 | 8603 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 8614 }; | 8618 }; |
| 8615 StaticSocketDataProvider second_data( | 8619 StaticSocketDataProvider second_data( |
| 8616 data_reads, arraysize(data_reads), NULL, 0); | 8620 data_reads, arraysize(data_reads), NULL, 0); |
| 8617 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8621 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8618 | 8622 |
| 8619 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8623 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8620 | 8624 |
| 8621 base::WeakPtr<HttpServerProperties> http_server_properties = | 8625 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8622 session->http_server_properties(); | 8626 session->http_server_properties(); |
| 8623 const int kUnrestrictedAlternatePort = 1024; | 8627 const int kUnrestrictedAlternatePort = 1024; |
| 8624 http_server_properties->SetAlternateProtocol( | 8628 http_server_properties->AddAlternateProtocol( |
| 8625 HostPortPair::FromURL(restricted_port_request.url), | 8629 HostPortPair::FromURL(restricted_port_request.url), |
| 8626 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), | 8630 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8627 1.0); | 8631 1.0); |
| 8628 | 8632 |
| 8629 scoped_ptr<HttpTransaction> trans( | 8633 scoped_ptr<HttpTransaction> trans( |
| 8630 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8634 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8631 TestCompletionCallback callback; | 8635 TestCompletionCallback callback; |
| 8632 | 8636 |
| 8633 int rv = trans->Start( | 8637 int rv = trans->Start( |
| 8634 &restricted_port_request, | 8638 &restricted_port_request, |
| (...skipping 30 matching lines...) Expand all Loading... |
| 8665 }; | 8669 }; |
| 8666 StaticSocketDataProvider second_data( | 8670 StaticSocketDataProvider second_data( |
| 8667 data_reads, arraysize(data_reads), NULL, 0); | 8671 data_reads, arraysize(data_reads), NULL, 0); |
| 8668 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8672 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8669 | 8673 |
| 8670 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8674 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8671 | 8675 |
| 8672 base::WeakPtr<HttpServerProperties> http_server_properties = | 8676 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8673 session->http_server_properties(); | 8677 session->http_server_properties(); |
| 8674 const int kUnrestrictedAlternatePort = 1024; | 8678 const int kUnrestrictedAlternatePort = 1024; |
| 8675 http_server_properties->SetAlternateProtocol( | 8679 http_server_properties->AddAlternateProtocol( |
| 8676 HostPortPair::FromURL(restricted_port_request.url), | 8680 HostPortPair::FromURL(restricted_port_request.url), |
| 8677 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), | 8681 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8678 1.0); | 8682 1.0); |
| 8679 | 8683 |
| 8680 scoped_ptr<HttpTransaction> trans( | 8684 scoped_ptr<HttpTransaction> trans( |
| 8681 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8685 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8682 TestCompletionCallback callback; | 8686 TestCompletionCallback callback; |
| 8683 | 8687 |
| 8684 EXPECT_EQ(ERR_IO_PENDING, trans->Start( | 8688 EXPECT_EQ(ERR_IO_PENDING, trans->Start( |
| 8685 &restricted_port_request, | 8689 &restricted_port_request, |
| (...skipping 27 matching lines...) Expand all Loading... |
| 8713 }; | 8717 }; |
| 8714 StaticSocketDataProvider second_data( | 8718 StaticSocketDataProvider second_data( |
| 8715 data_reads, arraysize(data_reads), NULL, 0); | 8719 data_reads, arraysize(data_reads), NULL, 0); |
| 8716 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8720 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8717 | 8721 |
| 8718 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8722 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8719 | 8723 |
| 8720 base::WeakPtr<HttpServerProperties> http_server_properties = | 8724 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8721 session->http_server_properties(); | 8725 session->http_server_properties(); |
| 8722 const int kRestrictedAlternatePort = 80; | 8726 const int kRestrictedAlternatePort = 80; |
| 8723 http_server_properties->SetAlternateProtocol( | 8727 http_server_properties->AddAlternateProtocol( |
| 8724 HostPortPair::FromURL(restricted_port_request.url), | 8728 HostPortPair::FromURL(restricted_port_request.url), |
| 8725 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), | 8729 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8726 1.0); | 8730 1.0); |
| 8727 | 8731 |
| 8728 scoped_ptr<HttpTransaction> trans( | 8732 scoped_ptr<HttpTransaction> trans( |
| 8729 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8733 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8730 TestCompletionCallback callback; | 8734 TestCompletionCallback callback; |
| 8731 | 8735 |
| 8732 int rv = trans->Start( | 8736 int rv = trans->Start( |
| 8733 &restricted_port_request, | 8737 &restricted_port_request, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 8762 }; | 8766 }; |
| 8763 StaticSocketDataProvider second_data( | 8767 StaticSocketDataProvider second_data( |
| 8764 data_reads, arraysize(data_reads), NULL, 0); | 8768 data_reads, arraysize(data_reads), NULL, 0); |
| 8765 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8769 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8766 | 8770 |
| 8767 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8771 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8768 | 8772 |
| 8769 base::WeakPtr<HttpServerProperties> http_server_properties = | 8773 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8770 session->http_server_properties(); | 8774 session->http_server_properties(); |
| 8771 const int kRestrictedAlternatePort = 80; | 8775 const int kRestrictedAlternatePort = 80; |
| 8772 http_server_properties->SetAlternateProtocol( | 8776 http_server_properties->AddAlternateProtocol( |
| 8773 HostPortPair::FromURL(unrestricted_port_request.url), | 8777 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8774 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), | 8778 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8775 1.0); | 8779 1.0); |
| 8776 | 8780 |
| 8777 scoped_ptr<HttpTransaction> trans( | 8781 scoped_ptr<HttpTransaction> trans( |
| 8778 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8782 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8779 TestCompletionCallback callback; | 8783 TestCompletionCallback callback; |
| 8780 | 8784 |
| 8781 int rv = trans->Start( | 8785 int rv = trans->Start( |
| 8782 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8786 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 8810 }; | 8814 }; |
| 8811 StaticSocketDataProvider second_data( | 8815 StaticSocketDataProvider second_data( |
| 8812 data_reads, arraysize(data_reads), NULL, 0); | 8816 data_reads, arraysize(data_reads), NULL, 0); |
| 8813 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8817 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8814 | 8818 |
| 8815 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8819 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8816 | 8820 |
| 8817 base::WeakPtr<HttpServerProperties> http_server_properties = | 8821 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8818 session->http_server_properties(); | 8822 session->http_server_properties(); |
| 8819 const int kUnrestrictedAlternatePort = 1024; | 8823 const int kUnrestrictedAlternatePort = 1024; |
| 8820 http_server_properties->SetAlternateProtocol( | 8824 http_server_properties->AddAlternateProtocol( |
| 8821 HostPortPair::FromURL(unrestricted_port_request.url), | 8825 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8822 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), | 8826 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8823 1.0); | 8827 1.0); |
| 8824 | 8828 |
| 8825 scoped_ptr<HttpTransaction> trans( | 8829 scoped_ptr<HttpTransaction> trans( |
| 8826 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8830 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8827 TestCompletionCallback callback; | 8831 TestCompletionCallback callback; |
| 8828 | 8832 |
| 8829 int rv = trans->Start( | 8833 int rv = trans->Start( |
| 8830 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8834 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 8853 }; | 8857 }; |
| 8854 StaticSocketDataProvider data( | 8858 StaticSocketDataProvider data( |
| 8855 data_reads, arraysize(data_reads), NULL, 0); | 8859 data_reads, arraysize(data_reads), NULL, 0); |
| 8856 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8860 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8857 | 8861 |
| 8858 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8862 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8859 | 8863 |
| 8860 base::WeakPtr<HttpServerProperties> http_server_properties = | 8864 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8861 session->http_server_properties(); | 8865 session->http_server_properties(); |
| 8862 const int kUnsafePort = 7; | 8866 const int kUnsafePort = 7; |
| 8863 http_server_properties->SetAlternateProtocol( | 8867 http_server_properties->AddAlternateProtocol( |
| 8864 HostPortPair::FromURL(request.url), kUnsafePort, | 8868 HostPortPair::FromURL(request.url), kUnsafePort, |
| 8865 AlternateProtocolFromNextProto(GetParam()), 1.0); | 8869 AlternateProtocolFromNextProto(GetParam()), 1.0); |
| 8866 | 8870 |
| 8867 scoped_ptr<HttpTransaction> trans( | 8871 scoped_ptr<HttpTransaction> trans( |
| 8868 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8872 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8869 TestCompletionCallback callback; | 8873 TestCompletionCallback callback; |
| 8870 | 8874 |
| 8871 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8875 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8872 EXPECT_EQ(ERR_IO_PENDING, rv); | 8876 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8873 // The HTTP request should succeed. | 8877 // The HTTP request should succeed. |
| (...skipping 4679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13553 ASSERT_TRUE(response); | 13557 ASSERT_TRUE(response); |
| 13554 ASSERT_TRUE(response->headers.get()); | 13558 ASSERT_TRUE(response->headers.get()); |
| 13555 | 13559 |
| 13556 EXPECT_EQ(101, response->headers->response_code()); | 13560 EXPECT_EQ(101, response->headers->response_code()); |
| 13557 | 13561 |
| 13558 trans.reset(); | 13562 trans.reset(); |
| 13559 session->CloseAllConnections(); | 13563 session->CloseAllConnections(); |
| 13560 } | 13564 } |
| 13561 | 13565 |
| 13562 } // namespace net | 13566 } // namespace net |
| OLD | NEW |