summaryrefslogtreecommitdiff
path: root/chromium/webkit/browser/fileapi/local_file_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/webkit/browser/fileapi/local_file_util.cc')
-rw-r--r--chromium/webkit/browser/fileapi/local_file_util.cc22
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;
}