summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorjgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 06:11:31 +0000
committerjgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-30 06:11:31 +0000
commitdcaebbf0cb3dd5a2cbee521f4fa9bda719796ae3 (patch)
tree448b8eeba43456fba737bb8731ea26acc7b8a8d7 /net
parent0cc93b40bd1634eeb8365298f0776156cc15d309 (diff)
downloadchromium_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.cc6
-rw-r--r--net/quic/quic_headers_stream_test.cc5
-rw-r--r--net/quic/quic_spdy_decompressor.cc1
-rw-r--r--net/spdy/buffered_spdy_framer.cc5
-rw-r--r--net/spdy/buffered_spdy_framer.h3
-rw-r--r--net/spdy/buffered_spdy_framer_unittest.cc2
-rw-r--r--net/spdy/mock_spdy_framer_visitor.h3
-rw-r--r--net/spdy/spdy_framer.cc17
-rw-r--r--net/spdy/spdy_framer.h1
-rw-r--r--net/spdy/spdy_framer_test.cc77
-rw-r--r--net/spdy/spdy_protocol.h6
-rw-r--r--net/spdy/spdy_session.cc7
-rw-r--r--net/spdy/spdy_session.h2
-rw-r--r--net/spdy/spdy_session_unittest.cc4
-rw-r--r--net/spdy/spdy_stream.cc3
-rw-r--r--net/spdy/spdy_stream.h1
-rw-r--r--net/spdy/spdy_test_util_common.cc3
-rw-r--r--net/tools/flip_server/spdy_interface.cc27
-rw-r--r--net/tools/flip_server/spdy_interface.h1
-rw-r--r--net/tools/flip_server/spdy_interface_test.cc70
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));