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

Side by Side Diff: net/spdy/spdy_session_unittest.cc

Issue 2144933005: Move some SpdyHeaderBlock instances from heap to stack. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 380 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 391 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
392 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 392 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
393 test::StreamDelegateDoNothing delegate1(spdy_stream1); 393 test::StreamDelegateDoNothing delegate1(spdy_stream1);
394 spdy_stream1->SetDelegate(&delegate1); 394 spdy_stream1->SetDelegate(&delegate1);
395 395
396 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 396 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
397 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 397 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
398 test::StreamDelegateDoNothing delegate2(spdy_stream2); 398 test::StreamDelegateDoNothing delegate2(spdy_stream2);
399 spdy_stream2->SetDelegate(&delegate2); 399 spdy_stream2->SetDelegate(&delegate2);
400 400
401 std::unique_ptr<SpdyHeaderBlock> headers( 401 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
402 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))); 402 SpdyHeaderBlock headers2(headers.Clone());
403 std::unique_ptr<SpdyHeaderBlock> headers2(
404 new SpdyHeaderBlock(headers->Clone()));
405 403
406 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 404 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
407 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 405 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
408 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 406 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
409 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 407 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
410 408
411 base::RunLoop().RunUntilIdle(); 409 base::RunLoop().RunUntilIdle();
412 410
413 EXPECT_EQ(1u, spdy_stream1->stream_id()); 411 EXPECT_EQ(1u, spdy_stream1->stream_id());
414 EXPECT_EQ(3u, spdy_stream2->stream_id()); 412 EXPECT_EQ(3u, spdy_stream2->stream_id());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes)); 454 SequencedSocketData data(reads, arraysize(reads), writes, arraysize(writes));
457 session_deps_.socket_factory->AddSocketDataProvider(&data); 455 session_deps_.socket_factory->AddSocketDataProvider(&data);
458 456
459 CreateNetworkSession(); 457 CreateNetworkSession();
460 CreateInsecureSpdySession(); 458 CreateInsecureSpdySession();
461 459
462 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 460 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
463 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 461 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
464 test::StreamDelegateDoNothing delegate1(spdy_stream1); 462 test::StreamDelegateDoNothing delegate1(spdy_stream1);
465 spdy_stream1->SetDelegate(&delegate1); 463 spdy_stream1->SetDelegate(&delegate1);
466 std::unique_ptr<SpdyHeaderBlock> headers1( 464 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
467 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
468 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 465 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
469 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 466 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
470 467
471 EXPECT_EQ(0u, spdy_stream1->stream_id()); 468 EXPECT_EQ(0u, spdy_stream1->stream_id());
472 469
473 // Active stream 1. 470 // Active stream 1.
474 base::RunLoop().RunUntilIdle(); 471 base::RunLoop().RunUntilIdle();
475 EXPECT_EQ(1u, spdy_stream1->stream_id()); 472 EXPECT_EQ(1u, spdy_stream1->stream_id());
476 EXPECT_TRUE(session_->IsStreamActive(1)); 473 EXPECT_TRUE(session_->IsStreamActive(1));
477 474
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 524 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
528 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 525 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
529 test::StreamDelegateDoNothing delegate1(spdy_stream1); 526 test::StreamDelegateDoNothing delegate1(spdy_stream1);
530 spdy_stream1->SetDelegate(&delegate1); 527 spdy_stream1->SetDelegate(&delegate1);
531 528
532 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 529 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
533 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 530 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
534 test::StreamDelegateDoNothing delegate2(spdy_stream2); 531 test::StreamDelegateDoNothing delegate2(spdy_stream2);
535 spdy_stream2->SetDelegate(&delegate2); 532 spdy_stream2->SetDelegate(&delegate2);
536 533
537 std::unique_ptr<SpdyHeaderBlock> headers( 534 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
538 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))); 535 SpdyHeaderBlock headers2(headers.Clone());
539 std::unique_ptr<SpdyHeaderBlock> headers2(
540 new SpdyHeaderBlock(headers->Clone()));
541 536
542 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 537 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
543 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 538 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
544 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 539 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
545 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 540 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
546 541
547 base::RunLoop().RunUntilIdle(); 542 base::RunLoop().RunUntilIdle();
548 543
549 EXPECT_EQ(1u, spdy_stream1->stream_id()); 544 EXPECT_EQ(1u, spdy_stream1->stream_id());
550 EXPECT_EQ(3u, spdy_stream2->stream_id()); 545 EXPECT_EQ(3u, spdy_stream2->stream_id());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 595 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
601 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 596 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
602 test::StreamDelegateDoNothing delegate1(spdy_stream1); 597 test::StreamDelegateDoNothing delegate1(spdy_stream1);
603 spdy_stream1->SetDelegate(&delegate1); 598 spdy_stream1->SetDelegate(&delegate1);
604 599
605 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 600 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
606 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 601 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
607 test::StreamDelegateDoNothing delegate2(spdy_stream2); 602 test::StreamDelegateDoNothing delegate2(spdy_stream2);
608 spdy_stream2->SetDelegate(&delegate2); 603 spdy_stream2->SetDelegate(&delegate2);
609 604
610 std::unique_ptr<SpdyHeaderBlock> headers( 605 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
611 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))); 606 SpdyHeaderBlock headers2(headers.Clone());
612 std::unique_ptr<SpdyHeaderBlock> headers2(
613 new SpdyHeaderBlock(headers->Clone()));
614 607
615 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 608 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
616 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 609 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
617 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 610 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
618 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 611 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
619 612
620 base::RunLoop().RunUntilIdle(); 613 base::RunLoop().RunUntilIdle();
621 614
622 EXPECT_EQ(1u, spdy_stream1->stream_id()); 615 EXPECT_EQ(1u, spdy_stream1->stream_id());
623 EXPECT_EQ(3u, spdy_stream2->stream_id()); 616 EXPECT_EQ(3u, spdy_stream2->stream_id());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 session_deps_.socket_factory->AddSocketDataProvider(&data); 679 session_deps_.socket_factory->AddSocketDataProvider(&data);
687 680
688 CreateNetworkSession(); 681 CreateNetworkSession();
689 CreateInsecureSpdySession(); 682 CreateInsecureSpdySession();
690 683
691 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 684 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
692 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 685 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
693 test::StreamDelegateDoNothing delegate(spdy_stream); 686 test::StreamDelegateDoNothing delegate(spdy_stream);
694 spdy_stream->SetDelegate(&delegate); 687 spdy_stream->SetDelegate(&delegate);
695 688
696 std::unique_ptr<SpdyHeaderBlock> headers( 689 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
697 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
698 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 690 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
699 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 691 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
700 692
701 base::RunLoop().RunUntilIdle(); 693 base::RunLoop().RunUntilIdle();
702 694
703 // Stream and session closed gracefully. 695 // Stream and session closed gracefully.
704 EXPECT_TRUE(delegate.StreamIsClosed()); 696 EXPECT_TRUE(delegate.StreamIsClosed());
705 EXPECT_THAT(delegate.WaitForClose(), IsOk()); 697 EXPECT_THAT(delegate.WaitForClose(), IsOk());
706 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); 698 EXPECT_EQ(kUploadData, delegate.TakeReceivedData());
707 EXPECT_FALSE(session_); 699 EXPECT_FALSE(session_);
(...skipping 21 matching lines...) Expand all
729 session_deps_.socket_factory->AddSocketDataProvider(&data); 721 session_deps_.socket_factory->AddSocketDataProvider(&data);
730 722
731 CreateNetworkSession(); 723 CreateNetworkSession();
732 CreateInsecureSpdySession(); 724 CreateInsecureSpdySession();
733 725
734 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 726 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
735 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 727 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
736 test::StreamDelegateDoNothing delegate(spdy_stream); 728 test::StreamDelegateDoNothing delegate(spdy_stream);
737 spdy_stream->SetDelegate(&delegate); 729 spdy_stream->SetDelegate(&delegate);
738 730
739 std::unique_ptr<SpdyHeaderBlock> headers( 731 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
740 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
741 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 732 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
742 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 733 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
743 734
744 base::RunLoop().RunUntilIdle(); 735 base::RunLoop().RunUntilIdle();
745 736
746 EXPECT_EQ(1u, spdy_stream->stream_id()); 737 EXPECT_EQ(1u, spdy_stream->stream_id());
747 738
748 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 739 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
749 740
750 // Read and process the GOAWAY frame. 741 // Read and process the GOAWAY frame.
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 session_deps_.socket_factory->AddSocketDataProvider(&data); 782 session_deps_.socket_factory->AddSocketDataProvider(&data);
792 783
793 CreateNetworkSession(); 784 CreateNetworkSession();
794 CreateInsecureSpdySession(); 785 CreateInsecureSpdySession();
795 786
796 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 787 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
797 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 788 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
798 test::StreamDelegateDoNothing delegate(spdy_stream); 789 test::StreamDelegateDoNothing delegate(spdy_stream);
799 spdy_stream->SetDelegate(&delegate); 790 spdy_stream->SetDelegate(&delegate);
800 791
801 std::unique_ptr<SpdyHeaderBlock> headers( 792 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
802 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
803 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 793 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
804 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 794 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
805 795
806 base::RunLoop().RunUntilIdle(); 796 base::RunLoop().RunUntilIdle();
807 797
808 EXPECT_EQ(1u, spdy_stream->stream_id()); 798 EXPECT_EQ(1u, spdy_stream->stream_id());
809 799
810 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 800 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
811 801
812 // Read and process the GOAWAY frame. 802 // Read and process the GOAWAY frame.
(...skipping 27 matching lines...) Expand all
840 session_deps_.socket_factory->AddSocketDataProvider(&data); 830 session_deps_.socket_factory->AddSocketDataProvider(&data);
841 831
842 CreateNetworkSession(); 832 CreateNetworkSession();
843 CreateInsecureSpdySession(); 833 CreateInsecureSpdySession();
844 834
845 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 835 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
846 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 836 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
847 test::StreamDelegateDoNothing delegate(spdy_stream); 837 test::StreamDelegateDoNothing delegate(spdy_stream);
848 spdy_stream->SetDelegate(&delegate); 838 spdy_stream->SetDelegate(&delegate);
849 839
850 std::unique_ptr<SpdyHeaderBlock> headers( 840 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
851 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
852 841
853 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 842 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
854 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 843 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
855 844
856 base::RunLoop().RunUntilIdle(); 845 base::RunLoop().RunUntilIdle();
857 846
858 EXPECT_EQ(1u, spdy_stream->stream_id()); 847 EXPECT_EQ(1u, spdy_stream->stream_id());
859 848
860 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 849 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
861 850
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 session_deps_.socket_factory->AddSocketDataProvider(&data); 990 session_deps_.socket_factory->AddSocketDataProvider(&data);
1002 991
1003 CreateNetworkSession(); 992 CreateNetworkSession();
1004 CreateInsecureSpdySession(); 993 CreateInsecureSpdySession();
1005 994
1006 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 995 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
1007 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 996 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
1008 test::StreamDelegateDoNothing delegate(spdy_stream); 997 test::StreamDelegateDoNothing delegate(spdy_stream);
1009 spdy_stream->SetDelegate(&delegate); 998 spdy_stream->SetDelegate(&delegate);
1010 999
1011 std::unique_ptr<SpdyHeaderBlock> headers( 1000 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1012 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1013 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1001 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1014 1002
1015 // Shift time so that a ping will be sent out. 1003 // Shift time so that a ping will be sent out.
1016 g_time_delta = base::TimeDelta::FromSeconds(11); 1004 g_time_delta = base::TimeDelta::FromSeconds(11);
1017 1005
1018 base::RunLoop().RunUntilIdle(); 1006 base::RunLoop().RunUntilIdle();
1019 session_->CloseSessionOnError(ERR_ABORTED, "Aborting"); 1007 session_->CloseSessionOnError(ERR_ABORTED, "Aborting");
1020 1008
1021 data.Resume(); 1009 data.Resume();
1022 base::RunLoop().RunUntilIdle(); 1010 base::RunLoop().RunUntilIdle();
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 ERR_IO_PENDING, 1083 ERR_IO_PENDING,
1096 request4.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, 1084 request4.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_,
1097 MEDIUM, BoundNetLog(), callback4.callback())); 1085 MEDIUM, BoundNetLog(), callback4.callback()));
1098 1086
1099 // Streams 1-3 were created. 4th is stalled. No streams are active yet. 1087 // Streams 1-3 were created. 4th is stalled. No streams are active yet.
1100 EXPECT_EQ(0u, session_->num_active_streams()); 1088 EXPECT_EQ(0u, session_->num_active_streams());
1101 EXPECT_EQ(3u, session_->num_created_streams()); 1089 EXPECT_EQ(3u, session_->num_created_streams());
1102 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(MEDIUM)); 1090 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(MEDIUM));
1103 1091
1104 // Activate stream 1. One ID remains available. 1092 // Activate stream 1. One ID remains available.
1105 stream1->SendRequestHeaders( 1093 stream1->SendRequestHeaders(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl),
1106 std::unique_ptr<SpdyHeaderBlock>( 1094 NO_MORE_DATA_TO_SEND);
1107 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))),
1108 NO_MORE_DATA_TO_SEND);
1109 base::RunLoop().RunUntilIdle(); 1095 base::RunLoop().RunUntilIdle();
1110 1096
1111 EXPECT_EQ(kLastStreamId - 2u, stream1->stream_id()); 1097 EXPECT_EQ(kLastStreamId - 2u, stream1->stream_id());
1112 EXPECT_EQ(1u, session_->num_active_streams()); 1098 EXPECT_EQ(1u, session_->num_active_streams());
1113 EXPECT_EQ(2u, session_->num_created_streams()); 1099 EXPECT_EQ(2u, session_->num_created_streams());
1114 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(MEDIUM)); 1100 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(MEDIUM));
1115 1101
1116 // Activate stream 2. ID space is exhausted. 1102 // Activate stream 2. ID space is exhausted.
1117 stream2->SendRequestHeaders( 1103 stream2->SendRequestHeaders(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl),
1118 std::unique_ptr<SpdyHeaderBlock>( 1104 NO_MORE_DATA_TO_SEND);
1119 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))),
1120 NO_MORE_DATA_TO_SEND);
1121 base::RunLoop().RunUntilIdle(); 1105 base::RunLoop().RunUntilIdle();
1122 1106
1123 // Active streams remain active. 1107 // Active streams remain active.
1124 EXPECT_EQ(kLastStreamId, stream2->stream_id()); 1108 EXPECT_EQ(kLastStreamId, stream2->stream_id());
1125 EXPECT_EQ(2u, session_->num_active_streams()); 1109 EXPECT_EQ(2u, session_->num_active_streams());
1126 1110
1127 // Session is going away. Created and stalled streams were aborted. 1111 // Session is going away. Created and stalled streams were aborted.
1128 EXPECT_EQ(SpdySession::STATE_GOING_AWAY, session_->availability_state_); 1112 EXPECT_EQ(SpdySession::STATE_GOING_AWAY, session_->availability_state_);
1129 EXPECT_THAT(delegate3.WaitForClose(), IsError(ERR_ABORTED)); 1113 EXPECT_THAT(delegate3.WaitForClose(), IsError(ERR_ABORTED));
1130 EXPECT_THAT(callback4.WaitForResult(), IsError(ERR_ABORTED)); 1114 EXPECT_THAT(callback4.WaitForResult(), IsError(ERR_ABORTED));
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
1221 // Stream is created. 1205 // Stream is created.
1222 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(MEDIUM)); 1206 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(MEDIUM));
1223 EXPECT_EQ(1u, session_->num_created_streams()); 1207 EXPECT_EQ(1u, session_->num_created_streams());
1224 1208
1225 EXPECT_THAT(callback.WaitForResult(), IsOk()); 1209 EXPECT_THAT(callback.WaitForResult(), IsOk());
1226 1210
1227 // Send request. 1211 // Send request.
1228 base::WeakPtr<SpdyStream> stream = request.ReleaseStream(); 1212 base::WeakPtr<SpdyStream> stream = request.ReleaseStream();
1229 test::StreamDelegateDoNothing delegate(stream); 1213 test::StreamDelegateDoNothing delegate(stream);
1230 stream->SetDelegate(&delegate); 1214 stream->SetDelegate(&delegate);
1231 std::unique_ptr<SpdyHeaderBlock> headers( 1215 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1232 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1233 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1216 stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1234 EXPECT_TRUE(stream->HasUrlFromHeaders()); 1217 EXPECT_TRUE(stream->HasUrlFromHeaders());
1235 1218
1236 EXPECT_THAT(delegate.WaitForClose(), IsOk()); 1219 EXPECT_THAT(delegate.WaitForClose(), IsOk());
1237 EXPECT_EQ("hello!", delegate.TakeReceivedData()); 1220 EXPECT_EQ("hello!", delegate.TakeReceivedData());
1238 1221
1239 // Session is destroyed. 1222 // Session is destroyed.
1240 EXPECT_FALSE(session_); 1223 EXPECT_FALSE(session_);
1241 } 1224 }
1242 1225
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 1317
1335 CreateNetworkSession(); 1318 CreateNetworkSession();
1336 CreateInsecureSpdySession(); 1319 CreateInsecureSpdySession();
1337 1320
1338 // Process the principal request, and the first push stream request & body. 1321 // Process the principal request, and the first push stream request & body.
1339 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 1322 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
1340 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 1323 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
1341 test::StreamDelegateDoNothing delegate(spdy_stream); 1324 test::StreamDelegateDoNothing delegate(spdy_stream);
1342 spdy_stream->SetDelegate(&delegate); 1325 spdy_stream->SetDelegate(&delegate);
1343 1326
1344 std::unique_ptr<SpdyHeaderBlock> headers( 1327 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1345 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1346 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1328 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1347 1329
1348 base::RunLoop().RunUntilIdle(); 1330 base::RunLoop().RunUntilIdle();
1349 1331
1350 // Verify that there is one unclaimed push stream. 1332 // Verify that there is one unclaimed push stream.
1351 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); 1333 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams());
1352 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url( 1334 EXPECT_EQ(1u, session_->count_unclaimed_pushed_streams_for_url(
1353 GURL("https://www.example.org/a.dat"))); 1335 GURL("https://www.example.org/a.dat")));
1354 1336
1355 // Unclaimed push body consumed bytes from the session window. 1337 // Unclaimed push body consumed bytes from the session window.
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
1752 session_deps_.socket_factory->AddSocketDataProvider(&data); 1734 session_deps_.socket_factory->AddSocketDataProvider(&data);
1753 1735
1754 CreateNetworkSession(); 1736 CreateNetworkSession();
1755 CreateInsecureSpdySession(); 1737 CreateInsecureSpdySession();
1756 1738
1757 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 1739 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
1758 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 1740 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
1759 test::StreamDelegateDoNothing delegate(spdy_stream); 1741 test::StreamDelegateDoNothing delegate(spdy_stream);
1760 spdy_stream->SetDelegate(&delegate); 1742 spdy_stream->SetDelegate(&delegate);
1761 1743
1762 std::unique_ptr<SpdyHeaderBlock> headers( 1744 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1763 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1764 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1745 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1765 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 1746 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
1766 1747
1767 // Write request headers & capture resulting histogram update. 1748 // Write request headers & capture resulting histogram update.
1768 base::HistogramTester histogram_tester; 1749 base::HistogramTester histogram_tester;
1769 1750
1770 base::RunLoop().RunUntilIdle(); 1751 base::RunLoop().RunUntilIdle();
1771 // Regression test of compression performance under the request fixture. 1752 // Regression test of compression performance under the request fixture.
1772 histogram_tester.ExpectBucketCount( 1753 histogram_tester.ExpectBucketCount(
1773 "Net.SpdySynStreamCompressionPercentage", 81, 1); 1754 "Net.SpdySynStreamCompressionPercentage", 81, 1);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 base::WeakPtr<SpdyStream> spdy_stream_highest = 1808 base::WeakPtr<SpdyStream> spdy_stream_highest =
1828 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 1809 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
1829 test_url_, HIGHEST, BoundNetLog()); 1810 test_url_, HIGHEST, BoundNetLog());
1830 ASSERT_TRUE(spdy_stream_highest); 1811 ASSERT_TRUE(spdy_stream_highest);
1831 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); 1812 EXPECT_EQ(0u, spdy_stream_highest->stream_id());
1832 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); 1813 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest);
1833 spdy_stream_highest->SetDelegate(&delegate_highest); 1814 spdy_stream_highest->SetDelegate(&delegate_highest);
1834 1815
1835 // Queue the lower priority one first. 1816 // Queue the lower priority one first.
1836 1817
1837 std::unique_ptr<SpdyHeaderBlock> headers_lowest( 1818 SpdyHeaderBlock headers_lowest(
1838 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))); 1819 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1839 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest), 1820 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest),
1840 NO_MORE_DATA_TO_SEND); 1821 NO_MORE_DATA_TO_SEND);
1841 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders()); 1822 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders());
1842 1823
1843 std::unique_ptr<SpdyHeaderBlock> headers_highest( 1824 SpdyHeaderBlock headers_highest(
1844 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl))); 1825 spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1845 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest), 1826 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest),
1846 NO_MORE_DATA_TO_SEND); 1827 NO_MORE_DATA_TO_SEND);
1847 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders()); 1828 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders());
1848 1829
1849 base::RunLoop().RunUntilIdle(); 1830 base::RunLoop().RunUntilIdle();
1850 1831
1851 EXPECT_FALSE(spdy_stream_lowest); 1832 EXPECT_FALSE(spdy_stream_lowest);
1852 EXPECT_FALSE(spdy_stream_highest); 1833 EXPECT_FALSE(spdy_stream_highest);
1853 EXPECT_EQ(3u, delegate_lowest.stream_id()); 1834 EXPECT_EQ(3u, delegate_lowest.stream_id());
1854 EXPECT_EQ(1u, delegate_highest.stream_id()); 1835 EXPECT_EQ(1u, delegate_highest.stream_id());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1890 test::StreamDelegateDoNothing delegate1(spdy_stream1); 1871 test::StreamDelegateDoNothing delegate1(spdy_stream1);
1891 spdy_stream1->SetDelegate(&delegate1); 1872 spdy_stream1->SetDelegate(&delegate1);
1892 1873
1893 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( 1874 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously(
1894 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 1875 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
1895 ASSERT_TRUE(spdy_stream2); 1876 ASSERT_TRUE(spdy_stream2);
1896 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1877 EXPECT_EQ(0u, spdy_stream2->stream_id());
1897 test::StreamDelegateDoNothing delegate2(spdy_stream2); 1878 test::StreamDelegateDoNothing delegate2(spdy_stream2);
1898 spdy_stream2->SetDelegate(&delegate2); 1879 spdy_stream2->SetDelegate(&delegate2);
1899 1880
1900 std::unique_ptr<SpdyHeaderBlock> headers( 1881 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1901 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1902 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1882 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1903 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 1883 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1904 1884
1905 std::unique_ptr<SpdyHeaderBlock> headers2( 1885 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1906 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1907 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1886 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1908 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 1887 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1909 1888
1910 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1889 EXPECT_EQ(0u, spdy_stream1->stream_id());
1911 1890
1912 spdy_stream1->Cancel(); 1891 spdy_stream1->Cancel();
1913 EXPECT_FALSE(spdy_stream1); 1892 EXPECT_FALSE(spdy_stream1);
1914 1893
1915 EXPECT_EQ(0u, delegate1.stream_id()); 1894 EXPECT_EQ(0u, delegate1.stream_id());
1916 1895
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1953 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 1932 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, LOWEST, BoundNetLog());
1954 ASSERT_TRUE(spdy_stream2); 1933 ASSERT_TRUE(spdy_stream2);
1955 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1934 EXPECT_EQ(0u, spdy_stream2->stream_id());
1956 1935
1957 test::ClosingDelegate delegate1(spdy_stream1); 1936 test::ClosingDelegate delegate1(spdy_stream1);
1958 spdy_stream1->SetDelegate(&delegate1); 1937 spdy_stream1->SetDelegate(&delegate1);
1959 1938
1960 test::ClosingDelegate delegate2(spdy_stream2); 1939 test::ClosingDelegate delegate2(spdy_stream2);
1961 spdy_stream2->SetDelegate(&delegate2); 1940 spdy_stream2->SetDelegate(&delegate2);
1962 1941
1963 std::unique_ptr<SpdyHeaderBlock> headers( 1942 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1964 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1965 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1943 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
1966 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 1944 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
1967 1945
1968 std::unique_ptr<SpdyHeaderBlock> headers2( 1946 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
1969 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
1970 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 1947 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
1971 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 1948 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
1972 1949
1973 // Ensure that the streams have not yet been activated and assigned an id. 1950 // Ensure that the streams have not yet been activated and assigned an id.
1974 EXPECT_EQ(0u, spdy_stream1->stream_id()); 1951 EXPECT_EQ(0u, spdy_stream1->stream_id());
1975 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1952 EXPECT_EQ(0u, spdy_stream2->stream_id());
1976 1953
1977 // Ensure we don't crash while closing the session. 1954 // Ensure we don't crash while closing the session.
1978 session_->CloseSessionOnError(ERR_ABORTED, std::string()); 1955 session_->CloseSessionOnError(ERR_ABORTED, std::string());
1979 1956
(...skipping 29 matching lines...) Expand all
2009 EXPECT_EQ(0u, spdy_stream2->stream_id()); 1986 EXPECT_EQ(0u, spdy_stream2->stream_id());
2010 1987
2011 // Make |spdy_stream1| close |spdy_stream2|. 1988 // Make |spdy_stream1| close |spdy_stream2|.
2012 test::ClosingDelegate delegate1(spdy_stream2); 1989 test::ClosingDelegate delegate1(spdy_stream2);
2013 spdy_stream1->SetDelegate(&delegate1); 1990 spdy_stream1->SetDelegate(&delegate1);
2014 1991
2015 // Make |spdy_stream2| close |spdy_stream1|. 1992 // Make |spdy_stream2| close |spdy_stream1|.
2016 test::ClosingDelegate delegate2(spdy_stream1); 1993 test::ClosingDelegate delegate2(spdy_stream1);
2017 spdy_stream2->SetDelegate(&delegate2); 1994 spdy_stream2->SetDelegate(&delegate2);
2018 1995
2019 std::unique_ptr<SpdyHeaderBlock> headers( 1996 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2020 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2021 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 1997 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2022 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 1998 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2023 1999
2024 std::unique_ptr<SpdyHeaderBlock> headers2( 2000 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2025 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2026 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2001 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2027 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 2002 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
2028 2003
2029 // Ensure that the streams have not yet been activated and assigned an id. 2004 // Ensure that the streams have not yet been activated and assigned an id.
2030 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2005 EXPECT_EQ(0u, spdy_stream1->stream_id());
2031 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2006 EXPECT_EQ(0u, spdy_stream2->stream_id());
2032 2007
2033 // Ensure we don't crash while closing the session. 2008 // Ensure we don't crash while closing the session.
2034 session_->CloseSessionOnError(ERR_ABORTED, std::string()); 2009 session_->CloseSessionOnError(ERR_ABORTED, std::string());
2035 2010
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2076 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2051 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2077 ASSERT_TRUE(spdy_stream2); 2052 ASSERT_TRUE(spdy_stream2);
2078 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2053 EXPECT_EQ(0u, spdy_stream2->stream_id());
2079 2054
2080 test::ClosingDelegate delegate1(spdy_stream1); 2055 test::ClosingDelegate delegate1(spdy_stream1);
2081 spdy_stream1->SetDelegate(&delegate1); 2056 spdy_stream1->SetDelegate(&delegate1);
2082 2057
2083 test::ClosingDelegate delegate2(spdy_stream2); 2058 test::ClosingDelegate delegate2(spdy_stream2);
2084 spdy_stream2->SetDelegate(&delegate2); 2059 spdy_stream2->SetDelegate(&delegate2);
2085 2060
2086 std::unique_ptr<SpdyHeaderBlock> headers( 2061 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2087 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2088 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2062 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2089 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2063 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2090 2064
2091 std::unique_ptr<SpdyHeaderBlock> headers2( 2065 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2092 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2093 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2066 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2094 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 2067 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
2095 2068
2096 // Ensure that the streams have not yet been activated and assigned an id. 2069 // Ensure that the streams have not yet been activated and assigned an id.
2097 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2070 EXPECT_EQ(0u, spdy_stream1->stream_id());
2098 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2071 EXPECT_EQ(0u, spdy_stream2->stream_id());
2099 2072
2100 base::RunLoop().RunUntilIdle(); 2073 base::RunLoop().RunUntilIdle();
2101 2074
2102 EXPECT_EQ(1u, spdy_stream1->stream_id()); 2075 EXPECT_EQ(1u, spdy_stream1->stream_id());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2152 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2125 EXPECT_EQ(0u, spdy_stream2->stream_id());
2153 2126
2154 // Make |spdy_stream1| close |spdy_stream2|. 2127 // Make |spdy_stream1| close |spdy_stream2|.
2155 test::ClosingDelegate delegate1(spdy_stream2); 2128 test::ClosingDelegate delegate1(spdy_stream2);
2156 spdy_stream1->SetDelegate(&delegate1); 2129 spdy_stream1->SetDelegate(&delegate1);
2157 2130
2158 // Make |spdy_stream2| close |spdy_stream1|. 2131 // Make |spdy_stream2| close |spdy_stream1|.
2159 test::ClosingDelegate delegate2(spdy_stream1); 2132 test::ClosingDelegate delegate2(spdy_stream1);
2160 spdy_stream2->SetDelegate(&delegate2); 2133 spdy_stream2->SetDelegate(&delegate2);
2161 2134
2162 std::unique_ptr<SpdyHeaderBlock> headers( 2135 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2163 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2164 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2136 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2165 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2137 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2166 2138
2167 std::unique_ptr<SpdyHeaderBlock> headers2( 2139 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2168 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2169 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2140 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2170 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); 2141 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders());
2171 2142
2172 // Ensure that the streams have not yet been activated and assigned an id. 2143 // Ensure that the streams have not yet been activated and assigned an id.
2173 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2144 EXPECT_EQ(0u, spdy_stream1->stream_id());
2174 EXPECT_EQ(0u, spdy_stream2->stream_id()); 2145 EXPECT_EQ(0u, spdy_stream2->stream_id());
2175 2146
2176 base::RunLoop().RunUntilIdle(); 2147 base::RunLoop().RunUntilIdle();
2177 2148
2178 EXPECT_EQ(1u, spdy_stream1->stream_id()); 2149 EXPECT_EQ(1u, spdy_stream1->stream_id());
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
2240 CreateInsecureSpdySession(); 2211 CreateInsecureSpdySession();
2241 2212
2242 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 2213 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
2243 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2214 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2244 ASSERT_TRUE(spdy_stream); 2215 ASSERT_TRUE(spdy_stream);
2245 EXPECT_EQ(0u, spdy_stream->stream_id()); 2216 EXPECT_EQ(0u, spdy_stream->stream_id());
2246 2217
2247 SessionClosingDelegate delegate(spdy_stream, session_); 2218 SessionClosingDelegate delegate(spdy_stream, session_);
2248 spdy_stream->SetDelegate(&delegate); 2219 spdy_stream->SetDelegate(&delegate);
2249 2220
2250 std::unique_ptr<SpdyHeaderBlock> headers( 2221 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2251 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2252 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2222 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2253 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 2223 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
2254 2224
2255 EXPECT_EQ(0u, spdy_stream->stream_id()); 2225 EXPECT_EQ(0u, spdy_stream->stream_id());
2256 2226
2257 base::RunLoop().RunUntilIdle(); 2227 base::RunLoop().RunUntilIdle();
2258 2228
2259 EXPECT_EQ(1u, spdy_stream->stream_id()); 2229 EXPECT_EQ(1u, spdy_stream->stream_id());
2260 2230
2261 // Ensure we don't crash while closing the stream (which closes the 2231 // Ensure we don't crash while closing the stream (which closes the
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
2413 SpdyStreamRequest request3; 2383 SpdyStreamRequest request3;
2414 ASSERT_EQ( 2384 ASSERT_EQ(
2415 ERR_IO_PENDING, 2385 ERR_IO_PENDING,
2416 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, 2386 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_,
2417 LOWEST, BoundNetLog(), callback3.callback())); 2387 LOWEST, BoundNetLog(), callback3.callback()));
2418 2388
2419 EXPECT_EQ(0u, session_->num_active_streams()); 2389 EXPECT_EQ(0u, session_->num_active_streams());
2420 EXPECT_EQ(1u, session_->num_created_streams()); 2390 EXPECT_EQ(1u, session_->num_created_streams());
2421 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); 2391 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST));
2422 2392
2423 std::unique_ptr<SpdyHeaderBlock> headers( 2393 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2424 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2425 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 2394 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
2426 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2395 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2427 2396
2428 // Run until 1st stream is activated and then closed. 2397 // Run until 1st stream is activated and then closed.
2429 EXPECT_EQ(0u, delegate1.stream_id()); 2398 EXPECT_EQ(0u, delegate1.stream_id());
2430 base::RunLoop().RunUntilIdle(); 2399 base::RunLoop().RunUntilIdle();
2431 EXPECT_FALSE(spdy_stream1); 2400 EXPECT_FALSE(spdy_stream1);
2432 EXPECT_EQ(1u, delegate1.stream_id()); 2401 EXPECT_EQ(1u, delegate1.stream_id());
2433 2402
2434 EXPECT_EQ(0u, session_->num_active_streams()); 2403 EXPECT_EQ(0u, session_->num_active_streams());
2435 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); 2404 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST));
2436 2405
2437 // Pump loop for SpdySession::ProcessPendingStreamRequests() to 2406 // Pump loop for SpdySession::ProcessPendingStreamRequests() to
2438 // create the 2nd stream. 2407 // create the 2nd stream.
2439 base::RunLoop().RunUntilIdle(); 2408 base::RunLoop().RunUntilIdle();
2440 2409
2441 EXPECT_EQ(0u, session_->num_active_streams()); 2410 EXPECT_EQ(0u, session_->num_active_streams());
2442 EXPECT_EQ(1u, session_->num_created_streams()); 2411 EXPECT_EQ(1u, session_->num_created_streams());
2443 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); 2412 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST));
2444 2413
2445 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); 2414 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream();
2446 test::StreamDelegateDoNothing delegate2(stream2); 2415 test::StreamDelegateDoNothing delegate2(stream2);
2447 stream2->SetDelegate(&delegate2); 2416 stream2->SetDelegate(&delegate2);
2448 std::unique_ptr<SpdyHeaderBlock> headers2( 2417 SpdyHeaderBlock headers2(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2449 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2450 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); 2418 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND);
2451 EXPECT_TRUE(stream2->HasUrlFromHeaders()); 2419 EXPECT_TRUE(stream2->HasUrlFromHeaders());
2452 2420
2453 // Run until 2nd stream is activated and then closed. 2421 // Run until 2nd stream is activated and then closed.
2454 EXPECT_EQ(0u, delegate2.stream_id()); 2422 EXPECT_EQ(0u, delegate2.stream_id());
2455 base::RunLoop().RunUntilIdle(); 2423 base::RunLoop().RunUntilIdle();
2456 EXPECT_FALSE(stream2); 2424 EXPECT_FALSE(stream2);
2457 EXPECT_EQ(3u, delegate2.stream_id()); 2425 EXPECT_EQ(3u, delegate2.stream_id());
2458 2426
2459 EXPECT_EQ(0u, session_->num_active_streams()); 2427 EXPECT_EQ(0u, session_->num_active_streams());
2460 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); 2428 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST));
2461 2429
2462 // Pump loop for SpdySession::ProcessPendingStreamRequests() to 2430 // Pump loop for SpdySession::ProcessPendingStreamRequests() to
2463 // create the 3rd stream. 2431 // create the 3rd stream.
2464 base::RunLoop().RunUntilIdle(); 2432 base::RunLoop().RunUntilIdle();
2465 2433
2466 EXPECT_EQ(0u, session_->num_active_streams()); 2434 EXPECT_EQ(0u, session_->num_active_streams());
2467 EXPECT_EQ(1u, session_->num_created_streams()); 2435 EXPECT_EQ(1u, session_->num_created_streams());
2468 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); 2436 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST));
2469 2437
2470 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); 2438 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream();
2471 test::StreamDelegateDoNothing delegate3(stream3); 2439 test::StreamDelegateDoNothing delegate3(stream3);
2472 stream3->SetDelegate(&delegate3); 2440 stream3->SetDelegate(&delegate3);
2473 std::unique_ptr<SpdyHeaderBlock> headers3( 2441 SpdyHeaderBlock headers3(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2474 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2475 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND); 2442 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND);
2476 EXPECT_TRUE(stream3->HasUrlFromHeaders()); 2443 EXPECT_TRUE(stream3->HasUrlFromHeaders());
2477 2444
2478 // Run until 2nd stream is activated and then closed. 2445 // Run until 2nd stream is activated and then closed.
2479 EXPECT_EQ(0u, delegate3.stream_id()); 2446 EXPECT_EQ(0u, delegate3.stream_id());
2480 base::RunLoop().RunUntilIdle(); 2447 base::RunLoop().RunUntilIdle();
2481 EXPECT_FALSE(stream3); 2448 EXPECT_FALSE(stream3);
2482 EXPECT_EQ(5u, delegate3.stream_id()); 2449 EXPECT_EQ(5u, delegate3.stream_id());
2483 2450
2484 EXPECT_EQ(0u, session_->num_active_streams()); 2451 EXPECT_EQ(0u, session_->num_active_streams());
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
2612 CreateNetworkSession(); 2579 CreateNetworkSession();
2613 CreateInsecureSpdySession(); 2580 CreateInsecureSpdySession();
2614 2581
2615 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2582 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2616 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2583 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2617 ASSERT_TRUE(spdy_stream1); 2584 ASSERT_TRUE(spdy_stream1);
2618 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2585 EXPECT_EQ(0u, spdy_stream1->stream_id());
2619 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2586 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2620 spdy_stream1->SetDelegate(&delegate1); 2587 spdy_stream1->SetDelegate(&delegate1);
2621 2588
2622 std::unique_ptr<SpdyHeaderBlock> headers1( 2589 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2623 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2624 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2590 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2625 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2591 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2626 2592
2627 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't 2593 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't
2628 // post a task. 2594 // post a task.
2629 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2595 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2630 2596
2631 // Run until 1st read. 2597 // Run until 1st read.
2632 EXPECT_EQ(0u, delegate1.stream_id()); 2598 EXPECT_EQ(0u, delegate1.stream_id());
2633 base::RunLoop().RunUntilIdle(); 2599 base::RunLoop().RunUntilIdle();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2676 CreateNetworkSession(); 2642 CreateNetworkSession();
2677 CreateInsecureSpdySession(); 2643 CreateInsecureSpdySession();
2678 2644
2679 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2645 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2680 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2646 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2681 ASSERT_TRUE(spdy_stream1); 2647 ASSERT_TRUE(spdy_stream1);
2682 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2648 EXPECT_EQ(0u, spdy_stream1->stream_id());
2683 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2649 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2684 spdy_stream1->SetDelegate(&delegate1); 2650 spdy_stream1->SetDelegate(&delegate1);
2685 2651
2686 std::unique_ptr<SpdyHeaderBlock> headers1( 2652 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2687 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2688 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2653 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2689 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2654 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2690 2655
2691 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a 2656 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a
2692 // task. 2657 // task.
2693 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2658 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2694 2659
2695 EXPECT_EQ(0u, delegate1.stream_id()); 2660 EXPECT_EQ(0u, delegate1.stream_id());
2696 EXPECT_EQ(0u, observer.executed_count()); 2661 EXPECT_EQ(0u, observer.executed_count());
2697 2662
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2747 CreateNetworkSession(); 2712 CreateNetworkSession();
2748 CreateInsecureSpdySession(); 2713 CreateInsecureSpdySession();
2749 2714
2750 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2715 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2751 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2716 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2752 ASSERT_TRUE(spdy_stream1); 2717 ASSERT_TRUE(spdy_stream1);
2753 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2718 EXPECT_EQ(0u, spdy_stream1->stream_id());
2754 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2719 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2755 spdy_stream1->SetDelegate(&delegate1); 2720 spdy_stream1->SetDelegate(&delegate1);
2756 2721
2757 std::unique_ptr<SpdyHeaderBlock> headers1( 2722 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2758 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2759 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2723 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2760 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2724 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2761 2725
2762 // Run until 1st read. 2726 // Run until 1st read.
2763 EXPECT_EQ(0u, delegate1.stream_id()); 2727 EXPECT_EQ(0u, delegate1.stream_id());
2764 base::RunLoop().RunUntilIdle(); 2728 base::RunLoop().RunUntilIdle();
2765 EXPECT_EQ(1u, delegate1.stream_id()); 2729 EXPECT_EQ(1u, delegate1.stream_id());
2766 2730
2767 // Read all the data and verify SpdySession::DoReadLoop has posted a task. 2731 // Read all the data and verify SpdySession::DoReadLoop has posted a task.
2768 data.Resume(); 2732 data.Resume();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2828 CreateNetworkSession(); 2792 CreateNetworkSession();
2829 CreateInsecureSpdySession(); 2793 CreateInsecureSpdySession();
2830 2794
2831 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2795 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2832 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2796 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2833 ASSERT_TRUE(spdy_stream1); 2797 ASSERT_TRUE(spdy_stream1);
2834 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2798 EXPECT_EQ(0u, spdy_stream1->stream_id());
2835 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2799 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2836 spdy_stream1->SetDelegate(&delegate1); 2800 spdy_stream1->SetDelegate(&delegate1);
2837 2801
2838 std::unique_ptr<SpdyHeaderBlock> headers1( 2802 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2839 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2840 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2803 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2841 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2804 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2842 2805
2843 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. 2806 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task.
2844 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2807 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2845 2808
2846 // Run until 1st read. 2809 // Run until 1st read.
2847 EXPECT_EQ(0u, delegate1.stream_id()); 2810 EXPECT_EQ(0u, delegate1.stream_id());
2848 base::RunLoop().RunUntilIdle(); 2811 base::RunLoop().RunUntilIdle();
2849 EXPECT_EQ(1u, delegate1.stream_id()); 2812 EXPECT_EQ(1u, delegate1.stream_id());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
2935 CreateNetworkSession(); 2898 CreateNetworkSession();
2936 CreateInsecureSpdySession(); 2899 CreateInsecureSpdySession();
2937 2900
2938 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2901 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
2939 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2902 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
2940 ASSERT_TRUE(spdy_stream1); 2903 ASSERT_TRUE(spdy_stream1);
2941 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2904 EXPECT_EQ(0u, spdy_stream1->stream_id());
2942 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2905 test::StreamDelegateDoNothing delegate1(spdy_stream1);
2943 spdy_stream1->SetDelegate(&delegate1); 2906 spdy_stream1->SetDelegate(&delegate1);
2944 2907
2945 std::unique_ptr<SpdyHeaderBlock> headers1( 2908 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
2946 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
2947 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2909 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
2948 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2910 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
2949 2911
2950 // Set up the TaskObserver to monitor SpdySession::DoReadLoop 2912 // Set up the TaskObserver to monitor SpdySession::DoReadLoop
2951 // posting of tasks. 2913 // posting of tasks.
2952 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); 2914 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop");
2953 2915
2954 // Run until 1st read. 2916 // Run until 1st read.
2955 EXPECT_EQ(0u, delegate1.stream_id()); 2917 EXPECT_EQ(0u, delegate1.stream_id());
2956 base::RunLoop().RunUntilIdle(); 2918 base::RunLoop().RunUntilIdle();
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
3004 CreateNetworkSession(); 2966 CreateNetworkSession();
3005 CreateInsecureSpdySession(); 2967 CreateInsecureSpdySession();
3006 2968
3007 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( 2969 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously(
3008 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 2970 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
3009 test::StreamDelegateDoNothing delegate1(spdy_stream1); 2971 test::StreamDelegateDoNothing delegate1(spdy_stream1);
3010 spdy_stream1->SetDelegate(&delegate1); 2972 spdy_stream1->SetDelegate(&delegate1);
3011 ASSERT_TRUE(spdy_stream1); 2973 ASSERT_TRUE(spdy_stream1);
3012 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2974 EXPECT_EQ(0u, spdy_stream1->stream_id());
3013 2975
3014 std::unique_ptr<SpdyHeaderBlock> headers1( 2976 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3015 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
3016 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); 2977 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND);
3017 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 2978 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
3018 2979
3019 // Run until 1st read. 2980 // Run until 1st read.
3020 EXPECT_EQ(0u, spdy_stream1->stream_id()); 2981 EXPECT_EQ(0u, spdy_stream1->stream_id());
3021 base::RunLoop().RunUntilIdle(); 2982 base::RunLoop().RunUntilIdle();
3022 EXPECT_EQ(1u, spdy_stream1->stream_id()); 2983 EXPECT_EQ(1u, spdy_stream1->stream_id());
3023 2984
3024 // Run until GoAway. 2985 // Run until GoAway.
3025 data.Resume(); 2986 data.Resume();
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
3217 // Create a stream using the session, and send a request. 3178 // Create a stream using the session, and send a request.
3218 3179
3219 TestCompletionCallback callback1; 3180 TestCompletionCallback callback1;
3220 base::WeakPtr<SpdyStream> spdy_stream1 = 3181 base::WeakPtr<SpdyStream> spdy_stream1 =
3221 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 3182 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
3222 test_url_, DEFAULT_PRIORITY, BoundNetLog()); 3183 test_url_, DEFAULT_PRIORITY, BoundNetLog());
3223 ASSERT_TRUE(spdy_stream1.get()); 3184 ASSERT_TRUE(spdy_stream1.get());
3224 test::StreamDelegateDoNothing delegate1(spdy_stream1); 3185 test::StreamDelegateDoNothing delegate1(spdy_stream1);
3225 spdy_stream1->SetDelegate(&delegate1); 3186 spdy_stream1->SetDelegate(&delegate1);
3226 3187
3227 std::unique_ptr<SpdyHeaderBlock> headers1( 3188 SpdyHeaderBlock headers1(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3228 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
3229 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders( 3189 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders(
3230 std::move(headers1), NO_MORE_DATA_TO_SEND)); 3190 std::move(headers1), NO_MORE_DATA_TO_SEND));
3231 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 3191 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
3232 3192
3233 base::RunLoop().RunUntilIdle(); 3193 base::RunLoop().RunUntilIdle();
3234 3194
3235 // Trying to create a new connection should cause the pool to be stalled, and 3195 // Trying to create a new connection should cause the pool to be stalled, and
3236 // post a task asynchronously to try and close the session. 3196 // post a task asynchronously to try and close the session.
3237 TestCompletionCallback callback2; 3197 TestCompletionCallback callback2;
3238 HostPortPair host_port2("2.com", 80); 3198 HostPortPair host_port2("2.com", 80);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
3347 CreateInsecureSpdySession(); 3307 CreateInsecureSpdySession();
3348 3308
3349 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 3309 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
3350 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 3310 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
3351 ASSERT_TRUE(spdy_stream); 3311 ASSERT_TRUE(spdy_stream);
3352 EXPECT_EQ(0u, spdy_stream->stream_id()); 3312 EXPECT_EQ(0u, spdy_stream->stream_id());
3353 3313
3354 StreamCreatingDelegate delegate(spdy_stream, session_); 3314 StreamCreatingDelegate delegate(spdy_stream, session_);
3355 spdy_stream->SetDelegate(&delegate); 3315 spdy_stream->SetDelegate(&delegate);
3356 3316
3357 std::unique_ptr<SpdyHeaderBlock> headers( 3317 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3358 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
3359 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 3318 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
3360 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 3319 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
3361 3320
3362 EXPECT_EQ(0u, spdy_stream->stream_id()); 3321 EXPECT_EQ(0u, spdy_stream->stream_id());
3363 3322
3364 base::RunLoop().RunUntilIdle(); 3323 base::RunLoop().RunUntilIdle();
3365 3324
3366 EXPECT_EQ(1u, spdy_stream->stream_id()); 3325 EXPECT_EQ(1u, spdy_stream->stream_id());
3367 3326
3368 // Cause the stream to be reset, which should cause another stream 3327 // Cause the stream to be reset, which should cause another stream
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
3624 pool_peer.SetStreamInitialRecvWindowSize(stream_max_recv_window_size); 3583 pool_peer.SetStreamInitialRecvWindowSize(stream_max_recv_window_size);
3625 CreateInsecureSpdySession(); 3584 CreateInsecureSpdySession();
3626 3585
3627 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 3586 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
3628 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 3587 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
3629 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); 3588 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size());
3630 3589
3631 test::StreamDelegateDoNothing delegate(spdy_stream); 3590 test::StreamDelegateDoNothing delegate(spdy_stream);
3632 spdy_stream->SetDelegate(&delegate); 3591 spdy_stream->SetDelegate(&delegate);
3633 3592
3634 std::unique_ptr<SpdyHeaderBlock> headers( 3593 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3635 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
3636 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( 3594 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders(
3637 std::move(headers), NO_MORE_DATA_TO_SEND)); 3595 std::move(headers), NO_MORE_DATA_TO_SEND));
3638 3596
3639 // Request and response. 3597 // Request and response.
3640 base::RunLoop().RunUntilIdle(); 3598 base::RunLoop().RunUntilIdle();
3641 EXPECT_EQ(1u, spdy_stream->stream_id()); 3599 EXPECT_EQ(1u, spdy_stream->stream_id());
3642 3600
3643 // Too large data frame causes flow control error, should close stream. 3601 // Too large data frame causes flow control error, should close stream.
3644 data.Resume(); 3602 data.Resume();
3645 base::RunLoop().RunUntilIdle(); 3603 base::RunLoop().RunUntilIdle();
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
3762 SpdySessionPoolPeer pool_peer(spdy_session_pool_); 3720 SpdySessionPoolPeer pool_peer(spdy_session_pool_);
3763 pool_peer.SetStreamInitialRecvWindowSize(stream_max_recv_window_size); 3721 pool_peer.SetStreamInitialRecvWindowSize(stream_max_recv_window_size);
3764 3722
3765 CreateInsecureSpdySession(); 3723 CreateInsecureSpdySession();
3766 3724
3767 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 3725 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
3768 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 3726 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
3769 test::StreamDelegateDoNothing delegate(spdy_stream); 3727 test::StreamDelegateDoNothing delegate(spdy_stream);
3770 spdy_stream->SetDelegate(&delegate); 3728 spdy_stream->SetDelegate(&delegate);
3771 3729
3772 std::unique_ptr<SpdyHeaderBlock> headers( 3730 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
3773 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
3774 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( 3731 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders(
3775 std::move(headers), NO_MORE_DATA_TO_SEND)); 3732 std::move(headers), NO_MORE_DATA_TO_SEND));
3776 3733
3777 // Request and response. 3734 // Request and response.
3778 base::RunLoop().RunUntilIdle(); 3735 base::RunLoop().RunUntilIdle();
3779 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); 3736 EXPECT_TRUE(spdy_stream->IsLocallyClosed());
3780 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); 3737 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size());
3781 3738
3782 // First data frame. 3739 // First data frame.
3783 data.Resume(); 3740 data.Resume();
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
3855 CreateInsecureSpdySession(); 3812 CreateInsecureSpdySession();
3856 3813
3857 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 3814 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
3858 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 3815 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
3859 ASSERT_TRUE(stream); 3816 ASSERT_TRUE(stream);
3860 EXPECT_EQ(0u, stream->stream_id()); 3817 EXPECT_EQ(0u, stream->stream_id());
3861 3818
3862 DropReceivedDataDelegate delegate(stream, msg_data); 3819 DropReceivedDataDelegate delegate(stream, msg_data);
3863 stream->SetDelegate(&delegate); 3820 stream->SetDelegate(&delegate);
3864 3821
3865 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( 3822 SpdyHeaderBlock headers(
3866 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize))); 3823 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
3867 EXPECT_EQ(ERR_IO_PENDING, 3824 EXPECT_EQ(ERR_IO_PENDING,
3868 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3825 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3869 EXPECT_TRUE(stream->HasUrlFromHeaders()); 3826 EXPECT_TRUE(stream->HasUrlFromHeaders());
3870 3827
3871 const int32_t initial_window_size = kDefaultInitialWindowSize; 3828 const int32_t initial_window_size = kDefaultInitialWindowSize;
3872 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3829 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
3873 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 3830 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
3874 3831
3875 base::RunLoop().RunUntilIdle(); 3832 base::RunLoop().RunUntilIdle();
3876 3833
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
3920 CreateInsecureSpdySession(); 3877 CreateInsecureSpdySession();
3921 3878
3922 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 3879 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
3923 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 3880 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
3924 ASSERT_TRUE(stream); 3881 ASSERT_TRUE(stream);
3925 EXPECT_EQ(0u, stream->stream_id()); 3882 EXPECT_EQ(0u, stream->stream_id());
3926 3883
3927 test::StreamDelegateSendImmediate delegate(stream, msg_data); 3884 test::StreamDelegateSendImmediate delegate(stream, msg_data);
3928 stream->SetDelegate(&delegate); 3885 stream->SetDelegate(&delegate);
3929 3886
3930 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( 3887 SpdyHeaderBlock headers(
3931 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize))); 3888 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
3932 EXPECT_EQ(ERR_IO_PENDING, 3889 EXPECT_EQ(ERR_IO_PENDING,
3933 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3890 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
3934 EXPECT_TRUE(stream->HasUrlFromHeaders()); 3891 EXPECT_TRUE(stream->HasUrlFromHeaders());
3935 3892
3936 const int32_t initial_window_size = kDefaultInitialWindowSize; 3893 const int32_t initial_window_size = kDefaultInitialWindowSize;
3937 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3894 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
3938 3895
3939 // Write request. 3896 // Write request.
3940 base::RunLoop().RunUntilIdle(); 3897 base::RunLoop().RunUntilIdle();
3941 3898
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
4004 CreateInsecureSpdySession(); 3961 CreateInsecureSpdySession();
4005 3962
4006 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 3963 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
4007 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); 3964 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog());
4008 ASSERT_TRUE(stream); 3965 ASSERT_TRUE(stream);
4009 EXPECT_EQ(0u, stream->stream_id()); 3966 EXPECT_EQ(0u, stream->stream_id());
4010 3967
4011 test::StreamDelegateSendImmediate delegate(stream, msg_data); 3968 test::StreamDelegateSendImmediate delegate(stream, msg_data);
4012 stream->SetDelegate(&delegate); 3969 stream->SetDelegate(&delegate);
4013 3970
4014 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( 3971 SpdyHeaderBlock headers(
4015 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize))); 3972 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kMsgDataSize));
4016 EXPECT_EQ(ERR_IO_PENDING, 3973 EXPECT_EQ(ERR_IO_PENDING,
4017 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 3974 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
4018 EXPECT_TRUE(stream->HasUrlFromHeaders()); 3975 EXPECT_TRUE(stream->HasUrlFromHeaders());
4019 3976
4020 const int32_t initial_window_size = kDefaultInitialWindowSize; 3977 const int32_t initial_window_size = kDefaultInitialWindowSize;
4021 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); 3978 EXPECT_EQ(initial_window_size, session_->session_send_window_size_);
4022 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); 3979 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_);
4023 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); 3980 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_);
4024 3981
4025 // Send request and message. 3982 // Send request and message.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
4104 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously( 4061 base::WeakPtr<SpdyStream> stream = CreateStreamSynchronously(
4105 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4062 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4106 ASSERT_TRUE(stream); 4063 ASSERT_TRUE(stream);
4107 4064
4108 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); 4065 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece);
4109 stream->SetDelegate(&delegate); 4066 stream->SetDelegate(&delegate);
4110 4067
4111 EXPECT_FALSE(stream->HasUrlFromHeaders()); 4068 EXPECT_FALSE(stream->HasUrlFromHeaders());
4112 EXPECT_FALSE(stream->send_stalled_by_flow_control()); 4069 EXPECT_FALSE(stream->send_stalled_by_flow_control());
4113 4070
4114 std::unique_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock( 4071 SpdyHeaderBlock headers(
4115 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4072 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4116 EXPECT_EQ(ERR_IO_PENDING, 4073 EXPECT_EQ(ERR_IO_PENDING,
4117 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); 4074 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND));
4118 EXPECT_TRUE(stream->HasUrlFromHeaders()); 4075 EXPECT_TRUE(stream->HasUrlFromHeaders());
4119 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec()); 4076 EXPECT_EQ(kDefaultUrl, stream->GetUrlFromHeaders().spec());
4120 4077
4121 stall_function.Run(stream.get()); 4078 stall_function.Run(stream.get());
4122 4079
4123 base::RunLoop().RunUntilIdle(); 4080 base::RunLoop().RunUntilIdle();
4124 4081
4125 EXPECT_TRUE(stream->send_stalled_by_flow_control()); 4082 EXPECT_TRUE(stream->send_stalled_by_flow_control());
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
4243 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 4200 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
4244 stream2->SetDelegate(&delegate2); 4201 stream2->SetDelegate(&delegate2);
4245 4202
4246 EXPECT_FALSE(stream2->HasUrlFromHeaders()); 4203 EXPECT_FALSE(stream2->HasUrlFromHeaders());
4247 4204
4248 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4205 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4249 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4206 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4250 4207
4251 StallSessionSend(); 4208 StallSessionSend();
4252 4209
4253 std::unique_ptr<SpdyHeaderBlock> headers1(new SpdyHeaderBlock( 4210 SpdyHeaderBlock headers1(
4254 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4211 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4255 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4212 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4256 MORE_DATA_TO_SEND)); 4213 MORE_DATA_TO_SEND));
4257 EXPECT_TRUE(stream1->HasUrlFromHeaders()); 4214 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4258 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4215 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4259 4216
4260 base::RunLoop().RunUntilIdle(); 4217 base::RunLoop().RunUntilIdle();
4261 EXPECT_EQ(1u, stream1->stream_id()); 4218 EXPECT_EQ(1u, stream1->stream_id());
4262 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4219 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4263 4220
4264 std::unique_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock( 4221 SpdyHeaderBlock headers2(
4265 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4222 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4266 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4223 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4267 MORE_DATA_TO_SEND)); 4224 MORE_DATA_TO_SEND));
4268 EXPECT_TRUE(stream2->HasUrlFromHeaders()); 4225 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4269 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4226 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4270 4227
4271 base::RunLoop().RunUntilIdle(); 4228 base::RunLoop().RunUntilIdle();
4272 EXPECT_EQ(3u, stream2->stream_id()); 4229 EXPECT_EQ(3u, stream2->stream_id());
4273 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4230 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4274 4231
4275 // This should unstall only stream2. 4232 // This should unstall only stream2.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
4392 stream3->SetDelegate(&delegate3); 4349 stream3->SetDelegate(&delegate3);
4393 4350
4394 EXPECT_FALSE(stream3->HasUrlFromHeaders()); 4351 EXPECT_FALSE(stream3->HasUrlFromHeaders());
4395 4352
4396 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4353 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4397 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4354 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4398 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); 4355 EXPECT_FALSE(stream3->send_stalled_by_flow_control());
4399 4356
4400 StallSessionSend(); 4357 StallSessionSend();
4401 4358
4402 std::unique_ptr<SpdyHeaderBlock> headers1(new SpdyHeaderBlock( 4359 SpdyHeaderBlock headers1(
4403 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4360 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4404 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4361 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4405 MORE_DATA_TO_SEND)); 4362 MORE_DATA_TO_SEND));
4406 EXPECT_TRUE(stream1->HasUrlFromHeaders()); 4363 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4407 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4364 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4408 4365
4409 base::RunLoop().RunUntilIdle(); 4366 base::RunLoop().RunUntilIdle();
4410 EXPECT_EQ(1u, stream1->stream_id()); 4367 EXPECT_EQ(1u, stream1->stream_id());
4411 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4368 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4412 4369
4413 std::unique_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock( 4370 SpdyHeaderBlock headers2(
4414 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4371 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4415 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4372 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4416 MORE_DATA_TO_SEND)); 4373 MORE_DATA_TO_SEND));
4417 EXPECT_TRUE(stream2->HasUrlFromHeaders()); 4374 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4418 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4375 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4419 4376
4420 base::RunLoop().RunUntilIdle(); 4377 base::RunLoop().RunUntilIdle();
4421 EXPECT_EQ(3u, stream2->stream_id()); 4378 EXPECT_EQ(3u, stream2->stream_id());
4422 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4379 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4423 4380
4424 std::unique_ptr<SpdyHeaderBlock> headers3(new SpdyHeaderBlock( 4381 SpdyHeaderBlock headers3(
4425 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4382 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4426 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3), 4383 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3),
4427 MORE_DATA_TO_SEND)); 4384 MORE_DATA_TO_SEND));
4428 EXPECT_TRUE(stream3->HasUrlFromHeaders()); 4385 EXPECT_TRUE(stream3->HasUrlFromHeaders());
4429 EXPECT_EQ(kDefaultUrl, stream3->GetUrlFromHeaders().spec()); 4386 EXPECT_EQ(kDefaultUrl, stream3->GetUrlFromHeaders().spec());
4430 4387
4431 base::RunLoop().RunUntilIdle(); 4388 base::RunLoop().RunUntilIdle();
4432 EXPECT_EQ(5u, stream3->stream_id()); 4389 EXPECT_EQ(5u, stream3->stream_id());
4433 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); 4390 EXPECT_TRUE(stream3->send_stalled_by_flow_control());
4434 4391
4435 SpdyStreamId stream_id1 = stream1->stream_id(); 4392 SpdyStreamId stream_id1 = stream1->stream_id();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
4521 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece); 4478 test::StreamDelegateWithBody delegate2(stream2, kBodyDataStringPiece);
4522 stream2->SetDelegate(&delegate2); 4479 stream2->SetDelegate(&delegate2);
4523 4480
4524 EXPECT_FALSE(stream2->HasUrlFromHeaders()); 4481 EXPECT_FALSE(stream2->HasUrlFromHeaders());
4525 4482
4526 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); 4483 EXPECT_FALSE(stream1->send_stalled_by_flow_control());
4527 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); 4484 EXPECT_FALSE(stream2->send_stalled_by_flow_control());
4528 4485
4529 StallSessionSend(); 4486 StallSessionSend();
4530 4487
4531 std::unique_ptr<SpdyHeaderBlock> headers1(new SpdyHeaderBlock( 4488 SpdyHeaderBlock headers1(
4532 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4489 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4533 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), 4490 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1),
4534 MORE_DATA_TO_SEND)); 4491 MORE_DATA_TO_SEND));
4535 EXPECT_TRUE(stream1->HasUrlFromHeaders()); 4492 EXPECT_TRUE(stream1->HasUrlFromHeaders());
4536 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec()); 4493 EXPECT_EQ(kDefaultUrl, stream1->GetUrlFromHeaders().spec());
4537 4494
4538 base::RunLoop().RunUntilIdle(); 4495 base::RunLoop().RunUntilIdle();
4539 EXPECT_EQ(1u, stream1->stream_id()); 4496 EXPECT_EQ(1u, stream1->stream_id());
4540 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); 4497 EXPECT_TRUE(stream1->send_stalled_by_flow_control());
4541 4498
4542 std::unique_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock( 4499 SpdyHeaderBlock headers2(
4543 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize))); 4500 spdy_util_.ConstructPostHeaderBlock(kDefaultUrl, kBodyDataSize));
4544 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), 4501 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2),
4545 MORE_DATA_TO_SEND)); 4502 MORE_DATA_TO_SEND));
4546 EXPECT_TRUE(stream2->HasUrlFromHeaders()); 4503 EXPECT_TRUE(stream2->HasUrlFromHeaders());
4547 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec()); 4504 EXPECT_EQ(kDefaultUrl, stream2->GetUrlFromHeaders().spec());
4548 4505
4549 base::RunLoop().RunUntilIdle(); 4506 base::RunLoop().RunUntilIdle();
4550 EXPECT_EQ(3u, stream2->stream_id()); 4507 EXPECT_EQ(3u, stream2->stream_id());
4551 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); 4508 EXPECT_TRUE(stream2->send_stalled_by_flow_control());
4552 4509
4553 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); 4510 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_));
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
4602 4559
4603 CreateNetworkSession(); 4560 CreateNetworkSession();
4604 CreateInsecureSpdySession(); 4561 CreateInsecureSpdySession();
4605 4562
4606 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( 4563 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously(
4607 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); 4564 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog());
4608 ASSERT_TRUE(spdy_stream); 4565 ASSERT_TRUE(spdy_stream);
4609 test::StreamDelegateDoNothing delegate(spdy_stream); 4566 test::StreamDelegateDoNothing delegate(spdy_stream);
4610 spdy_stream->SetDelegate(&delegate); 4567 spdy_stream->SetDelegate(&delegate);
4611 4568
4612 std::unique_ptr<SpdyHeaderBlock> headers( 4569 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4613 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
4614 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4570 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4615 4571
4616 // Write request. 4572 // Write request.
4617 base::RunLoop().RunUntilIdle(); 4573 base::RunLoop().RunUntilIdle();
4618 4574
4619 // Put session on the edge of overflowing it's recv window. 4575 // Put session on the edge of overflowing it's recv window.
4620 session_->session_recv_window_size_ = 1; 4576 session_->session_recv_window_size_ = 1;
4621 4577
4622 // Read response headers & body. Body overflows the session window, and a 4578 // Read response headers & body. Body overflows the session window, and a
4623 // goaway is written. 4579 // goaway is written.
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4668 ASSERT_TRUE(spdy_stream1); 4624 ASSERT_TRUE(spdy_stream1);
4669 EXPECT_EQ(0u, spdy_stream1->stream_id()); 4625 EXPECT_EQ(0u, spdy_stream1->stream_id());
4670 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4626 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4671 spdy_stream1->SetDelegate(&delegate1); 4627 spdy_stream1->SetDelegate(&delegate1);
4672 4628
4673 EXPECT_EQ(0u, session_->num_active_streams()); 4629 EXPECT_EQ(0u, session_->num_active_streams());
4674 EXPECT_EQ(1u, session_->num_created_streams()); 4630 EXPECT_EQ(1u, session_->num_created_streams());
4675 EXPECT_EQ(0u, session_->num_pushed_streams()); 4631 EXPECT_EQ(0u, session_->num_pushed_streams());
4676 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4632 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4677 4633
4678 std::unique_ptr<SpdyHeaderBlock> headers( 4634 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4679 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
4680 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4635 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4681 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 4636 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4682 4637
4683 // Run until 1st stream is activated. 4638 // Run until 1st stream is activated.
4684 EXPECT_EQ(0u, delegate1.stream_id()); 4639 EXPECT_EQ(0u, delegate1.stream_id());
4685 base::RunLoop().RunUntilIdle(); 4640 base::RunLoop().RunUntilIdle();
4686 EXPECT_EQ(1u, delegate1.stream_id()); 4641 EXPECT_EQ(1u, delegate1.stream_id());
4687 EXPECT_EQ(1u, session_->num_active_streams()); 4642 EXPECT_EQ(1u, session_->num_active_streams());
4688 EXPECT_EQ(0u, session_->num_created_streams()); 4643 EXPECT_EQ(0u, session_->num_created_streams());
4689 EXPECT_EQ(0u, session_->num_pushed_streams()); 4644 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
4748 ASSERT_TRUE(spdy_stream1); 4703 ASSERT_TRUE(spdy_stream1);
4749 EXPECT_EQ(0u, spdy_stream1->stream_id()); 4704 EXPECT_EQ(0u, spdy_stream1->stream_id());
4750 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4705 test::StreamDelegateDoNothing delegate1(spdy_stream1);
4751 spdy_stream1->SetDelegate(&delegate1); 4706 spdy_stream1->SetDelegate(&delegate1);
4752 4707
4753 EXPECT_EQ(0u, session_->num_active_streams()); 4708 EXPECT_EQ(0u, session_->num_active_streams());
4754 EXPECT_EQ(1u, session_->num_created_streams()); 4709 EXPECT_EQ(1u, session_->num_created_streams());
4755 EXPECT_EQ(0u, session_->num_pushed_streams()); 4710 EXPECT_EQ(0u, session_->num_pushed_streams());
4756 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4711 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4757 4712
4758 std::unique_ptr<SpdyHeaderBlock> headers( 4713 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4759 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
4760 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4714 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4761 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 4715 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
4762 4716
4763 // Run until 1st stream is activated. 4717 // Run until 1st stream is activated.
4764 EXPECT_EQ(0u, delegate1.stream_id()); 4718 EXPECT_EQ(0u, delegate1.stream_id());
4765 base::RunLoop().RunUntilIdle(); 4719 base::RunLoop().RunUntilIdle();
4766 EXPECT_EQ(1u, delegate1.stream_id()); 4720 EXPECT_EQ(1u, delegate1.stream_id());
4767 EXPECT_EQ(1u, session_->num_active_streams()); 4721 EXPECT_EQ(1u, session_->num_active_streams());
4768 EXPECT_EQ(0u, session_->num_created_streams()); 4722 EXPECT_EQ(0u, session_->num_created_streams());
4769 EXPECT_EQ(0u, session_->num_pushed_streams()); 4723 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
4855 ASSERT_TRUE(spdy_stream); 4809 ASSERT_TRUE(spdy_stream);
4856 EXPECT_EQ(0u, spdy_stream->stream_id()); 4810 EXPECT_EQ(0u, spdy_stream->stream_id());
4857 test::StreamDelegateDoNothing delegate(spdy_stream); 4811 test::StreamDelegateDoNothing delegate(spdy_stream);
4858 spdy_stream->SetDelegate(&delegate); 4812 spdy_stream->SetDelegate(&delegate);
4859 4813
4860 EXPECT_EQ(0u, session_->num_active_streams()); 4814 EXPECT_EQ(0u, session_->num_active_streams());
4861 EXPECT_EQ(1u, session_->num_created_streams()); 4815 EXPECT_EQ(1u, session_->num_created_streams());
4862 EXPECT_EQ(0u, session_->num_pushed_streams()); 4816 EXPECT_EQ(0u, session_->num_pushed_streams());
4863 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4817 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4864 4818
4865 std::unique_ptr<SpdyHeaderBlock> headers( 4819 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4866 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
4867 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4820 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4868 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 4821 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
4869 4822
4870 // Run until 1st stream is activated. 4823 // Run until 1st stream is activated.
4871 EXPECT_EQ(0u, delegate.stream_id()); 4824 EXPECT_EQ(0u, delegate.stream_id());
4872 base::RunLoop().RunUntilIdle(); 4825 base::RunLoop().RunUntilIdle();
4873 EXPECT_EQ(1u, delegate.stream_id()); 4826 EXPECT_EQ(1u, delegate.stream_id());
4874 EXPECT_EQ(1u, session_->num_active_streams()); 4827 EXPECT_EQ(1u, session_->num_active_streams());
4875 EXPECT_EQ(0u, session_->num_created_streams()); 4828 EXPECT_EQ(0u, session_->num_created_streams());
4876 EXPECT_EQ(0u, session_->num_pushed_streams()); 4829 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
4947 ASSERT_TRUE(spdy_stream); 4900 ASSERT_TRUE(spdy_stream);
4948 EXPECT_EQ(0u, spdy_stream->stream_id()); 4901 EXPECT_EQ(0u, spdy_stream->stream_id());
4949 test::StreamDelegateDoNothing delegate(spdy_stream); 4902 test::StreamDelegateDoNothing delegate(spdy_stream);
4950 spdy_stream->SetDelegate(&delegate); 4903 spdy_stream->SetDelegate(&delegate);
4951 4904
4952 EXPECT_EQ(0u, session_->num_active_streams()); 4905 EXPECT_EQ(0u, session_->num_active_streams());
4953 EXPECT_EQ(1u, session_->num_created_streams()); 4906 EXPECT_EQ(1u, session_->num_created_streams());
4954 EXPECT_EQ(0u, session_->num_pushed_streams()); 4907 EXPECT_EQ(0u, session_->num_pushed_streams());
4955 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4908 EXPECT_EQ(0u, session_->num_active_pushed_streams());
4956 4909
4957 std::unique_ptr<SpdyHeaderBlock> headers( 4910 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
4958 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
4959 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4911 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
4960 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); 4912 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders());
4961 4913
4962 // Run until 1st stream is activated. 4914 // Run until 1st stream is activated.
4963 EXPECT_EQ(0u, delegate.stream_id()); 4915 EXPECT_EQ(0u, delegate.stream_id());
4964 base::RunLoop().RunUntilIdle(); 4916 base::RunLoop().RunUntilIdle();
4965 EXPECT_EQ(1u, delegate.stream_id()); 4917 EXPECT_EQ(1u, delegate.stream_id());
4966 EXPECT_EQ(1u, session_->num_active_streams()); 4918 EXPECT_EQ(1u, session_->num_active_streams());
4967 EXPECT_EQ(0u, session_->num_created_streams()); 4919 EXPECT_EQ(0u, session_->num_created_streams());
4968 EXPECT_EQ(0u, session_->num_pushed_streams()); 4920 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
5015 ASSERT_TRUE(spdy_stream1); 4967 ASSERT_TRUE(spdy_stream1);
5016 EXPECT_EQ(0u, spdy_stream1->stream_id()); 4968 EXPECT_EQ(0u, spdy_stream1->stream_id());
5017 test::StreamDelegateDoNothing delegate1(spdy_stream1); 4969 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5018 spdy_stream1->SetDelegate(&delegate1); 4970 spdy_stream1->SetDelegate(&delegate1);
5019 4971
5020 EXPECT_EQ(0u, session_->num_active_streams()); 4972 EXPECT_EQ(0u, session_->num_active_streams());
5021 EXPECT_EQ(1u, session_->num_created_streams()); 4973 EXPECT_EQ(1u, session_->num_created_streams());
5022 EXPECT_EQ(0u, session_->num_pushed_streams()); 4974 EXPECT_EQ(0u, session_->num_pushed_streams());
5023 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 4975 EXPECT_EQ(0u, session_->num_active_pushed_streams());
5024 4976
5025 std::unique_ptr<SpdyHeaderBlock> headers( 4977 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
5026 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
5027 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 4978 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5028 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 4979 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5029 4980
5030 // Run until 1st stream is activated. 4981 // Run until 1st stream is activated.
5031 EXPECT_EQ(0u, delegate1.stream_id()); 4982 EXPECT_EQ(0u, delegate1.stream_id());
5032 base::RunLoop().RunUntilIdle(); 4983 base::RunLoop().RunUntilIdle();
5033 EXPECT_EQ(1u, delegate1.stream_id()); 4984 EXPECT_EQ(1u, delegate1.stream_id());
5034 EXPECT_EQ(1u, session_->num_active_streams()); 4985 EXPECT_EQ(1u, session_->num_active_streams());
5035 EXPECT_EQ(0u, session_->num_created_streams()); 4986 EXPECT_EQ(0u, session_->num_created_streams());
5036 EXPECT_EQ(0u, session_->num_pushed_streams()); 4987 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
5103 ASSERT_TRUE(spdy_stream1); 5054 ASSERT_TRUE(spdy_stream1);
5104 EXPECT_EQ(0u, spdy_stream1->stream_id()); 5055 EXPECT_EQ(0u, spdy_stream1->stream_id());
5105 test::StreamDelegateDoNothing delegate1(spdy_stream1); 5056 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5106 spdy_stream1->SetDelegate(&delegate1); 5057 spdy_stream1->SetDelegate(&delegate1);
5107 5058
5108 EXPECT_EQ(0u, session_->num_active_streams()); 5059 EXPECT_EQ(0u, session_->num_active_streams());
5109 EXPECT_EQ(1u, session_->num_created_streams()); 5060 EXPECT_EQ(1u, session_->num_created_streams());
5110 EXPECT_EQ(0u, session_->num_pushed_streams()); 5061 EXPECT_EQ(0u, session_->num_pushed_streams());
5111 EXPECT_EQ(0u, session_->num_active_pushed_streams()); 5062 EXPECT_EQ(0u, session_->num_active_pushed_streams());
5112 5063
5113 std::unique_ptr<SpdyHeaderBlock> headers( 5064 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl));
5114 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(kDefaultUrl)));
5115 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 5065 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5116 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 5066 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5117 5067
5118 // Run until 1st stream is activated. 5068 // Run until 1st stream is activated.
5119 EXPECT_EQ(0u, delegate1.stream_id()); 5069 EXPECT_EQ(0u, delegate1.stream_id());
5120 base::RunLoop().RunUntilIdle(); 5070 base::RunLoop().RunUntilIdle();
5121 EXPECT_EQ(1u, delegate1.stream_id()); 5071 EXPECT_EQ(1u, delegate1.stream_id());
5122 EXPECT_EQ(1u, session_->num_active_streams()); 5072 EXPECT_EQ(1u, session_->num_active_streams());
5123 EXPECT_EQ(0u, session_->num_created_streams()); 5073 EXPECT_EQ(0u, session_->num_created_streams());
5124 EXPECT_EQ(0u, session_->num_pushed_streams()); 5074 EXPECT_EQ(0u, session_->num_pushed_streams());
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
5355 5305
5356 CreateNetworkSession(); 5306 CreateNetworkSession();
5357 CreateSecureSpdySession(); 5307 CreateSecureSpdySession();
5358 5308
5359 base::WeakPtr<SpdyStream> spdy_stream1 = 5309 base::WeakPtr<SpdyStream> spdy_stream1 =
5360 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 5310 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
5361 GURL(request_origin), MEDIUM, BoundNetLog()); 5311 GURL(request_origin), MEDIUM, BoundNetLog());
5362 test::StreamDelegateDoNothing delegate1(spdy_stream1); 5312 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5363 spdy_stream1->SetDelegate(&delegate1); 5313 spdy_stream1->SetDelegate(&delegate1);
5364 5314
5365 std::unique_ptr<SpdyHeaderBlock> headers( 5315 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin));
5366 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(request_origin)));
5367 5316
5368 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 5317 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5369 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 5318 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5370 5319
5371 base::RunLoop().RunUntilIdle(); 5320 base::RunLoop().RunUntilIdle();
5372 5321
5373 const url::SchemeHostPort session_origin("https", test_url_.host(), 5322 const url::SchemeHostPort session_origin("https", test_url_.host(),
5374 test_url_.EffectiveIntPort()); 5323 test_url_.EffectiveIntPort());
5375 AlternativeServiceVector altsvc_vector = 5324 AlternativeServiceVector altsvc_vector =
5376 spdy_session_pool_->http_server_properties()->GetAlternativeServices( 5325 spdy_session_pool_->http_server_properties()->GetAlternativeServices(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
5411 5360
5412 CreateNetworkSession(); 5361 CreateNetworkSession();
5413 CreateSecureSpdySession(); 5362 CreateSecureSpdySession();
5414 5363
5415 base::WeakPtr<SpdyStream> spdy_stream1 = 5364 base::WeakPtr<SpdyStream> spdy_stream1 =
5416 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, 5365 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_,
5417 GURL(request_origin), MEDIUM, BoundNetLog()); 5366 GURL(request_origin), MEDIUM, BoundNetLog());
5418 test::StreamDelegateDoNothing delegate1(spdy_stream1); 5367 test::StreamDelegateDoNothing delegate1(spdy_stream1);
5419 spdy_stream1->SetDelegate(&delegate1); 5368 spdy_stream1->SetDelegate(&delegate1);
5420 5369
5421 std::unique_ptr<SpdyHeaderBlock> headers( 5370 SpdyHeaderBlock headers(spdy_util_.ConstructGetHeaderBlock(request_origin));
5422 new SpdyHeaderBlock(spdy_util_.ConstructGetHeaderBlock(request_origin)));
5423 5371
5424 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); 5372 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND);
5425 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); 5373 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders());
5426 5374
5427 base::RunLoop().RunUntilIdle(); 5375 base::RunLoop().RunUntilIdle();
5428 5376
5429 const url::SchemeHostPort session_origin("https", test_url_.host(), 5377 const url::SchemeHostPort session_origin("https", test_url_.host(),
5430 test_url_.EffectiveIntPort()); 5378 test_url_.EffectiveIntPort());
5431 AlternativeServiceVector altsvc_vector = 5379 AlternativeServiceVector altsvc_vector =
5432 spdy_session_pool_->http_server_properties()->GetAlternativeServices( 5380 spdy_session_pool_->http_server_properties()->GetAlternativeServices(
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
5687 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), 5635 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(),
5688 "spdy_pooling.pem"); 5636 "spdy_pooling.pem");
5689 ssl_info.is_issued_by_known_root = true; 5637 ssl_info.is_issued_by_known_root = true;
5690 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); 5638 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin));
5691 5639
5692 EXPECT_TRUE(SpdySession::CanPool( 5640 EXPECT_TRUE(SpdySession::CanPool(
5693 &tss, ssl_info, "www.example.org", "mail.example.org")); 5641 &tss, ssl_info, "www.example.org", "mail.example.org"));
5694 } 5642 }
5695 5643
5696 } // namespace net 5644 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session_pool_unittest.cc ('k') | net/spdy/spdy_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698