| Index: net/spdy/spdy_session.cc
|
| diff --git a/net/spdy/spdy_session.cc b/net/spdy/spdy_session.cc
|
| index 9676748cc29a0602efb786439e79f118a90a7e97..0d3b0b6a5ded07f57b3d1a1cbef5b5c61735aabe 100644
|
| --- a/net/spdy/spdy_session.cc
|
| +++ b/net/spdy/spdy_session.cc
|
| @@ -1085,7 +1085,7 @@ void SpdySession::EnqueueStreamWrite(
|
| EnqueueWrite(stream->priority(), frame_type, std::move(producer), stream);
|
| }
|
|
|
| -scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
|
| +scoped_ptr<SpdySerializedFrame> SpdySession::CreateSynStream(
|
| SpdyStreamId stream_id,
|
| RequestPriority priority,
|
| SpdyControlFlags flags,
|
| @@ -1100,7 +1100,7 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
|
| SpdyPriority spdy_priority =
|
| ConvertRequestPriorityToSpdyPriority(priority, GetProtocolVersion());
|
|
|
| - scoped_ptr<SpdyFrame> syn_frame;
|
| + scoped_ptr<SpdySerializedFrame> syn_frame;
|
| // TODO(hkhalil): Avoid copy of |block|.
|
| if (GetProtocolVersion() <= SPDY3) {
|
| SpdySynStreamIR syn_stream(stream_id);
|
| @@ -1109,7 +1109,8 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
|
| syn_stream.set_fin((flags & CONTROL_FLAG_FIN) != 0);
|
| syn_stream.set_unidirectional((flags & CONTROL_FLAG_UNIDIRECTIONAL) != 0);
|
| syn_stream.set_header_block(block);
|
| - syn_frame.reset(buffered_spdy_framer_->SerializeFrame(syn_stream));
|
| + syn_frame.reset(new SpdySerializedFrame(
|
| + buffered_spdy_framer_->SerializeFrame(syn_stream)));
|
|
|
| if (net_log().IsCapturing()) {
|
| net_log().AddEvent(NetLog::TYPE_HTTP2_SESSION_SYN_STREAM,
|
| @@ -1134,7 +1135,8 @@ scoped_ptr<SpdyFrame> SpdySession::CreateSynStream(
|
|
|
| headers.set_fin((flags & CONTROL_FLAG_FIN) != 0);
|
| headers.set_header_block(block);
|
| - syn_frame.reset(buffered_spdy_framer_->SerializeFrame(headers));
|
| + syn_frame.reset(new SpdySerializedFrame(
|
| + buffered_spdy_framer_->SerializeFrame(headers)));
|
|
|
| if (net_log().IsCapturing()) {
|
| net_log().AddEvent(
|
| @@ -1242,7 +1244,7 @@ scoped_ptr<SpdyBuffer> SpdySession::CreateDataBuffer(SpdyStreamId stream_id,
|
|
|
| // TODO(mbelshe): reduce memory copies here.
|
| DCHECK(buffered_spdy_framer_.get());
|
| - scoped_ptr<SpdyFrame> frame(buffered_spdy_framer_->CreateDataFrame(
|
| + scoped_ptr<SpdySerializedFrame> frame(buffered_spdy_framer_->CreateDataFrame(
|
| stream_id, data->data(), static_cast<uint32_t>(effective_len), flags));
|
|
|
| scoped_ptr<SpdyBuffer> data_buffer(new SpdyBuffer(std::move(frame)));
|
| @@ -1375,7 +1377,7 @@ void SpdySession::EnqueueResetStreamFrame(SpdyStreamId stream_id,
|
| base::Bind(&NetLogSpdyRstCallback, stream_id, status, &description));
|
|
|
| DCHECK(buffered_spdy_framer_.get());
|
| - scoped_ptr<SpdyFrame> rst_frame(
|
| + scoped_ptr<SpdySerializedFrame> rst_frame(
|
| buffered_spdy_framer_->CreateRstStream(stream_id, status));
|
|
|
| EnqueueSessionWrite(priority, RST_STREAM, std::move(rst_frame));
|
| @@ -1773,10 +1775,9 @@ void SpdySession::DoDrainSession(Error err, const std::string& description) {
|
| SpdyGoAwayIR goaway_ir(last_accepted_push_stream_id_,
|
| MapNetErrorToGoAwayStatus(err),
|
| description);
|
| - EnqueueSessionWrite(HIGHEST,
|
| - GOAWAY,
|
| - scoped_ptr<SpdyFrame>(
|
| - buffered_spdy_framer_->SerializeFrame(goaway_ir)));
|
| + EnqueueSessionWrite(HIGHEST, GOAWAY,
|
| + scoped_ptr<SpdySerializedFrame>(new SpdySerializedFrame(
|
| + buffered_spdy_framer_->SerializeFrame(goaway_ir))));
|
| }
|
|
|
| availability_state_ = STATE_DRAINING;
|
| @@ -1936,7 +1937,7 @@ int SpdySession::GetLocalAddress(IPEndPoint* address) const {
|
|
|
| void SpdySession::EnqueueSessionWrite(RequestPriority priority,
|
| SpdyFrameType frame_type,
|
| - scoped_ptr<SpdyFrame> frame) {
|
| + scoped_ptr<SpdySerializedFrame> frame) {
|
| DCHECK(frame_type == RST_STREAM || frame_type == SETTINGS ||
|
| frame_type == WINDOW_UPDATE || frame_type == PING ||
|
| frame_type == GOAWAY);
|
| @@ -2190,10 +2191,9 @@ void SpdySession::OnSettings(bool clear_persisted) {
|
| SpdySettingsIR settings_ir;
|
| settings_ir.set_is_ack(true);
|
| EnqueueSessionWrite(
|
| - HIGHEST,
|
| - SETTINGS,
|
| - scoped_ptr<SpdyFrame>(
|
| - buffered_spdy_framer_->SerializeFrame(settings_ir)));
|
| + HIGHEST, SETTINGS,
|
| + scoped_ptr<SpdySerializedFrame>(new SpdySerializedFrame(
|
| + buffered_spdy_framer_->SerializeFrame(settings_ir))));
|
| }
|
| }
|
|
|
| @@ -2828,10 +2828,10 @@ void SpdySession::SendInitialData() {
|
|
|
| if (send_connection_header_prefix_) {
|
| DCHECK_EQ(protocol_, kProtoHTTP2);
|
| - scoped_ptr<SpdyFrame> connection_header_prefix_frame(
|
| - new SpdyFrame(const_cast<char*>(kHttp2ConnectionHeaderPrefix),
|
| - kHttp2ConnectionHeaderPrefixSize,
|
| - false /* take_ownership */));
|
| + scoped_ptr<SpdySerializedFrame> connection_header_prefix_frame(
|
| + new SpdySerializedFrame(const_cast<char*>(kHttp2ConnectionHeaderPrefix),
|
| + kHttp2ConnectionHeaderPrefixSize,
|
| + false /* take_ownership */));
|
| // Count the prefix as part of the subsequent SETTINGS frame.
|
| EnqueueSessionWrite(HIGHEST, SETTINGS,
|
| std::move(connection_header_prefix_frame));
|
| @@ -2896,7 +2896,7 @@ void SpdySession::SendSettings(const SettingsMap& settings) {
|
| base::Bind(&NetLogSpdySendSettingsCallback, &settings, protocol_version));
|
| // Create the SETTINGS frame and send it.
|
| DCHECK(buffered_spdy_framer_.get());
|
| - scoped_ptr<SpdyFrame> settings_frame(
|
| + scoped_ptr<SpdySerializedFrame> settings_frame(
|
| buffered_spdy_framer_->CreateSettings(settings));
|
| sent_settings_ = true;
|
| EnqueueSessionWrite(HIGHEST, SETTINGS, std::move(settings_frame));
|
| @@ -2971,14 +2971,14 @@ void SpdySession::SendWindowUpdateFrame(SpdyStreamId stream_id,
|
| delta_window_size));
|
|
|
| DCHECK(buffered_spdy_framer_.get());
|
| - scoped_ptr<SpdyFrame> window_update_frame(
|
| + scoped_ptr<SpdySerializedFrame> window_update_frame(
|
| buffered_spdy_framer_->CreateWindowUpdate(stream_id, delta_window_size));
|
| EnqueueSessionWrite(priority, WINDOW_UPDATE, std::move(window_update_frame));
|
| }
|
|
|
| void SpdySession::WritePingFrame(SpdyPingId unique_id, bool is_ack) {
|
| DCHECK(buffered_spdy_framer_.get());
|
| - scoped_ptr<SpdyFrame> ping_frame(
|
| + scoped_ptr<SpdySerializedFrame> ping_frame(
|
| buffered_spdy_framer_->CreatePingFrame(unique_id, is_ack));
|
| EnqueueSessionWrite(HIGHEST, PING, std::move(ping_frame));
|
|
|
|
|