| Index: net/spdy/buffered_spdy_framer.h
|
| diff --git a/net/spdy/buffered_spdy_framer.h b/net/spdy/buffered_spdy_framer.h
|
| deleted file mode 100644
|
| index 9c6c0d9ddbc9c42936aa799874d9cb5e54d4c216..0000000000000000000000000000000000000000
|
| --- a/net/spdy/buffered_spdy_framer.h
|
| +++ /dev/null
|
| @@ -1,278 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -#ifndef NET_SPDY_BUFFERED_SPDY_FRAMER_H_
|
| -#define NET_SPDY_BUFFERED_SPDY_FRAMER_H_
|
| -
|
| -#include <stddef.h>
|
| -#include <stdint.h>
|
| -
|
| -#include <memory>
|
| -
|
| -#include "base/macros.h"
|
| -#include "net/base/net_export.h"
|
| -#include "net/spdy/header_coalescer.h"
|
| -#include "net/spdy/platform/api/spdy_string.h"
|
| -#include "net/spdy/platform/api/spdy_string_piece.h"
|
| -#include "net/spdy/spdy_alt_svc_wire_format.h"
|
| -#include "net/spdy/spdy_framer.h"
|
| -#include "net/spdy/spdy_header_block.h"
|
| -#include "net/spdy/spdy_protocol.h"
|
| -
|
| -namespace net {
|
| -
|
| -class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface {
|
| - public:
|
| - BufferedSpdyFramerVisitorInterface() {}
|
| -
|
| - // Called if an error is detected in the SpdySerializedFrame protocol.
|
| - virtual void OnError(SpdyFramer::SpdyFramerError spdy_framer_error) = 0;
|
| -
|
| - // Called if an error is detected in a HTTP2 stream.
|
| - virtual void OnStreamError(SpdyStreamId stream_id,
|
| - const SpdyString& description) = 0;
|
| -
|
| - // Called after all the header data for HEADERS control frame is received.
|
| - virtual void OnHeaders(SpdyStreamId stream_id,
|
| - bool has_priority,
|
| - int weight,
|
| - SpdyStreamId parent_stream_id,
|
| - bool exclusive,
|
| - bool fin,
|
| - SpdyHeaderBlock headers) = 0;
|
| -
|
| - // Called when a data frame header is received.
|
| - virtual void OnDataFrameHeader(SpdyStreamId stream_id,
|
| - size_t length,
|
| - bool fin) = 0;
|
| -
|
| - // Called when data is received.
|
| - // |stream_id| The stream receiving data.
|
| - // |data| A buffer containing the data received.
|
| - // |len| The length of the data buffer (at most 2^16 - 1 - 8).
|
| - virtual void OnStreamFrameData(SpdyStreamId stream_id,
|
| - const char* data,
|
| - size_t len) = 0;
|
| -
|
| - // Called when the other side has finished sending data on this stream.
|
| - // |stream_id| The stream that was receivin data.
|
| - virtual void OnStreamEnd(SpdyStreamId stream_id) = 0;
|
| -
|
| - // Called when padding is received (padding length field or padding octets).
|
| - // |stream_id| The stream receiving data.
|
| - // |len| The number of padding octets.
|
| - virtual void OnStreamPadding(SpdyStreamId stream_id, size_t len) = 0;
|
| -
|
| - // Called when a SETTINGS frame is received.
|
| - virtual void OnSettings() = 0;
|
| -
|
| - // Called when an individual setting within a SETTINGS frame has been parsed
|
| - // and validated.
|
| - virtual void OnSetting(SpdySettingsIds id, uint32_t value) = 0;
|
| -
|
| - // Called when a SETTINGS frame is received with the ACK flag set.
|
| - virtual void OnSettingsAck() {}
|
| -
|
| - // Called at the completion of parsing SETTINGS id and value tuples.
|
| - virtual void OnSettingsEnd() {}
|
| -
|
| - // Called when a PING frame has been parsed.
|
| - virtual void OnPing(SpdyPingId unique_id, bool is_ack) = 0;
|
| -
|
| - // Called when a RST_STREAM frame has been parsed.
|
| - virtual void OnRstStream(SpdyStreamId stream_id,
|
| - SpdyErrorCode error_code) = 0;
|
| -
|
| - // Called when a GOAWAY frame has been parsed.
|
| - virtual void OnGoAway(SpdyStreamId last_accepted_stream_id,
|
| - SpdyErrorCode error_code,
|
| - SpdyStringPiece debug_data) = 0;
|
| -
|
| - // Called when a WINDOW_UPDATE frame has been parsed.
|
| - virtual void OnWindowUpdate(SpdyStreamId stream_id,
|
| - int delta_window_size) = 0;
|
| -
|
| - // Called when a PUSH_PROMISE frame has been parsed.
|
| - virtual void OnPushPromise(SpdyStreamId stream_id,
|
| - SpdyStreamId promised_stream_id,
|
| - SpdyHeaderBlock headers) = 0;
|
| -
|
| - // Called when an ALTSVC frame has been parsed.
|
| - virtual void OnAltSvc(
|
| - SpdyStreamId stream_id,
|
| - SpdyStringPiece origin,
|
| - const SpdyAltSvcWireFormat::AlternativeServiceVector& altsvc_vector) = 0;
|
| -
|
| - // Called when a frame type we don't recognize is received.
|
| - // Return true if this appears to be a valid extension frame, false otherwise.
|
| - // We distinguish between extension frames and nonsense by checking
|
| - // whether the stream id is valid.
|
| - virtual bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) = 0;
|
| -
|
| - protected:
|
| - virtual ~BufferedSpdyFramerVisitorInterface() {}
|
| -
|
| - private:
|
| - DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface);
|
| -};
|
| -
|
| -class NET_EXPORT_PRIVATE BufferedSpdyFramer
|
| - : public SpdyFramerVisitorInterface {
|
| - public:
|
| - BufferedSpdyFramer();
|
| - ~BufferedSpdyFramer() override;
|
| -
|
| - // Sets callbacks to be called from the buffered spdy framer. A visitor must
|
| - // be set, or else the framer will likely crash. It is acceptable for the
|
| - // visitor to do nothing. If this is called multiple times, only the last
|
| - // visitor will be used.
|
| - void set_visitor(BufferedSpdyFramerVisitorInterface* visitor);
|
| -
|
| - // Set debug callbacks to be called from the framer. The debug visitor is
|
| - // completely optional and need not be set in order for normal operation.
|
| - // If this is called multiple times, only the last visitor will be used.
|
| - void set_debug_visitor(SpdyFramerDebugVisitorInterface* debug_visitor);
|
| -
|
| - // SpdyFramerVisitorInterface
|
| - void OnError(SpdyFramer* spdy_framer) override;
|
| - void OnHeaders(SpdyStreamId stream_id,
|
| - bool has_priority,
|
| - int weight,
|
| - SpdyStreamId parent_stream_id,
|
| - bool exclusive,
|
| - bool fin,
|
| - bool end) override;
|
| - void OnStreamFrameData(SpdyStreamId stream_id,
|
| - const char* data,
|
| - size_t len) override;
|
| - void OnStreamEnd(SpdyStreamId stream_id) 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, uint32_t value) override;
|
| - void OnSettingsAck() override;
|
| - void OnSettingsEnd() override;
|
| - void OnPing(SpdyPingId unique_id, bool is_ack) override;
|
| - void OnRstStream(SpdyStreamId stream_id, SpdyErrorCode error_code) override;
|
| - void OnGoAway(SpdyStreamId last_accepted_stream_id,
|
| - SpdyErrorCode error_code) override;
|
| - bool OnGoAwayFrameData(const char* goaway_data, size_t len) override;
|
| - void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override;
|
| - void OnPushPromise(SpdyStreamId stream_id,
|
| - SpdyStreamId promised_stream_id,
|
| - bool end) override;
|
| - void OnAltSvc(SpdyStreamId stream_id,
|
| - SpdyStringPiece origin,
|
| - const SpdyAltSvcWireFormat::AlternativeServiceVector&
|
| - altsvc_vector) override;
|
| - void OnDataFrameHeader(SpdyStreamId stream_id,
|
| - size_t length,
|
| - bool fin) override;
|
| - void OnContinuation(SpdyStreamId stream_id, bool end) override;
|
| - bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) override;
|
| -
|
| - // SpdyFramer methods.
|
| - size_t ProcessInput(const char* data, size_t len);
|
| - void UpdateHeaderDecoderTableSize(uint32_t value);
|
| - void Reset();
|
| - SpdyFramer::SpdyFramerError spdy_framer_error() const;
|
| - SpdyFramer::SpdyState state() const;
|
| - bool MessageFullyRead();
|
| - bool HasError();
|
| - std::unique_ptr<SpdySerializedFrame> CreateRstStream(
|
| - SpdyStreamId stream_id,
|
| - SpdyErrorCode error_code) const;
|
| - std::unique_ptr<SpdySerializedFrame> CreateSettings(
|
| - const SettingsMap& values) const;
|
| - std::unique_ptr<SpdySerializedFrame> CreatePingFrame(SpdyPingId unique_id,
|
| - bool is_ack) const;
|
| - std::unique_ptr<SpdySerializedFrame> CreateWindowUpdate(
|
| - SpdyStreamId stream_id,
|
| - uint32_t delta_window_size) const;
|
| - std::unique_ptr<SpdySerializedFrame> CreateDataFrame(SpdyStreamId stream_id,
|
| - const char* data,
|
| - uint32_t len,
|
| - SpdyDataFlags flags);
|
| - std::unique_ptr<SpdySerializedFrame> CreatePriority(
|
| - SpdyStreamId stream_id,
|
| - SpdyStreamId dependency_id,
|
| - int weight,
|
| - bool exclusive) const;
|
| -
|
| - // Serialize a frame of unknown type.
|
| - SpdySerializedFrame SerializeFrame(const SpdyFrameIR& frame) {
|
| - return spdy_framer_.SerializeFrame(frame);
|
| - }
|
| -
|
| - SpdyPriority GetHighestPriority() const;
|
| -
|
| - size_t GetDataFrameMinimumSize() const {
|
| - return spdy_framer_.GetDataFrameMinimumSize();
|
| - }
|
| -
|
| - size_t GetFrameHeaderSize() const {
|
| - return spdy_framer_.GetFrameHeaderSize();
|
| - }
|
| -
|
| - size_t GetFrameMinimumSize() const {
|
| - return spdy_framer_.GetFrameMinimumSize();
|
| - }
|
| -
|
| - size_t GetFrameMaximumSize() const {
|
| - return spdy_framer_.GetFrameMaximumSize();
|
| - }
|
| -
|
| - size_t GetDataFrameMaximumPayload() const {
|
| - return spdy_framer_.GetDataFrameMaximumPayload();
|
| - }
|
| -
|
| - int frames_received() const { return frames_received_; }
|
| -
|
| - // Returns the estimate of dynamically allocated memory in bytes.
|
| - size_t EstimateMemoryUsage() const;
|
| -
|
| - private:
|
| - SpdyFramer spdy_framer_;
|
| - BufferedSpdyFramerVisitorInterface* visitor_;
|
| -
|
| - int frames_received_;
|
| -
|
| - // Collection of fields from control frames that we need to
|
| - // buffer up from the spdy framer.
|
| - struct ControlFrameFields {
|
| - SpdyFrameType type;
|
| - SpdyStreamId stream_id;
|
| - SpdyStreamId associated_stream_id;
|
| - SpdyStreamId promised_stream_id;
|
| - bool has_priority;
|
| - SpdyPriority priority;
|
| - int weight;
|
| - SpdyStreamId parent_stream_id;
|
| - bool exclusive;
|
| - bool fin;
|
| - bool unidirectional;
|
| - };
|
| - std::unique_ptr<ControlFrameFields> control_frame_fields_;
|
| -
|
| - // Collection of fields of a GOAWAY frame that this class needs to buffer.
|
| - struct GoAwayFields {
|
| - SpdyStreamId last_accepted_stream_id;
|
| - SpdyErrorCode error_code;
|
| - SpdyString debug_data;
|
| -
|
| - // Returns the estimate of dynamically allocated memory in bytes.
|
| - size_t EstimateMemoryUsage() const;
|
| - };
|
| - std::unique_ptr<GoAwayFields> goaway_fields_;
|
| -
|
| - std::unique_ptr<HeaderCoalescer> coalescer_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer);
|
| -};
|
| -
|
| -} // namespace net
|
| -
|
| -#endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_
|
|
|