Commit 5d0c7230 authored by bnc's avatar bnc Committed by Commit bot

Add new, unused methods to SpdyFramerVisitorInterface.

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}
parent b265c2eb
...@@ -73,6 +73,16 @@ class QuicHeadersStream::SpdyFramerVisitor ...@@ -73,6 +73,16 @@ class QuicHeadersStream::SpdyFramerVisitor
CloseConnection("SPDY frame padding received."); 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 { void OnError(SpdyFramer* framer) override {
CloseConnection(base::StringPrintf( CloseConnection(base::StringPrintf(
"SPDY framing error: %s", "SPDY framing error: %s",
......
...@@ -46,6 +46,9 @@ class MockVisitor : public SpdyFramerVisitorInterface { ...@@ -46,6 +46,9 @@ class MockVisitor : public SpdyFramerVisitorInterface {
size_t len, size_t len,
bool fin)); bool fin));
MOCK_METHOD2(OnStreamPadding, void(SpdyStreamId stream_id, size_t len)); 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, MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id,
const char* header_data, const char* header_data,
size_t len)); size_t len));
......
...@@ -202,6 +202,16 @@ void BufferedSpdyFramer::OnStreamPadding(SpdyStreamId stream_id, size_t len) { ...@@ -202,6 +202,16 @@ void BufferedSpdyFramer::OnStreamPadding(SpdyStreamId stream_id, size_t len) {
visitor_->OnStreamPadding(stream_id, 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) { void BufferedSpdyFramer::OnSettings(bool clear_persisted) {
visitor_->OnSettings(clear_persisted); visitor_->OnSettings(clear_persisted);
} }
......
...@@ -77,6 +77,20 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface { ...@@ -77,6 +77,20 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface {
// |len| The number of padding octets. // |len| The number of padding octets.
virtual void OnStreamPadding(SpdyStreamId stream_id, size_t len) = 0; 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. // Called when a SETTINGS frame is received.
// |clear_persisted| True if the respective flag is set on the SETTINGS frame. // |clear_persisted| True if the respective flag is set on the SETTINGS frame.
virtual void OnSettings(bool clear_persisted) = 0; virtual void OnSettings(bool clear_persisted) = 0;
...@@ -166,6 +180,9 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer ...@@ -166,6 +180,9 @@ class NET_EXPORT_PRIVATE BufferedSpdyFramer
size_t len, size_t len,
bool fin) override; bool fin) override;
void OnStreamPadding(SpdyStreamId stream_id, size_t len) 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 OnSettings(bool clear_persisted) override;
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override; void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override;
void OnSettingsAck() override; void OnSettingsAck() override;
......
...@@ -88,6 +88,16 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface { ...@@ -88,6 +88,16 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
LOG(FATAL) << "Unexpected OnStreamPadding call."; 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 OnSettings(bool clear_persisted) override {}
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override { void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {
......
...@@ -26,6 +26,9 @@ class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface { ...@@ -26,6 +26,9 @@ class MockSpdyFramerVisitor : public SpdyFramerVisitorInterface {
size_t len, size_t len,
bool fin)); bool fin));
MOCK_METHOD2(OnStreamPadding, void(SpdyStreamId stream_id, size_t len)); 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, MOCK_METHOD3(OnControlFrameHeaderData, bool(SpdyStreamId stream_id,
const char* header_data, const char* header_data,
size_t len)); size_t len));
......
...@@ -125,6 +125,20 @@ class NET_EXPORT_PRIVATE SpdyFramerVisitorInterface { ...@@ -125,6 +125,20 @@ class NET_EXPORT_PRIVATE SpdyFramerVisitorInterface {
// |len| The number of padding octets. // |len| The number of padding octets.
virtual void OnStreamPadding(SpdyStreamId stream_id, size_t len) = 0; 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 // Called when a chunk of header data is available. This is called
// after OnSynStream, OnSynReply, OnHeaders(), or OnPushPromise. // after OnSynStream, OnSynReply, OnHeaders(), or OnPushPromise.
// |stream_id| The stream receiving the header data. // |stream_id| The stream receiving the header data.
......
...@@ -99,6 +99,16 @@ class SpdyFramerTestUtil { ...@@ -99,6 +99,16 @@ class SpdyFramerTestUtil {
LOG(FATAL); 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, bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data, const char* header_data,
size_t len) override { size_t len) override {
...@@ -319,6 +329,16 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface, ...@@ -319,6 +329,16 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface,
LOG(INFO) << "OnStreamPadding(" << stream_id << ", " << len << ")\n"; 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, bool OnControlFrameHeaderData(SpdyStreamId stream_id,
const char* header_data, const char* header_data,
size_t len) override { size_t len) override {
......
...@@ -2118,6 +2118,16 @@ void SpdySession::OnStreamPadding(SpdyStreamId stream_id, size_t len) { ...@@ -2118,6 +2118,16 @@ void SpdySession::OnStreamPadding(SpdyStreamId stream_id, size_t len) {
it->second.stream->OnPaddingConsumed(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) { void SpdySession::OnSettings(bool clear_persisted) {
CHECK(in_io_loop_); CHECK(in_io_loop_);
......
...@@ -831,6 +831,9 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface, ...@@ -831,6 +831,9 @@ class NET_EXPORT SpdySession : public BufferedSpdyFramerVisitorInterface,
size_t len, size_t len,
bool fin) override; bool fin) override;
void OnStreamPadding(SpdyStreamId stream_id, size_t len) 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 OnSettings(bool clear_persisted) override;
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override; void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override;
void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override;
......
...@@ -248,6 +248,11 @@ class PriorityGetter : public BufferedSpdyFramerVisitorInterface { ...@@ -248,6 +248,11 @@ class PriorityGetter : public BufferedSpdyFramerVisitorInterface {
size_t len, size_t len,
bool fin) override {} bool fin) override {}
void OnStreamPadding(SpdyStreamId stream_id, size_t len) 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 OnSettings(bool clear_persisted) override {}
void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {} void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {}
void OnPing(SpdyPingId unique_id, bool is_ack) override {} void OnPing(SpdyPingId unique_id, bool is_ack) override {}
......
...@@ -109,6 +109,20 @@ class SpdySM : public BufferedSpdyFramerVisitorInterface, public SMInterface { ...@@ -109,6 +109,20 @@ class SpdySM : public BufferedSpdyFramerVisitorInterface, public SMInterface {
// |len| The number of padding octets. // |len| The number of padding octets.
void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; 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. // Called when a SETTINGS frame is received.
// |clear_persisted| True if the respective flag is set on the SETTINGS frame. // |clear_persisted| True if the respective flag is set on the SETTINGS frame.
void OnSettings(bool clear_persisted) override {} void OnSettings(bool clear_persisted) override {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment