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

Unified Diff: blimp/net/compressed_packet_writer.cc

Issue 2632803002: Remove all blimp network code. (Closed)
Patch Set: merge from origin/master for good measure Created 3 years, 11 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 | « blimp/net/compressed_packet_writer.h ('k') | blimp/net/connection_error_observer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: blimp/net/compressed_packet_writer.cc
diff --git a/blimp/net/compressed_packet_writer.cc b/blimp/net/compressed_packet_writer.cc
deleted file mode 100644
index 1bff4d9bc1266f6c052f0ee5d8e0540572f71c21..0000000000000000000000000000000000000000
--- a/blimp/net/compressed_packet_writer.cc
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright 2016 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 "blimp/net/compressed_packet_writer.h"
-
-#include <vector>
-
-#include "base/logging.h"
-#include "base/numerics/safe_conversions.h"
-#include "base/sys_byteorder.h"
-#include "blimp/net/common.h"
-#include "net/base/io_buffer.h"
-#include "third_party/zlib/zlib.h"
-
-namespace blimp {
-namespace {
-
-// Allocate the maxmimum amount of memory to deflate (512KB) for higher
-// compression. (See zconf.h for details on memLevel semantics.)
-const int kZlibMemoryLevel = 9;
-
-// Byte count of the zlib end-of-block marker (0x00, 0x00, 0xFF, 0xFF).
-// Used for buffer preallocation.
-const size_t kZlibBlockMarkerSize = 4;
-
-} // namespace
-
-CompressedPacketWriter::CompressedPacketWriter(
- std::unique_ptr<PacketWriter> sink)
- : sink_(std::move(sink)), compressed_buf_(new net::GrowableIOBuffer) {
- DCHECK(sink_);
-
- memset(&zlib_stream_, 0, sizeof(z_stream));
-
- // MAX_WBITS means we are using the maximal window size for decompression;
- // negating it means that we are ignoring headers and CRC checks.
- int init_error =
- deflateInit2(&zlib_stream_, Z_BEST_COMPRESSION, Z_DEFLATED,
- -MAX_WBITS, // Negative value = no headers or CRC.
- kZlibMemoryLevel, Z_DEFAULT_STRATEGY);
- CHECK_EQ(Z_OK, init_error);
-}
-
-CompressedPacketWriter::~CompressedPacketWriter() {
- deflateEnd(&zlib_stream_);
-}
-
-void CompressedPacketWriter::WritePacket(
- const scoped_refptr<net::DrainableIOBuffer>& write_buffer,
- const net::CompletionCallback& callback) {
- DCHECK(write_buffer);
- DCHECK(!callback.is_null());
- size_t uncompressed_size =
- base::checked_cast<size_t>(write_buffer->BytesRemaining());
-
- // Zero-length input => zero-length output.
- if (uncompressed_size == 0) {
- sink_->WritePacket(write_buffer, callback);
- return;
- }
-
- // Don't compress anything that's bigger than the maximum allowable payload
- // size.
- if (uncompressed_size > kMaxPacketPayloadSizeBytes) {
- callback.Run(net::ERR_FILE_TOO_BIG);
- return;
- }
-
- int compress_result = Compress(write_buffer, compressed_buf_);
- if (compress_result < 0) {
- callback.Run(compress_result);
- return;
- }
-
-#if !defined(NDEBUG)
- uncompressed_size_total_ += uncompressed_size;
- compressed_size_total_ += compress_result;
-#endif // !defined(NDEBUG)
-
- scoped_refptr<net::DrainableIOBuffer> compressed_outbuf(
- new net::DrainableIOBuffer(compressed_buf_.get(), compress_result));
- sink_->WritePacket(compressed_outbuf, callback);
- DVLOG(4) << "deflate packet: " << uncompressed_size << " in, "
- << compress_result << " out.";
- DVLOG(3) << "deflate total: " << uncompressed_size_total_ << " in, "
- << compressed_size_total_ << " out.";
-}
-
-int CompressedPacketWriter::Compress(
- const scoped_refptr<net::DrainableIOBuffer>& src_buf,
- const scoped_refptr<net::GrowableIOBuffer>& dest_buf) {
- DCHECK_EQ(0, dest_buf->offset());
-
- // Preallocate a buffer that's large enough to fit the compressed contents of
- // src_buf, plus some overhead for zlib.
- const int zlib_output_ubound =
- deflateBound(&zlib_stream_, src_buf->BytesRemaining()) +
- kZlibBlockMarkerSize;
- if (dest_buf->capacity() < zlib_output_ubound) {
- dest_buf->SetCapacity(zlib_output_ubound);
- }
-
- zlib_stream_.next_in = reinterpret_cast<uint8_t*>(src_buf->data());
- zlib_stream_.avail_in = static_cast<unsigned>(src_buf->BytesRemaining());
- zlib_stream_.next_out = reinterpret_cast<uint8_t*>(dest_buf->data());
- zlib_stream_.avail_out = static_cast<unsigned>(zlib_output_ubound);
- int deflate_error = deflate(&zlib_stream_, Z_SYNC_FLUSH);
-
- if (deflate_error != Z_OK) {
- DLOG(FATAL) << "Unexpected deflate() return value: " << deflate_error;
- return net::ERR_UNEXPECTED;
- }
- if (zlib_stream_.avail_in > 0) {
- DLOG(ERROR) << "deflate() did not consume all data, remainder: "
- << zlib_stream_.avail_in << " bytes.";
- return net::ERR_UNEXPECTED;
- }
-
- return zlib_output_ubound - zlib_stream_.avail_out;
-}
-
-} // namespace blimp
« no previous file with comments | « blimp/net/compressed_packet_writer.h ('k') | blimp/net/connection_error_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698