Index: Source/modules/filesystem/FileSystemCallbacks.cpp |
diff --git a/Source/modules/filesystem/FileSystemCallbacks.cpp b/Source/modules/filesystem/FileSystemCallbacks.cpp |
index c2891784f1a0dc3e4e07967daea7bfc41505e657..a6dfafa4a121b807ae7658180324851a8d4d7f55 100644 |
--- a/Source/modules/filesystem/FileSystemCallbacks.cpp |
+++ b/Source/modules/filesystem/FileSystemCallbacks.cpp |
@@ -216,6 +216,24 @@ void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& root |
root->getDirectory(m_filePath, Dictionary(), m_successCallback, ErrorCallbackWrapper::create(m_successCallback, m_errorCallback, root, m_filePath)); |
} |
+void ResolveURICallbacks::didResolveURL(const String& name, const KURL& rootURL, const String& filePath, bool isDirectory, PassOwnPtr<AsyncFileSystem> asyncFileSystem) |
+{ |
+ ASSERT(asyncFileSystem); |
+ |
+ RefPtr<DOMFileSystem> filesystem = DOMFileSystem::create(m_scriptExecutionContext.get(), name, m_type, rootURL, asyncFileSystem); |
+ RefPtr<DirectoryEntry> root = filesystem->root(); |
+ |
+ String absolutePath; |
+ if (!DOMFileSystemBase::pathToAbsolutePath(m_type, root.get(), filePath, absolutePath)) |
+ filesystem->scheduleCallback(m_errorCallback.release(), FileError::create(FileError::INVALID_MODIFICATION_ERR)); |
+ |
+ if (isDirectory) |
+ m_successCallback->handleEvent(DirectoryEntry::create(filesystem, absolutePath).get()); |
+ else |
+ m_successCallback->handleEvent(FileEntry::create(filesystem, absolutePath).get()); |
+ m_successCallback.clear(); |
+} |
+ |
// MetadataCallbacks ---------------------------------------------------------- |
PassOwnPtr<MetadataCallbacks> MetadataCallbacks::create(PassRefPtr<MetadataCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback) |