| Index: net/quic/quic_spdy_session.cc
|
| diff --git a/net/quic/quic_spdy_session.cc b/net/quic/quic_spdy_session.cc
|
| deleted file mode 100644
|
| index fe1923ac610620adba449968759a66ae21c793b1..0000000000000000000000000000000000000000
|
| --- a/net/quic/quic_spdy_session.cc
|
| +++ /dev/null
|
| @@ -1,184 +0,0 @@
|
| -// Copyright (c) 2015 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_spdy_session.h"
|
| -
|
| -#include <utility>
|
| -
|
| -#include "net/quic/quic_bug_tracker.h"
|
| -#include "net/quic/quic_headers_stream.h"
|
| -
|
| -using base::StringPiece;
|
| -using std::string;
|
| -
|
| -namespace net {
|
| -
|
| -QuicSpdySession::QuicSpdySession(QuicConnection* connection,
|
| - const QuicConfig& config)
|
| - : QuicSession(connection, config), force_hol_blocking_(false) {}
|
| -
|
| -QuicSpdySession::~QuicSpdySession() {
|
| - // Set the streams' session pointers in closed and dynamic stream lists
|
| - // to null to avoid subsequent use of this session.
|
| - for (auto* stream : *closed_streams()) {
|
| - static_cast<QuicSpdyStream*>(stream)->ClearSession();
|
| - }
|
| - for (auto const& kv : dynamic_streams()) {
|
| - static_cast<QuicSpdyStream*>(kv.second)->ClearSession();
|
| - }
|
| -}
|
| -
|
| -void QuicSpdySession::Initialize() {
|
| - QuicSession::Initialize();
|
| -
|
| - if (perspective() == Perspective::IS_SERVER) {
|
| - set_largest_peer_created_stream_id(kHeadersStreamId);
|
| - } else {
|
| - QuicStreamId headers_stream_id = GetNextOutgoingStreamId();
|
| - DCHECK_EQ(headers_stream_id, kHeadersStreamId);
|
| - }
|
| -
|
| - headers_stream_.reset(new QuicHeadersStream(this));
|
| - DCHECK_EQ(kHeadersStreamId, headers_stream_->id());
|
| - static_streams()[kHeadersStreamId] = headers_stream_.get();
|
| -}
|
| -
|
| -void QuicSpdySession::OnStreamHeaders(QuicStreamId stream_id,
|
| - StringPiece headers_data) {
|
| - QuicSpdyStream* stream = GetSpdyDataStream(stream_id);
|
| - if (!stream) {
|
| - // It's quite possible to receive headers after a stream has been reset.
|
| - return;
|
| - }
|
| - stream->OnStreamHeaders(headers_data);
|
| -}
|
| -
|
| -void QuicSpdySession::OnStreamHeadersPriority(QuicStreamId stream_id,
|
| - SpdyPriority priority) {
|
| - QuicSpdyStream* stream = GetSpdyDataStream(stream_id);
|
| - if (!stream) {
|
| - // It's quite possible to receive headers after a stream has been reset.
|
| - return;
|
| - }
|
| - stream->OnStreamHeadersPriority(priority);
|
| -}
|
| -
|
| -void QuicSpdySession::OnStreamHeadersComplete(QuicStreamId stream_id,
|
| - bool fin,
|
| - size_t frame_len) {
|
| - QuicSpdyStream* stream = GetSpdyDataStream(stream_id);
|
| - if (!stream) {
|
| - // It's quite possible to receive headers after a stream has been reset.
|
| - return;
|
| - }
|
| - stream->OnStreamHeadersComplete(fin, frame_len);
|
| -}
|
| -
|
| -void QuicSpdySession::OnStreamHeaderList(QuicStreamId stream_id,
|
| - bool fin,
|
| - size_t frame_len,
|
| - const QuicHeaderList& header_list) {
|
| - QuicSpdyStream* stream = GetSpdyDataStream(stream_id);
|
| - if (!stream) {
|
| - // It's quite possible to receive headers after a stream has been reset.
|
| - return;
|
| - }
|
| - stream->OnStreamHeaderList(fin, frame_len, header_list);
|
| -}
|
| -
|
| -size_t QuicSpdySession::WriteHeaders(
|
| - QuicStreamId id,
|
| - SpdyHeaderBlock headers,
|
| - bool fin,
|
| - SpdyPriority priority,
|
| - QuicAckListenerInterface* ack_notifier_delegate) {
|
| - return headers_stream_->WriteHeaders(id, std::move(headers), fin, priority,
|
| - ack_notifier_delegate);
|
| -}
|
| -
|
| -void QuicSpdySession::OnHeadersHeadOfLineBlocking(QuicTime::Delta delta) {
|
| - // Implemented in Chromium for stats tracking.
|
| -}
|
| -
|
| -void QuicSpdySession::RegisterStreamPriority(QuicStreamId id,
|
| - SpdyPriority priority) {
|
| - write_blocked_streams()->RegisterStream(id, priority);
|
| -}
|
| -
|
| -void QuicSpdySession::UnregisterStreamPriority(QuicStreamId id) {
|
| - write_blocked_streams()->UnregisterStream(id);
|
| -}
|
| -
|
| -void QuicSpdySession::UpdateStreamPriority(QuicStreamId id,
|
| - SpdyPriority new_priority) {
|
| - write_blocked_streams()->UpdateStreamPriority(id, new_priority);
|
| -}
|
| -
|
| -QuicSpdyStream* QuicSpdySession::GetSpdyDataStream(
|
| - const QuicStreamId stream_id) {
|
| - return static_cast<QuicSpdyStream*>(GetOrCreateDynamicStream(stream_id));
|
| -}
|
| -
|
| -void QuicSpdySession::OnPromiseHeaders(QuicStreamId stream_id,
|
| - StringPiece headers_data) {
|
| - string error = "OnPromiseHeaders should be overriden in client code.";
|
| - QUIC_BUG << error;
|
| - connection()->CloseConnection(QUIC_INTERNAL_ERROR, error,
|
| - ConnectionCloseBehavior::SILENT_CLOSE);
|
| -}
|
| -
|
| -void QuicSpdySession::OnPromiseHeadersComplete(QuicStreamId stream_id,
|
| - QuicStreamId promised_stream_id,
|
| - size_t frame_len) {
|
| - string error = "OnPromiseHeadersComplete should be overriden in client code.";
|
| - QUIC_BUG << error;
|
| - connection()->CloseConnection(QUIC_INTERNAL_ERROR, error,
|
| - ConnectionCloseBehavior::SILENT_CLOSE);
|
| -}
|
| -
|
| -void QuicSpdySession::OnPromiseHeaderList(QuicStreamId stream_id,
|
| - QuicStreamId promised_stream_id,
|
| - size_t frame_len,
|
| - const QuicHeaderList& header_list) {
|
| - string error = "OnPromiseHeaderList should be overriden in client code.";
|
| - QUIC_BUG << error;
|
| - connection()->CloseConnection(QUIC_INTERNAL_ERROR, error,
|
| - ConnectionCloseBehavior::SILENT_CLOSE);
|
| -}
|
| -
|
| -void QuicSpdySession::OnConfigNegotiated() {
|
| - QuicSession::OnConfigNegotiated();
|
| - if (FLAGS_quic_disable_hpack_dynamic_table &&
|
| - config()->HasClientSentConnectionOption(kDHDT, perspective())) {
|
| - headers_stream_->DisableHpackDynamicTable();
|
| - }
|
| - const QuicVersion version = connection()->version();
|
| - if (version > QUIC_VERSION_35 && config()->ForceHolBlocking(perspective())) {
|
| - force_hol_blocking_ = true;
|
| - // Autotuning makes sure that the headers stream flow control does
|
| - // not get in the way, and normal stream and connection level flow
|
| - // control are active anyway. This is really only for the client
|
| - // side (and mainly there just in tests and toys), where
|
| - // autotuning and/or large buffers are not enabled by default.
|
| - headers_stream_->flow_controller()->set_auto_tune_receive_window(true);
|
| - }
|
| -}
|
| -
|
| -void QuicSpdySession::OnStreamFrameData(QuicStreamId stream_id,
|
| - const char* data,
|
| - size_t len,
|
| - bool fin) {
|
| - QuicSpdyStream* stream = GetSpdyDataStream(stream_id);
|
| - if (stream == nullptr) {
|
| - return;
|
| - }
|
| - const QuicStreamOffset offset =
|
| - stream->flow_controller()->highest_received_byte_offset();
|
| - const QuicStreamFrame frame(stream_id, fin, offset, StringPiece(data, len));
|
| - DVLOG(1) << "De-encapsulating DATA frame for stream " << stream_id
|
| - << " offset " << offset << " len " << len << " fin " << fin;
|
| - OnStreamFrame(frame);
|
| -}
|
| -
|
| -} // namespace net
|
|
|