OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include <utility> | 4 #include <utility> |
5 | 5 |
6 #include "base/bind.h" | 6 #include "base/bind.h" |
7 #include "base/files/file_util.h" | 7 #include "base/files/file_util.h" |
8 #include "base/json/json_writer.h" | 8 #include "base/json/json_writer.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "base/strings/pattern.h" | 10 #include "base/strings/pattern.h" |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 const int kChunkSize = 0x4000; | 255 const int kChunkSize = 0x4000; |
256 | 256 |
257 char buffer[kChunkSize]; | 257 char buffer[kChunkSize]; |
258 int err; | 258 int err; |
259 stream_->avail_in = chunk.size(); | 259 stream_->avail_in = chunk.size(); |
260 stream_->next_in = (unsigned char*)chunk.data(); | 260 stream_->next_in = (unsigned char*)chunk.data(); |
261 do { | 261 do { |
262 stream_->avail_out = kChunkSize; | 262 stream_->avail_out = kChunkSize; |
263 stream_->next_out = (unsigned char*)buffer; | 263 stream_->next_out = (unsigned char*)buffer; |
264 err = deflate(stream_.get(), finished ? Z_FINISH : Z_NO_FLUSH); | 264 err = deflate(stream_.get(), finished ? Z_FINISH : Z_NO_FLUSH); |
265 if (err != Z_OK && (err != Z_STREAM_END && finished)) { | 265 if (err != (finished ? Z_STREAM_END : Z_OK)) { |
266 stream_.reset(); | 266 stream_.reset(); |
267 return; | 267 return; |
268 } | 268 } |
269 | 269 |
270 int bytes = kChunkSize - stream_->avail_out; | 270 int bytes = kChunkSize - stream_->avail_out; |
271 if (bytes) { | 271 if (bytes) { |
272 std::string compressed_chunk = std::string(buffer, bytes); | 272 std::string compressed_chunk = std::string(buffer, bytes); |
273 endpoint_->ReceiveTraceChunk(compressed_chunk); | 273 endpoint_->ReceiveTraceChunk(compressed_chunk); |
274 } | 274 } |
275 } while (stream_->avail_out == 0); | 275 } while (stream_->avail_out == 0); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 return new CompressedStringTraceDataSink(endpoint); | 360 return new CompressedStringTraceDataSink(endpoint); |
361 } | 361 } |
362 | 362 |
363 scoped_refptr<TraceDataEndpoint> TracingControllerImpl::CreateCallbackEndpoint( | 363 scoped_refptr<TraceDataEndpoint> TracingControllerImpl::CreateCallbackEndpoint( |
364 const base::Callback<void(std::unique_ptr<const base::DictionaryValue>, | 364 const base::Callback<void(std::unique_ptr<const base::DictionaryValue>, |
365 base::RefCountedString*)>& callback) { | 365 base::RefCountedString*)>& callback) { |
366 return new StringTraceDataEndpoint(callback); | 366 return new StringTraceDataEndpoint(callback); |
367 } | 367 } |
368 | 368 |
369 } // namespace content | 369 } // namespace content |
OLD | NEW |