| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/spdy/spdy_stream.h" | 5 #include "net/spdy/spdy_stream.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <cstddef> | 10 #include <cstddef> |
| (...skipping 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 SpdySerializedFrame req( | 556 SpdySerializedFrame req( |
| 557 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 557 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 558 AddWrite(req); | 558 AddWrite(req); |
| 559 | 559 |
| 560 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 560 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 561 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply( | 561 SpdySerializedFrame reply(spdy_util_.ConstructSpdyGetReply( |
| 562 kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); | 562 kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); |
| 563 AddRead(reply); | 563 AddRead(reply); |
| 564 | 564 |
| 565 SpdySerializedFrame rst( | 565 SpdySerializedFrame rst( |
| 566 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 566 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 567 AddWrite(rst); | 567 AddWrite(rst); |
| 568 | 568 |
| 569 AddReadEOF(); | 569 AddReadEOF(); |
| 570 | 570 |
| 571 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 571 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 572 GetNumWrites()); | 572 GetNumWrites()); |
| 573 MockConnect connect_data(SYNCHRONOUS, OK); | 573 MockConnect connect_data(SYNCHRONOUS, OK); |
| 574 data.set_connect_data(connect_data); | 574 data.set_connect_data(connect_data); |
| 575 session_deps_.socket_factory->AddSocketDataProvider(&data); | 575 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 576 | 576 |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 615 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; | 615 const char* const kExtraHeaders[] = {"X-UpperCase", "yes"}; |
| 616 SpdySerializedFrame push(spdy_util_.ConstructSpdyPush( | 616 SpdySerializedFrame push(spdy_util_.ConstructSpdyPush( |
| 617 kExtraHeaders, arraysize(kExtraHeaders) / 2, 2, 1, kPushUrl)); | 617 kExtraHeaders, arraysize(kExtraHeaders) / 2, 2, 1, kPushUrl)); |
| 618 AddRead(push); | 618 AddRead(push); |
| 619 | 619 |
| 620 SpdySerializedFrame priority( | 620 SpdySerializedFrame priority( |
| 621 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); | 621 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 622 AddWrite(priority); | 622 AddWrite(priority); |
| 623 | 623 |
| 624 SpdySerializedFrame rst( | 624 SpdySerializedFrame rst( |
| 625 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); | 625 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_PROTOCOL_ERROR)); |
| 626 AddWrite(rst); | 626 AddWrite(rst); |
| 627 | 627 |
| 628 AddReadPause(); | 628 AddReadPause(); |
| 629 | 629 |
| 630 AddReadEOF(); | 630 AddReadEOF(); |
| 631 | 631 |
| 632 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 632 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 633 GetNumWrites()); | 633 GetNumWrites()); |
| 634 MockConnect connect_data(SYNCHRONOUS, OK); | 634 MockConnect connect_data(SYNCHRONOUS, OK); |
| 635 data.set_connect_data(connect_data); | 635 data.set_connect_data(connect_data); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 679 SpdyHeaderBlock header_block_without_status; | 679 SpdyHeaderBlock header_block_without_status; |
| 680 header_block_without_status[spdy_util_.GetMethodKey()] = "GET"; | 680 header_block_without_status[spdy_util_.GetMethodKey()] = "GET"; |
| 681 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org"; | 681 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org"; |
| 682 header_block_without_status[spdy_util_.GetSchemeKey()] = "https"; | 682 header_block_without_status[spdy_util_.GetSchemeKey()] = "https"; |
| 683 header_block_without_status[spdy_util_.GetPathKey()] = "/"; | 683 header_block_without_status[spdy_util_.GetPathKey()] = "/"; |
| 684 SpdySerializedFrame reply( | 684 SpdySerializedFrame reply( |
| 685 spdy_util_.ConstructSpdyReply(1, std::move(header_block_without_status))); | 685 spdy_util_.ConstructSpdyReply(1, std::move(header_block_without_status))); |
| 686 AddRead(reply); | 686 AddRead(reply); |
| 687 | 687 |
| 688 SpdySerializedFrame rst( | 688 SpdySerializedFrame rst( |
| 689 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 689 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 690 AddWrite(rst); | 690 AddWrite(rst); |
| 691 | 691 |
| 692 AddReadEOF(); | 692 AddReadEOF(); |
| 693 | 693 |
| 694 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 694 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 695 GetNumWrites()); | 695 GetNumWrites()); |
| 696 MockConnect connect_data(SYNCHRONOUS, OK); | 696 MockConnect connect_data(SYNCHRONOUS, OK); |
| 697 data.set_connect_data(connect_data); | 697 data.set_connect_data(connect_data); |
| 698 session_deps_.socket_factory->AddSocketDataProvider(&data); | 698 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 699 | 699 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 744 SpdyHeaderBlock header_block_without_status; | 744 SpdyHeaderBlock header_block_without_status; |
| 745 header_block_without_status[spdy_util_.GetMethodKey()] = "GET"; | 745 header_block_without_status[spdy_util_.GetMethodKey()] = "GET"; |
| 746 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org"; | 746 header_block_without_status[spdy_util_.GetHostKey()] = "www.example.org"; |
| 747 header_block_without_status[spdy_util_.GetSchemeKey()] = "https"; | 747 header_block_without_status[spdy_util_.GetSchemeKey()] = "https"; |
| 748 header_block_without_status[spdy_util_.GetPathKey()] = "/"; | 748 header_block_without_status[spdy_util_.GetPathKey()] = "/"; |
| 749 SpdySerializedFrame pushed_reply( | 749 SpdySerializedFrame pushed_reply( |
| 750 spdy_util_.ConstructSpdyReply(2, std::move(header_block_without_status))); | 750 spdy_util_.ConstructSpdyReply(2, std::move(header_block_without_status))); |
| 751 AddRead(pushed_reply); | 751 AddRead(pushed_reply); |
| 752 | 752 |
| 753 SpdySerializedFrame rst( | 753 SpdySerializedFrame rst( |
| 754 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); | 754 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_PROTOCOL_ERROR)); |
| 755 AddWrite(rst); | 755 AddWrite(rst); |
| 756 | 756 |
| 757 SpdySerializedFrame body( | 757 SpdySerializedFrame body( |
| 758 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); | 758 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); |
| 759 AddRead(body); | 759 AddRead(body); |
| 760 | 760 |
| 761 AddReadEOF(); | 761 AddReadEOF(); |
| 762 | 762 |
| 763 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 763 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 764 GetNumWrites()); | 764 GetNumWrites()); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 SpdySerializedFrame req( | 801 SpdySerializedFrame req( |
| 802 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 802 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 803 AddWrite(req); | 803 AddWrite(req); |
| 804 | 804 |
| 805 // Response body not preceeded by headers: protocol error. | 805 // Response body not preceeded by headers: protocol error. |
| 806 SpdySerializedFrame body( | 806 SpdySerializedFrame body( |
| 807 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); | 807 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); |
| 808 AddRead(body); | 808 AddRead(body); |
| 809 | 809 |
| 810 SpdySerializedFrame rst( | 810 SpdySerializedFrame rst( |
| 811 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 811 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 812 AddWrite(rst); | 812 AddWrite(rst); |
| 813 | 813 |
| 814 AddReadEOF(); | 814 AddReadEOF(); |
| 815 | 815 |
| 816 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 816 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 817 GetNumWrites()); | 817 GetNumWrites()); |
| 818 MockConnect connect_data(SYNCHRONOUS, OK); | 818 MockConnect connect_data(SYNCHRONOUS, OK); |
| 819 data.set_connect_data(connect_data); | 819 data.set_connect_data(connect_data); |
| 820 session_deps_.socket_factory->AddSocketDataProvider(&data); | 820 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 821 | 821 |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 854 | 854 |
| 855 SpdySerializedFrame priority( | 855 SpdySerializedFrame priority( |
| 856 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); | 856 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true)); |
| 857 AddWrite(priority); | 857 AddWrite(priority); |
| 858 | 858 |
| 859 SpdySerializedFrame pushed_body( | 859 SpdySerializedFrame pushed_body( |
| 860 spdy_util_.ConstructSpdyDataFrame(2, kPostBody, kPostBodyLength, true)); | 860 spdy_util_.ConstructSpdyDataFrame(2, kPostBody, kPostBodyLength, true)); |
| 861 AddRead(pushed_body); | 861 AddRead(pushed_body); |
| 862 | 862 |
| 863 SpdySerializedFrame rst( | 863 SpdySerializedFrame rst( |
| 864 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_PROTOCOL_ERROR)); | 864 spdy_util_.ConstructSpdyRstStream(2, ERROR_CODE_PROTOCOL_ERROR)); |
| 865 AddWrite(rst); | 865 AddWrite(rst); |
| 866 | 866 |
| 867 SpdySerializedFrame body( | 867 SpdySerializedFrame body( |
| 868 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); | 868 spdy_util_.ConstructSpdyDataFrame(1, kPostBody, kPostBodyLength, true)); |
| 869 AddRead(body); | 869 AddRead(body); |
| 870 | 870 |
| 871 AddReadEOF(); | 871 AddReadEOF(); |
| 872 | 872 |
| 873 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 873 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 874 GetNumWrites()); | 874 GetNumWrites()); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 924 SpdySerializedFrame first_trailers(spdy_util_.ConstructSpdyResponseHeaders( | 924 SpdySerializedFrame first_trailers(spdy_util_.ConstructSpdyResponseHeaders( |
| 925 1, std::move(trailers_block), false)); | 925 1, std::move(trailers_block), false)); |
| 926 AddRead(first_trailers); | 926 AddRead(first_trailers); |
| 927 | 927 |
| 928 // Trailers following trailers: procotol error. | 928 // Trailers following trailers: procotol error. |
| 929 SpdySerializedFrame second_trailers(spdy_util_.ConstructSpdyResponseHeaders( | 929 SpdySerializedFrame second_trailers(spdy_util_.ConstructSpdyResponseHeaders( |
| 930 1, std::move(trailers_block), true)); | 930 1, std::move(trailers_block), true)); |
| 931 AddRead(second_trailers); | 931 AddRead(second_trailers); |
| 932 | 932 |
| 933 SpdySerializedFrame rst( | 933 SpdySerializedFrame rst( |
| 934 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 934 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 935 AddWrite(rst); | 935 AddWrite(rst); |
| 936 | 936 |
| 937 AddReadEOF(); | 937 AddReadEOF(); |
| 938 | 938 |
| 939 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 939 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 940 GetNumWrites()); | 940 GetNumWrites()); |
| 941 MockConnect connect_data(SYNCHRONOUS, OK); | 941 MockConnect connect_data(SYNCHRONOUS, OK); |
| 942 data.set_connect_data(connect_data); | 942 data.set_connect_data(connect_data); |
| 943 session_deps_.socket_factory->AddSocketDataProvider(&data); | 943 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 944 | 944 |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 984 SpdyHeaderBlock trailers_block; | 984 SpdyHeaderBlock trailers_block; |
| 985 trailers_block["foo"] = "bar"; | 985 trailers_block["foo"] = "bar"; |
| 986 SpdySerializedFrame trailers(spdy_util_.ConstructSpdyResponseHeaders( | 986 SpdySerializedFrame trailers(spdy_util_.ConstructSpdyResponseHeaders( |
| 987 1, std::move(trailers_block), false)); | 987 1, std::move(trailers_block), false)); |
| 988 AddRead(trailers); | 988 AddRead(trailers); |
| 989 | 989 |
| 990 // DATA frame following trailers: protocol error. | 990 // DATA frame following trailers: protocol error. |
| 991 AddRead(body); | 991 AddRead(body); |
| 992 | 992 |
| 993 SpdySerializedFrame rst( | 993 SpdySerializedFrame rst( |
| 994 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 994 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 995 AddWrite(rst); | 995 AddWrite(rst); |
| 996 | 996 |
| 997 AddReadEOF(); | 997 AddReadEOF(); |
| 998 | 998 |
| 999 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 999 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 1000 GetNumWrites()); | 1000 GetNumWrites()); |
| 1001 MockConnect connect_data(SYNCHRONOUS, OK); | 1001 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1002 data.set_connect_data(connect_data); | 1002 data.set_connect_data(connect_data); |
| 1003 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1003 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1004 | 1004 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); | 1091 spdy_util_.ConstructSpdyGet(nullptr, 0, 1, LOWEST, true)); |
| 1092 AddWrite(req); | 1092 AddWrite(req); |
| 1093 | 1093 |
| 1094 SpdyHeaderBlock incorrect_headers; | 1094 SpdyHeaderBlock incorrect_headers; |
| 1095 incorrect_headers[":status"] = "nan"; | 1095 incorrect_headers[":status"] = "nan"; |
| 1096 SpdySerializedFrame reply(spdy_util_.ConstructSpdyResponseHeaders( | 1096 SpdySerializedFrame reply(spdy_util_.ConstructSpdyResponseHeaders( |
| 1097 1, std::move(incorrect_headers), false)); | 1097 1, std::move(incorrect_headers), false)); |
| 1098 AddRead(reply); | 1098 AddRead(reply); |
| 1099 | 1099 |
| 1100 SpdySerializedFrame rst( | 1100 SpdySerializedFrame rst( |
| 1101 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_PROTOCOL_ERROR)); | 1101 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_PROTOCOL_ERROR)); |
| 1102 AddWrite(rst); | 1102 AddWrite(rst); |
| 1103 | 1103 |
| 1104 AddReadEOF(); | 1104 AddReadEOF(); |
| 1105 | 1105 |
| 1106 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 1106 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 1107 GetNumWrites()); | 1107 GetNumWrites()); |
| 1108 MockConnect connect_data(SYNCHRONOUS, OK); | 1108 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1109 data.set_connect_data(connect_data); | 1109 data.set_connect_data(connect_data); |
| 1110 session_deps_.socket_factory->AddSocketDataProvider(&data); | 1110 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 1111 | 1111 |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1196 TEST_F(SpdyStreamTest, IncreaseSendWindowSizeOverflow) { | 1196 TEST_F(SpdyStreamTest, IncreaseSendWindowSizeOverflow) { |
| 1197 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( | 1197 SpdySerializedFrame req(spdy_util_.ConstructSpdyPost( |
| 1198 kDefaultUrl, 1, kPostBodyLength, LOWEST, nullptr, 0)); | 1198 kDefaultUrl, 1, kPostBodyLength, LOWEST, nullptr, 0)); |
| 1199 AddWrite(req); | 1199 AddWrite(req); |
| 1200 | 1200 |
| 1201 AddReadPause(); | 1201 AddReadPause(); |
| 1202 | 1202 |
| 1203 // Triggered by the overflowing call to IncreaseSendWindowSize | 1203 // Triggered by the overflowing call to IncreaseSendWindowSize |
| 1204 // below. | 1204 // below. |
| 1205 SpdySerializedFrame rst( | 1205 SpdySerializedFrame rst( |
| 1206 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_FLOW_CONTROL_ERROR)); | 1206 spdy_util_.ConstructSpdyRstStream(1, ERROR_CODE_FLOW_CONTROL_ERROR)); |
| 1207 AddWrite(rst); | 1207 AddWrite(rst); |
| 1208 | 1208 |
| 1209 AddReadEOF(); | 1209 AddReadEOF(); |
| 1210 | 1210 |
| 1211 BoundTestNetLog log; | 1211 BoundTestNetLog log; |
| 1212 | 1212 |
| 1213 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), | 1213 SequencedSocketData data(GetReads(), GetNumReads(), GetWrites(), |
| 1214 GetNumWrites()); | 1214 GetNumWrites()); |
| 1215 MockConnect connect_data(SYNCHRONOUS, OK); | 1215 MockConnect connect_data(SYNCHRONOUS, OK); |
| 1216 data.set_connect_data(connect_data); | 1216 data.set_connect_data(connect_data); |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1499 EXPECT_EQ(response_len, stream->raw_received_bytes()); | 1499 EXPECT_EQ(response_len, stream->raw_received_bytes()); |
| 1500 | 1500 |
| 1501 // FIN | 1501 // FIN |
| 1502 data.Resume(); | 1502 data.Resume(); |
| 1503 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); | 1503 EXPECT_THAT(delegate.WaitForClose(), IsError(ERR_CONNECTION_CLOSED)); |
| 1504 } | 1504 } |
| 1505 | 1505 |
| 1506 } // namespace test | 1506 } // namespace test |
| 1507 | 1507 |
| 1508 } // namespace net | 1508 } // namespace net |
| OLD | NEW |