Chromium Code Reviews| 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 7598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 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->SetAlternateProtocol( |
| 7618 HostPortPair("host.with.alternate", 80), 443, | 7618 HostPortPair("host.with.alternate", 80), 443, |
| 7619 AlternateProtocolFromNextProto(next_proto), 1); | 7619 AlternateProtocolFromNextProto(next_proto), 1.0); |
|
Ryan Hamilton
2015/01/30 17:29:14
I'm not clear why this change is needed. The compi
| |
| 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; |
| 7628 request.method = "GET"; | 7628 request.method = "GET"; |
| 7629 request.url = GURL(url); | 7629 request.url = GURL(url); |
| (...skipping 927 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8557 | 8557 |
| 8558 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8558 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8559 | 8559 |
| 8560 base::WeakPtr<HttpServerProperties> http_server_properties = | 8560 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8561 session->http_server_properties(); | 8561 session->http_server_properties(); |
| 8562 // Port must be < 1024, or the header will be ignored (since initial port was | 8562 // Port must be < 1024, or the header will be ignored (since initial port was |
| 8563 // port 80 (another restricted port). | 8563 // port 80 (another restricted port). |
| 8564 http_server_properties->SetAlternateProtocol( | 8564 http_server_properties->SetAlternateProtocol( |
| 8565 HostPortPair::FromURL(request.url), | 8565 HostPortPair::FromURL(request.url), |
| 8566 666 /* port is ignored by MockConnect anyway */, | 8566 666 /* port is ignored by MockConnect anyway */, |
| 8567 AlternateProtocolFromNextProto(GetParam()), 1); | 8567 AlternateProtocolFromNextProto(GetParam()), 1.0); |
| 8568 | 8568 |
| 8569 scoped_ptr<HttpTransaction> trans( | 8569 scoped_ptr<HttpTransaction> trans( |
| 8570 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8570 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8571 TestCompletionCallback callback; | 8571 TestCompletionCallback callback; |
| 8572 | 8572 |
| 8573 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8573 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8574 EXPECT_EQ(ERR_IO_PENDING, rv); | 8574 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8575 EXPECT_EQ(OK, callback.WaitForResult()); | 8575 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8576 | 8576 |
| 8577 const HttpResponseInfo* response = trans->GetResponseInfo(); | 8577 const HttpResponseInfo* response = trans->GetResponseInfo(); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8618 data_reads, arraysize(data_reads), NULL, 0); | 8618 data_reads, arraysize(data_reads), NULL, 0); |
| 8619 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8619 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8620 | 8620 |
| 8621 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8621 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8622 | 8622 |
| 8623 base::WeakPtr<HttpServerProperties> http_server_properties = | 8623 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8624 session->http_server_properties(); | 8624 session->http_server_properties(); |
| 8625 const int kUnrestrictedAlternatePort = 1024; | 8625 const int kUnrestrictedAlternatePort = 1024; |
| 8626 http_server_properties->SetAlternateProtocol( | 8626 http_server_properties->SetAlternateProtocol( |
| 8627 HostPortPair::FromURL(restricted_port_request.url), | 8627 HostPortPair::FromURL(restricted_port_request.url), |
| 8628 kUnrestrictedAlternatePort, | 8628 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8629 AlternateProtocolFromNextProto(GetParam()), 1); | 8629 1.0); |
| 8630 | 8630 |
| 8631 scoped_ptr<HttpTransaction> trans( | 8631 scoped_ptr<HttpTransaction> trans( |
| 8632 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8632 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8633 TestCompletionCallback callback; | 8633 TestCompletionCallback callback; |
| 8634 | 8634 |
| 8635 int rv = trans->Start( | 8635 int rv = trans->Start( |
| 8636 &restricted_port_request, | 8636 &restricted_port_request, |
| 8637 callback.callback(), BoundNetLog()); | 8637 callback.callback(), BoundNetLog()); |
| 8638 EXPECT_EQ(ERR_IO_PENDING, rv); | 8638 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8639 // Invalid change to unrestricted port should fail. | 8639 // Invalid change to unrestricted port should fail. |
| (...skipping 29 matching lines...) Expand all Loading... | |
| 8669 data_reads, arraysize(data_reads), NULL, 0); | 8669 data_reads, arraysize(data_reads), NULL, 0); |
| 8670 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8670 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8671 | 8671 |
| 8672 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8672 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8673 | 8673 |
| 8674 base::WeakPtr<HttpServerProperties> http_server_properties = | 8674 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8675 session->http_server_properties(); | 8675 session->http_server_properties(); |
| 8676 const int kUnrestrictedAlternatePort = 1024; | 8676 const int kUnrestrictedAlternatePort = 1024; |
| 8677 http_server_properties->SetAlternateProtocol( | 8677 http_server_properties->SetAlternateProtocol( |
| 8678 HostPortPair::FromURL(restricted_port_request.url), | 8678 HostPortPair::FromURL(restricted_port_request.url), |
| 8679 kUnrestrictedAlternatePort, | 8679 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8680 AlternateProtocolFromNextProto(GetParam()), 1); | 8680 1.0); |
| 8681 | 8681 |
| 8682 scoped_ptr<HttpTransaction> trans( | 8682 scoped_ptr<HttpTransaction> trans( |
| 8683 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8683 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8684 TestCompletionCallback callback; | 8684 TestCompletionCallback callback; |
| 8685 | 8685 |
| 8686 EXPECT_EQ(ERR_IO_PENDING, trans->Start( | 8686 EXPECT_EQ(ERR_IO_PENDING, trans->Start( |
| 8687 &restricted_port_request, | 8687 &restricted_port_request, |
| 8688 callback.callback(), BoundNetLog())); | 8688 callback.callback(), BoundNetLog())); |
| 8689 // Change to unrestricted port should succeed. | 8689 // Change to unrestricted port should succeed. |
| 8690 EXPECT_EQ(OK, callback.WaitForResult()); | 8690 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 8717 data_reads, arraysize(data_reads), NULL, 0); | 8717 data_reads, arraysize(data_reads), NULL, 0); |
| 8718 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8718 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8719 | 8719 |
| 8720 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8720 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8721 | 8721 |
| 8722 base::WeakPtr<HttpServerProperties> http_server_properties = | 8722 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8723 session->http_server_properties(); | 8723 session->http_server_properties(); |
| 8724 const int kRestrictedAlternatePort = 80; | 8724 const int kRestrictedAlternatePort = 80; |
| 8725 http_server_properties->SetAlternateProtocol( | 8725 http_server_properties->SetAlternateProtocol( |
| 8726 HostPortPair::FromURL(restricted_port_request.url), | 8726 HostPortPair::FromURL(restricted_port_request.url), |
| 8727 kRestrictedAlternatePort, | 8727 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8728 AlternateProtocolFromNextProto(GetParam()), 1); | 8728 1.0); |
| 8729 | 8729 |
| 8730 scoped_ptr<HttpTransaction> trans( | 8730 scoped_ptr<HttpTransaction> trans( |
| 8731 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8731 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8732 TestCompletionCallback callback; | 8732 TestCompletionCallback callback; |
| 8733 | 8733 |
| 8734 int rv = trans->Start( | 8734 int rv = trans->Start( |
| 8735 &restricted_port_request, | 8735 &restricted_port_request, |
| 8736 callback.callback(), BoundNetLog()); | 8736 callback.callback(), BoundNetLog()); |
| 8737 EXPECT_EQ(ERR_IO_PENDING, rv); | 8737 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8738 // Valid change to restricted port should pass. | 8738 // Valid change to restricted port should pass. |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 8766 data_reads, arraysize(data_reads), NULL, 0); | 8766 data_reads, arraysize(data_reads), NULL, 0); |
| 8767 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8767 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8768 | 8768 |
| 8769 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8769 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8770 | 8770 |
| 8771 base::WeakPtr<HttpServerProperties> http_server_properties = | 8771 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8772 session->http_server_properties(); | 8772 session->http_server_properties(); |
| 8773 const int kRestrictedAlternatePort = 80; | 8773 const int kRestrictedAlternatePort = 80; |
| 8774 http_server_properties->SetAlternateProtocol( | 8774 http_server_properties->SetAlternateProtocol( |
| 8775 HostPortPair::FromURL(unrestricted_port_request.url), | 8775 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8776 kRestrictedAlternatePort, | 8776 kRestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8777 AlternateProtocolFromNextProto(GetParam()), 1); | 8777 1.0); |
| 8778 | 8778 |
| 8779 scoped_ptr<HttpTransaction> trans( | 8779 scoped_ptr<HttpTransaction> trans( |
| 8780 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8780 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8781 TestCompletionCallback callback; | 8781 TestCompletionCallback callback; |
| 8782 | 8782 |
| 8783 int rv = trans->Start( | 8783 int rv = trans->Start( |
| 8784 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8784 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 8785 EXPECT_EQ(ERR_IO_PENDING, rv); | 8785 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8786 // Valid change to restricted port should pass. | 8786 // Valid change to restricted port should pass. |
| 8787 EXPECT_EQ(OK, callback.WaitForResult()); | 8787 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 8814 data_reads, arraysize(data_reads), NULL, 0); | 8814 data_reads, arraysize(data_reads), NULL, 0); |
| 8815 session_deps_.socket_factory->AddSocketDataProvider(&second_data); | 8815 session_deps_.socket_factory->AddSocketDataProvider(&second_data); |
| 8816 | 8816 |
| 8817 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8817 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8818 | 8818 |
| 8819 base::WeakPtr<HttpServerProperties> http_server_properties = | 8819 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8820 session->http_server_properties(); | 8820 session->http_server_properties(); |
| 8821 const int kUnrestrictedAlternatePort = 1024; | 8821 const int kUnrestrictedAlternatePort = 1024; |
| 8822 http_server_properties->SetAlternateProtocol( | 8822 http_server_properties->SetAlternateProtocol( |
| 8823 HostPortPair::FromURL(unrestricted_port_request.url), | 8823 HostPortPair::FromURL(unrestricted_port_request.url), |
| 8824 kUnrestrictedAlternatePort, | 8824 kUnrestrictedAlternatePort, AlternateProtocolFromNextProto(GetParam()), |
| 8825 AlternateProtocolFromNextProto(GetParam()), 1); | 8825 1.0); |
| 8826 | 8826 |
| 8827 scoped_ptr<HttpTransaction> trans( | 8827 scoped_ptr<HttpTransaction> trans( |
| 8828 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8828 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8829 TestCompletionCallback callback; | 8829 TestCompletionCallback callback; |
| 8830 | 8830 |
| 8831 int rv = trans->Start( | 8831 int rv = trans->Start( |
| 8832 &unrestricted_port_request, callback.callback(), BoundNetLog()); | 8832 &unrestricted_port_request, callback.callback(), BoundNetLog()); |
| 8833 EXPECT_EQ(ERR_IO_PENDING, rv); | 8833 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8834 // Valid change to an unrestricted port should pass. | 8834 // Valid change to an unrestricted port should pass. |
| 8835 EXPECT_EQ(OK, callback.WaitForResult()); | 8835 EXPECT_EQ(OK, callback.WaitForResult()); |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 8856 StaticSocketDataProvider data( | 8856 StaticSocketDataProvider data( |
| 8857 data_reads, arraysize(data_reads), NULL, 0); | 8857 data_reads, arraysize(data_reads), NULL, 0); |
| 8858 session_deps_.socket_factory->AddSocketDataProvider(&data); | 8858 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 8859 | 8859 |
| 8860 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8860 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8861 | 8861 |
| 8862 base::WeakPtr<HttpServerProperties> http_server_properties = | 8862 base::WeakPtr<HttpServerProperties> http_server_properties = |
| 8863 session->http_server_properties(); | 8863 session->http_server_properties(); |
| 8864 const int kUnsafePort = 7; | 8864 const int kUnsafePort = 7; |
| 8865 http_server_properties->SetAlternateProtocol( | 8865 http_server_properties->SetAlternateProtocol( |
| 8866 HostPortPair::FromURL(request.url), | 8866 HostPortPair::FromURL(request.url), kUnsafePort, |
| 8867 kUnsafePort, | 8867 AlternateProtocolFromNextProto(GetParam()), 1.0); |
| 8868 AlternateProtocolFromNextProto(GetParam()), 1); | |
| 8869 | 8868 |
| 8870 scoped_ptr<HttpTransaction> trans( | 8869 scoped_ptr<HttpTransaction> trans( |
| 8871 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8870 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8872 TestCompletionCallback callback; | 8871 TestCompletionCallback callback; |
| 8873 | 8872 |
| 8874 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); | 8873 int rv = trans->Start(&request, callback.callback(), BoundNetLog()); |
| 8875 EXPECT_EQ(ERR_IO_PENDING, rv); | 8874 EXPECT_EQ(ERR_IO_PENDING, rv); |
| 8876 // The HTTP request should succeed. | 8875 // The HTTP request should succeed. |
| 8877 EXPECT_EQ(OK, callback.WaitForResult()); | 8876 EXPECT_EQ(OK, callback.WaitForResult()); |
| 8878 | 8877 |
| (...skipping 4677 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 13556 ASSERT_TRUE(response); | 13555 ASSERT_TRUE(response); |
| 13557 ASSERT_TRUE(response->headers.get()); | 13556 ASSERT_TRUE(response->headers.get()); |
| 13558 | 13557 |
| 13559 EXPECT_EQ(101, response->headers->response_code()); | 13558 EXPECT_EQ(101, response->headers->response_code()); |
| 13560 | 13559 |
| 13561 trans.reset(); | 13560 trans.reset(); |
| 13562 session->CloseAllConnections(); | 13561 session->CloseAllConnections(); |
| 13563 } | 13562 } |
| 13564 | 13563 |
| 13565 } // namespace net | 13564 } // namespace net |
| OLD | NEW |