diff options
Diffstat (limited to 'chromium/webkit/browser/fileapi/local_file_util.cc')
-rw-r--r-- | chromium/webkit/browser/fileapi/local_file_util.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/chromium/webkit/browser/fileapi/local_file_util.cc b/chromium/webkit/browser/fileapi/local_file_util.cc index f13af8d207f..d2d653ac78c 100644 --- a/chromium/webkit/browser/fileapi/local_file_util.cc +++ b/chromium/webkit/browser/fileapi/local_file_util.cc @@ -8,6 +8,7 @@ #include "base/files/file_enumerator.h" #include "base/files/file_util_proxy.h" #include "url/gurl.h" +#include "webkit/browser/fileapi/async_file_util_adapter.h" #include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_url.h" @@ -17,6 +18,10 @@ namespace fileapi { +AsyncFileUtil* AsyncFileUtil::CreateForLocalFileSystem() { + return new AsyncFileUtilAdapter(new LocalFileUtil()); +} + using base::PlatformFileError; class LocalFileEnumerator : public FileSystemFileUtil::AbstractFileEnumerator { @@ -69,11 +74,9 @@ bool LocalFileEnumerator::IsDirectory() { return file_util_info_.IsDirectory(); } -LocalFileUtil::LocalFileUtil() { -} +LocalFileUtil::LocalFileUtil() {} -LocalFileUtil::~LocalFileUtil() { -} +LocalFileUtil::~LocalFileUtil() {} PlatformFileError LocalFileUtil::CreateOrOpen( FileSystemOperationContext* context, @@ -157,10 +160,13 @@ PlatformFileError LocalFileUtil::GetLocalFilePath( FileSystemOperationContext* context, const FileSystemURL& url, base::FilePath* local_file_path) { - base::FilePath root = context->root_path(); - if (root.empty()) - return base::PLATFORM_FILE_ERROR_NOT_FOUND; - *local_file_path = root.Append(url.path()); + DCHECK(local_file_path); + DCHECK(url.is_valid()); + if (url.path().empty()) { + // Root direcory case, which should not be accessed. + return base::PLATFORM_FILE_ERROR_ACCESS_DENIED; + } + *local_file_path = url.path(); return base::PLATFORM_FILE_OK; } |