| 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 83a5455cd4ad0ae07b7e57b06a419f976cbc8a71..b96d7e462db7cf4a9922b1661b9db5177428cbff 100644
|
| --- a/webkit/fileapi/file_system_dir_url_request_job.cc
|
| +++ b/webkit/fileapi/file_system_dir_url_request_job.cc
|
| @@ -21,6 +21,7 @@
|
| #include "net/base/net_util.h"
|
| #include "net/url_request/url_request.h"
|
| #include "webkit/fileapi/file_system_callback_dispatcher.h"
|
| +#include "webkit/fileapi/file_system_context.h"
|
| #include "webkit/fileapi/file_system_operation.h"
|
| #include "webkit/fileapi/file_system_util.h"
|
|
|
| @@ -139,8 +140,15 @@ bool FileSystemDirURLRequestJob::GetCharset(std::string* charset) {
|
| }
|
|
|
| void FileSystemDirURLRequestJob::StartAsync() {
|
| - if (request_)
|
| - GetNewOperation()->ReadDirectory(request_->url());
|
| + if (!request_)
|
| + return;
|
| + FileSystemOperationInterface* operation = GetNewOperation(request_->url());
|
| + if (!operation) {
|
| + NotifyDone(URLRequestStatus(URLRequestStatus::FAILED,
|
| + net::ERR_INVALID_URL));
|
| + return;
|
| + }
|
| + operation->ReadDirectory(request_->url());
|
| }
|
|
|
| void FileSystemDirURLRequestJob::DidReadDirectory(
|
| @@ -174,17 +182,19 @@ void FileSystemDirURLRequestJob::DidReadDirectory(
|
| }
|
|
|
| if (has_more) {
|
| - GetNewOperation()->ReadDirectory(request_->url());
|
| + GetNewOperation(request_->url())->ReadDirectory(request_->url());
|
| } else {
|
| set_expected_content_size(data_.size());
|
| NotifyHeadersComplete();
|
| }
|
| }
|
|
|
| -FileSystemOperation* FileSystemDirURLRequestJob::GetNewOperation() {
|
| - return new FileSystemOperation(CallbackDispatcher::Create(this),
|
| - file_thread_proxy_,
|
| - file_system_context_);
|
| +FileSystemOperationInterface*
|
| +FileSystemDirURLRequestJob::GetNewOperation(const GURL& url) {
|
| + return file_system_context_->CreateFileSystemOperation(
|
| + url,
|
| + CallbackDispatcher::Create(this),
|
| + file_thread_proxy_);
|
| }
|
|
|
| } // namespace fileapi
|
|
|