Skip to content

Commit

Permalink
Add new, unused methods to SpdyFramerVisitorInterface.
Browse files Browse the repository at this point in the history
The new methods will allow SpdyFramer to pass headers to visitors through a
SpdyHeadersHandlerInterface.

There are so many descendants of SpdyFramerVisitorInterface that I thought it
was best to start with the interface change, and add an unused stub
implementation everywhere.

This CL lands server change 106411694 by birenroy.

BUG=488484

Review URL: https://codereview.chromium.org/1413683005

Cr-Commit-Position: refs/heads/master@{#357084}
  • Loading branch information
bnc authored and Commit bot committed Oct 30, 2015
1 parent b265c2e commit 5d0c723
Show file tree
Hide file tree
Showing 12 changed files with 119 additions and 0 deletions.
10 changes: 10 additions & 0 deletions net/quic/quic_headers_stream.cc
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,16 @@ class QuicHeadersStream::SpdyFramerVisitor
CloseConnection("SPDY frame padding received.");
}

SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override {
LOG(FATAL);
return nullptr;
}

void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override {
LOG(FATAL);
}

void OnError(SpdyFramer* framer) override {
CloseConnection(base::StringPrintf(
"SPDY framing error: %s",
Expand Down
3 changes: 3 additions & 0 deletions net/quic/quic_headers_stream_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ class MockVisitor : public SpdyFramerVisitorInterface {
size_t len,
bool fin));
MOCK_METHOD2(OnStreamPadding, void(SpdyStreamId stream_id, size_t len));
MOCK_METHOD1(OnHeaderFrameStart,
SpdyHeadersHandlerInterface*(SpdyStreamId stream_id));
MOCK_METHOD2(OnHeaderFrameEnd, void(SpdyStreamId stream_id, bool end));
MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id,
const char* header_data,
size_t len));
Expand Down
10 changes: 10 additions & 0 deletions net/spdy/buffered_spdy_framer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,16 @@ void BufferedSpdyFramer::OnStreamPadding(SpdyStreamId stream_id, size_t len) {
visitor_->OnStreamPadding(stream_id, len);
}

SpdyHeadersHandlerInterface* BufferedSpdyFramer::OnHeaderFrameStart(
SpdyStreamId stream_id) {
return visitor_->OnHeaderFrameStart(stream_id);
}

void BufferedSpdyFramer::OnHeaderFrameEnd(SpdyStreamId stream_id,
bool end_headers) {
visitor_->OnHeaderFrameEnd(stream_id, end_headers);
}

void BufferedSpdyFramer::OnSettings(bool clear_persisted) {
visitor_->OnSettings(clear_persisted);
}
Expand Down
17 changes: 17 additions & 0 deletions net/spdy/buffered_spdy_framer.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,20 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface {
// |len| The number of padding octets.
virtual void OnStreamPadding(SpdyStreamId stream_id, size_t len) = 0;

// Called just before processing the payload of a frame containing header
// data. Should return an implementation of SpdyHeadersHandlerInterface that
// will receive headers for stream |stream_id|. The caller will not take
// ownership of the headers handler. The same instance should be returned
// for all header frames comprising a logical header block (i.e. until
// OnHeaderFrameEnd() is called with end_headers == true).
virtual SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) = 0;

// Called after processing the payload of a frame containing header data.
// |end_headers| is true if there will not be any subsequent CONTINUATION
// frames.
virtual void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) = 0;

// Called when a SETTINGS frame is received.
// |clear_persisted| True if the respective flag is set on the SETTINGS frame.
virtual void OnSettings(bool clear_persisted) = 0;
Expand Down Expand Up @@ -166,6 +180,9 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer
size_t len,
bool fin) override;
void OnStreamPadding(SpdyStreamId stream_id, size_t len) override;
SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override;
void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override;
void OnSettings(bool clear_persisted) override;
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override;
void OnSettingsAck() override;
Expand Down
10 changes: 10 additions & 0 deletions net/spdy/buffered_spdy_framer_unittest.cc
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,16 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
LOG(FATAL) << "Unexpected OnStreamPadding call.";
}

SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override {
LOG(FATAL) << "Unexpected OnHeaderFrameStart call.";
return nullptr;
}

void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override {
LOG(FATAL) << "Unexpected OnHeaderFrameEnd call.";
}

void OnSettings(bool clear_persisted) override {}

