| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "content/browser/download/base_file.h" | 5 #include "content/browser/download/base_file.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/format_macros.h" | 8 #include "base/format_macros.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "base/stringprintf.h" | 10 #include "base/stringprintf.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 : full_path_(full_path), | 191 : full_path_(full_path), |
| 192 source_url_(source_url), | 192 source_url_(source_url), |
| 193 referrer_url_(referrer_url), | 193 referrer_url_(referrer_url), |
| 194 file_stream_(file_stream), | 194 file_stream_(file_stream), |
| 195 bytes_so_far_(received_bytes), | 195 bytes_so_far_(received_bytes), |
| 196 power_save_blocker_(true), | 196 power_save_blocker_(true), |
| 197 calculate_hash_(false), | 197 calculate_hash_(false), |
| 198 detached_(false) { | 198 detached_(false) { |
| 199 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 199 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 200 memset(sha256_hash_, 0, sizeof(sha256_hash_)); | 200 memset(sha256_hash_, 0, sizeof(sha256_hash_)); |
| 201 if (file_stream_.get()) |
| 202 file_stream_->EnableErrorStatistics(); |
| 201 } | 203 } |
| 202 | 204 |
| 203 BaseFile::~BaseFile() { | 205 BaseFile::~BaseFile() { |
| 204 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 206 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 205 if (detached_) | 207 if (detached_) |
| 206 Close(); | 208 Close(); |
| 207 else | 209 else |
| 208 Cancel(); // Will delete the file. | 210 Cancel(); // Will delete the file. |
| 209 } | 211 } |
| 210 | 212 |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 } | 383 } |
| 382 | 384 |
| 383 net::Error BaseFile::Open() { | 385 net::Error BaseFile::Open() { |
| 384 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 386 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 385 DCHECK(!detached_); | 387 DCHECK(!detached_); |
| 386 DCHECK(!full_path_.empty()); | 388 DCHECK(!full_path_.empty()); |
| 387 | 389 |
| 388 // Create a new file stream if it is not provided. | 390 // Create a new file stream if it is not provided. |
| 389 if (!file_stream_.get()) { | 391 if (!file_stream_.get()) { |
| 390 CreateFileStream(); | 392 CreateFileStream(); |
| 393 file_stream_->EnableErrorStatistics(); |
| 391 int open_result = file_stream_->Open( | 394 int open_result = file_stream_->Open( |
| 392 full_path_, | 395 full_path_, |
| 393 base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE); | 396 base::PLATFORM_FILE_OPEN_ALWAYS | base::PLATFORM_FILE_WRITE); |
| 394 if (open_result != net::OK) { | 397 if (open_result != net::OK) { |
| 395 file_stream_.reset(); | 398 file_stream_.reset(); |
| 396 return LOG_ERROR("Open", open_result); | 399 return LOG_ERROR("Open", open_result); |
| 397 } | 400 } |
| 398 | 401 |
| 399 // We may be re-opening the file after rename. Always make sure we're | 402 // We may be re-opening the file after rename. Always make sure we're |
| 400 // writing at the end of the file. | 403 // writing at the end of the file. |
| (...skipping 25 matching lines...) Expand all Loading... |
| 426 | 429 |
| 427 std::string BaseFile::DebugString() const { | 430 std::string BaseFile::DebugString() const { |
| 428 return base::StringPrintf("{ source_url_ = \"%s\"" | 431 return base::StringPrintf("{ source_url_ = \"%s\"" |
| 429 " full_path_ = \"%" PRFilePath "\"" | 432 " full_path_ = \"%" PRFilePath "\"" |
| 430 " bytes_so_far_ = %" PRId64 " detached_ = %c }", | 433 " bytes_so_far_ = %" PRId64 " detached_ = %c }", |
| 431 source_url_.spec().c_str(), | 434 source_url_.spec().c_str(), |
| 432 full_path_.value().c_str(), | 435 full_path_.value().c_str(), |
| 433 bytes_so_far_, | 436 bytes_so_far_, |
| 434 detached_ ? 'T' : 'F'); | 437 detached_ ? 'T' : 'F'); |
| 435 } | 438 } |
| OLD | NEW |