| Index: net/spdy/core/spdy_framer.cc
|
| diff --git a/net/spdy/core/spdy_framer.cc b/net/spdy/core/spdy_framer.cc
|
| index 03a1bed5a149ea3a2999982e4d5fcda80d44fbdd..cc4362ea1667326b6473aae5ffb24f28788ab397 100644
|
| --- a/net/spdy/core/spdy_framer.cc
|
| +++ b/net/spdy/core/spdy_framer.cc
|
| @@ -143,7 +143,6 @@ SpdyFramer::SpdyFramer(SpdyFramer::DecoderAdapterFactoryFn adapter_factory,
|
| if (adapter_factory != nullptr) {
|
| decoder_adapter_ = adapter_factory(this);
|
| }
|
| - skip_rewritelength_ = FLAGS_chromium_http2_flag_remove_rewritelength;
|
| }
|
|
|
| SpdyFramer::SpdyFramer(CompressionOption option)
|
| @@ -1877,22 +1876,11 @@ SpdySerializedFrame SpdyFramer::SerializeDataFrameHeaderWithPaddingLengthField(
|
| data_ir, &flags, &frame_size, &num_padding_fields);
|
|
|
| SpdyFrameBuilder builder(frame_size);
|
| - if (!skip_rewritelength_) {
|
| - builder.BeginNewFrame(*this, SpdyFrameType::DATA, flags,
|
| - data_ir.stream_id());
|
| - if (data_ir.padded()) {
|
| - builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| - }
|
| - builder.OverwriteLength(*this, num_padding_fields + data_ir.data_len() +
|
| - data_ir.padding_payload_len());
|
| - } else {
|
| - builder.BeginNewFrame(*this, SpdyFrameType::DATA, flags,
|
| - data_ir.stream_id(),
|
| - num_padding_fields + data_ir.data_len() +
|
| - data_ir.padding_payload_len());
|
| - if (data_ir.padded()) {
|
| - builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| - }
|
| + builder.BeginNewFrame(
|
| + *this, SpdyFrameType::DATA, flags, data_ir.stream_id(),
|
| + num_padding_fields + data_ir.data_len() + data_ir.padding_payload_len());
|
| + if (data_ir.padded()) {
|
| + builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| }
|
| DCHECK_EQ(frame_size, builder.length());
|
| return builder.take();
|
| @@ -2054,14 +2042,9 @@ SpdySerializedFrame SpdyFramer::SerializeHeaders(const SpdyHeadersIR& headers) {
|
| &weight, &length_field);
|
|
|
| SpdyFrameBuilder builder(size);
|
| + builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| + headers.stream_id(), length_field);
|
|
|
| - if (!skip_rewritelength_) {
|
| - builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| - headers.stream_id());
|
| - } else {
|
| - builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| - headers.stream_id(), length_field);
|
| - }
|
| DCHECK_EQ(GetHeadersMinimumSize(), builder.length());
|
|
|
| int padding_payload_len = 0;
|
| @@ -2137,14 +2120,9 @@ SpdySerializedFrame SpdyFramer::SerializePushPromise(
|
| &size);
|
|
|
| SpdyFrameBuilder builder(size);
|
| - if (!skip_rewritelength_) {
|
| - builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| - push_promise.stream_id());
|
| - } else {
|
| - size_t length = std::min(size, kMaxControlFrameSize) - GetFrameHeaderSize();
|
| - builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| - push_promise.stream_id(), length);
|
| - }
|
| + size_t length = std::min(size, kMaxControlFrameSize) - GetFrameHeaderSize();
|
| + builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| + push_promise.stream_id(), length);
|
| int padding_payload_len = 0;
|
| if (push_promise.padded()) {
|
| builder.WriteUInt8(push_promise.padding_payload_len());
|
| @@ -2448,23 +2426,12 @@ bool SpdyFramer::SerializeDataFrameHeaderWithPaddingLengthField(
|
|
|
| SpdyFrameBuilder builder(frame_size, output);
|
| bool ok = true;
|
| - if (!skip_rewritelength_) {
|
| - ok = builder.BeginNewFrame(*this, SpdyFrameType::DATA, flags,
|
| - data_ir.stream_id());
|
| - if (data_ir.padded()) {
|
| - ok = ok && builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| - }
|
| - ok = ok && builder.OverwriteLength(*this,
|
| - num_padding_fields + data_ir.data_len() +
|
| - data_ir.padding_payload_len());
|
| - } else {
|
| - ok = ok && builder.BeginNewFrame(*this, SpdyFrameType::DATA, flags,
|
| - data_ir.stream_id(),
|
| - num_padding_fields + data_ir.data_len() +
|
| - data_ir.padding_payload_len());
|
| - if (data_ir.padded()) {
|
| - ok = ok && builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| - }
|
| + ok = ok && builder.BeginNewFrame(*this, SpdyFrameType::DATA, flags,
|
| + data_ir.stream_id(),
|
| + num_padding_fields + data_ir.data_len() +
|
| + data_ir.padding_payload_len());
|
| + if (data_ir.padded()) {
|
| + ok = ok && builder.WriteUInt8(data_ir.padding_payload_len() & 0xff);
|
| }
|
| DCHECK_EQ(frame_size, builder.length());
|
| return ok;
|
| @@ -2561,13 +2528,8 @@ bool SpdyFramer::SerializeHeaders(const SpdyHeadersIR& headers,
|
|
|
| bool ok = true;
|
| SpdyFrameBuilder builder(size, output);
|
| - if (!skip_rewritelength_) {
|
| - ok = builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| - headers.stream_id());
|
| - } else {
|
| - ok = ok && builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| - headers.stream_id(), length_field);
|
| - }
|
| + ok = ok && builder.BeginNewFrame(*this, SpdyFrameType::HEADERS, flags,
|
| + headers.stream_id(), length_field);
|
| DCHECK_EQ(GetHeadersMinimumSize(), builder.length());
|
|
|
| int padding_payload_len = 0;
|
| @@ -2619,14 +2581,9 @@ bool SpdyFramer::SerializePushPromise(const SpdyPushPromiseIR& push_promise,
|
|
|
| bool ok = true;
|
| SpdyFrameBuilder builder(size, output);
|
| - if (!skip_rewritelength_) {
|
| - ok = builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| - push_promise.stream_id());
|
| - } else {
|
| - size_t length = std::min(size, kMaxControlFrameSize) - GetFrameHeaderSize();
|
| - ok = builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| - push_promise.stream_id(), length);
|
| - }
|
| + size_t length = std::min(size, kMaxControlFrameSize) - GetFrameHeaderSize();
|
| + ok = builder.BeginNewFrame(*this, SpdyFrameType::PUSH_PROMISE, flags,
|
| + push_promise.stream_id(), length);
|
|
|
| int padding_payload_len = 0;
|
| if (push_promise.padded()) {
|
| @@ -2892,10 +2849,6 @@ bool SpdyFramer::WritePayloadWithContinuation(SpdyFrameBuilder* builder,
|
| SpdyString padding = SpdyString(padding_payload_len, 0);
|
| ret &= builder->WriteBytes(padding.data(), padding.length());
|
| }
|
| - if (bytes_remaining > 0 && !skip_rewritelength_) {
|
| - ret &= builder->OverwriteLength(
|
| - *this, kMaxControlFrameSize - GetFrameHeaderSize());
|
| - }
|
|
|
| // Tack on CONTINUATION frames for the overflow.
|
| while (bytes_remaining > 0 && ret) {
|
| @@ -2905,13 +2858,8 @@ bool SpdyFramer::WritePayloadWithContinuation(SpdyFrameBuilder* builder,
|
| if (bytes_remaining == bytes_to_write) {
|
| flags |= end_flag;
|
| }
|
| - if (!skip_rewritelength_) {
|
| - ret &= builder->BeginNewFrame(*this, SpdyFrameType::CONTINUATION, flags,
|
| - stream_id);
|
| - } else {
|
| - ret &= builder->BeginNewFrame(*this, SpdyFrameType::CONTINUATION, flags,
|
| - stream_id, bytes_to_write);
|
| - }
|
| + ret &= builder->BeginNewFrame(*this, SpdyFrameType::CONTINUATION, flags,
|
| + stream_id, bytes_to_write);
|
| // Write payload fragment.
|
| ret &= builder->WriteBytes(
|
| &hpack_encoding[hpack_encoding.size() - bytes_remaining],
|
|
|