| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/quic/chromium/quic_stream_factory.h" | 5 #include "net/quic/chromium/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <ostream> | 8 #include <ostream> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 params.push_back(PoolingTestParams{version, SAME_AS_SECOND}); | 150 params.push_back(PoolingTestParams{version, SAME_AS_SECOND}); |
| 151 params.push_back(PoolingTestParams{version, DIFFERENT}); | 151 params.push_back(PoolingTestParams{version, DIFFERENT}); |
| 152 } | 152 } |
| 153 return params; | 153 return params; |
| 154 } | 154 } |
| 155 | 155 |
| 156 } // namespace | 156 } // namespace |
| 157 | 157 |
| 158 class QuicHttpStreamPeer { | 158 class QuicHttpStreamPeer { |
| 159 public: | 159 public: |
| 160 static QuicChromiumClientSession* GetSession(QuicHttpStream* stream) { | 160 static QuicChromiumClientSession* GetSession(HttpStream* stream) { |
| 161 return stream->session_.get(); | 161 return static_cast<QuicHttpStream*>(stream)->session_.get(); |
| 162 } | 162 } |
| 163 }; | 163 }; |
| 164 | 164 |
| 165 class QuicStreamFactoryTestBase { | 165 class QuicStreamFactoryTestBase { |
| 166 protected: | 166 protected: |
| 167 explicit QuicStreamFactoryTestBase(QuicVersion version) | 167 explicit QuicStreamFactoryTestBase(QuicVersion version) |
| 168 : ssl_config_service_(new MockSSLConfigService), | 168 : ssl_config_service_(new MockSSLConfigService), |
| 169 random_generator_(0), | 169 random_generator_(0), |
| 170 runner_(new TestTaskRunner(&clock_)), | 170 runner_(new TestTaskRunner(&clock_)), |
| 171 version_(version), | 171 version_(version), |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 socket_data.AddSocketDataToFactory(&socket_factory_); | 284 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 285 | 285 |
| 286 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 286 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 287 GURL url("https://" + destination.host() + "/"); | 287 GURL url("https://" + destination.host() + "/"); |
| 288 EXPECT_EQ(ERR_IO_PENDING, | 288 EXPECT_EQ(ERR_IO_PENDING, |
| 289 request.Request(destination, privacy_mode_, | 289 request.Request(destination, privacy_mode_, |
| 290 /*cert_verify_flags=*/0, url, "GET", net_log_, | 290 /*cert_verify_flags=*/0, url, "GET", net_log_, |
| 291 callback_.callback())); | 291 callback_.callback())); |
| 292 | 292 |
| 293 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 293 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 294 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 294 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 295 EXPECT_TRUE(stream.get()); | 295 EXPECT_TRUE(stream.get()); |
| 296 stream.reset(); | 296 stream.reset(); |
| 297 | 297 |
| 298 QuicChromiumClientSession* session = GetActiveSession(destination); | 298 QuicChromiumClientSession* session = GetActiveSession(destination); |
| 299 | 299 |
| 300 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { | 300 if (socket_count + 1 != socket_factory_.udp_client_socket_ports().size()) { |
| 301 ADD_FAILURE(); | 301 ADD_FAILURE(); |
| 302 return 0; | 302 return 0; |
| 303 } | 303 } |
| 304 | 304 |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 EXPECT_EQ(ERR_IO_PENDING, | 433 EXPECT_EQ(ERR_IO_PENDING, |
| 434 request.Request(host_port_pair_, privacy_mode_, | 434 request.Request(host_port_pair_, privacy_mode_, |
| 435 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 435 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 436 callback_.callback())); | 436 callback_.callback())); |
| 437 EXPECT_EQ(OK, callback_.WaitForResult()); | 437 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 438 | 438 |
| 439 // Run QuicChromiumClientSession::WriteToNewSocket() | 439 // Run QuicChromiumClientSession::WriteToNewSocket() |
| 440 // posted by QuicChromiumClientSession::MigrateToSocket(). | 440 // posted by QuicChromiumClientSession::MigrateToSocket(). |
| 441 base::RunLoop().RunUntilIdle(); | 441 base::RunLoop().RunUntilIdle(); |
| 442 | 442 |
| 443 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 443 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 444 EXPECT_TRUE(stream.get()); | 444 EXPECT_TRUE(stream.get()); |
| 445 | 445 |
| 446 // Cause QUIC stream to be created. | 446 // Cause QUIC stream to be created. |
| 447 HttpRequestInfo request_info; | 447 HttpRequestInfo request_info; |
| 448 request_info.method = "GET"; | 448 request_info.method = "GET"; |
| 449 request_info.url = GURL("https://www.example.org/"); | 449 request_info.url = GURL("https://www.example.org/"); |
| 450 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 450 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 451 net_log_, CompletionCallback())); | 451 net_log_, CompletionCallback())); |
| 452 // Ensure that session is alive and active. | 452 // Ensure that session is alive and active. |
| 453 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 453 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 kDefaultMaxUncompressedHeaderSize, nullptr)); | 764 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 765 socket_data.AddSocketDataToFactory(&socket_factory_); | 765 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 766 | 766 |
| 767 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 767 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 768 EXPECT_EQ(ERR_IO_PENDING, | 768 EXPECT_EQ(ERR_IO_PENDING, |
| 769 request.Request(host_port_pair_, privacy_mode_, | 769 request.Request(host_port_pair_, privacy_mode_, |
| 770 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 770 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 771 callback_.callback())); | 771 callback_.callback())); |
| 772 | 772 |
| 773 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 773 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 774 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 774 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 775 EXPECT_TRUE(stream.get()); | 775 EXPECT_TRUE(stream.get()); |
| 776 | 776 |
| 777 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 777 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 778 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, | 778 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, |
| 779 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 779 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 780 callback_.callback())); | 780 callback_.callback())); |
| 781 // Will reset stream 3. | 781 // Will reset stream 3. |
| 782 stream = request.CreateStream(); | 782 stream = request.CreateStream(); |
| 783 | 783 |
| 784 EXPECT_TRUE(stream.get()); | 784 EXPECT_TRUE(stream.get()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 809 MockCryptoClientStream::ZERO_RTT); | 809 MockCryptoClientStream::ZERO_RTT); |
| 810 host_resolver_.set_synchronous_mode(true); | 810 host_resolver_.set_synchronous_mode(true); |
| 811 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 811 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 812 "192.168.0.1", ""); | 812 "192.168.0.1", ""); |
| 813 | 813 |
| 814 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 814 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 815 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 815 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 816 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 816 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 817 callback_.callback())); | 817 callback_.callback())); |
| 818 | 818 |
| 819 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 819 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 820 EXPECT_TRUE(stream.get()); | 820 EXPECT_TRUE(stream.get()); |
| 821 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 821 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 822 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 822 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 823 } | 823 } |
| 824 | 824 |
| 825 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { | 825 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { |
| 826 Initialize(); | 826 Initialize(); |
| 827 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 827 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 828 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 828 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 829 | 829 |
| 830 MockQuicData socket_data; | 830 MockQuicData socket_data; |
| 831 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 831 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 832 socket_data.AddSocketDataToFactory(&socket_factory_); | 832 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 833 | 833 |
| 834 crypto_client_stream_factory_.set_handshake_mode( | 834 crypto_client_stream_factory_.set_handshake_mode( |
| 835 MockCryptoClientStream::ZERO_RTT); | 835 MockCryptoClientStream::ZERO_RTT); |
| 836 host_resolver_.set_synchronous_mode(true); | 836 host_resolver_.set_synchronous_mode(true); |
| 837 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 837 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 838 "192.168.0.1", ""); | 838 "192.168.0.1", ""); |
| 839 | 839 |
| 840 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 840 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 841 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 841 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 842 /*cert_verify_flags=*/0, url_, "POST", net_log_, | 842 /*cert_verify_flags=*/0, url_, "POST", net_log_, |
| 843 callback_.callback())); | 843 callback_.callback())); |
| 844 | 844 |
| 845 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 845 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 846 EXPECT_TRUE(stream.get()); | 846 EXPECT_TRUE(stream.get()); |
| 847 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 847 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 848 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 848 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 849 } | 849 } |
| 850 | 850 |
| 851 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) { | 851 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) { |
| 852 Initialize(); | 852 Initialize(); |
| 853 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 853 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 854 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 854 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 855 | 855 |
| 856 MockQuicData socket_data; | 856 MockQuicData socket_data; |
| 857 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 857 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 858 socket_data.AddWrite( | 858 socket_data.AddWrite( |
| 859 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 859 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 860 kDefaultMaxUncompressedHeaderSize, nullptr)); | 860 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 861 socket_data.AddSocketDataToFactory(&socket_factory_); | 861 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 862 | 862 |
| 863 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 863 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 864 EXPECT_EQ(ERR_IO_PENDING, | 864 EXPECT_EQ(ERR_IO_PENDING, |
| 865 request.Request(host_port_pair_, privacy_mode_, | 865 request.Request(host_port_pair_, privacy_mode_, |
| 866 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 866 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 867 callback_.callback())); | 867 callback_.callback())); |
| 868 | 868 |
| 869 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 869 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 870 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 870 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 871 EXPECT_TRUE(stream.get()); | 871 EXPECT_TRUE(stream.get()); |
| 872 | 872 |
| 873 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 873 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 874 EXPECT_EQ(100000u, session->connection()->GetStats().srtt_us); | 874 EXPECT_EQ(100000u, session->connection()->GetStats().srtt_us); |
| 875 ASSERT_FALSE(session->config()->HasInitialRoundTripTimeUsToSend()); | 875 ASSERT_FALSE(session->config()->HasInitialRoundTripTimeUsToSend()); |
| 876 } | 876 } |
| 877 | 877 |
| 878 TEST_P(QuicStreamFactoryTest, CachedInitialRtt) { | 878 TEST_P(QuicStreamFactoryTest, CachedInitialRtt) { |
| 879 ServerNetworkStats stats; | 879 ServerNetworkStats stats; |
| 880 stats.srtt = base::TimeDelta::FromMilliseconds(10); | 880 stats.srtt = base::TimeDelta::FromMilliseconds(10); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 893 kDefaultMaxUncompressedHeaderSize, nullptr)); | 893 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 894 socket_data.AddSocketDataToFactory(&socket_factory_); | 894 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 895 | 895 |
| 896 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 896 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 897 EXPECT_EQ(ERR_IO_PENDING, | 897 EXPECT_EQ(ERR_IO_PENDING, |
| 898 request.Request(host_port_pair_, privacy_mode_, | 898 request.Request(host_port_pair_, privacy_mode_, |
| 899 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 899 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 900 callback_.callback())); | 900 callback_.callback())); |
| 901 | 901 |
| 902 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 902 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 903 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 903 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 904 EXPECT_TRUE(stream.get()); | 904 EXPECT_TRUE(stream.get()); |
| 905 | 905 |
| 906 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 906 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 907 EXPECT_EQ(10000u, session->connection()->GetStats().srtt_us); | 907 EXPECT_EQ(10000u, session->connection()->GetStats().srtt_us); |
| 908 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); | 908 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); |
| 909 EXPECT_EQ(10000u, session->config()->GetInitialRoundTripTimeUsToSend()); | 909 EXPECT_EQ(10000u, session->config()->GetInitialRoundTripTimeUsToSend()); |
| 910 } | 910 } |
| 911 | 911 |
| 912 TEST_P(QuicStreamFactoryTest, 2gInitialRtt) { | 912 TEST_P(QuicStreamFactoryTest, 2gInitialRtt) { |
| 913 ScopedMockNetworkChangeNotifier notifier; | 913 ScopedMockNetworkChangeNotifier notifier; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 926 kDefaultMaxUncompressedHeaderSize, nullptr)); | 926 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 927 socket_data.AddSocketDataToFactory(&socket_factory_); | 927 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 928 | 928 |
| 929 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 929 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 930 EXPECT_EQ(ERR_IO_PENDING, | 930 EXPECT_EQ(ERR_IO_PENDING, |
| 931 request.Request(host_port_pair_, privacy_mode_, | 931 request.Request(host_port_pair_, privacy_mode_, |
| 932 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 932 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 933 callback_.callback())); | 933 callback_.callback())); |
| 934 | 934 |
| 935 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 935 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 936 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 936 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 937 EXPECT_TRUE(stream.get()); | 937 EXPECT_TRUE(stream.get()); |
| 938 | 938 |
| 939 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 939 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 940 EXPECT_EQ(1200000u, session->connection()->GetStats().srtt_us); | 940 EXPECT_EQ(1200000u, session->connection()->GetStats().srtt_us); |
| 941 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); | 941 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); |
| 942 EXPECT_EQ(1200000u, session->config()->GetInitialRoundTripTimeUsToSend()); | 942 EXPECT_EQ(1200000u, session->config()->GetInitialRoundTripTimeUsToSend()); |
| 943 } | 943 } |
| 944 | 944 |
| 945 TEST_P(QuicStreamFactoryTest, 3gInitialRtt) { | 945 TEST_P(QuicStreamFactoryTest, 3gInitialRtt) { |
| 946 ScopedMockNetworkChangeNotifier notifier; | 946 ScopedMockNetworkChangeNotifier notifier; |
| (...skipping 12 matching lines...) Expand all Loading... |
| 959 kDefaultMaxUncompressedHeaderSize, nullptr)); | 959 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 960 socket_data.AddSocketDataToFactory(&socket_factory_); | 960 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 961 | 961 |
| 962 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 962 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 963 EXPECT_EQ(ERR_IO_PENDING, | 963 EXPECT_EQ(ERR_IO_PENDING, |
| 964 request.Request(host_port_pair_, privacy_mode_, | 964 request.Request(host_port_pair_, privacy_mode_, |
| 965 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 965 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 966 callback_.callback())); | 966 callback_.callback())); |
| 967 | 967 |
| 968 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 968 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 969 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 969 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 970 EXPECT_TRUE(stream.get()); | 970 EXPECT_TRUE(stream.get()); |
| 971 | 971 |
| 972 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 972 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 973 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us); | 973 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us); |
| 974 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); | 974 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); |
| 975 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend()); | 975 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend()); |
| 976 } | 976 } |
| 977 | 977 |
| 978 TEST_P(QuicStreamFactoryTest, GoAway) { | 978 TEST_P(QuicStreamFactoryTest, GoAway) { |
| 979 Initialize(); | 979 Initialize(); |
| 980 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 980 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 981 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 981 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 982 | 982 |
| 983 MockQuicData socket_data; | 983 MockQuicData socket_data; |
| 984 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 984 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 985 socket_data.AddWrite( | 985 socket_data.AddWrite( |
| 986 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 986 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 987 kDefaultMaxUncompressedHeaderSize, nullptr)); | 987 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 988 socket_data.AddSocketDataToFactory(&socket_factory_); | 988 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 989 | 989 |
| 990 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 990 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 991 EXPECT_EQ(ERR_IO_PENDING, | 991 EXPECT_EQ(ERR_IO_PENDING, |
| 992 request.Request(host_port_pair_, privacy_mode_, | 992 request.Request(host_port_pair_, privacy_mode_, |
| 993 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 993 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 994 callback_.callback())); | 994 callback_.callback())); |
| 995 | 995 |
| 996 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 996 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 997 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 997 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 998 EXPECT_TRUE(stream.get()); | 998 EXPECT_TRUE(stream.get()); |
| 999 | 999 |
| 1000 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 1000 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 1001 | 1001 |
| 1002 session->OnGoAway(QuicGoAwayFrame()); | 1002 session->OnGoAway(QuicGoAwayFrame()); |
| 1003 | 1003 |
| 1004 EXPECT_FALSE(HasActiveSession(host_port_pair_)); | 1004 EXPECT_FALSE(HasActiveSession(host_port_pair_)); |
| 1005 | 1005 |
| 1006 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1006 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1007 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1007 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1019 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1019 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1020 socket_data.AddSocketDataToFactory(&socket_factory_); | 1020 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 1021 | 1021 |
| 1022 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1022 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1023 EXPECT_EQ(ERR_IO_PENDING, | 1023 EXPECT_EQ(ERR_IO_PENDING, |
| 1024 request.Request(host_port_pair_, privacy_mode_, | 1024 request.Request(host_port_pair_, privacy_mode_, |
| 1025 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1025 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1026 callback_.callback())); | 1026 callback_.callback())); |
| 1027 | 1027 |
| 1028 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1028 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1029 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1029 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1030 EXPECT_TRUE(stream.get()); | 1030 EXPECT_TRUE(stream.get()); |
| 1031 | 1031 |
| 1032 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 1032 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 1033 | 1033 |
| 1034 session->OnGoAway( | 1034 session->OnGoAway( |
| 1035 QuicGoAwayFrame(QUIC_ERROR_MIGRATING_PORT, 0, | 1035 QuicGoAwayFrame(QUIC_ERROR_MIGRATING_PORT, 0, |
| 1036 "peer connection migration due to port change only")); | 1036 "peer connection migration due to port change only")); |
| 1037 NetErrorDetails details; | 1037 NetErrorDetails details; |
| 1038 EXPECT_FALSE(details.quic_port_migration_detected); | 1038 EXPECT_FALSE(details.quic_port_migration_detected); |
| 1039 session->PopulateNetErrorDetails(&details); | 1039 session->PopulateNetErrorDetails(&details); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1063 HostPortPair server2(kServer2HostName, kDefaultServerPort); | 1063 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1064 host_resolver_.set_synchronous_mode(true); | 1064 host_resolver_.set_synchronous_mode(true); |
| 1065 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1065 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1066 "192.168.0.1", ""); | 1066 "192.168.0.1", ""); |
| 1067 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1067 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1068 | 1068 |
| 1069 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1069 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1070 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1070 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 1071 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1071 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1072 callback_.callback())); | 1072 callback_.callback())); |
| 1073 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1073 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1074 EXPECT_TRUE(stream.get()); | 1074 EXPECT_TRUE(stream.get()); |
| 1075 | 1075 |
| 1076 TestCompletionCallback callback; | 1076 TestCompletionCallback callback; |
| 1077 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1077 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1078 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1078 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 1079 /*cert_verify_flags=*/0, url2_, "GET", | 1079 /*cert_verify_flags=*/0, url2_, "GET", |
| 1080 net_log_, callback.callback())); | 1080 net_log_, callback.callback())); |
| 1081 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1081 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1082 EXPECT_TRUE(stream2.get()); | 1082 EXPECT_TRUE(stream2.get()); |
| 1083 | 1083 |
| 1084 EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2)); | 1084 EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2)); |
| 1085 | 1085 |
| 1086 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1086 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1087 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1087 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1088 } | 1088 } |
| 1089 | 1089 |
| 1090 TEST_P(QuicStreamFactoryTest, PoolingWithServerMigration) { | 1090 TEST_P(QuicStreamFactoryTest, PoolingWithServerMigration) { |
| 1091 // Set up session to migrate. | 1091 // Set up session to migrate. |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1124 crypto_client_stream_factory_.SetConfig(config2); | 1124 crypto_client_stream_factory_.SetConfig(config2); |
| 1125 | 1125 |
| 1126 // Create new request to cause new session creation. | 1126 // Create new request to cause new session creation. |
| 1127 TestCompletionCallback callback; | 1127 TestCompletionCallback callback; |
| 1128 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1128 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1129 EXPECT_EQ(ERR_IO_PENDING, | 1129 EXPECT_EQ(ERR_IO_PENDING, |
| 1130 request2.Request(server2, privacy_mode_, | 1130 request2.Request(server2, privacy_mode_, |
| 1131 /*cert_verify_flags=*/0, url2_, "GET", net_log_, | 1131 /*cert_verify_flags=*/0, url2_, "GET", net_log_, |
| 1132 callback.callback())); | 1132 callback.callback())); |
| 1133 EXPECT_EQ(OK, callback.WaitForResult()); | 1133 EXPECT_EQ(OK, callback.WaitForResult()); |
| 1134 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1134 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1135 EXPECT_TRUE(stream2.get()); | 1135 EXPECT_TRUE(stream2.get()); |
| 1136 | 1136 |
| 1137 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1137 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1138 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1138 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1139 // EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2)); | 1139 // EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2)); |
| 1140 } | 1140 } |
| 1141 | 1141 |
| 1142 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { | 1142 TEST_P(QuicStreamFactoryTest, NoPoolingAfterGoAway) { |
| 1143 Initialize(); | 1143 Initialize(); |
| 1144 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 1144 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1161 HostPortPair server2(kServer2HostName, kDefaultServerPort); | 1161 HostPortPair server2(kServer2HostName, kDefaultServerPort); |
| 1162 host_resolver_.set_synchronous_mode(true); | 1162 host_resolver_.set_synchronous_mode(true); |
| 1163 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), | 1163 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), |
| 1164 "192.168.0.1", ""); | 1164 "192.168.0.1", ""); |
| 1165 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1165 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1166 | 1166 |
| 1167 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1167 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1168 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1168 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 1169 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1169 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1170 callback_.callback())); | 1170 callback_.callback())); |
| 1171 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1171 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1172 EXPECT_TRUE(stream.get()); | 1172 EXPECT_TRUE(stream.get()); |
| 1173 | 1173 |
| 1174 TestCompletionCallback callback; | 1174 TestCompletionCallback callback; |
| 1175 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1175 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1176 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1176 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 1177 /*cert_verify_flags=*/0, url2_, "GET", | 1177 /*cert_verify_flags=*/0, url2_, "GET", |
| 1178 net_log_, callback.callback())); | 1178 net_log_, callback.callback())); |
| 1179 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1179 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1180 EXPECT_TRUE(stream2.get()); | 1180 EXPECT_TRUE(stream2.get()); |
| 1181 | 1181 |
| 1182 factory_->OnSessionGoingAway(GetActiveSession(host_port_pair_)); | 1182 factory_->OnSessionGoingAway(GetActiveSession(host_port_pair_)); |
| 1183 EXPECT_FALSE(HasActiveSession(host_port_pair_)); | 1183 EXPECT_FALSE(HasActiveSession(host_port_pair_)); |
| 1184 EXPECT_FALSE(HasActiveSession(server2)); | 1184 EXPECT_FALSE(HasActiveSession(server2)); |
| 1185 | 1185 |
| 1186 TestCompletionCallback callback3; | 1186 TestCompletionCallback callback3; |
| 1187 QuicStreamRequest request3(factory_.get(), &http_server_properties_); | 1187 QuicStreamRequest request3(factory_.get(), &http_server_properties_); |
| 1188 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, | 1188 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, |
| 1189 /*cert_verify_flags=*/0, url2_, "GET", | 1189 /*cert_verify_flags=*/0, url2_, "GET", |
| 1190 net_log_, callback3.callback())); | 1190 net_log_, callback3.callback())); |
| 1191 std::unique_ptr<QuicHttpStream> stream3 = request3.CreateStream(); | 1191 std::unique_ptr<HttpStream> stream3 = request3.CreateStream(); |
| 1192 EXPECT_TRUE(stream3.get()); | 1192 EXPECT_TRUE(stream3.get()); |
| 1193 | 1193 |
| 1194 EXPECT_TRUE(HasActiveSession(server2)); | 1194 EXPECT_TRUE(HasActiveSession(server2)); |
| 1195 | 1195 |
| 1196 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 1196 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 1197 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 1197 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 1198 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1198 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1199 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1199 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1200 } | 1200 } |
| 1201 | 1201 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1216 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 1216 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1217 | 1217 |
| 1218 host_resolver_.set_synchronous_mode(true); | 1218 host_resolver_.set_synchronous_mode(true); |
| 1219 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1219 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 1220 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1220 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1221 | 1221 |
| 1222 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1222 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1223 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 1223 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| 1224 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1224 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1225 callback_.callback())); | 1225 callback_.callback())); |
| 1226 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1226 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1227 EXPECT_TRUE(stream.get()); | 1227 EXPECT_TRUE(stream.get()); |
| 1228 | 1228 |
| 1229 TestCompletionCallback callback; | 1229 TestCompletionCallback callback; |
| 1230 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1230 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1231 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1231 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 1232 /*cert_verify_flags=*/0, url2_, "GET", | 1232 /*cert_verify_flags=*/0, url2_, "GET", |
| 1233 net_log_, callback_.callback())); | 1233 net_log_, callback_.callback())); |
| 1234 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1234 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1235 EXPECT_TRUE(stream2.get()); | 1235 EXPECT_TRUE(stream2.get()); |
| 1236 | 1236 |
| 1237 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); | 1237 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); |
| 1238 | 1238 |
| 1239 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1239 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1240 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1240 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1241 } | 1241 } |
| 1242 | 1242 |
| 1243 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { | 1243 TEST_P(QuicStreamFactoryTest, HttpsPoolingWithMatchingPins) { |
| 1244 Initialize(); | 1244 Initialize(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1262 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 1262 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1263 | 1263 |
| 1264 host_resolver_.set_synchronous_mode(true); | 1264 host_resolver_.set_synchronous_mode(true); |
| 1265 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1265 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 1266 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1266 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1267 | 1267 |
| 1268 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1268 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1269 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 1269 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| 1270 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1270 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1271 callback_.callback())); | 1271 callback_.callback())); |
| 1272 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1272 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1273 EXPECT_TRUE(stream.get()); | 1273 EXPECT_TRUE(stream.get()); |
| 1274 | 1274 |
| 1275 TestCompletionCallback callback; | 1275 TestCompletionCallback callback; |
| 1276 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1276 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1277 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1277 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 1278 /*cert_verify_flags=*/0, url2_, "GET", | 1278 /*cert_verify_flags=*/0, url2_, "GET", |
| 1279 net_log_, callback_.callback())); | 1279 net_log_, callback_.callback())); |
| 1280 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1280 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1281 EXPECT_TRUE(stream2.get()); | 1281 EXPECT_TRUE(stream2.get()); |
| 1282 | 1282 |
| 1283 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); | 1283 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); |
| 1284 | 1284 |
| 1285 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1285 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1286 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1286 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1287 } | 1287 } |
| 1288 | 1288 |
| 1289 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { | 1289 TEST_P(QuicStreamFactoryTest, NoHttpsPoolingWithDifferentPins) { |
| 1290 Initialize(); | 1290 Initialize(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 1321 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); | 1321 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); |
| 1322 | 1322 |
| 1323 host_resolver_.set_synchronous_mode(true); | 1323 host_resolver_.set_synchronous_mode(true); |
| 1324 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 1324 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 1325 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); | 1325 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); |
| 1326 | 1326 |
| 1327 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1327 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1328 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, | 1328 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, |
| 1329 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1329 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1330 callback_.callback())); | 1330 callback_.callback())); |
| 1331 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1331 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1332 EXPECT_TRUE(stream.get()); | 1332 EXPECT_TRUE(stream.get()); |
| 1333 | 1333 |
| 1334 TestCompletionCallback callback; | 1334 TestCompletionCallback callback; |
| 1335 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1335 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1336 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 1336 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 1337 /*cert_verify_flags=*/0, url2_, "GET", | 1337 /*cert_verify_flags=*/0, url2_, "GET", |
| 1338 net_log_, callback_.callback())); | 1338 net_log_, callback_.callback())); |
| 1339 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1339 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1340 EXPECT_TRUE(stream2.get()); | 1340 EXPECT_TRUE(stream2.get()); |
| 1341 | 1341 |
| 1342 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2)); | 1342 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2)); |
| 1343 | 1343 |
| 1344 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 1344 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 1345 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 1345 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 1346 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1346 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1347 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1347 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1348 } | 1348 } |
| 1349 | 1349 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1366 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1366 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1367 socket_data2.AddSocketDataToFactory(&socket_factory_); | 1367 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 1368 | 1368 |
| 1369 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1369 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1370 EXPECT_EQ(ERR_IO_PENDING, | 1370 EXPECT_EQ(ERR_IO_PENDING, |
| 1371 request.Request(host_port_pair_, privacy_mode_, | 1371 request.Request(host_port_pair_, privacy_mode_, |
| 1372 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1372 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1373 callback_.callback())); | 1373 callback_.callback())); |
| 1374 | 1374 |
| 1375 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1375 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1376 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1376 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1377 EXPECT_TRUE(stream.get()); | 1377 EXPECT_TRUE(stream.get()); |
| 1378 | 1378 |
| 1379 // Mark the session as going away. Ensure that while it is still alive | 1379 // Mark the session as going away. Ensure that while it is still alive |
| 1380 // that it is no longer active. | 1380 // that it is no longer active. |
| 1381 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 1381 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 1382 factory_->OnSessionGoingAway(session); | 1382 factory_->OnSessionGoingAway(session); |
| 1383 EXPECT_EQ(true, | 1383 EXPECT_EQ(true, |
| 1384 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1384 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 1385 EXPECT_FALSE(HasActiveSession(host_port_pair_)); | 1385 EXPECT_FALSE(HasActiveSession(host_port_pair_)); |
| 1386 | 1386 |
| 1387 // Create a new request for the same destination and verify that a | 1387 // Create a new request for the same destination and verify that a |
| 1388 // new session is created. | 1388 // new session is created. |
| 1389 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1389 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1390 EXPECT_EQ(ERR_IO_PENDING, | 1390 EXPECT_EQ(ERR_IO_PENDING, |
| 1391 request2.Request(host_port_pair_, privacy_mode_, | 1391 request2.Request(host_port_pair_, privacy_mode_, |
| 1392 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1392 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1393 callback_.callback())); | 1393 callback_.callback())); |
| 1394 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1394 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1395 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1395 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1396 EXPECT_TRUE(stream2.get()); | 1396 EXPECT_TRUE(stream2.get()); |
| 1397 | 1397 |
| 1398 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 1398 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 1399 EXPECT_NE(session, GetActiveSession(host_port_pair_)); | 1399 EXPECT_NE(session, GetActiveSession(host_port_pair_)); |
| 1400 EXPECT_EQ(true, | 1400 EXPECT_EQ(true, |
| 1401 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 1401 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 1402 | 1402 |
| 1403 stream2.reset(); | 1403 stream2.reset(); |
| 1404 stream.reset(); | 1404 stream.reset(); |
| 1405 | 1405 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1420 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 1420 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 1421 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1421 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1422 socket_data.AddWrite( | 1422 socket_data.AddWrite( |
| 1423 client_maker_.MakeRstPacket(2, true, stream_id, QUIC_STREAM_CANCELLED)); | 1423 client_maker_.MakeRstPacket(2, true, stream_id, QUIC_STREAM_CANCELLED)); |
| 1424 socket_data.AddRead( | 1424 socket_data.AddRead( |
| 1425 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); | 1425 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); |
| 1426 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 1426 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 1427 socket_data.AddSocketDataToFactory(&socket_factory_); | 1427 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 1428 | 1428 |
| 1429 HttpRequestInfo request_info; | 1429 HttpRequestInfo request_info; |
| 1430 std::vector<std::unique_ptr<QuicHttpStream>> streams; | 1430 std::vector<std::unique_ptr<HttpStream>> streams; |
| 1431 // The MockCryptoClientStream sets max_open_streams to be | 1431 // The MockCryptoClientStream sets max_open_streams to be |
| 1432 // kDefaultMaxStreamsPerConnection / 2. | 1432 // kDefaultMaxStreamsPerConnection / 2. |
| 1433 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { | 1433 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { |
| 1434 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1434 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1435 int rv = request.Request(host_port_pair_, privacy_mode_, | 1435 int rv = request.Request(host_port_pair_, privacy_mode_, |
| 1436 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1436 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1437 callback_.callback()); | 1437 callback_.callback()); |
| 1438 if (i == 0) { | 1438 if (i == 0) { |
| 1439 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); | 1439 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); |
| 1440 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1440 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1441 } else { | 1441 } else { |
| 1442 EXPECT_THAT(rv, IsOk()); | 1442 EXPECT_THAT(rv, IsOk()); |
| 1443 } | 1443 } |
| 1444 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1444 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1445 EXPECT_TRUE(stream); | 1445 EXPECT_TRUE(stream); |
| 1446 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1446 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 1447 net_log_, CompletionCallback())); | 1447 net_log_, CompletionCallback())); |
| 1448 streams.push_back(std::move(stream)); | 1448 streams.push_back(std::move(stream)); |
| 1449 } | 1449 } |
| 1450 | 1450 |
| 1451 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1451 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1452 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 1452 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 1453 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1453 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1454 CompletionCallback())); | 1454 CompletionCallback())); |
| 1455 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1455 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1456 EXPECT_TRUE(stream); | 1456 EXPECT_TRUE(stream); |
| 1457 EXPECT_EQ(ERR_IO_PENDING, | 1457 EXPECT_EQ(ERR_IO_PENDING, |
| 1458 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, | 1458 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, |
| 1459 callback_.callback())); | 1459 callback_.callback())); |
| 1460 | 1460 |
| 1461 // Close the first stream. | 1461 // Close the first stream. |
| 1462 streams.front()->Close(false); | 1462 streams.front()->Close(false); |
| 1463 // Trigger exchange of RSTs that in turn allow progress for the last | 1463 // Trigger exchange of RSTs that in turn allow progress for the last |
| 1464 // stream. | 1464 // stream. |
| 1465 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1465 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1528 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1528 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1529 callback_.callback())); | 1529 callback_.callback())); |
| 1530 } | 1530 } |
| 1531 | 1531 |
| 1532 base::RunLoop().RunUntilIdle(); | 1532 base::RunLoop().RunUntilIdle(); |
| 1533 | 1533 |
| 1534 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1534 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1535 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, | 1535 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, |
| 1536 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1536 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1537 callback_.callback())); | 1537 callback_.callback())); |
| 1538 std::unique_ptr<QuicHttpStream> stream = request2.CreateStream(); | 1538 std::unique_ptr<HttpStream> stream = request2.CreateStream(); |
| 1539 | 1539 |
| 1540 EXPECT_TRUE(stream.get()); | 1540 EXPECT_TRUE(stream.get()); |
| 1541 stream.reset(); | 1541 stream.reset(); |
| 1542 | 1542 |
| 1543 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1543 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1544 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1544 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1545 } | 1545 } |
| 1546 | 1546 |
| 1547 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { | 1547 TEST_P(QuicStreamFactoryTest, CloseAllSessions) { |
| 1548 Initialize(); | 1548 Initialize(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1565 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1565 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1566 socket_data2.AddSocketDataToFactory(&socket_factory_); | 1566 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 1567 | 1567 |
| 1568 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1568 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1569 EXPECT_EQ(ERR_IO_PENDING, | 1569 EXPECT_EQ(ERR_IO_PENDING, |
| 1570 request.Request(host_port_pair_, privacy_mode_, | 1570 request.Request(host_port_pair_, privacy_mode_, |
| 1571 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1571 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1572 callback_.callback())); | 1572 callback_.callback())); |
| 1573 | 1573 |
| 1574 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1574 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1575 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1575 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1576 HttpRequestInfo request_info; | 1576 HttpRequestInfo request_info; |
| 1577 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1577 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 1578 net_log_, CompletionCallback())); | 1578 net_log_, CompletionCallback())); |
| 1579 | 1579 |
| 1580 // Close the session and verify that stream saw the error. | 1580 // Close the session and verify that stream saw the error. |
| 1581 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); | 1581 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); |
| 1582 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, | 1582 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, |
| 1583 stream->ReadResponseHeaders(callback_.callback())); | 1583 stream->ReadResponseHeaders(callback_.callback())); |
| 1584 | 1584 |
| 1585 // Now attempting to request a stream to the same origin should create | 1585 // Now attempting to request a stream to the same origin should create |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1651 base::RunLoop().RunUntilIdle(); | 1651 base::RunLoop().RunUntilIdle(); |
| 1652 | 1652 |
| 1653 // Complete handshake. QuicStreamFactory::Job should complete and succeed. | 1653 // Complete handshake. QuicStreamFactory::Job should complete and succeed. |
| 1654 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 1654 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 1655 QuicSession::HANDSHAKE_CONFIRMED); | 1655 QuicSession::HANDSHAKE_CONFIRMED); |
| 1656 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1656 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1657 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 1657 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 1658 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); | 1658 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); |
| 1659 | 1659 |
| 1660 // Create QuicHttpStream. | 1660 // Create QuicHttpStream. |
| 1661 std::unique_ptr<QuicHttpStream> stream = request2.CreateStream(); | 1661 std::unique_ptr<HttpStream> stream = request2.CreateStream(); |
| 1662 EXPECT_TRUE(stream.get()); | 1662 EXPECT_TRUE(stream.get()); |
| 1663 stream.reset(); | 1663 stream.reset(); |
| 1664 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1664 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1665 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1665 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1666 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1666 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1667 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1667 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1668 } | 1668 } |
| 1669 | 1669 |
| 1670 TEST_P(QuicStreamFactoryTest, WriteErrorInCryptoConnectWithSyncHostResolution) { | 1670 TEST_P(QuicStreamFactoryTest, WriteErrorInCryptoConnectWithSyncHostResolution) { |
| 1671 Initialize(); | 1671 Initialize(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1713 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); | 1713 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); |
| 1714 | 1714 |
| 1715 // Complete handshake. | 1715 // Complete handshake. |
| 1716 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( | 1716 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( |
| 1717 QuicSession::HANDSHAKE_CONFIRMED); | 1717 QuicSession::HANDSHAKE_CONFIRMED); |
| 1718 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1718 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1719 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 1719 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 1720 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); | 1720 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); |
| 1721 | 1721 |
| 1722 // Create QuicHttpStream. | 1722 // Create QuicHttpStream. |
| 1723 std::unique_ptr<QuicHttpStream> stream = request2.CreateStream(); | 1723 std::unique_ptr<HttpStream> stream = request2.CreateStream(); |
| 1724 EXPECT_TRUE(stream.get()); | 1724 EXPECT_TRUE(stream.get()); |
| 1725 stream.reset(); | 1725 stream.reset(); |
| 1726 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 1726 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 1727 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 1727 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 1728 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 1728 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 1729 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 1729 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 1730 } | 1730 } |
| 1731 | 1731 |
| 1732 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { | 1732 TEST_P(QuicStreamFactoryTest, OnIPAddressChanged) { |
| 1733 close_sessions_on_ip_change_ = true; | 1733 close_sessions_on_ip_change_ = true; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1751 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1751 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1752 socket_data2.AddSocketDataToFactory(&socket_factory_); | 1752 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 1753 | 1753 |
| 1754 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1754 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1755 EXPECT_EQ(ERR_IO_PENDING, | 1755 EXPECT_EQ(ERR_IO_PENDING, |
| 1756 request.Request(host_port_pair_, privacy_mode_, | 1756 request.Request(host_port_pair_, privacy_mode_, |
| 1757 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1757 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1758 callback_.callback())); | 1758 callback_.callback())); |
| 1759 | 1759 |
| 1760 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1760 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1761 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1761 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1762 HttpRequestInfo request_info; | 1762 HttpRequestInfo request_info; |
| 1763 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1763 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 1764 net_log_, CompletionCallback())); | 1764 net_log_, CompletionCallback())); |
| 1765 | 1765 |
| 1766 // Change the IP address and verify that stream saw the error. | 1766 // Change the IP address and verify that stream saw the error. |
| 1767 NotifyIPAddressChanged(); | 1767 NotifyIPAddressChanged(); |
| 1768 EXPECT_EQ(ERR_NETWORK_CHANGED, | 1768 EXPECT_EQ(ERR_NETWORK_CHANGED, |
| 1769 stream->ReadResponseHeaders(callback_.callback())); | 1769 stream->ReadResponseHeaders(callback_.callback())); |
| 1770 EXPECT_TRUE(factory_->require_confirmation()); | 1770 EXPECT_TRUE(factory_->require_confirmation()); |
| 1771 | 1771 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1819 } | 1819 } |
| 1820 socket_data.AddSocketDataToFactory(&socket_factory_); | 1820 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 1821 | 1821 |
| 1822 // Create request and QuicHttpStream. | 1822 // Create request and QuicHttpStream. |
| 1823 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1823 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1824 EXPECT_EQ(ERR_IO_PENDING, | 1824 EXPECT_EQ(ERR_IO_PENDING, |
| 1825 request.Request(host_port_pair_, privacy_mode_, | 1825 request.Request(host_port_pair_, privacy_mode_, |
| 1826 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1826 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1827 callback_.callback())); | 1827 callback_.callback())); |
| 1828 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1828 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1829 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1829 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1830 EXPECT_TRUE(stream.get()); | 1830 EXPECT_TRUE(stream.get()); |
| 1831 | 1831 |
| 1832 // Cause QUIC stream to be created. | 1832 // Cause QUIC stream to be created. |
| 1833 HttpRequestInfo request_info; | 1833 HttpRequestInfo request_info; |
| 1834 request_info.method = "GET"; | 1834 request_info.method = "GET"; |
| 1835 request_info.url = url_; | 1835 request_info.url = url_; |
| 1836 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1836 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 1837 net_log_, CompletionCallback())); | 1837 net_log_, CompletionCallback())); |
| 1838 | 1838 |
| 1839 // Ensure that session is alive and active. | 1839 // Ensure that session is alive and active. |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1888 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 1888 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 1889 kDefaultMaxUncompressedHeaderSize, nullptr)); | 1889 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 1890 socket_data2.AddSocketDataToFactory(&socket_factory_); | 1890 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 1891 | 1891 |
| 1892 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 1892 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 1893 EXPECT_EQ(ERR_IO_PENDING, | 1893 EXPECT_EQ(ERR_IO_PENDING, |
| 1894 request2.Request(host_port_pair_, privacy_mode_, | 1894 request2.Request(host_port_pair_, privacy_mode_, |
| 1895 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1895 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1896 callback_.callback())); | 1896 callback_.callback())); |
| 1897 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1897 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1898 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 1898 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 1899 EXPECT_TRUE(stream2.get()); | 1899 EXPECT_TRUE(stream2.get()); |
| 1900 | 1900 |
| 1901 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 1901 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 1902 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); | 1902 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); |
| 1903 EXPECT_NE(session, new_session); | 1903 EXPECT_NE(session, new_session); |
| 1904 | 1904 |
| 1905 // On a DISCONNECTED notification, nothing happens to the migrated | 1905 // On a DISCONNECTED notification, nothing happens to the migrated |
| 1906 // session, but the new session is closed since it has no open | 1906 // session, but the new session is closed since it has no open |
| 1907 // streams. | 1907 // streams. |
| 1908 scoped_mock_network_change_notifier_->mock_network_change_notifier() | 1908 scoped_mock_network_change_notifier_->mock_network_change_notifier() |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1952 } | 1952 } |
| 1953 socket_data.AddSocketDataToFactory(&socket_factory_); | 1953 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 1954 | 1954 |
| 1955 // Create request and QuicHttpStream. | 1955 // Create request and QuicHttpStream. |
| 1956 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 1956 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 1957 EXPECT_EQ(ERR_IO_PENDING, | 1957 EXPECT_EQ(ERR_IO_PENDING, |
| 1958 request.Request(host_port_pair_, privacy_mode_, | 1958 request.Request(host_port_pair_, privacy_mode_, |
| 1959 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 1959 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 1960 callback_.callback())); | 1960 callback_.callback())); |
| 1961 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 1961 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 1962 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 1962 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 1963 EXPECT_TRUE(stream.get()); | 1963 EXPECT_TRUE(stream.get()); |
| 1964 | 1964 |
| 1965 // Cause QUIC stream to be created. | 1965 // Cause QUIC stream to be created. |
| 1966 HttpRequestInfo request_info; | 1966 HttpRequestInfo request_info; |
| 1967 request_info.method = "GET"; | 1967 request_info.method = "GET"; |
| 1968 request_info.url = url_; | 1968 request_info.url = url_; |
| 1969 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 1969 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 1970 net_log_, CompletionCallback())); | 1970 net_log_, CompletionCallback())); |
| 1971 | 1971 |
| 1972 // Ensure that session is alive and active. | 1972 // Ensure that session is alive and active. |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2016 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 2016 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 2017 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2017 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2018 socket_data2.AddSocketDataToFactory(&socket_factory_); | 2018 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 2019 | 2019 |
| 2020 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 2020 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 2021 EXPECT_EQ(ERR_IO_PENDING, | 2021 EXPECT_EQ(ERR_IO_PENDING, |
| 2022 request2.Request(host_port_pair_, privacy_mode_, | 2022 request2.Request(host_port_pair_, privacy_mode_, |
| 2023 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2023 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2024 callback_.callback())); | 2024 callback_.callback())); |
| 2025 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2025 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2026 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 2026 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 2027 EXPECT_TRUE(stream2.get()); | 2027 EXPECT_TRUE(stream2.get()); |
| 2028 | 2028 |
| 2029 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2029 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2030 EXPECT_NE(session, GetActiveSession(host_port_pair_)); | 2030 EXPECT_NE(session, GetActiveSession(host_port_pair_)); |
| 2031 EXPECT_EQ(true, | 2031 EXPECT_EQ(true, |
| 2032 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2032 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 2033 | 2033 |
| 2034 stream.reset(); | 2034 stream.reset(); |
| 2035 | 2035 |
| 2036 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2036 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2066 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2066 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2067 socket_data.AddSocketDataToFactory(&socket_factory_); | 2067 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2068 | 2068 |
| 2069 // Create request and QuicHttpStream. | 2069 // Create request and QuicHttpStream. |
| 2070 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2070 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2071 EXPECT_EQ(ERR_IO_PENDING, | 2071 EXPECT_EQ(ERR_IO_PENDING, |
| 2072 request.Request(host_port_pair_, privacy_mode_, | 2072 request.Request(host_port_pair_, privacy_mode_, |
| 2073 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2073 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2074 callback_.callback())); | 2074 callback_.callback())); |
| 2075 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2075 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2076 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2076 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2077 EXPECT_TRUE(stream.get()); | 2077 EXPECT_TRUE(stream.get()); |
| 2078 | 2078 |
| 2079 // Cause QUIC stream to be created. | 2079 // Cause QUIC stream to be created. |
| 2080 HttpRequestInfo request_info; | 2080 HttpRequestInfo request_info; |
| 2081 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2081 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2082 net_log_, CompletionCallback())); | 2082 net_log_, CompletionCallback())); |
| 2083 | 2083 |
| 2084 // Ensure that session is alive and active. | 2084 // Ensure that session is alive and active. |
| 2085 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2085 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2086 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2086 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2126 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 2126 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 2127 socket_data.AddSocketDataToFactory(&socket_factory_); | 2127 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2128 | 2128 |
| 2129 // Create request and QuicHttpStream. | 2129 // Create request and QuicHttpStream. |
| 2130 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2130 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2131 EXPECT_EQ(ERR_IO_PENDING, | 2131 EXPECT_EQ(ERR_IO_PENDING, |
| 2132 request.Request(host_port_pair_, privacy_mode_, | 2132 request.Request(host_port_pair_, privacy_mode_, |
| 2133 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2133 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2134 callback_.callback())); | 2134 callback_.callback())); |
| 2135 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2135 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2136 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2136 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2137 EXPECT_TRUE(stream.get()); | 2137 EXPECT_TRUE(stream.get()); |
| 2138 | 2138 |
| 2139 // Cause QUIC stream to be created, but marked as non-migratable. | 2139 // Cause QUIC stream to be created, but marked as non-migratable. |
| 2140 HttpRequestInfo request_info; | 2140 HttpRequestInfo request_info; |
| 2141 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 2141 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
| 2142 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2142 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2143 net_log_, CompletionCallback())); | 2143 net_log_, CompletionCallback())); |
| 2144 | 2144 |
| 2145 // Ensure that session is alive and active. | 2145 // Ensure that session is alive and active. |
| 2146 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2146 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2177 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 2177 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 2178 socket_data.AddSocketDataToFactory(&socket_factory_); | 2178 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2179 | 2179 |
| 2180 // Create request and QuicHttpStream. | 2180 // Create request and QuicHttpStream. |
| 2181 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2181 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2182 EXPECT_EQ(ERR_IO_PENDING, | 2182 EXPECT_EQ(ERR_IO_PENDING, |
| 2183 request.Request(host_port_pair_, privacy_mode_, | 2183 request.Request(host_port_pair_, privacy_mode_, |
| 2184 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2184 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2185 callback_.callback())); | 2185 callback_.callback())); |
| 2186 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2186 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2187 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2187 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2188 EXPECT_TRUE(stream.get()); | 2188 EXPECT_TRUE(stream.get()); |
| 2189 | 2189 |
| 2190 // Cause QUIC stream to be created. | 2190 // Cause QUIC stream to be created. |
| 2191 HttpRequestInfo request_info; | 2191 HttpRequestInfo request_info; |
| 2192 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2192 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2193 net_log_, CompletionCallback())); | 2193 net_log_, CompletionCallback())); |
| 2194 | 2194 |
| 2195 // Ensure that session is alive and active. | 2195 // Ensure that session is alive and active. |
| 2196 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2196 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2197 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2197 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2231 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 2231 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
| 2232 socket_data.AddSocketDataToFactory(&socket_factory_); | 2232 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2233 | 2233 |
| 2234 // Create request and QuicHttpStream. | 2234 // Create request and QuicHttpStream. |
| 2235 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2235 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2236 EXPECT_EQ(ERR_IO_PENDING, | 2236 EXPECT_EQ(ERR_IO_PENDING, |
| 2237 request.Request(host_port_pair_, privacy_mode_, | 2237 request.Request(host_port_pair_, privacy_mode_, |
| 2238 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2238 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2239 callback_.callback())); | 2239 callback_.callback())); |
| 2240 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2240 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2241 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2241 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2242 EXPECT_TRUE(stream.get()); | 2242 EXPECT_TRUE(stream.get()); |
| 2243 | 2243 |
| 2244 // Cause QUIC stream to be created, but marked as non-migratable. | 2244 // Cause QUIC stream to be created, but marked as non-migratable. |
| 2245 HttpRequestInfo request_info; | 2245 HttpRequestInfo request_info; |
| 2246 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 2246 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
| 2247 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2247 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2248 net_log_, CompletionCallback())); | 2248 net_log_, CompletionCallback())); |
| 2249 | 2249 |
| 2250 // Ensure that session is alive and active. | 2250 // Ensure that session is alive and active. |
| 2251 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2251 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2281 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); | 2281 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); |
| 2282 socket_data.AddSocketDataToFactory(&socket_factory_); | 2282 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2283 | 2283 |
| 2284 // Create request and QuicHttpStream. | 2284 // Create request and QuicHttpStream. |
| 2285 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2285 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2286 EXPECT_EQ(ERR_IO_PENDING, | 2286 EXPECT_EQ(ERR_IO_PENDING, |
| 2287 request.Request(host_port_pair_, privacy_mode_, | 2287 request.Request(host_port_pair_, privacy_mode_, |
| 2288 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2288 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2289 callback_.callback())); | 2289 callback_.callback())); |
| 2290 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2290 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2291 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2291 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2292 EXPECT_TRUE(stream.get()); | 2292 EXPECT_TRUE(stream.get()); |
| 2293 | 2293 |
| 2294 // Cause QUIC stream to be created. | 2294 // Cause QUIC stream to be created. |
| 2295 HttpRequestInfo request_info; | 2295 HttpRequestInfo request_info; |
| 2296 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2296 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2297 net_log_, CompletionCallback())); | 2297 net_log_, CompletionCallback())); |
| 2298 | 2298 |
| 2299 // Ensure that session is alive and active. | 2299 // Ensure that session is alive and active. |
| 2300 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2300 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2301 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2301 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2331 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2331 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2332 socket_data.AddSocketDataToFactory(&socket_factory_); | 2332 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2333 | 2333 |
| 2334 // Create request and QuicHttpStream. | 2334 // Create request and QuicHttpStream. |
| 2335 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2335 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2336 EXPECT_EQ(ERR_IO_PENDING, | 2336 EXPECT_EQ(ERR_IO_PENDING, |
| 2337 request.Request(host_port_pair_, privacy_mode_, | 2337 request.Request(host_port_pair_, privacy_mode_, |
| 2338 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2338 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2339 callback_.callback())); | 2339 callback_.callback())); |
| 2340 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2340 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2341 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2341 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2342 EXPECT_TRUE(stream.get()); | 2342 EXPECT_TRUE(stream.get()); |
| 2343 | 2343 |
| 2344 // Ensure that session is alive and active. | 2344 // Ensure that session is alive and active. |
| 2345 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2345 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2346 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2346 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 2347 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2347 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2348 | 2348 |
| 2349 // Trigger connection migration. Since there are no active streams, | 2349 // Trigger connection migration. Since there are no active streams, |
| 2350 // the session will be closed. | 2350 // the session will be closed. |
| 2351 scoped_mock_network_change_notifier_->mock_network_change_notifier() | 2351 scoped_mock_network_change_notifier_->mock_network_change_notifier() |
| (...skipping 19 matching lines...) Expand all Loading... |
| 2371 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2371 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2372 socket_data.AddSocketDataToFactory(&socket_factory_); | 2372 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2373 | 2373 |
| 2374 // Create request and QuicHttpStream. | 2374 // Create request and QuicHttpStream. |
| 2375 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2375 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2376 EXPECT_EQ(ERR_IO_PENDING, | 2376 EXPECT_EQ(ERR_IO_PENDING, |
| 2377 request.Request(host_port_pair_, privacy_mode_, | 2377 request.Request(host_port_pair_, privacy_mode_, |
| 2378 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2378 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2379 callback_.callback())); | 2379 callback_.callback())); |
| 2380 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2380 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2381 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2381 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2382 EXPECT_TRUE(stream.get()); | 2382 EXPECT_TRUE(stream.get()); |
| 2383 | 2383 |
| 2384 // Ensure that session is alive and active. | 2384 // Ensure that session is alive and active. |
| 2385 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2385 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2386 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2386 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 2387 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2387 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2388 | 2388 |
| 2389 // Trigger connection migration. Since there are no active streams, | 2389 // Trigger connection migration. Since there are no active streams, |
| 2390 // the session will be closed. | 2390 // the session will be closed. |
| 2391 scoped_mock_network_change_notifier_->mock_network_change_notifier() | 2391 scoped_mock_network_change_notifier_->mock_network_change_notifier() |
| (...skipping 22 matching lines...) Expand all Loading... |
| 2414 true, &header_stream_offset)); | 2414 true, &header_stream_offset)); |
| 2415 socket_data.AddSocketDataToFactory(&socket_factory_); | 2415 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2416 | 2416 |
| 2417 // Create request and QuicHttpStream. | 2417 // Create request and QuicHttpStream. |
| 2418 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2418 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2419 EXPECT_EQ(ERR_IO_PENDING, | 2419 EXPECT_EQ(ERR_IO_PENDING, |
| 2420 request.Request(host_port_pair_, privacy_mode_, | 2420 request.Request(host_port_pair_, privacy_mode_, |
| 2421 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2421 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2422 callback_.callback())); | 2422 callback_.callback())); |
| 2423 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2423 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2424 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2424 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2425 EXPECT_TRUE(stream.get()); | 2425 EXPECT_TRUE(stream.get()); |
| 2426 | 2426 |
| 2427 // Cause QUIC stream to be created. | 2427 // Cause QUIC stream to be created. |
| 2428 HttpRequestInfo request_info; | 2428 HttpRequestInfo request_info; |
| 2429 request_info.method = "GET"; | 2429 request_info.method = "GET"; |
| 2430 request_info.url = url_; | 2430 request_info.url = url_; |
| 2431 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2431 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2432 net_log_, CompletionCallback())); | 2432 net_log_, CompletionCallback())); |
| 2433 | 2433 |
| 2434 // Ensure that session is alive and active. | 2434 // Ensure that session is alive and active. |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2491 socket_data2.AddWrite( | 2491 socket_data2.AddWrite( |
| 2492 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 2492 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 2493 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2493 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2494 socket_data2.AddSocketDataToFactory(&socket_factory_); | 2494 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 2495 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 2495 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 2496 EXPECT_EQ(ERR_IO_PENDING, | 2496 EXPECT_EQ(ERR_IO_PENDING, |
| 2497 request2.Request(host_port_pair_, privacy_mode_, | 2497 request2.Request(host_port_pair_, privacy_mode_, |
| 2498 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2498 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2499 callback_.callback())); | 2499 callback_.callback())); |
| 2500 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2500 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2501 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 2501 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 2502 EXPECT_TRUE(stream2.get()); | 2502 EXPECT_TRUE(stream2.get()); |
| 2503 | 2503 |
| 2504 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2504 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2505 EXPECT_NE(session, GetActiveSession(host_port_pair_)); | 2505 EXPECT_NE(session, GetActiveSession(host_port_pair_)); |
| 2506 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2506 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| 2507 | 2507 |
| 2508 stream.reset(); | 2508 stream.reset(); |
| 2509 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 2509 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 2510 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 2510 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 2511 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 2511 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2542 | 2542 |
| 2543 host_resolver_.set_synchronous_mode(true); | 2543 host_resolver_.set_synchronous_mode(true); |
| 2544 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); | 2544 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); |
| 2545 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.2", ""); | 2545 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.2", ""); |
| 2546 | 2546 |
| 2547 // Create request and QuicHttpStream to create session1. | 2547 // Create request and QuicHttpStream to create session1. |
| 2548 QuicStreamRequest request1(factory_.get(), &http_server_properties_); | 2548 QuicStreamRequest request1(factory_.get(), &http_server_properties_); |
| 2549 EXPECT_EQ(OK, request1.Request(server1, privacy_mode_, | 2549 EXPECT_EQ(OK, request1.Request(server1, privacy_mode_, |
| 2550 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2550 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2551 callback_.callback())); | 2551 callback_.callback())); |
| 2552 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); | 2552 std::unique_ptr<HttpStream> stream1 = request1.CreateStream(); |
| 2553 EXPECT_TRUE(stream1.get()); | 2553 EXPECT_TRUE(stream1.get()); |
| 2554 | 2554 |
| 2555 // Create request and QuicHttpStream to create session2. | 2555 // Create request and QuicHttpStream to create session2. |
| 2556 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 2556 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 2557 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 2557 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 2558 /*cert_verify_flags=*/0, url2_, "GET", | 2558 /*cert_verify_flags=*/0, url2_, "GET", |
| 2559 net_log_, callback_.callback())); | 2559 net_log_, callback_.callback())); |
| 2560 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 2560 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 2561 EXPECT_TRUE(stream2.get()); | 2561 EXPECT_TRUE(stream2.get()); |
| 2562 | 2562 |
| 2563 QuicChromiumClientSession* session1 = GetActiveSession(server1); | 2563 QuicChromiumClientSession* session1 = GetActiveSession(server1); |
| 2564 QuicChromiumClientSession* session2 = GetActiveSession(server2); | 2564 QuicChromiumClientSession* session2 = GetActiveSession(server2); |
| 2565 EXPECT_NE(session1, session2); | 2565 EXPECT_NE(session1, session2); |
| 2566 | 2566 |
| 2567 // Cause QUIC stream to be created and send GET so session1 has an open | 2567 // Cause QUIC stream to be created and send GET so session1 has an open |
| 2568 // stream. | 2568 // stream. |
| 2569 HttpRequestInfo request_info1; | 2569 HttpRequestInfo request_info1; |
| 2570 request_info1.method = "GET"; | 2570 request_info1.method = "GET"; |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2637 true, &header_stream_offset)); | 2637 true, &header_stream_offset)); |
| 2638 socket_data.AddSocketDataToFactory(&socket_factory_); | 2638 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2639 | 2639 |
| 2640 // Create request and QuicHttpStream. | 2640 // Create request and QuicHttpStream. |
| 2641 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2641 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2642 EXPECT_EQ(ERR_IO_PENDING, | 2642 EXPECT_EQ(ERR_IO_PENDING, |
| 2643 request.Request(host_port_pair_, privacy_mode_, | 2643 request.Request(host_port_pair_, privacy_mode_, |
| 2644 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2644 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2645 callback_.callback())); | 2645 callback_.callback())); |
| 2646 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2646 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2647 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2647 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2648 EXPECT_TRUE(stream.get()); | 2648 EXPECT_TRUE(stream.get()); |
| 2649 | 2649 |
| 2650 // Cause QUIC stream to be created. | 2650 // Cause QUIC stream to be created. |
| 2651 HttpRequestInfo request_info; | 2651 HttpRequestInfo request_info; |
| 2652 request_info.method = "GET"; | 2652 request_info.method = "GET"; |
| 2653 request_info.url = url_; | 2653 request_info.url = url_; |
| 2654 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2654 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2655 net_log_, CompletionCallback())); | 2655 net_log_, CompletionCallback())); |
| 2656 | 2656 |
| 2657 // Ensure that session is alive and active. | 2657 // Ensure that session is alive and active. |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2702 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 2702 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 2703 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2703 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2704 socket_data2.AddSocketDataToFactory(&socket_factory_); | 2704 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 2705 | 2705 |
| 2706 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 2706 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 2707 EXPECT_EQ(ERR_IO_PENDING, | 2707 EXPECT_EQ(ERR_IO_PENDING, |
| 2708 request2.Request(host_port_pair_, privacy_mode_, | 2708 request2.Request(host_port_pair_, privacy_mode_, |
| 2709 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2709 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2710 callback_.callback())); | 2710 callback_.callback())); |
| 2711 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2711 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2712 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 2712 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 2713 EXPECT_TRUE(stream2.get()); | 2713 EXPECT_TRUE(stream2.get()); |
| 2714 | 2714 |
| 2715 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2715 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2716 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); | 2716 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); |
| 2717 EXPECT_NE(session, new_session); | 2717 EXPECT_NE(session, new_session); |
| 2718 | 2718 |
| 2719 // On a NETWORK_MADE_DEFAULT notification, nothing happens to the | 2719 // On a NETWORK_MADE_DEFAULT notification, nothing happens to the |
| 2720 // migrated session, but the new session is closed since it has no | 2720 // migrated session, but the new session is closed since it has no |
| 2721 // open streams. | 2721 // open streams. |
| 2722 scoped_mock_network_change_notifier_->mock_network_change_notifier() | 2722 scoped_mock_network_change_notifier_->mock_network_change_notifier() |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2764 true, &header_stream_offset)); | 2764 true, &header_stream_offset)); |
| 2765 socket_data.AddSocketDataToFactory(&socket_factory_); | 2765 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2766 | 2766 |
| 2767 // Create request and QuicHttpStream. | 2767 // Create request and QuicHttpStream. |
| 2768 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2768 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2769 EXPECT_EQ(ERR_IO_PENDING, | 2769 EXPECT_EQ(ERR_IO_PENDING, |
| 2770 request.Request(host_port_pair_, privacy_mode_, | 2770 request.Request(host_port_pair_, privacy_mode_, |
| 2771 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2771 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2772 callback_.callback())); | 2772 callback_.callback())); |
| 2773 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2773 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2774 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2774 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2775 EXPECT_TRUE(stream.get()); | 2775 EXPECT_TRUE(stream.get()); |
| 2776 | 2776 |
| 2777 // Cause QUIC stream to be created. | 2777 // Cause QUIC stream to be created. |
| 2778 HttpRequestInfo request_info; | 2778 HttpRequestInfo request_info; |
| 2779 request_info.method = "GET"; | 2779 request_info.method = "GET"; |
| 2780 request_info.url = url_; | 2780 request_info.url = url_; |
| 2781 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2781 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2782 net_log_, CompletionCallback())); | 2782 net_log_, CompletionCallback())); |
| 2783 | 2783 |
| 2784 // Ensure that session is alive and active. | 2784 // Ensure that session is alive and active. |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2831 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 2831 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 2832 kDefaultMaxUncompressedHeaderSize, nullptr)); | 2832 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 2833 socket_data2.AddSocketDataToFactory(&socket_factory_); | 2833 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 2834 | 2834 |
| 2835 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 2835 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 2836 EXPECT_EQ(ERR_IO_PENDING, | 2836 EXPECT_EQ(ERR_IO_PENDING, |
| 2837 request2.Request(host_port_pair_, privacy_mode_, | 2837 request2.Request(host_port_pair_, privacy_mode_, |
| 2838 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2838 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2839 callback_.callback())); | 2839 callback_.callback())); |
| 2840 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2840 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2841 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 2841 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 2842 EXPECT_TRUE(stream2.get()); | 2842 EXPECT_TRUE(stream2.get()); |
| 2843 | 2843 |
| 2844 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 2844 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 2845 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); | 2845 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); |
| 2846 EXPECT_NE(session, new_session); | 2846 EXPECT_NE(session, new_session); |
| 2847 | 2847 |
| 2848 // On a NETWORK_MADE_DEFAULT notification, nothing happens to the | 2848 // On a NETWORK_MADE_DEFAULT notification, nothing happens to the |
| 2849 // migrated session, but the new session is closed since it has no | 2849 // migrated session, but the new session is closed since it has no |
| 2850 // open streams. | 2850 // open streams. |
| 2851 scoped_mock_network_change_notifier_->mock_network_change_notifier() | 2851 scoped_mock_network_change_notifier_->mock_network_change_notifier() |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2886 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 2886 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 2887 socket_data.AddSocketDataToFactory(&socket_factory_); | 2887 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2888 | 2888 |
| 2889 // Create request and QuicHttpStream. | 2889 // Create request and QuicHttpStream. |
| 2890 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2890 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2891 EXPECT_EQ(ERR_IO_PENDING, | 2891 EXPECT_EQ(ERR_IO_PENDING, |
| 2892 request.Request(host_port_pair_, privacy_mode_, | 2892 request.Request(host_port_pair_, privacy_mode_, |
| 2893 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2893 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2894 callback_.callback())); | 2894 callback_.callback())); |
| 2895 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2895 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2896 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2896 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2897 EXPECT_TRUE(stream.get()); | 2897 EXPECT_TRUE(stream.get()); |
| 2898 | 2898 |
| 2899 // Cause QUIC stream to be created. | 2899 // Cause QUIC stream to be created. |
| 2900 HttpRequestInfo request_info; | 2900 HttpRequestInfo request_info; |
| 2901 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2901 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2902 net_log_, CompletionCallback())); | 2902 net_log_, CompletionCallback())); |
| 2903 | 2903 |
| 2904 // Ensure that session is alive and active. | 2904 // Ensure that session is alive and active. |
| 2905 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2905 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 2906 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 2906 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2940 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 2940 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 2941 socket_data.AddSocketDataToFactory(&socket_factory_); | 2941 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2942 | 2942 |
| 2943 // Create request and QuicHttpStream. | 2943 // Create request and QuicHttpStream. |
| 2944 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2944 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2945 EXPECT_EQ(ERR_IO_PENDING, | 2945 EXPECT_EQ(ERR_IO_PENDING, |
| 2946 request.Request(host_port_pair_, privacy_mode_, | 2946 request.Request(host_port_pair_, privacy_mode_, |
| 2947 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 2947 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 2948 callback_.callback())); | 2948 callback_.callback())); |
| 2949 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 2949 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 2950 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 2950 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 2951 EXPECT_TRUE(stream.get()); | 2951 EXPECT_TRUE(stream.get()); |
| 2952 | 2952 |
| 2953 // Cause QUIC stream to be created, but marked as non-migratable. | 2953 // Cause QUIC stream to be created, but marked as non-migratable. |
| 2954 HttpRequestInfo request_info; | 2954 HttpRequestInfo request_info; |
| 2955 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 2955 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
| 2956 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 2956 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 2957 net_log_, CompletionCallback())); | 2957 net_log_, CompletionCallback())); |
| 2958 | 2958 |
| 2959 // Ensure that session is alive and active. | 2959 // Ensure that session is alive and active. |
| 2960 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 2960 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2994 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 2994 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 2995 socket_data.AddSocketDataToFactory(&socket_factory_); | 2995 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 2996 | 2996 |
| 2997 // Create request and QuicHttpStream. | 2997 // Create request and QuicHttpStream. |
| 2998 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 2998 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 2999 EXPECT_EQ(ERR_IO_PENDING, | 2999 EXPECT_EQ(ERR_IO_PENDING, |
| 3000 request.Request(host_port_pair_, privacy_mode_, | 3000 request.Request(host_port_pair_, privacy_mode_, |
| 3001 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3001 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3002 callback_.callback())); | 3002 callback_.callback())); |
| 3003 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 3003 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 3004 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3004 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3005 EXPECT_TRUE(stream.get()); | 3005 EXPECT_TRUE(stream.get()); |
| 3006 | 3006 |
| 3007 // Cause QUIC stream to be created. | 3007 // Cause QUIC stream to be created. |
| 3008 HttpRequestInfo request_info; | 3008 HttpRequestInfo request_info; |
| 3009 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3009 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3010 net_log_, CompletionCallback())); | 3010 net_log_, CompletionCallback())); |
| 3011 | 3011 |
| 3012 // Ensure that session is alive and active. | 3012 // Ensure that session is alive and active. |
| 3013 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 3013 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 3014 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); | 3014 EXPECT_TRUE(QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3053 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); | 3053 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); |
| 3054 socket_data.AddSocketDataToFactory(&socket_factory_); | 3054 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3055 | 3055 |
| 3056 // Create request and QuicHttpStream. | 3056 // Create request and QuicHttpStream. |
| 3057 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3057 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3058 EXPECT_EQ(ERR_IO_PENDING, | 3058 EXPECT_EQ(ERR_IO_PENDING, |
| 3059 request.Request(host_port_pair_, privacy_mode_, | 3059 request.Request(host_port_pair_, privacy_mode_, |
| 3060 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3060 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3061 callback_.callback())); | 3061 callback_.callback())); |
| 3062 EXPECT_EQ(OK, callback_.WaitForResult()); | 3062 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3063 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3063 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3064 EXPECT_TRUE(stream.get()); | 3064 EXPECT_TRUE(stream.get()); |
| 3065 | 3065 |
| 3066 // Cause QUIC stream to be created. | 3066 // Cause QUIC stream to be created. |
| 3067 HttpRequestInfo request_info; | 3067 HttpRequestInfo request_info; |
| 3068 request_info.method = "GET"; | 3068 request_info.method = "GET"; |
| 3069 request_info.url = GURL("https://www.example.org/"); | 3069 request_info.url = GURL("https://www.example.org/"); |
| 3070 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3070 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3071 net_log_, CompletionCallback())); | 3071 net_log_, CompletionCallback())); |
| 3072 | 3072 |
| 3073 // Ensure that session is alive and active. | 3073 // Ensure that session is alive and active. |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3143 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); | 3143 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); |
| 3144 socket_data.AddSocketDataToFactory(&socket_factory_); | 3144 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3145 | 3145 |
| 3146 // Create request and QuicHttpStream. | 3146 // Create request and QuicHttpStream. |
| 3147 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3147 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3148 EXPECT_EQ(ERR_IO_PENDING, | 3148 EXPECT_EQ(ERR_IO_PENDING, |
| 3149 request.Request(host_port_pair_, privacy_mode_, | 3149 request.Request(host_port_pair_, privacy_mode_, |
| 3150 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3150 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3151 callback_.callback())); | 3151 callback_.callback())); |
| 3152 EXPECT_EQ(OK, callback_.WaitForResult()); | 3152 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3153 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3153 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3154 EXPECT_TRUE(stream.get()); | 3154 EXPECT_TRUE(stream.get()); |
| 3155 | 3155 |
| 3156 // Cause QUIC stream to be created. | 3156 // Cause QUIC stream to be created. |
| 3157 HttpRequestInfo request_info; | 3157 HttpRequestInfo request_info; |
| 3158 request_info.method = "GET"; | 3158 request_info.method = "GET"; |
| 3159 request_info.url = GURL("https://www.example.org/"); | 3159 request_info.url = GURL("https://www.example.org/"); |
| 3160 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3160 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3161 net_log_, CompletionCallback())); | 3161 net_log_, CompletionCallback())); |
| 3162 | 3162 |
| 3163 // Ensure that session is alive and active. | 3163 // Ensure that session is alive and active. |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3234 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); | 3234 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); |
| 3235 socket_data.AddSocketDataToFactory(&socket_factory_); | 3235 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3236 | 3236 |
| 3237 // Create request and QuicHttpStream. | 3237 // Create request and QuicHttpStream. |
| 3238 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3238 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3239 EXPECT_EQ(ERR_IO_PENDING, | 3239 EXPECT_EQ(ERR_IO_PENDING, |
| 3240 request.Request(host_port_pair_, privacy_mode_, | 3240 request.Request(host_port_pair_, privacy_mode_, |
| 3241 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3241 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3242 callback_.callback())); | 3242 callback_.callback())); |
| 3243 EXPECT_EQ(OK, callback_.WaitForResult()); | 3243 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3244 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3244 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3245 EXPECT_TRUE(stream.get()); | 3245 EXPECT_TRUE(stream.get()); |
| 3246 | 3246 |
| 3247 // Cause QUIC stream to be created, but marked as non-migratable. | 3247 // Cause QUIC stream to be created, but marked as non-migratable. |
| 3248 HttpRequestInfo request_info; | 3248 HttpRequestInfo request_info; |
| 3249 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; | 3249 request_info.load_flags |= LOAD_DISABLE_CONNECTION_MIGRATION; |
| 3250 request_info.method = "GET"; | 3250 request_info.method = "GET"; |
| 3251 request_info.url = GURL("https://www.example.org/"); | 3251 request_info.url = GURL("https://www.example.org/"); |
| 3252 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3252 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3253 net_log_, CompletionCallback())); | 3253 net_log_, CompletionCallback())); |
| 3254 | 3254 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3300 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); | 3300 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); |
| 3301 socket_data.AddSocketDataToFactory(&socket_factory_); | 3301 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3302 | 3302 |
| 3303 // Create request and QuicHttpStream. | 3303 // Create request and QuicHttpStream. |
| 3304 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3304 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3305 EXPECT_EQ(ERR_IO_PENDING, | 3305 EXPECT_EQ(ERR_IO_PENDING, |
| 3306 request.Request(host_port_pair_, privacy_mode_, | 3306 request.Request(host_port_pair_, privacy_mode_, |
| 3307 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3307 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3308 callback_.callback())); | 3308 callback_.callback())); |
| 3309 EXPECT_EQ(OK, callback_.WaitForResult()); | 3309 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3310 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3310 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3311 EXPECT_TRUE(stream.get()); | 3311 EXPECT_TRUE(stream.get()); |
| 3312 | 3312 |
| 3313 // Cause QUIC stream to be created. | 3313 // Cause QUIC stream to be created. |
| 3314 HttpRequestInfo request_info; | 3314 HttpRequestInfo request_info; |
| 3315 request_info.method = "GET"; | 3315 request_info.method = "GET"; |
| 3316 request_info.url = GURL("https://www.example.org/"); | 3316 request_info.url = GURL("https://www.example.org/"); |
| 3317 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3317 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3318 net_log_, CompletionCallback())); | 3318 net_log_, CompletionCallback())); |
| 3319 | 3319 |
| 3320 // Ensure that session is alive and active. | 3320 // Ensure that session is alive and active. |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3381 socket_data[i].AddSocketDataToFactory(&socket_factory_); | 3381 socket_data[i].AddSocketDataToFactory(&socket_factory_); |
| 3382 } | 3382 } |
| 3383 | 3383 |
| 3384 // Create request and QuicHttpStream. | 3384 // Create request and QuicHttpStream. |
| 3385 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3385 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3386 EXPECT_EQ(ERR_IO_PENDING, | 3386 EXPECT_EQ(ERR_IO_PENDING, |
| 3387 request.Request(host_port_pair_, privacy_mode_, | 3387 request.Request(host_port_pair_, privacy_mode_, |
| 3388 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3388 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3389 callback_.callback())); | 3389 callback_.callback())); |
| 3390 EXPECT_EQ(OK, callback_.WaitForResult()); | 3390 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3391 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3391 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3392 EXPECT_TRUE(stream.get()); | 3392 EXPECT_TRUE(stream.get()); |
| 3393 | 3393 |
| 3394 // Cause QUIC stream to be created. | 3394 // Cause QUIC stream to be created. |
| 3395 HttpRequestInfo request_info; | 3395 HttpRequestInfo request_info; |
| 3396 request_info.method = "GET"; | 3396 request_info.method = "GET"; |
| 3397 request_info.url = GURL("https://www.example.org/"); | 3397 request_info.url = GURL("https://www.example.org/"); |
| 3398 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3398 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3399 net_log_, CompletionCallback())); | 3399 net_log_, CompletionCallback())); |
| 3400 | 3400 |
| 3401 // Ensure that session is alive and active. | 3401 // Ensure that session is alive and active. |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3462 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); | 3462 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); |
| 3463 socket_data.AddSocketDataToFactory(&socket_factory_); | 3463 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3464 | 3464 |
| 3465 // Create request and QuicHttpStream. | 3465 // Create request and QuicHttpStream. |
| 3466 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3466 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3467 EXPECT_EQ(ERR_IO_PENDING, | 3467 EXPECT_EQ(ERR_IO_PENDING, |
| 3468 request.Request(host_port_pair_, privacy_mode_, | 3468 request.Request(host_port_pair_, privacy_mode_, |
| 3469 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3469 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3470 callback_.callback())); | 3470 callback_.callback())); |
| 3471 EXPECT_EQ(OK, callback_.WaitForResult()); | 3471 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3472 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3472 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3473 EXPECT_TRUE(stream.get()); | 3473 EXPECT_TRUE(stream.get()); |
| 3474 | 3474 |
| 3475 // Cause QUIC stream to be created. | 3475 // Cause QUIC stream to be created. |
| 3476 HttpRequestInfo request_info; | 3476 HttpRequestInfo request_info; |
| 3477 request_info.method = "GET"; | 3477 request_info.method = "GET"; |
| 3478 request_info.url = GURL("https://www.example.org/"); | 3478 request_info.url = GURL("https://www.example.org/"); |
| 3479 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3479 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3480 net_log_, CompletionCallback())); | 3480 net_log_, CompletionCallback())); |
| 3481 | 3481 |
| 3482 // Ensure that session is alive and active. | 3482 // Ensure that session is alive and active. |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3560 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); | 3560 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); |
| 3561 socket_data.AddSocketDataToFactory(&socket_factory_); | 3561 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3562 | 3562 |
| 3563 // Create request and QuicHttpStream. | 3563 // Create request and QuicHttpStream. |
| 3564 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3564 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3565 EXPECT_EQ(ERR_IO_PENDING, | 3565 EXPECT_EQ(ERR_IO_PENDING, |
| 3566 request.Request(host_port_pair_, privacy_mode_, | 3566 request.Request(host_port_pair_, privacy_mode_, |
| 3567 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3567 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3568 callback_.callback())); | 3568 callback_.callback())); |
| 3569 EXPECT_EQ(OK, callback_.WaitForResult()); | 3569 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3570 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3570 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3571 EXPECT_TRUE(stream.get()); | 3571 EXPECT_TRUE(stream.get()); |
| 3572 | 3572 |
| 3573 // Cause QUIC stream to be created. | 3573 // Cause QUIC stream to be created. |
| 3574 HttpRequestInfo request_info; | 3574 HttpRequestInfo request_info; |
| 3575 request_info.method = "GET"; | 3575 request_info.method = "GET"; |
| 3576 request_info.url = GURL("https://www.example.org/"); | 3576 request_info.url = GURL("https://www.example.org/"); |
| 3577 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3577 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3578 net_log_, CompletionCallback())); | 3578 net_log_, CompletionCallback())); |
| 3579 | 3579 |
| 3580 // Ensure that session is alive and active. | 3580 // Ensure that session is alive and active. |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3659 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); | 3659 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); |
| 3660 socket_data.AddSocketDataToFactory(&socket_factory_); | 3660 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3661 | 3661 |
| 3662 // Create request and QuicHttpStream. | 3662 // Create request and QuicHttpStream. |
| 3663 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3663 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3664 EXPECT_EQ(ERR_IO_PENDING, | 3664 EXPECT_EQ(ERR_IO_PENDING, |
| 3665 request.Request(host_port_pair_, privacy_mode_, | 3665 request.Request(host_port_pair_, privacy_mode_, |
| 3666 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3666 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3667 callback_.callback())); | 3667 callback_.callback())); |
| 3668 EXPECT_EQ(OK, callback_.WaitForResult()); | 3668 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3669 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3669 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3670 EXPECT_TRUE(stream.get()); | 3670 EXPECT_TRUE(stream.get()); |
| 3671 | 3671 |
| 3672 // Cause QUIC stream to be created. | 3672 // Cause QUIC stream to be created. |
| 3673 HttpRequestInfo request_info; | 3673 HttpRequestInfo request_info; |
| 3674 request_info.method = "GET"; | 3674 request_info.method = "GET"; |
| 3675 request_info.url = GURL("https://www.example.org/"); | 3675 request_info.url = GURL("https://www.example.org/"); |
| 3676 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3676 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3677 net_log_, CompletionCallback())); | 3677 net_log_, CompletionCallback())); |
| 3678 | 3678 |
| 3679 // Ensure that session is alive and active. | 3679 // Ensure that session is alive and active. |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3741 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 3741 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 3742 kDefaultMaxUncompressedHeaderSize, nullptr)); | 3742 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 3743 socket_data2.AddSocketDataToFactory(&socket_factory_); | 3743 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 3744 | 3744 |
| 3745 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 3745 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 3746 EXPECT_EQ(ERR_IO_PENDING, | 3746 EXPECT_EQ(ERR_IO_PENDING, |
| 3747 request2.Request(host_port_pair_, privacy_mode_, | 3747 request2.Request(host_port_pair_, privacy_mode_, |
| 3748 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3748 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3749 callback_.callback())); | 3749 callback_.callback())); |
| 3750 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 3750 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 3751 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 3751 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 3752 EXPECT_TRUE(stream2.get()); | 3752 EXPECT_TRUE(stream2.get()); |
| 3753 | 3753 |
| 3754 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 3754 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 3755 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); | 3755 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); |
| 3756 EXPECT_NE(session, new_session); | 3756 EXPECT_NE(session, new_session); |
| 3757 | 3757 |
| 3758 stream.reset(); | 3758 stream.reset(); |
| 3759 stream2.reset(); | 3759 stream2.reset(); |
| 3760 | 3760 |
| 3761 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3761 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3794 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); | 3794 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); |
| 3795 socket_data.AddSocketDataToFactory(&socket_factory_); | 3795 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3796 | 3796 |
| 3797 // Create request and QuicHttpStream. | 3797 // Create request and QuicHttpStream. |
| 3798 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3798 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3799 EXPECT_EQ(ERR_IO_PENDING, | 3799 EXPECT_EQ(ERR_IO_PENDING, |
| 3800 request.Request(host_port_pair_, privacy_mode_, | 3800 request.Request(host_port_pair_, privacy_mode_, |
| 3801 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3801 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3802 callback_.callback())); | 3802 callback_.callback())); |
| 3803 EXPECT_EQ(OK, callback_.WaitForResult()); | 3803 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 3804 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3804 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3805 EXPECT_TRUE(stream.get()); | 3805 EXPECT_TRUE(stream.get()); |
| 3806 | 3806 |
| 3807 // Cause QUIC stream to be created. | 3807 // Cause QUIC stream to be created. |
| 3808 HttpRequestInfo request_info; | 3808 HttpRequestInfo request_info; |
| 3809 request_info.method = "GET"; | 3809 request_info.method = "GET"; |
| 3810 request_info.url = GURL("https://www.example.org/"); | 3810 request_info.url = GURL("https://www.example.org/"); |
| 3811 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3811 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3812 net_log_, CompletionCallback())); | 3812 net_log_, CompletionCallback())); |
| 3813 | 3813 |
| 3814 // Ensure that session is alive and active. | 3814 // Ensure that session is alive and active. |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3884 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 3884 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 3885 kDefaultMaxUncompressedHeaderSize, nullptr)); | 3885 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 3886 socket_data2.AddSocketDataToFactory(&socket_factory_); | 3886 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 3887 | 3887 |
| 3888 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 3888 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 3889 EXPECT_EQ(ERR_IO_PENDING, | 3889 EXPECT_EQ(ERR_IO_PENDING, |
| 3890 request2.Request(host_port_pair_, privacy_mode_, | 3890 request2.Request(host_port_pair_, privacy_mode_, |
| 3891 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3891 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3892 callback_.callback())); | 3892 callback_.callback())); |
| 3893 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 3893 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 3894 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 3894 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 3895 EXPECT_TRUE(stream2.get()); | 3895 EXPECT_TRUE(stream2.get()); |
| 3896 | 3896 |
| 3897 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 3897 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 3898 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); | 3898 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); |
| 3899 EXPECT_NE(session, new_session); | 3899 EXPECT_NE(session, new_session); |
| 3900 | 3900 |
| 3901 stream.reset(); | 3901 stream.reset(); |
| 3902 stream2.reset(); | 3902 stream2.reset(); |
| 3903 | 3903 |
| 3904 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 3904 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3950 true, &header_stream_offset)); | 3950 true, &header_stream_offset)); |
| 3951 socket_data.AddSocketDataToFactory(&socket_factory_); | 3951 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3952 | 3952 |
| 3953 // Create request and QuicHttpStream. | 3953 // Create request and QuicHttpStream. |
| 3954 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 3954 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 3955 EXPECT_EQ(ERR_IO_PENDING, | 3955 EXPECT_EQ(ERR_IO_PENDING, |
| 3956 request.Request(host_port_pair_, privacy_mode_, | 3956 request.Request(host_port_pair_, privacy_mode_, |
| 3957 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 3957 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 3958 callback_.callback())); | 3958 callback_.callback())); |
| 3959 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 3959 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 3960 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 3960 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 3961 EXPECT_TRUE(stream.get()); | 3961 EXPECT_TRUE(stream.get()); |
| 3962 | 3962 |
| 3963 // Cause QUIC stream to be created. | 3963 // Cause QUIC stream to be created. |
| 3964 HttpRequestInfo request_info; | 3964 HttpRequestInfo request_info; |
| 3965 request_info.method = "GET"; | 3965 request_info.method = "GET"; |
| 3966 request_info.url = url_; | 3966 request_info.url = url_; |
| 3967 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 3967 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 3968 net_log_, CompletionCallback())); | 3968 net_log_, CompletionCallback())); |
| 3969 | 3969 |
| 3970 // Ensure that session is alive and active. | 3970 // Ensure that session is alive and active. |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4014 true, &header_stream_offset)); | 4014 true, &header_stream_offset)); |
| 4015 socket_data1.AddSocketDataToFactory(&socket_factory_); | 4015 socket_data1.AddSocketDataToFactory(&socket_factory_); |
| 4016 | 4016 |
| 4017 // Create request and QuicHttpStream. | 4017 // Create request and QuicHttpStream. |
| 4018 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4018 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4019 EXPECT_EQ(ERR_IO_PENDING, | 4019 EXPECT_EQ(ERR_IO_PENDING, |
| 4020 request.Request(host_port_pair_, privacy_mode_, | 4020 request.Request(host_port_pair_, privacy_mode_, |
| 4021 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4021 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4022 callback_.callback())); | 4022 callback_.callback())); |
| 4023 EXPECT_EQ(OK, callback_.WaitForResult()); | 4023 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 4024 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4024 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4025 EXPECT_TRUE(stream.get()); | 4025 EXPECT_TRUE(stream.get()); |
| 4026 | 4026 |
| 4027 // Cause QUIC stream to be created. | 4027 // Cause QUIC stream to be created. |
| 4028 HttpRequestInfo request_info; | 4028 HttpRequestInfo request_info; |
| 4029 request_info.method = "GET"; | 4029 request_info.method = "GET"; |
| 4030 request_info.url = GURL("https://www.example.org/"); | 4030 request_info.url = GURL("https://www.example.org/"); |
| 4031 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4031 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4032 net_log_, CompletionCallback())); | 4032 net_log_, CompletionCallback())); |
| 4033 | 4033 |
| 4034 // Ensure that session is alive and active. | 4034 // Ensure that session is alive and active. |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4157 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 4157 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 4158 socket_data1.AddSocketDataToFactory(&socket_factory_); | 4158 socket_data1.AddSocketDataToFactory(&socket_factory_); |
| 4159 | 4159 |
| 4160 // Create request and QuicHttpStream. | 4160 // Create request and QuicHttpStream. |
| 4161 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4161 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4162 EXPECT_EQ(ERR_IO_PENDING, | 4162 EXPECT_EQ(ERR_IO_PENDING, |
| 4163 request.Request(host_port_pair_, privacy_mode_, | 4163 request.Request(host_port_pair_, privacy_mode_, |
| 4164 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4164 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4165 callback_.callback())); | 4165 callback_.callback())); |
| 4166 EXPECT_EQ(OK, callback_.WaitForResult()); | 4166 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 4167 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4167 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4168 EXPECT_TRUE(stream.get()); | 4168 EXPECT_TRUE(stream.get()); |
| 4169 | 4169 |
| 4170 // Cause QUIC stream to be created. | 4170 // Cause QUIC stream to be created. |
| 4171 HttpRequestInfo request_info; | 4171 HttpRequestInfo request_info; |
| 4172 request_info.method = "GET"; | 4172 request_info.method = "GET"; |
| 4173 request_info.url = GURL("https://www.example.org/"); | 4173 request_info.url = GURL("https://www.example.org/"); |
| 4174 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4174 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4175 net_log_, CompletionCallback())); | 4175 net_log_, CompletionCallback())); |
| 4176 | 4176 |
| 4177 // Ensure that session is alive and active. | 4177 // Ensure that session is alive and active. |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4216 kDefaultMaxUncompressedHeaderSize, nullptr)); | 4216 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 4217 socket_data2.AddSocketDataToFactory(&socket_factory_); | 4217 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 4218 | 4218 |
| 4219 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4219 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4220 EXPECT_EQ(ERR_IO_PENDING, | 4220 EXPECT_EQ(ERR_IO_PENDING, |
| 4221 request.Request(host_port_pair_, privacy_mode_, | 4221 request.Request(host_port_pair_, privacy_mode_, |
| 4222 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4222 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4223 callback_.callback())); | 4223 callback_.callback())); |
| 4224 | 4224 |
| 4225 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4225 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4226 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4226 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4227 HttpRequestInfo request_info; | 4227 HttpRequestInfo request_info; |
| 4228 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4228 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4229 net_log_, CompletionCallback())); | 4229 net_log_, CompletionCallback())); |
| 4230 | 4230 |
| 4231 ssl_config_service_->NotifySSLConfigChange(); | 4231 ssl_config_service_->NotifySSLConfigChange(); |
| 4232 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 4232 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
| 4233 stream->ReadResponseHeaders(callback_.callback())); | 4233 stream->ReadResponseHeaders(callback_.callback())); |
| 4234 EXPECT_FALSE(factory_->require_confirmation()); | 4234 EXPECT_FALSE(factory_->require_confirmation()); |
| 4235 | 4235 |
| 4236 // Now attempting to request a stream to the same origin should create | 4236 // Now attempting to request a stream to the same origin should create |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4273 kDefaultMaxUncompressedHeaderSize, nullptr)); | 4273 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 4274 socket_data2.AddSocketDataToFactory(&socket_factory_); | 4274 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 4275 | 4275 |
| 4276 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4276 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4277 EXPECT_EQ(ERR_IO_PENDING, | 4277 EXPECT_EQ(ERR_IO_PENDING, |
| 4278 request.Request(host_port_pair_, privacy_mode_, | 4278 request.Request(host_port_pair_, privacy_mode_, |
| 4279 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4279 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4280 callback_.callback())); | 4280 callback_.callback())); |
| 4281 | 4281 |
| 4282 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4282 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4283 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4283 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4284 HttpRequestInfo request_info; | 4284 HttpRequestInfo request_info; |
| 4285 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4285 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4286 net_log_, CompletionCallback())); | 4286 net_log_, CompletionCallback())); |
| 4287 | 4287 |
| 4288 // Change the CA cert and verify that stream saw the event. | 4288 // Change the CA cert and verify that stream saw the event. |
| 4289 factory_->OnCertDBChanged(); | 4289 factory_->OnCertDBChanged(); |
| 4290 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, | 4290 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, |
| 4291 stream->ReadResponseHeaders(callback_.callback())); | 4291 stream->ReadResponseHeaders(callback_.callback())); |
| 4292 EXPECT_FALSE(factory_->require_confirmation()); | 4292 EXPECT_FALSE(factory_->require_confirmation()); |
| 4293 | 4293 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4401 | 4401 |
| 4402 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4402 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4403 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 4403 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 4404 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4404 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4405 callback_.callback())); | 4405 callback_.callback())); |
| 4406 | 4406 |
| 4407 // If we are waiting for disk cache, we would have posted a task. Verify that | 4407 // If we are waiting for disk cache, we would have posted a task. Verify that |
| 4408 // the CancelWaitForDataReady task hasn't been posted. | 4408 // the CancelWaitForDataReady task hasn't been posted. |
| 4409 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); | 4409 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); |
| 4410 | 4410 |
| 4411 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4411 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4412 EXPECT_TRUE(stream.get()); | 4412 EXPECT_TRUE(stream.get()); |
| 4413 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 4413 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 4414 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 4414 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 4415 } | 4415 } |
| 4416 | 4416 |
| 4417 TEST_P(QuicStreamFactoryTest, ReducePingTimeoutOnConnectionTimeOutOpenStreams) { | 4417 TEST_P(QuicStreamFactoryTest, ReducePingTimeoutOnConnectionTimeOutOpenStreams) { |
| 4418 reduced_ping_timeout_seconds_ = 10; | 4418 reduced_ping_timeout_seconds_ = 10; |
| 4419 Initialize(); | 4419 Initialize(); |
| 4420 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 4420 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 4421 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 4421 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 4452 QuicStreamFactoryPeer::GetPingTimeout(factory_.get())); | 4452 QuicStreamFactoryPeer::GetPingTimeout(factory_.get())); |
| 4453 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4453 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4454 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, | 4454 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, |
| 4455 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4455 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4456 callback_.callback())); | 4456 callback_.callback())); |
| 4457 | 4457 |
| 4458 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 4458 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 4459 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), | 4459 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), |
| 4460 session->connection()->ping_timeout()); | 4460 session->connection()->ping_timeout()); |
| 4461 | 4461 |
| 4462 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4462 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4463 EXPECT_TRUE(stream.get()); | 4463 EXPECT_TRUE(stream.get()); |
| 4464 HttpRequestInfo request_info; | 4464 HttpRequestInfo request_info; |
| 4465 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4465 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4466 net_log_, CompletionCallback())); | 4466 net_log_, CompletionCallback())); |
| 4467 | 4467 |
| 4468 DVLOG(1) | 4468 DVLOG(1) |
| 4469 << "Created 1st session and initialized a stream. Now trigger timeout"; | 4469 << "Created 1st session and initialized a stream. Now trigger timeout"; |
| 4470 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, "test", | 4470 session->connection()->CloseConnection(QUIC_NETWORK_IDLE_TIMEOUT, "test", |
| 4471 ConnectionCloseBehavior::SILENT_CLOSE); | 4471 ConnectionCloseBehavior::SILENT_CLOSE); |
| 4472 // Need to spin the loop now to ensure that | 4472 // Need to spin the loop now to ensure that |
| (...skipping 10 matching lines...) Expand all Loading... |
| 4483 DVLOG(1) << "Create 2nd session and timeout with open stream"; | 4483 DVLOG(1) << "Create 2nd session and timeout with open stream"; |
| 4484 TestCompletionCallback callback2; | 4484 TestCompletionCallback callback2; |
| 4485 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 4485 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 4486 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, | 4486 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, |
| 4487 /*cert_verify_flags=*/0, url2_, "GET", | 4487 /*cert_verify_flags=*/0, url2_, "GET", |
| 4488 net_log_, callback2.callback())); | 4488 net_log_, callback2.callback())); |
| 4489 QuicChromiumClientSession* session2 = GetActiveSession(server2); | 4489 QuicChromiumClientSession* session2 = GetActiveSession(server2); |
| 4490 EXPECT_EQ(QuicTime::Delta::FromSeconds(10), | 4490 EXPECT_EQ(QuicTime::Delta::FromSeconds(10), |
| 4491 session2->connection()->ping_timeout()); | 4491 session2->connection()->ping_timeout()); |
| 4492 | 4492 |
| 4493 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 4493 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 4494 EXPECT_TRUE(stream2.get()); | 4494 EXPECT_TRUE(stream2.get()); |
| 4495 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, | 4495 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, |
| 4496 net_log_, CompletionCallback())); | 4496 net_log_, CompletionCallback())); |
| 4497 session2->connection()->CloseConnection( | 4497 session2->connection()->CloseConnection( |
| 4498 QUIC_NETWORK_IDLE_TIMEOUT, "test", ConnectionCloseBehavior::SILENT_CLOSE); | 4498 QUIC_NETWORK_IDLE_TIMEOUT, "test", ConnectionCloseBehavior::SILENT_CLOSE); |
| 4499 // Need to spin the loop now to ensure that | 4499 // Need to spin the loop now to ensure that |
| 4500 // QuicStreamFactory::OnSessionClosed() runs. | 4500 // QuicStreamFactory::OnSessionClosed() runs. |
| 4501 base::RunLoop run_loop2; | 4501 base::RunLoop run_loop2; |
| 4502 run_loop2.RunUntilIdle(); | 4502 run_loop2.RunUntilIdle(); |
| 4503 | 4503 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4557 | 4557 |
| 4558 // Start a QUIC request. | 4558 // Start a QUIC request. |
| 4559 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4559 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4560 EXPECT_EQ(ERR_IO_PENDING, | 4560 EXPECT_EQ(ERR_IO_PENDING, |
| 4561 request.Request(host_port_pair_, privacy_mode_, | 4561 request.Request(host_port_pair_, privacy_mode_, |
| 4562 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4562 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4563 callback_.callback())); | 4563 callback_.callback())); |
| 4564 | 4564 |
| 4565 EXPECT_EQ(OK, callback_.WaitForResult()); | 4565 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 4566 | 4566 |
| 4567 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4567 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4568 EXPECT_TRUE(stream.get()); | 4568 EXPECT_TRUE(stream.get()); |
| 4569 | 4569 |
| 4570 // Restore |race_cert_verification|. | 4570 // Restore |race_cert_verification|. |
| 4571 QuicStreamFactoryPeer::SetRaceCertVerification(factory_.get(), | 4571 QuicStreamFactoryPeer::SetRaceCertVerification(factory_.get(), |
| 4572 race_cert_verification); | 4572 race_cert_verification); |
| 4573 | 4573 |
| 4574 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 4574 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 4575 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 4575 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 4576 | 4576 |
| 4577 // Verify there are no outstanding CertVerifierJobs after request has | 4577 // Verify there are no outstanding CertVerifierJobs after request has |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4610 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets | 4610 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
| 4611 // called. | 4611 // called. |
| 4612 base::RunLoop run_loop; | 4612 base::RunLoop run_loop; |
| 4613 run_loop.RunUntilIdle(); | 4613 run_loop.RunUntilIdle(); |
| 4614 | 4614 |
| 4615 // Verify task that the observer's executed_count is 1, which indicates | 4615 // Verify task that the observer's executed_count is 1, which indicates |
| 4616 // QuicChromiumPacketReader::StartReading() has posted only one task and | 4616 // QuicChromiumPacketReader::StartReading() has posted only one task and |
| 4617 // yielded the read. | 4617 // yielded the read. |
| 4618 EXPECT_EQ(1u, observer.executed_count()); | 4618 EXPECT_EQ(1u, observer.executed_count()); |
| 4619 | 4619 |
| 4620 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4620 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4621 EXPECT_FALSE(stream.get()); // Session is already closed. | 4621 EXPECT_FALSE(stream.get()); // Session is already closed. |
| 4622 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 4622 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 4623 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 4623 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 4624 } | 4624 } |
| 4625 | 4625 |
| 4626 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { | 4626 TEST_P(QuicStreamFactoryTest, YieldAfterDuration) { |
| 4627 Initialize(); | 4627 Initialize(); |
| 4628 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 4628 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 4629 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 4629 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 4630 QuicStreamFactoryPeer::SetYieldAfterDuration( | 4630 QuicStreamFactoryPeer::SetYieldAfterDuration( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 4655 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets | 4655 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets |
| 4656 // called. | 4656 // called. |
| 4657 base::RunLoop run_loop; | 4657 base::RunLoop run_loop; |
| 4658 run_loop.RunUntilIdle(); | 4658 run_loop.RunUntilIdle(); |
| 4659 | 4659 |
| 4660 // Verify task that the observer's executed_count is 1, which indicates | 4660 // Verify task that the observer's executed_count is 1, which indicates |
| 4661 // QuicChromiumPacketReader::StartReading() has posted only one task and | 4661 // QuicChromiumPacketReader::StartReading() has posted only one task and |
| 4662 // yielded the read. | 4662 // yielded the read. |
| 4663 EXPECT_EQ(1u, observer.executed_count()); | 4663 EXPECT_EQ(1u, observer.executed_count()); |
| 4664 | 4664 |
| 4665 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4665 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4666 EXPECT_FALSE(stream.get()); // Session is already closed. | 4666 EXPECT_FALSE(stream.get()); // Session is already closed. |
| 4667 EXPECT_TRUE(socket_data.AllReadDataConsumed()); | 4667 EXPECT_TRUE(socket_data.AllReadDataConsumed()); |
| 4668 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); | 4668 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); |
| 4669 } | 4669 } |
| 4670 | 4670 |
| 4671 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { | 4671 TEST_P(QuicStreamFactoryTest, ServerPushSessionAffinity) { |
| 4672 Initialize(); | 4672 Initialize(); |
| 4673 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); | 4673 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); |
| 4674 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 4674 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 4675 | 4675 |
| 4676 MockQuicData socket_data; | 4676 MockQuicData socket_data; |
| 4677 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 4677 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 4678 socket_data.AddWrite( | 4678 socket_data.AddWrite( |
| 4679 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 4679 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 4680 kDefaultMaxUncompressedHeaderSize, nullptr)); | 4680 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 4681 socket_data.AddSocketDataToFactory(&socket_factory_); | 4681 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 4682 | 4682 |
| 4683 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4683 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4684 EXPECT_EQ(ERR_IO_PENDING, | 4684 EXPECT_EQ(ERR_IO_PENDING, |
| 4685 request.Request(host_port_pair_, privacy_mode_, | 4685 request.Request(host_port_pair_, privacy_mode_, |
| 4686 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4686 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4687 callback_.callback())); | 4687 callback_.callback())); |
| 4688 | 4688 |
| 4689 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4689 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4690 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4690 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4691 EXPECT_TRUE(stream.get()); | 4691 EXPECT_TRUE(stream.get()); |
| 4692 | 4692 |
| 4693 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 4693 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
| 4694 | 4694 |
| 4695 string url = "https://www.example.org/"; | 4695 string url = "https://www.example.org/"; |
| 4696 | 4696 |
| 4697 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 4697 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 4698 | 4698 |
| 4699 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); | 4699 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); |
| 4700 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()) | 4700 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()) |
| (...skipping 29 matching lines...) Expand all Loading... |
| 4730 kDefaultMaxUncompressedHeaderSize, nullptr)); | 4730 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 4731 socket_data2.AddSocketDataToFactory(&socket_factory_); | 4731 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 4732 | 4732 |
| 4733 QuicStreamRequest request(factory_.get(), &http_server_properties_); | 4733 QuicStreamRequest request(factory_.get(), &http_server_properties_); |
| 4734 EXPECT_EQ(ERR_IO_PENDING, | 4734 EXPECT_EQ(ERR_IO_PENDING, |
| 4735 request.Request(host_port_pair_, privacy_mode_, | 4735 request.Request(host_port_pair_, privacy_mode_, |
| 4736 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4736 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4737 callback_.callback())); | 4737 callback_.callback())); |
| 4738 | 4738 |
| 4739 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4739 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4740 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); | 4740 std::unique_ptr<HttpStream> stream = request.CreateStream(); |
| 4741 EXPECT_TRUE(stream.get()); | 4741 EXPECT_TRUE(stream.get()); |
| 4742 | 4742 |
| 4743 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 4743 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
| 4744 | 4744 |
| 4745 string url = "https://www.example.org/"; | 4745 string url = "https://www.example.org/"; |
| 4746 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); | 4746 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); |
| 4747 | 4747 |
| 4748 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); | 4748 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); |
| 4749 | 4749 |
| 4750 QuicClientPushPromiseIndex* index = | 4750 QuicClientPushPromiseIndex* index = |
| 4751 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); | 4751 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); |
| 4752 | 4752 |
| 4753 (*index->promised_by_url())[kDefaultUrl] = &promised; | 4753 (*index->promised_by_url())[kDefaultUrl] = &promised; |
| 4754 EXPECT_EQ(index->GetPromised(kDefaultUrl), &promised); | 4754 EXPECT_EQ(index->GetPromised(kDefaultUrl), &promised); |
| 4755 | 4755 |
| 4756 // Doing the request should not use the push stream, but rather | 4756 // Doing the request should not use the push stream, but rather |
| 4757 // cancel it because the privacy modes do not match. | 4757 // cancel it because the privacy modes do not match. |
| 4758 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 4758 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 4759 EXPECT_EQ(ERR_IO_PENDING, | 4759 EXPECT_EQ(ERR_IO_PENDING, |
| 4760 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, | 4760 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, |
| 4761 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4761 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4762 callback_.callback())); | 4762 callback_.callback())); |
| 4763 | 4763 |
| 4764 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); | 4764 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); |
| 4765 EXPECT_EQ(index->GetPromised(kDefaultUrl), nullptr); | 4765 EXPECT_EQ(index->GetPromised(kDefaultUrl), nullptr); |
| 4766 | 4766 |
| 4767 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4767 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4768 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 4768 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 4769 EXPECT_TRUE(stream2.get()); | 4769 EXPECT_TRUE(stream2.get()); |
| 4770 | 4770 |
| 4771 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); | 4771 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); |
| 4772 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); | 4772 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); |
| 4773 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); | 4773 EXPECT_TRUE(socket_data2.AllReadDataConsumed()); |
| 4774 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); | 4774 EXPECT_TRUE(socket_data2.AllWriteDataConsumed()); |
| 4775 } | 4775 } |
| 4776 | 4776 |
| 4777 // Pool to existing session with matching QuicServerId | 4777 // Pool to existing session with matching QuicServerId |
| 4778 // even if destination is different. | 4778 // even if destination is different. |
| (...skipping 12 matching lines...) Expand all Loading... |
| 4791 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | 4791 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, |
| 4792 kDefaultMaxUncompressedHeaderSize, nullptr)); | 4792 kDefaultMaxUncompressedHeaderSize, nullptr)); |
| 4793 socket_data.AddSocketDataToFactory(&socket_factory_); | 4793 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 4794 | 4794 |
| 4795 QuicStreamRequest request1(factory_.get(), &http_server_properties_); | 4795 QuicStreamRequest request1(factory_.get(), &http_server_properties_); |
| 4796 EXPECT_EQ(ERR_IO_PENDING, | 4796 EXPECT_EQ(ERR_IO_PENDING, |
| 4797 request1.Request(destination1, privacy_mode_, | 4797 request1.Request(destination1, privacy_mode_, |
| 4798 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4798 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4799 callback_.callback())); | 4799 callback_.callback())); |
| 4800 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4800 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4801 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); | 4801 std::unique_ptr<HttpStream> stream1 = request1.CreateStream(); |
| 4802 EXPECT_TRUE(stream1.get()); | 4802 EXPECT_TRUE(stream1.get()); |
| 4803 EXPECT_TRUE(HasActiveSession(host_port_pair_)); | 4803 EXPECT_TRUE(HasActiveSession(host_port_pair_)); |
| 4804 | 4804 |
| 4805 // Second request returns synchronously because it pools to existing session. | 4805 // Second request returns synchronously because it pools to existing session. |
| 4806 TestCompletionCallback callback2; | 4806 TestCompletionCallback callback2; |
| 4807 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 4807 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 4808 EXPECT_EQ(OK, request2.Request(destination2, privacy_mode_, | 4808 EXPECT_EQ(OK, request2.Request(destination2, privacy_mode_, |
| 4809 /*cert_verify_flags=*/0, url_, "GET", net_log_, | 4809 /*cert_verify_flags=*/0, url_, "GET", net_log_, |
| 4810 callback2.callback())); | 4810 callback2.callback())); |
| 4811 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 4811 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 4812 EXPECT_TRUE(stream2.get()); | 4812 EXPECT_TRUE(stream2.get()); |
| 4813 | 4813 |
| 4814 QuicChromiumClientSession* session1 = | 4814 QuicChromiumClientSession* session1 = |
| 4815 QuicHttpStreamPeer::GetSession(stream1.get()); | 4815 QuicHttpStreamPeer::GetSession(stream1.get()); |
| 4816 QuicChromiumClientSession* session2 = | 4816 QuicChromiumClientSession* session2 = |
| 4817 QuicHttpStreamPeer::GetSession(stream2.get()); | 4817 QuicHttpStreamPeer::GetSession(stream2.get()); |
| 4818 EXPECT_EQ(session1, session2); | 4818 EXPECT_EQ(session1, session2); |
| 4819 EXPECT_EQ(QuicServerId(host_port_pair_, privacy_mode_), | 4819 EXPECT_EQ(QuicServerId(host_port_pair_, privacy_mode_), |
| 4820 session1->server_id()); | 4820 session1->server_id()); |
| 4821 | 4821 |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4978 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); | 4978 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); |
| 4979 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); | 4979 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); |
| 4980 | 4980 |
| 4981 QuicStreamRequest request1(factory_.get(), &http_server_properties_); | 4981 QuicStreamRequest request1(factory_.get(), &http_server_properties_); |
| 4982 EXPECT_EQ(ERR_IO_PENDING, | 4982 EXPECT_EQ(ERR_IO_PENDING, |
| 4983 request1.Request(destination, privacy_mode_, | 4983 request1.Request(destination, privacy_mode_, |
| 4984 /*cert_verify_flags=*/0, url1, "GET", net_log_, | 4984 /*cert_verify_flags=*/0, url1, "GET", net_log_, |
| 4985 callback_.callback())); | 4985 callback_.callback())); |
| 4986 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 4986 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 4987 | 4987 |
| 4988 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); | 4988 std::unique_ptr<HttpStream> stream1 = request1.CreateStream(); |
| 4989 EXPECT_TRUE(stream1.get()); | 4989 EXPECT_TRUE(stream1.get()); |
| 4990 EXPECT_TRUE(HasActiveSession(origin1_)); | 4990 EXPECT_TRUE(HasActiveSession(origin1_)); |
| 4991 | 4991 |
| 4992 // Second request returns synchronously because it pools to existing session. | 4992 // Second request returns synchronously because it pools to existing session. |
| 4993 TestCompletionCallback callback2; | 4993 TestCompletionCallback callback2; |
| 4994 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 4994 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 4995 EXPECT_EQ(OK, request2.Request(destination, privacy_mode_, | 4995 EXPECT_EQ(OK, request2.Request(destination, privacy_mode_, |
| 4996 /*cert_verify_flags=*/0, url2, "GET", net_log_, | 4996 /*cert_verify_flags=*/0, url2, "GET", net_log_, |
| 4997 callback2.callback())); | 4997 callback2.callback())); |
| 4998 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 4998 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 4999 EXPECT_TRUE(stream2.get()); | 4999 EXPECT_TRUE(stream2.get()); |
| 5000 | 5000 |
| 5001 QuicChromiumClientSession* session1 = | 5001 QuicChromiumClientSession* session1 = |
| 5002 QuicHttpStreamPeer::GetSession(stream1.get()); | 5002 QuicHttpStreamPeer::GetSession(stream1.get()); |
| 5003 QuicChromiumClientSession* session2 = | 5003 QuicChromiumClientSession* session2 = |
| 5004 QuicHttpStreamPeer::GetSession(stream2.get()); | 5004 QuicHttpStreamPeer::GetSession(stream2.get()); |
| 5005 EXPECT_EQ(session1, session2); | 5005 EXPECT_EQ(session1, session2); |
| 5006 | 5006 |
| 5007 EXPECT_EQ(QuicServerId(origin1_, privacy_mode_), session1->server_id()); | 5007 EXPECT_EQ(QuicServerId(origin1_, privacy_mode_), session1->server_id()); |
| 5008 | 5008 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5051 new SequencedSocketData(reads, 1, writes, arraysize(writes))); | 5051 new SequencedSocketData(reads, 1, writes, arraysize(writes))); |
| 5052 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); | 5052 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); |
| 5053 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); | 5053 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); |
| 5054 | 5054 |
| 5055 QuicStreamRequest request1(factory_.get(), &http_server_properties_); | 5055 QuicStreamRequest request1(factory_.get(), &http_server_properties_); |
| 5056 EXPECT_EQ(ERR_IO_PENDING, | 5056 EXPECT_EQ(ERR_IO_PENDING, |
| 5057 request1.Request(destination, PRIVACY_MODE_DISABLED, | 5057 request1.Request(destination, PRIVACY_MODE_DISABLED, |
| 5058 /*cert_verify_flags=*/0, url1, "GET", net_log_, | 5058 /*cert_verify_flags=*/0, url1, "GET", net_log_, |
| 5059 callback_.callback())); | 5059 callback_.callback())); |
| 5060 EXPECT_EQ(OK, callback_.WaitForResult()); | 5060 EXPECT_EQ(OK, callback_.WaitForResult()); |
| 5061 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); | 5061 std::unique_ptr<HttpStream> stream1 = request1.CreateStream(); |
| 5062 EXPECT_TRUE(stream1.get()); | 5062 EXPECT_TRUE(stream1.get()); |
| 5063 EXPECT_TRUE(HasActiveSession(origin1_)); | 5063 EXPECT_TRUE(HasActiveSession(origin1_)); |
| 5064 | 5064 |
| 5065 TestCompletionCallback callback2; | 5065 TestCompletionCallback callback2; |
| 5066 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 5066 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 5067 EXPECT_EQ(ERR_IO_PENDING, | 5067 EXPECT_EQ(ERR_IO_PENDING, |
| 5068 request2.Request(destination, PRIVACY_MODE_ENABLED, | 5068 request2.Request(destination, PRIVACY_MODE_ENABLED, |
| 5069 /*cert_verify_flags=*/0, url2, "GET", net_log_, | 5069 /*cert_verify_flags=*/0, url2, "GET", net_log_, |
| 5070 callback2.callback())); | 5070 callback2.callback())); |
| 5071 EXPECT_EQ(OK, callback2.WaitForResult()); | 5071 EXPECT_EQ(OK, callback2.WaitForResult()); |
| 5072 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 5072 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 5073 EXPECT_TRUE(stream2.get()); | 5073 EXPECT_TRUE(stream2.get()); |
| 5074 | 5074 |
| 5075 // |request2| does not pool to the first session, because PrivacyMode does not | 5075 // |request2| does not pool to the first session, because PrivacyMode does not |
| 5076 // match. Instead, another session is opened to the same destination, but | 5076 // match. Instead, another session is opened to the same destination, but |
| 5077 // with a different QuicServerId. | 5077 // with a different QuicServerId. |
| 5078 QuicChromiumClientSession* session1 = | 5078 QuicChromiumClientSession* session1 = |
| 5079 QuicHttpStreamPeer::GetSession(stream1.get()); | 5079 QuicHttpStreamPeer::GetSession(stream1.get()); |
| 5080 QuicChromiumClientSession* session2 = | 5080 QuicChromiumClientSession* session2 = |
| 5081 QuicHttpStreamPeer::GetSession(stream2.get()); | 5081 QuicHttpStreamPeer::GetSession(stream2.get()); |
| 5082 EXPECT_NE(session1, session2); | 5082 EXPECT_NE(session1, session2); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5136 new SequencedSocketData(reads, 1, writes, arraysize(writes))); | 5136 new SequencedSocketData(reads, 1, writes, arraysize(writes))); |
| 5137 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); | 5137 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); |
| 5138 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); | 5138 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); |
| 5139 | 5139 |
| 5140 QuicStreamRequest request1(factory_.get(), &http_server_properties_); | 5140 QuicStreamRequest request1(factory_.get(), &http_server_properties_); |
| 5141 EXPECT_EQ(ERR_IO_PENDING, | 5141 EXPECT_EQ(ERR_IO_PENDING, |
| 5142 request1.Request(destination, privacy_mode_, | 5142 request1.Request(destination, privacy_mode_, |
| 5143 /*cert_verify_flags=*/0, url1, "GET", net_log_, | 5143 /*cert_verify_flags=*/0, url1, "GET", net_log_, |
| 5144 callback_.callback())); | 5144 callback_.callback())); |
| 5145 EXPECT_THAT(callback_.WaitForResult(), IsOk()); | 5145 EXPECT_THAT(callback_.WaitForResult(), IsOk()); |
| 5146 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); | 5146 std::unique_ptr<HttpStream> stream1 = request1.CreateStream(); |
| 5147 EXPECT_TRUE(stream1.get()); | 5147 EXPECT_TRUE(stream1.get()); |
| 5148 EXPECT_TRUE(HasActiveSession(origin1_)); | 5148 EXPECT_TRUE(HasActiveSession(origin1_)); |
| 5149 | 5149 |
| 5150 TestCompletionCallback callback2; | 5150 TestCompletionCallback callback2; |
| 5151 QuicStreamRequest request2(factory_.get(), &http_server_properties_); | 5151 QuicStreamRequest request2(factory_.get(), &http_server_properties_); |
| 5152 EXPECT_EQ(ERR_IO_PENDING, | 5152 EXPECT_EQ(ERR_IO_PENDING, |
| 5153 request2.Request(destination, privacy_mode_, | 5153 request2.Request(destination, privacy_mode_, |
| 5154 /*cert_verify_flags=*/0, url2, "GET", net_log_, | 5154 /*cert_verify_flags=*/0, url2, "GET", net_log_, |
| 5155 callback2.callback())); | 5155 callback2.callback())); |
| 5156 EXPECT_THAT(callback2.WaitForResult(), IsOk()); | 5156 EXPECT_THAT(callback2.WaitForResult(), IsOk()); |
| 5157 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); | 5157 std::unique_ptr<HttpStream> stream2 = request2.CreateStream(); |
| 5158 EXPECT_TRUE(stream2.get()); | 5158 EXPECT_TRUE(stream2.get()); |
| 5159 | 5159 |
| 5160 // |request2| does not pool to the first session, because the certificate does | 5160 // |request2| does not pool to the first session, because the certificate does |
| 5161 // not match. Instead, another session is opened to the same destination, but | 5161 // not match. Instead, another session is opened to the same destination, but |
| 5162 // with a different QuicServerId. | 5162 // with a different QuicServerId. |
| 5163 QuicChromiumClientSession* session1 = | 5163 QuicChromiumClientSession* session1 = |
| 5164 QuicHttpStreamPeer::GetSession(stream1.get()); | 5164 QuicHttpStreamPeer::GetSession(stream1.get()); |
| 5165 QuicChromiumClientSession* session2 = | 5165 QuicChromiumClientSession* session2 = |
| 5166 QuicHttpStreamPeer::GetSession(stream2.get()); | 5166 QuicHttpStreamPeer::GetSession(stream2.get()); |
| 5167 EXPECT_NE(session1, session2); | 5167 EXPECT_NE(session1, session2); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5214 // Clear all cached states. | 5214 // Clear all cached states. |
| 5215 factory_->ClearCachedStatesInCryptoConfig( | 5215 factory_->ClearCachedStatesInCryptoConfig( |
| 5216 base::Callback<bool(const GURL&)>()); | 5216 base::Callback<bool(const GURL&)>()); |
| 5217 EXPECT_TRUE(test_cases[0].state->certs().empty()); | 5217 EXPECT_TRUE(test_cases[0].state->certs().empty()); |
| 5218 EXPECT_TRUE(test_cases[1].state->certs().empty()); | 5218 EXPECT_TRUE(test_cases[1].state->certs().empty()); |
| 5219 EXPECT_TRUE(test_cases[2].state->certs().empty()); | 5219 EXPECT_TRUE(test_cases[2].state->certs().empty()); |
| 5220 } | 5220 } |
| 5221 | 5221 |
| 5222 } // namespace test | 5222 } // namespace test |
| 5223 } // namespace net | 5223 } // namespace net |
| OLD | NEW |