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 |