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

Unified Diff: net/url_request/url_request_file_dir_job.cc

Issue 1459333002: Revert "Reland: URLRequestJob: change ReadRawData contract" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 | « net/url_request/url_request_file_dir_job.h ('k') | net/url_request/url_request_file_job.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/url_request/url_request_file_dir_job.cc
diff --git a/net/url_request/url_request_file_dir_job.cc b/net/url_request/url_request_file_dir_job.cc
index 1dafbf2cb8204b35ea9267d08db1c1c1c84baf35..114672ea747f60dca116dff1bee210fb857b4548 100644
--- a/net/url_request/url_request_file_dir_job.cc
+++ b/net/url_request/url_request_file_dir_job.cc
@@ -13,6 +13,7 @@
#include "base/thread_task_runner_handle.h"
#include "base/time/time.h"
#include "net/base/io_buffer.h"
+#include "net/base/net_errors.h"
#include "net/base/net_util.h"
#include "net/url_request/url_request_status.h"
#include "url/gurl.h"
@@ -65,19 +66,24 @@ void URLRequestFileDirJob::Kill() {
weak_factory_.InvalidateWeakPtrs();
}
-int URLRequestFileDirJob::ReadRawData(IOBuffer* buf, int buf_size) {
+bool URLRequestFileDirJob::ReadRawData(IOBuffer* buf,
+ int buf_size,
+ int* bytes_read) {
+ DCHECK(bytes_read);
+ *bytes_read = 0;
+
if (is_done())
- return 0;
+ return true;
- int bytes_read = 0;
- if (FillReadBuffer(buf->data(), buf_size, &bytes_read))
- return bytes_read;
+ if (FillReadBuffer(buf->data(), buf_size, bytes_read))
+ return true;
// We are waiting for more data
read_pending_ = true;
read_buffer_ = buf;
read_buffer_length_ = buf_size;
- return ERR_IO_PENDING;
+ SetStatus(URLRequestStatus(URLRequestStatus::IO_PENDING, 0));
+ return false;
}
bool URLRequestFileDirJob::GetMimeType(std::string* mime_type) const {
@@ -126,45 +132,40 @@ void URLRequestFileDirJob::OnListFile(
data.info.GetLastModifiedTime()));
// TODO(darin): coalesce more?
- CompleteRead(OK);
+ CompleteRead();
}
void URLRequestFileDirJob::OnListDone(int error) {
DCHECK(!canceled_);
- DCHECK_LE(error, OK);
- if (error == OK)
+ if (error != OK) {
+ read_pending_ = false;
+ NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, error));
+ } else {
list_complete_ = true;
- CompleteRead(static_cast<Error>(error));
+ CompleteRead();
+ }
}
URLRequestFileDirJob::~URLRequestFileDirJob() {}
-void URLRequestFileDirJob::CompleteRead(Error status) {
- DCHECK_LE(status, OK);
- DCHECK_NE(status, ERR_IO_PENDING);
-
- // Do nothing if there is no read pending.
- if (!read_pending_)
- return;
-
- int result = status;
- if (status == OK) {
- int filled_bytes = 0;
+void URLRequestFileDirJob::CompleteRead() {
+ if (read_pending_) {
+ int bytes_read;
if (FillReadBuffer(read_buffer_->data(), read_buffer_length_,
- &filled_bytes)) {
- result = filled_bytes;
+ &bytes_read)) {
// We completed the read, so reset the read buffer.
+ read_pending_ = false;
read_buffer_ = NULL;
read_buffer_length_ = 0;
+
+ SetStatus(URLRequestStatus());
+ NotifyReadComplete(bytes_read);
} else {
NOTREACHED();
// TODO: Better error code.
- result = ERR_FAILED;
+ NotifyDone(URLRequestStatus::FromError(ERR_FAILED));
}
}
-
- read_pending_ = false;
- ReadRawDataComplete(result);
}
bool URLRequestFileDirJob::FillReadBuffer(char* buf, int buf_size,
« no previous file with comments | « net/url_request/url_request_file_dir_job.h ('k') | net/url_request/url_request_file_job.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698