diff options
author | jgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 06:11:31 +0000 |
---|---|---|
committer | jgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-30 06:11:31 +0000 |
commit | dcaebbf0cb3dd5a2cbee521f4fa9bda719796ae3 (patch) | |
tree | 448b8eeba43456fba737bb8731ea26acc7b8a8d7 /net | |
parent | 0cc93b40bd1634eeb8365298f0776156cc15d309 (diff) | |
download | chromium_src-dcaebbf0cb3dd5a2cbee521f4fa9bda719796ae3.zip chromium_src-dcaebbf0cb3dd5a2cbee521f4fa9bda719796ae3.tar.gz chromium_src-dcaebbf0cb3dd5a2cbee521f4fa9bda719796ae3.tar.bz2 |
SPDY cleanup: remove credential slot.
Credential slot field has been removed from SYN_STREAM frame.
This lands server change 59587408 by mlavan.
Also update affected Chromium portions of QUIC & SPDY.
Review URL: https://codereview.chromium.org/141953004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247849 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/quic/quic_headers_stream.cc | 6 | ||||
-rw-r--r-- | net/quic/quic_headers_stream_test.cc | 5 | ||||
-rw-r--r-- | net/quic/quic_spdy_decompressor.cc | 1 | ||||
-rw-r--r-- | net/spdy/buffered_spdy_framer.cc | 5 | ||||
-rw-r--r-- | net/spdy/buffered_spdy_framer.h | 3 | ||||
-rw-r--r-- | net/spdy/buffered_spdy_framer_unittest.cc | 2 | ||||
-rw-r--r-- | net/spdy/mock_spdy_framer_visitor.h | 3 | ||||
-rw-r--r-- | net/spdy/spdy_framer.cc | 17 | ||||
-rw-r--r-- | net/spdy/spdy_framer.h | 1 | ||||
-rw-r--r-- | net/spdy/spdy_framer_test.cc | 77 | ||||
-rw-r--r-- | net/spdy/spdy_protocol.h | 6 | ||||
-rw-r--r-- | net/spdy/spdy_session.cc | 7 | ||||
-rw-r--r-- | net/spdy/spdy_session.h | 2 | ||||
-rw-r--r-- | net/spdy/spdy_session_unittest.cc | 4 | ||||
-rw-r--r-- | net/spdy/spdy_stream.cc | 3 | ||||
-rw-r--r-- | net/spdy/spdy_stream.h | 1 | ||||
-rw-r--r-- | net/spdy/spdy_test_util_common.cc | 3 | ||||
-rw-r--r-- | net/tools/flip_server/spdy_interface.cc | 27 | ||||
-rw-r--r-- | net/tools/flip_server/spdy_interface.h | 1 | ||||
-rw-r--r-- | net/tools/flip_server/spdy_interface_test.cc | 70 |
20 files changed, 79 insertions, 165 deletions
diff --git a/net/quic/quic_headers_stream.cc b/net/quic/quic_headers_stream.cc index a739d6b..a031e9e 100644 --- a/net/quic/quic_headers_stream.cc +++ b/net/quic/quic_headers_stream.cc @@ -30,7 +30,6 @@ class QuicHeadersStream::SpdyFramerVisitor virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) OVERRIDE { if (!stream_->IsConnected()) { @@ -42,11 +41,6 @@ class QuicHeadersStream::SpdyFramerVisitor return; } - if (credential_slot != 0) { - CloseConnection("credential_slot != 0"); - return; - } - if (unidirectional != 0) { CloseConnection("unidirectional != 0"); return; diff --git a/net/quic/quic_headers_stream_test.cc b/net/quic/quic_headers_stream_test.cc index 2516ec8..2d5a6a1 100644 --- a/net/quic/quic_headers_stream_test.cc +++ b/net/quic/quic_headers_stream_test.cc @@ -37,10 +37,9 @@ class MockVisitor : public SpdyFramerVisitorInterface { MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id, const char* header_data, size_t len)); - MOCK_METHOD6(OnSynStream, void(SpdyStreamId stream_id, + MOCK_METHOD5(OnSynStream, void(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 slot, bool fin, bool unidirectional)); MOCK_METHOD2(OnSynReply, void(SpdyStreamId stream_id, bool fin)); @@ -124,7 +123,7 @@ class QuicHeadersStreamTest : public ::testing::TestWithParam<bool> { if (type == SYN_STREAM) { EXPECT_CALL(visitor_, OnSynStream(stream_id, kNoAssociatedStream, 0, // priority, - _, fin, kNotUnidirectional)); + fin, kNotUnidirectional)); } else { EXPECT_CALL(visitor_, OnSynReply(stream_id, fin)); } diff --git a/net/quic/quic_spdy_decompressor.cc b/net/quic/quic_spdy_decompressor.cc index 4532ad3..74ac54f 100644 --- a/net/quic/quic_spdy_decompressor.cc +++ b/net/quic/quic_spdy_decompressor.cc @@ -36,7 +36,6 @@ class SpdyFramerVisitor : public SpdyFramerVisitorInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) OVERRIDE {} virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE {} diff --git a/net/spdy/buffered_spdy_framer.cc b/net/spdy/buffered_spdy_framer.cc index f1cfaed..2c00eb6 100644 --- a/net/spdy/buffered_spdy_framer.cc +++ b/net/spdy/buffered_spdy_framer.cc @@ -62,7 +62,6 @@ void BufferedSpdyFramer::OnError(SpdyFramer* spdy_framer) { void BufferedSpdyFramer::OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) { frames_received_++; @@ -72,7 +71,6 @@ void BufferedSpdyFramer::OnSynStream(SpdyStreamId stream_id, control_frame_fields_->stream_id = stream_id; control_frame_fields_->associated_stream_id = associated_stream_id; control_frame_fields_->priority = priority; - control_frame_fields_->credential_slot = credential_slot; control_frame_fields_->fin = fin; control_frame_fields_->unidirectional = unidirectional; @@ -128,7 +126,6 @@ bool BufferedSpdyFramer::OnControlFrameHeaderData(SpdyStreamId stream_id, visitor_->OnSynStream(control_frame_fields_->stream_id, control_frame_fields_->associated_stream_id, control_frame_fields_->priority, - control_frame_fields_->credential_slot, control_frame_fields_->fin, control_frame_fields_->unidirectional, headers); @@ -246,13 +243,11 @@ SpdyFrame* BufferedSpdyFramer::CreateSynStream( SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, SpdyControlFlags flags, const SpdyHeaderBlock* headers) { SpdySynStreamIR syn_stream(stream_id); syn_stream.set_associated_to_stream_id(associated_stream_id); syn_stream.set_priority(priority); - syn_stream.set_slot(credential_slot); syn_stream.set_fin((flags & CONTROL_FLAG_FIN) != 0); syn_stream.set_unidirectional((flags & CONTROL_FLAG_UNIDIRECTIONAL) != 0); // TODO(hkhalil): Avoid copy here. diff --git a/net/spdy/buffered_spdy_framer.h b/net/spdy/buffered_spdy_framer.h index dd1c2ee..0a23fe0 100644 --- a/net/spdy/buffered_spdy_framer.h +++ b/net/spdy/buffered_spdy_framer.h @@ -38,7 +38,6 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) = 0; @@ -127,7 +126,6 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) OVERRIDE; virtual void OnSynReply(SpdyStreamId stream_id, bool fin) OVERRIDE; @@ -166,7 +164,6 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer SpdyFrame* CreateSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, SpdyControlFlags flags, const SpdyHeaderBlock* headers); SpdyFrame* CreateSynReply(SpdyStreamId stream_id, diff --git a/net/spdy/buffered_spdy_framer_unittest.cc b/net/spdy/buffered_spdy_framer_unittest.cc index 229294e..28c756b 100644 --- a/net/spdy/buffered_spdy_framer_unittest.cc +++ b/net/spdy/buffered_spdy_framer_unittest.cc @@ -39,7 +39,6 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) OVERRIDE { @@ -221,7 +220,6 @@ TEST_P(BufferedSpdyFramerTest, ReadSynStreamHeaderBlock) { framer.CreateSynStream(1, // stream_id 0, // associated_stream_id 1, // priority - 0, // credential_slot CONTROL_FLAG_NONE, &headers)); EXPECT_TRUE(control_frame.get() != NULL); diff --git a/net/spdy/mock_spdy_framer_visitor.h b/net/spdy/mock_spdy_framer_visitor.h index 3b09d3e..c2caafd 100644 --- a/net/spdy/mock_spdy_framer_visitor.h +++ b/net/spdy/mock_spdy_framer_visitor.h @@ -27,10 +27,9 @@ class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface { MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id, const char* header_data, size_t len)); - MOCK_METHOD6(OnSynStream, void(SpdyStreamId stream_id, + MOCK_METHOD5(OnSynStream, void(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 slot, bool fin, bool unidirectional)); MOCK_METHOD2(OnSynReply, void(SpdyStreamId stream_id, bool fin)); diff --git a/net/spdy/spdy_framer.cc b/net/spdy/spdy_framer.cc index f4a34a2..1764ecd 100644 --- a/net/spdy/spdy_framer.cc +++ b/net/spdy/spdy_framer.cc @@ -183,7 +183,8 @@ size_t SpdyFramer::GetSynStreamMinimumSize() const { // name-value block. if (spdy_version_ < 4) { // Calculated as: - // control frame header + 2 * 4 (stream IDs) + 1 (priority) + 1 (slot) + // control frame header + 2 * 4 (stream IDs) + 1 (priority) + // + 1 (unused, was credential slot) return GetControlFrameHeaderSize() + 10; } else { // Calculated as: @@ -1162,14 +1163,8 @@ size_t SpdyFramer::ProcessControlFrameBeforeHeaderBlock(const char* data, priority = priority >> 5; } - uint8 slot = 0; - if (protocol_version() < 3) { - // SPDY 2 had an unused byte here. Seek past it. - reader.Seek(1); - } else { - successful_read = reader.ReadUInt8(&slot); - DCHECK(successful_read); - } + // Seek past unused byte; used to be credential slot in SPDY 3. + reader.Seek(1); DCHECK(reader.IsDoneReading()); if (debug_visitor_) { @@ -1182,7 +1177,6 @@ size_t SpdyFramer::ProcessControlFrameBeforeHeaderBlock(const char* data, current_frame_stream_id_, associated_to_stream_id, priority, - slot, (current_frame_flags_ & CONTROL_FLAG_FIN) != 0, (current_frame_flags_ & CONTROL_FLAG_UNIDIRECTIONAL) != 0); } @@ -1244,7 +1238,6 @@ size_t SpdyFramer::ProcessControlFrameBeforeHeaderBlock(const char* data, current_frame_stream_id_, 0, // associated_to_stream_id priority, - 0, // TODO(hkhalil): handle slot for SPDY 4+? current_frame_flags_ & CONTROL_FLAG_FIN, false); // unidirectional } else { @@ -1798,7 +1791,7 @@ SpdySerializedFrame* SpdyFramer::SerializeSynStream( builder.WriteUInt32(syn_stream.stream_id()); builder.WriteUInt32(syn_stream.associated_to_stream_id()); builder.WriteUInt8(priority << ((spdy_version_ < 3) ? 6 : 5)); - builder.WriteUInt8(syn_stream.slot()); + builder.WriteUInt8(0); // Unused byte where credential slot used to be. } else { builder.WriteFramePrefix(*this, HEADERS, diff --git a/net/spdy/spdy_framer.h b/net/spdy/spdy_framer.h index 2267874..c81781c 100644 --- a/net/spdy/spdy_framer.h +++ b/net/spdy/spdy_framer.h @@ -164,7 +164,6 @@ class NET_EXPORT_PRIVATE SpdyFramerVisitorInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) = 0; diff --git a/net/spdy/spdy_framer_test.cc b/net/spdy/spdy_framer_test.cc index a7e4f38..8d38b64 100644 --- a/net/spdy/spdy_framer_test.cc +++ b/net/spdy/spdy_framer_test.cc @@ -116,7 +116,6 @@ class SpdyFramerTestUtil { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 slot, bool fin, bool unidirectional) OVERRIDE { SpdyFramer framer(version_); @@ -124,7 +123,6 @@ class SpdyFramerTestUtil { SpdySynStreamIR syn_stream(stream_id); syn_stream.set_associated_to_stream_id(associated_stream_id); syn_stream.set_priority(priority); - syn_stream.set_slot(slot); syn_stream.set_fin(fin); syn_stream.set_unidirectional(unidirectional); scoped_ptr<SpdyFrame> frame(framer.SerializeSynStream(syn_stream)); @@ -309,7 +307,6 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface, virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional) OVERRIDE { syn_frame_count_++; @@ -616,68 +613,6 @@ TEST_P(SpdyFramerTest, UndersizedHeaderBlockInBuffer) { &new_headers)); } -TEST_P(SpdyFramerTest, OutOfOrderHeaders) { - SpdyFramer framer(spdy_version_); - framer.set_enable_compression(false); - - // Frame builder with plentiful buffer size. - SpdyFrameBuilder frame(1024); - if (spdy_version_ < 4) { - frame.WriteControlFrameHeader(framer, SYN_STREAM, CONTROL_FLAG_NONE); - frame.WriteUInt32(3); // stream_id - } else { - frame.WriteFramePrefix(framer, SYN_STREAM, CONTROL_FLAG_NONE, 3); - } - - frame.WriteUInt32(0); // Associated stream id - frame.WriteUInt16(0); // Priority. - - if (IsSpdy2()) { - frame.WriteUInt16(2); // Number of headers. - frame.WriteString("gamma"); - frame.WriteString("gamma"); - frame.WriteString("alpha"); - frame.WriteString("alpha"); - } else { - frame.WriteUInt32(2); // Number of headers. - frame.WriteStringPiece32("gamma"); - frame.WriteStringPiece32("gamma"); - frame.WriteStringPiece32("alpha"); - frame.WriteStringPiece32("alpha"); - } - // write the length - frame.RewriteLength(framer); - - SpdyHeaderBlock new_headers; - scoped_ptr<SpdyFrame> control_frame(frame.take()); - base::StringPiece serialized_headers = - GetSerializedHeaders(control_frame.get(), framer); - EXPECT_TRUE(framer.ParseHeaderBlockInBuffer(serialized_headers.data(), - serialized_headers.size(), - &new_headers)); -} - -// Test that if we receive a SYN_STREAM with stream ID zero, we signal an error -// (but don't crash). -TEST_P(SpdyFramerTest, SynStreamWithStreamIdZero) { - testing::StrictMock<test::MockSpdyFramerVisitor> visitor; - SpdyFramer framer(spdy_version_); - framer.set_visitor(&visitor); - - SpdySynStreamIR syn_stream(0); - syn_stream.set_priority(1); - syn_stream.SetHeader("alpha", "beta"); - scoped_ptr<SpdyFrame> frame(framer.SerializeSynStream(syn_stream)); - ASSERT_TRUE(frame.get() != NULL); - - // We shouldn't have to read the whole frame before we signal an error. - EXPECT_CALL(visitor, OnError(testing::Eq(&framer))); - EXPECT_GT(frame->size(), framer.ProcessInput(frame->data(), frame->size())); - EXPECT_TRUE(framer.HasError()); - EXPECT_EQ(SpdyFramer::SPDY_INVALID_CONTROL_FRAME, framer.error_code()) - << SpdyFramer::ErrorCodeToString(framer.error_code()); -} - // Test that if we receive a SYN_REPLY with stream ID zero, we signal an error // (but don't crash). TEST_P(SpdyFramerTest, SynReplyWithStreamIdZero) { @@ -1687,10 +1622,9 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) { framer.set_enable_compression(false); { - const char kDescription[] = "SYN_STREAM frame, lowest pri, slot 2, no FIN"; + const char kDescription[] = "SYN_STREAM frame, lowest pri, no FIN"; const unsigned char kPri = IsSpdy2() ? 0xC0 : 0xE0; - const unsigned char kCre = IsSpdy2() ? 0 : 2; const unsigned char kV2FrameData[] = { 0x80, spdy_version_ch_, 0x00, 0x01, 0x00, 0x00, 0x00, 0x20, @@ -1708,7 +1642,7 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) { 0x00, 0x00, 0x00, 0x2a, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, - kPri, kCre, 0x00, 0x00, + kPri, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 'b', 'a', 'r', 0x00, 0x00, 0x00, @@ -1733,7 +1667,6 @@ TEST_P(SpdyFramerTest, CreateSynStreamUncompressed) { }; SpdySynStreamIR syn_stream(1); syn_stream.set_priority(framer.GetLowestPriority()); - syn_stream.set_slot(kCre); syn_stream.SetHeader("bar", "foo"); syn_stream.SetHeader("foo", "bar"); scoped_ptr<SpdyFrame> frame(framer.SerializeSynStream(syn_stream)); @@ -3732,10 +3665,10 @@ TEST_P(SpdyFramerTest, SynStreamFrameFlags) { } else { EXPECT_CALL(debug_visitor, OnReceiveCompressedFrame(8, SYN_STREAM, _)); if (IsSpdy4()) { - EXPECT_CALL(visitor, OnSynStream(8, 0, 1, 0, flags & CONTROL_FLAG_FIN, + EXPECT_CALL(visitor, OnSynStream(8, 0, 1, flags & CONTROL_FLAG_FIN, false)); } else { - EXPECT_CALL(visitor, OnSynStream(8, 3, 1, 0, flags & CONTROL_FLAG_FIN, + EXPECT_CALL(visitor, OnSynStream(8, 3, 1, flags & CONTROL_FLAG_FIN, flags & CONTROL_FLAG_UNIDIRECTIONAL)); } EXPECT_CALL(visitor, OnControlFrameHeaderData(8, _, _)) @@ -4087,7 +4020,7 @@ TEST_P(SpdyFramerTest, EmptySynStream) { } EXPECT_CALL(debug_visitor, OnReceiveCompressedFrame(1, SYN_STREAM, _)); - EXPECT_CALL(visitor, OnSynStream(1, 0, 1, 0, false, false)); + EXPECT_CALL(visitor, OnSynStream(1, 0, 1, false, false)); EXPECT_CALL(visitor, OnControlFrameHeaderData(1, NULL, 0)); framer.ProcessInput(frame->data(), framer.GetSynStreamMinimumSize()); diff --git a/net/spdy/spdy_protocol.h b/net/spdy/spdy_protocol.h index 8e2102a..ccab261 100644 --- a/net/spdy/spdy_protocol.h +++ b/net/spdy/spdy_protocol.h @@ -363,8 +363,6 @@ enum SpdyGoAwayStatus { // number between 0 and 3. typedef uint8 SpdyPriority; -typedef uint8 SpdyCredentialSlot; - typedef std::map<std::string, std::string> SpdyNameValueBlock; typedef uint32 SpdyPingId; @@ -500,7 +498,6 @@ class NET_EXPORT_PRIVATE SpdySynStreamIR : SpdyFrameWithNameValueBlockIR(stream_id), associated_to_stream_id_(0), priority_(0), - slot_(0), unidirectional_(false) {} SpdyStreamId associated_to_stream_id() const { return associated_to_stream_id_; @@ -510,8 +507,6 @@ class NET_EXPORT_PRIVATE SpdySynStreamIR } SpdyPriority priority() const { return priority_; } void set_priority(SpdyPriority priority) { priority_ = priority; } - SpdyCredentialSlot slot() const { return slot_; } - void set_slot(SpdyCredentialSlot slot) { slot_ = slot; } bool unidirectional() const { return unidirectional_; } void set_unidirectional(bool unidirectional) { unidirectional_ = unidirectional; @@ -522,7 +517,6 @@ class NET_EXPORT_PRIVATE SpdySynStreamIR private: SpdyStreamId associated_to_stream_id_; SpdyPriority priority_; - SpdyCredentialSlot slot_; bool unidirectional_; DISALLOW_COPY_AND_ASSIGN(SpdySynStreamIR); diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc index ecc8d18..920f925 100644 --- a/net/spdy/spdy_session.cc +++ b/net/spdy/spdy_session.cc @@ -861,7 +861,6 @@ void SpdySession::EnqueueStreamWrite( scoped_ptr<SpdyFrame> SpdySession::CreateSynStream( SpdyStreamId stream_id, RequestPriority priority, - uint8 credential_slot, SpdyControlFlags flags, const SpdyHeaderBlock& headers) { ActiveStreamMap::const_iterator it = active_streams_.find(stream_id); @@ -874,9 +873,8 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream( SpdyPriority spdy_priority = ConvertRequestPriorityToSpdyPriority(priority, GetProtocolVersion()); scoped_ptr<SpdyFrame> syn_frame( - buffered_spdy_framer_->CreateSynStream( - stream_id, 0, spdy_priority, - credential_slot, flags, &headers)); + buffered_spdy_framer_->CreateSynStream(stream_id, 0, spdy_priority, flags, + &headers)); base::StatsCounter spdy_requests("spdy.requests"); spdy_requests.Increment(); @@ -2033,7 +2031,6 @@ int SpdySession::OnInitialResponseHeadersReceived( void SpdySession::OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) { diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h index 1873286..6e2dca4 100644 --- a/net/spdy/spdy_session.h +++ b/net/spdy/spdy_session.h @@ -290,7 +290,6 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface, scoped_ptr<SpdyFrame> CreateSynStream( SpdyStreamId stream_id, RequestPriority priority, - uint8 credential_slot, SpdyControlFlags flags, const SpdyHeaderBlock& headers); @@ -802,7 +801,6 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface, virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) OVERRIDE; diff --git a/net/spdy/spdy_session_unittest.cc b/net/spdy/spdy_session_unittest.cc index 32c94a0..9b79be4 100644 --- a/net/spdy/spdy_session_unittest.cc +++ b/net/spdy/spdy_session_unittest.cc @@ -921,7 +921,7 @@ TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { // OnSynStream() expects |in_io_loop_| to be true. session->in_io_loop_ = true; - session->OnSynStream(2, 1, 0, 0, true, false, headers); + session->OnSynStream(2, 1, 0, true, false, headers); session->in_io_loop_ = false; // Verify that there is one unclaimed push stream. @@ -936,7 +936,7 @@ TEST_P(SpdySessionTest, DeleteExpiredPushStreams) { spdy_util_.AddUrlToHeaderBlock("http://www.google.com/b.dat", &headers); session->in_io_loop_ = true; - session->OnSynStream(4, 1, 0, 0, true, false, headers); + session->OnSynStream(4, 1, 0, true, false, headers); session->in_io_loop_ = false; // Verify that the second pushed stream evicted the first pushed stream. diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc index ccf48ec..32e494c 100644 --- a/net/spdy/spdy_stream.cc +++ b/net/spdy/spdy_stream.cc @@ -91,7 +91,6 @@ SpdyStream::SpdyStream(SpdyStreamType type, stream_id_(0), url_(url), priority_(priority), - slot_(0), send_stalled_by_flow_control_(false), send_window_size_(initial_send_window_size), recv_window_size_(initial_recv_window_size), @@ -203,7 +202,7 @@ scoped_ptr<SpdyFrame> SpdyStream::ProduceSynStreamFrame() { (send_status_ == NO_MORE_DATA_TO_SEND) ? CONTROL_FLAG_FIN : CONTROL_FLAG_NONE; scoped_ptr<SpdyFrame> frame(session_->CreateSynStream( - stream_id_, priority_, slot_, flags, *request_headers_)); + stream_id_, priority_, flags, *request_headers_)); send_time_ = base::TimeTicks::Now(); return frame.Pass(); } diff --git a/net/spdy/spdy_stream.h b/net/spdy/spdy_stream.h index 6f5c62e..6010e81 100644 --- a/net/spdy/spdy_stream.h +++ b/net/spdy/spdy_stream.h @@ -479,7 +479,6 @@ class NET_EXPORT_PRIVATE SpdyStream { SpdyStreamId stream_id_; const GURL url_; const RequestPriority priority_; - size_t slot_; // Flow control variables. bool send_stalled_by_flow_control_; diff --git a/net/spdy/spdy_test_util_common.cc b/net/spdy/spdy_test_util_common.cc index 2054b49..cc1dd4f 100644 --- a/net/spdy/spdy_test_util_common.cc +++ b/net/spdy/spdy_test_util_common.cc @@ -216,7 +216,6 @@ class PriorityGetter : public BufferedSpdyFramerVisitorInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) OVERRIDE { @@ -750,10 +749,8 @@ SpdyFrame* SpdyTestUtil::ConstructSpdyFrame( break; case SYN_STREAM: { - size_t credential_slot = is_spdy2() ? 0 : header_info.credential_slot; frame = framer.CreateSynStream(header_info.id, header_info.assoc_id, header_info.priority, - credential_slot, header_info.control_flags, headers.get()); } diff --git a/net/tools/flip_server/spdy_interface.cc b/net/tools/flip_server/spdy_interface.cc index 41ad430..e462ca6 100644 --- a/net/tools/flip_server/spdy_interface.cc +++ b/net/tools/flip_server/spdy_interface.cc @@ -130,7 +130,6 @@ int SpdySM::SpdyHandleNewStream(SpdyStreamId stream_id, VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: OnSyn(" << stream_id << ")"; VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: # headers: " << headers.size(); - SpdyHeaderBlock supplement; SpdyHeaderBlock::const_iterator method = headers.end(); SpdyHeaderBlock::const_iterator host = headers.end(); SpdyHeaderBlock::const_iterator path = headers.end(); @@ -138,6 +137,8 @@ int SpdySM::SpdyHandleNewStream(SpdyStreamId stream_id, SpdyHeaderBlock::const_iterator version = headers.end(); SpdyHeaderBlock::const_iterator url = headers.end(); + std::string path_string, host_string, version_string; + if (spdy_version() == SPDY2) { url = headers.find("url"); method = headers.find("method"); @@ -153,22 +154,23 @@ int SpdySM::SpdyHandleNewStream(SpdyStreamId stream_id, // path contains a query string with a http:// in one of its values, // UrlUtilities::GetUrlPath will fail and always return a / breaking // the request. GetUrlPath assumes the absolute URL is being passed in. - std::string path_string = UrlUtilities::GetUrlPath(url->second); - std::string host_string = UrlUtilities::GetUrlHost(url->second); - path = supplement.insert(std::make_pair(":path", path_string)).first; - host = supplement.insert(std::make_pair(":host", host_string)).first; + path_string = UrlUtilities::GetUrlPath(url->second); + host_string = UrlUtilities::GetUrlHost(url->second); + version_string = version->second; } else { method = headers.find(":method"); host = headers.find(":host"); path = headers.find(":path"); scheme = headers.find(":scheme"); - version = supplement.insert(std::make_pair(":version", "HTTP/1.1")).first; if (method == headers.end() || host == headers.end() || path == headers.end() || scheme == headers.end()) { VLOG(2) << ACCEPTOR_CLIENT_IDENT << "SpdySM: A mandatory header is " << "missing. Not creating stream"; return 0; } + host_string = host->second; + path_string = path->second; + version_string = "HTTP/1.1"; } if (scheme->second.compare("https") == 0) { @@ -177,16 +179,16 @@ int SpdySM::SpdyHandleNewStream(SpdyStreamId stream_id, if (acceptor_->flip_handler_type_ == FLIP_HANDLER_SPDY_SERVER) { VLOG(1) << ACCEPTOR_CLIENT_IDENT << "Request: " << method->second - << " " << path->second; - std::string filename = EncodeURL(path->second, - host->second, + << " " << path_string; + std::string filename = EncodeURL(path_string, + host_string, method->second); NewStream(stream_id, priority, filename); } else { http_data += - method->second + " " + path->second + " " + version->second + "\r\n"; + method->second + " " + path_string + " " + version_string + "\r\n"; VLOG(1) << ACCEPTOR_CLIENT_IDENT << "Request: " << method->second << " " - << path->second << " " << version->second; + << path_string << " " << version_string; http_data += "Host: " + (*is_https_scheme ? acceptor_->https_server_ip_ : acceptor_->http_server_ip_) + "\r\n"; @@ -241,7 +243,6 @@ void SpdySM::OnStreamFrameData(SpdyStreamId stream_id, void SpdySM::OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) { @@ -470,7 +471,7 @@ size_t SpdySM::SendSynStreamImpl(uint32 stream_id, } SpdyFrame* fsrcf = buffered_spdy_framer_->CreateSynStream( - stream_id, 0, 0, 0, CONTROL_FLAG_NONE, &block); + stream_id, 0, 0, CONTROL_FLAG_NONE, &block); size_t df_size = fsrcf->size(); EnqueueDataFrame(new SpdyFrameDataFrame(fsrcf)); diff --git a/net/tools/flip_server/spdy_interface.h b/net/tools/flip_server/spdy_interface.h index 6e5ad0b..5528395 100644 --- a/net/tools/flip_server/spdy_interface.h +++ b/net/tools/flip_server/spdy_interface.h @@ -66,7 +66,6 @@ class SpdySM : public BufferedSpdyFramerVisitorInterface, public SMInterface { virtual void OnSynStream(SpdyStreamId stream_id, SpdyStreamId associated_stream_id, SpdyPriority priority, - uint8 credential_slot, bool fin, bool unidirectional, const SpdyHeaderBlock& headers) OVERRIDE; diff --git a/net/tools/flip_server/spdy_interface_test.cc b/net/tools/flip_server/spdy_interface_test.cc index 3b98852..389f06b 100644 --- a/net/tools/flip_server/spdy_interface_test.cc +++ b/net/tools/flip_server/spdy_interface_test.cc @@ -44,15 +44,13 @@ class SpdyFramerVisitor : public BufferedSpdyFramerVisitorInterface { virtual ~SpdyFramerVisitor() {} MOCK_METHOD1(OnError, void(SpdyFramer::SpdyError)); MOCK_METHOD2(OnStreamError, void(SpdyStreamId, const std::string&)); - MOCK_METHOD7(OnSynStream, + MOCK_METHOD6(OnSynStream, void(SpdyStreamId, SpdyStreamId, SpdyPriority, - uint8, bool, bool, const SpdyHeaderBlock&)); - MOCK_METHOD3(OnSynStream, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); MOCK_METHOD3(OnSynReply, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); MOCK_METHOD3(OnHeaders, void(SpdyStreamId, bool, const SpdyHeaderBlock&)); MOCK_METHOD3(OnDataFrameHeader, void(SpdyStreamId, size_t, bool)); @@ -243,7 +241,7 @@ TEST_P(SpdySMProxyTest, OnSynStream_SPDY2) { InvokeWithoutArgs(&saver, &StringSaver::Save), Return(0))); } - visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); + visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); ASSERT_EQ(expected, saver.string); } @@ -278,7 +276,7 @@ TEST_P(SpdySMProxyTest, OnSynStream) { InvokeWithoutArgs(&saver, &StringSaver::Save), Return(0))); } - visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); + visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); ASSERT_EQ(expected, saver.string); } @@ -310,7 +308,7 @@ TEST_P(SpdySMProxyTest, OnStreamFrameData_SPDY2) { ProcessWriteInput(frame->data(), frame->size())).Times(1); } - visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); + visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); checkpoint.Call(0); visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true); } @@ -345,7 +343,7 @@ TEST_P(SpdySMProxyTest, OnStreamFrameData) { ProcessWriteInput(frame->data(), frame->size())).Times(1); } - visitor->OnSynStream(stream_id, associated_id, 0, 0, false, false, block); + visitor->OnSynStream(stream_id, associated_id, 0, false, false, block); checkpoint.Call(0); visitor->OnStreamFrameData(stream_id, frame->data(), frame->size(), true); } @@ -455,8 +453,13 @@ TEST_P(SpdySMProxyTest, SendErrorNotFound_SPDY2) { { InSequence s; - EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) - .WillOnce(SaveArg<2>(&actual_header_block)); + if (GetParam() < SPDY4) { + EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } else { + EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } EXPECT_CALL(checkpoint, Call(0)); EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true)); @@ -499,9 +502,15 @@ TEST_P(SpdySMProxyTest, SendErrorNotFound) { { InSequence s; - EXPECT_CALL(*spdy_framer_visitor_, - OnSynReply(stream_id, false, _)) - .WillOnce(SaveArg<2>(&actual_header_block)); + if (GetParam() < SPDY4) { + EXPECT_CALL(*spdy_framer_visitor_, + OnSynReply(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } else { + EXPECT_CALL(*spdy_framer_visitor_, + OnHeaders(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } EXPECT_CALL(checkpoint, Call(0)); EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true)); @@ -547,8 +556,8 @@ TEST_P(SpdySMProxyTest, SendSynStream_SPDY2) { { InSequence s; EXPECT_CALL(*spdy_framer_visitor_, - OnSynStream(stream_id, 0, _, _, false, false, _)) - .WillOnce(SaveArg<6>(&actual_header_block)); + OnSynStream(stream_id, 0, _, false, false, _)) + .WillOnce(SaveArg<5>(&actual_header_block)); } spdy_framer_->ProcessInput(df->data, df->size); @@ -581,8 +590,8 @@ TEST_P(SpdySMProxyTest, SendSynStream) { { InSequence s; EXPECT_CALL(*spdy_framer_visitor_, - OnSynStream(stream_id, 0, _, _, false, false, _)) - .WillOnce(SaveArg<6>(&actual_header_block)); + OnSynStream(stream_id, 0, _, false, false, _)) + .WillOnce(SaveArg<5>(&actual_header_block)); } spdy_framer_->ProcessInput(df->data, df->size); @@ -614,8 +623,13 @@ TEST_P(SpdySMProxyTest, SendSynReply_SPDY2) { { InSequence s; - EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) - .WillOnce(SaveArg<2>(&actual_header_block)); + if (GetParam() < SPDY4) { + EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } else { + EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } } spdy_framer_->ProcessInput(df->data, df->size); @@ -645,8 +659,13 @@ TEST_P(SpdySMProxyTest, SendSynReply) { { InSequence s; - EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) - .WillOnce(SaveArg<2>(&actual_header_block)); + if (GetParam() < SPDY4) { + EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } else { + EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } } spdy_framer_->ProcessInput(df->data, df->size); @@ -787,7 +806,7 @@ TEST_P(SpdySMServerTest, OnSynStream) { BalsaHeaders headers; memory_cache_->InsertFile(&headers, "GET_/path", ""); } - visitor->OnSynStream(stream_id, 0, 0, 0, true, true, spdy_headers); + visitor->OnSynStream(stream_id, 0, 0, true, true, spdy_headers); ASSERT_TRUE(HasStream(stream_id)); } @@ -817,8 +836,13 @@ TEST_P(SpdySMServerTest, NewStreamError) { { InSequence s; - EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) - .WillOnce(SaveArg<2>(&actual_header_block)); + if (GetParam() < SPDY4) { + EXPECT_CALL(*spdy_framer_visitor_, OnSynReply(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } else { + EXPECT_CALL(*spdy_framer_visitor_, OnHeaders(stream_id, false, _)) + .WillOnce(SaveArg<2>(&actual_header_block)); + } EXPECT_CALL(checkpoint, Call(0)); EXPECT_CALL(*spdy_framer_visitor_, OnDataFrameHeader(stream_id, _, true)); |