void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {
Expand Down
3 changes: 3 additions & 0 deletions net/spdy/mock_spdy_framer_visitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface {
size_t len,
bool fin));
MOCK_METHOD2(OnStreamPadding, void(SpdyStreamId stream_id, size_t len));
MOCK_METHOD1(OnHeaderFrameStart,
SpdyHeadersHandlerInterface*(SpdyStreamId stream_id));
MOCK_METHOD2(OnHeaderFrameEnd, void(SpdyStreamId stream_id, bool end));
MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id,
const char* header_data,
size_t len));
Expand Down
14 changes: 14 additions & 0 deletions net/spdy/spdy_framer.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,20 @@ class NET_EXPORT_PRIVATE SpdyFramerVisitorInterface {
// |len| The number of padding octets.
virtual void OnStreamPadding(SpdyStreamId stream_id, size_t len) = 0;

// Called just before processing the payload of a frame containing header
// data. Should return an implementation of SpdyHeadersHandlerInterface that
// will receive headers for stream |stream_id|. The caller will not take
// ownership of the headers handler. The same instance should be returned
// for all header frames comprising a logical header block (i.e. until
// OnHeaderFrameEnd() is called with end_headers == true).
virtual SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) = 0;

// Called after processing the payload of a frame containing header data.
// |end_headers| is true if there will not be any subsequent CONTINUATION
// frames.
virtual void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) = 0;

// Called when a chunk of header data is available. This is called
// after OnSynStream, OnSynReply, OnHeaders(), or OnPushPromise.
// |stream_id| The stream receiving the header data.
Expand Down
20 changes: 20 additions & 0 deletions net/spdy/spdy_framer_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,16 @@ class SpdyFramerTestUtil {
LOG(FATAL);
}

SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override {
LOG(FATAL);
return nullptr;
}

void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override {
LOG(FATAL);
}

bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
size_t len) override {
Expand Down Expand Up @@ -319,6 +329,16 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
LOG(INFO) << "OnStreamPadding(" << stream_id << ", " << len << ")\n";
}

SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override {
LOG(FATAL);
return nullptr;
}

void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override {
LOG(FATAL);
}

bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data,
size_t len) override {
Expand Down
10 changes: 10 additions & 0 deletions net/spdy/spdy_session.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2118,6 +2118,16 @@ void SpdySession::OnStreamPadding(SpdyStreamId stream_id, size_t len) {
it->second.stream->OnPaddingConsumed(len);
}

SpdyHeadersHandlerInterface* SpdySession::OnHeaderFrameStart(
SpdyStreamId stream_id) {
LOG(FATAL);
return nullptr;
}

void SpdySession::OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) {
LOG(FATAL);
}

void SpdySession::OnSettings(bool clear_persisted) {
CHECK(in_io_loop_);

Expand Down
3 changes: 3 additions & 0 deletions net/spdy/spdy_session.h
Original file line number Diff line number Diff line change
Expand Up @@ -831,6 +831,9 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
size_t len,
bool fin) override;
void OnStreamPadding(SpdyStreamId stream_id, size_t len) override;
SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override;
void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override;
void OnSettings(bool clear_persisted) override;
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override;
void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override;
Expand Down
5 changes: 5 additions & 0 deletions net/spdy/spdy_test_util_common.cc
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,11 @@ class PriorityGetter : public BufferedSpdyFramerVisitorInterface {
size_t len,
bool fin) override {}
void OnStreamPadding(SpdyStreamId stream_id, size_t len) override {}
SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override {
return nullptr;
}
void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override {}
void OnSettings(bool clear_persisted) override {}
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {}
void OnPing(SpdyPingId unique_id, bool is_ack) override {}
Expand Down
14 changes: 14 additions & 0 deletions net/tools/flip_server/spdy_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,20 @@ class SpdySM : public BufferedSpdyFramerVisitorInterface, public SMInterface {
// |len| The number of padding octets.
void OnStreamPadding(SpdyStreamId stream_id, size_t len) override;

// Called just before processing the payload of a frame containing header
// data. Should return an implementation of SpdyHeadersHandlerInterface that
// will receive headers for stream |stream_id|. The caller will not take
// ownership of the headers handler. The same instance should be returned
// for all header frames comprising a logical header block (i.e. until
// OnHeaderFrameEnd() is called with end_headers == true).
SpdyHeadersHandlerInterface* OnHeaderFrameStart(
SpdyStreamId stream_id) override;

// Called after processing the payload of a frame containing header data.
// |end_headers| is true if there will not be any subsequent CONTINUATION
// frames.
void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override;

// Called when a SETTINGS frame is received.
// |clear_persisted| True if the respective flag is set on the SETTINGS frame.
void OnSettings(bool clear_persisted) override {}
Expand Down

0 comments on commit 5d0c723

Please sign in to comment.