Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(466)

Side by Side Diff: net/quic/core/quic_headers_stream.cc

Issue 2446893003: Make Quic client more memory efficient. Protected by --quic_headers_stream_release_sequencer_buffer. (Closed)
Patch Set: Remove NOLINT Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/quic/core/quic_headers_stream.h" 5 #include "net/quic/core/quic_headers_stream.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 break; 454 break;
455 } 455 }
456 DCHECK(timestamp.IsInitialized()); 456 DCHECK(timestamp.IsInitialized());
457 cur_max_timestamp_ = std::max(timestamp, cur_max_timestamp_); 457 cur_max_timestamp_ = std::max(timestamp, cur_max_timestamp_);
458 if (spdy_framer_.ProcessInput(static_cast<char*>(iov.iov_base), 458 if (spdy_framer_.ProcessInput(static_cast<char*>(iov.iov_base),
459 iov.iov_len) != iov.iov_len) { 459 iov.iov_len) != iov.iov_len) {
460 // Error processing data. 460 // Error processing data.
461 return; 461 return;
462 } 462 }
463 sequencer()->MarkConsumed(iov.iov_len); 463 sequencer()->MarkConsumed(iov.iov_len);
464 MaybeReleaseSequencerBuffer();
464 } 465 }
465 } 466 }
466 467
467 void QuicHeadersStream::set_max_uncompressed_header_bytes( 468 void QuicHeadersStream::set_max_uncompressed_header_bytes(
468 size_t set_max_uncompressed_header_bytes) { 469 size_t set_max_uncompressed_header_bytes) {
469 spdy_framer_visitor_->set_max_uncompressed_header_bytes( 470 spdy_framer_visitor_->set_max_uncompressed_header_bytes(
470 set_max_uncompressed_header_bytes); 471 set_max_uncompressed_header_bytes);
471 } 472 }
472 473
473 void QuicHeadersStream::OnHeaders(SpdyStreamId stream_id, 474 void QuicHeadersStream::OnHeaders(SpdyStreamId stream_id,
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 } 563 }
563 564
564 void QuicHeadersStream::UpdateHeaderEncoderTableSize(uint32_t value) { 565 void QuicHeadersStream::UpdateHeaderEncoderTableSize(uint32_t value) {
565 spdy_framer_.UpdateHeaderEncoderTableSize(value); 566 spdy_framer_.UpdateHeaderEncoderTableSize(value);
566 } 567 }
567 568
568 void QuicHeadersStream::UpdateEnableServerPush(bool value) { 569 void QuicHeadersStream::UpdateEnableServerPush(bool value) {
569 spdy_session_->set_server_push_enabled(value); 570 spdy_session_->set_server_push_enabled(value);
570 } 571 }
571 572
573 void QuicHeadersStream::MaybeReleaseSequencerBuffer() {
574 if (FLAGS_quic_headers_stream_release_sequencer_buffer &&
575 spdy_session_->ShouldReleaseHeadersStreamSequencerBuffer()) {
576 sequencer()->ReleaseBufferIfEmpty();
577 }
578 }
579
572 bool QuicHeadersStream::OnDataFrameHeader(QuicStreamId stream_id, 580 bool QuicHeadersStream::OnDataFrameHeader(QuicStreamId stream_id,
573 size_t length, 581 size_t length,
574 bool fin) { 582 bool fin) {
575 if (!spdy_session_->force_hol_blocking()) { 583 if (!spdy_session_->force_hol_blocking()) {
576 return false; 584 return false;
577 } 585 }
578 if (!IsConnected()) { 586 if (!IsConnected()) {
579 return true; 587 return true;
580 } 588 }
581 DVLOG(1) << "DATA frame header for stream " << stream_id << " length " 589 DVLOG(1) << "DATA frame header for stream " << stream_id << " length "
(...skipping 16 matching lines...) Expand all
598 return true; 606 return true;
599 } 607 }
600 frame_len_ -= len; 608 frame_len_ -= len;
601 // Ignore fin_ while there is more data coming, if frame_len_ > 0. 609 // Ignore fin_ while there is more data coming, if frame_len_ > 0.
602 spdy_session_->OnStreamFrameData(stream_id, data, len, 610 spdy_session_->OnStreamFrameData(stream_id, data, len,
603 frame_len_ > 0 ? false : fin_); 611 frame_len_ > 0 ? false : fin_);
604 return true; 612 return true;
605 } 613 }
606 614
607 } // namespace net 615 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698