// The maxmium possible control frame size allowed by the spec.
const int32 kSpdyMaxControlFrameSize = (1 << 24) - 1;
-// The maximum control frame size we actually send/accept.
+// The maximum control frame size we accept.
const int32 kControlFrameSizeLimit = 1 << 14;
// Initial window size for a Spdy session in bytes.
// to them.
class NET_EXPORT_PRIVATE SpdyFrameWithStreamIdIR : public SpdyFrameIR {
public:
- virtual ~SpdyFrameWithStreamIdIR() {}
+ ~SpdyFrameWithStreamIdIR() override {}
SpdyStreamId stream_id() const { return stream_id_; }
void set_stream_id(SpdyStreamId stream_id) {
DCHECK_EQ(0u, stream_id & ~kStreamIdMask);
// flag. Implies SpdyFrameWithStreamIdIR.
class NET_EXPORT_PRIVATE SpdyFrameWithFinIR : public SpdyFrameWithStreamIdIR {
public:
- virtual ~SpdyFrameWithFinIR() {}
+ ~SpdyFrameWithFinIR() override {}
bool fin() const { return fin_; }
void set_fin(bool fin) { fin_ = fin; }
protected:
explicit SpdyFrameWithNameValueBlockIR(SpdyStreamId stream_id);
- virtual ~SpdyFrameWithNameValueBlockIR();
+ ~SpdyFrameWithNameValueBlockIR() override;
private:
SpdyNameValueBlock name_value_block_;
// Use in conjunction with SetDataShallow() for shallow-copy on data.
explicit SpdyDataIR(SpdyStreamId stream_id);
- virtual ~SpdyDataIR();
+ ~SpdyDataIR() override;
base::StringPiece data() const { return data_; }
data_ = data;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
// Used to store data that this SpdyDataIR should own.
unidirectional_ = unidirectional;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId associated_to_stream_id_;
explicit SpdySynReplyIR(SpdyStreamId stream_id)
: SpdyFrameWithNameValueBlockIR(stream_id) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
DISALLOW_COPY_AND_ASSIGN(SpdySynReplyIR);
SpdyRstStreamIR(SpdyStreamId stream_id, SpdyRstStreamStatus status,
base::StringPiece description);
- virtual ~SpdyRstStreamIR();
+ ~SpdyRstStreamIR() override;
SpdyRstStreamStatus status() const {
return status_;
description_ = description;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyRstStreamStatus status_;
SpdySettingsIR();
- virtual ~SpdySettingsIR();
+ ~SpdySettingsIR() override;
// Overwrites as appropriate.
const ValueMap& values() const { return values_; }
is_ack_ = is_ack;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
ValueMap values_;
bool is_ack() const { return is_ack_; }
void set_is_ack(bool is_ack) { is_ack_ = is_ack; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyPingId id_;
public:
SpdyGoAwayIR(SpdyStreamId last_good_stream_id, SpdyGoAwayStatus status,
const base::StringPiece& description);
- virtual ~SpdyGoAwayIR();
+ ~SpdyGoAwayIR() override;
SpdyStreamId last_good_stream_id() const { return last_good_stream_id_; }
void set_last_good_stream_id(SpdyStreamId last_good_stream_id) {
DCHECK_LE(0u, last_good_stream_id);
const base::StringPiece& description() const;
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId last_good_stream_id_;
class NET_EXPORT_PRIVATE SpdyHeadersIR : public SpdyFrameWithNameValueBlockIR {
public:
explicit SpdyHeadersIR(SpdyStreamId stream_id)
- : SpdyFrameWithNameValueBlockIR(stream_id),
- has_priority_(false),
- priority_(0) {}
+ : SpdyFrameWithNameValueBlockIR(stream_id),
+ has_priority_(false),
+ priority_(0),
+ padded_(false),
+ padding_payload_len_(0) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
bool has_priority() const { return has_priority_; }
void set_has_priority(bool has_priority) { has_priority_ = has_priority; }
uint32 priority() const { return priority_; }
void set_priority(SpdyPriority priority) { priority_ = priority; }
+ bool padded() const { return padded_; }
+ int padding_payload_len() const { return padding_payload_len_; }
+ void set_padding_len(int padding_len) {
+ DCHECK_GT(padding_len, 0);
+ DCHECK_LE(padding_len, kPaddingSizePerFrame);
+ padded_ = true;
+ // The pad field takes one octet on the wire.
+ padding_payload_len_ = padding_len - 1;
+ }
+
private:
bool has_priority_;
// 31-bit priority.
uint32 priority_;
+
+ bool padded_;
+ int padding_payload_len_;
+
DISALLOW_COPY_AND_ASSIGN(SpdyHeadersIR);
};
delta_ = delta;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
int32 delta_;
explicit SpdyBlockedIR(SpdyStreamId stream_id)
: SpdyFrameWithStreamIdIR(stream_id) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
DISALLOW_COPY_AND_ASSIGN(SpdyBlockedIR);
public:
SpdyPushPromiseIR(SpdyStreamId stream_id, SpdyStreamId promised_stream_id)
: SpdyFrameWithNameValueBlockIR(stream_id),
- promised_stream_id_(promised_stream_id) {}
+ promised_stream_id_(promised_stream_id),
+ padded_(false),
+ padding_payload_len_(0) {}
SpdyStreamId promised_stream_id() const { return promised_stream_id_; }
void set_promised_stream_id(SpdyStreamId id) { promised_stream_id_ = id; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
+
+ bool padded() const { return padded_; }
+ int padding_payload_len() const { return padding_payload_len_; }
+ void set_padding_len(int padding_len) {
+ DCHECK_GT(padding_len, 0);
+ DCHECK_LE(padding_len, kPaddingSizePerFrame);
+ padded_ = true;
+ // The pad field takes one octet on the wire.
+ padding_payload_len_ = padding_len - 1;
+ }
private:
SpdyStreamId promised_stream_id_;
+
+ bool padded_;
+ int padding_payload_len_;
+
DISALLOW_COPY_AND_ASSIGN(SpdyPushPromiseIR);
};
: SpdyFrameWithNameValueBlockIR(stream_id),
end_headers_(false) {}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
bool end_headers() const { return end_headers_; }
void set_end_headers(bool end_headers) {end_headers_ = end_headers;}
origin_ = origin;
}
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
uint32 max_age_;
bool exclusive() const { return exclusive_; }
void set_exclusive(bool exclusive) { exclusive_ = exclusive; }
- virtual void Visit(SpdyFrameVisitor* visitor) const OVERRIDE;
+ void Visit(SpdyFrameVisitor* visitor) const override;
private:
SpdyStreamId parent_stream_id_;