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; |
} |