summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webfileutilities_impl.cc
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 18:34:31 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-18 18:34:31 +0000
commit9bf103edf104b4e4174a3ba22da9af6816858033 (patch)
tree96292c4e3b173a941cbf386c88780e902059c797 /webkit/glue/webfileutilities_impl.cc
parent252cad6dec04039d456e716273153951d0090b5f (diff)
downloadchromium_src-9bf103edf104b4e4174a3ba22da9af6816858033.zip
chromium_src-9bf103edf104b4e4174a3ba22da9af6816858033.tar.gz
chromium_src-9bf103edf104b4e4174a3ba22da9af6816858033.tar.bz2
Rename WebFileSystem to WebFileUtilities for corresponding WebKit API changes.
This change depends on an upstream change (not yet rolled): http://trac.webkit.org/changeset/65482 BUG=52355 TESTS=existing tests (like ones under fast/files) should pass Review URL: http://codereview.chromium.org/3153015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56564 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webfileutilities_impl.cc')
-rw-r--r--webkit/glue/webfileutilities_impl.cc155
1 files changed, 155 insertions, 0 deletions
diff --git a/webkit/glue/webfileutilities_impl.cc b/webkit/glue/webfileutilities_impl.cc
new file mode 100644
index 0000000..a7ba5b5
--- /dev/null
+++ b/webkit/glue/webfileutilities_impl.cc
@@ -0,0 +1,155 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. Use of this
+// source code is governed by a BSD-style license that can be found in the
+// LICENSE file.
+
+#include "webkit/glue/webfileutilities_impl.h"
+
+#include "base/file_path.h"
+#include "base/file_util.h"
+#include "base/logging.h"
+#include "net/base/file_stream.h"
+#include "net/base/net_util.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebString.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebURL.h"
+#include "webkit/glue/webkit_glue.h"
+
+using WebKit::WebString;
+
+namespace webkit_glue {
+
+WebFileUtilitiesImpl::WebFileUtilitiesImpl()
+ : sandbox_enabled_(true) {
+}
+
+bool WebFileUtilitiesImpl::fileExists(const WebString& path) {
+ FilePath::StringType file_path = WebStringToFilePathString(path);
+ return file_util::PathExists(FilePath(file_path));
+}
+
+bool WebFileUtilitiesImpl::deleteFile(const WebString& path) {
+ NOTREACHED();
+ return false;
+}
+
+bool WebFileUtilitiesImpl::deleteEmptyDirectory(const WebString& path) {
+ NOTREACHED();
+ return false;
+}
+
+bool WebFileUtilitiesImpl::getFileSize(const WebString& path,
+ long long& result) {
+ if (sandbox_enabled_) {
+ NOTREACHED();
+ return false;
+ }
+ return file_util::GetFileSize(WebStringToFilePath(path),
+ reinterpret_cast<int64*>(&result));
+}
+
+bool WebFileUtilitiesImpl::getFileModificationTime(const WebString& path,
+ double& result) {
+ if (sandbox_enabled_) {
+ NOTREACHED();
+ return false;
+ }
+ file_util::FileInfo info;
+ if (!file_util::GetFileInfo(WebStringToFilePath(path), &info))
+ return false;
+ result = info.last_modified.ToDoubleT();
+ return true;
+}
+
+WebString WebFileUtilitiesImpl::directoryName(const WebString& path) {
+ FilePath file_path(WebStringToFilePathString(path));
+ return FilePathToWebString(file_path.DirName());
+}
+
+WebString WebFileUtilitiesImpl::pathByAppendingComponent(
+ const WebString& webkit_path,
+ const WebString& webkit_component) {
+ FilePath path(WebStringToFilePathString(webkit_path));
+ FilePath component(WebStringToFilePathString(webkit_component));
+ FilePath combined_path = path.Append(component);
+ return FilePathStringToWebString(combined_path.value());
+}
+
+bool WebFileUtilitiesImpl::makeAllDirectories(const WebString& path) {
+ DCHECK(!sandbox_enabled_);
+ FilePath::StringType file_path = WebStringToFilePathString(path);
+ return file_util::CreateDirectory(FilePath(file_path));
+}
+
+WebString WebFileUtilitiesImpl::getAbsolutePath(const WebString& path) {
+ FilePath file_path(WebStringToFilePathString(path));
+ file_util::AbsolutePath(&file_path);
+ return FilePathStringToWebString(file_path.value());
+}
+
+bool WebFileUtilitiesImpl::isDirectory(const WebString& path) {
+ FilePath file_path(WebStringToFilePathString(path));
+ return file_util::DirectoryExists(file_path);
+}
+
+WebKit::WebURL WebFileUtilitiesImpl::filePathToURL(const WebString& path) {
+ return net::FilePathToFileURL(WebStringToFilePath(path));
+}
+
+base::PlatformFile WebFileUtilitiesImpl::openFile(const WebString& path,
+ int mode) {
+ if (sandbox_enabled_) {
+ NOTREACHED();
+ return base::kInvalidPlatformFileValue;
+ }
+ return base::CreatePlatformFile(
+ WebStringToFilePath(path),
+ (mode == 0) ? (base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ)
+ : (base::PLATFORM_FILE_CREATE_ALWAYS |
+ base::PLATFORM_FILE_WRITE),
+ NULL);
+}
+
+void WebFileUtilitiesImpl::closeFile(base::PlatformFile& handle) {
+ if (handle == base::kInvalidPlatformFileValue)
+ return;
+ if (base::ClosePlatformFile(handle))
+ handle = base::kInvalidPlatformFileValue;
+}
+
+long long WebFileUtilitiesImpl::seekFile(base::PlatformFile handle,
+ long long offset,
+ int origin) {
+ if (handle == base::kInvalidPlatformFileValue)
+ return -1;
+ net::FileStream file_stream(handle, 0);
+ return file_stream.Seek(static_cast<net::Whence>(origin), offset);
+}
+
+bool WebFileUtilitiesImpl::truncateFile(base::PlatformFile handle,
+ long long offset) {
+ if (handle == base::kInvalidPlatformFileValue || offset < 0)
+ return false;
+ net::FileStream file_stream(handle, base::PLATFORM_FILE_WRITE);
+ return file_stream.Truncate(offset) >= 0;
+}
+
+int WebFileUtilitiesImpl::readFromFile(base::PlatformFile handle,
+ char* data,
+ int length) {
+ if (handle == base::kInvalidPlatformFileValue || !data || length <= 0)
+ return -1;
+ std::string buffer;
+ buffer.resize(length);
+ net::FileStream file_stream(handle, base::PLATFORM_FILE_READ);
+ return file_stream.Read(data, length, NULL);
+}
+
+int WebFileUtilitiesImpl::writeToFile(base::PlatformFile handle,
+ const char* data,
+ int length) {
+ if (handle == base::kInvalidPlatformFileValue || !data || length <= 0)
+ return -1;
+ net::FileStream file_stream(handle, base::PLATFORM_FILE_WRITE);
+ return file_stream.Write(data, length, NULL);
+}
+
+} // namespace webkit_glue