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

Unified Diff: net/spdy/hpack/hpack_decoder3.cc

Issue 2832973003: Split net/spdy into core and chromium subdirectories. (Closed)
Patch Set: Fix some more build rules. Created 3 years, 8 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/hpack/hpack_decoder3.h ('k') | net/spdy/hpack/hpack_decoder3_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/hpack/hpack_decoder3.cc
diff --git a/net/spdy/hpack/hpack_decoder3.cc b/net/spdy/hpack/hpack_decoder3.cc
deleted file mode 100644
index 71875b919dfa34af3895ab74e7d277417176a87d..0000000000000000000000000000000000000000
--- a/net/spdy/hpack/hpack_decoder3.cc
+++ /dev/null
@@ -1,198 +0,0 @@
-// Copyright 2017 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.
-
-#include "net/spdy/hpack/hpack_decoder3.h"
-
-#include "base/logging.h"
-#include "net/http2/decoder/decode_buffer.h"
-#include "net/http2/decoder/decode_status.h"
-#include "net/spdy/platform/api/spdy_estimate_memory_usage.h"
-#include "net/spdy/spdy_flags.h"
-
-namespace net {
-namespace {
-const size_t kMaxDecodeBufferSizeBytes = 32 * 1024; // 32 KB
-} // namespace
-
-HpackDecoder3::HpackDecoder3()
- : hpack_decoder_(&listener_adapter_, kMaxDecodeBufferSizeBytes),
- max_decode_buffer_size_bytes_(kMaxDecodeBufferSizeBytes),
- header_block_started_(false) {}
-
-HpackDecoder3::~HpackDecoder3() {}
-
-void HpackDecoder3::ApplyHeaderTableSizeSetting(size_t size_setting) {
- DVLOG(2) << "HpackDecoder3::ApplyHeaderTableSizeSetting";
- hpack_decoder_.ApplyHeaderTableSizeSetting(size_setting);
-}
-
-void HpackDecoder3::HandleControlFrameHeadersStart(
- SpdyHeadersHandlerInterface* handler) {
- DVLOG(2) << "HpackDecoder3::HandleControlFrameHeadersStart";
- DCHECK(!header_block_started_);
- listener_adapter_.set_handler(handler);
-}
-
-bool HpackDecoder3::HandleControlFrameHeadersData(const char* headers_data,
- size_t headers_data_length) {
- DVLOG(2) << "HpackDecoder3::HandleControlFrameHeadersData: len="
- << headers_data_length;
- if (!header_block_started_) {
- // Initialize the decoding process here rather than in
- // HandleControlFrameHeadersStart because that method is not always called.
- header_block_started_ = true;
- if (!hpack_decoder_.StartDecodingBlock()) {
- header_block_started_ = false;
- return false;
- }
- }
-
- // Sometimes we get a call with headers_data==nullptr and
- // headers_data_length==0, in which case we need to avoid creating
- // a DecodeBuffer, which would otherwise complain.
- if (headers_data_length > 0) {
- DCHECK_NE(headers_data, nullptr);
- if (headers_data_length > max_decode_buffer_size_bytes_) {
- DVLOG(1) << "max_decode_buffer_size_bytes_ < headers_data_length: "
- << max_decode_buffer_size_bytes_ << " < " << headers_data_length;
- return false;
- }
- listener_adapter_.AddToTotalHpackBytes(headers_data_length);
- DecodeBuffer db(headers_data, headers_data_length);
- bool ok = hpack_decoder_.DecodeFragment(&db);
- DCHECK(!ok || db.Empty()) << "Remaining=" << db.Remaining();
- return ok;
- }
- return true;
-}
-
-// TODO(jamessynge): Determine if compressed_len is needed; it is used to
-// produce UUMA stat Net.SpdyHpackDecompressionPercentage, but only for
-// SPDY3, not HTTP2.
-bool HpackDecoder3::HandleControlFrameHeadersComplete(size_t* compressed_len) {
- DVLOG(2) << "HpackDecoder3::HandleControlFrameHeadersComplete";
- if (compressed_len != nullptr) {
- *compressed_len = listener_adapter_.total_hpack_bytes();
- }
- if (!hpack_decoder_.EndDecodingBlock()) {
- DVLOG(3) << "EndDecodingBlock returned false";
- return false;
- }
- header_block_started_ = false;
- return true;
-}
-
-const SpdyHeaderBlock& HpackDecoder3::decoded_block() const {
- return listener_adapter_.decoded_block();
-}
-
-void HpackDecoder3::SetHeaderTableDebugVisitor(
- std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor) {
- DVLOG(2) << "HpackDecoder3::SetHeaderTableDebugVisitor";
- if (visitor != nullptr) {
- listener_adapter_.SetHeaderTableDebugVisitor(std::move(visitor));
- hpack_decoder_.set_tables_debug_listener(&listener_adapter_);
- } else {
- hpack_decoder_.set_tables_debug_listener(nullptr);
- listener_adapter_.SetHeaderTableDebugVisitor(nullptr);
- }
-}
-
-void HpackDecoder3::set_max_decode_buffer_size_bytes(
- size_t max_decode_buffer_size_bytes) {
- DVLOG(2) << "HpackDecoder3::set_max_decode_buffer_size_bytes";
- max_decode_buffer_size_bytes_ = max_decode_buffer_size_bytes;
- hpack_decoder_.set_max_string_size_bytes(max_decode_buffer_size_bytes);
-}
-
-size_t HpackDecoder3::EstimateMemoryUsage() const {
- return SpdyEstimateMemoryUsage(hpack_decoder_);
-}
-
-HpackDecoder3::ListenerAdapter::ListenerAdapter() : handler_(nullptr) {}
-HpackDecoder3::ListenerAdapter::~ListenerAdapter() {}
-
-void HpackDecoder3::ListenerAdapter::set_handler(
- SpdyHeadersHandlerInterface* handler) {
- handler_ = handler;
-}
-
-void HpackDecoder3::ListenerAdapter::SetHeaderTableDebugVisitor(
- std::unique_ptr<HpackHeaderTable::DebugVisitorInterface> visitor) {
- visitor_ = std::move(visitor);
-}
-
-void HpackDecoder3::ListenerAdapter::OnHeaderListStart() {
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnHeaderListStart";
- total_hpack_bytes_ = 0;
- total_uncompressed_bytes_ = 0;
- decoded_block_.clear();
- if (handler_ != nullptr) {
- handler_->OnHeaderBlockStart();
- }
-}
-
-void HpackDecoder3::ListenerAdapter::OnHeader(HpackEntryType entry_type,
- const HpackString& name,
- const HpackString& value) {
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnHeader:\n name: " << name
- << "\n value: " << value;
- total_uncompressed_bytes_ += name.size() + value.size();
- if (handler_ == nullptr) {
- DVLOG(3) << "Adding to decoded_block";
- decoded_block_.AppendValueOrAddHeader(name, value);
- } else {
- DVLOG(3) << "Passing to handler";
- handler_->OnHeader(name, value);
- }
-}
-
-void HpackDecoder3::ListenerAdapter::OnHeaderListEnd() {
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnHeaderListEnd";
- // We don't clear the SpdyHeaderBlock here to allow access to it until the
- // next HPACK block is decoded.
- if (handler_ != nullptr) {
- if (FLAGS_chromium_http2_flag_log_compressed_size) {
- handler_->OnHeaderBlockEnd(total_uncompressed_bytes_, total_hpack_bytes_);
- } else {
- handler_->OnHeaderBlockEnd(total_uncompressed_bytes_);
- }
- handler_ = nullptr;
- }
-}
-
-void HpackDecoder3::ListenerAdapter::OnHeaderErrorDetected(
- SpdyStringPiece error_message) {
- VLOG(1) << error_message;
-}
-
-int64_t HpackDecoder3::ListenerAdapter::OnEntryInserted(
- const HpackStringPair& sp,
- size_t insert_count) {
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnEntryInserted: " << sp
- << ", insert_count=" << insert_count;
- if (visitor_ == nullptr) {
- return 0;
- }
- HpackEntry entry(sp.name, sp.value, /*is_static*/ false, insert_count);
- int64_t time_added = visitor_->OnNewEntry(entry);
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnEntryInserted: time_added="
- << time_added;
- return time_added;
-}
-
-void HpackDecoder3::ListenerAdapter::OnUseEntry(const HpackStringPair& sp,
- size_t insert_count,
- int64_t time_added) {
- DVLOG(2) << "HpackDecoder3::ListenerAdapter::OnUseEntry: " << sp
- << ", insert_count=" << insert_count
- << ", time_added=" << time_added;
- if (visitor_ != nullptr) {
- HpackEntry entry(sp.name, sp.value, /*is_static*/ false, insert_count);
- entry.set_time_added(time_added);
- visitor_->OnUseEntry(entry);
- }
-}
-
-} // namespace net
« no previous file with comments | « net/spdy/hpack/hpack_decoder3.h ('k') | net/spdy/hpack/hpack_decoder3_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698