| 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 <memory> | 5 #include <memory> |
| 6 #include <ostream> | 6 #include <ostream> |
| 7 #include <string> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 | 343 |
| 344 std::unique_ptr<QuicEncryptedPacket> ConstructServerRstPacket( | 344 std::unique_ptr<QuicEncryptedPacket> ConstructServerRstPacket( |
| 345 QuicPacketNumber num, | 345 QuicPacketNumber num, |
| 346 bool include_version, | 346 bool include_version, |
| 347 QuicStreamId stream_id, | 347 QuicStreamId stream_id, |
| 348 QuicRstStreamErrorCode error_code) { | 348 QuicRstStreamErrorCode error_code) { |
| 349 return server_maker_.MakeRstPacket(num, include_version, stream_id, | 349 return server_maker_.MakeRstPacket(num, include_version, stream_id, |
| 350 error_code); | 350 error_code); |
| 351 } | 351 } |
| 352 | 352 |
| 353 std::unique_ptr<QuicReceivedPacket> ConstructSettingsPacket( | 353 std::unique_ptr<QuicReceivedPacket> ConstructInitialSettingsPacket( |
| 354 QuicPacketNumber packet_number, | 354 QuicPacketNumber packet_number, |
| 355 SpdySettingsIds id, | |
| 356 size_t value, | |
| 357 QuicStreamOffset* offset) { | 355 QuicStreamOffset* offset) { |
| 358 return client_maker_.MakeSettingsPacket(packet_number, id, value, | 356 return client_maker_.MakeInitialSettingsPacket(packet_number, offset); |
| 359 kIncludeVersion, offset); | |
| 360 } | 357 } |
| 361 | 358 |
| 362 std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket( | 359 std::unique_ptr<QuicReceivedPacket> ConstructServerAckPacket( |
| 363 QuicPacketNumber packet_number, | 360 QuicPacketNumber packet_number, |
| 364 QuicPacketNumber largest_received, | 361 QuicPacketNumber largest_received, |
| 365 QuicPacketNumber smallest_received, | 362 QuicPacketNumber smallest_received, |
| 366 QuicPacketNumber least_unacked) { | 363 QuicPacketNumber least_unacked) { |
| 367 return server_maker_.MakeAckPacket(packet_number, largest_received, | 364 return server_maker_.MakeAckPacket(packet_number, largest_received, |
| 368 smallest_received, least_unacked, false); | 365 smallest_received, least_unacked, false); |
| 369 } | 366 } |
| (...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 769 INSTANTIATE_TEST_CASE_P(Version, | 766 INSTANTIATE_TEST_CASE_P(Version, |
| 770 QuicNetworkTransactionTest, | 767 QuicNetworkTransactionTest, |
| 771 ::testing::ValuesIn(AllSupportedVersions())); | 768 ::testing::ValuesIn(AllSupportedVersions())); |
| 772 | 769 |
| 773 TEST_P(QuicNetworkTransactionTest, SocketWatcherEnabled) { | 770 TEST_P(QuicNetworkTransactionTest, SocketWatcherEnabled) { |
| 774 params_.origins_to_force_quic_on.insert( | 771 params_.origins_to_force_quic_on.insert( |
| 775 HostPortPair::FromString("mail.example.org:443")); | 772 HostPortPair::FromString("mail.example.org:443")); |
| 776 | 773 |
| 777 MockQuicData mock_quic_data; | 774 MockQuicData mock_quic_data; |
| 778 QuicStreamOffset header_stream_offset = 0; | 775 QuicStreamOffset header_stream_offset = 0; |
| 779 mock_quic_data.AddWrite(ConstructSettingsPacket( | 776 mock_quic_data.AddWrite( |
| 780 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 777 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 781 &header_stream_offset)); | |
| 782 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 778 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 783 2, kClientDataStreamId1, true, true, | 779 2, kClientDataStreamId1, true, true, |
| 784 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 780 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 785 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 781 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 786 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 782 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 787 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 783 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 788 false, true, 0, "hello!")); | 784 false, true, 0, "hello!")); |
| 789 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 785 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 790 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read | 786 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read |
| 791 | 787 |
| 792 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 788 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 793 | 789 |
| 794 CreateSession(); | 790 CreateSession(); |
| 795 test_socket_performance_watcher_factory_.set_should_notify_updated_rtt(true); | 791 test_socket_performance_watcher_factory_.set_should_notify_updated_rtt(true); |
| 796 | 792 |
| 797 EXPECT_FALSE( | 793 EXPECT_FALSE( |
| 798 test_socket_performance_watcher_factory_.rtt_notification_received()); | 794 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 799 SendRequestAndExpectQuicResponse("hello!"); | 795 SendRequestAndExpectQuicResponse("hello!"); |
| 800 EXPECT_TRUE( | 796 EXPECT_TRUE( |
| 801 test_socket_performance_watcher_factory_.rtt_notification_received()); | 797 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 802 } | 798 } |
| 803 | 799 |
| 804 TEST_P(QuicNetworkTransactionTest, SocketWatcherDisabled) { | 800 TEST_P(QuicNetworkTransactionTest, SocketWatcherDisabled) { |
| 805 params_.origins_to_force_quic_on.insert( | 801 params_.origins_to_force_quic_on.insert( |
| 806 HostPortPair::FromString("mail.example.org:443")); | 802 HostPortPair::FromString("mail.example.org:443")); |
| 807 | 803 |
| 808 MockQuicData mock_quic_data; | 804 MockQuicData mock_quic_data; |
| 809 QuicStreamOffset header_stream_offset = 0; | 805 QuicStreamOffset header_stream_offset = 0; |
| 810 mock_quic_data.AddWrite(ConstructSettingsPacket( | 806 mock_quic_data.AddWrite( |
| 811 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 807 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 812 &header_stream_offset)); | |
| 813 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 808 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 814 2, kClientDataStreamId1, true, true, | 809 2, kClientDataStreamId1, true, true, |
| 815 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 810 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 816 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 811 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 817 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 812 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 818 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 813 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 819 false, true, 0, "hello!")); | 814 false, true, 0, "hello!")); |
| 820 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 815 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 821 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read | 816 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read |
| 822 | 817 |
| 823 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 818 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 824 | 819 |
| 825 CreateSession(); | 820 CreateSession(); |
| 826 test_socket_performance_watcher_factory_.set_should_notify_updated_rtt(false); | 821 test_socket_performance_watcher_factory_.set_should_notify_updated_rtt(false); |
| 827 | 822 |
| 828 EXPECT_FALSE( | 823 EXPECT_FALSE( |
| 829 test_socket_performance_watcher_factory_.rtt_notification_received()); | 824 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 830 SendRequestAndExpectQuicResponse("hello!"); | 825 SendRequestAndExpectQuicResponse("hello!"); |
| 831 EXPECT_FALSE( | 826 EXPECT_FALSE( |
| 832 test_socket_performance_watcher_factory_.rtt_notification_received()); | 827 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 833 } | 828 } |
| 834 | 829 |
| 835 TEST_P(QuicNetworkTransactionTest, ForceQuic) { | 830 TEST_P(QuicNetworkTransactionTest, ForceQuic) { |
| 836 params_.origins_to_force_quic_on.insert( | 831 params_.origins_to_force_quic_on.insert( |
| 837 HostPortPair::FromString("mail.example.org:443")); | 832 HostPortPair::FromString("mail.example.org:443")); |
| 838 | 833 |
| 839 MockQuicData mock_quic_data; | 834 MockQuicData mock_quic_data; |
| 840 QuicStreamOffset header_stream_offset = 0; | 835 QuicStreamOffset header_stream_offset = 0; |
| 841 mock_quic_data.AddWrite(ConstructSettingsPacket( | 836 mock_quic_data.AddWrite( |
| 842 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 837 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 843 &header_stream_offset)); | |
| 844 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 838 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 845 2, kClientDataStreamId1, true, true, | 839 2, kClientDataStreamId1, true, true, |
| 846 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 840 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 847 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 841 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 848 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 842 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 849 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 843 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 850 false, true, 0, "hello!")); | 844 false, true, 0, "hello!")); |
| 851 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 845 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 852 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read | 846 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read |
| 853 | 847 |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 896 EXPECT_EQ(3, log_stream_id); | 890 EXPECT_EQ(3, log_stream_id); |
| 897 } | 891 } |
| 898 | 892 |
| 899 TEST_P(QuicNetworkTransactionTest, ForceQuicForAll) { | 893 TEST_P(QuicNetworkTransactionTest, ForceQuicForAll) { |
| 900 params_.origins_to_force_quic_on.insert(HostPortPair()); | 894 params_.origins_to_force_quic_on.insert(HostPortPair()); |
| 901 | 895 |
| 902 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); | 896 AddQuicAlternateProtocolMapping(MockCryptoClientStream::CONFIRM_HANDSHAKE); |
| 903 | 897 |
| 904 MockQuicData mock_quic_data; | 898 MockQuicData mock_quic_data; |
| 905 QuicStreamOffset header_stream_offset = 0; | 899 QuicStreamOffset header_stream_offset = 0; |
| 906 mock_quic_data.AddWrite(ConstructSettingsPacket( | 900 mock_quic_data.AddWrite( |
| 907 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 901 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 908 &header_stream_offset)); | |
| 909 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 902 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 910 2, kClientDataStreamId1, true, true, | 903 2, kClientDataStreamId1, true, true, |
| 911 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 904 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 912 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 905 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 913 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 906 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 914 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 907 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 915 false, true, 0, "hello!")); | 908 false, true, 0, "hello!")); |
| 916 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 909 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 917 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read | 910 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read |
| 918 | 911 |
| 919 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 912 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 920 | 913 |
| 921 CreateSession(); | 914 CreateSession(); |
| 922 | 915 |
| 923 SendRequestAndExpectQuicResponse("hello!"); | 916 SendRequestAndExpectQuicResponse("hello!"); |
| 924 EXPECT_TRUE( | 917 EXPECT_TRUE( |
| 925 test_socket_performance_watcher_factory_.rtt_notification_received()); | 918 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 926 } | 919 } |
| 927 | 920 |
| 928 TEST_P(QuicNetworkTransactionTest, QuicProxy) { | 921 TEST_P(QuicNetworkTransactionTest, QuicProxy) { |
| 929 params_.enable_quic = true; | 922 params_.enable_quic = true; |
| 930 proxy_service_ = | 923 proxy_service_ = |
| 931 ProxyService::CreateFixedFromPacResult("QUIC mail.example.org:70"); | 924 ProxyService::CreateFixedFromPacResult("QUIC mail.example.org:70"); |
| 932 | 925 |
| 933 MockQuicData mock_quic_data; | 926 MockQuicData mock_quic_data; |
| 934 QuicStreamOffset header_stream_offset = 0; | 927 QuicStreamOffset header_stream_offset = 0; |
| 935 mock_quic_data.AddWrite(ConstructSettingsPacket( | 928 mock_quic_data.AddWrite( |
| 936 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 929 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 937 &header_stream_offset)); | |
| 938 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 930 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 939 2, kClientDataStreamId1, true, true, | 931 2, kClientDataStreamId1, true, true, |
| 940 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); | 932 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); |
| 941 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 933 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 942 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 934 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 943 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 935 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 944 false, true, 0, "hello!")); | 936 false, true, 0, "hello!")); |
| 945 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 937 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 946 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 938 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 947 mock_quic_data.AddRead(ASYNC, 0); // EOF | 939 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| (...skipping 20 matching lines...) Expand all Loading... |
| 968 const std::string origin_host = "mail.example.com"; | 960 const std::string origin_host = "mail.example.com"; |
| 969 const std::string proxy_host = "www.example.org"; | 961 const std::string proxy_host = "www.example.org"; |
| 970 | 962 |
| 971 params_.enable_quic = true; | 963 params_.enable_quic = true; |
| 972 proxy_service_ = | 964 proxy_service_ = |
| 973 ProxyService::CreateFixedFromPacResult("QUIC " + proxy_host + ":70"); | 965 ProxyService::CreateFixedFromPacResult("QUIC " + proxy_host + ":70"); |
| 974 | 966 |
| 975 client_maker_.set_hostname(origin_host); | 967 client_maker_.set_hostname(origin_host); |
| 976 MockQuicData mock_quic_data; | 968 MockQuicData mock_quic_data; |
| 977 QuicStreamOffset header_stream_offset = 0; | 969 QuicStreamOffset header_stream_offset = 0; |
| 978 mock_quic_data.AddWrite(ConstructSettingsPacket( | 970 mock_quic_data.AddWrite( |
| 979 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 971 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 980 &header_stream_offset)); | |
| 981 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 972 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 982 2, kClientDataStreamId1, true, true, | 973 2, kClientDataStreamId1, true, true, |
| 983 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); | 974 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); |
| 984 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 975 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 985 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 976 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 986 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 977 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 987 false, true, 0, "hello!")); | 978 false, true, 0, "hello!")); |
| 988 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 979 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 989 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 980 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 990 mock_quic_data.AddRead(ASYNC, 0); | 981 mock_quic_data.AddRead(ASYNC, 0); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1022 // valid for the origin but not the alternative, that should work too. | 1013 // valid for the origin but not the alternative, that should work too. |
| 1023 EXPECT_TRUE(cert->VerifyNameMatch(origin.host(), false)); | 1014 EXPECT_TRUE(cert->VerifyNameMatch(origin.host(), false)); |
| 1024 EXPECT_TRUE(cert->VerifyNameMatch(alternative.host(), false)); | 1015 EXPECT_TRUE(cert->VerifyNameMatch(alternative.host(), false)); |
| 1025 ProofVerifyDetailsChromium verify_details; | 1016 ProofVerifyDetailsChromium verify_details; |
| 1026 verify_details.cert_verify_result.verified_cert = cert; | 1017 verify_details.cert_verify_result.verified_cert = cert; |
| 1027 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); | 1018 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details); |
| 1028 | 1019 |
| 1029 client_maker_.set_hostname(origin.host()); | 1020 client_maker_.set_hostname(origin.host()); |
| 1030 MockQuicData mock_quic_data; | 1021 MockQuicData mock_quic_data; |
| 1031 QuicStreamOffset header_stream_offset = 0; | 1022 QuicStreamOffset header_stream_offset = 0; |
| 1032 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1023 mock_quic_data.AddWrite( |
| 1033 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1024 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1034 &header_stream_offset)); | |
| 1035 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1025 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1036 2, kClientDataStreamId1, true, true, | 1026 2, kClientDataStreamId1, true, true, |
| 1037 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1027 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1038 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 1028 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 1039 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 1029 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 1040 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 1030 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 1041 false, true, 0, "hello!")); | 1031 false, true, 0, "hello!")); |
| 1042 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 1032 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 1043 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 1033 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 1044 mock_quic_data.AddRead(ASYNC, 0); | 1034 mock_quic_data.AddRead(ASYNC, 0); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1065 url::SchemeHostPort server(request_.url); | 1055 url::SchemeHostPort server(request_.url); |
| 1066 AlternativeService alternative_service(kProtoQUIC, kDefaultServerHostName, | 1056 AlternativeService alternative_service(kProtoQUIC, kDefaultServerHostName, |
| 1067 443); | 1057 443); |
| 1068 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); | 1058 base::Time expiration = base::Time::Now() + base::TimeDelta::FromDays(1); |
| 1069 http_server_properties_.SetAlternativeService(server, alternative_service, | 1059 http_server_properties_.SetAlternativeService(server, alternative_service, |
| 1070 expiration); | 1060 expiration); |
| 1071 | 1061 |
| 1072 // First try: alternative job uses QUIC, gets 421 Misdirected Request error. | 1062 // First try: alternative job uses QUIC, gets 421 Misdirected Request error. |
| 1073 MockQuicData mock_quic_data; | 1063 MockQuicData mock_quic_data; |
| 1074 QuicStreamOffset request_header_offset = 0; | 1064 QuicStreamOffset request_header_offset = 0; |
| 1075 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1065 mock_quic_data.AddWrite( |
| 1076 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1066 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 1077 &request_header_offset)); | |
| 1078 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1067 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1079 2, kClientDataStreamId1, true, true, | 1068 2, kClientDataStreamId1, true, true, |
| 1080 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); | 1069 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); |
| 1081 mock_quic_data.AddRead( | 1070 mock_quic_data.AddRead( |
| 1082 ConstructServerResponseHeadersPacket(1, kClientDataStreamId1, false, true, | 1071 ConstructServerResponseHeadersPacket(1, kClientDataStreamId1, false, true, |
| 1083 GetResponseHeaders("421"), nullptr)); | 1072 GetResponseHeaders("421"), nullptr)); |
| 1084 mock_quic_data.AddWrite(ConstructClientAckAndRstPacket( | 1073 mock_quic_data.AddWrite(ConstructClientAckAndRstPacket( |
| 1085 3, kClientDataStreamId1, QUIC_STREAM_CANCELLED, 1, 1, 1)); | 1074 3, kClientDataStreamId1, QUIC_STREAM_CANCELLED, 1, 1, 1)); |
| 1086 mock_quic_data.AddRead(ASYNC, OK); | 1075 mock_quic_data.AddRead(ASYNC, OK); |
| 1087 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 1076 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1115 CheckResponsePort(&trans, 443); | 1104 CheckResponsePort(&trans, 443); |
| 1116 CheckResponseData(&trans, "hello!"); | 1105 CheckResponseData(&trans, "hello!"); |
| 1117 } | 1106 } |
| 1118 | 1107 |
| 1119 TEST_P(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) { | 1108 TEST_P(QuicNetworkTransactionTest, ForceQuicWithErrorConnecting) { |
| 1120 params_.origins_to_force_quic_on.insert( | 1109 params_.origins_to_force_quic_on.insert( |
| 1121 HostPortPair::FromString("mail.example.org:443")); | 1110 HostPortPair::FromString("mail.example.org:443")); |
| 1122 | 1111 |
| 1123 MockQuicData mock_quic_data1; | 1112 MockQuicData mock_quic_data1; |
| 1124 QuicStreamOffset header_stream_offset = 0; | 1113 QuicStreamOffset header_stream_offset = 0; |
| 1125 mock_quic_data1.AddWrite(ConstructSettingsPacket( | 1114 mock_quic_data1.AddWrite( |
| 1126 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1115 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1127 &header_stream_offset)); | |
| 1128 mock_quic_data1.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); | 1116 mock_quic_data1.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); |
| 1129 MockQuicData mock_quic_data2; | 1117 MockQuicData mock_quic_data2; |
| 1130 header_stream_offset = 0; | 1118 header_stream_offset = 0; |
| 1131 mock_quic_data2.AddWrite(ConstructSettingsPacket( | 1119 mock_quic_data2.AddWrite( |
| 1132 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1120 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1133 &header_stream_offset)); | |
| 1134 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); | 1121 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); |
| 1135 mock_quic_data2.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); | 1122 mock_quic_data2.AddRead(ASYNC, ERR_SOCKET_NOT_CONNECTED); |
| 1136 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); | 1123 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details_); |
| 1137 | 1124 |
| 1138 mock_quic_data1.AddSocketDataToFactory(&socket_factory_); | 1125 mock_quic_data1.AddSocketDataToFactory(&socket_factory_); |
| 1139 mock_quic_data2.AddSocketDataToFactory(&socket_factory_); | 1126 mock_quic_data2.AddSocketDataToFactory(&socket_factory_); |
| 1140 | 1127 |
| 1141 CreateSession(); | 1128 CreateSession(); |
| 1142 | 1129 |
| 1143 EXPECT_EQ(0U, test_socket_performance_watcher_factory_.watcher_count()); | 1130 EXPECT_EQ(0U, test_socket_performance_watcher_factory_.watcher_count()); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 1166 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 1180 MockRead(ASYNC, OK)}; | 1167 MockRead(ASYNC, OK)}; |
| 1181 | 1168 |
| 1182 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, | 1169 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, |
| 1183 0); | 1170 0); |
| 1184 socket_factory_.AddSocketDataProvider(&http_data); | 1171 socket_factory_.AddSocketDataProvider(&http_data); |
| 1185 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 1172 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 1186 | 1173 |
| 1187 MockQuicData mock_quic_data; | 1174 MockQuicData mock_quic_data; |
| 1188 QuicStreamOffset header_stream_offset = 0; | 1175 QuicStreamOffset header_stream_offset = 0; |
| 1189 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1176 mock_quic_data.AddWrite( |
| 1190 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1177 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1191 &header_stream_offset)); | |
| 1192 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1178 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1193 2, kClientDataStreamId1, true, true, | 1179 2, kClientDataStreamId1, true, true, |
| 1194 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1180 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1195 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 1181 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 1196 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 1182 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 1197 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 1183 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 1198 false, true, 0, "hello!")); | 1184 false, true, 0, "hello!")); |
| 1199 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 1185 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 1200 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 1186 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 1201 mock_quic_data.AddRead(ASYNC, 0); // EOF | 1187 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| (...skipping 16 matching lines...) Expand all Loading... |
| 1218 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 1204 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 1219 MockRead(ASYNC, OK)}; | 1205 MockRead(ASYNC, OK)}; |
| 1220 | 1206 |
| 1221 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, | 1207 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, |
| 1222 0); | 1208 0); |
| 1223 socket_factory_.AddSocketDataProvider(&http_data); | 1209 socket_factory_.AddSocketDataProvider(&http_data); |
| 1224 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 1210 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 1225 | 1211 |
| 1226 MockQuicData mock_quic_data; | 1212 MockQuicData mock_quic_data; |
| 1227 QuicStreamOffset header_stream_offset = 0; | 1213 QuicStreamOffset header_stream_offset = 0; |
| 1228 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1214 mock_quic_data.AddWrite( |
| 1229 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1215 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1230 &header_stream_offset)); | |
| 1231 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1216 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1232 2, kClientDataStreamId1, true, true, | 1217 2, kClientDataStreamId1, true, true, |
| 1233 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1218 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1234 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 1219 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 1235 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 1220 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 1236 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 1221 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 1237 false, true, 0, "hello!")); | 1222 false, true, 0, "hello!")); |
| 1238 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 1223 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 1239 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 1224 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 1240 mock_quic_data.AddRead(ASYNC, 0); // EOF | 1225 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1323 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 1308 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 1324 MockRead(ASYNC, OK)}; | 1309 MockRead(ASYNC, OK)}; |
| 1325 | 1310 |
| 1326 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, | 1311 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, |
| 1327 0); | 1312 0); |
| 1328 socket_factory_.AddSocketDataProvider(&http_data); | 1313 socket_factory_.AddSocketDataProvider(&http_data); |
| 1329 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 1314 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 1330 | 1315 |
| 1331 MockQuicData mock_quic_data; | 1316 MockQuicData mock_quic_data; |
| 1332 QuicStreamOffset header_stream_offset = 0; | 1317 QuicStreamOffset header_stream_offset = 0; |
| 1333 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1318 mock_quic_data.AddWrite( |
| 1334 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1319 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1335 &header_stream_offset)); | |
| 1336 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1320 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1337 2, kClientDataStreamId1, true, true, | 1321 2, kClientDataStreamId1, true, true, |
| 1338 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1322 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1339 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 1323 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 1340 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 1324 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 1341 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 1325 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 1342 false, true, 0, "hello!")); | 1326 false, true, 0, "hello!")); |
| 1343 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 1327 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 1344 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 1328 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 1345 mock_quic_data.AddRead(ASYNC, 0); // EOF | 1329 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| 1346 | 1330 |
| 1347 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 1331 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 1348 | 1332 |
| 1349 AddHangingNonAlternateProtocolSocketData(); | 1333 AddHangingNonAlternateProtocolSocketData(); |
| 1350 CreateSession(); | 1334 CreateSession(); |
| 1351 | 1335 |
| 1352 SendRequestAndExpectHttpResponse("hello world"); | 1336 SendRequestAndExpectHttpResponse("hello world"); |
| 1353 SendRequestAndExpectQuicResponse("hello!"); | 1337 SendRequestAndExpectQuicResponse("hello!"); |
| 1354 } | 1338 } |
| 1355 | 1339 |
| 1356 TEST_P(QuicNetworkTransactionTest, GoAwayWithConnectionMigrationOnPortsOnly) { | 1340 TEST_P(QuicNetworkTransactionTest, GoAwayWithConnectionMigrationOnPortsOnly) { |
| 1357 MockQuicData mock_quic_data; | 1341 MockQuicData mock_quic_data; |
| 1358 QuicStreamOffset header_stream_offset = 0; | 1342 QuicStreamOffset header_stream_offset = 0; |
| 1359 mock_quic_data.AddWrite(ConstructSettingsPacket( | 1343 mock_quic_data.AddWrite( |
| 1360 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 1344 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 1361 &header_stream_offset)); | |
| 1362 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1345 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1363 2, kClientDataStreamId1, true, true, | 1346 2, kClientDataStreamId1, true, true, |
| 1364 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1347 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1365 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 1348 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 1366 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 1349 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 1367 // Read a GoAway packet with | 1350 // Read a GoAway packet with |
| 1368 // QuicErrorCode: QUIC_ERROR_MIGRATING_PORT from the peer. | 1351 // QuicErrorCode: QUIC_ERROR_MIGRATING_PORT from the peer. |
| 1369 mock_quic_data.AddSynchronousRead(ConstructServerGoAwayPacket( | 1352 mock_quic_data.AddSynchronousRead(ConstructServerGoAwayPacket( |
| 1370 2, QUIC_ERROR_MIGRATING_PORT, | 1353 2, QUIC_ERROR_MIGRATING_PORT, |
| 1371 "connection migration with port change only")); | 1354 "connection migration with port change only")); |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1430 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 1413 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 1431 | 1414 |
| 1432 std::string request_data; | 1415 std::string request_data; |
| 1433 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 1416 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 1434 1, kClientDataStreamId1, true, true, priority, | 1417 1, kClientDataStreamId1, true, true, priority, |
| 1435 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 1418 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 1436 &request_data)); | 1419 &request_data)); |
| 1437 | 1420 |
| 1438 std::string settings_data; | 1421 std::string settings_data; |
| 1439 QuicStreamOffset settings_offset = header_stream_offset; | 1422 QuicStreamOffset settings_offset = header_stream_offset; |
| 1440 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 1423 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 1441 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 1424 2, &header_stream_offset, &settings_data)); |
| 1442 &header_stream_offset, &settings_data)); | |
| 1443 // TLP 1 | 1425 // TLP 1 |
| 1444 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, | 1426 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, |
| 1445 false, 0, request_data)); | 1427 false, 0, request_data)); |
| 1446 // TLP 2 | 1428 // TLP 2 |
| 1447 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1429 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 1448 4, kHeadersStreamId, true, false, settings_offset, settings_data)); | 1430 4, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 1449 // RTO 1 | 1431 // RTO 1 |
| 1450 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, | 1432 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, |
| 1451 false, 0, request_data)); | 1433 false, 0, request_data)); |
| 1452 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1434 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1521 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 1503 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 1522 | 1504 |
| 1523 std::string request_data; | 1505 std::string request_data; |
| 1524 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 1506 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 1525 1, kClientDataStreamId1, true, true, priority, | 1507 1, kClientDataStreamId1, true, true, priority, |
| 1526 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 1508 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 1527 &request_data)); | 1509 &request_data)); |
| 1528 | 1510 |
| 1529 std::string settings_data; | 1511 std::string settings_data; |
| 1530 QuicStreamOffset settings_offset = header_stream_offset; | 1512 QuicStreamOffset settings_offset = header_stream_offset; |
| 1531 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 1513 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 1532 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 1514 2, &header_stream_offset, &settings_data)); |
| 1533 &header_stream_offset, &settings_data)); | |
| 1534 // TLP 1 | 1515 // TLP 1 |
| 1535 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, | 1516 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, |
| 1536 false, 0, request_data)); | 1517 false, 0, request_data)); |
| 1537 // TLP 2 | 1518 // TLP 2 |
| 1538 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1519 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 1539 4, kHeadersStreamId, true, false, settings_offset, settings_data)); | 1520 4, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 1540 // RTO 1 | 1521 // RTO 1 |
| 1541 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, | 1522 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, |
| 1542 false, 0, request_data)); | 1523 false, 0, request_data)); |
| 1543 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1524 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1621 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 1602 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 1622 | 1603 |
| 1623 std::string request_data; | 1604 std::string request_data; |
| 1624 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 1605 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 1625 1, kClientDataStreamId1, true, true, priority, | 1606 1, kClientDataStreamId1, true, true, priority, |
| 1626 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 1607 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 1627 &request_data)); | 1608 &request_data)); |
| 1628 | 1609 |
| 1629 std::string settings_data; | 1610 std::string settings_data; |
| 1630 QuicStreamOffset settings_offset = header_stream_offset; | 1611 QuicStreamOffset settings_offset = header_stream_offset; |
| 1631 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 1612 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 1632 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 1613 2, &header_stream_offset, &settings_data)); |
| 1633 &header_stream_offset, &settings_data)); | |
| 1634 | 1614 |
| 1635 quic_data.AddWrite(client_maker_.MakeRstPacket(3, true, kClientDataStreamId1, | 1615 quic_data.AddWrite(client_maker_.MakeRstPacket(3, true, kClientDataStreamId1, |
| 1636 QUIC_STREAM_CANCELLED)); | 1616 QUIC_STREAM_CANCELLED)); |
| 1637 // TLP 1 | 1617 // TLP 1 |
| 1638 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, true, | 1618 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, true, |
| 1639 false, 0, request_data)); | 1619 false, 0, request_data)); |
| 1640 // TLP 2 | 1620 // TLP 2 |
| 1641 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1621 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 1642 5, kHeadersStreamId, true, false, settings_offset, settings_data)); | 1622 5, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 1643 // RTO 1 | 1623 // RTO 1 |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1717 | 1697 |
| 1718 // Verify that if a QUIC protocol error occurs after the handshake is confirmed | 1698 // Verify that if a QUIC protocol error occurs after the handshake is confirmed |
| 1719 // the request fails with QUIC_PROTOCOL_ERROR. | 1699 // the request fails with QUIC_PROTOCOL_ERROR. |
| 1720 TEST_P(QuicNetworkTransactionTest, ProtocolErrorAfterHandshakeConfirmed) { | 1700 TEST_P(QuicNetworkTransactionTest, ProtocolErrorAfterHandshakeConfirmed) { |
| 1721 // The request will initially go out over QUIC. | 1701 // The request will initially go out over QUIC. |
| 1722 MockQuicData quic_data; | 1702 MockQuicData quic_data; |
| 1723 QuicStreamOffset header_stream_offset = 0; | 1703 QuicStreamOffset header_stream_offset = 0; |
| 1724 quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 1704 quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 1725 1, kClientDataStreamId1, true, true, | 1705 1, kClientDataStreamId1, true, true, |
| 1726 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 1706 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 1727 quic_data.AddWrite(ConstructSettingsPacket(2, SETTINGS_MAX_HEADER_LIST_SIZE, | 1707 quic_data.AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset)); |
| 1728 kDefaultMaxUncompressedHeaderSize, | |
| 1729 &header_stream_offset)); | |
| 1730 // Peer sending data from an non-existing stream causes this end to raise | 1708 // Peer sending data from an non-existing stream causes this end to raise |
| 1731 // error and close connection. | 1709 // error and close connection. |
| 1732 quic_data.AddRead( | 1710 quic_data.AddRead( |
| 1733 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); | 1711 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); |
| 1734 std::string quic_error_details = "Data for nonexistent stream"; | 1712 std::string quic_error_details = "Data for nonexistent stream"; |
| 1735 quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( | 1713 quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( |
| 1736 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, | 1714 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, |
| 1737 quic_error_details)); | 1715 quic_error_details)); |
| 1738 quic_data.AddSocketDataToFactory(&socket_factory_); | 1716 quic_data.AddSocketDataToFactory(&socket_factory_); |
| 1739 | 1717 |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1792 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 1770 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 1793 | 1771 |
| 1794 std::string request_data; | 1772 std::string request_data; |
| 1795 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 1773 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 1796 1, kClientDataStreamId1, true, true, priority, | 1774 1, kClientDataStreamId1, true, true, priority, |
| 1797 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 1775 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 1798 &request_data)); | 1776 &request_data)); |
| 1799 | 1777 |
| 1800 std::string settings_data; | 1778 std::string settings_data; |
| 1801 QuicStreamOffset settings_offset = header_stream_offset; | 1779 QuicStreamOffset settings_offset = header_stream_offset; |
| 1802 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 1780 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 1803 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 1781 2, &header_stream_offset, &settings_data)); |
| 1804 &header_stream_offset, &settings_data)); | |
| 1805 // TLP 1 | 1782 // TLP 1 |
| 1806 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, | 1783 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, |
| 1807 false, 0, request_data)); | 1784 false, 0, request_data)); |
| 1808 // TLP 2 | 1785 // TLP 2 |
| 1809 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1786 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 1810 4, kHeadersStreamId, true, false, settings_offset, settings_data)); | 1787 4, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 1811 // RTO 1 | 1788 // RTO 1 |
| 1812 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, | 1789 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, |
| 1813 false, 0, request_data)); | 1790 false, 0, request_data)); |
| 1814 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1791 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1910 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 1887 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 1911 | 1888 |
| 1912 std::string request_data; | 1889 std::string request_data; |
| 1913 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 1890 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 1914 1, kClientDataStreamId1, true, true, priority, | 1891 1, kClientDataStreamId1, true, true, priority, |
| 1915 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 1892 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 1916 &request_data)); | 1893 &request_data)); |
| 1917 | 1894 |
| 1918 std::string settings_data; | 1895 std::string settings_data; |
| 1919 QuicStreamOffset settings_offset = header_stream_offset; | 1896 QuicStreamOffset settings_offset = header_stream_offset; |
| 1920 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 1897 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 1921 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 1898 2, &header_stream_offset, &settings_data)); |
| 1922 &header_stream_offset, &settings_data)); | |
| 1923 // TLP 1 | 1899 // TLP 1 |
| 1924 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, | 1900 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, |
| 1925 false, 0, request_data)); | 1901 false, 0, request_data)); |
| 1926 // TLP 2 | 1902 // TLP 2 |
| 1927 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1903 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 1928 4, kHeadersStreamId, true, false, settings_offset, settings_data)); | 1904 4, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 1929 // RTO 1 | 1905 // RTO 1 |
| 1930 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, | 1906 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, |
| 1931 false, 0, request_data)); | 1907 false, 0, request_data)); |
| 1932 quic_data.AddWrite(client_maker_.MakeDataPacket( | 1908 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2031 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 2007 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 2032 | 2008 |
| 2033 std::string request_data; | 2009 std::string request_data; |
| 2034 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 2010 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 2035 1, kClientDataStreamId1, true, true, priority, | 2011 1, kClientDataStreamId1, true, true, priority, |
| 2036 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 2012 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 2037 &request_data)); | 2013 &request_data)); |
| 2038 | 2014 |
| 2039 std::string settings_data; | 2015 std::string settings_data; |
| 2040 QuicStreamOffset settings_offset = header_stream_offset; | 2016 QuicStreamOffset settings_offset = header_stream_offset; |
| 2041 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 2017 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 2042 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 2018 2, &header_stream_offset, &settings_data)); |
| 2043 &header_stream_offset, &settings_data)); | |
| 2044 | 2019 |
| 2045 quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2020 quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2046 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 2021 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 2047 // quic_data.AddWrite(ConstructClientAckPacket(3, 1, 1)); | 2022 // quic_data.AddWrite(ConstructClientAckPacket(3, 1, 1)); |
| 2048 quic_data.AddWrite(ConstructClientAckPacket( | 2023 quic_data.AddWrite(ConstructClientAckPacket( |
| 2049 3, 1, 1, 1, QuicTime::Delta::FromMilliseconds(25))); | 2024 3, 1, 1, 1, QuicTime::Delta::FromMilliseconds(25))); |
| 2050 | 2025 |
| 2051 // TLP 1 | 2026 // TLP 1 |
| 2052 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, false, | 2027 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, false, |
| 2053 false, 0, request_data)); | 2028 false, 0, request_data)); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2143 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 2118 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 2144 | 2119 |
| 2145 std::string request_data; | 2120 std::string request_data; |
| 2146 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 2121 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 2147 1, kClientDataStreamId1, true, true, priority, | 2122 1, kClientDataStreamId1, true, true, priority, |
| 2148 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 2123 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 2149 &request_data)); | 2124 &request_data)); |
| 2150 | 2125 |
| 2151 std::string settings_data; | 2126 std::string settings_data; |
| 2152 QuicStreamOffset settings_offset = header_stream_offset; | 2127 QuicStreamOffset settings_offset = header_stream_offset; |
| 2153 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 2128 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 2154 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 2129 2, &header_stream_offset, &settings_data)); |
| 2155 &header_stream_offset, &settings_data)); | |
| 2156 // TLP 1 | 2130 // TLP 1 |
| 2157 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, | 2131 quic_data.AddWrite(client_maker_.MakeDataPacket(3, kHeadersStreamId, true, |
| 2158 false, 0, request_data)); | 2132 false, 0, request_data)); |
| 2159 // TLP 2 | 2133 // TLP 2 |
| 2160 quic_data.AddWrite(client_maker_.MakeDataPacket( | 2134 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 2161 4, kHeadersStreamId, true, false, settings_offset, settings_data)); | 2135 4, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 2162 // RTO 1 | 2136 // RTO 1 |
| 2163 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, | 2137 quic_data.AddWrite(client_maker_.MakeDataPacket(5, kHeadersStreamId, true, |
| 2164 false, 0, request_data)); | 2138 false, 0, request_data)); |
| 2165 quic_data.AddWrite(client_maker_.MakeDataPacket( | 2139 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2269 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); | 2243 ConvertRequestPriorityToQuicPriority(DEFAULT_PRIORITY); |
| 2270 | 2244 |
| 2271 std::string request_data; | 2245 std::string request_data; |
| 2272 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( | 2246 quic_data.AddWrite(client_maker_.MakeRequestHeadersPacketAndSaveData( |
| 2273 1, kClientDataStreamId1, true, true, priority, | 2247 1, kClientDataStreamId1, true, true, priority, |
| 2274 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, | 2248 GetRequestHeaders("GET", "https", "/"), nullptr, &header_stream_offset, |
| 2275 &request_data)); | 2249 &request_data)); |
| 2276 | 2250 |
| 2277 std::string settings_data; | 2251 std::string settings_data; |
| 2278 QuicStreamOffset settings_offset = header_stream_offset; | 2252 QuicStreamOffset settings_offset = header_stream_offset; |
| 2279 quic_data.AddWrite(client_maker_.MakeSettingsPacketAndSaveData( | 2253 quic_data.AddWrite(client_maker_.MakeInitialSettingsPacketAndSaveData( |
| 2280 2, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, true, | 2254 2, &header_stream_offset, &settings_data)); |
| 2281 &header_stream_offset, &settings_data)); | |
| 2282 | 2255 |
| 2283 quic_data.AddWrite(client_maker_.MakeRstPacket(3, true, kClientDataStreamId1, | 2256 quic_data.AddWrite(client_maker_.MakeRstPacket(3, true, kClientDataStreamId1, |
| 2284 QUIC_STREAM_CANCELLED)); | 2257 QUIC_STREAM_CANCELLED)); |
| 2285 // TLP 1 | 2258 // TLP 1 |
| 2286 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, true, | 2259 quic_data.AddWrite(client_maker_.MakeDataPacket(4, kHeadersStreamId, true, |
| 2287 false, 0, request_data)); | 2260 false, 0, request_data)); |
| 2288 // TLP 2 | 2261 // TLP 2 |
| 2289 quic_data.AddWrite(client_maker_.MakeDataPacket( | 2262 quic_data.AddWrite(client_maker_.MakeDataPacket( |
| 2290 5, kHeadersStreamId, true, false, settings_offset, settings_data)); | 2263 5, kHeadersStreamId, true, false, settings_offset, settings_data)); |
| 2291 // RTO 1 | 2264 // RTO 1 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2370 ProtocolErrorAfterHandshakeConfirmedThenBroken) { | 2343 ProtocolErrorAfterHandshakeConfirmedThenBroken) { |
| 2371 params_.retry_without_alt_svc_on_quic_errors = true; | 2344 params_.retry_without_alt_svc_on_quic_errors = true; |
| 2372 params_.quic_idle_connection_timeout_seconds = 5; | 2345 params_.quic_idle_connection_timeout_seconds = 5; |
| 2373 | 2346 |
| 2374 // The request will initially go out over QUIC. | 2347 // The request will initially go out over QUIC. |
| 2375 MockQuicData quic_data; | 2348 MockQuicData quic_data; |
| 2376 QuicStreamOffset header_stream_offset = 0; | 2349 QuicStreamOffset header_stream_offset = 0; |
| 2377 quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2350 quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2378 1, kClientDataStreamId1, true, true, | 2351 1, kClientDataStreamId1, true, true, |
| 2379 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 2352 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 2380 quic_data.AddWrite(ConstructSettingsPacket(2, SETTINGS_MAX_HEADER_LIST_SIZE, | 2353 quic_data.AddWrite(ConstructInitialSettingsPacket(2, &header_stream_offset)); |
| 2381 kDefaultMaxUncompressedHeaderSize, | |
| 2382 &header_stream_offset)); | |
| 2383 // Peer sending data from an non-existing stream causes this end to raise | 2354 // Peer sending data from an non-existing stream causes this end to raise |
| 2384 // error and close connection. | 2355 // error and close connection. |
| 2385 quic_data.AddRead( | 2356 quic_data.AddRead( |
| 2386 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); | 2357 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); |
| 2387 std::string quic_error_details = "Data for nonexistent stream"; | 2358 std::string quic_error_details = "Data for nonexistent stream"; |
| 2388 quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( | 2359 quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( |
| 2389 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, | 2360 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, |
| 2390 quic_error_details)); | 2361 quic_error_details)); |
| 2391 quic_data.AddSocketDataToFactory(&socket_factory_); | 2362 quic_data.AddSocketDataToFactory(&socket_factory_); |
| 2392 | 2363 |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2493 0); | 2464 0); |
| 2494 socket_factory_.AddSocketDataProvider(&http_data); | 2465 socket_factory_.AddSocketDataProvider(&http_data); |
| 2495 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 2466 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 2496 | 2467 |
| 2497 QuicStreamOffset request_header_offset = 0; | 2468 QuicStreamOffset request_header_offset = 0; |
| 2498 QuicStreamOffset response_header_offset = 0; | 2469 QuicStreamOffset response_header_offset = 0; |
| 2499 // First QUIC request data. | 2470 // First QUIC request data. |
| 2500 // Open a session to foo.example.org:443 using the first entry of the | 2471 // Open a session to foo.example.org:443 using the first entry of the |
| 2501 // alternative service list. | 2472 // alternative service list. |
| 2502 MockQuicData mock_quic_data; | 2473 MockQuicData mock_quic_data; |
| 2503 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2474 mock_quic_data.AddWrite( |
| 2504 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2475 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 2505 &request_header_offset)); | |
| 2506 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2476 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2507 2, kClientDataStreamId1, true, true, | 2477 2, kClientDataStreamId1, true, true, |
| 2508 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); | 2478 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); |
| 2509 | 2479 |
| 2510 std::string alt_svc_list = | 2480 std::string alt_svc_list = |
| 2511 "quic=\"mail.example.org:444\", quic=\"foo.example.org:443\", " | 2481 "quic=\"mail.example.org:444\", quic=\"foo.example.org:443\", " |
| 2512 "quic=\"bar.example.org:445\""; | 2482 "quic=\"bar.example.org:445\""; |
| 2513 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2483 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2514 1, kClientDataStreamId1, false, false, | 2484 1, kClientDataStreamId1, false, false, |
| 2515 GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset)); | 2485 GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset)); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2548 // used. | 2518 // used. |
| 2549 TEST_P(QuicNetworkTransactionTest, UseExistingQUICAlternativeProxy) { | 2519 TEST_P(QuicNetworkTransactionTest, UseExistingQUICAlternativeProxy) { |
| 2550 base::HistogramTester histogram_tester; | 2520 base::HistogramTester histogram_tester; |
| 2551 | 2521 |
| 2552 QuicStreamOffset request_header_offset = 0; | 2522 QuicStreamOffset request_header_offset = 0; |
| 2553 QuicStreamOffset response_header_offset = 0; | 2523 QuicStreamOffset response_header_offset = 0; |
| 2554 // First QUIC request data. | 2524 // First QUIC request data. |
| 2555 // Open a session to foo.example.org:443 using the first entry of the | 2525 // Open a session to foo.example.org:443 using the first entry of the |
| 2556 // alternative service list. | 2526 // alternative service list. |
| 2557 MockQuicData mock_quic_data; | 2527 MockQuicData mock_quic_data; |
| 2558 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2528 mock_quic_data.AddWrite( |
| 2559 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2529 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 2560 &request_header_offset)); | |
| 2561 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2530 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2562 2, kClientDataStreamId1, true, true, | 2531 2, kClientDataStreamId1, true, true, |
| 2563 GetRequestHeaders("GET", "http", "/"), &request_header_offset)); | 2532 GetRequestHeaders("GET", "http", "/"), &request_header_offset)); |
| 2564 | 2533 |
| 2565 std::string alt_svc_list; | 2534 std::string alt_svc_list; |
| 2566 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2535 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2567 1, kClientDataStreamId1, false, false, | 2536 1, kClientDataStreamId1, false, false, |
| 2568 GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset)); | 2537 GetResponseHeaders("200 OK", alt_svc_list), &response_header_offset)); |
| 2569 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2538 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2570 false, true, 0, "hello!")); | 2539 false, true, 0, "hello!")); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2615 1); | 2584 1); |
| 2616 } | 2585 } |
| 2617 | 2586 |
| 2618 // Pool to existing session with matching QuicServerId | 2587 // Pool to existing session with matching QuicServerId |
| 2619 // even if alternative service destination is different. | 2588 // even if alternative service destination is different. |
| 2620 TEST_P(QuicNetworkTransactionTest, PoolByOrigin) { | 2589 TEST_P(QuicNetworkTransactionTest, PoolByOrigin) { |
| 2621 MockQuicData mock_quic_data; | 2590 MockQuicData mock_quic_data; |
| 2622 QuicStreamOffset request_header_offset(0); | 2591 QuicStreamOffset request_header_offset(0); |
| 2623 QuicStreamOffset response_header_offset(0); | 2592 QuicStreamOffset response_header_offset(0); |
| 2624 | 2593 |
| 2625 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2594 mock_quic_data.AddWrite( |
| 2626 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2595 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 2627 &request_header_offset)); | |
| 2628 // First request. | 2596 // First request. |
| 2629 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2597 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2630 2, kClientDataStreamId1, true, true, | 2598 2, kClientDataStreamId1, true, true, |
| 2631 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); | 2599 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); |
| 2632 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2600 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2633 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 2601 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| 2634 &response_header_offset)); | 2602 &response_header_offset)); |
| 2635 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2603 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2636 false, true, 0, "hello!")); | 2604 false, true, 0, "hello!")); |
| 2637 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 2605 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2684 // matching destination is not the first one on the list. | 2652 // matching destination is not the first one on the list. |
| 2685 TEST_P(QuicNetworkTransactionTest, PoolByDestination) { | 2653 TEST_P(QuicNetworkTransactionTest, PoolByDestination) { |
| 2686 GURL origin1 = request_.url; | 2654 GURL origin1 = request_.url; |
| 2687 GURL origin2("https://www.example.org/"); | 2655 GURL origin2("https://www.example.org/"); |
| 2688 ASSERT_NE(origin1.host(), origin2.host()); | 2656 ASSERT_NE(origin1.host(), origin2.host()); |
| 2689 | 2657 |
| 2690 MockQuicData mock_quic_data; | 2658 MockQuicData mock_quic_data; |
| 2691 QuicStreamOffset request_header_offset(0); | 2659 QuicStreamOffset request_header_offset(0); |
| 2692 QuicStreamOffset response_header_offset(0); | 2660 QuicStreamOffset response_header_offset(0); |
| 2693 | 2661 |
| 2694 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2662 mock_quic_data.AddWrite( |
| 2695 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2663 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 2696 &request_header_offset)); | |
| 2697 | |
| 2698 // First request. | 2664 // First request. |
| 2699 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2665 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2700 2, kClientDataStreamId1, true, true, | 2666 2, kClientDataStreamId1, true, true, |
| 2701 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); | 2667 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); |
| 2702 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2668 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2703 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 2669 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| 2704 &response_header_offset)); | 2670 &response_header_offset)); |
| 2705 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2671 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2706 false, true, 0, "hello!")); | 2672 false, true, 0, "hello!")); |
| 2707 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 2673 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2799 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 2765 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 2800 | 2766 |
| 2801 QuicStreamOffset request_header_offset = 0; | 2767 QuicStreamOffset request_header_offset = 0; |
| 2802 QuicStreamOffset response_header_offset = 0; | 2768 QuicStreamOffset response_header_offset = 0; |
| 2803 | 2769 |
| 2804 QuicTestPacketMaker client_maker(version_, 0, &clock_, "mail.example.org", | 2770 QuicTestPacketMaker client_maker(version_, 0, &clock_, "mail.example.org", |
| 2805 Perspective::IS_CLIENT); | 2771 Perspective::IS_CLIENT); |
| 2806 server_maker_.set_hostname("www.example.org"); | 2772 server_maker_.set_hostname("www.example.org"); |
| 2807 client_maker_.set_hostname("www.example.org"); | 2773 client_maker_.set_hostname("www.example.org"); |
| 2808 MockQuicData mock_quic_data; | 2774 MockQuicData mock_quic_data; |
| 2809 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2775 mock_quic_data.AddWrite( |
| 2810 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2776 ConstructInitialSettingsPacket(1, &request_header_offset)); |
| 2811 &request_header_offset)); | |
| 2812 // First QUIC request data. | 2777 // First QUIC request data. |
| 2813 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2778 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2814 2, kClientDataStreamId1, true, true, | 2779 2, kClientDataStreamId1, true, true, |
| 2815 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); | 2780 GetRequestHeaders("GET", "https", "/"), &request_header_offset)); |
| 2816 | 2781 |
| 2817 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2782 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2818 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 2783 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| 2819 &response_header_offset)); | 2784 &response_header_offset)); |
| 2820 mock_quic_data.AddRead(ConstructServerDataPacket( | 2785 mock_quic_data.AddRead(ConstructServerDataPacket( |
| 2821 2, kClientDataStreamId1, false, true, 0, "hello from mail QUIC!")); | 2786 2, kClientDataStreamId1, false, true, 0, "hello from mail QUIC!")); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2891 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 2856 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 2892 MockRead(ASYNC, OK)}; | 2857 MockRead(ASYNC, OK)}; |
| 2893 | 2858 |
| 2894 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, | 2859 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, |
| 2895 0); | 2860 0); |
| 2896 socket_factory_.AddSocketDataProvider(&http_data); | 2861 socket_factory_.AddSocketDataProvider(&http_data); |
| 2897 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 2862 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 2898 | 2863 |
| 2899 MockQuicData mock_quic_data; | 2864 MockQuicData mock_quic_data; |
| 2900 QuicStreamOffset header_stream_offset = 0; | 2865 QuicStreamOffset header_stream_offset = 0; |
| 2901 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2866 mock_quic_data.AddWrite( |
| 2902 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2867 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 2903 &header_stream_offset)); | |
| 2904 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2868 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2905 2, kClientDataStreamId1, true, true, | 2869 2, kClientDataStreamId1, true, true, |
| 2906 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 2870 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 2907 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2871 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2908 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 2872 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 2909 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2873 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2910 false, true, 0, "hello!")); | 2874 false, true, 0, "hello!")); |
| 2911 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 2875 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 2912 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 2876 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 2913 mock_quic_data.AddRead(ASYNC, 0); // EOF | 2877 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| (...skipping 29 matching lines...) Expand all Loading... |
| 2943 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), | 2907 MockRead(SYNCHRONOUS, ERR_TEST_PEER_CLOSE_AFTER_NEXT_MOCK_READ), |
| 2944 MockRead(ASYNC, OK)}; | 2908 MockRead(ASYNC, OK)}; |
| 2945 | 2909 |
| 2946 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, | 2910 StaticSocketDataProvider http_data(http_reads, arraysize(http_reads), nullptr, |
| 2947 0); | 2911 0); |
| 2948 socket_factory_.AddSocketDataProvider(&http_data); | 2912 socket_factory_.AddSocketDataProvider(&http_data); |
| 2949 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); | 2913 socket_factory_.AddSSLSocketDataProvider(&ssl_data_); |
| 2950 | 2914 |
| 2951 MockQuicData mock_quic_data; | 2915 MockQuicData mock_quic_data; |
| 2952 QuicStreamOffset header_stream_offset = 0; | 2916 QuicStreamOffset header_stream_offset = 0; |
| 2953 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2917 mock_quic_data.AddWrite( |
| 2954 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2918 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 2955 &header_stream_offset)); | |
| 2956 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2919 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2957 2, kClientDataStreamId1, true, true, | 2920 2, kClientDataStreamId1, true, true, |
| 2958 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 2921 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 2959 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2922 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2960 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 2923 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 2961 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2924 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2962 false, true, 0, "hello!")); | 2925 false, true, 0, "hello!")); |
| 2963 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 2926 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 2964 mock_quic_data.AddRead(SYNCHRONOUS, 0); // EOF | 2927 mock_quic_data.AddRead(SYNCHRONOUS, 0); // EOF |
| 2965 | 2928 |
| 2966 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 2929 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 2967 | 2930 |
| 2968 AddHangingNonAlternateProtocolSocketData(); | 2931 AddHangingNonAlternateProtocolSocketData(); |
| 2969 CreateSession(); | 2932 CreateSession(); |
| 2970 | 2933 |
| 2971 // TODO(rtenneti): Test QUIC over HTTPS, GetSSLInfo(). | 2934 // TODO(rtenneti): Test QUIC over HTTPS, GetSSLInfo(). |
| 2972 SendRequestAndExpectHttpResponse("hello world"); | 2935 SendRequestAndExpectHttpResponse("hello world"); |
| 2973 } | 2936 } |
| 2974 | 2937 |
| 2975 // Tests that the connection to an HTTPS proxy is raced with an available | 2938 // Tests that the connection to an HTTPS proxy is raced with an available |
| 2976 // alternative proxy server. | 2939 // alternative proxy server. |
| 2977 TEST_P(QuicNetworkTransactionTest, QuicProxyWithRacing) { | 2940 TEST_P(QuicNetworkTransactionTest, QuicProxyWithRacing) { |
| 2978 base::HistogramTester histogram_tester; | 2941 base::HistogramTester histogram_tester; |
| 2979 proxy_service_ = | 2942 proxy_service_ = |
| 2980 ProxyService::CreateFixedFromPacResult("HTTPS mail.example.org:443"); | 2943 ProxyService::CreateFixedFromPacResult("HTTPS mail.example.org:443"); |
| 2981 | 2944 |
| 2982 MockQuicData mock_quic_data; | 2945 MockQuicData mock_quic_data; |
| 2983 QuicStreamOffset header_stream_offset = 0; | 2946 QuicStreamOffset header_stream_offset = 0; |
| 2984 mock_quic_data.AddWrite(ConstructSettingsPacket( | 2947 mock_quic_data.AddWrite( |
| 2985 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 2948 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 2986 &header_stream_offset)); | |
| 2987 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 2949 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 2988 2, kClientDataStreamId1, true, true, | 2950 2, kClientDataStreamId1, true, true, |
| 2989 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); | 2951 GetRequestHeaders("GET", "http", "/"), &header_stream_offset)); |
| 2990 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 2952 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 2991 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 2953 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 2992 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 2954 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 2993 false, true, 0, "hello!")); | 2955 false, true, 0, "hello!")); |
| 2994 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 2956 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 2995 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 2957 mock_quic_data.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 2996 mock_quic_data.AddRead(ASYNC, 0); // EOF | 2958 mock_quic_data.AddRead(ASYNC, 0); // EOF |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3170 | 3132 |
| 3171 request_.url = GURL("http://mail.example.org/"); | 3133 request_.url = GURL("http://mail.example.org/"); |
| 3172 CreateSession(); | 3134 CreateSession(); |
| 3173 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); | 3135 AddQuicAlternateProtocolMapping(MockCryptoClientStream::ZERO_RTT); |
| 3174 SendRequestAndExpectHttpResponse("hello world"); | 3136 SendRequestAndExpectHttpResponse("hello world"); |
| 3175 } | 3137 } |
| 3176 | 3138 |
| 3177 TEST_P(QuicNetworkTransactionTest, ZeroRTTWithConfirmationRequired) { | 3139 TEST_P(QuicNetworkTransactionTest, ZeroRTTWithConfirmationRequired) { |
| 3178 MockQuicData mock_quic_data; | 3140 MockQuicData mock_quic_data; |
| 3179 QuicStreamOffset header_stream_offset = 0; | 3141 QuicStreamOffset header_stream_offset = 0; |
| 3180 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3142 mock_quic_data.AddWrite( |
| 3181 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3143 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3182 &header_stream_offset)); | |
| 3183 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3144 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3184 2, kClientDataStreamId1, true, true, | 3145 2, kClientDataStreamId1, true, true, |
| 3185 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3146 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3186 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 3147 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 3187 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 3148 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 3188 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 3149 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 3189 false, true, 0, "hello!")); | 3150 false, true, 0, "hello!")); |
| 3190 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 3151 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 3191 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read | 3152 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more data to read |
| 3192 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 3153 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 3223 EXPECT_THAT(callback.WaitForResult(), IsOk()); | 3184 EXPECT_THAT(callback.WaitForResult(), IsOk()); |
| 3224 | 3185 |
| 3225 CheckWasQuicResponse(&trans); | 3186 CheckWasQuicResponse(&trans); |
| 3226 CheckResponseData(&trans, "hello!"); | 3187 CheckResponseData(&trans, "hello!"); |
| 3227 } | 3188 } |
| 3228 | 3189 |
| 3229 TEST_P(QuicNetworkTransactionTest, | 3190 TEST_P(QuicNetworkTransactionTest, |
| 3230 LogGranularQuicErrorCodeOnQuicProtocolErrorLocal) { | 3191 LogGranularQuicErrorCodeOnQuicProtocolErrorLocal) { |
| 3231 MockQuicData mock_quic_data; | 3192 MockQuicData mock_quic_data; |
| 3232 QuicStreamOffset header_stream_offset = 0; | 3193 QuicStreamOffset header_stream_offset = 0; |
| 3233 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3194 mock_quic_data.AddWrite( |
| 3234 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3195 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3235 &header_stream_offset)); | |
| 3236 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3196 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3237 2, kClientDataStreamId1, true, true, | 3197 2, kClientDataStreamId1, true, true, |
| 3238 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3198 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3239 // Read a close connection packet with | 3199 // Read a close connection packet with |
| 3240 // QuicErrorCode: QUIC_CRYPTO_VERSION_NOT_SUPPORTED from the peer. | 3200 // QuicErrorCode: QUIC_CRYPTO_VERSION_NOT_SUPPORTED from the peer. |
| 3241 mock_quic_data.AddRead(ConstructServerConnectionClosePacket(1)); | 3201 mock_quic_data.AddRead(ConstructServerConnectionClosePacket(1)); |
| 3242 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 3202 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 3243 | 3203 |
| 3244 // The non-alternate protocol job needs to hang in order to guarantee that | 3204 // The non-alternate protocol job needs to hang in order to guarantee that |
| 3245 // the alternate-protocol job will "win". | 3205 // the alternate-protocol job will "win". |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3277 | 3237 |
| 3278 trans.PopulateNetErrorDetails(&details); | 3238 trans.PopulateNetErrorDetails(&details); |
| 3279 // Verify the error code logged is what sent by the peer. | 3239 // Verify the error code logged is what sent by the peer. |
| 3280 EXPECT_EQ(QUIC_CRYPTO_VERSION_NOT_SUPPORTED, details.quic_connection_error); | 3240 EXPECT_EQ(QUIC_CRYPTO_VERSION_NOT_SUPPORTED, details.quic_connection_error); |
| 3281 } | 3241 } |
| 3282 | 3242 |
| 3283 TEST_P(QuicNetworkTransactionTest, | 3243 TEST_P(QuicNetworkTransactionTest, |
| 3284 LogGranularQuicErrorCodeOnQuicProtocolErrorRemote) { | 3244 LogGranularQuicErrorCodeOnQuicProtocolErrorRemote) { |
| 3285 MockQuicData mock_quic_data; | 3245 MockQuicData mock_quic_data; |
| 3286 QuicStreamOffset header_stream_offset = 0; | 3246 QuicStreamOffset header_stream_offset = 0; |
| 3287 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3247 mock_quic_data.AddWrite( |
| 3288 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3248 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3289 &header_stream_offset)); | |
| 3290 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3249 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3291 2, kClientDataStreamId1, true, true, | 3250 2, kClientDataStreamId1, true, true, |
| 3292 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3251 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3293 // Peer sending data from an non-existing stream causes this end to raise | 3252 // Peer sending data from an non-existing stream causes this end to raise |
| 3294 // error and close connection. | 3253 // error and close connection. |
| 3295 mock_quic_data.AddRead( | 3254 mock_quic_data.AddRead( |
| 3296 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); | 3255 ConstructServerRstPacket(1, false, 99, QUIC_STREAM_LAST_ERROR)); |
| 3297 std::string quic_error_details = "Data for nonexistent stream"; | 3256 std::string quic_error_details = "Data for nonexistent stream"; |
| 3298 mock_quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( | 3257 mock_quic_data.AddWrite(ConstructClientAckAndConnectionClosePacket( |
| 3299 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, | 3258 3, QuicTime::Delta::Zero(), 1, 1, 1, QUIC_INVALID_STREAM_ID, |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3333 NetErrorDetails details; | 3292 NetErrorDetails details; |
| 3334 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); | 3293 EXPECT_EQ(QUIC_NO_ERROR, details.quic_connection_error); |
| 3335 | 3294 |
| 3336 trans.PopulateNetErrorDetails(&details); | 3295 trans.PopulateNetErrorDetails(&details); |
| 3337 EXPECT_EQ(QUIC_INVALID_STREAM_ID, details.quic_connection_error); | 3296 EXPECT_EQ(QUIC_INVALID_STREAM_ID, details.quic_connection_error); |
| 3338 } | 3297 } |
| 3339 | 3298 |
| 3340 TEST_P(QuicNetworkTransactionTest, RstSteamErrorHandling) { | 3299 TEST_P(QuicNetworkTransactionTest, RstSteamErrorHandling) { |
| 3341 MockQuicData mock_quic_data; | 3300 MockQuicData mock_quic_data; |
| 3342 QuicStreamOffset header_stream_offset = 0; | 3301 QuicStreamOffset header_stream_offset = 0; |
| 3343 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3302 mock_quic_data.AddWrite( |
| 3344 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3303 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3345 &header_stream_offset)); | |
| 3346 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3304 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3347 2, kClientDataStreamId1, true, true, | 3305 2, kClientDataStreamId1, true, true, |
| 3348 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3306 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3349 // Read the response headers, then a RST_STREAM frame. | 3307 // Read the response headers, then a RST_STREAM frame. |
| 3350 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 3308 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 3351 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 3309 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 3352 mock_quic_data.AddRead(ConstructServerRstPacket( | 3310 mock_quic_data.AddRead(ConstructServerRstPacket( |
| 3353 2, false, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 3311 2, false, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 3354 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 3312 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 3355 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. | 3313 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3396 EXPECT_EQ(QuicHttpStream::ConnectionInfoFromQuicVersion(version_), | 3354 EXPECT_EQ(QuicHttpStream::ConnectionInfoFromQuicVersion(version_), |
| 3397 response->connection_info); | 3355 response->connection_info); |
| 3398 | 3356 |
| 3399 std::string response_data; | 3357 std::string response_data; |
| 3400 ASSERT_EQ(ERR_QUIC_PROTOCOL_ERROR, ReadTransaction(&trans, &response_data)); | 3358 ASSERT_EQ(ERR_QUIC_PROTOCOL_ERROR, ReadTransaction(&trans, &response_data)); |
| 3401 } | 3359 } |
| 3402 | 3360 |
| 3403 TEST_P(QuicNetworkTransactionTest, RstSteamBeforeHeaders) { | 3361 TEST_P(QuicNetworkTransactionTest, RstSteamBeforeHeaders) { |
| 3404 MockQuicData mock_quic_data; | 3362 MockQuicData mock_quic_data; |
| 3405 QuicStreamOffset header_stream_offset = 0; | 3363 QuicStreamOffset header_stream_offset = 0; |
| 3406 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3364 mock_quic_data.AddWrite( |
| 3407 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3365 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3408 &header_stream_offset)); | |
| 3409 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3366 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3410 2, kClientDataStreamId1, true, true, | 3367 2, kClientDataStreamId1, true, true, |
| 3411 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3368 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3412 mock_quic_data.AddRead(ConstructServerRstPacket( | 3369 mock_quic_data.AddRead(ConstructServerRstPacket( |
| 3413 1, false, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); | 3370 1, false, kClientDataStreamId1, QUIC_STREAM_CANCELLED)); |
| 3414 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. | 3371 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. |
| 3415 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 3372 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| 3416 | 3373 |
| 3417 // The non-alternate protocol job needs to hang in order to guarantee that | 3374 // The non-alternate protocol job needs to hang in order to guarantee that |
| 3418 // the alternate-protocol job will "win". | 3375 // the alternate-protocol job will "win". |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3739 EXPECT_FALSE(test_proxy_delegate.alternative_proxy_server().is_valid()); | 3696 EXPECT_FALSE(test_proxy_delegate.alternative_proxy_server().is_valid()); |
| 3740 EXPECT_TRUE(session_->proxy_service()->proxy_retry_info().empty()); | 3697 EXPECT_TRUE(session_->proxy_service()->proxy_retry_info().empty()); |
| 3741 } | 3698 } |
| 3742 | 3699 |
| 3743 TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) { | 3700 TEST_P(QuicNetworkTransactionTest, SecureResourceOverSecureQuic) { |
| 3744 client_maker_.set_hostname("www.example.org"); | 3701 client_maker_.set_hostname("www.example.org"); |
| 3745 EXPECT_FALSE( | 3702 EXPECT_FALSE( |
| 3746 test_socket_performance_watcher_factory_.rtt_notification_received()); | 3703 test_socket_performance_watcher_factory_.rtt_notification_received()); |
| 3747 MockQuicData mock_quic_data; | 3704 MockQuicData mock_quic_data; |
| 3748 QuicStreamOffset header_stream_offset = 0; | 3705 QuicStreamOffset header_stream_offset = 0; |
| 3749 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3706 mock_quic_data.AddWrite( |
| 3750 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3707 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3751 &header_stream_offset)); | |
| 3752 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3708 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3753 2, kClientDataStreamId1, true, true, | 3709 2, kClientDataStreamId1, true, true, |
| 3754 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3710 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3755 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 3711 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 3756 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); | 3712 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"))); |
| 3757 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, | 3713 mock_quic_data.AddRead(ConstructServerDataPacket(2, kClientDataStreamId1, |
| 3758 false, true, 0, "hello!")); | 3714 false, true, 0, "hello!")); |
| 3759 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); | 3715 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1)); |
| 3760 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. | 3716 mock_quic_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); // No more read data. |
| 3761 mock_quic_data.AddSocketDataToFactory(&socket_factory_); | 3717 mock_quic_data.AddSocketDataToFactory(&socket_factory_); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3855 mock_ncn->SetConnectedNetworksList( | 3811 mock_ncn->SetConnectedNetworksList( |
| 3856 {kDefaultNetworkForTests, kNewNetworkForTests}); | 3812 {kDefaultNetworkForTests, kNewNetworkForTests}); |
| 3857 | 3813 |
| 3858 params_.origins_to_force_quic_on.insert( | 3814 params_.origins_to_force_quic_on.insert( |
| 3859 HostPortPair::FromString("mail.example.org:443")); | 3815 HostPortPair::FromString("mail.example.org:443")); |
| 3860 params_.quic_migrate_sessions_on_network_change = true; | 3816 params_.quic_migrate_sessions_on_network_change = true; |
| 3861 | 3817 |
| 3862 MockQuicData socket_data; | 3818 MockQuicData socket_data; |
| 3863 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); | 3819 socket_data.AddRead(SYNCHRONOUS, ERR_IO_PENDING); |
| 3864 QuicStreamOffset offset = 0; | 3820 QuicStreamOffset offset = 0; |
| 3865 socket_data.AddWrite( | 3821 socket_data.AddWrite(ConstructInitialSettingsPacket(1, &offset)); |
| 3866 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | |
| 3867 kDefaultMaxUncompressedHeaderSize, &offset)); | |
| 3868 socket_data.AddWrite(ConstructClientRequestHeadersPacket( | 3822 socket_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3869 2, kClientDataStreamId1, true, false, | 3823 2, kClientDataStreamId1, true, false, |
| 3870 GetRequestHeaders("POST", "https", "/"), &offset)); | 3824 GetRequestHeaders("POST", "https", "/"), &offset)); |
| 3871 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); | 3825 socket_data.AddWrite(SYNCHRONOUS, ERR_FAILED); |
| 3872 socket_data.AddSocketDataToFactory(&socket_factory_); | 3826 socket_data.AddSocketDataToFactory(&socket_factory_); |
| 3873 | 3827 |
| 3874 MockQuicData socket_data2; | 3828 MockQuicData socket_data2; |
| 3875 socket_data2.AddConnect(SYNCHRONOUS, ERR_ADDRESS_INVALID); | 3829 socket_data2.AddConnect(SYNCHRONOUS, ERR_ADDRESS_INVALID); |
| 3876 socket_data2.AddSocketDataToFactory(&socket_factory_); | 3830 socket_data2.AddSocketDataToFactory(&socket_factory_); |
| 3877 | 3831 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 3900 session_.reset(); | 3854 session_.reset(); |
| 3901 } | 3855 } |
| 3902 | 3856 |
| 3903 // Adds coverage to catch regression such as https://crbug.com/622043 | 3857 // Adds coverage to catch regression such as https://crbug.com/622043 |
| 3904 TEST_P(QuicNetworkTransactionTest, QuicServerPush) { | 3858 TEST_P(QuicNetworkTransactionTest, QuicServerPush) { |
| 3905 params_.origins_to_force_quic_on.insert( | 3859 params_.origins_to_force_quic_on.insert( |
| 3906 HostPortPair::FromString("mail.example.org:443")); | 3860 HostPortPair::FromString("mail.example.org:443")); |
| 3907 | 3861 |
| 3908 MockQuicData mock_quic_data; | 3862 MockQuicData mock_quic_data; |
| 3909 QuicStreamOffset header_stream_offset = 0; | 3863 QuicStreamOffset header_stream_offset = 0; |
| 3910 mock_quic_data.AddWrite(ConstructSettingsPacket( | 3864 mock_quic_data.AddWrite( |
| 3911 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 3865 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 3912 &header_stream_offset)); | |
| 3913 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3866 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3914 2, kClientDataStreamId1, true, true, | 3867 2, kClientDataStreamId1, true, true, |
| 3915 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 3868 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 3916 QuicStreamOffset server_header_offset = 0; | 3869 QuicStreamOffset server_header_offset = 0; |
| 3917 mock_quic_data.AddRead(ConstructServerPushPromisePacket( | 3870 mock_quic_data.AddRead(ConstructServerPushPromisePacket( |
| 3918 1, kClientDataStreamId1, kServerDataStreamId1, false, | 3871 1, kClientDataStreamId1, kServerDataStreamId1, false, |
| 3919 GetRequestHeaders("GET", "https", "/pushed.jpg"), &server_header_offset, | 3872 GetRequestHeaders("GET", "https", "/pushed.jpg"), &server_header_offset, |
| 3920 &server_maker_)); | 3873 &server_maker_)); |
| 3921 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 3874 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 3922 2, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 3875 2, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3961 } | 3914 } |
| 3962 | 3915 |
| 3963 TEST_P(QuicNetworkTransactionTest, QuicForceHolBlocking) { | 3916 TEST_P(QuicNetworkTransactionTest, QuicForceHolBlocking) { |
| 3964 params_.quic_force_hol_blocking = true; | 3917 params_.quic_force_hol_blocking = true; |
| 3965 params_.origins_to_force_quic_on.insert( | 3918 params_.origins_to_force_quic_on.insert( |
| 3966 HostPortPair::FromString("mail.example.org:443")); | 3919 HostPortPair::FromString("mail.example.org:443")); |
| 3967 | 3920 |
| 3968 MockQuicData mock_quic_data; | 3921 MockQuicData mock_quic_data; |
| 3969 | 3922 |
| 3970 QuicStreamOffset offset = 0; | 3923 QuicStreamOffset offset = 0; |
| 3971 mock_quic_data.AddWrite( | 3924 mock_quic_data.AddWrite(ConstructInitialSettingsPacket(1, &offset)); |
| 3972 ConstructSettingsPacket(1, SETTINGS_MAX_HEADER_LIST_SIZE, | |
| 3973 kDefaultMaxUncompressedHeaderSize, &offset)); | |
| 3974 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 3925 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 3975 2, kClientDataStreamId1, true, false, | 3926 2, kClientDataStreamId1, true, false, |
| 3976 GetRequestHeaders("POST", "https", "/"), &offset)); | 3927 GetRequestHeaders("POST", "https", "/"), &offset)); |
| 3977 | 3928 |
| 3978 std::unique_ptr<QuicEncryptedPacket> packet; | 3929 std::unique_ptr<QuicEncryptedPacket> packet; |
| 3979 if (version_ == QUIC_VERSION_36) { | 3930 if (version_ == QUIC_VERSION_36) { |
| 3980 packet = ConstructClientForceHolDataPacket(3, kClientDataStreamId1, true, | 3931 packet = ConstructClientForceHolDataPacket(3, kClientDataStreamId1, true, |
| 3981 true, &offset, "1"); | 3932 true, &offset, "1"); |
| 3982 } else { | 3933 } else { |
| 3983 packet = | 3934 packet = |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4043 MockClientSocketFactory* socket_factory_; | 3994 MockClientSocketFactory* socket_factory_; |
| 4044 URLRequestContextStorage storage_; | 3995 URLRequestContextStorage storage_; |
| 4045 }; | 3996 }; |
| 4046 | 3997 |
| 4047 TEST_P(QuicNetworkTransactionTest, RawHeaderSizeSuccessfullRequest) { | 3998 TEST_P(QuicNetworkTransactionTest, RawHeaderSizeSuccessfullRequest) { |
| 4048 params_.origins_to_force_quic_on.insert( | 3999 params_.origins_to_force_quic_on.insert( |
| 4049 HostPortPair::FromString("mail.example.org:443")); | 4000 HostPortPair::FromString("mail.example.org:443")); |
| 4050 | 4001 |
| 4051 MockQuicData mock_quic_data; | 4002 MockQuicData mock_quic_data; |
| 4052 QuicStreamOffset header_stream_offset = 0; | 4003 QuicStreamOffset header_stream_offset = 0; |
| 4053 mock_quic_data.AddWrite(ConstructSettingsPacket( | 4004 mock_quic_data.AddWrite( |
| 4054 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4005 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 4055 &header_stream_offset)); | |
| 4056 SpdyHeaderBlock headers(GetRequestHeaders("GET", "https", "/")); | 4006 SpdyHeaderBlock headers(GetRequestHeaders("GET", "https", "/")); |
| 4057 headers["user-agent"] = ""; | 4007 headers["user-agent"] = ""; |
| 4058 headers["accept-encoding"] = "gzip, deflate"; | 4008 headers["accept-encoding"] = "gzip, deflate"; |
| 4059 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 4009 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 4060 2, kClientDataStreamId1, true, true, std::move(headers), | 4010 2, kClientDataStreamId1, true, true, std::move(headers), |
| 4061 &header_stream_offset)); | 4011 &header_stream_offset)); |
| 4062 | 4012 |
| 4063 QuicStreamOffset expected_raw_header_response_size = 0; | 4013 QuicStreamOffset expected_raw_header_response_size = 0; |
| 4064 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 4014 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 4065 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 4015 1, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4101 EXPECT_TRUE(mock_quic_data.AllReadDataConsumed()); | 4051 EXPECT_TRUE(mock_quic_data.AllReadDataConsumed()); |
| 4102 EXPECT_TRUE(mock_quic_data.AllWriteDataConsumed()); | 4052 EXPECT_TRUE(mock_quic_data.AllWriteDataConsumed()); |
| 4103 } | 4053 } |
| 4104 | 4054 |
| 4105 TEST_P(QuicNetworkTransactionTest, RawHeaderSizeSuccessfullPushHeadersFirst) { | 4055 TEST_P(QuicNetworkTransactionTest, RawHeaderSizeSuccessfullPushHeadersFirst) { |
| 4106 params_.origins_to_force_quic_on.insert( | 4056 params_.origins_to_force_quic_on.insert( |
| 4107 HostPortPair::FromString("mail.example.org:443")); | 4057 HostPortPair::FromString("mail.example.org:443")); |
| 4108 | 4058 |
| 4109 MockQuicData mock_quic_data; | 4059 MockQuicData mock_quic_data; |
| 4110 QuicStreamOffset header_stream_offset = 0; | 4060 QuicStreamOffset header_stream_offset = 0; |
| 4111 mock_quic_data.AddWrite(ConstructSettingsPacket( | 4061 mock_quic_data.AddWrite( |
| 4112 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4062 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 4113 &header_stream_offset)); | |
| 4114 SpdyHeaderBlock headers(GetRequestHeaders("GET", "https", "/")); | 4063 SpdyHeaderBlock headers(GetRequestHeaders("GET", "https", "/")); |
| 4115 headers["user-agent"] = ""; | 4064 headers["user-agent"] = ""; |
| 4116 headers["accept-encoding"] = "gzip, deflate"; | 4065 headers["accept-encoding"] = "gzip, deflate"; |
| 4117 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 4066 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 4118 2, kClientDataStreamId1, true, true, std::move(headers), | 4067 2, kClientDataStreamId1, true, true, std::move(headers), |
| 4119 &header_stream_offset)); | 4068 &header_stream_offset)); |
| 4120 | 4069 |
| 4121 QuicStreamOffset server_header_offset = 0; | 4070 QuicStreamOffset server_header_offset = 0; |
| 4122 QuicStreamOffset expected_raw_header_response_size = 0; | 4071 QuicStreamOffset expected_raw_header_response_size = 0; |
| 4123 | 4072 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4308 std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket( | 4257 std::unique_ptr<QuicEncryptedPacket> ConstructClientAckPacket( |
| 4309 QuicPacketNumber packet_number, | 4258 QuicPacketNumber packet_number, |
| 4310 QuicPacketNumber largest_received, | 4259 QuicPacketNumber largest_received, |
| 4311 QuicPacketNumber smallest_received, | 4260 QuicPacketNumber smallest_received, |
| 4312 QuicPacketNumber least_unacked, | 4261 QuicPacketNumber least_unacked, |
| 4313 QuicTestPacketMaker* maker) { | 4262 QuicTestPacketMaker* maker) { |
| 4314 return maker->MakeAckPacket(packet_number, largest_received, | 4263 return maker->MakeAckPacket(packet_number, largest_received, |
| 4315 smallest_received, least_unacked, true); | 4264 smallest_received, least_unacked, true); |
| 4316 } | 4265 } |
| 4317 | 4266 |
| 4318 std::unique_ptr<QuicReceivedPacket> ConstructSettingsPacket( | 4267 std::unique_ptr<QuicReceivedPacket> ConstructInitialSettingsPacket( |
| 4319 QuicPacketNumber packet_number, | 4268 QuicPacketNumber packet_number, |
| 4320 SpdySettingsIds id, | |
| 4321 size_t value, | |
| 4322 QuicStreamOffset* offset, | 4269 QuicStreamOffset* offset, |
| 4323 QuicTestPacketMaker* maker) { | 4270 QuicTestPacketMaker* maker) { |
| 4324 return maker->MakeSettingsPacket(packet_number, id, value, kIncludeVersion, | 4271 return maker->MakeInitialSettingsPacket(packet_number, offset); |
| 4325 offset); | |
| 4326 } | 4272 } |
| 4327 | 4273 |
| 4328 void AddRefusedSocketData() { | 4274 void AddRefusedSocketData() { |
| 4329 std::unique_ptr<StaticSocketDataProvider> refused_data( | 4275 std::unique_ptr<StaticSocketDataProvider> refused_data( |
| 4330 new StaticSocketDataProvider()); | 4276 new StaticSocketDataProvider()); |
| 4331 MockConnect refused_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); | 4277 MockConnect refused_connect(SYNCHRONOUS, ERR_CONNECTION_REFUSED); |
| 4332 refused_data->set_connect_data(refused_connect); | 4278 refused_data->set_connect_data(refused_connect); |
| 4333 socket_factory_.AddSocketDataProvider(refused_data.get()); | 4279 socket_factory_.AddSocketDataProvider(refused_data.get()); |
| 4334 static_socket_data_provider_vector_.push_back(std::move(refused_data)); | 4280 static_socket_data_provider_vector_.push_back(std::move(refused_data)); |
| 4335 } | 4281 } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4477 | 4423 |
| 4478 QuicTestPacketMaker client_maker1(version_, 0, &clock_, origin1_, | 4424 QuicTestPacketMaker client_maker1(version_, 0, &clock_, origin1_, |
| 4479 Perspective::IS_CLIENT); | 4425 Perspective::IS_CLIENT); |
| 4480 QuicTestPacketMaker server_maker1(version_, 0, &clock_, origin1_, | 4426 QuicTestPacketMaker server_maker1(version_, 0, &clock_, origin1_, |
| 4481 Perspective::IS_SERVER); | 4427 Perspective::IS_SERVER); |
| 4482 | 4428 |
| 4483 QuicStreamOffset request_header_offset(0); | 4429 QuicStreamOffset request_header_offset(0); |
| 4484 QuicStreamOffset response_header_offset(0); | 4430 QuicStreamOffset response_header_offset(0); |
| 4485 | 4431 |
| 4486 MockQuicData mock_quic_data; | 4432 MockQuicData mock_quic_data; |
| 4487 mock_quic_data.AddWrite(ConstructSettingsPacket( | 4433 mock_quic_data.AddWrite(ConstructInitialSettingsPacket( |
| 4488 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4434 1, &request_header_offset, &client_maker1)); |
| 4489 &request_header_offset, &client_maker1)); | |
| 4490 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 4435 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 4491 2, kClientDataStreamId1, true, &request_header_offset, &client_maker1)); | 4436 2, kClientDataStreamId1, true, &request_header_offset, &client_maker1)); |
| 4492 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 4437 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 4493 1, kClientDataStreamId1, &response_header_offset, &server_maker1)); | 4438 1, kClientDataStreamId1, &response_header_offset, &server_maker1)); |
| 4494 mock_quic_data.AddRead( | 4439 mock_quic_data.AddRead( |
| 4495 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker1)); | 4440 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker1)); |
| 4496 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1, &client_maker1)); | 4441 mock_quic_data.AddWrite(ConstructClientAckPacket(3, 2, 1, 1, &client_maker1)); |
| 4497 | 4442 |
| 4498 QuicTestPacketMaker client_maker2(version_, 0, &clock_, origin2_, | 4443 QuicTestPacketMaker client_maker2(version_, 0, &clock_, origin2_, |
| 4499 Perspective::IS_CLIENT); | 4444 Perspective::IS_CLIENT); |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4554 verify_details2.cert_verify_result.is_issued_by_known_root = true; | 4499 verify_details2.cert_verify_result.is_issued_by_known_root = true; |
| 4555 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); | 4500 crypto_client_stream_factory_.AddProofVerifyDetails(&verify_details2); |
| 4556 | 4501 |
| 4557 QuicTestPacketMaker client_maker1(version_, 0, &clock_, origin1_, | 4502 QuicTestPacketMaker client_maker1(version_, 0, &clock_, origin1_, |
| 4558 Perspective::IS_CLIENT); | 4503 Perspective::IS_CLIENT); |
| 4559 QuicTestPacketMaker server_maker1(version_, 0, &clock_, origin1_, | 4504 QuicTestPacketMaker server_maker1(version_, 0, &clock_, origin1_, |
| 4560 Perspective::IS_SERVER); | 4505 Perspective::IS_SERVER); |
| 4561 | 4506 |
| 4562 MockQuicData mock_quic_data1; | 4507 MockQuicData mock_quic_data1; |
| 4563 QuicStreamOffset header_stream_offset1 = 0; | 4508 QuicStreamOffset header_stream_offset1 = 0; |
| 4564 mock_quic_data1.AddWrite(ConstructSettingsPacket( | 4509 mock_quic_data1.AddWrite(ConstructInitialSettingsPacket( |
| 4565 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4510 1, &header_stream_offset1, &client_maker1)); |
| 4566 &header_stream_offset1, &client_maker1)); | |
| 4567 mock_quic_data1.AddWrite(ConstructClientRequestHeadersPacket( | 4511 mock_quic_data1.AddWrite(ConstructClientRequestHeadersPacket( |
| 4568 2, kClientDataStreamId1, true, &header_stream_offset1, &client_maker1)); | 4512 2, kClientDataStreamId1, true, &header_stream_offset1, &client_maker1)); |
| 4569 mock_quic_data1.AddRead(ConstructServerResponseHeadersPacket( | 4513 mock_quic_data1.AddRead(ConstructServerResponseHeadersPacket( |
| 4570 1, kClientDataStreamId1, &server_maker1)); | 4514 1, kClientDataStreamId1, &server_maker1)); |
| 4571 mock_quic_data1.AddRead( | 4515 mock_quic_data1.AddRead( |
| 4572 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker1)); | 4516 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker1)); |
| 4573 mock_quic_data1.AddWrite( | 4517 mock_quic_data1.AddWrite( |
| 4574 ConstructClientAckPacket(3, 2, 1, 1, &client_maker1)); | 4518 ConstructClientAckPacket(3, 2, 1, 1, &client_maker1)); |
| 4575 mock_quic_data1.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 4519 mock_quic_data1.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 4576 mock_quic_data1.AddRead(ASYNC, 0); // EOF | 4520 mock_quic_data1.AddRead(ASYNC, 0); // EOF |
| 4577 | 4521 |
| 4578 mock_quic_data1.AddSocketDataToFactory(&socket_factory_); | 4522 mock_quic_data1.AddSocketDataToFactory(&socket_factory_); |
| 4579 | 4523 |
| 4580 AddHangingSocketData(); | 4524 AddHangingSocketData(); |
| 4581 | 4525 |
| 4582 QuicTestPacketMaker client_maker2(version_, 0, &clock_, origin2_, | 4526 QuicTestPacketMaker client_maker2(version_, 0, &clock_, origin2_, |
| 4583 Perspective::IS_CLIENT); | 4527 Perspective::IS_CLIENT); |
| 4584 QuicTestPacketMaker server_maker2(version_, 0, &clock_, origin2_, | 4528 QuicTestPacketMaker server_maker2(version_, 0, &clock_, origin2_, |
| 4585 Perspective::IS_SERVER); | 4529 Perspective::IS_SERVER); |
| 4586 | 4530 |
| 4587 MockQuicData mock_quic_data2; | 4531 MockQuicData mock_quic_data2; |
| 4588 QuicStreamOffset header_stream_offset2 = 0; | 4532 QuicStreamOffset header_stream_offset2 = 0; |
| 4589 mock_quic_data2.AddWrite(ConstructSettingsPacket( | 4533 mock_quic_data2.AddWrite(ConstructInitialSettingsPacket( |
| 4590 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4534 1, &header_stream_offset2, &client_maker2)); |
| 4591 &header_stream_offset2, &client_maker2)); | |
| 4592 mock_quic_data2.AddWrite(ConstructClientRequestHeadersPacket( | 4535 mock_quic_data2.AddWrite(ConstructClientRequestHeadersPacket( |
| 4593 2, kClientDataStreamId1, true, &header_stream_offset2, &client_maker2)); | 4536 2, kClientDataStreamId1, true, &header_stream_offset2, &client_maker2)); |
| 4594 mock_quic_data2.AddRead(ConstructServerResponseHeadersPacket( | 4537 mock_quic_data2.AddRead(ConstructServerResponseHeadersPacket( |
| 4595 1, kClientDataStreamId1, &server_maker2)); | 4538 1, kClientDataStreamId1, &server_maker2)); |
| 4596 mock_quic_data2.AddRead( | 4539 mock_quic_data2.AddRead( |
| 4597 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker2)); | 4540 ConstructServerDataPacket(2, kClientDataStreamId1, &server_maker2)); |
| 4598 mock_quic_data2.AddWrite( | 4541 mock_quic_data2.AddWrite( |
| 4599 ConstructClientAckPacket(3, 2, 1, 1, &client_maker2)); | 4542 ConstructClientAckPacket(3, 2, 1, 1, &client_maker2)); |
| 4600 mock_quic_data2.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read | 4543 mock_quic_data2.AddRead(ASYNC, ERR_IO_PENDING); // No more data to read |
| 4601 mock_quic_data2.AddRead(ASYNC, 0); // EOF | 4544 mock_quic_data2.AddRead(ASYNC, 0); // EOF |
| 4602 | 4545 |
| 4603 mock_quic_data2.AddSocketDataToFactory(&socket_factory_); | 4546 mock_quic_data2.AddSocketDataToFactory(&socket_factory_); |
| 4604 | 4547 |
| 4605 AddHangingSocketData(); | 4548 AddHangingSocketData(); |
| 4606 | 4549 |
| 4607 SendRequestAndExpectQuicResponse(origin1_); | 4550 SendRequestAndExpectQuicResponse(origin1_); |
| 4608 SendRequestAndExpectQuicResponse(origin2_); | 4551 SendRequestAndExpectQuicResponse(origin2_); |
| 4609 | 4552 |
| 4610 EXPECT_TRUE(AllDataConsumed()); | 4553 EXPECT_TRUE(AllDataConsumed()); |
| 4611 } | 4554 } |
| 4612 | 4555 |
| 4613 // crbug.com/705109 - this confirms that matching request with a body | 4556 // crbug.com/705109 - this confirms that matching request with a body |
| 4614 // triggers a crash (pre-fix). | 4557 // triggers a crash (pre-fix). |
| 4615 TEST_P(QuicNetworkTransactionTest, QuicServerPushMatchesRequestWithBody) { | 4558 TEST_P(QuicNetworkTransactionTest, QuicServerPushMatchesRequestWithBody) { |
| 4616 params_.origins_to_force_quic_on.insert( | 4559 params_.origins_to_force_quic_on.insert( |
| 4617 HostPortPair::FromString("mail.example.org:443")); | 4560 HostPortPair::FromString("mail.example.org:443")); |
| 4618 | 4561 |
| 4619 MockQuicData mock_quic_data; | 4562 MockQuicData mock_quic_data; |
| 4620 QuicStreamOffset header_stream_offset = 0; | 4563 QuicStreamOffset header_stream_offset = 0; |
| 4621 mock_quic_data.AddWrite(ConstructSettingsPacket( | 4564 mock_quic_data.AddWrite( |
| 4622 1, SETTINGS_MAX_HEADER_LIST_SIZE, kDefaultMaxUncompressedHeaderSize, | 4565 ConstructInitialSettingsPacket(1, &header_stream_offset)); |
| 4623 &header_stream_offset)); | |
| 4624 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( | 4566 mock_quic_data.AddWrite(ConstructClientRequestHeadersPacket( |
| 4625 2, kClientDataStreamId1, true, true, | 4567 2, kClientDataStreamId1, true, true, |
| 4626 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); | 4568 GetRequestHeaders("GET", "https", "/"), &header_stream_offset)); |
| 4627 QuicStreamOffset server_header_offset = 0; | 4569 QuicStreamOffset server_header_offset = 0; |
| 4628 mock_quic_data.AddRead(ConstructServerPushPromisePacket( | 4570 mock_quic_data.AddRead(ConstructServerPushPromisePacket( |
| 4629 1, kClientDataStreamId1, kServerDataStreamId1, false, | 4571 1, kClientDataStreamId1, kServerDataStreamId1, false, |
| 4630 GetRequestHeaders("GET", "https", "/pushed.jpg"), &server_header_offset, | 4572 GetRequestHeaders("GET", "https", "/pushed.jpg"), &server_header_offset, |
| 4631 &server_maker_)); | 4573 &server_maker_)); |
| 4632 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( | 4574 mock_quic_data.AddRead(ConstructServerResponseHeadersPacket( |
| 4633 2, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), | 4575 2, kClientDataStreamId1, false, false, GetResponseHeaders("200 OK"), |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4678 | 4620 |
| 4679 request_.url = GURL("https://mail.example.org/pushed.jpg"); | 4621 request_.url = GURL("https://mail.example.org/pushed.jpg"); |
| 4680 ChunkedUploadDataStream upload_data(0); | 4622 ChunkedUploadDataStream upload_data(0); |
| 4681 upload_data.AppendData("1", 1, true); | 4623 upload_data.AppendData("1", 1, true); |
| 4682 request_.upload_data_stream = &upload_data; | 4624 request_.upload_data_stream = &upload_data; |
| 4683 SendRequestAndExpectQuicResponse("and hello!"); | 4625 SendRequestAndExpectQuicResponse("and hello!"); |
| 4684 } | 4626 } |
| 4685 | 4627 |
| 4686 } // namespace test | 4628 } // namespace test |
| 4687 } // namespace net | 4629 } // namespace net |
| OLD | NEW |