| 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 <stdint.h> | 9 #include <stdint.h> |
| 10 | |
| 11 #include <limits> | 10 #include <limits> |
| 12 #include <string> | 11 #include <string> |
| 12 #include <utility> |
| 13 #include <vector> | 13 #include <vector> |
| 14 | 14 |
| 15 #include "base/compiler_specific.h" | 15 #include "base/compiler_specific.h" |
| 16 #include "base/files/file_path.h" | 16 #include "base/files/file_path.h" |
| 17 #include "base/files/file_util.h" | 17 #include "base/files/file_util.h" |
| 18 #include "base/json/json_writer.h" | 18 #include "base/json/json_writer.h" |
| 19 #include "base/logging.h" | 19 #include "base/logging.h" |
| 20 #include "base/macros.h" | 20 #include "base/macros.h" |
| 21 #include "base/memory/scoped_ptr.h" | 21 #include "base/memory/scoped_ptr.h" |
| 22 #include "base/memory/weak_ptr.h" | 22 #include "base/memory/weak_ptr.h" |
| (...skipping 3489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3512 session_deps_.proxy_service = | 3512 session_deps_.proxy_service = |
| 3513 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); | 3513 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
| 3514 | 3514 |
| 3515 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( | 3515 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( |
| 3516 new HttpAuthHandlerMock::Factory()); | 3516 new HttpAuthHandlerMock::Factory()); |
| 3517 auth_handler_factory->set_do_init_from_challenge(true); | 3517 auth_handler_factory->set_do_init_from_challenge(true); |
| 3518 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); | 3518 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); |
| 3519 mock_handler->set_allows_default_credentials(true); | 3519 mock_handler->set_allows_default_credentials(true); |
| 3520 auth_handler_factory->AddMockHandler(mock_handler.release(), | 3520 auth_handler_factory->AddMockHandler(mock_handler.release(), |
| 3521 HttpAuth::AUTH_PROXY); | 3521 HttpAuth::AUTH_PROXY); |
| 3522 session_deps_.http_auth_handler_factory = auth_handler_factory.Pass(); | 3522 session_deps_.http_auth_handler_factory = std::move(auth_handler_factory); |
| 3523 | 3523 |
| 3524 // Add NetLog just so can verify load timing information gets a NetLog ID. | 3524 // Add NetLog just so can verify load timing information gets a NetLog ID. |
| 3525 NetLog net_log; | 3525 NetLog net_log; |
| 3526 session_deps_.net_log = &net_log; | 3526 session_deps_.net_log = &net_log; |
| 3527 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 3527 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
| 3528 | 3528 |
| 3529 // Since we have proxy, should try to establish tunnel. | 3529 // Since we have proxy, should try to establish tunnel. |
| 3530 MockWrite data_writes1[] = { | 3530 MockWrite data_writes1[] = { |
| 3531 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 3531 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3532 "Host: www.example.org:443\r\n" | 3532 "Host: www.example.org:443\r\n" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3629 session_deps_.proxy_service = | 3629 session_deps_.proxy_service = |
| 3630 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); | 3630 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
| 3631 | 3631 |
| 3632 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( | 3632 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( |
| 3633 new HttpAuthHandlerMock::Factory()); | 3633 new HttpAuthHandlerMock::Factory()); |
| 3634 auth_handler_factory->set_do_init_from_challenge(true); | 3634 auth_handler_factory->set_do_init_from_challenge(true); |
| 3635 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); | 3635 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); |
| 3636 mock_handler->set_allows_default_credentials(true); | 3636 mock_handler->set_allows_default_credentials(true); |
| 3637 auth_handler_factory->AddMockHandler(mock_handler.release(), | 3637 auth_handler_factory->AddMockHandler(mock_handler.release(), |
| 3638 HttpAuth::AUTH_PROXY); | 3638 HttpAuth::AUTH_PROXY); |
| 3639 session_deps_.http_auth_handler_factory = auth_handler_factory.Pass(); | 3639 session_deps_.http_auth_handler_factory = std::move(auth_handler_factory); |
| 3640 | 3640 |
| 3641 // Add NetLog just so can verify load timing information gets a NetLog ID. | 3641 // Add NetLog just so can verify load timing information gets a NetLog ID. |
| 3642 NetLog net_log; | 3642 NetLog net_log; |
| 3643 session_deps_.net_log = &net_log; | 3643 session_deps_.net_log = &net_log; |
| 3644 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 3644 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
| 3645 | 3645 |
| 3646 // Should try to establish tunnel. | 3646 // Should try to establish tunnel. |
| 3647 MockWrite data_writes1[] = { | 3647 MockWrite data_writes1[] = { |
| 3648 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 3648 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3649 "Host: www.example.org:443\r\n" | 3649 "Host: www.example.org:443\r\n" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3751 session_deps_.proxy_service = | 3751 session_deps_.proxy_service = |
| 3752 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); | 3752 ProxyService::CreateFixedFromPacResult("PROXY myproxy:70"); |
| 3753 | 3753 |
| 3754 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( | 3754 scoped_ptr<HttpAuthHandlerMock::Factory> auth_handler_factory( |
| 3755 new HttpAuthHandlerMock::Factory()); | 3755 new HttpAuthHandlerMock::Factory()); |
| 3756 auth_handler_factory->set_do_init_from_challenge(true); | 3756 auth_handler_factory->set_do_init_from_challenge(true); |
| 3757 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); | 3757 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); |
| 3758 mock_handler->set_allows_default_credentials(true); | 3758 mock_handler->set_allows_default_credentials(true); |
| 3759 auth_handler_factory->AddMockHandler(mock_handler.release(), | 3759 auth_handler_factory->AddMockHandler(mock_handler.release(), |
| 3760 HttpAuth::AUTH_PROXY); | 3760 HttpAuth::AUTH_PROXY); |
| 3761 session_deps_.http_auth_handler_factory = auth_handler_factory.Pass(); | 3761 session_deps_.http_auth_handler_factory = std::move(auth_handler_factory); |
| 3762 | 3762 |
| 3763 // Add NetLog just so can verify load timing information gets a NetLog ID. | 3763 // Add NetLog just so can verify load timing information gets a NetLog ID. |
| 3764 NetLog net_log; | 3764 NetLog net_log; |
| 3765 session_deps_.net_log = &net_log; | 3765 session_deps_.net_log = &net_log; |
| 3766 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 3766 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
| 3767 | 3767 |
| 3768 // Should try to establish tunnel. | 3768 // Should try to establish tunnel. |
| 3769 MockWrite data_writes1[] = { | 3769 MockWrite data_writes1[] = { |
| 3770 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 3770 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3771 "Host: www.example.org:443\r\n" | 3771 "Host: www.example.org:443\r\n" |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3855 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); | 3855 scoped_ptr<HttpAuthHandlerMock> mock_handler(new HttpAuthHandlerMock()); |
| 3856 mock_handler->set_allows_default_credentials(true); | 3856 mock_handler->set_allows_default_credentials(true); |
| 3857 auth_handler_factory->AddMockHandler(mock_handler.release(), | 3857 auth_handler_factory->AddMockHandler(mock_handler.release(), |
| 3858 HttpAuth::AUTH_PROXY); | 3858 HttpAuth::AUTH_PROXY); |
| 3859 // Add another handler for the second challenge. It supports default | 3859 // Add another handler for the second challenge. It supports default |
| 3860 // credentials, but they shouldn't be used, since they were already tried. | 3860 // credentials, but they shouldn't be used, since they were already tried. |
| 3861 mock_handler.reset(new HttpAuthHandlerMock()); | 3861 mock_handler.reset(new HttpAuthHandlerMock()); |
| 3862 mock_handler->set_allows_default_credentials(true); | 3862 mock_handler->set_allows_default_credentials(true); |
| 3863 auth_handler_factory->AddMockHandler(mock_handler.release(), | 3863 auth_handler_factory->AddMockHandler(mock_handler.release(), |
| 3864 HttpAuth::AUTH_PROXY); | 3864 HttpAuth::AUTH_PROXY); |
| 3865 session_deps_.http_auth_handler_factory = auth_handler_factory.Pass(); | 3865 session_deps_.http_auth_handler_factory = std::move(auth_handler_factory); |
| 3866 | 3866 |
| 3867 // Add NetLog just so can verify load timing information gets a NetLog ID. | 3867 // Add NetLog just so can verify load timing information gets a NetLog ID. |
| 3868 NetLog net_log; | 3868 NetLog net_log; |
| 3869 session_deps_.net_log = &net_log; | 3869 session_deps_.net_log = &net_log; |
| 3870 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); | 3870 scoped_ptr<HttpNetworkSession> session = CreateSession(&session_deps_); |
| 3871 | 3871 |
| 3872 // Should try to establish tunnel. | 3872 // Should try to establish tunnel. |
| 3873 MockWrite data_writes1[] = { | 3873 MockWrite data_writes1[] = { |
| 3874 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" | 3874 MockWrite("CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 3875 "Host: www.example.org:443\r\n" | 3875 "Host: www.example.org:443\r\n" |
| (...skipping 4905 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8781 | 8781 |
| 8782 HttpNetworkSessionPeer peer(session.get()); | 8782 HttpNetworkSessionPeer peer(session.get()); |
| 8783 CaptureGroupNameTransportSocketPool* transport_conn_pool = | 8783 CaptureGroupNameTransportSocketPool* transport_conn_pool = |
| 8784 new CaptureGroupNameTransportSocketPool(NULL, NULL); | 8784 new CaptureGroupNameTransportSocketPool(NULL, NULL); |
| 8785 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8785 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8786 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8786 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8787 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8787 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8788 new MockClientSocketPoolManager); | 8788 new MockClientSocketPoolManager); |
| 8789 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); | 8789 mock_pool_manager->SetTransportSocketPool(transport_conn_pool); |
| 8790 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); | 8790 mock_pool_manager->SetSSLSocketPool(ssl_conn_pool); |
| 8791 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8791 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 8792 | 8792 |
| 8793 EXPECT_EQ(ERR_IO_PENDING, | 8793 EXPECT_EQ(ERR_IO_PENDING, |
| 8794 GroupNameTransactionHelper(tests[i].url, session.get())); | 8794 GroupNameTransactionHelper(tests[i].url, session.get())); |
| 8795 if (tests[i].ssl) | 8795 if (tests[i].ssl) |
| 8796 EXPECT_EQ(tests[i].expected_group_name, | 8796 EXPECT_EQ(tests[i].expected_group_name, |
| 8797 ssl_conn_pool->last_group_name_received()); | 8797 ssl_conn_pool->last_group_name_received()); |
| 8798 else | 8798 else |
| 8799 EXPECT_EQ(tests[i].expected_group_name, | 8799 EXPECT_EQ(tests[i].expected_group_name, |
| 8800 transport_conn_pool->last_group_name_received()); | 8800 transport_conn_pool->last_group_name_received()); |
| 8801 } | 8801 } |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8846 HostPortPair proxy_host("http_proxy", 80); | 8846 HostPortPair proxy_host("http_proxy", 80); |
| 8847 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = | 8847 CaptureGroupNameHttpProxySocketPool* http_proxy_pool = |
| 8848 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); | 8848 new CaptureGroupNameHttpProxySocketPool(NULL, NULL); |
| 8849 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8849 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8850 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8850 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8851 | 8851 |
| 8852 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8852 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8853 new MockClientSocketPoolManager); | 8853 new MockClientSocketPoolManager); |
| 8854 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); | 8854 mock_pool_manager->SetSocketPoolForHTTPProxy(proxy_host, http_proxy_pool); |
| 8855 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 8855 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 8856 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8856 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 8857 | 8857 |
| 8858 EXPECT_EQ(ERR_IO_PENDING, | 8858 EXPECT_EQ(ERR_IO_PENDING, |
| 8859 GroupNameTransactionHelper(tests[i].url, session.get())); | 8859 GroupNameTransactionHelper(tests[i].url, session.get())); |
| 8860 if (tests[i].ssl) | 8860 if (tests[i].ssl) |
| 8861 EXPECT_EQ(tests[i].expected_group_name, | 8861 EXPECT_EQ(tests[i].expected_group_name, |
| 8862 ssl_conn_pool->last_group_name_received()); | 8862 ssl_conn_pool->last_group_name_received()); |
| 8863 else | 8863 else |
| 8864 EXPECT_EQ(tests[i].expected_group_name, | 8864 EXPECT_EQ(tests[i].expected_group_name, |
| 8865 http_proxy_pool->last_group_name_received()); | 8865 http_proxy_pool->last_group_name_received()); |
| 8866 } | 8866 } |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8916 HostPortPair proxy_host("socks_proxy", 1080); | 8916 HostPortPair proxy_host("socks_proxy", 1080); |
| 8917 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = | 8917 CaptureGroupNameSOCKSSocketPool* socks_conn_pool = |
| 8918 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); | 8918 new CaptureGroupNameSOCKSSocketPool(NULL, NULL); |
| 8919 CaptureGroupNameSSLSocketPool* ssl_conn_pool = | 8919 CaptureGroupNameSSLSocketPool* ssl_conn_pool = |
| 8920 new CaptureGroupNameSSLSocketPool(NULL, NULL); | 8920 new CaptureGroupNameSSLSocketPool(NULL, NULL); |
| 8921 | 8921 |
| 8922 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 8922 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 8923 new MockClientSocketPoolManager); | 8923 new MockClientSocketPoolManager); |
| 8924 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); | 8924 mock_pool_manager->SetSocketPoolForSOCKSProxy(proxy_host, socks_conn_pool); |
| 8925 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); | 8925 mock_pool_manager->SetSocketPoolForSSLWithProxy(proxy_host, ssl_conn_pool); |
| 8926 peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 8926 peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 8927 | 8927 |
| 8928 scoped_ptr<HttpTransaction> trans( | 8928 scoped_ptr<HttpTransaction> trans( |
| 8929 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 8929 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 8930 | 8930 |
| 8931 EXPECT_EQ(ERR_IO_PENDING, | 8931 EXPECT_EQ(ERR_IO_PENDING, |
| 8932 GroupNameTransactionHelper(tests[i].url, session.get())); | 8932 GroupNameTransactionHelper(tests[i].url, session.get())); |
| 8933 if (tests[i].ssl) | 8933 if (tests[i].ssl) |
| 8934 EXPECT_EQ(tests[i].expected_group_name, | 8934 EXPECT_EQ(tests[i].expected_group_name, |
| 8935 ssl_conn_pool->last_group_name_received()); | 8935 ssl_conn_pool->last_group_name_received()); |
| 8936 else | 8936 else |
| (...skipping 2619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11556 HttpNetworkSessionPeer session_peer(session.get()); | 11556 HttpNetworkSessionPeer session_peer(session.get()); |
| 11557 TransportClientSocketPool* transport_pool = new TransportClientSocketPool( | 11557 TransportClientSocketPool* transport_pool = new TransportClientSocketPool( |
| 11558 50, // Max sockets for pool | 11558 50, // Max sockets for pool |
| 11559 1, // Max sockets per group | 11559 1, // Max sockets per group |
| 11560 session_deps_.host_resolver.get(), | 11560 session_deps_.host_resolver.get(), |
| 11561 session_deps_.socket_factory.get(), | 11561 session_deps_.socket_factory.get(), |
| 11562 session_deps_.net_log); | 11562 session_deps_.net_log); |
| 11563 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( | 11563 scoped_ptr<MockClientSocketPoolManager> mock_pool_manager( |
| 11564 new MockClientSocketPoolManager); | 11564 new MockClientSocketPoolManager); |
| 11565 mock_pool_manager->SetTransportSocketPool(transport_pool); | 11565 mock_pool_manager->SetTransportSocketPool(transport_pool); |
| 11566 session_peer.SetClientSocketPoolManager(mock_pool_manager.Pass()); | 11566 session_peer.SetClientSocketPoolManager(std::move(mock_pool_manager)); |
| 11567 | 11567 |
| 11568 scoped_ptr<HttpTransaction> trans( | 11568 scoped_ptr<HttpTransaction> trans( |
| 11569 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 11569 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 11570 TestCompletionCallback callback; | 11570 TestCompletionCallback callback; |
| 11571 | 11571 |
| 11572 const MockWrite kGet( | 11572 const MockWrite kGet( |
| 11573 "GET / HTTP/1.1\r\n" | 11573 "GET / HTTP/1.1\r\n" |
| 11574 "Host: www.example.com\r\n" | 11574 "Host: www.example.com\r\n" |
| 11575 "Connection: keep-alive\r\n\r\n"); | 11575 "Connection: keep-alive\r\n\r\n"); |
| 11576 const MockWrite kGetAuth( | 11576 const MockWrite kGetAuth( |
| (...skipping 3097 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14674 }; | 14674 }; |
| 14675 | 14675 |
| 14676 // TODO(yhirano): Split this class out into a net/websockets file, if it is | 14676 // TODO(yhirano): Split this class out into a net/websockets file, if it is |
| 14677 // worth doing. | 14677 // worth doing. |
| 14678 class FakeWebSocketStreamCreateHelper : | 14678 class FakeWebSocketStreamCreateHelper : |
| 14679 public WebSocketHandshakeStreamBase::CreateHelper { | 14679 public WebSocketHandshakeStreamBase::CreateHelper { |
| 14680 public: | 14680 public: |
| 14681 WebSocketHandshakeStreamBase* CreateBasicStream( | 14681 WebSocketHandshakeStreamBase* CreateBasicStream( |
| 14682 scoped_ptr<ClientSocketHandle> connection, | 14682 scoped_ptr<ClientSocketHandle> connection, |
| 14683 bool using_proxy) override { | 14683 bool using_proxy) override { |
| 14684 return new FakeWebSocketBasicHandshakeStream(connection.Pass(), | 14684 return new FakeWebSocketBasicHandshakeStream(std::move(connection), |
| 14685 using_proxy); | 14685 using_proxy); |
| 14686 } | 14686 } |
| 14687 | 14687 |
| 14688 WebSocketHandshakeStreamBase* CreateSpdyStream( | 14688 WebSocketHandshakeStreamBase* CreateSpdyStream( |
| 14689 const base::WeakPtr<SpdySession>& session, | 14689 const base::WeakPtr<SpdySession>& session, |
| 14690 bool use_relative_url) override { | 14690 bool use_relative_url) override { |
| 14691 NOTREACHED(); | 14691 NOTREACHED(); |
| 14692 return NULL; | 14692 return NULL; |
| 14693 }; | 14693 }; |
| 14694 | 14694 |
| (...skipping 1101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15796 | 15796 |
| 15797 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 15797 scoped_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 15798 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 15798 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
| 15799 | 15799 |
| 15800 EXPECT_THAT(trans.server_ssl_config_.alpn_protos, | 15800 EXPECT_THAT(trans.server_ssl_config_.alpn_protos, |
| 15801 testing::ElementsAre(kProtoHTTP2, kProtoSPDY31, kProtoHTTP11)); | 15801 testing::ElementsAre(kProtoHTTP2, kProtoSPDY31, kProtoHTTP11)); |
| 15802 EXPECT_TRUE(trans.server_ssl_config_.npn_protos.empty()); | 15802 EXPECT_TRUE(trans.server_ssl_config_.npn_protos.empty()); |
| 15803 } | 15803 } |
| 15804 | 15804 |
| 15805 } // namespace net | 15805 } // namespace net |
| OLD | NEW |