summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 22:30:53 +0000
committerjianli@chromium.org <jianli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-28 22:30:53 +0000
commitca3f22c070a6b61a3ec40ace07244890bbdd6ebe (patch)
treef2106dbb965ae0493238b25770e4e9503a3fae60
parent5ad11a036d3686318997cbcdd1340275ca8c9709 (diff)
downloadchromium_src-ca3f22c070a6b61a3ec40ace07244890bbdd6ebe.zip
chromium_src-ca3f22c070a6b61a3ec40ace07244890bbdd6ebe.tar.gz
chromium_src-ca3f22c070a6b61a3ec40ace07244890bbdd6ebe.tar.bz2
Chromium side implementations of some FileSystem methods. This is needed to complete the WebKit bug fix https://bugs.webkit.org/show_bug.cgi?id=29109.
BUG=none TEST=none Review URL: http://codereview.chromium.org/209072 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27420 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--DEPS2
-rw-r--r--webkit/api/public/WebKitClient.h3
-rw-r--r--webkit/api/src/ChromiumBridge.cpp15
-rw-r--r--webkit/glue/webkitclient_impl.cc19
-rw-r--r--webkit/glue/webkitclient_impl.h3
5 files changed, 41 insertions, 1 deletions
diff --git a/DEPS b/DEPS
index 143d76f..5f1a1eb 100644
--- a/DEPS
+++ b/DEPS
@@ -1,7 +1,7 @@
vars = {
"webkit_trunk":
"http://svn.webkit.org/repository/webkit/trunk",
- "webkit_revision": "48820",
+ "webkit_revision": "48821",
"ffmpeg_revision": "26428",
}
diff --git a/webkit/api/public/WebKitClient.h b/webkit/api/public/WebKitClient.h
index 722ba97..b95dc1f 100644
--- a/webkit/api/public/WebKitClient.h
+++ b/webkit/api/public/WebKitClient.h
@@ -104,6 +104,9 @@ namespace WebKit {
virtual WebString directoryName(const WebString& path) = 0;
virtual WebString pathByAppendingComponent(const WebString& path, const WebString& component) = 0;
virtual bool makeAllDirectories(const WebString& path) = 0;
+ virtual WebString getAbsolutePath(const WebString& path) = 0;
+ virtual bool isDirectory(const WebString& path) = 0;
+ virtual WebURL filePathToURL(const WebString& path) = 0;
// History -------------------------------------------------------------
diff --git a/webkit/api/src/ChromiumBridge.cpp b/webkit/api/src/ChromiumBridge.cpp
index 6ef8d76..dc0c8c7 100644
--- a/webkit/api/src/ChromiumBridge.cpp
+++ b/webkit/api/src/ChromiumBridge.cpp
@@ -195,6 +195,21 @@ bool ChromiumBridge::makeAllDirectories(const String& path)
return webKitClient()->makeAllDirectories(path);
}
+String ChromiumBridge::getAbsolutePath(const String& path)
+{
+ return webKitClient()->getAbsolutePath(path);
+}
+
+bool ChromiumBridge::isDirectory(const String& path)
+{
+ return webKitClient()->isDirectory(path);
+}
+
+KURL ChromiumBridge::filePathToURL(const String& path)
+{
+ return webKitClient()->filePathToURL(path);
+}
+
// Font -----------------------------------------------------------------------
#if PLATFORM(WIN_OS)
diff --git a/webkit/glue/webkitclient_impl.cc b/webkit/glue/webkitclient_impl.cc
index 4315db7..34c7ba5 100644
--- a/webkit/glue/webkitclient_impl.cc
+++ b/webkit/glue/webkitclient_impl.cc
@@ -20,6 +20,7 @@
#include "base/trace_event.h"
#include "grit/webkit_resources.h"
#include "grit/webkit_strings.h"
+#include "net/base/net_util.h"
#include "webkit/api/public/WebCursorInfo.h"
#include "webkit/api/public/WebData.h"
#include "webkit/api/public/WebFrameClient.h"
@@ -462,4 +463,22 @@ WebCore::WorkerContextProxy* WebKitClientImpl::createWorkerContextProxy(
WebCore::Worker* worker) {
return WebWorkerClientImpl::createWorkerContextProxy(worker);
}
+
+WebKit::WebString WebKitClientImpl::getAbsolutePath(
+ const WebKit::WebString& path) {
+ FilePath file_path(webkit_glue::WebStringToFilePathString(path));
+ file_util::AbsolutePath(&file_path);
+ return webkit_glue::FilePathStringToWebString(file_path.value());
+}
+
+bool WebKitClientImpl::isDirectory(const WebKit::WebString& path) {
+ FilePath file_path(webkit_glue::WebStringToFilePathString(path));
+ return file_util::DirectoryExists(file_path);
+}
+
+WebKit::WebURL WebKitClientImpl::filePathToURL(const WebKit::WebString& path) {
+ FilePath file_path(webkit_glue::WebStringToFilePathString(path));
+ GURL file_url = net::FilePathToFileURL(file_path);
+ return webkit_glue::KURLToWebURL(webkit_glue::GURLToKURL(file_url));
+}
} // namespace webkit_glue
diff --git a/webkit/glue/webkitclient_impl.h b/webkit/glue/webkitclient_impl.h
index 1c4a177..ba25918 100644
--- a/webkit/glue/webkitclient_impl.h
+++ b/webkit/glue/webkitclient_impl.h
@@ -58,6 +58,9 @@ class WebKitClientImpl : public WebKit::WebKitClient {
virtual WebKit::WebString pathByAppendingComponent(
const WebKit::WebString& path, const WebKit::WebString& component);
virtual bool makeAllDirectories(const WebKit::WebString& path);
+ virtual WebKit::WebString getAbsolutePath(const WebKit::WebString& path);
+ virtual bool isDirectory(const WebKit::WebString& path);
+ virtual WebKit::WebURL filePathToURL(const WebKit::WebString& path);
virtual WebKit::WebApplicationCacheHost* createApplicationCacheHost(
WebKit::WebApplicationCacheHostClient*);