Index: net/url_request/url_fetcher_response_writer.cc |
diff --git a/net/url_request/url_fetcher_response_writer.cc b/net/url_request/url_fetcher_response_writer.cc |
deleted file mode 100644 |
index 7f162aec893f46e244997909d76e4474ac555686..0000000000000000000000000000000000000000 |
--- a/net/url_request/url_fetcher_response_writer.cc |
+++ /dev/null |
@@ -1,197 +0,0 @@ |
-// Copyright (c) 2013 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/url_request/url_fetcher_response_writer.h" |
- |
-#include "base/files/file_util.h" |
-#include "base/location.h" |
-#include "base/profiler/scoped_tracker.h" |
-#include "base/sequenced_task_runner.h" |
-#include "base/task_runner_util.h" |
-#include "net/base/file_stream.h" |
-#include "net/base/io_buffer.h" |
-#include "net/base/net_errors.h" |
- |
-namespace net { |
- |
-URLFetcherStringWriter* URLFetcherResponseWriter::AsStringWriter() { |
- return NULL; |
-} |
- |
-URLFetcherFileWriter* URLFetcherResponseWriter::AsFileWriter() { |
- return NULL; |
-} |
- |
-URLFetcherStringWriter::URLFetcherStringWriter() { |
-} |
- |
-URLFetcherStringWriter::~URLFetcherStringWriter() { |
-} |
- |
-int URLFetcherStringWriter::Initialize(const CompletionCallback& callback) { |
- data_.clear(); |
- return OK; |
-} |
- |
-int URLFetcherStringWriter::Write(IOBuffer* buffer, |
- int num_bytes, |
- const CompletionCallback& callback) { |
- data_.append(buffer->data(), num_bytes); |
- return num_bytes; |
-} |
- |
-int URLFetcherStringWriter::Finish(const CompletionCallback& callback) { |
- // Do nothing. |
- return OK; |
-} |
- |
-URLFetcherStringWriter* URLFetcherStringWriter::AsStringWriter() { |
- return this; |
-} |
- |
-URLFetcherFileWriter::URLFetcherFileWriter( |
- scoped_refptr<base::SequencedTaskRunner> file_task_runner, |
- const base::FilePath& file_path) |
- : file_task_runner_(file_task_runner), |
- file_path_(file_path), |
- owns_file_(false), |
- weak_factory_(this) { |
- DCHECK(file_task_runner_.get()); |
-} |
- |
-URLFetcherFileWriter::~URLFetcherFileWriter() { |
- CloseAndDeleteFile(); |
-} |
- |
-int URLFetcherFileWriter::Initialize(const CompletionCallback& callback) { |
- file_stream_.reset(new FileStream(file_task_runner_)); |
- |
- int result = ERR_IO_PENDING; |
- if (file_path_.empty()) { |
- base::FilePath* temp_file_path = new base::FilePath; |
- base::PostTaskAndReplyWithResult( |
- file_task_runner_.get(), |
- FROM_HERE, |
- base::Bind(&base::CreateTemporaryFile, temp_file_path), |
- base::Bind(&URLFetcherFileWriter::DidCreateTempFile, |
- weak_factory_.GetWeakPtr(), |
- callback, |
- base::Owned(temp_file_path))); |
- } else { |
- result = file_stream_->Open( |
- file_path_, |
- base::File::FLAG_WRITE | base::File::FLAG_ASYNC | |
- base::File::FLAG_CREATE_ALWAYS, |
- base::Bind(&URLFetcherFileWriter::DidOpenFile, |
- weak_factory_.GetWeakPtr(), |
- callback)); |
- DCHECK_NE(OK, result); |
- } |
- return result; |
-} |
- |
-int URLFetcherFileWriter::Write(IOBuffer* buffer, |
- int num_bytes, |
- const CompletionCallback& callback) { |
- DCHECK(file_stream_); |
- DCHECK(owns_file_); |
- |
- int result = file_stream_->Write(buffer, num_bytes, |
- base::Bind(&URLFetcherFileWriter::DidWrite, |
- weak_factory_.GetWeakPtr(), |
- callback)); |
- if (result < 0 && result != ERR_IO_PENDING) |
- CloseAndDeleteFile(); |
- |
- return result; |
-} |
- |
-int URLFetcherFileWriter::Finish(const CompletionCallback& callback) { |
- // If the file_stream_ still exists at this point, close it. |
- if (file_stream_) { |
- int result = file_stream_->Close(base::Bind( |
- &URLFetcherFileWriter::CloseComplete, |
- weak_factory_.GetWeakPtr(), callback)); |
- if (result != ERR_IO_PENDING) |
- file_stream_.reset(); |
- return result; |
- } |
- return OK; |
-} |
- |
-URLFetcherFileWriter* URLFetcherFileWriter::AsFileWriter() { |
- return this; |
-} |
- |
-void URLFetcherFileWriter::DisownFile() { |
- // Disowning is done by the delegate's OnURLFetchComplete method. |
- // The file should be closed by the time that method is called. |
- DCHECK(!file_stream_); |
- |
- owns_file_ = false; |
-} |
- |
-void URLFetcherFileWriter::DidWrite(const CompletionCallback& callback, |
- int result) { |
- if (result < 0) |
- CloseAndDeleteFile(); |
- |
- callback.Run(result); |
-} |
- |
-void URLFetcherFileWriter::CloseAndDeleteFile() { |
- if (!owns_file_) |
- return; |
- |
- file_stream_.reset(); |
- DisownFile(); |
- file_task_runner_->PostTask(FROM_HERE, |
- base::Bind(base::IgnoreResult(&base::DeleteFile), |
- file_path_, |
- false /* recursive */)); |
-} |
- |
-void URLFetcherFileWriter::DidCreateTempFile(const CompletionCallback& callback, |
- base::FilePath* temp_file_path, |
- bool success) { |
- if (!success) { |
- callback.Run(ERR_FILE_NOT_FOUND); |
- return; |
- } |
- file_path_ = *temp_file_path; |
- owns_file_ = true; |
- const int result = file_stream_->Open( |
- file_path_, |
- base::File::FLAG_WRITE | base::File::FLAG_ASYNC | |
- base::File::FLAG_OPEN, |
- base::Bind(&URLFetcherFileWriter::DidOpenFile, |
- weak_factory_.GetWeakPtr(), |
- callback)); |
- if (result != ERR_IO_PENDING) |
- DidOpenFile(callback, result); |
-} |
- |
-void URLFetcherFileWriter::DidOpenFile(const CompletionCallback& callback, |
- int result) { |
- // TODO(vadimt): Remove ScopedTracker below once crbug.com/423948 is fixed. |
- tracked_objects::ScopedTracker tracking_profile( |
- FROM_HERE_WITH_EXPLICIT_FUNCTION( |
- "423948 URLFetcherFileWriter::DidOpenFile")); |
- |
- if (result == OK) |
- owns_file_ = true; |
- else |
- CloseAndDeleteFile(); |
- |
- callback.Run(result); |
-} |
- |
-void URLFetcherFileWriter::CloseComplete(const CompletionCallback& callback, |
- int result) { |
- // Destroy |file_stream_| whether or not the close succeeded. |
- file_stream_.reset(); |
- callback.Run(result); |
-} |
- |
-} // namespace net |