| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/quic/chromium/quic_stream_factory.h" | 5 #include "net/quic/chromium/quic_stream_factory.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <ostream> | 8 #include <ostream> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |