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

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

Issue 2778943002: Pass HttpServerProperties in to QuicHttpStream so that it can mark QUIC broken. (Closed)
Patch Set: Rebase 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
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 EXPECT_FALSE(HasActiveSession(destination)); 353 EXPECT_FALSE(HasActiveSession(destination));
354 size_t socket_count = socket_factory_.udp_client_socket_ports().size(); 354 size_t socket_count = socket_factory_.udp_client_socket_ports().size();
355 355
356 MockQuicData socket_data; 356 MockQuicData socket_data;
357 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 357 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
358 socket_data.AddWrite( 358 socket_data.AddWrite(
359 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 359 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
360 kDefaultMaxUncompressedHeaderSize, nullptr)); 360 kDefaultMaxUncompressedHeaderSize, nullptr));
361 socket_data.AddSocketDataToFactory(&socket_factory_); 361 socket_data.AddSocketDataToFactory(&socket_factory_);
362 362
363 QuicStreamRequest request(factory_.get()); 363 QuicStreamRequest request(factory_.get(), &http_server_properties_);
364 GURL url("https://" + destination.host() + "/"); 364 GURL url("https://" + destination.host() + "/");
365 EXPECT_EQ(ERR_IO_PENDING, 365 EXPECT_EQ(ERR_IO_PENDING,
366 request.Request(destination, privacy_mode_, 366 request.Request(destination, privacy_mode_,
367 /*cert_verify_flags=*/0, url, "GET", net_log_, 367 /*cert_verify_flags=*/0, url, "GET", net_log_,
368 callback_.callback())); 368 callback_.callback()));
369 369
370 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 370 EXPECT_THAT(callback_.WaitForResult(), IsOk());
371 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 371 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
372 EXPECT_TRUE(stream.get()); 372 EXPECT_TRUE(stream.get());
373 stream.reset(); 373 stream.reset();
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 socket_data2.AddWrite( 499 socket_data2.AddWrite(
500 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 500 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
501 kDefaultMaxUncompressedHeaderSize, nullptr)); 501 kDefaultMaxUncompressedHeaderSize, nullptr));
502 socket_data2.AddWrite( 502 socket_data2.AddWrite(
503 client_maker_.MakePingPacket(2, /*include_version=*/true)); 503 client_maker_.MakePingPacket(2, /*include_version=*/true));
504 socket_data2.AddWrite(client_maker_.MakeRstPacket( 504 socket_data2.AddWrite(client_maker_.MakeRstPacket(
505 3, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 505 3, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
506 socket_data2.AddSocketDataToFactory(&socket_factory_); 506 socket_data2.AddSocketDataToFactory(&socket_factory_);
507 507
508 // Create request and QuicHttpStream. 508 // Create request and QuicHttpStream.
509 QuicStreamRequest request(factory_.get()); 509 QuicStreamRequest request(factory_.get(), &http_server_properties_);
510 EXPECT_EQ(ERR_IO_PENDING, 510 EXPECT_EQ(ERR_IO_PENDING,
511 request.Request(host_port_pair_, privacy_mode_, 511 request.Request(host_port_pair_, privacy_mode_,
512 /*cert_verify_flags=*/0, url_, "GET", net_log_, 512 /*cert_verify_flags=*/0, url_, "GET", net_log_,
513 callback_.callback())); 513 callback_.callback()));
514 EXPECT_EQ(OK, callback_.WaitForResult()); 514 EXPECT_EQ(OK, callback_.WaitForResult());
515 515
516 // Run QuicChromiumClientSession::WriteToNewSocket() 516 // Run QuicChromiumClientSession::WriteToNewSocket()
517 // posted by QuicChromiumClientSession::MigrateToSocket(). 517 // posted by QuicChromiumClientSession::MigrateToSocket().
518 base::RunLoop().RunUntilIdle(); 518 base::RunLoop().RunUntilIdle();
519 519
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 818 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
819 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 819 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
820 820
821 MockQuicData socket_data; 821 MockQuicData socket_data;
822 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 822 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
823 socket_data.AddWrite( 823 socket_data.AddWrite(
824 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 824 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
825 kDefaultMaxUncompressedHeaderSize, nullptr)); 825 kDefaultMaxUncompressedHeaderSize, nullptr));
826 socket_data.AddSocketDataToFactory(&socket_factory_); 826 socket_data.AddSocketDataToFactory(&socket_factory_);
827 827
828 QuicStreamRequest request(factory_.get()); 828 QuicStreamRequest request(factory_.get(), &http_server_properties_);
829 EXPECT_EQ(ERR_IO_PENDING, 829 EXPECT_EQ(ERR_IO_PENDING,
830 request.Request(host_port_pair_, privacy_mode_, 830 request.Request(host_port_pair_, privacy_mode_,
831 /*cert_verify_flags=*/0, url_, "GET", net_log_, 831 /*cert_verify_flags=*/0, url_, "GET", net_log_,
832 callback_.callback())); 832 callback_.callback()));
833 833
834 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 834 EXPECT_THAT(callback_.WaitForResult(), IsOk());
835 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 835 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
836 EXPECT_TRUE(stream.get()); 836 EXPECT_TRUE(stream.get());
837 837
838 // Will reset stream 3. 838 // Will reset stream 3.
839 stream = CreateFromSession(host_port_pair_); 839 stream = CreateFromSession(host_port_pair_);
840 EXPECT_TRUE(stream.get()); 840 EXPECT_TRUE(stream.get());
841 841
842 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result 842 // TODO(rtenneti): We should probably have a tests that HTTP and HTTPS result
843 // in streams on different sessions. 843 // in streams on different sessions.
844 QuicStreamRequest request2(factory_.get()); 844 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
845 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 845 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
846 /*cert_verify_flags=*/0, url_, "GET", net_log_, 846 /*cert_verify_flags=*/0, url_, "GET", net_log_,
847 callback_.callback())); 847 callback_.callback()));
848 stream = request2.CreateStream(); // Will reset stream 5. 848 stream = request2.CreateStream(); // Will reset stream 5.
849 stream.reset(); // Will reset stream 7. 849 stream.reset(); // Will reset stream 7.
850 850
851 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 851 EXPECT_TRUE(socket_data.AllReadDataConsumed());
852 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 852 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
853 } 853 }
854 854
855 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) { 855 TEST_P(QuicStreamFactoryTest, CreateZeroRtt) {
856 Initialize(); 856 Initialize();
857 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 857 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
858 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 858 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
859 859
860 MockQuicData socket_data; 860 MockQuicData socket_data;
861 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 861 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
862 socket_data.AddSocketDataToFactory(&socket_factory_); 862 socket_data.AddSocketDataToFactory(&socket_factory_);
863 863
864 crypto_client_stream_factory_.set_handshake_mode( 864 crypto_client_stream_factory_.set_handshake_mode(
865 MockCryptoClientStream::ZERO_RTT); 865 MockCryptoClientStream::ZERO_RTT);
866 host_resolver_.set_synchronous_mode(true); 866 host_resolver_.set_synchronous_mode(true);
867 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 867 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
868 "192.168.0.1", ""); 868 "192.168.0.1", "");
869 869
870 QuicStreamRequest request(factory_.get()); 870 QuicStreamRequest request(factory_.get(), &http_server_properties_);
871 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 871 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
872 /*cert_verify_flags=*/0, url_, "GET", net_log_, 872 /*cert_verify_flags=*/0, url_, "GET", net_log_,
873 callback_.callback())); 873 callback_.callback()));
874 874
875 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 875 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
876 EXPECT_TRUE(stream.get()); 876 EXPECT_TRUE(stream.get());
877 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 877 EXPECT_TRUE(socket_data.AllReadDataConsumed());
878 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 878 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
879 } 879 }
880 880
881 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) { 881 TEST_P(QuicStreamFactoryTest, CreateZeroRttPost) {
882 Initialize(); 882 Initialize();
883 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 883 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
884 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 884 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
885 885
886 MockQuicData socket_data; 886 MockQuicData socket_data;
887 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 887 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
888 socket_data.AddSocketDataToFactory(&socket_factory_); 888 socket_data.AddSocketDataToFactory(&socket_factory_);
889 889
890 crypto_client_stream_factory_.set_handshake_mode( 890 crypto_client_stream_factory_.set_handshake_mode(
891 MockCryptoClientStream::ZERO_RTT); 891 MockCryptoClientStream::ZERO_RTT);
892 host_resolver_.set_synchronous_mode(true); 892 host_resolver_.set_synchronous_mode(true);
893 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 893 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
894 "192.168.0.1", ""); 894 "192.168.0.1", "");
895 895
896 QuicStreamRequest request(factory_.get()); 896 QuicStreamRequest request(factory_.get(), &http_server_properties_);
897 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 897 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
898 /*cert_verify_flags=*/0, url_, "POST", net_log_, 898 /*cert_verify_flags=*/0, url_, "POST", net_log_,
899 callback_.callback())); 899 callback_.callback()));
900 900
901 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 901 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
902 EXPECT_TRUE(stream.get()); 902 EXPECT_TRUE(stream.get());
903 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 903 EXPECT_TRUE(socket_data.AllReadDataConsumed());
904 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 904 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
905 } 905 }
906 906
907 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) { 907 TEST_P(QuicStreamFactoryTest, DefaultInitialRtt) {
908 Initialize(); 908 Initialize();
909 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 909 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
910 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 910 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
911 911
912 MockQuicData socket_data; 912 MockQuicData socket_data;
913 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 913 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
914 socket_data.AddWrite( 914 socket_data.AddWrite(
915 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 915 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
916 kDefaultMaxUncompressedHeaderSize, nullptr)); 916 kDefaultMaxUncompressedHeaderSize, nullptr));
917 socket_data.AddSocketDataToFactory(&socket_factory_); 917 socket_data.AddSocketDataToFactory(&socket_factory_);
918 918
919 QuicStreamRequest request(factory_.get()); 919 QuicStreamRequest request(factory_.get(), &http_server_properties_);
920 EXPECT_EQ(ERR_IO_PENDING, 920 EXPECT_EQ(ERR_IO_PENDING,
921 request.Request(host_port_pair_, privacy_mode_, 921 request.Request(host_port_pair_, privacy_mode_,
922 /*cert_verify_flags=*/0, url_, "GET", net_log_, 922 /*cert_verify_flags=*/0, url_, "GET", net_log_,
923 callback_.callback())); 923 callback_.callback()));
924 924
925 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 925 EXPECT_THAT(callback_.WaitForResult(), IsOk());
926 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 926 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
927 EXPECT_TRUE(stream.get()); 927 EXPECT_TRUE(stream.get());
928 928
929 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 929 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 12 matching lines...) Expand all
942 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 942 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
943 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 943 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
944 944
945 MockQuicData socket_data; 945 MockQuicData socket_data;
946 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 946 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
947 socket_data.AddWrite( 947 socket_data.AddWrite(
948 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 948 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
949 kDefaultMaxUncompressedHeaderSize, nullptr)); 949 kDefaultMaxUncompressedHeaderSize, nullptr));
950 socket_data.AddSocketDataToFactory(&socket_factory_); 950 socket_data.AddSocketDataToFactory(&socket_factory_);
951 951
952 QuicStreamRequest request(factory_.get()); 952 QuicStreamRequest request(factory_.get(), &http_server_properties_);
953 EXPECT_EQ(ERR_IO_PENDING, 953 EXPECT_EQ(ERR_IO_PENDING,
954 request.Request(host_port_pair_, privacy_mode_, 954 request.Request(host_port_pair_, privacy_mode_,
955 /*cert_verify_flags=*/0, url_, "GET", net_log_, 955 /*cert_verify_flags=*/0, url_, "GET", net_log_,
956 callback_.callback())); 956 callback_.callback()));
957 957
958 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 958 EXPECT_THAT(callback_.WaitForResult(), IsOk());
959 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 959 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
960 EXPECT_TRUE(stream.get()); 960 EXPECT_TRUE(stream.get());
961 961
962 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 962 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 12 matching lines...) Expand all
975 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 975 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
976 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 976 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
977 977
978 MockQuicData socket_data; 978 MockQuicData socket_data;
979 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 979 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
980 socket_data.AddWrite( 980 socket_data.AddWrite(
981 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 981 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
982 kDefaultMaxUncompressedHeaderSize, nullptr)); 982 kDefaultMaxUncompressedHeaderSize, nullptr));
983 socket_data.AddSocketDataToFactory(&socket_factory_); 983 socket_data.AddSocketDataToFactory(&socket_factory_);
984 984
985 QuicStreamRequest request(factory_.get()); 985 QuicStreamRequest request(factory_.get(), &http_server_properties_);
986 EXPECT_EQ(ERR_IO_PENDING, 986 EXPECT_EQ(ERR_IO_PENDING,
987 request.Request(host_port_pair_, privacy_mode_, 987 request.Request(host_port_pair_, privacy_mode_,
988 /*cert_verify_flags=*/0, url_, "GET", net_log_, 988 /*cert_verify_flags=*/0, url_, "GET", net_log_,
989 callback_.callback())); 989 callback_.callback()));
990 990
991 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 991 EXPECT_THAT(callback_.WaitForResult(), IsOk());
992 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 992 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
993 EXPECT_TRUE(stream.get()); 993 EXPECT_TRUE(stream.get());
994 994
995 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 995 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 12 matching lines...) Expand all
1008 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1008 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1009 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1009 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1010 1010
1011 MockQuicData socket_data; 1011 MockQuicData socket_data;
1012 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1012 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1013 socket_data.AddWrite( 1013 socket_data.AddWrite(
1014 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1014 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1015 kDefaultMaxUncompressedHeaderSize, nullptr)); 1015 kDefaultMaxUncompressedHeaderSize, nullptr));
1016 socket_data.AddSocketDataToFactory(&socket_factory_); 1016 socket_data.AddSocketDataToFactory(&socket_factory_);
1017 1017
1018 QuicStreamRequest request(factory_.get()); 1018 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1019 EXPECT_EQ(ERR_IO_PENDING, 1019 EXPECT_EQ(ERR_IO_PENDING,
1020 request.Request(host_port_pair_, privacy_mode_, 1020 request.Request(host_port_pair_, privacy_mode_,
1021 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1021 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1022 callback_.callback())); 1022 callback_.callback()));
1023 1023
1024 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1024 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1025 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1025 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1026 EXPECT_TRUE(stream.get()); 1026 EXPECT_TRUE(stream.get());
1027 1027
1028 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 1028 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
1029 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us); 1029 EXPECT_EQ(400000u, session->connection()->GetStats().srtt_us);
1030 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend()); 1030 ASSERT_TRUE(session->config()->HasInitialRoundTripTimeUsToSend());
1031 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend()); 1031 EXPECT_EQ(400000u, session->config()->GetInitialRoundTripTimeUsToSend());
1032 } 1032 }
1033 1033
1034 TEST_P(QuicStreamFactoryTest, GoAway) { 1034 TEST_P(QuicStreamFactoryTest, GoAway) {
1035 Initialize(); 1035 Initialize();
1036 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1036 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1037 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1037 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1038 1038
1039 MockQuicData socket_data; 1039 MockQuicData socket_data;
1040 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1040 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1041 socket_data.AddWrite( 1041 socket_data.AddWrite(
1042 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1042 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1043 kDefaultMaxUncompressedHeaderSize, nullptr)); 1043 kDefaultMaxUncompressedHeaderSize, nullptr));
1044 socket_data.AddSocketDataToFactory(&socket_factory_); 1044 socket_data.AddSocketDataToFactory(&socket_factory_);
1045 1045
1046 QuicStreamRequest request(factory_.get()); 1046 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1047 EXPECT_EQ(ERR_IO_PENDING, 1047 EXPECT_EQ(ERR_IO_PENDING,
1048 request.Request(host_port_pair_, privacy_mode_, 1048 request.Request(host_port_pair_, privacy_mode_,
1049 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1049 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1050 callback_.callback())); 1050 callback_.callback()));
1051 1051
1052 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1052 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1053 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1053 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1054 EXPECT_TRUE(stream.get()); 1054 EXPECT_TRUE(stream.get());
1055 1055
1056 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 1056 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 11 matching lines...) Expand all
1068 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1068 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1069 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1069 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1070 1070
1071 MockQuicData socket_data; 1071 MockQuicData socket_data;
1072 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1072 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1073 socket_data.AddWrite( 1073 socket_data.AddWrite(
1074 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1074 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1075 kDefaultMaxUncompressedHeaderSize, nullptr)); 1075 kDefaultMaxUncompressedHeaderSize, nullptr));
1076 socket_data.AddSocketDataToFactory(&socket_factory_); 1076 socket_data.AddSocketDataToFactory(&socket_factory_);
1077 1077
1078 QuicStreamRequest request(factory_.get()); 1078 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1079 EXPECT_EQ(ERR_IO_PENDING, 1079 EXPECT_EQ(ERR_IO_PENDING,
1080 request.Request(host_port_pair_, privacy_mode_, 1080 request.Request(host_port_pair_, privacy_mode_,
1081 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1081 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1082 callback_.callback())); 1082 callback_.callback()));
1083 1083
1084 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1084 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1085 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1085 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1086 EXPECT_TRUE(stream.get()); 1086 EXPECT_TRUE(stream.get());
1087 1087
1088 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 1088 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 26 matching lines...) Expand all
1115 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1115 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1116 kDefaultMaxUncompressedHeaderSize, nullptr)); 1116 kDefaultMaxUncompressedHeaderSize, nullptr));
1117 socket_data.AddSocketDataToFactory(&socket_factory_); 1117 socket_data.AddSocketDataToFactory(&socket_factory_);
1118 1118
1119 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1119 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1120 host_resolver_.set_synchronous_mode(true); 1120 host_resolver_.set_synchronous_mode(true);
1121 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1121 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1122 "192.168.0.1", ""); 1122 "192.168.0.1", "");
1123 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1123 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1124 1124
1125 QuicStreamRequest request(factory_.get()); 1125 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1126 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1126 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1127 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1127 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1128 callback_.callback())); 1128 callback_.callback()));
1129 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1129 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1130 EXPECT_TRUE(stream.get()); 1130 EXPECT_TRUE(stream.get());
1131 1131
1132 TestCompletionCallback callback; 1132 TestCompletionCallback callback;
1133 QuicStreamRequest request2(factory_.get()); 1133 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1134 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1134 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1135 /*cert_verify_flags=*/0, url2_, "GET", 1135 /*cert_verify_flags=*/0, url2_, "GET",
1136 net_log_, callback.callback())); 1136 net_log_, callback.callback()));
1137 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1137 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1138 EXPECT_TRUE(stream2.get()); 1138 EXPECT_TRUE(stream2.get());
1139 1139
1140 EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2)); 1140 EXPECT_EQ(GetActiveSession(host_port_pair_), GetActiveSession(server2));
1141 1141
1142 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1142 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1143 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1143 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 30 matching lines...) Expand all
1174 arraysize(writes)); 1174 arraysize(writes));
1175 socket_factory_.AddSocketDataProvider(&socket_data); 1175 socket_factory_.AddSocketDataProvider(&socket_data);
1176 1176
1177 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1177 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1178 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1178 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1179 QuicConfig config2; 1179 QuicConfig config2;
1180 crypto_client_stream_factory_.SetConfig(config2); 1180 crypto_client_stream_factory_.SetConfig(config2);
1181 1181
1182 // Create new request to cause new session creation. 1182 // Create new request to cause new session creation.
1183 TestCompletionCallback callback; 1183 TestCompletionCallback callback;
1184 QuicStreamRequest request2(factory_.get()); 1184 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1185 EXPECT_EQ(ERR_IO_PENDING, 1185 EXPECT_EQ(ERR_IO_PENDING,
1186 request2.Request(server2, privacy_mode_, 1186 request2.Request(server2, privacy_mode_,
1187 /*cert_verify_flags=*/0, url2_, "GET", net_log_, 1187 /*cert_verify_flags=*/0, url2_, "GET", net_log_,
1188 callback.callback())); 1188 callback.callback()));
1189 EXPECT_EQ(OK, callback.WaitForResult()); 1189 EXPECT_EQ(OK, callback.WaitForResult());
1190 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1190 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1191 EXPECT_TRUE(stream2.get()); 1191 EXPECT_TRUE(stream2.get());
1192 1192
1193 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1193 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1194 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1194 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 19 matching lines...) Expand all
1214 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1214 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1215 kDefaultMaxUncompressedHeaderSize, nullptr)); 1215 kDefaultMaxUncompressedHeaderSize, nullptr));
1216 socket_data2.AddSocketDataToFactory(&socket_factory_); 1216 socket_data2.AddSocketDataToFactory(&socket_factory_);
1217 1217
1218 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1218 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1219 host_resolver_.set_synchronous_mode(true); 1219 host_resolver_.set_synchronous_mode(true);
1220 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1220 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1221 "192.168.0.1", ""); 1221 "192.168.0.1", "");
1222 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1222 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1223 1223
1224 QuicStreamRequest request(factory_.get()); 1224 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1225 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1225 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1226 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1226 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1227 callback_.callback())); 1227 callback_.callback()));
1228 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1228 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1229 EXPECT_TRUE(stream.get()); 1229 EXPECT_TRUE(stream.get());
1230 1230
1231 TestCompletionCallback callback; 1231 TestCompletionCallback callback;
1232 QuicStreamRequest request2(factory_.get()); 1232 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1233 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1233 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1234 /*cert_verify_flags=*/0, url2_, "GET", 1234 /*cert_verify_flags=*/0, url2_, "GET",
1235 net_log_, callback.callback())); 1235 net_log_, callback.callback()));
1236 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1236 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1237 EXPECT_TRUE(stream2.get()); 1237 EXPECT_TRUE(stream2.get());
1238 1238
1239 EXPECT_NE(GetActiveSession(host_port_pair_), GetActiveSession(server2)); 1239 EXPECT_NE(GetActiveSession(host_port_pair_), GetActiveSession(server2));
1240 1240
1241 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1241 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1242 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1242 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
(...skipping 19 matching lines...) Expand all
1262 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1262 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1263 kDefaultMaxUncompressedHeaderSize, nullptr)); 1263 kDefaultMaxUncompressedHeaderSize, nullptr));
1264 socket_data2.AddSocketDataToFactory(&socket_factory_); 1264 socket_data2.AddSocketDataToFactory(&socket_factory_);
1265 1265
1266 HostPortPair server2(kServer2HostName, kDefaultServerPort); 1266 HostPortPair server2(kServer2HostName, kDefaultServerPort);
1267 host_resolver_.set_synchronous_mode(true); 1267 host_resolver_.set_synchronous_mode(true);
1268 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1268 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1269 "192.168.0.1", ""); 1269 "192.168.0.1", "");
1270 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1270 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1271 1271
1272 QuicStreamRequest request(factory_.get()); 1272 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1273 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1273 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1274 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1274 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1275 callback_.callback())); 1275 callback_.callback()));
1276 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1276 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1277 EXPECT_TRUE(stream.get()); 1277 EXPECT_TRUE(stream.get());
1278 1278
1279 TestCompletionCallback callback; 1279 TestCompletionCallback callback;
1280 QuicStreamRequest request2(factory_.get()); 1280 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1281 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1281 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1282 /*cert_verify_flags=*/0, url2_, "GET", 1282 /*cert_verify_flags=*/0, url2_, "GET",
1283 net_log_, callback.callback())); 1283 net_log_, callback.callback()));
1284 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1284 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1285 EXPECT_TRUE(stream2.get()); 1285 EXPECT_TRUE(stream2.get());
1286 1286
1287 factory_->OnSessionGoingAway(GetActiveSession(host_port_pair_)); 1287 factory_->OnSessionGoingAway(GetActiveSession(host_port_pair_));
1288 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1288 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1289 EXPECT_FALSE(HasActiveSession(server2)); 1289 EXPECT_FALSE(HasActiveSession(server2));
1290 1290
1291 TestCompletionCallback callback3; 1291 TestCompletionCallback callback3;
1292 QuicStreamRequest request3(factory_.get()); 1292 QuicStreamRequest request3(factory_.get(), &http_server_properties_);
1293 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_, 1293 EXPECT_EQ(OK, request3.Request(server2, privacy_mode_,
1294 /*cert_verify_flags=*/0, url2_, "GET", 1294 /*cert_verify_flags=*/0, url2_, "GET",
1295 net_log_, callback3.callback())); 1295 net_log_, callback3.callback()));
1296 std::unique_ptr<QuicHttpStream> stream3 = request3.CreateStream(); 1296 std::unique_ptr<QuicHttpStream> stream3 = request3.CreateStream();
1297 EXPECT_TRUE(stream3.get()); 1297 EXPECT_TRUE(stream3.get());
1298 1298
1299 EXPECT_TRUE(HasActiveSession(server2)); 1299 EXPECT_TRUE(HasActiveSession(server2));
1300 1300
1301 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1301 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1302 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1302 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
(...skipping 14 matching lines...) Expand all
1317 HostPortPair server1(kDefaultServerHostName, 443); 1317 HostPortPair server1(kDefaultServerHostName, 443);
1318 HostPortPair server2(kServer2HostName, 443); 1318 HostPortPair server2(kServer2HostName, 443);
1319 1319
1320 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1320 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1321 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1321 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
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()); 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<QuicHttpStream> 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()); 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<QuicHttpStream> stream2 = request2.CreateStream();
1340 EXPECT_TRUE(stream2.get()); 1340 EXPECT_TRUE(stream2.get());
1341 1341
1342 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); 1342 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2));
1343 1343
1344 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1344 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1345 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1345 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 20 matching lines...) Expand all
1366 HostPortPair server2(kServer2HostName, 443); 1366 HostPortPair server2(kServer2HostName, 443);
1367 1367
1368 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1368 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1369 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1369 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1370 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1370 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1371 1371
1372 host_resolver_.set_synchronous_mode(true); 1372 host_resolver_.set_synchronous_mode(true);
1373 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1373 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
1374 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1374 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1375 1375
1376 QuicStreamRequest request(factory_.get()); 1376 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1377 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 1377 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
1378 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1378 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1379 callback_.callback())); 1379 callback_.callback()));
1380 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1380 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1381 EXPECT_TRUE(stream.get()); 1381 EXPECT_TRUE(stream.get());
1382 1382
1383 TestCompletionCallback callback; 1383 TestCompletionCallback callback;
1384 QuicStreamRequest request2(factory_.get()); 1384 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1385 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1385 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1386 /*cert_verify_flags=*/0, url2_, "GET", 1386 /*cert_verify_flags=*/0, url2_, "GET",
1387 net_log_, callback_.callback())); 1387 net_log_, callback_.callback()));
1388 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1388 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1389 EXPECT_TRUE(stream2.get()); 1389 EXPECT_TRUE(stream2.get());
1390 1390
1391 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2)); 1391 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2));
1392 1392
1393 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1393 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1394 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1394 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
(...skipping 19 matching lines...) Expand all
1414 1414
1415 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1415 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1416 verify_details.cert_verify_result.public_key_hashes.push_back( 1416 verify_details.cert_verify_result.public_key_hashes.push_back(
1417 test::GetTestHashValue(primary_pin)); 1417 test::GetTestHashValue(primary_pin));
1418 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1418 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1419 1419
1420 host_resolver_.set_synchronous_mode(true); 1420 host_resolver_.set_synchronous_mode(true);
1421 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1421 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
1422 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1422 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1423 1423
1424 QuicStreamRequest request(factory_.get()); 1424 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1425 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 1425 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
1426 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1426 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1427 callback_.callback())); 1427 callback_.callback()));
1428 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1428 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1429 EXPECT_TRUE(stream.get()); 1429 EXPECT_TRUE(stream.get());
1430 1430
1431 TestCompletionCallback callback; 1431 TestCompletionCallback callback;
1432 QuicStreamRequest request2(factory_.get()); 1432 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1433 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1433 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1434 /*cert_verify_flags=*/0, url2_, "GET", 1434 /*cert_verify_flags=*/0, url2_, "GET",
1435 net_log_, callback_.callback())); 1435 net_log_, callback_.callback()));
1436 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1436 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1437 EXPECT_TRUE(stream2.get()); 1437 EXPECT_TRUE(stream2.get());
1438 1438
1439 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2)); 1439 EXPECT_EQ(GetActiveSession(server1), GetActiveSession(server2));
1440 1440
1441 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1441 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1442 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1442 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
(...skipping 26 matching lines...) Expand all
1469 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1469 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1470 verify_details.cert_verify_result.public_key_hashes.push_back( 1470 verify_details.cert_verify_result.public_key_hashes.push_back(
1471 test::GetTestHashValue(primary_pin)); 1471 test::GetTestHashValue(primary_pin));
1472 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1472 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1473 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1473 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1474 1474
1475 host_resolver_.set_synchronous_mode(true); 1475 host_resolver_.set_synchronous_mode(true);
1476 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1476 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
1477 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1477 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1478 1478
1479 QuicStreamRequest request(factory_.get()); 1479 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1480 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 1480 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
1481 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1481 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1482 callback_.callback())); 1482 callback_.callback()));
1483 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1483 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1484 EXPECT_TRUE(stream.get()); 1484 EXPECT_TRUE(stream.get());
1485 1485
1486 TestCompletionCallback callback; 1486 TestCompletionCallback callback;
1487 QuicStreamRequest request2(factory_.get()); 1487 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1488 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1488 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1489 /*cert_verify_flags=*/0, url2_, "GET", 1489 /*cert_verify_flags=*/0, url2_, "GET",
1490 net_log_, callback_.callback())); 1490 net_log_, callback_.callback()));
1491 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1491 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1492 EXPECT_TRUE(stream2.get()); 1492 EXPECT_TRUE(stream2.get());
1493 1493
1494 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2)); 1494 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2));
1495 1495
1496 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1496 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1497 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1497 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1530 1530
1531 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails(); 1531 ProofVerifyDetailsChromium verify_details2 = DefaultProofVerifyDetails();
1532 verify_details2.cert_verify_result.public_key_hashes.push_back( 1532 verify_details2.cert_verify_result.public_key_hashes.push_back(
1533 test::GetTestHashValue(primary_pin)); 1533 test::GetTestHashValue(primary_pin));
1534 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); 1534 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2);
1535 1535
1536 host_resolver_.set_synchronous_mode(true); 1536 host_resolver_.set_synchronous_mode(true);
1537 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 1537 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
1538 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 1538 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
1539 1539
1540 QuicStreamRequest request(factory_.get()); 1540 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1541 EXPECT_EQ(OK, request.Request(server1, privacy_mode_, 1541 EXPECT_EQ(OK, request.Request(server1, privacy_mode_,
1542 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1542 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1543 callback_.callback())); 1543 callback_.callback()));
1544 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1544 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1545 EXPECT_TRUE(stream.get()); 1545 EXPECT_TRUE(stream.get());
1546 1546
1547 TestCompletionCallback callback; 1547 TestCompletionCallback callback;
1548 QuicStreamRequest request2(factory_.get()); 1548 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1549 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 1549 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
1550 /*cert_verify_flags=*/0, url2_, "GET", 1550 /*cert_verify_flags=*/0, url2_, "GET",
1551 net_log_, callback_.callback())); 1551 net_log_, callback_.callback()));
1552 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1552 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1553 EXPECT_TRUE(stream2.get()); 1553 EXPECT_TRUE(stream2.get());
1554 1554
1555 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2)); 1555 EXPECT_NE(GetActiveSession(server1), GetActiveSession(server2));
1556 1556
1557 EXPECT_TRUE(socket_data1.AllReadDataConsumed()); 1557 EXPECT_TRUE(socket_data1.AllReadDataConsumed());
1558 EXPECT_TRUE(socket_data1.AllWriteDataConsumed()); 1558 EXPECT_TRUE(socket_data1.AllWriteDataConsumed());
(...skipping 13 matching lines...) Expand all
1572 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1572 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1573 kDefaultMaxUncompressedHeaderSize, nullptr)); 1573 kDefaultMaxUncompressedHeaderSize, nullptr));
1574 socket_data.AddSocketDataToFactory(&socket_factory_); 1574 socket_data.AddSocketDataToFactory(&socket_factory_);
1575 MockQuicData socket_data2; 1575 MockQuicData socket_data2;
1576 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1576 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1577 socket_data2.AddWrite( 1577 socket_data2.AddWrite(
1578 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1578 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1579 kDefaultMaxUncompressedHeaderSize, nullptr)); 1579 kDefaultMaxUncompressedHeaderSize, nullptr));
1580 socket_data2.AddSocketDataToFactory(&socket_factory_); 1580 socket_data2.AddSocketDataToFactory(&socket_factory_);
1581 1581
1582 QuicStreamRequest request(factory_.get()); 1582 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1583 EXPECT_EQ(ERR_IO_PENDING, 1583 EXPECT_EQ(ERR_IO_PENDING,
1584 request.Request(host_port_pair_, privacy_mode_, 1584 request.Request(host_port_pair_, privacy_mode_,
1585 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1585 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1586 callback_.callback())); 1586 callback_.callback()));
1587 1587
1588 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1588 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1589 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1589 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1590 EXPECT_TRUE(stream.get()); 1590 EXPECT_TRUE(stream.get());
1591 1591
1592 // Mark the session as going away. Ensure that while it is still alive 1592 // Mark the session as going away. Ensure that while it is still alive
1593 // that it is no longer active. 1593 // that it is no longer active.
1594 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 1594 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
1595 factory_->OnSessionGoingAway(session); 1595 factory_->OnSessionGoingAway(session);
1596 EXPECT_EQ(true, 1596 EXPECT_EQ(true,
1597 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session)); 1597 QuicStreamFactoryPeer::IsLiveSession(factory_.get(), session));
1598 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1598 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1599 1599
1600 // Create a new request for the same destination and verify that a 1600 // Create a new request for the same destination and verify that a
1601 // new session is created. 1601 // new session is created.
1602 QuicStreamRequest request2(factory_.get()); 1602 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1603 EXPECT_EQ(ERR_IO_PENDING, 1603 EXPECT_EQ(ERR_IO_PENDING,
1604 request2.Request(host_port_pair_, privacy_mode_, 1604 request2.Request(host_port_pair_, privacy_mode_,
1605 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1605 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1606 callback_.callback())); 1606 callback_.callback()));
1607 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1607 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1608 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 1608 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
1609 EXPECT_TRUE(stream2.get()); 1609 EXPECT_TRUE(stream2.get());
1610 1610
1611 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 1611 EXPECT_TRUE(HasActiveSession(host_port_pair_));
1612 EXPECT_NE(session, GetActiveSession(host_port_pair_)); 1612 EXPECT_NE(session, GetActiveSession(host_port_pair_));
(...skipping 24 matching lines...) Expand all
1637 socket_data.AddRead( 1637 socket_data.AddRead(
1638 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED)); 1638 server_maker_.MakeRstPacket(1, false, stream_id, QUIC_STREAM_CANCELLED));
1639 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1639 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1640 socket_data.AddSocketDataToFactory(&socket_factory_); 1640 socket_data.AddSocketDataToFactory(&socket_factory_);
1641 1641
1642 HttpRequestInfo request_info; 1642 HttpRequestInfo request_info;
1643 std::vector<std::unique_ptr<QuicHttpStream>> streams; 1643 std::vector<std::unique_ptr<QuicHttpStream>> streams;
1644 // The MockCryptoClientStream sets max_open_streams to be 1644 // The MockCryptoClientStream sets max_open_streams to be
1645 // kDefaultMaxStreamsPerConnection / 2. 1645 // kDefaultMaxStreamsPerConnection / 2.
1646 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) { 1646 for (size_t i = 0; i < kDefaultMaxStreamsPerConnection / 2; i++) {
1647 QuicStreamRequest request(factory_.get()); 1647 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1648 int rv = request.Request(host_port_pair_, privacy_mode_, 1648 int rv = request.Request(host_port_pair_, privacy_mode_,
1649 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1649 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1650 callback_.callback()); 1650 callback_.callback());
1651 if (i == 0) { 1651 if (i == 0) {
1652 EXPECT_THAT(rv, IsError(ERR_IO_PENDING)); 1652 EXPECT_THAT(rv, IsError(ERR_IO_PENDING));
1653 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1653 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1654 } else { 1654 } else {
1655 EXPECT_THAT(rv, IsOk()); 1655 EXPECT_THAT(rv, IsOk());
1656 } 1656 }
1657 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1657 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1658 EXPECT_TRUE(stream); 1658 EXPECT_TRUE(stream);
1659 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1659 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1660 net_log_, CompletionCallback())); 1660 net_log_, CompletionCallback()));
1661 streams.push_back(std::move(stream)); 1661 streams.push_back(std::move(stream));
1662 } 1662 }
1663 1663
1664 QuicStreamRequest request(factory_.get()); 1664 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1665 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 1665 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
1666 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1666 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1667 CompletionCallback())); 1667 CompletionCallback()));
1668 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1668 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1669 EXPECT_TRUE(stream); 1669 EXPECT_TRUE(stream);
1670 EXPECT_EQ(ERR_IO_PENDING, 1670 EXPECT_EQ(ERR_IO_PENDING,
1671 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_, 1671 stream->InitializeStream(&request_info, DEFAULT_PRIORITY, net_log_,
1672 callback_.callback())); 1672 callback_.callback()));
1673 1673
1674 // Close the first stream. 1674 // Close the first stream.
(...skipping 13 matching lines...) Expand all
1688 ConnectionCloseBehavior::SILENT_CLOSE); 1688 ConnectionCloseBehavior::SILENT_CLOSE);
1689 } 1689 }
1690 1690
1691 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) { 1691 TEST_P(QuicStreamFactoryTest, ResolutionErrorInCreate) {
1692 Initialize(); 1692 Initialize();
1693 MockQuicData socket_data; 1693 MockQuicData socket_data;
1694 socket_data.AddSocketDataToFactory(&socket_factory_); 1694 socket_data.AddSocketDataToFactory(&socket_factory_);
1695 1695
1696 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName); 1696 host_resolver_.rules()->AddSimulatedFailure(kDefaultServerHostName);
1697 1697
1698 QuicStreamRequest request(factory_.get()); 1698 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1699 EXPECT_EQ(ERR_IO_PENDING, 1699 EXPECT_EQ(ERR_IO_PENDING,
1700 request.Request(host_port_pair_, privacy_mode_, 1700 request.Request(host_port_pair_, privacy_mode_,
1701 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1701 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1702 callback_.callback())); 1702 callback_.callback()));
1703 1703
1704 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_NAME_NOT_RESOLVED)); 1704 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_NAME_NOT_RESOLVED));
1705 1705
1706 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1706 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1707 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1707 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1708 } 1708 }
1709 1709
1710 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) { 1710 TEST_P(QuicStreamFactoryTest, ConnectErrorInCreate) {
1711 Initialize(); 1711 Initialize();
1712 1712
1713 MockQuicData socket_data; 1713 MockQuicData socket_data;
1714 socket_data.AddConnect(SYNCHRONOUS, ERR_ADDRESS_IN_USE); 1714 socket_data.AddConnect(SYNCHRONOUS, ERR_ADDRESS_IN_USE);
1715 socket_data.AddSocketDataToFactory(&socket_factory_); 1715 socket_data.AddSocketDataToFactory(&socket_factory_);
1716 1716
1717 QuicStreamRequest request(factory_.get()); 1717 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1718 EXPECT_EQ(ERR_IO_PENDING, 1718 EXPECT_EQ(ERR_IO_PENDING,
1719 request.Request(host_port_pair_, privacy_mode_, 1719 request.Request(host_port_pair_, privacy_mode_,
1720 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1720 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1721 callback_.callback())); 1721 callback_.callback()));
1722 1722
1723 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_ADDRESS_IN_USE)); 1723 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_ADDRESS_IN_USE));
1724 1724
1725 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1725 EXPECT_TRUE(socket_data.AllReadDataConsumed());
1726 EXPECT_TRUE(socket_data.AllWriteDataConsumed()); 1726 EXPECT_TRUE(socket_data.AllWriteDataConsumed());
1727 } 1727 }
1728 1728
1729 TEST_P(QuicStreamFactoryTest, CancelCreate) { 1729 TEST_P(QuicStreamFactoryTest, CancelCreate) {
1730 Initialize(); 1730 Initialize();
1731 MockQuicData socket_data; 1731 MockQuicData socket_data;
1732 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1732 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1733 socket_data.AddWrite( 1733 socket_data.AddWrite(
1734 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1734 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1735 kDefaultMaxUncompressedHeaderSize, nullptr)); 1735 kDefaultMaxUncompressedHeaderSize, nullptr));
1736 socket_data.AddSocketDataToFactory(&socket_factory_); 1736 socket_data.AddSocketDataToFactory(&socket_factory_);
1737 { 1737 {
1738 QuicStreamRequest request(factory_.get()); 1738 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1739 EXPECT_EQ(ERR_IO_PENDING, 1739 EXPECT_EQ(ERR_IO_PENDING,
1740 request.Request(host_port_pair_, privacy_mode_, 1740 request.Request(host_port_pair_, privacy_mode_,
1741 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1741 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1742 callback_.callback())); 1742 callback_.callback()));
1743 } 1743 }
1744 1744
1745 base::RunLoop().RunUntilIdle(); 1745 base::RunLoop().RunUntilIdle();
1746 1746
1747 std::unique_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_)); 1747 std::unique_ptr<QuicHttpStream> stream(CreateFromSession(host_port_pair_));
1748 EXPECT_TRUE(stream.get()); 1748 EXPECT_TRUE(stream.get());
(...skipping 17 matching lines...) Expand all
1766 socket_data.AddWrite(ConstructClientRstPacket(2)); 1766 socket_data.AddWrite(ConstructClientRstPacket(2));
1767 socket_data.AddSocketDataToFactory(&socket_factory_); 1767 socket_data.AddSocketDataToFactory(&socket_factory_);
1768 1768
1769 MockQuicData socket_data2; 1769 MockQuicData socket_data2;
1770 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1770 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1771 socket_data2.AddWrite( 1771 socket_data2.AddWrite(
1772 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1772 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1773 kDefaultMaxUncompressedHeaderSize, nullptr)); 1773 kDefaultMaxUncompressedHeaderSize, nullptr));
1774 socket_data2.AddSocketDataToFactory(&socket_factory_); 1774 socket_data2.AddSocketDataToFactory(&socket_factory_);
1775 1775
1776 QuicStreamRequest request(factory_.get()); 1776 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1777 EXPECT_EQ(ERR_IO_PENDING, 1777 EXPECT_EQ(ERR_IO_PENDING,
1778 request.Request(host_port_pair_, privacy_mode_, 1778 request.Request(host_port_pair_, privacy_mode_,
1779 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1779 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1780 callback_.callback())); 1780 callback_.callback()));
1781 1781
1782 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1782 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1783 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1783 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1784 HttpRequestInfo request_info; 1784 HttpRequestInfo request_info;
1785 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1785 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1786 net_log_, CompletionCallback())); 1786 net_log_, CompletionCallback()));
1787 1787
1788 // Close the session and verify that stream saw the error. 1788 // Close the session and verify that stream saw the error.
1789 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR); 1789 factory_->CloseAllSessions(ERR_INTERNET_DISCONNECTED, QUIC_INTERNAL_ERROR);
1790 EXPECT_EQ(ERR_INTERNET_DISCONNECTED, 1790 EXPECT_EQ(ERR_INTERNET_DISCONNECTED,
1791 stream->ReadResponseHeaders(callback_.callback())); 1791 stream->ReadResponseHeaders(callback_.callback()));
1792 1792
1793 // Now attempting to request a stream to the same origin should create 1793 // Now attempting to request a stream to the same origin should create
1794 // a new session. 1794 // a new session.
1795 1795
1796 QuicStreamRequest request2(factory_.get()); 1796 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1797 EXPECT_EQ(ERR_IO_PENDING, 1797 EXPECT_EQ(ERR_IO_PENDING,
1798 request2.Request(host_port_pair_, privacy_mode_, 1798 request2.Request(host_port_pair_, privacy_mode_,
1799 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1799 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1800 callback_.callback())); 1800 callback_.callback()));
1801 1801
1802 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1802 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1803 stream = request2.CreateStream(); 1803 stream = request2.CreateStream();
1804 stream.reset(); // Will reset stream 3. 1804 stream.reset(); // Will reset stream 3.
1805 1805
1806 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1806 EXPECT_TRUE(socket_data.AllReadDataConsumed());
(...skipping 13 matching lines...) Expand all
1820 crypto_client_stream_factory_.set_handshake_mode( 1820 crypto_client_stream_factory_.set_handshake_mode(
1821 MockCryptoClientStream::USE_DEFAULT_CRYPTO_STREAM); 1821 MockCryptoClientStream::USE_DEFAULT_CRYPTO_STREAM);
1822 1822
1823 MockQuicData socket_data; 1823 MockQuicData socket_data;
1824 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1824 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1825 // Trigger PACKET_WRITE_ERROR when sending packets in crypto connect. 1825 // Trigger PACKET_WRITE_ERROR when sending packets in crypto connect.
1826 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 1826 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
1827 socket_data.AddSocketDataToFactory(&socket_factory_); 1827 socket_data.AddSocketDataToFactory(&socket_factory_);
1828 1828
1829 // Create request, should fail after the write of the CHLO fails. 1829 // Create request, should fail after the write of the CHLO fails.
1830 QuicStreamRequest request(factory_.get()); 1830 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1831 EXPECT_EQ(ERR_IO_PENDING, 1831 EXPECT_EQ(ERR_IO_PENDING,
1832 request.Request(host_port_pair_, privacy_mode_, 1832 request.Request(host_port_pair_, privacy_mode_,
1833 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1833 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1834 callback_.callback())); 1834 callback_.callback()));
1835 EXPECT_EQ(ERR_QUIC_HANDSHAKE_FAILED, callback_.WaitForResult()); 1835 EXPECT_EQ(ERR_QUIC_HANDSHAKE_FAILED, callback_.WaitForResult());
1836 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1836 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1837 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); 1837 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_));
1838 1838
1839 // Verify new requests can be sent normally without hanging. 1839 // Verify new requests can be sent normally without hanging.
1840 crypto_client_stream_factory_.set_handshake_mode( 1840 crypto_client_stream_factory_.set_handshake_mode(
1841 MockCryptoClientStream::COLD_START); 1841 MockCryptoClientStream::COLD_START);
1842 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1842 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1843 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1843 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1844 MockQuicData socket_data2; 1844 MockQuicData socket_data2;
1845 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1845 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1846 socket_data2.AddWrite( 1846 socket_data2.AddWrite(
1847 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1847 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1848 kDefaultMaxUncompressedHeaderSize, nullptr)); 1848 kDefaultMaxUncompressedHeaderSize, nullptr));
1849 socket_data2.AddSocketDataToFactory(&socket_factory_); 1849 socket_data2.AddSocketDataToFactory(&socket_factory_);
1850 1850
1851 QuicStreamRequest request2(factory_.get()); 1851 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1852 EXPECT_EQ(ERR_IO_PENDING, 1852 EXPECT_EQ(ERR_IO_PENDING,
1853 request2.Request(host_port_pair_, privacy_mode_, 1853 request2.Request(host_port_pair_, privacy_mode_,
1854 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1854 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1855 callback_.callback())); 1855 callback_.callback()));
1856 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1856 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1857 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); 1857 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_));
1858 // Run the message loop to complete host resolution. 1858 // Run the message loop to complete host resolution.
1859 base::RunLoop().RunUntilIdle(); 1859 base::RunLoop().RunUntilIdle();
1860 1860
1861 // Complete handshake. QuicStreamFactory::Job should complete and succeed. 1861 // Complete handshake. QuicStreamFactory::Job should complete and succeed.
(...skipping 22 matching lines...) Expand all
1884 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 1884 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
1885 "192.168.0.1", ""); 1885 "192.168.0.1", "");
1886 1886
1887 MockQuicData socket_data; 1887 MockQuicData socket_data;
1888 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1888 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1889 // Trigger PACKET_WRITE_ERROR when sending packets in crypto connect. 1889 // Trigger PACKET_WRITE_ERROR when sending packets in crypto connect.
1890 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 1890 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
1891 socket_data.AddSocketDataToFactory(&socket_factory_); 1891 socket_data.AddSocketDataToFactory(&socket_factory_);
1892 1892
1893 // Create request, should fail immediately. 1893 // Create request, should fail immediately.
1894 QuicStreamRequest request(factory_.get()); 1894 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1895 EXPECT_EQ(ERR_QUIC_HANDSHAKE_FAILED, 1895 EXPECT_EQ(ERR_QUIC_HANDSHAKE_FAILED,
1896 request.Request(host_port_pair_, privacy_mode_, 1896 request.Request(host_port_pair_, privacy_mode_,
1897 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1897 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1898 callback_.callback())); 1898 callback_.callback()));
1899 // Check no active session, or active jobs left for this server. 1899 // Check no active session, or active jobs left for this server.
1900 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1900 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1901 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_)); 1901 EXPECT_FALSE(HasActiveJob(host_port_pair_, privacy_mode_));
1902 1902
1903 // Verify new requests can be sent normally without hanging. 1903 // Verify new requests can be sent normally without hanging.
1904 crypto_client_stream_factory_.set_handshake_mode( 1904 crypto_client_stream_factory_.set_handshake_mode(
1905 MockCryptoClientStream::COLD_START); 1905 MockCryptoClientStream::COLD_START);
1906 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 1906 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
1907 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 1907 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
1908 MockQuicData socket_data2; 1908 MockQuicData socket_data2;
1909 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1909 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1910 socket_data2.AddWrite( 1910 socket_data2.AddWrite(
1911 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1911 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1912 kDefaultMaxUncompressedHeaderSize, nullptr)); 1912 kDefaultMaxUncompressedHeaderSize, nullptr));
1913 socket_data2.AddSocketDataToFactory(&socket_factory_); 1913 socket_data2.AddSocketDataToFactory(&socket_factory_);
1914 1914
1915 QuicStreamRequest request2(factory_.get()); 1915 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1916 EXPECT_EQ(ERR_IO_PENDING, 1916 EXPECT_EQ(ERR_IO_PENDING,
1917 request2.Request(host_port_pair_, privacy_mode_, 1917 request2.Request(host_port_pair_, privacy_mode_,
1918 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1918 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1919 callback_.callback())); 1919 callback_.callback()));
1920 EXPECT_FALSE(HasActiveSession(host_port_pair_)); 1920 EXPECT_FALSE(HasActiveSession(host_port_pair_));
1921 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_)); 1921 EXPECT_TRUE(HasActiveJob(host_port_pair_, privacy_mode_));
1922 1922
1923 // Complete handshake. 1923 // Complete handshake.
1924 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent( 1924 crypto_client_stream_factory_.last_stream()->SendOnCryptoHandshakeEvent(
1925 QuicSession::HANDSHAKE_CONFIRMED); 1925 QuicSession::HANDSHAKE_CONFIRMED);
(...skipping 26 matching lines...) Expand all
1952 socket_data.AddWrite(ConstructClientRstPacket(2)); 1952 socket_data.AddWrite(ConstructClientRstPacket(2));
1953 socket_data.AddSocketDataToFactory(&socket_factory_); 1953 socket_data.AddSocketDataToFactory(&socket_factory_);
1954 1954
1955 MockQuicData socket_data2; 1955 MockQuicData socket_data2;
1956 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 1956 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
1957 socket_data2.AddWrite( 1957 socket_data2.AddWrite(
1958 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 1958 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
1959 kDefaultMaxUncompressedHeaderSize, nullptr)); 1959 kDefaultMaxUncompressedHeaderSize, nullptr));
1960 socket_data2.AddSocketDataToFactory(&socket_factory_); 1960 socket_data2.AddSocketDataToFactory(&socket_factory_);
1961 1961
1962 QuicStreamRequest request(factory_.get()); 1962 QuicStreamRequest request(factory_.get(), &http_server_properties_);
1963 EXPECT_EQ(ERR_IO_PENDING, 1963 EXPECT_EQ(ERR_IO_PENDING,
1964 request.Request(host_port_pair_, privacy_mode_, 1964 request.Request(host_port_pair_, privacy_mode_,
1965 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1965 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1966 callback_.callback())); 1966 callback_.callback()));
1967 1967
1968 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1968 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1969 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 1969 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
1970 HttpRequestInfo request_info; 1970 HttpRequestInfo request_info;
1971 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 1971 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
1972 net_log_, CompletionCallback())); 1972 net_log_, CompletionCallback()));
1973 1973
1974 // Change the IP address and verify that stream saw the error. 1974 // Change the IP address and verify that stream saw the error.
1975 NotifyIPAddressChanged(); 1975 NotifyIPAddressChanged();
1976 EXPECT_EQ(ERR_NETWORK_CHANGED, 1976 EXPECT_EQ(ERR_NETWORK_CHANGED,
1977 stream->ReadResponseHeaders(callback_.callback())); 1977 stream->ReadResponseHeaders(callback_.callback()));
1978 EXPECT_TRUE(factory_->require_confirmation()); 1978 EXPECT_TRUE(factory_->require_confirmation());
1979 1979
1980 // Now attempting to request a stream to the same origin should create 1980 // Now attempting to request a stream to the same origin should create
1981 // a new session. 1981 // a new session.
1982 1982
1983 QuicStreamRequest request2(factory_.get()); 1983 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
1984 EXPECT_EQ(ERR_IO_PENDING, 1984 EXPECT_EQ(ERR_IO_PENDING,
1985 request2.Request(host_port_pair_, privacy_mode_, 1985 request2.Request(host_port_pair_, privacy_mode_,
1986 /*cert_verify_flags=*/0, url_, "GET", net_log_, 1986 /*cert_verify_flags=*/0, url_, "GET", net_log_,
1987 callback_.callback())); 1987 callback_.callback()));
1988 1988
1989 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 1989 EXPECT_THAT(callback_.WaitForResult(), IsOk());
1990 stream = request2.CreateStream(); 1990 stream = request2.CreateStream();
1991 stream.reset(); // Will reset stream 3. 1991 stream.reset(); // Will reset stream 3.
1992 1992
1993 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 1993 EXPECT_TRUE(socket_data.AllReadDataConsumed());
(...skipping 27 matching lines...) Expand all
2021 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++, 2021 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++,
2022 kClientDataStreamId1, true, 2022 kClientDataStreamId1, true,
2023 true, &header_stream_offset)); 2023 true, &header_stream_offset));
2024 if (async_write_before) { 2024 if (async_write_before) {
2025 socket_data.AddWrite(ASYNC, OK); 2025 socket_data.AddWrite(ASYNC, OK);
2026 packet_number++; 2026 packet_number++;
2027 } 2027 }
2028 socket_data.AddSocketDataToFactory(&socket_factory_); 2028 socket_data.AddSocketDataToFactory(&socket_factory_);
2029 2029
2030 // Create request and QuicHttpStream. 2030 // Create request and QuicHttpStream.
2031 QuicStreamRequest request(factory_.get()); 2031 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2032 EXPECT_EQ(ERR_IO_PENDING, 2032 EXPECT_EQ(ERR_IO_PENDING,
2033 request.Request(host_port_pair_, privacy_mode_, 2033 request.Request(host_port_pair_, privacy_mode_,
2034 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2034 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2035 callback_.callback())); 2035 callback_.callback()));
2036 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2036 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2037 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2037 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2038 EXPECT_TRUE(stream.get()); 2038 EXPECT_TRUE(stream.get());
2039 2039
2040 // Cause QUIC stream to be created. 2040 // Cause QUIC stream to be created.
2041 HttpRequestInfo request_info; 2041 HttpRequestInfo request_info;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
2090 2090
2091 // Create a new request for the same destination and verify that a 2091 // Create a new request for the same destination and verify that a
2092 // new session is created. 2092 // new session is created.
2093 MockQuicData socket_data2; 2093 MockQuicData socket_data2;
2094 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2094 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2095 socket_data2.AddWrite( 2095 socket_data2.AddWrite(
2096 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2096 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2097 kDefaultMaxUncompressedHeaderSize, nullptr)); 2097 kDefaultMaxUncompressedHeaderSize, nullptr));
2098 socket_data2.AddSocketDataToFactory(&socket_factory_); 2098 socket_data2.AddSocketDataToFactory(&socket_factory_);
2099 2099
2100 QuicStreamRequest request2(factory_.get()); 2100 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2101 EXPECT_EQ(ERR_IO_PENDING, 2101 EXPECT_EQ(ERR_IO_PENDING,
2102 request2.Request(host_port_pair_, privacy_mode_, 2102 request2.Request(host_port_pair_, privacy_mode_,
2103 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2103 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2104 callback_.callback())); 2104 callback_.callback()));
2105 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2105 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2106 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2106 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2107 EXPECT_TRUE(stream2.get()); 2107 EXPECT_TRUE(stream2.get());
2108 2108
2109 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 2109 EXPECT_TRUE(HasActiveSession(host_port_pair_));
2110 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); 2110 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
2154 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++, 2154 socket_data.AddWrite(ConstructGetRequestPacket(packet_number++,
2155 kClientDataStreamId1, true, 2155 kClientDataStreamId1, true,
2156 true, &header_stream_offset)); 2156 true, &header_stream_offset));
2157 if (async_write_before) { 2157 if (async_write_before) {
2158 socket_data.AddWrite(ASYNC, OK); 2158 socket_data.AddWrite(ASYNC, OK);
2159 packet_number++; 2159 packet_number++;
2160 } 2160 }
2161 socket_data.AddSocketDataToFactory(&socket_factory_); 2161 socket_data.AddSocketDataToFactory(&socket_factory_);
2162 2162
2163 // Create request and QuicHttpStream. 2163 // Create request and QuicHttpStream.
2164 QuicStreamRequest request(factory_.get()); 2164 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2165 EXPECT_EQ(ERR_IO_PENDING, 2165 EXPECT_EQ(ERR_IO_PENDING,
2166 request.Request(host_port_pair_, privacy_mode_, 2166 request.Request(host_port_pair_, privacy_mode_,
2167 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2167 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2168 callback_.callback())); 2168 callback_.callback()));
2169 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2169 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2170 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2170 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2171 EXPECT_TRUE(stream.get()); 2171 EXPECT_TRUE(stream.get());
2172 2172
2173 // Cause QUIC stream to be created. 2173 // Cause QUIC stream to be created.
2174 HttpRequestInfo request_info; 2174 HttpRequestInfo request_info;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
2218 2218
2219 // Create a new request for the same destination and verify that a 2219 // Create a new request for the same destination and verify that a
2220 // new session is created. 2220 // new session is created.
2221 MockQuicData socket_data2; 2221 MockQuicData socket_data2;
2222 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2222 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2223 socket_data2.AddWrite( 2223 socket_data2.AddWrite(
2224 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2224 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2225 kDefaultMaxUncompressedHeaderSize, nullptr)); 2225 kDefaultMaxUncompressedHeaderSize, nullptr));
2226 socket_data2.AddSocketDataToFactory(&socket_factory_); 2226 socket_data2.AddSocketDataToFactory(&socket_factory_);
2227 2227
2228 QuicStreamRequest request2(factory_.get()); 2228 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2229 EXPECT_EQ(ERR_IO_PENDING, 2229 EXPECT_EQ(ERR_IO_PENDING,
2230 request2.Request(host_port_pair_, privacy_mode_, 2230 request2.Request(host_port_pair_, privacy_mode_,
2231 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2231 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2232 callback_.callback())); 2232 callback_.callback()));
2233 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2233 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2234 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2234 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2235 EXPECT_TRUE(stream2.get()); 2235 EXPECT_TRUE(stream2.get());
2236 2236
2237 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 2237 EXPECT_TRUE(HasActiveSession(host_port_pair_));
2238 EXPECT_NE(session, GetActiveSession(host_port_pair_)); 2238 EXPECT_NE(session, GetActiveSession(host_port_pair_));
(...skipping 29 matching lines...) Expand all
2268 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get()); 2268 QuicStreamFactoryPeer::SetTaskRunner(factory_.get(), runner_.get());
2269 2269
2270 MockQuicData socket_data; 2270 MockQuicData socket_data;
2271 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2271 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2272 socket_data.AddWrite( 2272 socket_data.AddWrite(
2273 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2273 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2274 kDefaultMaxUncompressedHeaderSize, nullptr)); 2274 kDefaultMaxUncompressedHeaderSize, nullptr));
2275 socket_data.AddSocketDataToFactory(&socket_factory_); 2275 socket_data.AddSocketDataToFactory(&socket_factory_);
2276 2276
2277 // Create request and QuicHttpStream. 2277 // Create request and QuicHttpStream.
2278 QuicStreamRequest request(factory_.get()); 2278 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2279 EXPECT_EQ(ERR_IO_PENDING, 2279 EXPECT_EQ(ERR_IO_PENDING,
2280 request.Request(host_port_pair_, privacy_mode_, 2280 request.Request(host_port_pair_, privacy_mode_,
2281 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2281 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2282 callback_.callback())); 2282 callback_.callback()));
2283 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2283 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2284 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2284 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2285 EXPECT_TRUE(stream.get()); 2285 EXPECT_TRUE(stream.get());
2286 2286
2287 // Cause QUIC stream to be created. 2287 // Cause QUIC stream to be created.
2288 HttpRequestInfo request_info; 2288 HttpRequestInfo request_info;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 MockQuicData socket_data; 2328 MockQuicData socket_data;
2329 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2329 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2330 socket_data.AddWrite( 2330 socket_data.AddWrite(
2331 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2331 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2332 kDefaultMaxUncompressedHeaderSize, nullptr)); 2332 kDefaultMaxUncompressedHeaderSize, nullptr));
2333 socket_data.AddWrite(client_maker_.MakeRstPacket( 2333 socket_data.AddWrite(client_maker_.MakeRstPacket(
2334 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2334 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2335 socket_data.AddSocketDataToFactory(&socket_factory_); 2335 socket_data.AddSocketDataToFactory(&socket_factory_);
2336 2336
2337 // Create request and QuicHttpStream. 2337 // Create request and QuicHttpStream.
2338 QuicStreamRequest request(factory_.get()); 2338 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2339 EXPECT_EQ(ERR_IO_PENDING, 2339 EXPECT_EQ(ERR_IO_PENDING,
2340 request.Request(host_port_pair_, privacy_mode_, 2340 request.Request(host_port_pair_, privacy_mode_,
2341 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2341 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2342 callback_.callback())); 2342 callback_.callback()));
2343 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2343 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2344 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2344 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2345 EXPECT_TRUE(stream.get()); 2345 EXPECT_TRUE(stream.get());
2346 2346
2347 // Cause QUIC stream to be created, but marked as non-migratable. 2347 // Cause QUIC stream to be created, but marked as non-migratable.
2348 HttpRequestInfo request_info; 2348 HttpRequestInfo request_info;
(...skipping 30 matching lines...) Expand all
2379 MockQuicData socket_data; 2379 MockQuicData socket_data;
2380 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2380 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2381 socket_data.AddWrite( 2381 socket_data.AddWrite(
2382 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2382 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2383 kDefaultMaxUncompressedHeaderSize, nullptr)); 2383 kDefaultMaxUncompressedHeaderSize, nullptr));
2384 socket_data.AddWrite(client_maker_.MakeRstPacket( 2384 socket_data.AddWrite(client_maker_.MakeRstPacket(
2385 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 2385 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
2386 socket_data.AddSocketDataToFactory(&socket_factory_); 2386 socket_data.AddSocketDataToFactory(&socket_factory_);
2387 2387
2388 // Create request and QuicHttpStream. 2388 // Create request and QuicHttpStream.
2389 QuicStreamRequest request(factory_.get()); 2389 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2390 EXPECT_EQ(ERR_IO_PENDING, 2390 EXPECT_EQ(ERR_IO_PENDING,
2391 request.Request(host_port_pair_, privacy_mode_, 2391 request.Request(host_port_pair_, privacy_mode_,
2392 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2392 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2393 callback_.callback())); 2393 callback_.callback()));
2394 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2394 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2395 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2395 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2396 EXPECT_TRUE(stream.get()); 2396 EXPECT_TRUE(stream.get());
2397 2397
2398 // Cause QUIC stream to be created. 2398 // Cause QUIC stream to be created.
2399 HttpRequestInfo request_info; 2399 HttpRequestInfo request_info;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2433 MockQuicData socket_data; 2433 MockQuicData socket_data;
2434 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2434 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2435 socket_data.AddWrite( 2435 socket_data.AddWrite(
2436 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2436 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2437 kDefaultMaxUncompressedHeaderSize, nullptr)); 2437 kDefaultMaxUncompressedHeaderSize, nullptr));
2438 socket_data.AddWrite(client_maker_.MakeRstPacket( 2438 socket_data.AddWrite(client_maker_.MakeRstPacket(
2439 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 2439 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
2440 socket_data.AddSocketDataToFactory(&socket_factory_); 2440 socket_data.AddSocketDataToFactory(&socket_factory_);
2441 2441
2442 // Create request and QuicHttpStream. 2442 // Create request and QuicHttpStream.
2443 QuicStreamRequest request(factory_.get()); 2443 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2444 EXPECT_EQ(ERR_IO_PENDING, 2444 EXPECT_EQ(ERR_IO_PENDING,
2445 request.Request(host_port_pair_, privacy_mode_, 2445 request.Request(host_port_pair_, privacy_mode_,
2446 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2446 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2447 callback_.callback())); 2447 callback_.callback()));
2448 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2448 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2449 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2449 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2450 EXPECT_TRUE(stream.get()); 2450 EXPECT_TRUE(stream.get());
2451 2451
2452 // Cause QUIC stream to be created, but marked as non-migratable. 2452 // Cause QUIC stream to be created, but marked as non-migratable.
2453 HttpRequestInfo request_info; 2453 HttpRequestInfo request_info;
(...skipping 29 matching lines...) Expand all
2483 MockQuicData socket_data; 2483 MockQuicData socket_data;
2484 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2484 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2485 socket_data.AddWrite( 2485 socket_data.AddWrite(
2486 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2486 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2487 kDefaultMaxUncompressedHeaderSize, nullptr)); 2487 kDefaultMaxUncompressedHeaderSize, nullptr));
2488 socket_data.AddWrite(client_maker_.MakeRstPacket( 2488 socket_data.AddWrite(client_maker_.MakeRstPacket(
2489 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT)); 2489 2, true, kClientDataStreamId1, QUIC_RST_ACKNOWLEDGEMENT));
2490 socket_data.AddSocketDataToFactory(&socket_factory_); 2490 socket_data.AddSocketDataToFactory(&socket_factory_);
2491 2491
2492 // Create request and QuicHttpStream. 2492 // Create request and QuicHttpStream.
2493 QuicStreamRequest request(factory_.get()); 2493 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2494 EXPECT_EQ(ERR_IO_PENDING, 2494 EXPECT_EQ(ERR_IO_PENDING,
2495 request.Request(host_port_pair_, privacy_mode_, 2495 request.Request(host_port_pair_, privacy_mode_,
2496 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2496 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2497 callback_.callback())); 2497 callback_.callback()));
2498 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2498 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2499 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2499 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2500 EXPECT_TRUE(stream.get()); 2500 EXPECT_TRUE(stream.get());
2501 2501
2502 // Cause QUIC stream to be created. 2502 // Cause QUIC stream to be created.
2503 HttpRequestInfo request_info; 2503 HttpRequestInfo request_info;
(...skipping 29 matching lines...) Expand all
2533 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2533 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2534 2534
2535 MockQuicData socket_data; 2535 MockQuicData socket_data;
2536 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2536 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2537 socket_data.AddWrite( 2537 socket_data.AddWrite(
2538 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2538 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2539 kDefaultMaxUncompressedHeaderSize, nullptr)); 2539 kDefaultMaxUncompressedHeaderSize, nullptr));
2540 socket_data.AddSocketDataToFactory(&socket_factory_); 2540 socket_data.AddSocketDataToFactory(&socket_factory_);
2541 2541
2542 // Create request and QuicHttpStream. 2542 // Create request and QuicHttpStream.
2543 QuicStreamRequest request(factory_.get()); 2543 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2544 EXPECT_EQ(ERR_IO_PENDING, 2544 EXPECT_EQ(ERR_IO_PENDING,
2545 request.Request(host_port_pair_, privacy_mode_, 2545 request.Request(host_port_pair_, privacy_mode_,
2546 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2546 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2547 callback_.callback())); 2547 callback_.callback()));
2548 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2548 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2549 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2549 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2550 EXPECT_TRUE(stream.get()); 2550 EXPECT_TRUE(stream.get());
2551 2551
2552 // Ensure that session is alive and active. 2552 // Ensure that session is alive and active.
2553 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 2553 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 19 matching lines...) Expand all
2573 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2573 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2574 2574
2575 MockQuicData socket_data; 2575 MockQuicData socket_data;
2576 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2576 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2577 socket_data.AddWrite( 2577 socket_data.AddWrite(
2578 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2578 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2579 kDefaultMaxUncompressedHeaderSize, nullptr)); 2579 kDefaultMaxUncompressedHeaderSize, nullptr));
2580 socket_data.AddSocketDataToFactory(&socket_factory_); 2580 socket_data.AddSocketDataToFactory(&socket_factory_);
2581 2581
2582 // Create request and QuicHttpStream. 2582 // Create request and QuicHttpStream.
2583 QuicStreamRequest request(factory_.get()); 2583 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2584 EXPECT_EQ(ERR_IO_PENDING, 2584 EXPECT_EQ(ERR_IO_PENDING,
2585 request.Request(host_port_pair_, privacy_mode_, 2585 request.Request(host_port_pair_, privacy_mode_,
2586 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2586 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2587 callback_.callback())); 2587 callback_.callback()));
2588 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2588 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2589 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2589 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2590 EXPECT_TRUE(stream.get()); 2590 EXPECT_TRUE(stream.get());
2591 2591
2592 // Ensure that session is alive and active. 2592 // Ensure that session is alive and active.
2593 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 2593 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
(...skipping 22 matching lines...) Expand all
2616 QuicStreamOffset header_stream_offset = 0; 2616 QuicStreamOffset header_stream_offset = 0;
2617 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2617 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2618 socket_data.AddWrite(ConstructSettingsPacket( 2618 socket_data.AddWrite(ConstructSettingsPacket(
2619 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2619 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
2620 &header_stream_offset)); 2620 &header_stream_offset));
2621 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2621 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2622 true, &header_stream_offset)); 2622 true, &header_stream_offset));
2623 socket_data.AddSocketDataToFactory(&socket_factory_); 2623 socket_data.AddSocketDataToFactory(&socket_factory_);
2624 2624
2625 // Create request and QuicHttpStream. 2625 // Create request and QuicHttpStream.
2626 QuicStreamRequest request(factory_.get()); 2626 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2627 EXPECT_EQ(ERR_IO_PENDING, 2627 EXPECT_EQ(ERR_IO_PENDING,
2628 request.Request(host_port_pair_, privacy_mode_, 2628 request.Request(host_port_pair_, privacy_mode_,
2629 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2629 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2630 callback_.callback())); 2630 callback_.callback()));
2631 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2631 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2632 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2632 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2633 EXPECT_TRUE(stream.get()); 2633 EXPECT_TRUE(stream.get());
2634 2634
2635 // Cause QUIC stream to be created. 2635 // Cause QUIC stream to be created.
2636 HttpRequestInfo request_info; 2636 HttpRequestInfo request_info;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
2693 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2693 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2694 EXPECT_EQ(200, response.headers->response_code()); 2694 EXPECT_EQ(200, response.headers->response_code());
2695 2695
2696 // Create a new request and verify that a new session is created. 2696 // Create a new request and verify that a new session is created.
2697 MockQuicData socket_data2; 2697 MockQuicData socket_data2;
2698 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2698 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2699 socket_data2.AddWrite( 2699 socket_data2.AddWrite(
2700 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2700 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2701 kDefaultMaxUncompressedHeaderSize, nullptr)); 2701 kDefaultMaxUncompressedHeaderSize, nullptr));
2702 socket_data2.AddSocketDataToFactory(&socket_factory_); 2702 socket_data2.AddSocketDataToFactory(&socket_factory_);
2703 QuicStreamRequest request2(factory_.get()); 2703 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2704 EXPECT_EQ(ERR_IO_PENDING, 2704 EXPECT_EQ(ERR_IO_PENDING,
2705 request2.Request(host_port_pair_, privacy_mode_, 2705 request2.Request(host_port_pair_, privacy_mode_,
2706 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2706 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2707 callback_.callback())); 2707 callback_.callback()));
2708 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2708 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2709 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2709 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2710 EXPECT_TRUE(stream2.get()); 2710 EXPECT_TRUE(stream2.get());
2711 2711
2712 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 2712 EXPECT_TRUE(HasActiveSession(host_port_pair_));
2713 EXPECT_NE(session, GetActiveSession(host_port_pair_)); 2713 EXPECT_NE(session, GetActiveSession(host_port_pair_));
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2746 2746
2747 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 2747 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
2748 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2748 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2749 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 2749 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
2750 2750
2751 host_resolver_.set_synchronous_mode(true); 2751 host_resolver_.set_synchronous_mode(true);
2752 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", ""); 2752 host_resolver_.rules()->AddIPLiteralRule(server1.host(), "192.168.0.1", "");
2753 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.2", ""); 2753 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.2", "");
2754 2754
2755 // Create request and QuicHttpStream to create session1. 2755 // Create request and QuicHttpStream to create session1.
2756 QuicStreamRequest request1(factory_.get()); 2756 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
2757 EXPECT_EQ(OK, request1.Request(server1, privacy_mode_, 2757 EXPECT_EQ(OK, request1.Request(server1, privacy_mode_,
2758 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2758 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2759 callback_.callback())); 2759 callback_.callback()));
2760 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 2760 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
2761 EXPECT_TRUE(stream1.get()); 2761 EXPECT_TRUE(stream1.get());
2762 2762
2763 // Create request and QuicHttpStream to create session2. 2763 // Create request and QuicHttpStream to create session2.
2764 QuicStreamRequest request2(factory_.get()); 2764 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2765 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 2765 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
2766 /*cert_verify_flags=*/0, url2_, "GET", 2766 /*cert_verify_flags=*/0, url2_, "GET",
2767 net_log_, callback_.callback())); 2767 net_log_, callback_.callback()));
2768 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2768 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2769 EXPECT_TRUE(stream2.get()); 2769 EXPECT_TRUE(stream2.get());
2770 2770
2771 QuicChromiumClientSession* session1 = GetActiveSession(server1); 2771 QuicChromiumClientSession* session1 = GetActiveSession(server1);
2772 QuicChromiumClientSession* session2 = GetActiveSession(server2); 2772 QuicChromiumClientSession* session2 = GetActiveSession(server2);
2773 EXPECT_NE(session1, session2); 2773 EXPECT_NE(session1, session2);
2774 2774
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
2839 QuicStreamOffset header_stream_offset = 0; 2839 QuicStreamOffset header_stream_offset = 0;
2840 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2840 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2841 socket_data.AddWrite(ConstructSettingsPacket( 2841 socket_data.AddWrite(ConstructSettingsPacket(
2842 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2842 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
2843 &header_stream_offset)); 2843 &header_stream_offset));
2844 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2844 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2845 true, &header_stream_offset)); 2845 true, &header_stream_offset));
2846 socket_data.AddSocketDataToFactory(&socket_factory_); 2846 socket_data.AddSocketDataToFactory(&socket_factory_);
2847 2847
2848 // Create request and QuicHttpStream. 2848 // Create request and QuicHttpStream.
2849 QuicStreamRequest request(factory_.get()); 2849 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2850 EXPECT_EQ(ERR_IO_PENDING, 2850 EXPECT_EQ(ERR_IO_PENDING,
2851 request.Request(host_port_pair_, privacy_mode_, 2851 request.Request(host_port_pair_, privacy_mode_,
2852 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2852 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2853 callback_.callback())); 2853 callback_.callback()));
2854 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2854 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2855 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2855 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2856 EXPECT_TRUE(stream.get()); 2856 EXPECT_TRUE(stream.get());
2857 2857
2858 // Cause QUIC stream to be created. 2858 // Cause QUIC stream to be created.
2859 HttpRequestInfo request_info; 2859 HttpRequestInfo request_info;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2904 2904
2905 // Create a new request for the same destination and verify that a 2905 // Create a new request for the same destination and verify that a
2906 // new session is created. 2906 // new session is created.
2907 MockQuicData socket_data2; 2907 MockQuicData socket_data2;
2908 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2908 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2909 socket_data2.AddWrite( 2909 socket_data2.AddWrite(
2910 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 2910 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
2911 kDefaultMaxUncompressedHeaderSize, nullptr)); 2911 kDefaultMaxUncompressedHeaderSize, nullptr));
2912 socket_data2.AddSocketDataToFactory(&socket_factory_); 2912 socket_data2.AddSocketDataToFactory(&socket_factory_);
2913 2913
2914 QuicStreamRequest request2(factory_.get()); 2914 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
2915 EXPECT_EQ(ERR_IO_PENDING, 2915 EXPECT_EQ(ERR_IO_PENDING,
2916 request2.Request(host_port_pair_, privacy_mode_, 2916 request2.Request(host_port_pair_, privacy_mode_,
2917 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2917 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2918 callback_.callback())); 2918 callback_.callback()));
2919 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2919 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2920 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 2920 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
2921 EXPECT_TRUE(stream2.get()); 2921 EXPECT_TRUE(stream2.get());
2922 2922
2923 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 2923 EXPECT_TRUE(HasActiveSession(host_port_pair_));
2924 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); 2924 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 QuicStreamOffset header_stream_offset = 0; 2966 QuicStreamOffset header_stream_offset = 0;
2967 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 2967 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
2968 socket_data.AddWrite(ConstructSettingsPacket( 2968 socket_data.AddWrite(ConstructSettingsPacket(
2969 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 2969 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
2970 &header_stream_offset)); 2970 &header_stream_offset));
2971 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 2971 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
2972 true, &header_stream_offset)); 2972 true, &header_stream_offset));
2973 socket_data.AddSocketDataToFactory(&socket_factory_); 2973 socket_data.AddSocketDataToFactory(&socket_factory_);
2974 2974
2975 // Create request and QuicHttpStream. 2975 // Create request and QuicHttpStream.
2976 QuicStreamRequest request(factory_.get()); 2976 QuicStreamRequest request(factory_.get(), &http_server_properties_);
2977 EXPECT_EQ(ERR_IO_PENDING, 2977 EXPECT_EQ(ERR_IO_PENDING,
2978 request.Request(host_port_pair_, privacy_mode_, 2978 request.Request(host_port_pair_, privacy_mode_,
2979 /*cert_verify_flags=*/0, url_, "GET", net_log_, 2979 /*cert_verify_flags=*/0, url_, "GET", net_log_,
2980 callback_.callback())); 2980 callback_.callback()));
2981 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 2981 EXPECT_THAT(callback_.WaitForResult(), IsOk());
2982 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 2982 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
2983 EXPECT_TRUE(stream.get()); 2983 EXPECT_TRUE(stream.get());
2984 2984
2985 // Cause QUIC stream to be created. 2985 // Cause QUIC stream to be created.
2986 HttpRequestInfo request_info; 2986 HttpRequestInfo request_info;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
3033 3033
3034 // Create a new request for the same destination and verify that a 3034 // Create a new request for the same destination and verify that a
3035 // new session is created. 3035 // new session is created.
3036 MockQuicData socket_data2; 3036 MockQuicData socket_data2;
3037 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3037 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3038 socket_data2.AddWrite( 3038 socket_data2.AddWrite(
3039 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3039 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3040 kDefaultMaxUncompressedHeaderSize, nullptr)); 3040 kDefaultMaxUncompressedHeaderSize, nullptr));
3041 socket_data2.AddSocketDataToFactory(&socket_factory_); 3041 socket_data2.AddSocketDataToFactory(&socket_factory_);
3042 3042
3043 QuicStreamRequest request2(factory_.get()); 3043 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
3044 EXPECT_EQ(ERR_IO_PENDING, 3044 EXPECT_EQ(ERR_IO_PENDING,
3045 request2.Request(host_port_pair_, privacy_mode_, 3045 request2.Request(host_port_pair_, privacy_mode_,
3046 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3046 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3047 callback_.callback())); 3047 callback_.callback()));
3048 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3048 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3049 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 3049 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
3050 EXPECT_TRUE(stream2.get()); 3050 EXPECT_TRUE(stream2.get());
3051 3051
3052 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 3052 EXPECT_TRUE(HasActiveSession(host_port_pair_));
3053 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); 3053 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3088 MockQuicData socket_data; 3088 MockQuicData socket_data;
3089 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3089 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3090 socket_data.AddWrite( 3090 socket_data.AddWrite(
3091 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3091 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3092 kDefaultMaxUncompressedHeaderSize, nullptr)); 3092 kDefaultMaxUncompressedHeaderSize, nullptr));
3093 socket_data.AddWrite(client_maker_.MakeRstPacket( 3093 socket_data.AddWrite(client_maker_.MakeRstPacket(
3094 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 3094 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
3095 socket_data.AddSocketDataToFactory(&socket_factory_); 3095 socket_data.AddSocketDataToFactory(&socket_factory_);
3096 3096
3097 // Create request and QuicHttpStream. 3097 // Create request and QuicHttpStream.
3098 QuicStreamRequest request(factory_.get()); 3098 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3099 EXPECT_EQ(ERR_IO_PENDING, 3099 EXPECT_EQ(ERR_IO_PENDING,
3100 request.Request(host_port_pair_, privacy_mode_, 3100 request.Request(host_port_pair_, privacy_mode_,
3101 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3101 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3102 callback_.callback())); 3102 callback_.callback()));
3103 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3103 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3104 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3104 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3105 EXPECT_TRUE(stream.get()); 3105 EXPECT_TRUE(stream.get());
3106 3106
3107 // Cause QUIC stream to be created. 3107 // Cause QUIC stream to be created.
3108 HttpRequestInfo request_info; 3108 HttpRequestInfo request_info;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3142 MockQuicData socket_data; 3142 MockQuicData socket_data;
3143 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3143 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3144 socket_data.AddWrite( 3144 socket_data.AddWrite(
3145 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3145 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3146 kDefaultMaxUncompressedHeaderSize, nullptr)); 3146 kDefaultMaxUncompressedHeaderSize, nullptr));
3147 socket_data.AddWrite(client_maker_.MakeRstPacket( 3147 socket_data.AddWrite(client_maker_.MakeRstPacket(
3148 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 3148 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
3149 socket_data.AddSocketDataToFactory(&socket_factory_); 3149 socket_data.AddSocketDataToFactory(&socket_factory_);
3150 3150
3151 // Create request and QuicHttpStream. 3151 // Create request and QuicHttpStream.
3152 QuicStreamRequest request(factory_.get()); 3152 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3153 EXPECT_EQ(ERR_IO_PENDING, 3153 EXPECT_EQ(ERR_IO_PENDING,
3154 request.Request(host_port_pair_, privacy_mode_, 3154 request.Request(host_port_pair_, privacy_mode_,
3155 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3155 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3156 callback_.callback())); 3156 callback_.callback()));
3157 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3157 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3158 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3158 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3159 EXPECT_TRUE(stream.get()); 3159 EXPECT_TRUE(stream.get());
3160 3160
3161 // Cause QUIC stream to be created, but marked as non-migratable. 3161 // Cause QUIC stream to be created, but marked as non-migratable.
3162 HttpRequestInfo request_info; 3162 HttpRequestInfo request_info;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3196 MockQuicData socket_data; 3196 MockQuicData socket_data;
3197 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3197 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3198 socket_data.AddWrite( 3198 socket_data.AddWrite(
3199 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3199 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3200 kDefaultMaxUncompressedHeaderSize, nullptr)); 3200 kDefaultMaxUncompressedHeaderSize, nullptr));
3201 socket_data.AddWrite(client_maker_.MakeRstPacket( 3201 socket_data.AddWrite(client_maker_.MakeRstPacket(
3202 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 3202 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
3203 socket_data.AddSocketDataToFactory(&socket_factory_); 3203 socket_data.AddSocketDataToFactory(&socket_factory_);
3204 3204
3205 // Create request and QuicHttpStream. 3205 // Create request and QuicHttpStream.
3206 QuicStreamRequest request(factory_.get()); 3206 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3207 EXPECT_EQ(ERR_IO_PENDING, 3207 EXPECT_EQ(ERR_IO_PENDING,
3208 request.Request(host_port_pair_, privacy_mode_, 3208 request.Request(host_port_pair_, privacy_mode_,
3209 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3209 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3210 callback_.callback())); 3210 callback_.callback()));
3211 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3211 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3212 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3212 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3213 EXPECT_TRUE(stream.get()); 3213 EXPECT_TRUE(stream.get());
3214 3214
3215 // Cause QUIC stream to be created. 3215 // Cause QUIC stream to be created.
3216 HttpRequestInfo request_info; 3216 HttpRequestInfo request_info;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
3255 MockQuicData socket_data; 3255 MockQuicData socket_data;
3256 QuicStreamOffset header_stream_offset = 0; 3256 QuicStreamOffset header_stream_offset = 0;
3257 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3257 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3258 socket_data.AddWrite(ConstructSettingsPacket( 3258 socket_data.AddWrite(ConstructSettingsPacket(
3259 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3259 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
3260 &header_stream_offset)); 3260 &header_stream_offset));
3261 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3261 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3262 socket_data.AddSocketDataToFactory(&socket_factory_); 3262 socket_data.AddSocketDataToFactory(&socket_factory_);
3263 3263
3264 // Create request and QuicHttpStream. 3264 // Create request and QuicHttpStream.
3265 QuicStreamRequest request(factory_.get()); 3265 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3266 EXPECT_EQ(ERR_IO_PENDING, 3266 EXPECT_EQ(ERR_IO_PENDING,
3267 request.Request(host_port_pair_, privacy_mode_, 3267 request.Request(host_port_pair_, privacy_mode_,
3268 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3268 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3269 callback_.callback())); 3269 callback_.callback()));
3270 EXPECT_EQ(OK, callback_.WaitForResult()); 3270 EXPECT_EQ(OK, callback_.WaitForResult());
3271 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3271 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3272 EXPECT_TRUE(stream.get()); 3272 EXPECT_TRUE(stream.get());
3273 3273
3274 // Cause QUIC stream to be created. 3274 // Cause QUIC stream to be created.
3275 HttpRequestInfo request_info; 3275 HttpRequestInfo request_info;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
3345 3345
3346 MockQuicData socket_data; 3346 MockQuicData socket_data;
3347 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3347 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3348 socket_data.AddWrite( 3348 socket_data.AddWrite(
3349 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3349 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3350 kDefaultMaxUncompressedHeaderSize, nullptr)); 3350 kDefaultMaxUncompressedHeaderSize, nullptr));
3351 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3351 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3352 socket_data.AddSocketDataToFactory(&socket_factory_); 3352 socket_data.AddSocketDataToFactory(&socket_factory_);
3353 3353
3354 // Create request and QuicHttpStream. 3354 // Create request and QuicHttpStream.
3355 QuicStreamRequest request(factory_.get()); 3355 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3356 EXPECT_EQ(ERR_IO_PENDING, 3356 EXPECT_EQ(ERR_IO_PENDING,
3357 request.Request(host_port_pair_, privacy_mode_, 3357 request.Request(host_port_pair_, privacy_mode_,
3358 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3358 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3359 callback_.callback())); 3359 callback_.callback()));
3360 EXPECT_EQ(OK, callback_.WaitForResult()); 3360 EXPECT_EQ(OK, callback_.WaitForResult());
3361 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3361 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3362 EXPECT_TRUE(stream.get()); 3362 EXPECT_TRUE(stream.get());
3363 3363
3364 // Cause QUIC stream to be created. 3364 // Cause QUIC stream to be created.
3365 HttpRequestInfo request_info; 3365 HttpRequestInfo request_info;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3436 3436
3437 MockQuicData socket_data; 3437 MockQuicData socket_data;
3438 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3438 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3439 socket_data.AddWrite( 3439 socket_data.AddWrite(
3440 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3440 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3441 kDefaultMaxUncompressedHeaderSize, nullptr)); 3441 kDefaultMaxUncompressedHeaderSize, nullptr));
3442 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3442 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3443 socket_data.AddSocketDataToFactory(&socket_factory_); 3443 socket_data.AddSocketDataToFactory(&socket_factory_);
3444 3444
3445 // Create request and QuicHttpStream. 3445 // Create request and QuicHttpStream.
3446 QuicStreamRequest request(factory_.get()); 3446 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3447 EXPECT_EQ(ERR_IO_PENDING, 3447 EXPECT_EQ(ERR_IO_PENDING,
3448 request.Request(host_port_pair_, privacy_mode_, 3448 request.Request(host_port_pair_, privacy_mode_,
3449 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3449 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3450 callback_.callback())); 3450 callback_.callback()));
3451 EXPECT_EQ(OK, callback_.WaitForResult()); 3451 EXPECT_EQ(OK, callback_.WaitForResult());
3452 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3452 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3453 EXPECT_TRUE(stream.get()); 3453 EXPECT_TRUE(stream.get());
3454 3454
3455 // Cause QUIC stream to be created, but marked as non-migratable. 3455 // Cause QUIC stream to be created, but marked as non-migratable.
3456 HttpRequestInfo request_info; 3456 HttpRequestInfo request_info;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
3502 3502
3503 MockQuicData socket_data; 3503 MockQuicData socket_data;
3504 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3504 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3505 socket_data.AddWrite( 3505 socket_data.AddWrite(
3506 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3506 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3507 kDefaultMaxUncompressedHeaderSize, nullptr)); 3507 kDefaultMaxUncompressedHeaderSize, nullptr));
3508 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE); 3508 socket_data.AddWrite(write_error_mode, ERR_ADDRESS_UNREACHABLE);
3509 socket_data.AddSocketDataToFactory(&socket_factory_); 3509 socket_data.AddSocketDataToFactory(&socket_factory_);
3510 3510
3511 // Create request and QuicHttpStream. 3511 // Create request and QuicHttpStream.
3512 QuicStreamRequest request(factory_.get()); 3512 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3513 EXPECT_EQ(ERR_IO_PENDING, 3513 EXPECT_EQ(ERR_IO_PENDING,
3514 request.Request(host_port_pair_, privacy_mode_, 3514 request.Request(host_port_pair_, privacy_mode_,
3515 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3515 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3516 callback_.callback())); 3516 callback_.callback()));
3517 EXPECT_EQ(OK, callback_.WaitForResult()); 3517 EXPECT_EQ(OK, callback_.WaitForResult());
3518 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3518 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3519 EXPECT_TRUE(stream.get()); 3519 EXPECT_TRUE(stream.get());
3520 3520
3521 // Cause QUIC stream to be created. 3521 // Cause QUIC stream to be created.
3522 HttpRequestInfo request_info; 3522 HttpRequestInfo request_info;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3583 nullptr)); 3583 nullptr));
3584 } 3584 }
3585 socket_data[i].AddWrite( 3585 socket_data[i].AddWrite(
3586 (i % 2 == 0) ? first_write_error_mode : second_write_error_mode, 3586 (i % 2 == 0) ? first_write_error_mode : second_write_error_mode,
3587 ERR_FAILED); 3587 ERR_FAILED);
3588 } 3588 }
3589 socket_data[i].AddSocketDataToFactory(&socket_factory_); 3589 socket_data[i].AddSocketDataToFactory(&socket_factory_);
3590 } 3590 }
3591 3591
3592 // Create request and QuicHttpStream. 3592 // Create request and QuicHttpStream.
3593 QuicStreamRequest request(factory_.get()); 3593 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3594 EXPECT_EQ(ERR_IO_PENDING, 3594 EXPECT_EQ(ERR_IO_PENDING,
3595 request.Request(host_port_pair_, privacy_mode_, 3595 request.Request(host_port_pair_, privacy_mode_,
3596 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3596 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3597 callback_.callback())); 3597 callback_.callback()));
3598 EXPECT_EQ(OK, callback_.WaitForResult()); 3598 EXPECT_EQ(OK, callback_.WaitForResult());
3599 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3599 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3600 EXPECT_TRUE(stream.get()); 3600 EXPECT_TRUE(stream.get());
3601 3601
3602 // Cause QUIC stream to be created. 3602 // Cause QUIC stream to be created.
3603 HttpRequestInfo request_info; 3603 HttpRequestInfo request_info;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3664 MockQuicData socket_data; 3664 MockQuicData socket_data;
3665 QuicStreamOffset header_stream_offset = 0; 3665 QuicStreamOffset header_stream_offset = 0;
3666 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3666 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3667 socket_data.AddWrite(ConstructSettingsPacket( 3667 socket_data.AddWrite(ConstructSettingsPacket(
3668 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3668 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
3669 &header_stream_offset)); 3669 &header_stream_offset));
3670 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 3670 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
3671 socket_data.AddSocketDataToFactory(&socket_factory_); 3671 socket_data.AddSocketDataToFactory(&socket_factory_);
3672 3672
3673 // Create request and QuicHttpStream. 3673 // Create request and QuicHttpStream.
3674 QuicStreamRequest request(factory_.get()); 3674 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3675 EXPECT_EQ(ERR_IO_PENDING, 3675 EXPECT_EQ(ERR_IO_PENDING,
3676 request.Request(host_port_pair_, privacy_mode_, 3676 request.Request(host_port_pair_, privacy_mode_,
3677 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3677 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3678 callback_.callback())); 3678 callback_.callback()));
3679 EXPECT_EQ(OK, callback_.WaitForResult()); 3679 EXPECT_EQ(OK, callback_.WaitForResult());
3680 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3680 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3681 EXPECT_TRUE(stream.get()); 3681 EXPECT_TRUE(stream.get());
3682 3682
3683 // Cause QUIC stream to be created. 3683 // Cause QUIC stream to be created.
3684 HttpRequestInfo request_info; 3684 HttpRequestInfo request_info;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3762 MockQuicData socket_data; 3762 MockQuicData socket_data;
3763 QuicStreamOffset header_stream_offset = 0; 3763 QuicStreamOffset header_stream_offset = 0;
3764 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3764 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3765 socket_data.AddWrite(ConstructSettingsPacket( 3765 socket_data.AddWrite(ConstructSettingsPacket(
3766 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3766 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
3767 &header_stream_offset)); 3767 &header_stream_offset));
3768 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE); 3768 socket_data.AddWrite(SYNCHRONOUS, ERR_ADDRESS_UNREACHABLE);
3769 socket_data.AddSocketDataToFactory(&socket_factory_); 3769 socket_data.AddSocketDataToFactory(&socket_factory_);
3770 3770
3771 // Create request and QuicHttpStream. 3771 // Create request and QuicHttpStream.
3772 QuicStreamRequest request(factory_.get()); 3772 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3773 EXPECT_EQ(ERR_IO_PENDING, 3773 EXPECT_EQ(ERR_IO_PENDING,
3774 request.Request(host_port_pair_, privacy_mode_, 3774 request.Request(host_port_pair_, privacy_mode_,
3775 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3775 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3776 callback_.callback())); 3776 callback_.callback()));
3777 EXPECT_EQ(OK, callback_.WaitForResult()); 3777 EXPECT_EQ(OK, callback_.WaitForResult());
3778 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3778 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3779 EXPECT_TRUE(stream.get()); 3779 EXPECT_TRUE(stream.get());
3780 3780
3781 // Cause QUIC stream to be created. 3781 // Cause QUIC stream to be created.
3782 HttpRequestInfo request_info; 3782 HttpRequestInfo request_info;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
3861 MockQuicData socket_data; 3861 MockQuicData socket_data;
3862 QuicStreamOffset header_stream_offset = 0; 3862 QuicStreamOffset header_stream_offset = 0;
3863 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3863 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3864 socket_data.AddWrite(ConstructSettingsPacket( 3864 socket_data.AddWrite(ConstructSettingsPacket(
3865 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 3865 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
3866 &header_stream_offset)); 3866 &header_stream_offset));
3867 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); 3867 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED);
3868 socket_data.AddSocketDataToFactory(&socket_factory_); 3868 socket_data.AddSocketDataToFactory(&socket_factory_);
3869 3869
3870 // Create request and QuicHttpStream. 3870 // Create request and QuicHttpStream.
3871 QuicStreamRequest request(factory_.get()); 3871 QuicStreamRequest request(factory_.get(), &http_server_properties_);
3872 EXPECT_EQ(ERR_IO_PENDING, 3872 EXPECT_EQ(ERR_IO_PENDING,
3873 request.Request(host_port_pair_, privacy_mode_, 3873 request.Request(host_port_pair_, privacy_mode_,
3874 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3874 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3875 callback_.callback())); 3875 callback_.callback()));
3876 EXPECT_EQ(OK, callback_.WaitForResult()); 3876 EXPECT_EQ(OK, callback_.WaitForResult());
3877 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 3877 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
3878 EXPECT_TRUE(stream.get()); 3878 EXPECT_TRUE(stream.get());
3879 3879
3880 // Cause QUIC stream to be created. 3880 // Cause QUIC stream to be created.
3881 HttpRequestInfo request_info; 3881 HttpRequestInfo request_info;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3943 3943
3944 // Create a new request for the same destination and verify that a 3944 // Create a new request for the same destination and verify that a
3945 // new session is created. 3945 // new session is created.
3946 MockQuicData socket_data2; 3946 MockQuicData socket_data2;
3947 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3947 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3948 socket_data2.AddWrite( 3948 socket_data2.AddWrite(
3949 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 3949 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
3950 kDefaultMaxUncompressedHeaderSize, nullptr)); 3950 kDefaultMaxUncompressedHeaderSize, nullptr));
3951 socket_data2.AddSocketDataToFactory(&socket_factory_); 3951 socket_data2.AddSocketDataToFactory(&socket_factory_);
3952 3952
3953 QuicStreamRequest request2(factory_.get()); 3953 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
3954 EXPECT_EQ(ERR_IO_PENDING, 3954 EXPECT_EQ(ERR_IO_PENDING,
3955 request2.Request(host_port_pair_, privacy_mode_, 3955 request2.Request(host_port_pair_, privacy_mode_,
3956 /*cert_verify_flags=*/0, url_, "GET", net_log_, 3956 /*cert_verify_flags=*/0, url_, "GET", net_log_,
3957 callback_.callback())); 3957 callback_.callback()));
3958 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 3958 EXPECT_THAT(callback_.WaitForResult(), IsOk());
3959 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 3959 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
3960 EXPECT_TRUE(stream2.get()); 3960 EXPECT_TRUE(stream2.get());
3961 3961
3962 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 3962 EXPECT_TRUE(HasActiveSession(host_port_pair_));
3963 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); 3963 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
3996 MockQuicData socket_data; 3996 MockQuicData socket_data;
3997 QuicStreamOffset header_stream_offset = 0; 3997 QuicStreamOffset header_stream_offset = 0;
3998 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 3998 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
3999 socket_data.AddWrite(ConstructSettingsPacket( 3999 socket_data.AddWrite(ConstructSettingsPacket(
4000 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 4000 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
4001 &header_stream_offset)); 4001 &header_stream_offset));
4002 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); 4002 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED);
4003 socket_data.AddSocketDataToFactory(&socket_factory_); 4003 socket_data.AddSocketDataToFactory(&socket_factory_);
4004 4004
4005 // Create request and QuicHttpStream. 4005 // Create request and QuicHttpStream.
4006 QuicStreamRequest request(factory_.get()); 4006 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4007 EXPECT_EQ(ERR_IO_PENDING, 4007 EXPECT_EQ(ERR_IO_PENDING,
4008 request.Request(host_port_pair_, privacy_mode_, 4008 request.Request(host_port_pair_, privacy_mode_,
4009 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4009 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4010 callback_.callback())); 4010 callback_.callback()));
4011 EXPECT_EQ(OK, callback_.WaitForResult()); 4011 EXPECT_EQ(OK, callback_.WaitForResult());
4012 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4012 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4013 EXPECT_TRUE(stream.get()); 4013 EXPECT_TRUE(stream.get());
4014 4014
4015 // Cause QUIC stream to be created. 4015 // Cause QUIC stream to be created.
4016 HttpRequestInfo request_info; 4016 HttpRequestInfo request_info;
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
4086 4086
4087 // Create a new request for the same destination and verify that a 4087 // Create a new request for the same destination and verify that a
4088 // new session is created. 4088 // new session is created.
4089 MockQuicData socket_data2; 4089 MockQuicData socket_data2;
4090 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4090 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4091 socket_data2.AddWrite( 4091 socket_data2.AddWrite(
4092 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4092 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4093 kDefaultMaxUncompressedHeaderSize, nullptr)); 4093 kDefaultMaxUncompressedHeaderSize, nullptr));
4094 socket_data2.AddSocketDataToFactory(&socket_factory_); 4094 socket_data2.AddSocketDataToFactory(&socket_factory_);
4095 4095
4096 QuicStreamRequest request2(factory_.get()); 4096 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
4097 EXPECT_EQ(ERR_IO_PENDING, 4097 EXPECT_EQ(ERR_IO_PENDING,
4098 request2.Request(host_port_pair_, privacy_mode_, 4098 request2.Request(host_port_pair_, privacy_mode_,
4099 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4099 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4100 callback_.callback())); 4100 callback_.callback()));
4101 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4101 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4102 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 4102 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
4103 EXPECT_TRUE(stream2.get()); 4103 EXPECT_TRUE(stream2.get());
4104 4104
4105 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 4105 EXPECT_TRUE(HasActiveSession(host_port_pair_));
4106 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_); 4106 QuicChromiumClientSession* new_session = GetActiveSession(host_port_pair_);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
4152 QuicStreamOffset header_stream_offset = 0; 4152 QuicStreamOffset header_stream_offset = 0;
4153 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4153 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4154 socket_data.AddWrite(ConstructSettingsPacket( 4154 socket_data.AddWrite(ConstructSettingsPacket(
4155 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 4155 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
4156 &header_stream_offset)); 4156 &header_stream_offset));
4157 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 4157 socket_data.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
4158 true, &header_stream_offset)); 4158 true, &header_stream_offset));
4159 socket_data.AddSocketDataToFactory(&socket_factory_); 4159 socket_data.AddSocketDataToFactory(&socket_factory_);
4160 4160
4161 // Create request and QuicHttpStream. 4161 // Create request and QuicHttpStream.
4162 QuicStreamRequest request(factory_.get()); 4162 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4163 EXPECT_EQ(ERR_IO_PENDING, 4163 EXPECT_EQ(ERR_IO_PENDING,
4164 request.Request(host_port_pair_, privacy_mode_, 4164 request.Request(host_port_pair_, privacy_mode_,
4165 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4165 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4166 callback_.callback())); 4166 callback_.callback()));
4167 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4167 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4168 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4168 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4169 EXPECT_TRUE(stream.get()); 4169 EXPECT_TRUE(stream.get());
4170 4170
4171 // Cause QUIC stream to be created. 4171 // Cause QUIC stream to be created.
4172 HttpRequestInfo request_info; 4172 HttpRequestInfo request_info;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
4216 QuicStreamOffset header_stream_offset = 0; 4216 QuicStreamOffset header_stream_offset = 0;
4217 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4217 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4218 socket_data1.AddWrite(ConstructSettingsPacket( 4218 socket_data1.AddWrite(ConstructSettingsPacket(
4219 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, 4219 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize,
4220 &header_stream_offset)); 4220 &header_stream_offset));
4221 socket_data1.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true, 4221 socket_data1.AddWrite(ConstructGetRequestPacket(2, kClientDataStreamId1, true,
4222 true, &header_stream_offset)); 4222 true, &header_stream_offset));
4223 socket_data1.AddSocketDataToFactory(&socket_factory_); 4223 socket_data1.AddSocketDataToFactory(&socket_factory_);
4224 4224
4225 // Create request and QuicHttpStream. 4225 // Create request and QuicHttpStream.
4226 QuicStreamRequest request(factory_.get()); 4226 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4227 EXPECT_EQ(ERR_IO_PENDING, 4227 EXPECT_EQ(ERR_IO_PENDING,
4228 request.Request(host_port_pair_, privacy_mode_, 4228 request.Request(host_port_pair_, privacy_mode_,
4229 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4229 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4230 callback_.callback())); 4230 callback_.callback()));
4231 EXPECT_EQ(OK, callback_.WaitForResult()); 4231 EXPECT_EQ(OK, callback_.WaitForResult());
4232 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4232 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4233 EXPECT_TRUE(stream.get()); 4233 EXPECT_TRUE(stream.get());
4234 4234
4235 // Cause QUIC stream to be created. 4235 // Cause QUIC stream to be created.
4236 HttpRequestInfo request_info; 4236 HttpRequestInfo request_info;
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
4359 MockQuicData socket_data1; 4359 MockQuicData socket_data1;
4360 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4360 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4361 socket_data1.AddWrite( 4361 socket_data1.AddWrite(
4362 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4362 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4363 kDefaultMaxUncompressedHeaderSize, nullptr)); 4363 kDefaultMaxUncompressedHeaderSize, nullptr));
4364 socket_data1.AddWrite(client_maker_.MakeRstPacket( 4364 socket_data1.AddWrite(client_maker_.MakeRstPacket(
4365 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); 4365 2, true, kClientDataStreamId1, QUIC_STREAM_CANCELLED));
4366 socket_data1.AddSocketDataToFactory(&socket_factory_); 4366 socket_data1.AddSocketDataToFactory(&socket_factory_);
4367 4367
4368 // Create request and QuicHttpStream. 4368 // Create request and QuicHttpStream.
4369 QuicStreamRequest request(factory_.get()); 4369 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4370 EXPECT_EQ(ERR_IO_PENDING, 4370 EXPECT_EQ(ERR_IO_PENDING,
4371 request.Request(host_port_pair_, privacy_mode_, 4371 request.Request(host_port_pair_, privacy_mode_,
4372 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4372 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4373 callback_.callback())); 4373 callback_.callback()));
4374 EXPECT_EQ(OK, callback_.WaitForResult()); 4374 EXPECT_EQ(OK, callback_.WaitForResult());
4375 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4375 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4376 EXPECT_TRUE(stream.get()); 4376 EXPECT_TRUE(stream.get());
4377 4377
4378 // Cause QUIC stream to be created. 4378 // Cause QUIC stream to be created.
4379 HttpRequestInfo request_info; 4379 HttpRequestInfo request_info;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
4417 socket_data.AddWrite(ConstructClientRstPacket(2)); 4417 socket_data.AddWrite(ConstructClientRstPacket(2));
4418 socket_data.AddSocketDataToFactory(&socket_factory_); 4418 socket_data.AddSocketDataToFactory(&socket_factory_);
4419 4419
4420 MockQuicData socket_data2; 4420 MockQuicData socket_data2;
4421 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4421 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4422 socket_data2.AddWrite( 4422 socket_data2.AddWrite(
4423 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4423 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4424 kDefaultMaxUncompressedHeaderSize, nullptr)); 4424 kDefaultMaxUncompressedHeaderSize, nullptr));
4425 socket_data2.AddSocketDataToFactory(&socket_factory_); 4425 socket_data2.AddSocketDataToFactory(&socket_factory_);
4426 4426
4427 QuicStreamRequest request(factory_.get()); 4427 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4428 EXPECT_EQ(ERR_IO_PENDING, 4428 EXPECT_EQ(ERR_IO_PENDING,
4429 request.Request(host_port_pair_, privacy_mode_, 4429 request.Request(host_port_pair_, privacy_mode_,
4430 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4430 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4431 callback_.callback())); 4431 callback_.callback()));
4432 4432
4433 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4433 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4434 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4434 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4435 HttpRequestInfo request_info; 4435 HttpRequestInfo request_info;
4436 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 4436 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
4437 net_log_, CompletionCallback())); 4437 net_log_, CompletionCallback()));
4438 4438
4439 ssl_config_service_->NotifySSLConfigChange(); 4439 ssl_config_service_->NotifySSLConfigChange();
4440 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 4440 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
4441 stream->ReadResponseHeaders(callback_.callback())); 4441 stream->ReadResponseHeaders(callback_.callback()));
4442 EXPECT_FALSE(factory_->require_confirmation()); 4442 EXPECT_FALSE(factory_->require_confirmation());
4443 4443
4444 // Now attempting to request a stream to the same origin should create 4444 // Now attempting to request a stream to the same origin should create
4445 // a new session. 4445 // a new session.
4446 4446
4447 QuicStreamRequest request2(factory_.get()); 4447 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
4448 EXPECT_EQ(ERR_IO_PENDING, 4448 EXPECT_EQ(ERR_IO_PENDING,
4449 request2.Request(host_port_pair_, privacy_mode_, 4449 request2.Request(host_port_pair_, privacy_mode_,
4450 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4450 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4451 callback_.callback())); 4451 callback_.callback()));
4452 4452
4453 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4453 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4454 stream = request2.CreateStream(); 4454 stream = request2.CreateStream();
4455 stream.reset(); // Will reset stream 3. 4455 stream.reset(); // Will reset stream 3.
4456 4456
4457 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 4457 EXPECT_TRUE(socket_data.AllReadDataConsumed());
(...skipping 16 matching lines...) Expand all
4474 socket_data.AddWrite(ConstructClientRstPacket(2)); 4474 socket_data.AddWrite(ConstructClientRstPacket(2));
4475 socket_data.AddSocketDataToFactory(&socket_factory_); 4475 socket_data.AddSocketDataToFactory(&socket_factory_);
4476 4476
4477 MockQuicData socket_data2; 4477 MockQuicData socket_data2;
4478 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4478 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4479 socket_data2.AddWrite( 4479 socket_data2.AddWrite(
4480 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 4480 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
4481 kDefaultMaxUncompressedHeaderSize, nullptr)); 4481 kDefaultMaxUncompressedHeaderSize, nullptr));
4482 socket_data2.AddSocketDataToFactory(&socket_factory_); 4482 socket_data2.AddSocketDataToFactory(&socket_factory_);
4483 4483
4484 QuicStreamRequest request(factory_.get()); 4484 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4485 EXPECT_EQ(ERR_IO_PENDING, 4485 EXPECT_EQ(ERR_IO_PENDING,
4486 request.Request(host_port_pair_, privacy_mode_, 4486 request.Request(host_port_pair_, privacy_mode_,
4487 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4487 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4488 callback_.callback())); 4488 callback_.callback()));
4489 4489
4490 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4490 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4491 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4491 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4492 HttpRequestInfo request_info; 4492 HttpRequestInfo request_info;
4493 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 4493 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
4494 net_log_, CompletionCallback())); 4494 net_log_, CompletionCallback()));
4495 4495
4496 // Change the CA cert and verify that stream saw the event. 4496 // Change the CA cert and verify that stream saw the event.
4497 factory_->OnCertDBChanged(); 4497 factory_->OnCertDBChanged();
4498 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED, 4498 EXPECT_EQ(ERR_CERT_DATABASE_CHANGED,
4499 stream->ReadResponseHeaders(callback_.callback())); 4499 stream->ReadResponseHeaders(callback_.callback()));
4500 EXPECT_FALSE(factory_->require_confirmation()); 4500 EXPECT_FALSE(factory_->require_confirmation());
4501 4501
4502 // Now attempting to request a stream to the same origin should create 4502 // Now attempting to request a stream to the same origin should create
4503 // a new session. 4503 // a new session.
4504 4504
4505 QuicStreamRequest request2(factory_.get()); 4505 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
4506 EXPECT_EQ(ERR_IO_PENDING, 4506 EXPECT_EQ(ERR_IO_PENDING,
4507 request2.Request(host_port_pair_, privacy_mode_, 4507 request2.Request(host_port_pair_, privacy_mode_,
4508 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4508 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4509 callback_.callback())); 4509 callback_.callback()));
4510 4510
4511 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 4511 EXPECT_THAT(callback_.WaitForResult(), IsOk());
4512 stream = request2.CreateStream(); 4512 stream = request2.CreateStream();
4513 stream.reset(); // Will reset stream 3. 4513 stream.reset(); // Will reset stream 3.
4514 4514
4515 EXPECT_TRUE(socket_data.AllReadDataConsumed()); 4515 EXPECT_TRUE(socket_data.AllReadDataConsumed());
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
4618 4618
4619 http_server_properties_.SetAlternativeServices( 4619 http_server_properties_.SetAlternativeServices(
4620 url::SchemeHostPort(url_), alternative_service_info_vector); 4620 url::SchemeHostPort(url_), alternative_service_info_vector);
4621 4621
4622 crypto_client_stream_factory_.set_handshake_mode( 4622 crypto_client_stream_factory_.set_handshake_mode(
4623 MockCryptoClientStream::ZERO_RTT); 4623 MockCryptoClientStream::ZERO_RTT);
4624 host_resolver_.set_synchronous_mode(true); 4624 host_resolver_.set_synchronous_mode(true);
4625 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4625 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4626 "192.168.0.1", ""); 4626 "192.168.0.1", "");
4627 4627
4628 QuicStreamRequest request(factory_.get()); 4628 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4629 QuicServerId server_id(host_port_pair_, privacy_mode_); 4629 QuicServerId server_id(host_port_pair_, privacy_mode_);
4630 EXPECT_EQ(ERR_IO_PENDING, 4630 EXPECT_EQ(ERR_IO_PENDING,
4631 request.Request(host_port_pair_, privacy_mode_, 4631 request.Request(host_port_pair_, privacy_mode_,
4632 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4632 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4633 callback_.callback())); 4633 callback_.callback()));
4634 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(), 4634 EXPECT_EQ(2u, QuicStreamFactoryPeer::GetNumberOfActiveJobs(factory_.get(),
4635 server_id)); 4635 server_id));
4636 4636
4637 runner_->RunNextTask(); 4637 runner_->RunNextTask();
4638 4638
(...skipping 16 matching lines...) Expand all
4655 MockQuicData socket_data; 4655 MockQuicData socket_data;
4656 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 4656 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
4657 socket_data.AddSocketDataToFactory(&socket_factory_); 4657 socket_data.AddSocketDataToFactory(&socket_factory_);
4658 4658
4659 crypto_client_stream_factory_.set_handshake_mode( 4659 crypto_client_stream_factory_.set_handshake_mode(
4660 MockCryptoClientStream::ZERO_RTT); 4660 MockCryptoClientStream::ZERO_RTT);
4661 host_resolver_.set_synchronous_mode(true); 4661 host_resolver_.set_synchronous_mode(true);
4662 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4662 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4663 "192.168.0.1", ""); 4663 "192.168.0.1", "");
4664 4664
4665 QuicStreamRequest request(factory_.get()); 4665 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4666 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 4666 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
4667 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4667 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4668 callback_.callback())); 4668 callback_.callback()));
4669 4669
4670 // If we are waiting for disk cache, we would have posted a task. Verify that 4670 // If we are waiting for disk cache, we would have posted a task. Verify that
4671 // the CancelWaitForDataReady task hasn't been posted. 4671 // the CancelWaitForDataReady task hasn't been posted.
4672 ASSERT_EQ(0u, runner_->GetPostedTasks().size()); 4672 ASSERT_EQ(0u, runner_->GetPostedTasks().size());
4673 4673
4674 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4674 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4675 EXPECT_TRUE(stream.get()); 4675 EXPECT_TRUE(stream.get());
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
4708 MockCryptoClientStream::CONFIRM_HANDSHAKE); 4708 MockCryptoClientStream::CONFIRM_HANDSHAKE);
4709 host_resolver_.set_synchronous_mode(true); 4709 host_resolver_.set_synchronous_mode(true);
4710 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4710 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4711 "192.168.0.1", ""); 4711 "192.168.0.1", "");
4712 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", ""); 4712 host_resolver_.rules()->AddIPLiteralRule(server2.host(), "192.168.0.1", "");
4713 4713
4714 // Quic should use default PING timeout when no previous connection times out 4714 // Quic should use default PING timeout when no previous connection times out
4715 // with open stream. 4715 // with open stream.
4716 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), 4716 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs),
4717 QuicStreamFactoryPeer::GetPingTimeout(factory_.get())); 4717 QuicStreamFactoryPeer::GetPingTimeout(factory_.get()));
4718 QuicStreamRequest request(factory_.get()); 4718 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4719 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 4719 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
4720 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4720 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4721 callback_.callback())); 4721 callback_.callback()));
4722 4722
4723 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 4723 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
4724 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs), 4724 EXPECT_EQ(QuicTime::Delta::FromSeconds(kPingTimeoutSecs),
4725 session->connection()->ping_timeout()); 4725 session->connection()->ping_timeout());
4726 4726
4727 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4727 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4728 EXPECT_TRUE(stream.get()); 4728 EXPECT_TRUE(stream.get());
(...skipping 13 matching lines...) Expand all
4742 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get())); 4742 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get()));
4743 4743
4744 // The first connection times out with open stream, QUIC should reduce initial 4744 // The first connection times out with open stream, QUIC should reduce initial
4745 // PING time for subsequent connections. 4745 // PING time for subsequent connections.
4746 EXPECT_EQ(QuicTime::Delta::FromSeconds(10), 4746 EXPECT_EQ(QuicTime::Delta::FromSeconds(10),
4747 QuicStreamFactoryPeer::GetPingTimeout(factory_.get())); 4747 QuicStreamFactoryPeer::GetPingTimeout(factory_.get()));
4748 4748
4749 // Test two-in-a-row timeouts with open streams. 4749 // Test two-in-a-row timeouts with open streams.
4750 DVLOG(1) << "Create 2nd session and timeout with open stream"; 4750 DVLOG(1) << "Create 2nd session and timeout with open stream";
4751 TestCompletionCallback callback2; 4751 TestCompletionCallback callback2;
4752 QuicStreamRequest request2(factory_.get()); 4752 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
4753 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_, 4753 EXPECT_EQ(OK, request2.Request(server2, privacy_mode_,
4754 /*cert_verify_flags=*/0, url2_, "GET", 4754 /*cert_verify_flags=*/0, url2_, "GET",
4755 net_log_, callback2.callback())); 4755 net_log_, callback2.callback()));
4756 QuicChromiumClientSession* session2 = GetActiveSession(server2); 4756 QuicChromiumClientSession* session2 = GetActiveSession(server2);
4757 EXPECT_EQ(QuicTime::Delta::FromSeconds(10), 4757 EXPECT_EQ(QuicTime::Delta::FromSeconds(10),
4758 session2->connection()->ping_timeout()); 4758 session2->connection()->ping_timeout());
4759 4759
4760 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 4760 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
4761 EXPECT_TRUE(stream2.get()); 4761 EXPECT_TRUE(stream2.get());
4762 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY, 4762 EXPECT_EQ(OK, stream2->InitializeStream(&request_info, DEFAULT_PRIORITY,
(...skipping 29 matching lines...) Expand all
4792 kDefaultMaxUncompressedHeaderSize, nullptr)); 4792 kDefaultMaxUncompressedHeaderSize, nullptr));
4793 socket_data.AddSocketDataToFactory(&socket_factory_); 4793 socket_data.AddSocketDataToFactory(&socket_factory_);
4794 4794
4795 crypto_client_stream_factory_.set_handshake_mode( 4795 crypto_client_stream_factory_.set_handshake_mode(
4796 MockCryptoClientStream::CONFIRM_HANDSHAKE); 4796 MockCryptoClientStream::CONFIRM_HANDSHAKE);
4797 host_resolver_.set_synchronous_mode(true); 4797 host_resolver_.set_synchronous_mode(true);
4798 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4798 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4799 "192.168.0.1", ""); 4799 "192.168.0.1", "");
4800 4800
4801 // Test first timeouts with open streams will disable QUIC. 4801 // Test first timeouts with open streams will disable QUIC.
4802 QuicStreamRequest request(factory_.get()); 4802 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4803 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 4803 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
4804 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4804 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4805 callback_.callback())); 4805 callback_.callback()));
4806 4806
4807 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 4807 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
4808 4808
4809 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4809 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4810 EXPECT_TRUE(stream.get()); 4810 EXPECT_TRUE(stream.get());
4811 HttpRequestInfo request_info; 4811 HttpRequestInfo request_info;
4812 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 4812 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
4862 kDefaultMaxUncompressedHeaderSize, nullptr)); 4862 kDefaultMaxUncompressedHeaderSize, nullptr));
4863 socket_data2.AddSocketDataToFactory(&socket_factory_); 4863 socket_data2.AddSocketDataToFactory(&socket_factory_);
4864 4864
4865 crypto_client_stream_factory_.set_handshake_mode( 4865 crypto_client_stream_factory_.set_handshake_mode(
4866 MockCryptoClientStream::CONFIRM_HANDSHAKE); 4866 MockCryptoClientStream::CONFIRM_HANDSHAKE);
4867 host_resolver_.set_synchronous_mode(true); 4867 host_resolver_.set_synchronous_mode(true);
4868 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4868 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4869 "192.168.0.1", ""); 4869 "192.168.0.1", "");
4870 4870
4871 // Test first timeouts with open streams will disable QUIC. 4871 // Test first timeouts with open streams will disable QUIC.
4872 QuicStreamRequest request(factory_.get()); 4872 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4873 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 4873 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
4874 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4874 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4875 callback_.callback())); 4875 callback_.callback()));
4876 4876
4877 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 4877 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
4878 4878
4879 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4879 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4880 EXPECT_TRUE(stream.get()); 4880 EXPECT_TRUE(stream.get());
4881 HttpRequestInfo request_info; 4881 HttpRequestInfo request_info;
4882 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 4882 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
(...skipping 15 matching lines...) Expand all
4898 // QuicStreamFactory::OnSessionClosed() runs. 4898 // QuicStreamFactory::OnSessionClosed() runs.
4899 base::RunLoop run_loop; 4899 base::RunLoop run_loop;
4900 run_loop.RunUntilIdle(); 4900 run_loop.RunUntilIdle();
4901 4901
4902 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get())); 4902 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get()));
4903 4903
4904 ASSERT_TRUE(runner_->GetPostedTasks().empty()); 4904 ASSERT_TRUE(runner_->GetPostedTasks().empty());
4905 4905
4906 // Create a new session which will cause a task to be posted to 4906 // Create a new session which will cause a task to be posted to
4907 // clear the exponential backoff. 4907 // clear the exponential backoff.
4908 QuicStreamRequest request2(factory_.get()); 4908 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
4909 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 4909 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
4910 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4910 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4911 callback_.callback())); 4911 callback_.callback()));
4912 QuicChromiumClientSession* session2 = GetActiveSession(host_port_pair_); 4912 QuicChromiumClientSession* session2 = GetActiveSession(host_port_pair_);
4913 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 4913 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
4914 EXPECT_TRUE(stream2.get()); 4914 EXPECT_TRUE(stream2.get());
4915 HttpRequestInfo request_info2; 4915 HttpRequestInfo request_info2;
4916 EXPECT_EQ(OK, stream2->InitializeStream(&request_info2, DEFAULT_PRIORITY, 4916 EXPECT_EQ(OK, stream2->InitializeStream(&request_info2, DEFAULT_PRIORITY,
4917 net_log_, CompletionCallback())); 4917 net_log_, CompletionCallback()));
4918 4918
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
4962 kDefaultMaxUncompressedHeaderSize, nullptr)); 4962 kDefaultMaxUncompressedHeaderSize, nullptr));
4963 socket_data2.AddSocketDataToFactory(&socket_factory_); 4963 socket_data2.AddSocketDataToFactory(&socket_factory_);
4964 4964
4965 crypto_client_stream_factory_.set_handshake_mode( 4965 crypto_client_stream_factory_.set_handshake_mode(
4966 MockCryptoClientStream::CONFIRM_HANDSHAKE); 4966 MockCryptoClientStream::CONFIRM_HANDSHAKE);
4967 host_resolver_.set_synchronous_mode(true); 4967 host_resolver_.set_synchronous_mode(true);
4968 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 4968 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
4969 "192.168.0.1", ""); 4969 "192.168.0.1", "");
4970 4970
4971 // Test first timeouts with open streams will disable QUIC. 4971 // Test first timeouts with open streams will disable QUIC.
4972 QuicStreamRequest request(factory_.get()); 4972 QuicStreamRequest request(factory_.get(), &http_server_properties_);
4973 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 4973 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
4974 /*cert_verify_flags=*/0, url_, "GET", net_log_, 4974 /*cert_verify_flags=*/0, url_, "GET", net_log_,
4975 callback_.callback())); 4975 callback_.callback()));
4976 4976
4977 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 4977 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
4978 4978
4979 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 4979 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
4980 EXPECT_TRUE(stream.get()); 4980 EXPECT_TRUE(stream.get());
4981 HttpRequestInfo request_info; 4981 HttpRequestInfo request_info;
4982 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY, 4982 EXPECT_EQ(OK, stream->InitializeStream(&request_info, DEFAULT_PRIORITY,
(...skipping 15 matching lines...) Expand all
4998 // QuicStreamFactory::OnSessionClosed() runs. 4998 // QuicStreamFactory::OnSessionClosed() runs.
4999 base::RunLoop run_loop; 4999 base::RunLoop run_loop;
5000 run_loop.RunUntilIdle(); 5000 run_loop.RunUntilIdle();
5001 5001
5002 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get())); 5002 EXPECT_FALSE(QuicStreamFactoryPeer::IsQuicDisabled(factory_.get()));
5003 5003
5004 ASSERT_TRUE(runner_->GetPostedTasks().empty()); 5004 ASSERT_TRUE(runner_->GetPostedTasks().empty());
5005 5005
5006 // Create a new session which will cause a task to be posted to 5006 // Create a new session which will cause a task to be posted to
5007 // clear the exponential backoff. 5007 // clear the exponential backoff.
5008 QuicStreamRequest request2(factory_.get()); 5008 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5009 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 5009 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
5010 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5010 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5011 callback_.callback())); 5011 callback_.callback()));
5012 QuicChromiumClientSession* session2 = GetActiveSession(host_port_pair_); 5012 QuicChromiumClientSession* session2 = GetActiveSession(host_port_pair_);
5013 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5013 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
5014 EXPECT_TRUE(stream2.get()); 5014 EXPECT_TRUE(stream2.get());
5015 HttpRequestInfo request_info2; 5015 HttpRequestInfo request_info2;
5016 EXPECT_EQ(OK, stream2->InitializeStream(&request_info2, DEFAULT_PRIORITY, 5016 EXPECT_EQ(OK, stream2->InitializeStream(&request_info2, DEFAULT_PRIORITY,
5017 net_log_, CompletionCallback())); 5017 net_log_, CompletionCallback()));
5018 5018
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
5055 stats1.srtt = base::TimeDelta::FromMicroseconds(10); 5055 stats1.srtt = base::TimeDelta::FromMicroseconds(10);
5056 http_server_properties_.SetServerNetworkStats(url::SchemeHostPort(url_), 5056 http_server_properties_.SetServerNetworkStats(url::SchemeHostPort(url_),
5057 stats1); 5057 stats1);
5058 5058
5059 crypto_client_stream_factory_.set_handshake_mode( 5059 crypto_client_stream_factory_.set_handshake_mode(
5060 MockCryptoClientStream::COLD_START); 5060 MockCryptoClientStream::COLD_START);
5061 host_resolver_.set_synchronous_mode(true); 5061 host_resolver_.set_synchronous_mode(true);
5062 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 5062 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
5063 "192.168.0.1", ""); 5063 "192.168.0.1", "");
5064 5064
5065 QuicStreamRequest request(factory_.get()); 5065 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5066 EXPECT_EQ(ERR_IO_PENDING, 5066 EXPECT_EQ(ERR_IO_PENDING,
5067 request.Request(host_port_pair_, privacy_mode_, 5067 request.Request(host_port_pair_, privacy_mode_,
5068 /*cert_verify_flags=*/0, url_, "POST", net_log_, 5068 /*cert_verify_flags=*/0, url_, "POST", net_log_,
5069 callback_.callback())); 5069 callback_.callback()));
5070 5070
5071 // If we don't delay TCP connection, then time delay should be 0. 5071 // If we don't delay TCP connection, then time delay should be 0.
5072 EXPECT_FALSE(factory_->delay_tcp_race()); 5072 EXPECT_FALSE(factory_->delay_tcp_race());
5073 EXPECT_EQ(base::TimeDelta(), request.GetTimeDelayForWaitingJob()); 5073 EXPECT_EQ(base::TimeDelta(), request.GetTimeDelayForWaitingJob());
5074 5074
5075 // Enable |delay_tcp_race_| param and verify delay is one RTT and that 5075 // Enable |delay_tcp_race_| param and verify delay is one RTT and that
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
5134 EXPECT_TRUE(HasActiveCertVerifierJob(quic_server_id)); 5134 EXPECT_TRUE(HasActiveCertVerifierJob(quic_server_id));
5135 5135
5136 while (HasActiveCertVerifierJob(quic_server_id)) { 5136 while (HasActiveCertVerifierJob(quic_server_id)) {
5137 base::RunLoop().RunUntilIdle(); 5137 base::RunLoop().RunUntilIdle();
5138 } 5138 }
5139 } 5139 }
5140 // Verify CertVerifierJob has finished. 5140 // Verify CertVerifierJob has finished.
5141 EXPECT_FALSE(HasActiveCertVerifierJob(quic_server_id)); 5141 EXPECT_FALSE(HasActiveCertVerifierJob(quic_server_id));
5142 5142
5143 // Start a QUIC request. 5143 // Start a QUIC request.
5144 QuicStreamRequest request(factory_.get()); 5144 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5145 EXPECT_EQ(ERR_IO_PENDING, 5145 EXPECT_EQ(ERR_IO_PENDING,
5146 request.Request(host_port_pair_, privacy_mode_, 5146 request.Request(host_port_pair_, privacy_mode_,
5147 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5147 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5148 callback_.callback())); 5148 callback_.callback()));
5149 5149
5150 EXPECT_EQ(OK, callback_.WaitForResult()); 5150 EXPECT_EQ(OK, callback_.WaitForResult());
5151 5151
5152 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 5152 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
5153 EXPECT_TRUE(stream.get()); 5153 EXPECT_TRUE(stream.get());
5154 5154
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5195 host_resolver_.set_synchronous_mode(true); 5195 host_resolver_.set_synchronous_mode(true);
5196 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 5196 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
5197 "192.168.0.1", ""); 5197 "192.168.0.1", "");
5198 5198
5199 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading 5199 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading
5200 // posts a task. 5200 // posts a task.
5201 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 5201 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
5202 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc", 5202 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc",
5203 "StartReading"); 5203 "StartReading");
5204 5204
5205 QuicStreamRequest request(factory_.get()); 5205 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5206 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 5206 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
5207 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5207 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5208 callback_.callback())); 5208 callback_.callback()));
5209 5209
5210 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets 5210 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets
5211 // called. 5211 // called.
5212 base::RunLoop run_loop; 5212 base::RunLoop run_loop;
5213 run_loop.RunUntilIdle(); 5213 run_loop.RunUntilIdle();
5214 5214
5215 // Verify task that the observer's executed_count is 1, which indicates 5215 // Verify task that the observer's executed_count is 1, which indicates
(...skipping 24 matching lines...) Expand all
5240 host_resolver_.set_synchronous_mode(true); 5240 host_resolver_.set_synchronous_mode(true);
5241 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(), 5241 host_resolver_.rules()->AddIPLiteralRule(host_port_pair_.host(),
5242 "192.168.0.1", ""); 5242 "192.168.0.1", "");
5243 5243
5244 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading 5244 // Set up the TaskObserver to verify QuicChromiumPacketReader::StartReading
5245 // posts a task. 5245 // posts a task.
5246 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver?? 5246 // TODO(rtenneti): Change SpdySessionTestTaskObserver to NetTestTaskObserver??
5247 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc", 5247 SpdySessionTestTaskObserver observer("quic_chromium_packet_reader.cc",
5248 "StartReading"); 5248 "StartReading");
5249 5249
5250 QuicStreamRequest request(factory_.get()); 5250 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5251 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_, 5251 EXPECT_EQ(OK, request.Request(host_port_pair_, privacy_mode_,
5252 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5252 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5253 callback_.callback())); 5253 callback_.callback()));
5254 5254
5255 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets 5255 // Call run_loop so that QuicChromiumPacketReader::OnReadComplete() gets
5256 // called. 5256 // called.
5257 base::RunLoop run_loop; 5257 base::RunLoop run_loop;
5258 run_loop.RunUntilIdle(); 5258 run_loop.RunUntilIdle();
5259 5259
5260 // Verify task that the observer's executed_count is 1, which indicates 5260 // Verify task that the observer's executed_count is 1, which indicates
(...skipping 12 matching lines...) Expand all
5273 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 5273 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
5274 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5274 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5275 5275
5276 MockQuicData socket_data; 5276 MockQuicData socket_data;
5277 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 5277 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
5278 socket_data.AddWrite( 5278 socket_data.AddWrite(
5279 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5279 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5280 kDefaultMaxUncompressedHeaderSize, nullptr)); 5280 kDefaultMaxUncompressedHeaderSize, nullptr));
5281 socket_data.AddSocketDataToFactory(&socket_factory_); 5281 socket_data.AddSocketDataToFactory(&socket_factory_);
5282 5282
5283 QuicStreamRequest request(factory_.get()); 5283 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5284 EXPECT_EQ(ERR_IO_PENDING, 5284 EXPECT_EQ(ERR_IO_PENDING,
5285 request.Request(host_port_pair_, privacy_mode_, 5285 request.Request(host_port_pair_, privacy_mode_,
5286 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5286 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5287 callback_.callback())); 5287 callback_.callback()));
5288 5288
5289 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5289 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5290 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 5290 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
5291 EXPECT_TRUE(stream.get()); 5291 EXPECT_TRUE(stream.get());
5292 5292
5293 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 5293 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
5294 5294
5295 string url = "https://www.example.org/"; 5295 string url = "https://www.example.org/";
5296 5296
5297 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 5297 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
5298 5298
5299 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); 5299 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl);
5300 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()) 5300 (*QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get())
5301 ->promised_by_url())[kDefaultUrl] = &promised; 5301 ->promised_by_url())[kDefaultUrl] = &promised;
5302 5302
5303 QuicStreamRequest request2(factory_.get()); 5303 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5304 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_, 5304 EXPECT_EQ(OK, request2.Request(host_port_pair_, privacy_mode_,
5305 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5305 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5306 callback_.callback())); 5306 callback_.callback()));
5307 5307
5308 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 5308 EXPECT_EQ(1, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
5309 } 5309 }
5310 5310
5311 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) { 5311 TEST_P(QuicStreamFactoryTest, ServerPushPrivacyModeMismatch) {
5312 Initialize(); 5312 Initialize();
5313 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 5313 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
5314 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5314 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5315 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5315 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5316 5316
5317 MockQuicData socket_data1; 5317 MockQuicData socket_data1;
5318 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 5318 socket_data1.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
5319 socket_data1.AddWrite( 5319 socket_data1.AddWrite(
5320 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5320 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5321 kDefaultMaxUncompressedHeaderSize, nullptr)); 5321 kDefaultMaxUncompressedHeaderSize, nullptr));
5322 socket_data1.AddWrite(client_maker_.MakeRstPacket( 5322 socket_data1.AddWrite(client_maker_.MakeRstPacket(
5323 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED)); 5323 2, true, kServerDataStreamId1, QUIC_STREAM_CANCELLED));
5324 socket_data1.AddSocketDataToFactory(&socket_factory_); 5324 socket_data1.AddSocketDataToFactory(&socket_factory_);
5325 5325
5326 MockQuicData socket_data2; 5326 MockQuicData socket_data2;
5327 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 5327 socket_data2.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
5328 socket_data2.AddWrite( 5328 socket_data2.AddWrite(
5329 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5329 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5330 kDefaultMaxUncompressedHeaderSize, nullptr)); 5330 kDefaultMaxUncompressedHeaderSize, nullptr));
5331 socket_data2.AddSocketDataToFactory(&socket_factory_); 5331 socket_data2.AddSocketDataToFactory(&socket_factory_);
5332 5332
5333 QuicStreamRequest request(factory_.get()); 5333 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5334 EXPECT_EQ(ERR_IO_PENDING, 5334 EXPECT_EQ(ERR_IO_PENDING,
5335 request.Request(host_port_pair_, privacy_mode_, 5335 request.Request(host_port_pair_, privacy_mode_,
5336 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5336 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5337 callback_.callback())); 5337 callback_.callback()));
5338 5338
5339 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5339 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5340 std::unique_ptr<QuicHttpStream> stream = request.CreateStream(); 5340 std::unique_ptr<QuicHttpStream> stream = request.CreateStream();
5341 EXPECT_TRUE(stream.get()); 5341 EXPECT_TRUE(stream.get());
5342 5342
5343 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 5343 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
5344 5344
5345 string url = "https://www.example.org/"; 5345 string url = "https://www.example.org/";
5346 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 5346 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
5347 5347
5348 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl); 5348 QuicClientPromisedInfo promised(session, kServerDataStreamId1, kDefaultUrl);
5349 5349
5350 QuicClientPushPromiseIndex* index = 5350 QuicClientPushPromiseIndex* index =
5351 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get()); 5351 QuicStreamFactoryPeer::GetPushPromiseIndex(factory_.get());
5352 5352
5353 (*index->promised_by_url())[kDefaultUrl] = &promised; 5353 (*index->promised_by_url())[kDefaultUrl] = &promised;
5354 EXPECT_EQ(index->GetPromised(kDefaultUrl), &promised); 5354 EXPECT_EQ(index->GetPromised(kDefaultUrl), &promised);
5355 5355
5356 // Doing the request should not use the push stream, but rather 5356 // Doing the request should not use the push stream, but rather
5357 // cancel it because the privacy modes do not match. 5357 // cancel it because the privacy modes do not match.
5358 QuicStreamRequest request2(factory_.get()); 5358 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5359 EXPECT_EQ(ERR_IO_PENDING, 5359 EXPECT_EQ(ERR_IO_PENDING,
5360 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED, 5360 request2.Request(host_port_pair_, PRIVACY_MODE_ENABLED,
5361 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5361 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5362 callback_.callback())); 5362 callback_.callback()));
5363 5363
5364 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get())); 5364 EXPECT_EQ(0, QuicStreamFactoryPeer::GetNumPushStreamsCreated(factory_.get()));
5365 EXPECT_EQ(index->GetPromised(kDefaultUrl), nullptr); 5365 EXPECT_EQ(index->GetPromised(kDefaultUrl), nullptr);
5366 5366
5367 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5367 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5368 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5368 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
(...skipping 16 matching lines...) Expand all
5385 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 5385 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
5386 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5386 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5387 5387
5388 MockQuicData socket_data; 5388 MockQuicData socket_data;
5389 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 5389 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
5390 socket_data.AddWrite( 5390 socket_data.AddWrite(
5391 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5391 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5392 kDefaultMaxUncompressedHeaderSize, nullptr)); 5392 kDefaultMaxUncompressedHeaderSize, nullptr));
5393 socket_data.AddSocketDataToFactory(&socket_factory_); 5393 socket_data.AddSocketDataToFactory(&socket_factory_);
5394 5394
5395 QuicStreamRequest request1(factory_.get()); 5395 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
5396 EXPECT_EQ(ERR_IO_PENDING, 5396 EXPECT_EQ(ERR_IO_PENDING,
5397 request1.Request(destination1, privacy_mode_, 5397 request1.Request(destination1, privacy_mode_,
5398 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5398 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5399 callback_.callback())); 5399 callback_.callback()));
5400 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5400 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5401 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 5401 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
5402 EXPECT_TRUE(stream1.get()); 5402 EXPECT_TRUE(stream1.get());
5403 EXPECT_TRUE(HasActiveSession(host_port_pair_)); 5403 EXPECT_TRUE(HasActiveSession(host_port_pair_));
5404 5404
5405 // Second request returns synchronously because it pools to existing session. 5405 // Second request returns synchronously because it pools to existing session.
5406 TestCompletionCallback callback2; 5406 TestCompletionCallback callback2;
5407 QuicStreamRequest request2(factory_.get()); 5407 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5408 EXPECT_EQ(OK, request2.Request(destination2, privacy_mode_, 5408 EXPECT_EQ(OK, request2.Request(destination2, privacy_mode_,
5409 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5409 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5410 callback2.callback())); 5410 callback2.callback()));
5411 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5411 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
5412 EXPECT_TRUE(stream2.get()); 5412 EXPECT_TRUE(stream2.get());
5413 5413
5414 QuicChromiumClientSession* session1 = 5414 QuicChromiumClientSession* session1 =
5415 QuicHttpStreamPeer::GetSession(stream1.get()); 5415 QuicHttpStreamPeer::GetSession(stream1.get());
5416 QuicChromiumClientSession* session2 = 5416 QuicChromiumClientSession* session2 =
5417 QuicHttpStreamPeer::GetSession(stream2.get()); 5417 QuicHttpStreamPeer::GetSession(stream2.get());
(...skipping 12 matching lines...) Expand all
5430 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails(); 5430 ProofVerifyDetailsChromium verify_details = DefaultProofVerifyDetails();
5431 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5431 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5432 5432
5433 MockQuicData socket_data; 5433 MockQuicData socket_data;
5434 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); 5434 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING);
5435 socket_data.AddWrite( 5435 socket_data.AddWrite(
5436 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5436 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5437 kDefaultMaxUncompressedHeaderSize, nullptr)); 5437 kDefaultMaxUncompressedHeaderSize, nullptr));
5438 socket_data.AddSocketDataToFactory(&socket_factory_); 5438 socket_data.AddSocketDataToFactory(&socket_factory_);
5439 5439
5440 QuicStreamRequest request(factory_.get()); 5440 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5441 EXPECT_EQ(ERR_IO_PENDING, 5441 EXPECT_EQ(ERR_IO_PENDING,
5442 request.Request(host_port_pair_, privacy_mode_, 5442 request.Request(host_port_pair_, privacy_mode_,
5443 /*cert_verify_flags=*/0, url_, "GET", net_log_, 5443 /*cert_verify_flags=*/0, url_, "GET", net_log_,
5444 callback_.callback())); 5444 callback_.callback()));
5445 5445
5446 EXPECT_EQ(OK, callback_.WaitForResult()); 5446 EXPECT_EQ(OK, callback_.WaitForResult());
5447 5447
5448 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_); 5448 QuicChromiumClientSession* session = GetActiveSession(host_port_pair_);
5449 if (session->connection()->version() == QUIC_VERSION_36) { 5449 if (session->connection()->version() == QUIC_VERSION_36) {
5450 EXPECT_TRUE(session->force_hol_blocking()); 5450 EXPECT_TRUE(session->force_hol_blocking());
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
5528 ASSERT_FALSE(cert->VerifyNameMatch(origin1_.host(), false)); 5528 ASSERT_FALSE(cert->VerifyNameMatch(origin1_.host(), false));
5529 ASSERT_TRUE(cert->VerifyNameMatch(origin2_.host(), false)); 5529 ASSERT_TRUE(cert->VerifyNameMatch(origin2_.host(), false));
5530 5530
5531 ProofVerifyDetailsChromium verify_details; 5531 ProofVerifyDetailsChromium verify_details;
5532 verify_details.cert_verify_result.verified_cert = cert; 5532 verify_details.cert_verify_result.verified_cert = cert;
5533 verify_details.cert_verify_result.is_issued_by_known_root = true; 5533 verify_details.cert_verify_result.is_issued_by_known_root = true;
5534 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); 5534 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details);
5535 5535
5536 AddHangingSocketData(); 5536 AddHangingSocketData();
5537 5537
5538 QuicStreamRequest request(factory_.get()); 5538 QuicStreamRequest request(factory_.get(), &http_server_properties_);
5539 EXPECT_EQ(ERR_IO_PENDING, request.Request(destination, privacy_mode_, 5539 EXPECT_EQ(ERR_IO_PENDING, request.Request(destination, privacy_mode_,
5540 /*cert_verify_flags=*/0, url, "GET", 5540 /*cert_verify_flags=*/0, url, "GET",
5541 net_log_, callback_.callback())); 5541 net_log_, callback_.callback()));
5542 5542
5543 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_QUIC_HANDSHAKE_FAILED)); 5543 EXPECT_THAT(callback_.WaitForResult(), IsError(ERR_QUIC_HANDSHAKE_FAILED));
5544 5544
5545 EXPECT_TRUE(AllDataConsumed()); 5545 EXPECT_TRUE(AllDataConsumed());
5546 } 5546 }
5547 5547
5548 // QuicStreamRequest is pooled based on |destination| if certificate matches. 5548 // QuicStreamRequest is pooled based on |destination| if certificate matches.
(...skipping 23 matching lines...) Expand all
5572 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, 5572 client_maker_.MakeSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE,
5573 kDefaultMaxUncompressedHeaderSize, true, 5573 kDefaultMaxUncompressedHeaderSize, true,
5574 nullptr)); 5574 nullptr));
5575 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(), 5575 MockWrite writes[] = {MockWrite(SYNCHRONOUS, settings_packet->data(),
5576 settings_packet->length(), 1)}; 5576 settings_packet->length(), 1)};
5577 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 5577 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
5578 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 5578 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5579 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 5579 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
5580 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 5580 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
5581 5581
5582 QuicStreamRequest request1(factory_.get()); 5582 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
5583 EXPECT_EQ(ERR_IO_PENDING, 5583 EXPECT_EQ(ERR_IO_PENDING,
5584 request1.Request(destination, privacy_mode_, 5584 request1.Request(destination, privacy_mode_,
5585 /*cert_verify_flags=*/0, url1, "GET", net_log_, 5585 /*cert_verify_flags=*/0, url1, "GET", net_log_,
5586 callback_.callback())); 5586 callback_.callback()));
5587 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5587 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5588 5588
5589 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 5589 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
5590 EXPECT_TRUE(stream1.get()); 5590 EXPECT_TRUE(stream1.get());
5591 EXPECT_TRUE(HasActiveSession(origin1_)); 5591 EXPECT_TRUE(HasActiveSession(origin1_));
5592 5592
5593 // Second request returns synchronously because it pools to existing session. 5593 // Second request returns synchronously because it pools to existing session.
5594 TestCompletionCallback callback2; 5594 TestCompletionCallback callback2;
5595 QuicStreamRequest request2(factory_.get()); 5595 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5596 EXPECT_EQ(OK, request2.Request(destination, privacy_mode_, 5596 EXPECT_EQ(OK, request2.Request(destination, privacy_mode_,
5597 /*cert_verify_flags=*/0, url2, "GET", net_log_, 5597 /*cert_verify_flags=*/0, url2, "GET", net_log_,
5598 callback2.callback())); 5598 callback2.callback()));
5599 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5599 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
5600 EXPECT_TRUE(stream2.get()); 5600 EXPECT_TRUE(stream2.get());
5601 5601
5602 QuicChromiumClientSession* session1 = 5602 QuicChromiumClientSession* session1 =
5603 QuicHttpStreamPeer::GetSession(stream1.get()); 5603 QuicHttpStreamPeer::GetSession(stream1.get());
5604 QuicChromiumClientSession* session2 = 5604 QuicChromiumClientSession* session2 =
5605 QuicHttpStreamPeer::GetSession(stream2.get()); 5605 QuicHttpStreamPeer::GetSession(stream2.get());
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
5646 settings_packet->length(), 1)}; 5646 settings_packet->length(), 1)};
5647 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 5647 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
5648 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 5648 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5649 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 5649 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
5650 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 5650 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
5651 std::unique_ptr<SequencedSocketData> sequenced_socket_data1( 5651 std::unique_ptr<SequencedSocketData> sequenced_socket_data1(
5652 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 5652 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5653 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); 5653 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get());
5654 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); 5654 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1));
5655 5655
5656 QuicStreamRequest request1(factory_.get()); 5656 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
5657 EXPECT_EQ(ERR_IO_PENDING, 5657 EXPECT_EQ(ERR_IO_PENDING,
5658 request1.Request(destination, PRIVACY_MODE_DISABLED, 5658 request1.Request(destination, PRIVACY_MODE_DISABLED,
5659 /*cert_verify_flags=*/0, url1, "GET", net_log_, 5659 /*cert_verify_flags=*/0, url1, "GET", net_log_,
5660 callback_.callback())); 5660 callback_.callback()));
5661 EXPECT_EQ(OK, callback_.WaitForResult()); 5661 EXPECT_EQ(OK, callback_.WaitForResult());
5662 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 5662 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
5663 EXPECT_TRUE(stream1.get()); 5663 EXPECT_TRUE(stream1.get());
5664 EXPECT_TRUE(HasActiveSession(origin1_)); 5664 EXPECT_TRUE(HasActiveSession(origin1_));
5665 5665
5666 TestCompletionCallback callback2; 5666 TestCompletionCallback callback2;
5667 QuicStreamRequest request2(factory_.get()); 5667 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5668 EXPECT_EQ(ERR_IO_PENDING, 5668 EXPECT_EQ(ERR_IO_PENDING,
5669 request2.Request(destination, PRIVACY_MODE_ENABLED, 5669 request2.Request(destination, PRIVACY_MODE_ENABLED,
5670 /*cert_verify_flags=*/0, url2, "GET", net_log_, 5670 /*cert_verify_flags=*/0, url2, "GET", net_log_,
5671 callback2.callback())); 5671 callback2.callback()));
5672 EXPECT_EQ(OK, callback2.WaitForResult()); 5672 EXPECT_EQ(OK, callback2.WaitForResult());
5673 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5673 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
5674 EXPECT_TRUE(stream2.get()); 5674 EXPECT_TRUE(stream2.get());
5675 5675
5676 // |request2| does not pool to the first session, because PrivacyMode does not 5676 // |request2| does not pool to the first session, because PrivacyMode does not
5677 // match. Instead, another session is opened to the same destination, but 5677 // match. Instead, another session is opened to the same destination, but
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
5731 settings_packet->length(), 1)}; 5731 settings_packet->length(), 1)};
5732 std::unique_ptr<SequencedSocketData> sequenced_socket_data( 5732 std::unique_ptr<SequencedSocketData> sequenced_socket_data(
5733 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 5733 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5734 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get()); 5734 socket_factory_.AddSocketDataProvider(sequenced_socket_data.get());
5735 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data)); 5735 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data));
5736 std::unique_ptr<SequencedSocketData> sequenced_socket_data1( 5736 std::unique_ptr<SequencedSocketData> sequenced_socket_data1(
5737 new SequencedSocketData(reads, 1, writes, arraysize(writes))); 5737 new SequencedSocketData(reads, 1, writes, arraysize(writes)));
5738 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get()); 5738 socket_factory_.AddSocketDataProvider(sequenced_socket_data1.get());
5739 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1)); 5739 sequenced_socket_data_vector_.push_back(std::move(sequenced_socket_data1));
5740 5740
5741 QuicStreamRequest request1(factory_.get()); 5741 QuicStreamRequest request1(factory_.get(), &http_server_properties_);
5742 EXPECT_EQ(ERR_IO_PENDING, 5742 EXPECT_EQ(ERR_IO_PENDING,
5743 request1.Request(destination, privacy_mode_, 5743 request1.Request(destination, privacy_mode_,
5744 /*cert_verify_flags=*/0, url1, "GET", net_log_, 5744 /*cert_verify_flags=*/0, url1, "GET", net_log_,
5745 callback_.callback())); 5745 callback_.callback()));
5746 EXPECT_THAT(callback_.WaitForResult(), IsOk()); 5746 EXPECT_THAT(callback_.WaitForResult(), IsOk());
5747 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream(); 5747 std::unique_ptr<QuicHttpStream> stream1 = request1.CreateStream();
5748 EXPECT_TRUE(stream1.get()); 5748 EXPECT_TRUE(stream1.get());
5749 EXPECT_TRUE(HasActiveSession(origin1_)); 5749 EXPECT_TRUE(HasActiveSession(origin1_));
5750 5750
5751 TestCompletionCallback callback2; 5751 TestCompletionCallback callback2;
5752 QuicStreamRequest request2(factory_.get()); 5752 QuicStreamRequest request2(factory_.get(), &http_server_properties_);
5753 EXPECT_EQ(ERR_IO_PENDING, 5753 EXPECT_EQ(ERR_IO_PENDING,
5754 request2.Request(destination, privacy_mode_, 5754 request2.Request(destination, privacy_mode_,
5755 /*cert_verify_flags=*/0, url2, "GET", net_log_, 5755 /*cert_verify_flags=*/0, url2, "GET", net_log_,
5756 callback2.callback())); 5756 callback2.callback()));
5757 EXPECT_THAT(callback2.WaitForResult(), IsOk()); 5757 EXPECT_THAT(callback2.WaitForResult(), IsOk());
5758 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream(); 5758 std::unique_ptr<QuicHttpStream> stream2 = request2.CreateStream();
5759 EXPECT_TRUE(stream2.get()); 5759 EXPECT_TRUE(stream2.get());
5760 5760
5761 // |request2| does not pool to the first session, because the certificate does 5761 // |request2| does not pool to the first session, because the certificate does
5762 // not match. Instead, another session is opened to the same destination, but 5762 // not match. Instead, another session is opened to the same destination, but
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
5815 // Clear all cached states. 5815 // Clear all cached states.
5816 factory_->ClearCachedStatesInCryptoConfig( 5816 factory_->ClearCachedStatesInCryptoConfig(
5817 base::Callback<bool(const GURL&)>()); 5817 base::Callback<bool(const GURL&)>());
5818 EXPECT_TRUE(test_cases[0].state->certs().empty()); 5818 EXPECT_TRUE(test_cases[0].state->certs().empty());
5819 EXPECT_TRUE(test_cases[1].state->certs().empty()); 5819 EXPECT_TRUE(test_cases[1].state->certs().empty());
5820 EXPECT_TRUE(test_cases[2].state->certs().empty()); 5820 EXPECT_TRUE(test_cases[2].state->certs().empty());
5821 } 5821 }
5822 5822
5823 } // namespace test 5823 } // namespace test
5824 } // namespace net 5824 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/chromium/quic_stream_factory.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698