Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1586)

Unified Diff: net/quic/quic_headers_stream.cc

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_headers_stream.h ('k') | net/quic/quic_headers_stream_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_headers_stream.cc
diff --git a/net/quic/quic_headers_stream.cc b/net/quic/quic_headers_stream.cc
deleted file mode 100644
index b40142db16605874f568b555e1d94f0dfe3643b9..0000000000000000000000000000000000000000
--- a/net/quic/quic_headers_stream.cc
+++ /dev/null
@@ -1,333 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/quic/quic_headers_stream.h"
-
-#include "base/strings/stringprintf.h"
-#include "net/quic/quic_session.h"
-
-using base::StringPiece;
-using std::string;
-
-namespace net {
-
-namespace {
-
-const QuicStreamId kInvalidStreamId = 0;
-
-} // namespace
-
-// A SpdyFramer visitor which passed SYN_STREAM and SYN_REPLY frames to
-// the QuicDataStream, and closes the connection if any unexpected frames
-// are received.
-class QuicHeadersStream::SpdyFramerVisitor
- : public SpdyFramerVisitorInterface,
- public SpdyFramerDebugVisitorInterface {
- public:
- SpdyFramerVisitor(SpdyMajorVersion spdy_version, QuicHeadersStream* stream)
- : spdy_version_(spdy_version), stream_(stream) {}
-
- // SpdyFramerVisitorInterface implementation
- void OnSynStream(SpdyStreamId stream_id,
- SpdyStreamId associated_stream_id,
- SpdyPriority priority,
- bool fin,
- bool unidirectional) override {
- if (spdy_version_ != SPDY3) {
- CloseConnection("SPDY SYN_STREAM frame received.");
- return;
- }
-
- if (!stream_->IsConnected()) {
- return;
- }
-
- if (associated_stream_id != 0) {
- CloseConnection("associated_stream_id != 0");
- return;
- }
-
- if (unidirectional != 0) {
- CloseConnection("unidirectional != 0");
- return;
- }
-
- stream_->OnSynStream(stream_id, priority, fin);
- }
-
- void OnSynReply(SpdyStreamId stream_id, bool fin) override {
- if (spdy_version_ != SPDY3) {
- CloseConnection("SPDY SYN_REPLY frame received.");
- return;
- }
-
- if (!stream_->IsConnected()) {
- return;
- }
-
- stream_->OnSynReply(stream_id, fin);
- }
-
- bool OnControlFrameHeaderData(SpdyStreamId stream_id,
- const char* header_data,
- size_t len) override {
- if (!stream_->IsConnected()) {
- return false;
- }
- stream_->OnControlFrameHeaderData(stream_id, header_data, len);
- return true;
- }
-
- void OnStreamFrameData(SpdyStreamId stream_id,
- const char* data,
- size_t len,
- bool fin) override {
- if (fin && len == 0) {
- // The framer invokes OnStreamFrameData with zero-length data and
- // fin = true after processing a SYN_STREAM or SYN_REPLY frame
- // that had the fin bit set.
- return;
- }
- CloseConnection("SPDY DATA frame received.");
- }
-
- void OnError(SpdyFramer* framer) override {
- CloseConnection(base::StringPrintf(
- "SPDY framing error: %s",
- SpdyFramer::ErrorCodeToString(framer->error_code())));
- }
-
- void OnDataFrameHeader(SpdyStreamId stream_id,
- size_t length,
- bool fin) override {
- CloseConnection("SPDY DATA frame received.");
- }
-
- void OnRstStream(SpdyStreamId stream_id,
- SpdyRstStreamStatus status) override {
- CloseConnection("SPDY RST_STREAM frame received.");
- }
-
- void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) override {
- CloseConnection("SPDY SETTINGS frame received.");
- }
-
- void OnSettingsAck() override {
- CloseConnection("SPDY SETTINGS frame received.");
- }
-
- void OnSettingsEnd() override {
- CloseConnection("SPDY SETTINGS frame received.");
- }
-
- void OnPing(SpdyPingId unique_id, bool is_ack) override {
- CloseConnection("SPDY PING frame received.");
- }
-
- void OnGoAway(SpdyStreamId last_accepted_stream_id,
- SpdyGoAwayStatus status) override {
- CloseConnection("SPDY GOAWAY frame received.");
- }
-
- void OnHeaders(SpdyStreamId stream_id,
- bool has_priority,
- SpdyPriority priority,
- bool fin,
- bool end) override {
- if (spdy_version_ == SPDY3) {
- CloseConnection("SPDY HEADERS frame received.");
- return;
- }
- if (!stream_->IsConnected()) {
- return;
- }
- if (has_priority) {
- stream_->OnSynStream(stream_id, priority, fin);
- } else {
- stream_->OnSynReply(stream_id, fin);
- }
- }
-
- void OnWindowUpdate(SpdyStreamId stream_id,
- uint32 delta_window_size) override {
- CloseConnection("SPDY WINDOW_UPDATE frame received.");
- }
-
- void OnPushPromise(SpdyStreamId stream_id,
- SpdyStreamId promised_stream_id,
- bool end) override {
- LOG(DFATAL) << "PUSH_PROMISE frame received from a SPDY/3 framer";
- CloseConnection("SPDY PUSH_PROMISE frame received.");
- }
-
- void OnContinuation(SpdyStreamId stream_id, bool end) override {
- if (spdy_version_ == SPDY3) {
- LOG(DFATAL) << "CONTINUATION frame received from a SPDY/3 framer";
- CloseConnection("SPDY CONTINUATION frame received.");
- }
- }
-
- bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
- CloseConnection("Unknown frame type received.");
- return false;
- }
-
- // SpdyFramerDebugVisitorInterface implementation
- void OnSendCompressedFrame(SpdyStreamId stream_id,
- SpdyFrameType type,
- size_t payload_len,
- size_t frame_len) override {}
-
- void OnReceiveCompressedFrame(SpdyStreamId stream_id,
- SpdyFrameType type,
- size_t frame_len) override {
- if (stream_->IsConnected()) {
- stream_->OnCompressedFrameSize(frame_len);
- }
- }
-
- private:
- void CloseConnection(const string& details) {
- if (stream_->IsConnected()) {
- stream_->CloseConnectionWithDetails(
- QUIC_INVALID_HEADERS_STREAM_DATA, details);
- }
- }
-
- private:
- SpdyMajorVersion spdy_version_;
- QuicHeadersStream* stream_;
-
- DISALLOW_COPY_AND_ASSIGN(SpdyFramerVisitor);
-};
-
-QuicHeadersStream::QuicHeadersStream(QuicSession* session)
- : ReliableQuicStream(kHeadersStreamId, session),
- stream_id_(kInvalidStreamId),
- fin_(false),
- frame_len_(0) {
- InitializeFramer(session->connection()->version());
- // The headers stream is exempt from connection level flow control.
- DisableConnectionFlowControlForThisStream();
-}
-
-QuicHeadersStream::~QuicHeadersStream() {}
-
-size_t QuicHeadersStream::WriteHeaders(
- QuicStreamId stream_id,
- const SpdyHeaderBlock& headers,
- bool fin,
- QuicPriority priority,
- QuicAckNotifier::DelegateInterface* ack_notifier_delegate) {
- scoped_ptr<SpdySerializedFrame> frame;
- if (spdy_framer_->protocol_version() == SPDY3) {
- if (session()->is_server()) {
- SpdySynReplyIR syn_reply(stream_id);
- syn_reply.set_name_value_block(headers);
- syn_reply.set_fin(fin);
- frame.reset(spdy_framer_->SerializeFrame(syn_reply));
- } else {
- SpdySynStreamIR syn_stream(stream_id);
- syn_stream.set_name_value_block(headers);
- syn_stream.set_fin(fin);
- syn_stream.set_priority(priority);
- frame.reset(spdy_framer_->SerializeFrame(syn_stream));
- }
- } else {
- SpdyHeadersIR headers_frame(stream_id);
- headers_frame.set_name_value_block(headers);
- headers_frame.set_fin(fin);
- if (!session()->is_server()) {
- headers_frame.set_has_priority(true);
- headers_frame.set_priority(priority);
- }
- frame.reset(spdy_framer_->SerializeFrame(headers_frame));
- }
- WriteOrBufferData(StringPiece(frame->data(), frame->size()), false,
- ack_notifier_delegate);
- return frame->size();
-}
-
-uint32 QuicHeadersStream::ProcessRawData(const char* data,
- uint32 data_len) {
- return spdy_framer_->ProcessInput(data, data_len);
-}
-
-QuicPriority QuicHeadersStream::EffectivePriority() const { return 0; }
-
-void QuicHeadersStream::OnSuccessfulVersionNegotiation(QuicVersion version) {
- InitializeFramer(version);
-}
-
-void QuicHeadersStream::InitializeFramer(QuicVersion version) {
- SpdyMajorVersion spdy_version = version > QUIC_VERSION_23 ? SPDY4 : SPDY3;
- if (spdy_framer_.get() != nullptr &&
- spdy_framer_->protocol_version() == spdy_version) {
- return;
- }
- spdy_framer_.reset(new SpdyFramer(spdy_version));
- spdy_framer_visitor_.reset(new SpdyFramerVisitor(spdy_version, this));
- spdy_framer_->set_visitor(spdy_framer_visitor_.get());
- spdy_framer_->set_debug_visitor(spdy_framer_visitor_.get());
-}
-
-void QuicHeadersStream::OnSynStream(SpdyStreamId stream_id,
- SpdyPriority priority,
- bool fin) {
- if (!session()->is_server()) {
- CloseConnectionWithDetails(
- QUIC_INVALID_HEADERS_STREAM_DATA,
- "SPDY SYN_STREAM frame received at the client");
- return;
- }
- DCHECK_EQ(kInvalidStreamId, stream_id_);
- stream_id_ = stream_id;
- fin_ = fin;
- session()->OnStreamHeadersPriority(stream_id, priority);
-}
-
-void QuicHeadersStream::OnSynReply(SpdyStreamId stream_id, bool fin) {
- if (session()->is_server()) {
- CloseConnectionWithDetails(
- QUIC_INVALID_HEADERS_STREAM_DATA,
- "SPDY SYN_REPLY frame received at the server");
- return;
- }
- DCHECK_EQ(kInvalidStreamId, stream_id_);
- stream_id_ = stream_id;
- fin_ = fin;
-}
-
-void QuicHeadersStream::OnControlFrameHeaderData(SpdyStreamId stream_id,
- const char* header_data,
- size_t len) {
- DCHECK_EQ(stream_id_, stream_id);
- if (len == 0) {
- DCHECK_NE(0u, stream_id_);
- DCHECK_NE(0u, frame_len_);
- session()->OnStreamHeadersComplete(stream_id_, fin_, frame_len_);
- // Reset state for the next frame.
- stream_id_ = kInvalidStreamId;
- fin_ = false;
- frame_len_ = 0;
- } else {
- session()->OnStreamHeaders(stream_id_, StringPiece(header_data, len));
- }
-}
-
-void QuicHeadersStream::OnCompressedFrameSize(size_t frame_len) {
- if (spdy_framer_->protocol_version() == SPDY3) {
- // SPDY/3 headers always fit into a single frame, so the previous headers
- // should be completely processed when a new frame is received.
- DCHECK_EQ(kInvalidStreamId, stream_id_);
- DCHECK_EQ(0u, frame_len_);
- }
- frame_len_ += frame_len;
-}
-
-bool QuicHeadersStream::IsConnected() {
- return session()->connection()->connected();
-}
-
-} // namespace net
« no previous file with comments | « net/quic/quic_headers_stream.h ('k') | net/quic/quic_headers_stream_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698