Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(470)

Side by Side Diff: net/quic/chromium/quic_stream_factory_test.cc

Issue 2814633003: Extract Proxy Resolution out of HttpStreamFactoryImpl::Job (Closed)
Patch Set: fix remaining tests Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698