Index: webkit/fileapi/file_system_dir_url_request_job.cc |
diff --git a/webkit/fileapi/file_system_dir_url_request_job.cc b/webkit/fileapi/file_system_dir_url_request_job.cc |
index b0c9d8f649e811b6aea50ca661d34ca5ce0a4c33..1be93947aadbe6f17fb0472a3f2aec1221410db1 100644 |
--- a/webkit/fileapi/file_system_dir_url_request_job.cc |
+++ b/webkit/fileapi/file_system_dir_url_request_job.cc |
@@ -80,10 +80,11 @@ void FileSystemDirURLRequestJob::StartAsync() { |
if (!request_) |
return; |
url_ = FileSystemURL(request_->url()); |
- FileSystemOperation* operation = GetNewOperation(); |
- if (!operation) { |
+ base::PlatformFileError error_code; |
+ FileSystemOperation* operation = GetNewOperation(&error_code); |
+ if (error_code != base::PLATFORM_FILE_OK) { |
NotifyDone(URLRequestStatus(URLRequestStatus::FAILED, |
- net::ERR_INVALID_URL)); |
+ net::PlatformFileErrorToNetError(error_code))); |
return; |
} |
operation->ReadDirectory( |
@@ -124,7 +125,16 @@ void FileSystemDirURLRequestJob::DidReadDirectory( |
} |
if (has_more) { |
- GetNewOperation()->ReadDirectory( |
+ base::PlatformFileError error_code; |
+ FileSystemOperation* operation = GetNewOperation(&error_code); |
+ if (error_code != base::PLATFORM_FILE_OK) { |
+ NotifyDone(URLRequestStatus( |
+ URLRequestStatus::FAILED, |
+ net::PlatformFileErrorToNetError(error_code))); |
+ return; |
+ } |
+ |
+ operation->ReadDirectory( |
url_, |
base::Bind(&FileSystemDirURLRequestJob::DidReadDirectory, this)); |
} else { |
@@ -133,8 +143,9 @@ void FileSystemDirURLRequestJob::DidReadDirectory( |
} |
} |
-FileSystemOperation* FileSystemDirURLRequestJob::GetNewOperation() { |
- return file_system_context_->CreateFileSystemOperation(url_); |
+FileSystemOperation* FileSystemDirURLRequestJob::GetNewOperation( |
+ base::PlatformFileError* error_code) { |
+ return file_system_context_->CreateFileSystemOperation(url_, error_code); |
} |
} // namespace fileapi |