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

Unified Diff: content/common/net/url_fetcher_impl.cc

Issue 9580003: Rename URLFetcherImpl::Core::TempFileWriter to FileWriter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Additional format fix Created 8 years, 10 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 | « content/common/net/url_fetcher_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/net/url_fetcher_impl.cc
diff --git a/content/common/net/url_fetcher_impl.cc b/content/common/net/url_fetcher_impl.cc
index 24a6a3bc95ff4c2241e86afc7edb2404fc7ff5d7..be442898bdd0e5ee55900bcb1948c63207ad150f 100644
--- a/content/common/net/url_fetcher_impl.cc
+++ b/content/common/net/url_fetcher_impl.cc
@@ -99,19 +99,17 @@ class URLFetcherImpl::Core
DISALLOW_COPY_AND_ASSIGN(Registry);
};
- // Class TempFileWriter encapsulates all state involved in writing
- // response bytes to a temporary file. It is only used if
- // |Core::response_destination_| == TEMP_FILE. Each instance of
- // TempFileWriter is owned by a URLFetcher::Core, which manages
+ // Class FileWriter encapsulates all state involved in writing response bytes
+ // to a file. It is only used if |Core::response_destination_| == FILE.
+ // Each instance of FileWriter is owned by a URLFetcher::Core, which manages
// its lifetime and never transfers ownership. While writing to
// a file, all function calls happen on the IO thread.
- class TempFileWriter {
+ class FileWriter {
public:
- TempFileWriter(
- URLFetcherImpl::Core* core,
- scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy);
+ FileWriter(URLFetcherImpl::Core* core,
+ scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy);
- ~TempFileWriter();
+ ~FileWriter();
void CreateTempFile();
willchan no longer on Chromium 2012/03/02 19:48:22 Rename these too?
hashimoto 2012/03/03 02:56:37 CreateTempFile is not renamed because it is a meth
void DidCreateTempFile(base::PlatformFileError error_code,
base::PassPlatformFile file_handle,
@@ -122,26 +120,25 @@ class URLFetcherImpl::Core
// Called when a write has been done. Continues writing if there are
// any more bytes to write. Otherwise, initiates a read in core_.
- void ContinueWrite(base::PlatformFileError error_code,
- int bytes_written);
+ void ContinueWrite(base::PlatformFileError error_code, int bytes_written);
- // Drop ownership of the file at path |temp_file_|. This class
- // will not delete it or write to it again.
- void DisownTempFile();
+ // Drop ownership of the file at |file_path_|.
+ // This class will not delete it or write to it again.
+ void DisownFile();
- // Close the temp file if it is open.
- void CloseTempFileAndCompleteRequest();
+ // Close the file if it is open.
+ void CloseFileAndCompleteRequest();
- // Remove the temp file if we we created one.
- void RemoveTempFile();
+ // Remove the file if we have created one.
+ void RemoveFile();
- const FilePath& temp_file() const { return temp_file_; }
+ const FilePath& file_path() const { return file_path_; }
int64 total_bytes_written() { return total_bytes_written_; }
base::PlatformFileError error_code() const { return error_code_; }
private:
- // Callback which gets the result of closing the temp file.
- void DidCloseTempFile(base::PlatformFileError error);
+ // Callback which gets the result of closing the file.
+ void DidCloseFile(base::PlatformFileError error);
// The URLFetcherImpl::Core which instantiated this class.
URLFetcherImpl::Core* core_;
@@ -151,17 +148,16 @@ class URLFetcherImpl::Core
base::PlatformFileError error_code_;
// Callbacks are created for use with base::FileUtilProxy.
- base::WeakPtrFactory<URLFetcherImpl::Core::TempFileWriter> weak_factory_;
+ base::WeakPtrFactory<URLFetcherImpl::Core::FileWriter> weak_factory_;
// Message loop on which file operations should happen.
scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy_;
- // Path to the temporary file. This path is empty when there
- // is no temp file.
- FilePath temp_file_;
+ // Path to the file. This path is empty when there is no file.
+ FilePath file_path_;
- // Handle to the temp file.
- base::PlatformFile temp_file_handle_;
+ // Handle to the file.
+ base::PlatformFile file_handle_;
// We always append to the file. Track the total number of bytes
// written, so that writes know the offset to give.
@@ -215,8 +211,8 @@ class URLFetcherImpl::Core
// Read response bytes from the request.
void ReadResponse();
- // Drop ownership of any temp file managed by |temp_file_|.
- void DisownTempFile();
+ // Drop ownership of any file managed by |file_path_|.
+ void DisownFile();
// Notify Delegate about the progress of downloading.
void InformDelegateDownloadProgress();
@@ -279,9 +275,9 @@ class URLFetcherImpl::Core
// True if the URLFetcher has been cancelled.
bool was_cancelled_;
- // If writing results to a file, |temp_file_writer_| will manage creation,
+ // If writing results to a file, |file_writer_| will manage creation,
// writing, and destruction of that file.
- scoped_ptr<TempFileWriter> temp_file_writer_;
+ scoped_ptr<FileWriter> file_writer_;
// Where should responses be saved?
ResponseDestinationType response_destination_;
@@ -329,31 +325,31 @@ void URLFetcherImpl::Core::Registry::CancelAll() {
base::LazyInstance<URLFetcherImpl::Core::Registry>
URLFetcherImpl::Core::g_registry = LAZY_INSTANCE_INITIALIZER;
-URLFetcherImpl::Core::TempFileWriter::TempFileWriter(
+URLFetcherImpl::Core::FileWriter::FileWriter(
URLFetcherImpl::Core* core,
scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy)
: core_(core),
error_code_(base::PLATFORM_FILE_OK),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
file_message_loop_proxy_(file_message_loop_proxy),
- temp_file_handle_(base::kInvalidPlatformFileValue) {
+ file_handle_(base::kInvalidPlatformFileValue) {
}
-URLFetcherImpl::Core::TempFileWriter::~TempFileWriter() {
- RemoveTempFile();
+URLFetcherImpl::Core::FileWriter::~FileWriter() {
+ RemoveFile();
}
-void URLFetcherImpl::Core::TempFileWriter::CreateTempFile() {
+void URLFetcherImpl::Core::FileWriter::CreateTempFile() {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
DCHECK(file_message_loop_proxy_.get());
base::FileUtilProxy::CreateTemporary(
file_message_loop_proxy_,
0, // No additional file flags.
- base::Bind(&URLFetcherImpl::Core::TempFileWriter::DidCreateTempFile,
+ base::Bind(&URLFetcherImpl::Core::FileWriter::DidCreateTempFile,
weak_factory_.GetWeakPtr()));
}
-void URLFetcherImpl::Core::TempFileWriter::DidCreateTempFile(
+void URLFetcherImpl::Core::FileWriter::DidCreateTempFile(
base::PlatformFileError error_code,
base::PassPlatformFile file_handle,
const FilePath& file_path) {
@@ -361,24 +357,24 @@ void URLFetcherImpl::Core::TempFileWriter::DidCreateTempFile(
if (base::PLATFORM_FILE_OK != error_code) {
error_code_ = error_code;
- RemoveTempFile();
+ RemoveFile();
core_->delegate_loop_proxy_->PostTask(
FROM_HERE, base::Bind(&Core::InformDelegateFetchIsComplete, core_));
return;
}
- temp_file_ = file_path;
- temp_file_handle_ = file_handle.ReleaseValue();
+ file_path_ = file_path;
+ file_handle_ = file_handle.ReleaseValue();
total_bytes_written_ = 0;
core_->io_message_loop_proxy_->PostTask(
FROM_HERE, base::Bind(&Core::StartURLRequestWhenAppropriate, core_));
}
-void URLFetcherImpl::Core::TempFileWriter::WriteBuffer(int num_bytes) {
+void URLFetcherImpl::Core::FileWriter::WriteBuffer(int num_bytes) {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
- // Start writing to the temp file by setting the initial state
+ // Start writing to the file by setting the initial state
// of |pending_bytes_| and |buffer_offset_| to indicate that the
// entire buffer has not yet been written.
pending_bytes_ = num_bytes;
@@ -386,12 +382,12 @@ void URLFetcherImpl::Core::TempFileWriter::WriteBuffer(int num_bytes) {
ContinueWrite(base::PLATFORM_FILE_OK, 0);
}
-void URLFetcherImpl::Core::TempFileWriter::ContinueWrite(
+void URLFetcherImpl::Core::FileWriter::ContinueWrite(
base::PlatformFileError error_code,
int bytes_written) {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
- if (temp_file_handle_ == base::kInvalidPlatformFileValue) {
+ if (file_handle_ == base::kInvalidPlatformFileValue) {
// While a write was being done on the file thread, a request
// to close or disown the file occured on the IO thread. At
// this point a request to close the file is pending on the
@@ -400,16 +396,15 @@ void URLFetcherImpl::Core::TempFileWriter::ContinueWrite(
}
// Every code path that resets |core_->request_| should reset
- // |core->temp_file_writer_| or cause the temp file writer to
- // disown the temp file. In the former case, this callback can
- // not be called, because the weak pointer to |this| will be NULL.
- // In the latter case, the check of |temp_file_handle_| at the start
- // of this method ensures that we can not reach this point.
+ // |core->file_writer_| or cause the file writer to disown the file. In the
+ // former case, this callback can not be called, because the weak pointer to
+ // |this| will be NULL. In the latter case, the check of |file_handle_| at the
+ // start of this method ensures that we can not reach this point.
CHECK(core_->request_.get());
if (base::PLATFORM_FILE_OK != error_code) {
error_code_ = error_code;
- RemoveTempFile();
+ RemoveFile();
core_->delegate_loop_proxy_->PostTask(
FROM_HERE, base::Bind(&Core::InformDelegateFetchIsComplete, core_));
return;
@@ -421,10 +416,10 @@ void URLFetcherImpl::Core::TempFileWriter::ContinueWrite(
if (pending_bytes_ > 0) {
base::FileUtilProxy::Write(
- file_message_loop_proxy_, temp_file_handle_,
+ file_message_loop_proxy_, file_handle_,
total_bytes_written_, // Append to the end
(core_->buffer_->data() + buffer_offset_), pending_bytes_,
- base::Bind(&URLFetcherImpl::Core::TempFileWriter::ContinueWrite,
+ base::Bind(&URLFetcherImpl::Core::FileWriter::ContinueWrite,
weak_factory_.GetWeakPtr()));
} else {
// Finished writing core_->buffer_ to the file. Read some more.
@@ -432,36 +427,36 @@ void URLFetcherImpl::Core::TempFileWriter::ContinueWrite(
}
}
-void URLFetcherImpl::Core::TempFileWriter::DisownTempFile() {
+void URLFetcherImpl::Core::FileWriter::DisownFile() {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
// Disowning is done by the delegate's OnURLFetchComplete method.
- // The temp file should be closed by the time that method is called.
- DCHECK(temp_file_handle_ == base::kInvalidPlatformFileValue);
+ // The file should be closed by the time that method is called.
+ DCHECK(file_handle_ == base::kInvalidPlatformFileValue);
- // Forget about any temp file by reseting the path.
- temp_file_ = FilePath();
+ // Forget about any file by reseting the path.
+ file_path_.clear();
}
-void URLFetcherImpl::Core::TempFileWriter::CloseTempFileAndCompleteRequest() {
+void URLFetcherImpl::Core::FileWriter::CloseFileAndCompleteRequest() {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
- if (temp_file_handle_ != base::kInvalidPlatformFileValue) {
+ if (file_handle_ != base::kInvalidPlatformFileValue) {
base::FileUtilProxy::Close(
- file_message_loop_proxy_, temp_file_handle_,
- base::Bind(&URLFetcherImpl::Core::TempFileWriter::DidCloseTempFile,
+ file_message_loop_proxy_, file_handle_,
+ base::Bind(&URLFetcherImpl::Core::FileWriter::DidCloseFile,
weak_factory_.GetWeakPtr()));
- temp_file_handle_ = base::kInvalidPlatformFileValue;
+ file_handle_ = base::kInvalidPlatformFileValue;
}
}
-void URLFetcherImpl::Core::TempFileWriter::DidCloseTempFile(
- base::PlatformFileError error_code) {
+void URLFetcherImpl::Core::FileWriter::DidCloseFile(
+ base::PlatformFileError error_code) {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
if (base::PLATFORM_FILE_OK != error_code) {
error_code_ = error_code;
- RemoveTempFile();
+ RemoveFile();
core_->delegate_loop_proxy_->PostTask(
FROM_HERE, base::Bind(&Core::InformDelegateFetchIsComplete, core_));
return;
@@ -471,23 +466,23 @@ void URLFetcherImpl::Core::TempFileWriter::DidCloseTempFile(
core_->RetryOrCompleteUrlFetch();
}
-void URLFetcherImpl::Core::TempFileWriter::RemoveTempFile() {
+void URLFetcherImpl::Core::FileWriter::RemoveFile() {
DCHECK(core_->io_message_loop_proxy_->BelongsToCurrentThread());
- // Close the temp file if it is open.
- if (temp_file_handle_ != base::kInvalidPlatformFileValue) {
+ // Close the file if it is open.
+ if (file_handle_ != base::kInvalidPlatformFileValue) {
base::FileUtilProxy::Close(
- file_message_loop_proxy_, temp_file_handle_,
+ file_message_loop_proxy_, file_handle_,
base::FileUtilProxy::StatusCallback()); // No callback: Ignore errors.
- temp_file_handle_ = base::kInvalidPlatformFileValue;
+ file_handle_ = base::kInvalidPlatformFileValue;
}
- if (!temp_file_.empty()) {
+ if (!file_path_.empty()) {
base::FileUtilProxy::Delete(
- file_message_loop_proxy_, temp_file_,
+ file_message_loop_proxy_, file_path_,
false, // No need to recurse, as the path is to a file.
base::FileUtilProxy::StatusCallback()); // No callback: Ignore errors.
- DisownTempFile();
+ DisownFile();
}
}
@@ -588,16 +583,16 @@ void URLFetcherImpl::Core::StartOnIOThread() {
StartURLRequestWhenAppropriate();
break;
- case TEMP_FILE:
+ case FILE:
DCHECK(file_message_loop_proxy_.get())
- << "Need to set the file message loop proxy.";
+ << "Need to set the file message loop proxy.";
- temp_file_writer_.reset(
- new TempFileWriter(this, file_message_loop_proxy_));
+ file_writer_.reset(
+ new FileWriter(this, file_message_loop_proxy_));
// If the temp file is successfully created,
// Core::StartURLRequestWhenAppropriate() will be called.
- temp_file_writer_->CreateTempFile();
+ file_writer_->CreateTempFile();
break;
default:
@@ -606,9 +601,9 @@ void URLFetcherImpl::Core::StartOnIOThread() {
}
void URLFetcherImpl::Core::Stop() {
- if (delegate_loop_proxy_) { // May be NULL in tests.
+ if (delegate_loop_proxy_) // May be NULL in tests.
DCHECK(delegate_loop_proxy_->BelongsToCurrentThread());
- }
+
delegate_ = NULL;
fetcher_ = NULL;
if (io_message_loop_proxy_.get()) {
@@ -654,7 +649,7 @@ void URLFetcherImpl::Core::CompleteAddingUploadDataChunk(
}
void URLFetcherImpl::Core::AppendChunkToUpload(const std::string& content,
- bool is_last_chunk) {
+ bool is_last_chunk) {
DCHECK(delegate_loop_proxy_);
DCHECK(io_message_loop_proxy_.get());
io_message_loop_proxy_->PostTask(
@@ -674,8 +669,8 @@ bool URLFetcherImpl::Core::WriteBuffer(int num_bytes) {
write_complete = true;
break;
- case TEMP_FILE:
- temp_file_writer_->WriteBuffer(num_bytes);
+ case FILE:
+ file_writer_->WriteBuffer(num_bytes);
// WriteBuffer() sends a request the file thread.
// The write is not done yet.
write_complete = false;
@@ -688,7 +683,7 @@ bool URLFetcherImpl::Core::WriteBuffer(int num_bytes) {
}
void URLFetcherImpl::Core::OnReadCompleted(net::URLRequest* request,
- int bytes_read) {
+ int bytes_read) {
DCHECK(request == request_);
DCHECK(io_message_loop_proxy_->BelongsToCurrentThread());
@@ -723,11 +718,11 @@ void URLFetcherImpl::Core::OnReadCompleted(net::URLRequest* request,
status_ = status;
ReleaseRequest();
- // If a temp file is open, close it.
- if (temp_file_writer_.get()) {
+ // If a file is open, close it.
+ if (file_writer_.get()) {
// If the file is open, close it. After closing the file,
// RetryOrCompleteUrlFetch() will be called.
- temp_file_writer_->CloseTempFileAndCompleteRequest();
+ file_writer_->CloseFileAndCompleteRequest();
} else {
// Otherwise, complete or retry the URL request directly.
RetryOrCompleteUrlFetch();
@@ -754,8 +749,7 @@ void URLFetcherImpl::Core::RetryOrCompleteUrlFetch() {
if (backoff_delay < base::TimeDelta())
backoff_delay = base::TimeDelta();
- if (automatically_retry_on_5xx_ &&
- num_retries_ <= max_retries_) {
+ if (automatically_retry_on_5xx_ && num_retries_ <= max_retries_) {
StartOnIOThread();
return;
}
@@ -782,8 +776,8 @@ void URLFetcherImpl::Core::ReadResponse() {
OnReadCompleted(request_.get(), bytes_read);
}
-void URLFetcherImpl::Core::DisownTempFile() {
- temp_file_writer_->DisownTempFile();
+void URLFetcherImpl::Core::DisownFile() {
+ file_writer_->DisownFile();
}
void URLFetcherImpl::Core::StartURLRequest() {
@@ -802,9 +796,9 @@ void URLFetcherImpl::Core::StartURLRequest() {
current_response_bytes_ = 0;
request_.reset(new net::URLRequest(original_url_, this));
int flags = request_->load_flags() | load_flags_;
- if (!g_interception_enabled) {
+ if (!g_interception_enabled)
flags = flags | net::LOAD_DISABLE_INTERCEPT;
- }
+
if (is_chunked_upload_)
request_->EnableChunkedUpload();
request_->set_load_flags(flags);
@@ -849,8 +843,7 @@ void URLFetcherImpl::Core::StartURLRequest() {
// If we are writing the response to a file, the only caller
// of this function should have created it and not written yet.
- DCHECK(!temp_file_writer_.get() ||
- temp_file_writer_->total_bytes_written() == 0);
+ DCHECK(!file_writer_.get() || file_writer_->total_bytes_written() == 0);
request_->Start();
}
@@ -891,7 +884,7 @@ void URLFetcherImpl::Core::CancelURLRequest() {
// context.
request_context_getter_ = NULL;
was_cancelled_ = true;
- temp_file_writer_.reset();
+ file_writer_.reset();
}
void URLFetcherImpl::Core::OnCompletedURLRequest(
@@ -922,9 +915,8 @@ void URLFetcherImpl::Core::InformDelegateDownloadProgressInDelegateThread(
void URLFetcherImpl::Core::InformDelegateFetchIsComplete() {
DCHECK(delegate_loop_proxy_->BelongsToCurrentThread());
- if (delegate_) {
+ if (delegate_)
delegate_->OnURLFetchComplete(fetcher_);
- }
}
void URLFetcherImpl::Core::NotifyMalformedContent() {
@@ -1043,7 +1035,7 @@ base::TimeDelta URLFetcherImpl::GetBackoffDelay() const {
void URLFetcherImpl::SaveResponseToTemporaryFile(
scoped_refptr<base::MessageLoopProxy> file_message_loop_proxy) {
core_->file_message_loop_proxy_ = file_message_loop_proxy;
- core_->response_destination_ = TEMP_FILE;
+ core_->response_destination_ = FILE;
}
net::HttpResponseHeaders* URLFetcherImpl::GetResponseHeaders() const {
@@ -1104,11 +1096,10 @@ bool URLFetcherImpl::FileErrorOccurred(
base::PlatformFileError* out_error_code) const {
// Can't have a file error if no file is being created or written to.
- if (!core_->temp_file_writer_.get()) {
+ if (!core_->file_writer_.get())
return false;
- }
- base::PlatformFileError error_code = core_->temp_file_writer_->error_code();
+ base::PlatformFileError error_code = core_->file_writer_->error_code();
if (error_code == base::PLATFORM_FILE_OK)
return false;
@@ -1135,15 +1126,14 @@ bool URLFetcherImpl::GetResponseAsString(
bool URLFetcherImpl::GetResponseAsFilePath(bool take_ownership,
FilePath* out_response_path) const {
DCHECK(core_->delegate_loop_proxy_->BelongsToCurrentThread());
- if (core_->response_destination_ != TEMP_FILE ||
- !core_->temp_file_writer_.get())
+ if (core_->response_destination_ != FILE || !core_->file_writer_.get())
return false;
- *out_response_path = core_->temp_file_writer_->temp_file();
+ *out_response_path = core_->file_writer_->file_path();
if (take_ownership) {
core_->io_message_loop_proxy_->PostTask(
- FROM_HERE, base::Bind(&Core::DisownTempFile, core_.get()));
+ FROM_HERE, base::Bind(&Core::DisownFile, core_.get()));
}
return true;
}
« no previous file with comments | « content/common/net/url_fetcher_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698