| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/spdy/spdy_session.h" | 5 #include "net/spdy/spdy_session.h" |
| 6 | 6 |
| 7 #include <utility> |
| 8 |
| 7 #include "base/base64.h" | 9 #include "base/base64.h" |
| 8 #include "base/bind.h" | 10 #include "base/bind.h" |
| 9 #include "base/callback.h" | 11 #include "base/callback.h" |
| 10 #include "base/memory/scoped_ptr.h" | 12 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/run_loop.h" | 13 #include "base/run_loop.h" |
| 12 #include "base/test/histogram_tester.h" | 14 #include "base/test/histogram_tester.h" |
| 13 #include "net/base/io_buffer.h" | 15 #include "net/base/io_buffer.h" |
| 14 #include "net/base/ip_endpoint.h" | 16 #include "net/base/ip_endpoint.h" |
| 15 #include "net/base/request_priority.h" | 17 #include "net/base/request_priority.h" |
| 16 #include "net/base/test_data_directory.h" | 18 #include "net/base/test_data_directory.h" |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 231 | 233 |
| 232 // A helper class that vends a callback that, when fired, destroys a | 234 // A helper class that vends a callback that, when fired, destroys a |
| 233 // given SpdyStreamRequest. | 235 // given SpdyStreamRequest. |
| 234 class StreamRequestDestroyingCallback : public TestCompletionCallbackBase { | 236 class StreamRequestDestroyingCallback : public TestCompletionCallbackBase { |
| 235 public: | 237 public: |
| 236 StreamRequestDestroyingCallback() {} | 238 StreamRequestDestroyingCallback() {} |
| 237 | 239 |
| 238 ~StreamRequestDestroyingCallback() override {} | 240 ~StreamRequestDestroyingCallback() override {} |
| 239 | 241 |
| 240 void SetRequestToDestroy(scoped_ptr<SpdyStreamRequest> request) { | 242 void SetRequestToDestroy(scoped_ptr<SpdyStreamRequest> request) { |
| 241 request_ = request.Pass(); | 243 request_ = std::move(request); |
| 242 } | 244 } |
| 243 | 245 |
| 244 CompletionCallback MakeCallback() { | 246 CompletionCallback MakeCallback() { |
| 245 return base::Bind(&StreamRequestDestroyingCallback::OnComplete, | 247 return base::Bind(&StreamRequestDestroyingCallback::OnComplete, |
| 246 base::Unretained(this)); | 248 base::Unretained(this)); |
| 247 } | 249 } |
| 248 | 250 |
| 249 private: | 251 private: |
| 250 void OnComplete(int result) { | 252 void OnComplete(int result) { |
| 251 request_.reset(); | 253 request_.reset(); |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 ERR_IO_PENDING, | 289 ERR_IO_PENDING, |
| 288 request1.StartRequest(SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, | 290 request1.StartRequest(SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, |
| 289 MEDIUM, BoundNetLog(), callback1.MakeCallback())); | 291 MEDIUM, BoundNetLog(), callback1.MakeCallback())); |
| 290 | 292 |
| 291 // |callback2| is never called. | 293 // |callback2| is never called. |
| 292 TestCompletionCallback callback2; | 294 TestCompletionCallback callback2; |
| 293 ASSERT_EQ(ERR_IO_PENDING, request2->StartRequest( | 295 ASSERT_EQ(ERR_IO_PENDING, request2->StartRequest( |
| 294 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, | 296 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, |
| 295 MEDIUM, BoundNetLog(), callback2.callback())); | 297 MEDIUM, BoundNetLog(), callback2.callback())); |
| 296 | 298 |
| 297 callback1.SetRequestToDestroy(request2.Pass()); | 299 callback1.SetRequestToDestroy(std::move(request2)); |
| 298 | 300 |
| 299 session_->CloseSessionOnError(ERR_ABORTED, "Aborting session"); | 301 session_->CloseSessionOnError(ERR_ABORTED, "Aborting session"); |
| 300 | 302 |
| 301 EXPECT_EQ(ERR_ABORTED, callback1.WaitForResult()); | 303 EXPECT_EQ(ERR_ABORTED, callback1.WaitForResult()); |
| 302 } | 304 } |
| 303 | 305 |
| 304 // A session receiving a GOAWAY frame with no active streams should close. | 306 // A session receiving a GOAWAY frame with no active streams should close. |
| 305 TEST_P(SpdySessionTest, GoAwayWithNoActiveStreams) { | 307 TEST_P(SpdySessionTest, GoAwayWithNoActiveStreams) { |
| 306 session_deps_.host_resolver->set_synchronous_mode(true); | 308 session_deps_.host_resolver->set_synchronous_mode(true); |
| 307 | 309 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 | 385 |
| 384 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 386 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
| 385 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 387 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 386 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 388 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 387 spdy_stream2->SetDelegate(&delegate2); | 389 spdy_stream2->SetDelegate(&delegate2); |
| 388 | 390 |
| 389 scoped_ptr<SpdyHeaderBlock> headers( | 391 scoped_ptr<SpdyHeaderBlock> headers( |
| 390 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 392 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 391 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 393 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
| 392 | 394 |
| 393 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 395 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 394 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 396 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 395 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 397 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 396 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 398 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 397 | 399 |
| 398 base::RunLoop().RunUntilIdle(); | 400 base::RunLoop().RunUntilIdle(); |
| 399 | 401 |
| 400 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 402 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 401 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 403 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
| 402 | 404 |
| 403 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 405 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 404 | 406 |
| 405 // Read and process the GOAWAY frame. | 407 // Read and process the GOAWAY frame. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 CreateInsecureSpdySession(); | 448 CreateInsecureSpdySession(); |
| 447 | 449 |
| 448 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 450 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
| 449 | 451 |
| 450 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 452 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 451 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 453 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 452 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 454 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 453 spdy_stream1->SetDelegate(&delegate1); | 455 spdy_stream1->SetDelegate(&delegate1); |
| 454 scoped_ptr<SpdyHeaderBlock> headers1( | 456 scoped_ptr<SpdyHeaderBlock> headers1( |
| 455 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 457 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 456 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 458 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 457 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 459 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 458 | 460 |
| 459 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 461 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 460 | 462 |
| 461 // Active stream 1. | 463 // Active stream 1. |
| 462 base::RunLoop().RunUntilIdle(); | 464 base::RunLoop().RunUntilIdle(); |
| 463 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 465 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 464 EXPECT_TRUE(session_->IsStreamActive(1)); | 466 EXPECT_TRUE(session_->IsStreamActive(1)); |
| 465 | 467 |
| 466 // Create stream corresponding to the next request. | 468 // Create stream corresponding to the next request. |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 | 521 |
| 520 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 522 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
| 521 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 523 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 522 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 524 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 523 spdy_stream2->SetDelegate(&delegate2); | 525 spdy_stream2->SetDelegate(&delegate2); |
| 524 | 526 |
| 525 scoped_ptr<SpdyHeaderBlock> headers( | 527 scoped_ptr<SpdyHeaderBlock> headers( |
| 526 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 528 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 527 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 529 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
| 528 | 530 |
| 529 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 531 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 530 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 532 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 531 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 533 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 532 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 534 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 533 | 535 |
| 534 base::RunLoop().RunUntilIdle(); | 536 base::RunLoop().RunUntilIdle(); |
| 535 | 537 |
| 536 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 538 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 537 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 539 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
| 538 | 540 |
| 539 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 541 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 540 | 542 |
| 541 // Read and process the first GOAWAY frame. | 543 // Read and process the first GOAWAY frame. |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 592 | 594 |
| 593 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 595 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
| 594 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 596 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 595 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 597 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 596 spdy_stream2->SetDelegate(&delegate2); | 598 spdy_stream2->SetDelegate(&delegate2); |
| 597 | 599 |
| 598 scoped_ptr<SpdyHeaderBlock> headers( | 600 scoped_ptr<SpdyHeaderBlock> headers( |
| 599 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 601 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 600 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); | 602 scoped_ptr<SpdyHeaderBlock> headers2(new SpdyHeaderBlock(*headers)); |
| 601 | 603 |
| 602 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 604 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 603 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 605 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 604 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 606 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 605 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 607 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 606 | 608 |
| 607 base::RunLoop().RunUntilIdle(); | 609 base::RunLoop().RunUntilIdle(); |
| 608 | 610 |
| 609 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 611 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 610 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 612 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
| 611 | 613 |
| 612 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 614 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 613 | 615 |
| 614 // Read and process the GOAWAY frame. | 616 // Read and process the GOAWAY frame. |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 673 CreateNetworkSession(); | 675 CreateNetworkSession(); |
| 674 CreateInsecureSpdySession(); | 676 CreateInsecureSpdySession(); |
| 675 | 677 |
| 676 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 678 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 677 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 679 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 678 test::StreamDelegateDoNothing delegate(spdy_stream); | 680 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 679 spdy_stream->SetDelegate(&delegate); | 681 spdy_stream->SetDelegate(&delegate); |
| 680 | 682 |
| 681 scoped_ptr<SpdyHeaderBlock> headers( | 683 scoped_ptr<SpdyHeaderBlock> headers( |
| 682 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 684 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 683 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 685 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 684 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 686 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 685 | 687 |
| 686 base::RunLoop().RunUntilIdle(); | 688 base::RunLoop().RunUntilIdle(); |
| 687 | 689 |
| 688 // Stream and session closed gracefully. | 690 // Stream and session closed gracefully. |
| 689 EXPECT_TRUE(delegate.StreamIsClosed()); | 691 EXPECT_TRUE(delegate.StreamIsClosed()); |
| 690 EXPECT_EQ(OK, delegate.WaitForClose()); | 692 EXPECT_EQ(OK, delegate.WaitForClose()); |
| 691 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); | 693 EXPECT_EQ(kUploadData, delegate.TakeReceivedData()); |
| 692 EXPECT_FALSE(session_); | 694 EXPECT_FALSE(session_); |
| 693 } | 695 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 717 | 719 |
| 718 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 720 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
| 719 | 721 |
| 720 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 722 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 721 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 723 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 722 test::StreamDelegateDoNothing delegate(spdy_stream); | 724 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 723 spdy_stream->SetDelegate(&delegate); | 725 spdy_stream->SetDelegate(&delegate); |
| 724 | 726 |
| 725 scoped_ptr<SpdyHeaderBlock> headers( | 727 scoped_ptr<SpdyHeaderBlock> headers( |
| 726 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 728 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 727 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 729 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 728 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 730 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 729 | 731 |
| 730 base::RunLoop().RunUntilIdle(); | 732 base::RunLoop().RunUntilIdle(); |
| 731 | 733 |
| 732 EXPECT_EQ(1u, spdy_stream->stream_id()); | 734 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 733 | 735 |
| 734 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 736 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 735 | 737 |
| 736 // Read and process the GOAWAY frame. | 738 // Read and process the GOAWAY frame. |
| 737 data.Resume(); | 739 data.Resume(); |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 780 | 782 |
| 781 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 783 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
| 782 | 784 |
| 783 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 785 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 784 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 786 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 785 test::StreamDelegateDoNothing delegate(spdy_stream); | 787 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 786 spdy_stream->SetDelegate(&delegate); | 788 spdy_stream->SetDelegate(&delegate); |
| 787 | 789 |
| 788 scoped_ptr<SpdyHeaderBlock> headers( | 790 scoped_ptr<SpdyHeaderBlock> headers( |
| 789 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 791 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 790 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 792 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 791 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 793 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 792 | 794 |
| 793 base::RunLoop().RunUntilIdle(); | 795 base::RunLoop().RunUntilIdle(); |
| 794 | 796 |
| 795 EXPECT_EQ(1u, spdy_stream->stream_id()); | 797 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 796 | 798 |
| 797 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 799 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 798 | 800 |
| 799 // Read and process the GOAWAY frame. | 801 // Read and process the GOAWAY frame. |
| 800 data.Resume(); | 802 data.Resume(); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); | 834 EXPECT_EQ(spdy_util_.spdy_version(), session_->GetProtocolVersion()); |
| 833 | 835 |
| 834 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 836 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 835 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 837 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 836 test::StreamDelegateDoNothing delegate(spdy_stream); | 838 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 837 spdy_stream->SetDelegate(&delegate); | 839 spdy_stream->SetDelegate(&delegate); |
| 838 | 840 |
| 839 scoped_ptr<SpdyHeaderBlock> headers( | 841 scoped_ptr<SpdyHeaderBlock> headers( |
| 840 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 842 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 841 | 843 |
| 842 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 844 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 843 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 845 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 844 | 846 |
| 845 base::RunLoop().RunUntilIdle(); | 847 base::RunLoop().RunUntilIdle(); |
| 846 | 848 |
| 847 EXPECT_EQ(1u, spdy_stream->stream_id()); | 849 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 848 | 850 |
| 849 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 851 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 850 | 852 |
| 851 spdy_session_pool_->OnIPAddressChanged(); | 853 spdy_session_pool_->OnIPAddressChanged(); |
| 852 | 854 |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 987 CreateNetworkSession(); | 989 CreateNetworkSession(); |
| 988 CreateInsecureSpdySession(); | 990 CreateInsecureSpdySession(); |
| 989 | 991 |
| 990 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 992 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 991 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 993 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
| 992 test::StreamDelegateDoNothing delegate(spdy_stream); | 994 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 993 spdy_stream->SetDelegate(&delegate); | 995 spdy_stream->SetDelegate(&delegate); |
| 994 | 996 |
| 995 scoped_ptr<SpdyHeaderBlock> headers( | 997 scoped_ptr<SpdyHeaderBlock> headers( |
| 996 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 998 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 997 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 999 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 998 | 1000 |
| 999 // Shift time so that a ping will be sent out. | 1001 // Shift time so that a ping will be sent out. |
| 1000 g_time_delta = base::TimeDelta::FromSeconds(11); | 1002 g_time_delta = base::TimeDelta::FromSeconds(11); |
| 1001 | 1003 |
| 1002 base::RunLoop().RunUntilIdle(); | 1004 base::RunLoop().RunUntilIdle(); |
| 1003 session_->CloseSessionOnError(ERR_ABORTED, "Aborting"); | 1005 session_->CloseSessionOnError(ERR_ABORTED, "Aborting"); |
| 1004 | 1006 |
| 1005 data.Resume(); | 1007 data.Resume(); |
| 1006 base::RunLoop().RunUntilIdle(); | 1008 base::RunLoop().RunUntilIdle(); |
| 1007 EXPECT_FALSE(session_); | 1009 EXPECT_FALSE(session_); |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1223 CreateInsecureSpdySession(); | 1225 CreateInsecureSpdySession(); |
| 1224 | 1226 |
| 1225 // Process the principal request, and the first push stream request & body. | 1227 // Process the principal request, and the first push stream request & body. |
| 1226 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 1228 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 1227 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 1229 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 1228 test::StreamDelegateDoNothing delegate(spdy_stream); | 1230 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 1229 spdy_stream->SetDelegate(&delegate); | 1231 spdy_stream->SetDelegate(&delegate); |
| 1230 | 1232 |
| 1231 scoped_ptr<SpdyHeaderBlock> headers( | 1233 scoped_ptr<SpdyHeaderBlock> headers( |
| 1232 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1234 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1233 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1235 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 1234 | 1236 |
| 1235 base::RunLoop().RunUntilIdle(); | 1237 base::RunLoop().RunUntilIdle(); |
| 1236 | 1238 |
| 1237 // Verify that there is one unclaimed push stream. | 1239 // Verify that there is one unclaimed push stream. |
| 1238 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); | 1240 EXPECT_EQ(1u, session_->num_unclaimed_pushed_streams()); |
| 1239 SpdySession::PushedStreamMap::iterator iter = | 1241 SpdySession::PushedStreamMap::iterator iter = |
| 1240 session_->unclaimed_pushed_streams_.find( | 1242 session_->unclaimed_pushed_streams_.find( |
| 1241 GURL("http://www.example.org/a.dat")); | 1243 GURL("http://www.example.org/a.dat")); |
| 1242 EXPECT_TRUE(session_->unclaimed_pushed_streams_.end() != iter); | 1244 EXPECT_TRUE(session_->unclaimed_pushed_streams_.end() != iter); |
| 1243 | 1245 |
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1745 CreateNetworkSession(); | 1747 CreateNetworkSession(); |
| 1746 CreateInsecureSpdySession(); | 1748 CreateInsecureSpdySession(); |
| 1747 | 1749 |
| 1748 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 1750 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 1749 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 1751 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 1750 test::StreamDelegateDoNothing delegate(spdy_stream); | 1752 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 1751 spdy_stream->SetDelegate(&delegate); | 1753 spdy_stream->SetDelegate(&delegate); |
| 1752 | 1754 |
| 1753 scoped_ptr<SpdyHeaderBlock> headers( | 1755 scoped_ptr<SpdyHeaderBlock> headers( |
| 1754 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1756 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1755 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1757 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 1756 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 1758 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 1757 | 1759 |
| 1758 // Write request headers & capture resulting histogram update. | 1760 // Write request headers & capture resulting histogram update. |
| 1759 base::HistogramTester histogram_tester; | 1761 base::HistogramTester histogram_tester; |
| 1760 | 1762 |
| 1761 base::RunLoop().RunUntilIdle(); | 1763 base::RunLoop().RunUntilIdle(); |
| 1762 // Regression test of compression performance under the request fixture. | 1764 // Regression test of compression performance under the request fixture. |
| 1763 switch (spdy_util_.spdy_version()) { | 1765 switch (spdy_util_.spdy_version()) { |
| 1764 case SPDY3: | 1766 case SPDY3: |
| 1765 histogram_tester.ExpectBucketCount( | 1767 histogram_tester.ExpectBucketCount( |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1830 test_url_, HIGHEST, BoundNetLog()); | 1832 test_url_, HIGHEST, BoundNetLog()); |
| 1831 ASSERT_TRUE(spdy_stream_highest); | 1833 ASSERT_TRUE(spdy_stream_highest); |
| 1832 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); | 1834 EXPECT_EQ(0u, spdy_stream_highest->stream_id()); |
| 1833 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); | 1835 test::StreamDelegateDoNothing delegate_highest(spdy_stream_highest); |
| 1834 spdy_stream_highest->SetDelegate(&delegate_highest); | 1836 spdy_stream_highest->SetDelegate(&delegate_highest); |
| 1835 | 1837 |
| 1836 // Queue the lower priority one first. | 1838 // Queue the lower priority one first. |
| 1837 | 1839 |
| 1838 scoped_ptr<SpdyHeaderBlock> headers_lowest( | 1840 scoped_ptr<SpdyHeaderBlock> headers_lowest( |
| 1839 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1841 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1840 spdy_stream_lowest->SendRequestHeaders( | 1842 spdy_stream_lowest->SendRequestHeaders(std::move(headers_lowest), |
| 1841 headers_lowest.Pass(), NO_MORE_DATA_TO_SEND); | 1843 NO_MORE_DATA_TO_SEND); |
| 1842 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders()); | 1844 EXPECT_TRUE(spdy_stream_lowest->HasUrlFromHeaders()); |
| 1843 | 1845 |
| 1844 scoped_ptr<SpdyHeaderBlock> headers_highest( | 1846 scoped_ptr<SpdyHeaderBlock> headers_highest( |
| 1845 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1847 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1846 spdy_stream_highest->SendRequestHeaders( | 1848 spdy_stream_highest->SendRequestHeaders(std::move(headers_highest), |
| 1847 headers_highest.Pass(), NO_MORE_DATA_TO_SEND); | 1849 NO_MORE_DATA_TO_SEND); |
| 1848 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders()); | 1850 EXPECT_TRUE(spdy_stream_highest->HasUrlFromHeaders()); |
| 1849 | 1851 |
| 1850 base::RunLoop().RunUntilIdle(); | 1852 base::RunLoop().RunUntilIdle(); |
| 1851 | 1853 |
| 1852 EXPECT_FALSE(spdy_stream_lowest); | 1854 EXPECT_FALSE(spdy_stream_lowest); |
| 1853 EXPECT_FALSE(spdy_stream_highest); | 1855 EXPECT_FALSE(spdy_stream_highest); |
| 1854 EXPECT_EQ(3u, delegate_lowest.stream_id()); | 1856 EXPECT_EQ(3u, delegate_lowest.stream_id()); |
| 1855 EXPECT_EQ(1u, delegate_highest.stream_id()); | 1857 EXPECT_EQ(1u, delegate_highest.stream_id()); |
| 1856 } | 1858 } |
| 1857 | 1859 |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1892 | 1894 |
| 1893 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( | 1895 base::WeakPtr<SpdyStream> spdy_stream2 = CreateStreamSynchronously( |
| 1894 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 1896 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
| 1895 ASSERT_TRUE(spdy_stream2.get() != nullptr); | 1897 ASSERT_TRUE(spdy_stream2.get() != nullptr); |
| 1896 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1898 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1897 test::StreamDelegateDoNothing delegate2(spdy_stream2); | 1899 test::StreamDelegateDoNothing delegate2(spdy_stream2); |
| 1898 spdy_stream2->SetDelegate(&delegate2); | 1900 spdy_stream2->SetDelegate(&delegate2); |
| 1899 | 1901 |
| 1900 scoped_ptr<SpdyHeaderBlock> headers( | 1902 scoped_ptr<SpdyHeaderBlock> headers( |
| 1901 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1903 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1902 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1904 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 1903 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 1905 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 1904 | 1906 |
| 1905 scoped_ptr<SpdyHeaderBlock> headers2( | 1907 scoped_ptr<SpdyHeaderBlock> headers2( |
| 1906 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1908 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1907 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 1909 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 1908 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 1910 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 1909 | 1911 |
| 1910 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1912 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1911 | 1913 |
| 1912 spdy_stream1->Cancel(); | 1914 spdy_stream1->Cancel(); |
| 1913 EXPECT_FALSE(spdy_stream1); | 1915 EXPECT_FALSE(spdy_stream1); |
| 1914 | 1916 |
| 1915 EXPECT_EQ(0u, delegate1.stream_id()); | 1917 EXPECT_EQ(0u, delegate1.stream_id()); |
| 1916 | 1918 |
| 1917 base::RunLoop().RunUntilIdle(); | 1919 base::RunLoop().RunUntilIdle(); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1955 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1957 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1956 | 1958 |
| 1957 test::ClosingDelegate delegate1(spdy_stream1); | 1959 test::ClosingDelegate delegate1(spdy_stream1); |
| 1958 spdy_stream1->SetDelegate(&delegate1); | 1960 spdy_stream1->SetDelegate(&delegate1); |
| 1959 | 1961 |
| 1960 test::ClosingDelegate delegate2(spdy_stream2); | 1962 test::ClosingDelegate delegate2(spdy_stream2); |
| 1961 spdy_stream2->SetDelegate(&delegate2); | 1963 spdy_stream2->SetDelegate(&delegate2); |
| 1962 | 1964 |
| 1963 scoped_ptr<SpdyHeaderBlock> headers( | 1965 scoped_ptr<SpdyHeaderBlock> headers( |
| 1964 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1966 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1965 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 1967 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 1966 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 1968 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 1967 | 1969 |
| 1968 scoped_ptr<SpdyHeaderBlock> headers2( | 1970 scoped_ptr<SpdyHeaderBlock> headers2( |
| 1969 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 1971 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 1970 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 1972 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 1971 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 1973 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 1972 | 1974 |
| 1973 // Ensure that the streams have not yet been activated and assigned an id. | 1975 // Ensure that the streams have not yet been activated and assigned an id. |
| 1974 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 1976 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 1975 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 1977 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 1976 | 1978 |
| 1977 // Ensure we don't crash while closing the session. | 1979 // Ensure we don't crash while closing the session. |
| 1978 session_->CloseSessionOnError(ERR_ABORTED, std::string()); | 1980 session_->CloseSessionOnError(ERR_ABORTED, std::string()); |
| 1979 | 1981 |
| 1980 EXPECT_FALSE(spdy_stream1); | 1982 EXPECT_FALSE(spdy_stream1); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 2011 // Make |spdy_stream1| close |spdy_stream2|. | 2013 // Make |spdy_stream1| close |spdy_stream2|. |
| 2012 test::ClosingDelegate delegate1(spdy_stream2); | 2014 test::ClosingDelegate delegate1(spdy_stream2); |
| 2013 spdy_stream1->SetDelegate(&delegate1); | 2015 spdy_stream1->SetDelegate(&delegate1); |
| 2014 | 2016 |
| 2015 // Make |spdy_stream2| close |spdy_stream1|. | 2017 // Make |spdy_stream2| close |spdy_stream1|. |
| 2016 test::ClosingDelegate delegate2(spdy_stream1); | 2018 test::ClosingDelegate delegate2(spdy_stream1); |
| 2017 spdy_stream2->SetDelegate(&delegate2); | 2019 spdy_stream2->SetDelegate(&delegate2); |
| 2018 | 2020 |
| 2019 scoped_ptr<SpdyHeaderBlock> headers( | 2021 scoped_ptr<SpdyHeaderBlock> headers( |
| 2020 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2022 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2021 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2023 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 2022 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2024 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2023 | 2025 |
| 2024 scoped_ptr<SpdyHeaderBlock> headers2( | 2026 scoped_ptr<SpdyHeaderBlock> headers2( |
| 2025 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2027 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2026 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2028 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 2027 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2029 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 2028 | 2030 |
| 2029 // Ensure that the streams have not yet been activated and assigned an id. | 2031 // Ensure that the streams have not yet been activated and assigned an id. |
| 2030 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2032 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2031 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2033 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 2032 | 2034 |
| 2033 // Ensure we don't crash while closing the session. | 2035 // Ensure we don't crash while closing the session. |
| 2034 session_->CloseSessionOnError(ERR_ABORTED, std::string()); | 2036 session_->CloseSessionOnError(ERR_ABORTED, std::string()); |
| 2035 | 2037 |
| 2036 EXPECT_FALSE(spdy_stream1); | 2038 EXPECT_FALSE(spdy_stream1); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2078 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2080 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 2079 | 2081 |
| 2080 test::ClosingDelegate delegate1(spdy_stream1); | 2082 test::ClosingDelegate delegate1(spdy_stream1); |
| 2081 spdy_stream1->SetDelegate(&delegate1); | 2083 spdy_stream1->SetDelegate(&delegate1); |
| 2082 | 2084 |
| 2083 test::ClosingDelegate delegate2(spdy_stream2); | 2085 test::ClosingDelegate delegate2(spdy_stream2); |
| 2084 spdy_stream2->SetDelegate(&delegate2); | 2086 spdy_stream2->SetDelegate(&delegate2); |
| 2085 | 2087 |
| 2086 scoped_ptr<SpdyHeaderBlock> headers( | 2088 scoped_ptr<SpdyHeaderBlock> headers( |
| 2087 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2089 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2088 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2090 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 2089 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2091 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2090 | 2092 |
| 2091 scoped_ptr<SpdyHeaderBlock> headers2( | 2093 scoped_ptr<SpdyHeaderBlock> headers2( |
| 2092 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2094 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2093 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2095 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 2094 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2096 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 2095 | 2097 |
| 2096 // Ensure that the streams have not yet been activated and assigned an id. | 2098 // Ensure that the streams have not yet been activated and assigned an id. |
| 2097 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2099 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2098 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2100 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 2099 | 2101 |
| 2100 base::RunLoop().RunUntilIdle(); | 2102 base::RunLoop().RunUntilIdle(); |
| 2101 | 2103 |
| 2102 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 2104 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 2103 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 2105 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2154 // Make |spdy_stream1| close |spdy_stream2|. | 2156 // Make |spdy_stream1| close |spdy_stream2|. |
| 2155 test::ClosingDelegate delegate1(spdy_stream2); | 2157 test::ClosingDelegate delegate1(spdy_stream2); |
| 2156 spdy_stream1->SetDelegate(&delegate1); | 2158 spdy_stream1->SetDelegate(&delegate1); |
| 2157 | 2159 |
| 2158 // Make |spdy_stream2| close |spdy_stream1|. | 2160 // Make |spdy_stream2| close |spdy_stream1|. |
| 2159 test::ClosingDelegate delegate2(spdy_stream1); | 2161 test::ClosingDelegate delegate2(spdy_stream1); |
| 2160 spdy_stream2->SetDelegate(&delegate2); | 2162 spdy_stream2->SetDelegate(&delegate2); |
| 2161 | 2163 |
| 2162 scoped_ptr<SpdyHeaderBlock> headers( | 2164 scoped_ptr<SpdyHeaderBlock> headers( |
| 2163 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2165 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2164 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2166 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 2165 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2167 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2166 | 2168 |
| 2167 scoped_ptr<SpdyHeaderBlock> headers2( | 2169 scoped_ptr<SpdyHeaderBlock> headers2( |
| 2168 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2170 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2169 spdy_stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2171 spdy_stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 2170 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); | 2172 EXPECT_TRUE(spdy_stream2->HasUrlFromHeaders()); |
| 2171 | 2173 |
| 2172 // Ensure that the streams have not yet been activated and assigned an id. | 2174 // Ensure that the streams have not yet been activated and assigned an id. |
| 2173 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2175 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2174 EXPECT_EQ(0u, spdy_stream2->stream_id()); | 2176 EXPECT_EQ(0u, spdy_stream2->stream_id()); |
| 2175 | 2177 |
| 2176 base::RunLoop().RunUntilIdle(); | 2178 base::RunLoop().RunUntilIdle(); |
| 2177 | 2179 |
| 2178 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 2180 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 2179 EXPECT_EQ(3u, spdy_stream2->stream_id()); | 2181 EXPECT_EQ(3u, spdy_stream2->stream_id()); |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2242 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 2244 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 2243 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2245 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2244 ASSERT_TRUE(spdy_stream.get() != nullptr); | 2246 ASSERT_TRUE(spdy_stream.get() != nullptr); |
| 2245 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2247 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 2246 | 2248 |
| 2247 SessionClosingDelegate delegate(spdy_stream, session_); | 2249 SessionClosingDelegate delegate(spdy_stream, session_); |
| 2248 spdy_stream->SetDelegate(&delegate); | 2250 spdy_stream->SetDelegate(&delegate); |
| 2249 | 2251 |
| 2250 scoped_ptr<SpdyHeaderBlock> headers( | 2252 scoped_ptr<SpdyHeaderBlock> headers( |
| 2251 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2253 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2252 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2254 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 2253 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 2255 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 2254 | 2256 |
| 2255 EXPECT_EQ(0u, spdy_stream->stream_id()); | 2257 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 2256 | 2258 |
| 2257 base::RunLoop().RunUntilIdle(); | 2259 base::RunLoop().RunUntilIdle(); |
| 2258 | 2260 |
| 2259 EXPECT_EQ(1u, spdy_stream->stream_id()); | 2261 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 2260 | 2262 |
| 2261 // Ensure we don't crash while closing the stream (which closes the | 2263 // Ensure we don't crash while closing the stream (which closes the |
| 2262 // session). | 2264 // session). |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2413 ERR_IO_PENDING, | 2415 ERR_IO_PENDING, |
| 2414 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, | 2416 request3.StartRequest(SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, |
| 2415 LOWEST, BoundNetLog(), callback3.callback())); | 2417 LOWEST, BoundNetLog(), callback3.callback())); |
| 2416 | 2418 |
| 2417 EXPECT_EQ(0u, session_->num_active_streams()); | 2419 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2418 EXPECT_EQ(1u, session_->num_created_streams()); | 2420 EXPECT_EQ(1u, session_->num_created_streams()); |
| 2419 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); | 2421 EXPECT_EQ(2u, session_->pending_create_stream_queue_size(LOWEST)); |
| 2420 | 2422 |
| 2421 scoped_ptr<SpdyHeaderBlock> headers( | 2423 scoped_ptr<SpdyHeaderBlock> headers( |
| 2422 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2424 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2423 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 2425 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 2424 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2426 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2425 | 2427 |
| 2426 // Run until 1st stream is activated and then closed. | 2428 // Run until 1st stream is activated and then closed. |
| 2427 EXPECT_EQ(0u, delegate1.stream_id()); | 2429 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2428 base::RunLoop().RunUntilIdle(); | 2430 base::RunLoop().RunUntilIdle(); |
| 2429 EXPECT_FALSE(spdy_stream1); | 2431 EXPECT_FALSE(spdy_stream1); |
| 2430 EXPECT_EQ(1u, delegate1.stream_id()); | 2432 EXPECT_EQ(1u, delegate1.stream_id()); |
| 2431 | 2433 |
| 2432 EXPECT_EQ(0u, session_->num_active_streams()); | 2434 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2433 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); | 2435 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); |
| 2434 | 2436 |
| 2435 // Pump loop for SpdySession::ProcessPendingStreamRequests() to | 2437 // Pump loop for SpdySession::ProcessPendingStreamRequests() to |
| 2436 // create the 2nd stream. | 2438 // create the 2nd stream. |
| 2437 base::RunLoop().RunUntilIdle(); | 2439 base::RunLoop().RunUntilIdle(); |
| 2438 | 2440 |
| 2439 EXPECT_EQ(0u, session_->num_active_streams()); | 2441 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2440 EXPECT_EQ(1u, session_->num_created_streams()); | 2442 EXPECT_EQ(1u, session_->num_created_streams()); |
| 2441 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); | 2443 EXPECT_EQ(1u, session_->pending_create_stream_queue_size(LOWEST)); |
| 2442 | 2444 |
| 2443 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); | 2445 base::WeakPtr<SpdyStream> stream2 = request2.ReleaseStream(); |
| 2444 test::StreamDelegateDoNothing delegate2(stream2); | 2446 test::StreamDelegateDoNothing delegate2(stream2); |
| 2445 stream2->SetDelegate(&delegate2); | 2447 stream2->SetDelegate(&delegate2); |
| 2446 scoped_ptr<SpdyHeaderBlock> headers2( | 2448 scoped_ptr<SpdyHeaderBlock> headers2( |
| 2447 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2449 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2448 stream2->SendRequestHeaders(headers2.Pass(), NO_MORE_DATA_TO_SEND); | 2450 stream2->SendRequestHeaders(std::move(headers2), NO_MORE_DATA_TO_SEND); |
| 2449 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 2451 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
| 2450 | 2452 |
| 2451 // Run until 2nd stream is activated and then closed. | 2453 // Run until 2nd stream is activated and then closed. |
| 2452 EXPECT_EQ(0u, delegate2.stream_id()); | 2454 EXPECT_EQ(0u, delegate2.stream_id()); |
| 2453 base::RunLoop().RunUntilIdle(); | 2455 base::RunLoop().RunUntilIdle(); |
| 2454 EXPECT_FALSE(stream2); | 2456 EXPECT_FALSE(stream2); |
| 2455 EXPECT_EQ(3u, delegate2.stream_id()); | 2457 EXPECT_EQ(3u, delegate2.stream_id()); |
| 2456 | 2458 |
| 2457 EXPECT_EQ(0u, session_->num_active_streams()); | 2459 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2458 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); | 2460 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); |
| 2459 | 2461 |
| 2460 // Pump loop for SpdySession::ProcessPendingStreamRequests() to | 2462 // Pump loop for SpdySession::ProcessPendingStreamRequests() to |
| 2461 // create the 3rd stream. | 2463 // create the 3rd stream. |
| 2462 base::RunLoop().RunUntilIdle(); | 2464 base::RunLoop().RunUntilIdle(); |
| 2463 | 2465 |
| 2464 EXPECT_EQ(0u, session_->num_active_streams()); | 2466 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2465 EXPECT_EQ(1u, session_->num_created_streams()); | 2467 EXPECT_EQ(1u, session_->num_created_streams()); |
| 2466 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); | 2468 EXPECT_EQ(0u, session_->pending_create_stream_queue_size(LOWEST)); |
| 2467 | 2469 |
| 2468 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); | 2470 base::WeakPtr<SpdyStream> stream3 = request3.ReleaseStream(); |
| 2469 test::StreamDelegateDoNothing delegate3(stream3); | 2471 test::StreamDelegateDoNothing delegate3(stream3); |
| 2470 stream3->SetDelegate(&delegate3); | 2472 stream3->SetDelegate(&delegate3); |
| 2471 scoped_ptr<SpdyHeaderBlock> headers3( | 2473 scoped_ptr<SpdyHeaderBlock> headers3( |
| 2472 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2474 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2473 stream3->SendRequestHeaders(headers3.Pass(), NO_MORE_DATA_TO_SEND); | 2475 stream3->SendRequestHeaders(std::move(headers3), NO_MORE_DATA_TO_SEND); |
| 2474 EXPECT_TRUE(stream3->HasUrlFromHeaders()); | 2476 EXPECT_TRUE(stream3->HasUrlFromHeaders()); |
| 2475 | 2477 |
| 2476 // Run until 2nd stream is activated and then closed. | 2478 // Run until 2nd stream is activated and then closed. |
| 2477 EXPECT_EQ(0u, delegate3.stream_id()); | 2479 EXPECT_EQ(0u, delegate3.stream_id()); |
| 2478 base::RunLoop().RunUntilIdle(); | 2480 base::RunLoop().RunUntilIdle(); |
| 2479 EXPECT_FALSE(stream3); | 2481 EXPECT_FALSE(stream3); |
| 2480 EXPECT_EQ(5u, delegate3.stream_id()); | 2482 EXPECT_EQ(5u, delegate3.stream_id()); |
| 2481 | 2483 |
| 2482 EXPECT_EQ(0u, session_->num_active_streams()); | 2484 EXPECT_EQ(0u, session_->num_active_streams()); |
| 2483 EXPECT_EQ(0u, session_->num_created_streams()); | 2485 EXPECT_EQ(0u, session_->num_created_streams()); |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2612 | 2614 |
| 2613 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2615 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 2614 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2616 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2615 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2617 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 2616 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2618 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2617 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2619 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2618 spdy_stream1->SetDelegate(&delegate1); | 2620 spdy_stream1->SetDelegate(&delegate1); |
| 2619 | 2621 |
| 2620 scoped_ptr<SpdyHeaderBlock> headers1( | 2622 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2621 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2623 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2622 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2624 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 2623 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2625 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2624 | 2626 |
| 2625 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't | 2627 // Set up the TaskObserver to verify SpdySession::DoReadLoop doesn't |
| 2626 // post a task. | 2628 // post a task. |
| 2627 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2629 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
| 2628 | 2630 |
| 2629 // Run until 1st read. | 2631 // Run until 1st read. |
| 2630 EXPECT_EQ(0u, delegate1.stream_id()); | 2632 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2631 base::RunLoop().RunUntilIdle(); | 2633 base::RunLoop().RunUntilIdle(); |
| 2632 EXPECT_EQ(1u, delegate1.stream_id()); | 2634 EXPECT_EQ(1u, delegate1.stream_id()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2676 | 2678 |
| 2677 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2679 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 2678 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2680 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2679 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2681 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 2680 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2682 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2681 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2683 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2682 spdy_stream1->SetDelegate(&delegate1); | 2684 spdy_stream1->SetDelegate(&delegate1); |
| 2683 | 2685 |
| 2684 scoped_ptr<SpdyHeaderBlock> headers1( | 2686 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2685 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2687 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2686 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2688 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 2687 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2689 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2688 | 2690 |
| 2689 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a | 2691 // Set up the TaskObserver to verify that SpdySession::DoReadLoop posts a |
| 2690 // task. | 2692 // task. |
| 2691 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2693 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
| 2692 | 2694 |
| 2693 EXPECT_EQ(0u, delegate1.stream_id()); | 2695 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2694 EXPECT_EQ(0u, observer.executed_count()); | 2696 EXPECT_EQ(0u, observer.executed_count()); |
| 2695 | 2697 |
| 2696 // Read all the data and verify that SpdySession::DoReadLoop has posted a | 2698 // Read all the data and verify that SpdySession::DoReadLoop has posted a |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2747 | 2749 |
| 2748 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2750 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 2749 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2751 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2750 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2752 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 2751 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2753 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2752 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2754 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2753 spdy_stream1->SetDelegate(&delegate1); | 2755 spdy_stream1->SetDelegate(&delegate1); |
| 2754 | 2756 |
| 2755 scoped_ptr<SpdyHeaderBlock> headers1( | 2757 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2756 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2758 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2757 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2759 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 2758 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2760 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2759 | 2761 |
| 2760 // Run until 1st read. | 2762 // Run until 1st read. |
| 2761 EXPECT_EQ(0u, delegate1.stream_id()); | 2763 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2762 base::RunLoop().RunUntilIdle(); | 2764 base::RunLoop().RunUntilIdle(); |
| 2763 EXPECT_EQ(1u, delegate1.stream_id()); | 2765 EXPECT_EQ(1u, delegate1.stream_id()); |
| 2764 | 2766 |
| 2765 // Read all the data and verify SpdySession::DoReadLoop has posted a task. | 2767 // Read all the data and verify SpdySession::DoReadLoop has posted a task. |
| 2766 data.Resume(); | 2768 data.Resume(); |
| 2767 base::RunLoop().RunUntilIdle(); | 2769 base::RunLoop().RunUntilIdle(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2828 | 2830 |
| 2829 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2831 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 2830 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2832 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2831 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2833 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 2832 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2834 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2833 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2835 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2834 spdy_stream1->SetDelegate(&delegate1); | 2836 spdy_stream1->SetDelegate(&delegate1); |
| 2835 | 2837 |
| 2836 scoped_ptr<SpdyHeaderBlock> headers1( | 2838 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2837 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2839 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2838 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2840 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 2839 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2841 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2840 | 2842 |
| 2841 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. | 2843 // Set up the TaskObserver to verify SpdySession::DoReadLoop posts a task. |
| 2842 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2844 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
| 2843 | 2845 |
| 2844 // Run until 1st read. | 2846 // Run until 1st read. |
| 2845 EXPECT_EQ(0u, delegate1.stream_id()); | 2847 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2846 base::RunLoop().RunUntilIdle(); | 2848 base::RunLoop().RunUntilIdle(); |
| 2847 EXPECT_EQ(1u, delegate1.stream_id()); | 2849 EXPECT_EQ(1u, delegate1.stream_id()); |
| 2848 EXPECT_EQ(0u, observer.executed_count()); | 2850 EXPECT_EQ(0u, observer.executed_count()); |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2935 | 2937 |
| 2936 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 2938 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 2937 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 2939 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 2938 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 2940 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 2939 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 2941 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 2940 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 2942 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 2941 spdy_stream1->SetDelegate(&delegate1); | 2943 spdy_stream1->SetDelegate(&delegate1); |
| 2942 | 2944 |
| 2943 scoped_ptr<SpdyHeaderBlock> headers1( | 2945 scoped_ptr<SpdyHeaderBlock> headers1( |
| 2944 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 2946 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 2945 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 2947 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 2946 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 2948 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 2947 | 2949 |
| 2948 // Set up the TaskObserver to monitor SpdySession::DoReadLoop | 2950 // Set up the TaskObserver to monitor SpdySession::DoReadLoop |
| 2949 // posting of tasks. | 2951 // posting of tasks. |
| 2950 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); | 2952 SpdySessionTestTaskObserver observer("spdy_session.cc", "DoReadLoop"); |
| 2951 | 2953 |
| 2952 // Run until 1st read. | 2954 // Run until 1st read. |
| 2953 EXPECT_EQ(0u, delegate1.stream_id()); | 2955 EXPECT_EQ(0u, delegate1.stream_id()); |
| 2954 base::RunLoop().RunUntilIdle(); | 2956 base::RunLoop().RunUntilIdle(); |
| 2955 EXPECT_EQ(1u, delegate1.stream_id()); | 2957 EXPECT_EQ(1u, delegate1.stream_id()); |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3003 | 3005 |
| 3004 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( | 3006 base::WeakPtr<SpdyStream> spdy_stream1 = CreateStreamSynchronously( |
| 3005 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3007 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 3006 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 3008 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 3007 spdy_stream1->SetDelegate(&delegate1); | 3009 spdy_stream1->SetDelegate(&delegate1); |
| 3008 ASSERT_TRUE(spdy_stream1.get() != nullptr); | 3010 ASSERT_TRUE(spdy_stream1.get() != nullptr); |
| 3009 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 3011 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 3010 | 3012 |
| 3011 scoped_ptr<SpdyHeaderBlock> headers1( | 3013 scoped_ptr<SpdyHeaderBlock> headers1( |
| 3012 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3014 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 3013 spdy_stream1->SendRequestHeaders(headers1.Pass(), NO_MORE_DATA_TO_SEND); | 3015 spdy_stream1->SendRequestHeaders(std::move(headers1), NO_MORE_DATA_TO_SEND); |
| 3014 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 3016 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 3015 | 3017 |
| 3016 // Run until 1st read. | 3018 // Run until 1st read. |
| 3017 EXPECT_EQ(0u, spdy_stream1->stream_id()); | 3019 EXPECT_EQ(0u, spdy_stream1->stream_id()); |
| 3018 base::RunLoop().RunUntilIdle(); | 3020 base::RunLoop().RunUntilIdle(); |
| 3019 EXPECT_EQ(1u, spdy_stream1->stream_id()); | 3021 EXPECT_EQ(1u, spdy_stream1->stream_id()); |
| 3020 | 3022 |
| 3021 // Run until GoAway. | 3023 // Run until GoAway. |
| 3022 data.Resume(); | 3024 data.Resume(); |
| 3023 base::RunLoop().RunUntilIdle(); | 3025 base::RunLoop().RunUntilIdle(); |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3222 TestCompletionCallback callback1; | 3224 TestCompletionCallback callback1; |
| 3223 base::WeakPtr<SpdyStream> spdy_stream1 = | 3225 base::WeakPtr<SpdyStream> spdy_stream1 = |
| 3224 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, | 3226 CreateStreamSynchronously(SPDY_REQUEST_RESPONSE_STREAM, session_, |
| 3225 test_url_, DEFAULT_PRIORITY, BoundNetLog()); | 3227 test_url_, DEFAULT_PRIORITY, BoundNetLog()); |
| 3226 ASSERT_TRUE(spdy_stream1.get()); | 3228 ASSERT_TRUE(spdy_stream1.get()); |
| 3227 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 3229 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 3228 spdy_stream1->SetDelegate(&delegate1); | 3230 spdy_stream1->SetDelegate(&delegate1); |
| 3229 | 3231 |
| 3230 scoped_ptr<SpdyHeaderBlock> headers1( | 3232 scoped_ptr<SpdyHeaderBlock> headers1( |
| 3231 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3233 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 3232 EXPECT_EQ(ERR_IO_PENDING, | 3234 EXPECT_EQ(ERR_IO_PENDING, spdy_stream1->SendRequestHeaders( |
| 3233 spdy_stream1->SendRequestHeaders( | 3235 std::move(headers1), NO_MORE_DATA_TO_SEND)); |
| 3234 headers1.Pass(), NO_MORE_DATA_TO_SEND)); | |
| 3235 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 3236 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 3236 | 3237 |
| 3237 base::RunLoop().RunUntilIdle(); | 3238 base::RunLoop().RunUntilIdle(); |
| 3238 | 3239 |
| 3239 // Trying to create a new connection should cause the pool to be stalled, and | 3240 // Trying to create a new connection should cause the pool to be stalled, and |
| 3240 // post a task asynchronously to try and close the session. | 3241 // post a task asynchronously to try and close the session. |
| 3241 TestCompletionCallback callback2; | 3242 TestCompletionCallback callback2; |
| 3242 HostPortPair host_port2("2.com", 80); | 3243 HostPortPair host_port2("2.com", 80); |
| 3243 scoped_refptr<TransportSocketParams> params2( | 3244 scoped_refptr<TransportSocketParams> params2( |
| 3244 new TransportSocketParams( | 3245 new TransportSocketParams( |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3353 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3354 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 3354 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3355 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 3355 ASSERT_TRUE(spdy_stream.get() != nullptr); | 3356 ASSERT_TRUE(spdy_stream.get() != nullptr); |
| 3356 EXPECT_EQ(0u, spdy_stream->stream_id()); | 3357 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 3357 | 3358 |
| 3358 StreamCreatingDelegate delegate(spdy_stream, session_); | 3359 StreamCreatingDelegate delegate(spdy_stream, session_); |
| 3359 spdy_stream->SetDelegate(&delegate); | 3360 spdy_stream->SetDelegate(&delegate); |
| 3360 | 3361 |
| 3361 scoped_ptr<SpdyHeaderBlock> headers( | 3362 scoped_ptr<SpdyHeaderBlock> headers( |
| 3362 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3363 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 3363 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 3364 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 3364 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); | 3365 EXPECT_TRUE(spdy_stream->HasUrlFromHeaders()); |
| 3365 | 3366 |
| 3366 EXPECT_EQ(0u, spdy_stream->stream_id()); | 3367 EXPECT_EQ(0u, spdy_stream->stream_id()); |
| 3367 | 3368 |
| 3368 base::RunLoop().RunUntilIdle(); | 3369 base::RunLoop().RunUntilIdle(); |
| 3369 | 3370 |
| 3370 EXPECT_EQ(1u, spdy_stream->stream_id()); | 3371 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 3371 | 3372 |
| 3372 // Cause the stream to be reset, which should cause another stream | 3373 // Cause the stream to be reset, which should cause another stream |
| 3373 // to be created. | 3374 // to be created. |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3645 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3646 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 3646 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 3647 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
| 3647 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); | 3648 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); |
| 3648 | 3649 |
| 3649 test::StreamDelegateDoNothing delegate(spdy_stream); | 3650 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 3650 spdy_stream->SetDelegate(&delegate); | 3651 spdy_stream->SetDelegate(&delegate); |
| 3651 | 3652 |
| 3652 scoped_ptr<SpdyHeaderBlock> headers( | 3653 scoped_ptr<SpdyHeaderBlock> headers( |
| 3653 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3654 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 3654 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( | 3655 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( |
| 3655 headers.Pass(), NO_MORE_DATA_TO_SEND)); | 3656 std::move(headers), NO_MORE_DATA_TO_SEND)); |
| 3656 | 3657 |
| 3657 // Request and response. | 3658 // Request and response. |
| 3658 base::RunLoop().RunUntilIdle(); | 3659 base::RunLoop().RunUntilIdle(); |
| 3659 EXPECT_EQ(1u, spdy_stream->stream_id()); | 3660 EXPECT_EQ(1u, spdy_stream->stream_id()); |
| 3660 | 3661 |
| 3661 // Too large data frame causes flow control error, should close stream. | 3662 // Too large data frame causes flow control error, should close stream. |
| 3662 data.Resume(); | 3663 data.Resume(); |
| 3663 base::RunLoop().RunUntilIdle(); | 3664 base::RunLoop().RunUntilIdle(); |
| 3664 EXPECT_FALSE(spdy_stream); | 3665 EXPECT_FALSE(spdy_stream); |
| 3665 | 3666 |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3786 EXPECT_LE(SpdySession::FLOW_CONTROL_STREAM, session_->flow_control_state()); | 3787 EXPECT_LE(SpdySession::FLOW_CONTROL_STREAM, session_->flow_control_state()); |
| 3787 | 3788 |
| 3788 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 3789 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 3789 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 3790 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
| 3790 test::StreamDelegateDoNothing delegate(spdy_stream); | 3791 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 3791 spdy_stream->SetDelegate(&delegate); | 3792 spdy_stream->SetDelegate(&delegate); |
| 3792 | 3793 |
| 3793 scoped_ptr<SpdyHeaderBlock> headers( | 3794 scoped_ptr<SpdyHeaderBlock> headers( |
| 3794 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 3795 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 3795 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( | 3796 EXPECT_EQ(ERR_IO_PENDING, spdy_stream->SendRequestHeaders( |
| 3796 headers.Pass(), NO_MORE_DATA_TO_SEND)); | 3797 std::move(headers), NO_MORE_DATA_TO_SEND)); |
| 3797 | 3798 |
| 3798 // Request and response. | 3799 // Request and response. |
| 3799 base::RunLoop().RunUntilIdle(); | 3800 base::RunLoop().RunUntilIdle(); |
| 3800 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); | 3801 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); |
| 3801 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); | 3802 EXPECT_EQ(stream_max_recv_window_size, spdy_stream->recv_window_size()); |
| 3802 | 3803 |
| 3803 // First data frame. | 3804 // First data frame. |
| 3804 data.Resume(); | 3805 data.Resume(); |
| 3805 base::RunLoop().RunUntilIdle(); | 3806 base::RunLoop().RunUntilIdle(); |
| 3806 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); | 3807 EXPECT_TRUE(spdy_stream->IsLocallyClosed()); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3878 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3879 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 3879 ASSERT_TRUE(stream.get() != nullptr); | 3880 ASSERT_TRUE(stream.get() != nullptr); |
| 3880 EXPECT_EQ(0u, stream->stream_id()); | 3881 EXPECT_EQ(0u, stream->stream_id()); |
| 3881 | 3882 |
| 3882 DropReceivedDataDelegate delegate(stream, msg_data); | 3883 DropReceivedDataDelegate delegate(stream, msg_data); |
| 3883 stream->SetDelegate(&delegate); | 3884 stream->SetDelegate(&delegate); |
| 3884 | 3885 |
| 3885 scoped_ptr<SpdyHeaderBlock> headers( | 3886 scoped_ptr<SpdyHeaderBlock> headers( |
| 3886 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 3887 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
| 3887 EXPECT_EQ(ERR_IO_PENDING, | 3888 EXPECT_EQ(ERR_IO_PENDING, |
| 3888 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 3889 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 3889 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 3890 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 3890 | 3891 |
| 3891 const int32_t initial_window_size = | 3892 const int32_t initial_window_size = |
| 3892 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 3893 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
| 3893 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 3894 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
| 3894 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); | 3895 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); |
| 3895 | 3896 |
| 3896 base::RunLoop().RunUntilIdle(); | 3897 base::RunLoop().RunUntilIdle(); |
| 3897 | 3898 |
| 3898 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 3899 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3944 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 3945 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 3945 ASSERT_TRUE(stream.get() != nullptr); | 3946 ASSERT_TRUE(stream.get() != nullptr); |
| 3946 EXPECT_EQ(0u, stream->stream_id()); | 3947 EXPECT_EQ(0u, stream->stream_id()); |
| 3947 | 3948 |
| 3948 test::StreamDelegateSendImmediate delegate(stream, msg_data); | 3949 test::StreamDelegateSendImmediate delegate(stream, msg_data); |
| 3949 stream->SetDelegate(&delegate); | 3950 stream->SetDelegate(&delegate); |
| 3950 | 3951 |
| 3951 scoped_ptr<SpdyHeaderBlock> headers( | 3952 scoped_ptr<SpdyHeaderBlock> headers( |
| 3952 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 3953 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
| 3953 EXPECT_EQ(ERR_IO_PENDING, | 3954 EXPECT_EQ(ERR_IO_PENDING, |
| 3954 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 3955 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 3955 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 3956 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 3956 | 3957 |
| 3957 const int32_t initial_window_size = | 3958 const int32_t initial_window_size = |
| 3958 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 3959 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
| 3959 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 3960 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
| 3960 | 3961 |
| 3961 // Write request. | 3962 // Write request. |
| 3962 base::RunLoop().RunUntilIdle(); | 3963 base::RunLoop().RunUntilIdle(); |
| 3963 | 3964 |
| 3964 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 3965 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4028 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); | 4029 SPDY_BIDIRECTIONAL_STREAM, session_, test_url_, MEDIUM, BoundNetLog()); |
| 4029 ASSERT_TRUE(stream.get() != nullptr); | 4030 ASSERT_TRUE(stream.get() != nullptr); |
| 4030 EXPECT_EQ(0u, stream->stream_id()); | 4031 EXPECT_EQ(0u, stream->stream_id()); |
| 4031 | 4032 |
| 4032 test::StreamDelegateSendImmediate delegate(stream, msg_data); | 4033 test::StreamDelegateSendImmediate delegate(stream, msg_data); |
| 4033 stream->SetDelegate(&delegate); | 4034 stream->SetDelegate(&delegate); |
| 4034 | 4035 |
| 4035 scoped_ptr<SpdyHeaderBlock> headers( | 4036 scoped_ptr<SpdyHeaderBlock> headers( |
| 4036 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); | 4037 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kMsgDataSize)); |
| 4037 EXPECT_EQ(ERR_IO_PENDING, | 4038 EXPECT_EQ(ERR_IO_PENDING, |
| 4038 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 4039 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 4039 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 4040 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 4040 | 4041 |
| 4041 const int32_t initial_window_size = | 4042 const int32_t initial_window_size = |
| 4042 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); | 4043 SpdySession::GetDefaultInitialWindowSize(GetProtocol()); |
| 4043 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); | 4044 EXPECT_EQ(initial_window_size, session_->session_send_window_size_); |
| 4044 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); | 4045 EXPECT_EQ(initial_window_size, session_->session_recv_window_size_); |
| 4045 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); | 4046 EXPECT_EQ(0, session_->session_unacked_recv_window_bytes_); |
| 4046 | 4047 |
| 4047 // Send request and message. | 4048 // Send request and message. |
| 4048 base::RunLoop().RunUntilIdle(); | 4049 base::RunLoop().RunUntilIdle(); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4131 | 4132 |
| 4132 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); | 4133 test::StreamDelegateWithBody delegate(stream, kBodyDataStringPiece); |
| 4133 stream->SetDelegate(&delegate); | 4134 stream->SetDelegate(&delegate); |
| 4134 | 4135 |
| 4135 EXPECT_FALSE(stream->HasUrlFromHeaders()); | 4136 EXPECT_FALSE(stream->HasUrlFromHeaders()); |
| 4136 EXPECT_FALSE(stream->send_stalled_by_flow_control()); | 4137 EXPECT_FALSE(stream->send_stalled_by_flow_control()); |
| 4137 | 4138 |
| 4138 scoped_ptr<SpdyHeaderBlock> headers( | 4139 scoped_ptr<SpdyHeaderBlock> headers( |
| 4139 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4140 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4140 EXPECT_EQ(ERR_IO_PENDING, | 4141 EXPECT_EQ(ERR_IO_PENDING, |
| 4141 stream->SendRequestHeaders(headers.Pass(), MORE_DATA_TO_SEND)); | 4142 stream->SendRequestHeaders(std::move(headers), MORE_DATA_TO_SEND)); |
| 4142 EXPECT_TRUE(stream->HasUrlFromHeaders()); | 4143 EXPECT_TRUE(stream->HasUrlFromHeaders()); |
| 4143 EXPECT_EQ(kDefaultURL, stream->GetUrlFromHeaders().spec()); | 4144 EXPECT_EQ(kDefaultURL, stream->GetUrlFromHeaders().spec()); |
| 4144 | 4145 |
| 4145 stall_function.Run(stream.get()); | 4146 stall_function.Run(stream.get()); |
| 4146 | 4147 |
| 4147 base::RunLoop().RunUntilIdle(); | 4148 base::RunLoop().RunUntilIdle(); |
| 4148 | 4149 |
| 4149 EXPECT_TRUE(stream->send_stalled_by_flow_control()); | 4150 EXPECT_TRUE(stream->send_stalled_by_flow_control()); |
| 4150 | 4151 |
| 4151 unstall_function.Run(stream.get(), kBodyDataSize); | 4152 unstall_function.Run(stream.get(), kBodyDataSize); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4271 | 4272 |
| 4272 EXPECT_FALSE(stream2->HasUrlFromHeaders()); | 4273 EXPECT_FALSE(stream2->HasUrlFromHeaders()); |
| 4273 | 4274 |
| 4274 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4275 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
| 4275 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4276 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
| 4276 | 4277 |
| 4277 StallSessionSend(); | 4278 StallSessionSend(); |
| 4278 | 4279 |
| 4279 scoped_ptr<SpdyHeaderBlock> headers1( | 4280 scoped_ptr<SpdyHeaderBlock> headers1( |
| 4280 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4281 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4281 EXPECT_EQ(ERR_IO_PENDING, | 4282 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
| 4282 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4283 MORE_DATA_TO_SEND)); |
| 4283 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4284 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
| 4284 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4285 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
| 4285 | 4286 |
| 4286 base::RunLoop().RunUntilIdle(); | 4287 base::RunLoop().RunUntilIdle(); |
| 4287 EXPECT_EQ(1u, stream1->stream_id()); | 4288 EXPECT_EQ(1u, stream1->stream_id()); |
| 4288 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4289 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
| 4289 | 4290 |
| 4290 scoped_ptr<SpdyHeaderBlock> headers2( | 4291 scoped_ptr<SpdyHeaderBlock> headers2( |
| 4291 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4292 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4292 EXPECT_EQ(ERR_IO_PENDING, | 4293 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
| 4293 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4294 MORE_DATA_TO_SEND)); |
| 4294 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4295 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
| 4295 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4296 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
| 4296 | 4297 |
| 4297 base::RunLoop().RunUntilIdle(); | 4298 base::RunLoop().RunUntilIdle(); |
| 4298 EXPECT_EQ(3u, stream2->stream_id()); | 4299 EXPECT_EQ(3u, stream2->stream_id()); |
| 4299 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4300 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
| 4300 | 4301 |
| 4301 // This should unstall only stream2. | 4302 // This should unstall only stream2. |
| 4302 UnstallSessionSend(kBodyDataSize); | 4303 UnstallSessionSend(kBodyDataSize); |
| 4303 | 4304 |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4422 EXPECT_FALSE(stream3->HasUrlFromHeaders()); | 4423 EXPECT_FALSE(stream3->HasUrlFromHeaders()); |
| 4423 | 4424 |
| 4424 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4425 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
| 4425 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4426 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
| 4426 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); | 4427 EXPECT_FALSE(stream3->send_stalled_by_flow_control()); |
| 4427 | 4428 |
| 4428 StallSessionSend(); | 4429 StallSessionSend(); |
| 4429 | 4430 |
| 4430 scoped_ptr<SpdyHeaderBlock> headers1( | 4431 scoped_ptr<SpdyHeaderBlock> headers1( |
| 4431 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4432 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4432 EXPECT_EQ(ERR_IO_PENDING, | 4433 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
| 4433 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4434 MORE_DATA_TO_SEND)); |
| 4434 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4435 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
| 4435 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4436 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
| 4436 | 4437 |
| 4437 base::RunLoop().RunUntilIdle(); | 4438 base::RunLoop().RunUntilIdle(); |
| 4438 EXPECT_EQ(1u, stream1->stream_id()); | 4439 EXPECT_EQ(1u, stream1->stream_id()); |
| 4439 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4440 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
| 4440 | 4441 |
| 4441 scoped_ptr<SpdyHeaderBlock> headers2( | 4442 scoped_ptr<SpdyHeaderBlock> headers2( |
| 4442 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4443 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4443 EXPECT_EQ(ERR_IO_PENDING, | 4444 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
| 4444 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4445 MORE_DATA_TO_SEND)); |
| 4445 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4446 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
| 4446 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4447 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
| 4447 | 4448 |
| 4448 base::RunLoop().RunUntilIdle(); | 4449 base::RunLoop().RunUntilIdle(); |
| 4449 EXPECT_EQ(3u, stream2->stream_id()); | 4450 EXPECT_EQ(3u, stream2->stream_id()); |
| 4450 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4451 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
| 4451 | 4452 |
| 4452 scoped_ptr<SpdyHeaderBlock> headers3( | 4453 scoped_ptr<SpdyHeaderBlock> headers3( |
| 4453 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4454 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4454 EXPECT_EQ(ERR_IO_PENDING, | 4455 EXPECT_EQ(ERR_IO_PENDING, stream3->SendRequestHeaders(std::move(headers3), |
| 4455 stream3->SendRequestHeaders(headers3.Pass(), MORE_DATA_TO_SEND)); | 4456 MORE_DATA_TO_SEND)); |
| 4456 EXPECT_TRUE(stream3->HasUrlFromHeaders()); | 4457 EXPECT_TRUE(stream3->HasUrlFromHeaders()); |
| 4457 EXPECT_EQ(kDefaultURL, stream3->GetUrlFromHeaders().spec()); | 4458 EXPECT_EQ(kDefaultURL, stream3->GetUrlFromHeaders().spec()); |
| 4458 | 4459 |
| 4459 base::RunLoop().RunUntilIdle(); | 4460 base::RunLoop().RunUntilIdle(); |
| 4460 EXPECT_EQ(5u, stream3->stream_id()); | 4461 EXPECT_EQ(5u, stream3->stream_id()); |
| 4461 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); | 4462 EXPECT_TRUE(stream3->send_stalled_by_flow_control()); |
| 4462 | 4463 |
| 4463 SpdyStreamId stream_id1 = stream1->stream_id(); | 4464 SpdyStreamId stream_id1 = stream1->stream_id(); |
| 4464 SpdyStreamId stream_id2 = stream2->stream_id(); | 4465 SpdyStreamId stream_id2 = stream2->stream_id(); |
| 4465 SpdyStreamId stream_id3 = stream3->stream_id(); | 4466 SpdyStreamId stream_id3 = stream3->stream_id(); |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4553 | 4554 |
| 4554 EXPECT_FALSE(stream2->HasUrlFromHeaders()); | 4555 EXPECT_FALSE(stream2->HasUrlFromHeaders()); |
| 4555 | 4556 |
| 4556 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); | 4557 EXPECT_FALSE(stream1->send_stalled_by_flow_control()); |
| 4557 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); | 4558 EXPECT_FALSE(stream2->send_stalled_by_flow_control()); |
| 4558 | 4559 |
| 4559 StallSessionSend(); | 4560 StallSessionSend(); |
| 4560 | 4561 |
| 4561 scoped_ptr<SpdyHeaderBlock> headers1( | 4562 scoped_ptr<SpdyHeaderBlock> headers1( |
| 4562 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4563 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4563 EXPECT_EQ(ERR_IO_PENDING, | 4564 EXPECT_EQ(ERR_IO_PENDING, stream1->SendRequestHeaders(std::move(headers1), |
| 4564 stream1->SendRequestHeaders(headers1.Pass(), MORE_DATA_TO_SEND)); | 4565 MORE_DATA_TO_SEND)); |
| 4565 EXPECT_TRUE(stream1->HasUrlFromHeaders()); | 4566 EXPECT_TRUE(stream1->HasUrlFromHeaders()); |
| 4566 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); | 4567 EXPECT_EQ(kDefaultURL, stream1->GetUrlFromHeaders().spec()); |
| 4567 | 4568 |
| 4568 base::RunLoop().RunUntilIdle(); | 4569 base::RunLoop().RunUntilIdle(); |
| 4569 EXPECT_EQ(1u, stream1->stream_id()); | 4570 EXPECT_EQ(1u, stream1->stream_id()); |
| 4570 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); | 4571 EXPECT_TRUE(stream1->send_stalled_by_flow_control()); |
| 4571 | 4572 |
| 4572 scoped_ptr<SpdyHeaderBlock> headers2( | 4573 scoped_ptr<SpdyHeaderBlock> headers2( |
| 4573 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); | 4574 spdy_util_.ConstructPostHeaderBlock(kDefaultURL, kBodyDataSize)); |
| 4574 EXPECT_EQ(ERR_IO_PENDING, | 4575 EXPECT_EQ(ERR_IO_PENDING, stream2->SendRequestHeaders(std::move(headers2), |
| 4575 stream2->SendRequestHeaders(headers2.Pass(), MORE_DATA_TO_SEND)); | 4576 MORE_DATA_TO_SEND)); |
| 4576 EXPECT_TRUE(stream2->HasUrlFromHeaders()); | 4577 EXPECT_TRUE(stream2->HasUrlFromHeaders()); |
| 4577 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); | 4578 EXPECT_EQ(kDefaultURL, stream2->GetUrlFromHeaders().spec()); |
| 4578 | 4579 |
| 4579 base::RunLoop().RunUntilIdle(); | 4580 base::RunLoop().RunUntilIdle(); |
| 4580 EXPECT_EQ(3u, stream2->stream_id()); | 4581 EXPECT_EQ(3u, stream2->stream_id()); |
| 4581 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); | 4582 EXPECT_TRUE(stream2->send_stalled_by_flow_control()); |
| 4582 | 4583 |
| 4583 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); | 4584 EXPECT_TRUE(HasSpdySession(spdy_session_pool_, key_)); |
| 4584 | 4585 |
| 4585 // Unstall stream1. | 4586 // Unstall stream1. |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4633 CreateInsecureSpdySession(); | 4634 CreateInsecureSpdySession(); |
| 4634 | 4635 |
| 4635 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( | 4636 base::WeakPtr<SpdyStream> spdy_stream = CreateStreamSynchronously( |
| 4636 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); | 4637 SPDY_REQUEST_RESPONSE_STREAM, session_, test_url_, LOWEST, BoundNetLog()); |
| 4637 ASSERT_TRUE(spdy_stream.get() != nullptr); | 4638 ASSERT_TRUE(spdy_stream.get() != nullptr); |
| 4638 test::StreamDelegateDoNothing delegate(spdy_stream); | 4639 test::StreamDelegateDoNothing delegate(spdy_stream); |
| 4639 spdy_stream->SetDelegate(&delegate); | 4640 spdy_stream->SetDelegate(&delegate); |
| 4640 | 4641 |
| 4641 scoped_ptr<SpdyHeaderBlock> headers( | 4642 scoped_ptr<SpdyHeaderBlock> headers( |
| 4642 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4643 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 4643 spdy_stream->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4644 spdy_stream->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 4644 | 4645 |
| 4645 // Write request. | 4646 // Write request. |
| 4646 base::RunLoop().RunUntilIdle(); | 4647 base::RunLoop().RunUntilIdle(); |
| 4647 | 4648 |
| 4648 // Put session on the edge of overflowing it's recv window. | 4649 // Put session on the edge of overflowing it's recv window. |
| 4649 session_->session_recv_window_size_ = 1; | 4650 session_->session_recv_window_size_ = 1; |
| 4650 | 4651 |
| 4651 // Read response headers & body. Body overflows the session window, and a | 4652 // Read response headers & body. Body overflows the session window, and a |
| 4652 // goaway is written. | 4653 // goaway is written. |
| 4653 data.Resume(); | 4654 data.Resume(); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4720 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4721 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 4721 spdy_stream1->SetDelegate(&delegate1); | 4722 spdy_stream1->SetDelegate(&delegate1); |
| 4722 | 4723 |
| 4723 EXPECT_EQ(0u, session_->num_active_streams()); | 4724 EXPECT_EQ(0u, session_->num_active_streams()); |
| 4724 EXPECT_EQ(1u, session_->num_created_streams()); | 4725 EXPECT_EQ(1u, session_->num_created_streams()); |
| 4725 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4726 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4726 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4727 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| 4727 | 4728 |
| 4728 scoped_ptr<SpdyHeaderBlock> headers( | 4729 scoped_ptr<SpdyHeaderBlock> headers( |
| 4729 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4730 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 4730 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4731 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 4731 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4732 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 4732 | 4733 |
| 4733 // Run until 1st stream is activated. | 4734 // Run until 1st stream is activated. |
| 4734 EXPECT_EQ(0u, delegate1.stream_id()); | 4735 EXPECT_EQ(0u, delegate1.stream_id()); |
| 4735 base::RunLoop().RunUntilIdle(); | 4736 base::RunLoop().RunUntilIdle(); |
| 4736 EXPECT_EQ(1u, delegate1.stream_id()); | 4737 EXPECT_EQ(1u, delegate1.stream_id()); |
| 4737 EXPECT_EQ(1u, session_->num_active_streams()); | 4738 EXPECT_EQ(1u, session_->num_active_streams()); |
| 4738 EXPECT_EQ(0u, session_->num_created_streams()); | 4739 EXPECT_EQ(0u, session_->num_created_streams()); |
| 4739 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4740 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4740 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4741 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4800 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4801 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 4801 spdy_stream1->SetDelegate(&delegate1); | 4802 spdy_stream1->SetDelegate(&delegate1); |
| 4802 | 4803 |
| 4803 EXPECT_EQ(0u, session_->num_active_streams()); | 4804 EXPECT_EQ(0u, session_->num_active_streams()); |
| 4804 EXPECT_EQ(1u, session_->num_created_streams()); | 4805 EXPECT_EQ(1u, session_->num_created_streams()); |
| 4805 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4806 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4806 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4807 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| 4807 | 4808 |
| 4808 scoped_ptr<SpdyHeaderBlock> headers( | 4809 scoped_ptr<SpdyHeaderBlock> headers( |
| 4809 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4810 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 4810 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4811 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 4811 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4812 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 4812 | 4813 |
| 4813 // Run until 1st stream is activated. | 4814 // Run until 1st stream is activated. |
| 4814 EXPECT_EQ(0u, delegate1.stream_id()); | 4815 EXPECT_EQ(0u, delegate1.stream_id()); |
| 4815 base::RunLoop().RunUntilIdle(); | 4816 base::RunLoop().RunUntilIdle(); |
| 4816 EXPECT_EQ(1u, delegate1.stream_id()); | 4817 EXPECT_EQ(1u, delegate1.stream_id()); |
| 4817 EXPECT_EQ(1u, session_->num_active_streams()); | 4818 EXPECT_EQ(1u, session_->num_active_streams()); |
| 4818 EXPECT_EQ(0u, session_->num_created_streams()); | 4819 EXPECT_EQ(0u, session_->num_created_streams()); |
| 4819 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4820 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4820 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4821 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 4845 // Streams in reserved remote state exist only in HTTP/2. | 4846 // Streams in reserved remote state exist only in HTTP/2. |
| 4846 if (spdy_util_.spdy_version() < HTTP2) | 4847 if (spdy_util_.spdy_version() < HTTP2) |
| 4847 return; | 4848 return; |
| 4848 | 4849 |
| 4849 scoped_ptr<SpdyFrame> push_a(spdy_util_.ConstructSpdyPush( | 4850 scoped_ptr<SpdyFrame> push_a(spdy_util_.ConstructSpdyPush( |
| 4850 nullptr, 0, 2, 1, "http://www.example.org/a.dat")); | 4851 nullptr, 0, 2, 1, "http://www.example.org/a.dat")); |
| 4851 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); | 4852 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); |
| 4852 spdy_util_.AddUrlToHeaderBlock("http://www.example.org/b.dat", | 4853 spdy_util_.AddUrlToHeaderBlock("http://www.example.org/b.dat", |
| 4853 push_headers.get()); | 4854 push_headers.get()); |
| 4854 scoped_ptr<SpdyFrame> push_b( | 4855 scoped_ptr<SpdyFrame> push_b( |
| 4855 spdy_util_.ConstructInitialSpdyPushFrame(push_headers.Pass(), 4, 1)); | 4856 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 4, 1)); |
| 4856 scoped_ptr<SpdyFrame> headers_b( | 4857 scoped_ptr<SpdyFrame> headers_b( |
| 4857 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); | 4858 spdy_util_.ConstructSpdyPushHeaders(4, nullptr, 0)); |
| 4858 MockRead reads[] = { | 4859 MockRead reads[] = { |
| 4859 MockRead(ASYNC, ERR_IO_PENDING, 1), | 4860 MockRead(ASYNC, ERR_IO_PENDING, 1), |
| 4860 CreateMockRead(*push_a, 2), | 4861 CreateMockRead(*push_a, 2), |
| 4861 MockRead(ASYNC, ERR_IO_PENDING, 3), | 4862 MockRead(ASYNC, ERR_IO_PENDING, 3), |
| 4862 CreateMockRead(*push_b, 4), | 4863 CreateMockRead(*push_b, 4), |
| 4863 MockRead(ASYNC, ERR_IO_PENDING, 5), | 4864 MockRead(ASYNC, ERR_IO_PENDING, 5), |
| 4864 CreateMockRead(*headers_b, 6), | 4865 CreateMockRead(*headers_b, 6), |
| 4865 MockRead(ASYNC, ERR_IO_PENDING, 8), | 4866 MockRead(ASYNC, ERR_IO_PENDING, 8), |
| (...skipping 22 matching lines...) Expand all Loading... |
| 4888 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4889 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 4889 spdy_stream1->SetDelegate(&delegate1); | 4890 spdy_stream1->SetDelegate(&delegate1); |
| 4890 | 4891 |
| 4891 EXPECT_EQ(0u, session_->num_active_streams()); | 4892 EXPECT_EQ(0u, session_->num_active_streams()); |
| 4892 EXPECT_EQ(1u, session_->num_created_streams()); | 4893 EXPECT_EQ(1u, session_->num_created_streams()); |
| 4893 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4894 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4894 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4895 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| 4895 | 4896 |
| 4896 scoped_ptr<SpdyHeaderBlock> headers( | 4897 scoped_ptr<SpdyHeaderBlock> headers( |
| 4897 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4898 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 4898 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4899 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 4899 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4900 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 4900 | 4901 |
| 4901 // Run until 1st stream is activated. | 4902 // Run until 1st stream is activated. |
| 4902 EXPECT_EQ(0u, delegate1.stream_id()); | 4903 EXPECT_EQ(0u, delegate1.stream_id()); |
| 4903 base::RunLoop().RunUntilIdle(); | 4904 base::RunLoop().RunUntilIdle(); |
| 4904 EXPECT_EQ(1u, delegate1.stream_id()); | 4905 EXPECT_EQ(1u, delegate1.stream_id()); |
| 4905 EXPECT_EQ(1u, session_->num_active_streams()); | 4906 EXPECT_EQ(1u, session_->num_active_streams()); |
| 4906 EXPECT_EQ(0u, session_->num_created_streams()); | 4907 EXPECT_EQ(0u, session_->num_created_streams()); |
| 4907 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4908 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4908 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4909 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4940 | 4941 |
| 4941 TEST_P(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { | 4942 TEST_P(SpdySessionTest, CancelReservedStreamOnHeadersReceived) { |
| 4942 // Streams in reserved remote state exist only in HTTP/2. | 4943 // Streams in reserved remote state exist only in HTTP/2. |
| 4943 if (spdy_util_.spdy_version() < HTTP2) | 4944 if (spdy_util_.spdy_version() < HTTP2) |
| 4944 return; | 4945 return; |
| 4945 | 4946 |
| 4946 const char kPushedUrl[] = "http://www.example.org/a.dat"; | 4947 const char kPushedUrl[] = "http://www.example.org/a.dat"; |
| 4947 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); | 4948 scoped_ptr<SpdyHeaderBlock> push_headers(new SpdyHeaderBlock); |
| 4948 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, push_headers.get()); | 4949 spdy_util_.AddUrlToHeaderBlock(kPushedUrl, push_headers.get()); |
| 4949 scoped_ptr<SpdyFrame> push_promise( | 4950 scoped_ptr<SpdyFrame> push_promise( |
| 4950 spdy_util_.ConstructInitialSpdyPushFrame(push_headers.Pass(), 2, 1)); | 4951 spdy_util_.ConstructInitialSpdyPushFrame(std::move(push_headers), 2, 1)); |
| 4951 scoped_ptr<SpdyFrame> headers_frame( | 4952 scoped_ptr<SpdyFrame> headers_frame( |
| 4952 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); | 4953 spdy_util_.ConstructSpdyPushHeaders(2, nullptr, 0)); |
| 4953 MockRead reads[] = { | 4954 MockRead reads[] = { |
| 4954 MockRead(ASYNC, ERR_IO_PENDING, 1), | 4955 MockRead(ASYNC, ERR_IO_PENDING, 1), |
| 4955 CreateMockRead(*push_promise, 2), | 4956 CreateMockRead(*push_promise, 2), |
| 4956 MockRead(ASYNC, ERR_IO_PENDING, 3), | 4957 MockRead(ASYNC, ERR_IO_PENDING, 3), |
| 4957 CreateMockRead(*headers_frame, 4), | 4958 CreateMockRead(*headers_frame, 4), |
| 4958 MockRead(ASYNC, ERR_IO_PENDING, 6), | 4959 MockRead(ASYNC, ERR_IO_PENDING, 6), |
| 4959 MockRead(ASYNC, 0, 7), | 4960 MockRead(ASYNC, 0, 7), |
| 4960 }; | 4961 }; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 4980 test::StreamDelegateDoNothing delegate1(spdy_stream1); | 4981 test::StreamDelegateDoNothing delegate1(spdy_stream1); |
| 4981 spdy_stream1->SetDelegate(&delegate1); | 4982 spdy_stream1->SetDelegate(&delegate1); |
| 4982 | 4983 |
| 4983 EXPECT_EQ(0u, session_->num_active_streams()); | 4984 EXPECT_EQ(0u, session_->num_active_streams()); |
| 4984 EXPECT_EQ(1u, session_->num_created_streams()); | 4985 EXPECT_EQ(1u, session_->num_created_streams()); |
| 4985 EXPECT_EQ(0u, session_->num_pushed_streams()); | 4986 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 4986 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 4987 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| 4987 | 4988 |
| 4988 scoped_ptr<SpdyHeaderBlock> headers( | 4989 scoped_ptr<SpdyHeaderBlock> headers( |
| 4989 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); | 4990 spdy_util_.ConstructGetHeaderBlock(kDefaultURL)); |
| 4990 spdy_stream1->SendRequestHeaders(headers.Pass(), NO_MORE_DATA_TO_SEND); | 4991 spdy_stream1->SendRequestHeaders(std::move(headers), NO_MORE_DATA_TO_SEND); |
| 4991 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); | 4992 EXPECT_TRUE(spdy_stream1->HasUrlFromHeaders()); |
| 4992 | 4993 |
| 4993 // Run until 1st stream is activated. | 4994 // Run until 1st stream is activated. |
| 4994 EXPECT_EQ(0u, delegate1.stream_id()); | 4995 EXPECT_EQ(0u, delegate1.stream_id()); |
| 4995 base::RunLoop().RunUntilIdle(); | 4996 base::RunLoop().RunUntilIdle(); |
| 4996 EXPECT_EQ(1u, delegate1.stream_id()); | 4997 EXPECT_EQ(1u, delegate1.stream_id()); |
| 4997 EXPECT_EQ(1u, session_->num_active_streams()); | 4998 EXPECT_EQ(1u, session_->num_active_streams()); |
| 4998 EXPECT_EQ(0u, session_->num_created_streams()); | 4999 EXPECT_EQ(0u, session_->num_created_streams()); |
| 4999 EXPECT_EQ(0u, session_->num_pushed_streams()); | 5000 EXPECT_EQ(0u, session_->num_pushed_streams()); |
| 5000 EXPECT_EQ(0u, session_->num_active_pushed_streams()); | 5001 EXPECT_EQ(0u, session_->num_active_pushed_streams()); |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5208 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), | 5209 ssl_info.cert = ImportCertFromFile(GetTestCertsDirectory(), |
| 5209 "spdy_pooling.pem"); | 5210 "spdy_pooling.pem"); |
| 5210 ssl_info.is_issued_by_known_root = true; | 5211 ssl_info.is_issued_by_known_root = true; |
| 5211 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); | 5212 ssl_info.public_key_hashes.push_back(test::GetTestHashValue(primary_pin)); |
| 5212 | 5213 |
| 5213 EXPECT_TRUE(SpdySession::CanPool( | 5214 EXPECT_TRUE(SpdySession::CanPool( |
| 5214 &tss, ssl_info, "www.example.org", "mail.example.org")); | 5215 &tss, ssl_info, "www.example.org", "mail.example.org")); |
| 5215 } | 5216 } |
| 5216 | 5217 |
| 5217 } // namespace net | 5218 } // namespace net |
| OLD | NEW |