| Index: Source/modules/filesystem/FileSystemCallbacks.cpp
|
| diff --git a/Source/modules/filesystem/FileSystemCallbacks.cpp b/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| index 01e4536b9427b7648e3064073a6e22002cfc6541..3df343a03b473ead635007118c19366c93a62465 100644
|
| --- a/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| +++ b/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| @@ -196,24 +196,35 @@ private:
|
|
|
| } // namespace
|
|
|
| -PassOwnPtr<AsyncFileSystemCallbacks> ResolveURICallbacks::create(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* scriptExecutionContext, FileSystemType type, const String& filePath)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> ResolveURICallbacks::create(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* scriptExecutionContext)
|
| {
|
| - return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new ResolveURICallbacks(successCallback, errorCallback, scriptExecutionContext, type, filePath)));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new ResolveURICallbacks(successCallback, errorCallback, scriptExecutionContext)));
|
| }
|
|
|
| -ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context, FileSystemType type, const String& filePath)
|
| +ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context)
|
| : FileSystemCallbacksBase(errorCallback, 0)
|
| , m_successCallback(successCallback)
|
| , m_scriptExecutionContext(context)
|
| - , m_type(type)
|
| - , m_filePath(filePath)
|
| {
|
| }
|
|
|
| -void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& rootURL)
|
| +void ResolveURICallbacks::didResolveURL(const String& name, const KURL& rootURL, FileSystemType type, const String& filePath, bool isDirectory)
|
| {
|
| - RefPtr<DirectoryEntry> root = DOMFileSystem::create(m_scriptExecutionContext.get(), name, m_type, rootURL)->root();
|
| - root->getDirectory(m_filePath, Dictionary(), m_successCallback, ErrorCallbackWrapper::create(m_successCallback, m_errorCallback, root, m_filePath));
|
| + RefPtr<DOMFileSystem> filesystem = DOMFileSystem::create(m_scriptExecutionContext.get(), name, type, rootURL);
|
| + RefPtr<DirectoryEntry> root = filesystem->root();
|
| +
|
| + String absolutePath;
|
| + if (!DOMFileSystemBase::pathToAbsolutePath(type, root.get(), filePath, absolutePath)) {
|
| + m_errorCallback->handleEvent(FileError::create(FileError::INVALID_MODIFICATION_ERR).get());
|
| + m_errorCallback.clear();
|
| + return;
|
| + }
|
| +
|
| + if (isDirectory)
|
| + m_successCallback->handleEvent(DirectoryEntry::create(filesystem, absolutePath).get());
|
| + else
|
| + m_successCallback->handleEvent(FileEntry::create(filesystem, absolutePath).get());
|
| + m_successCallback.clear();
|
| }
|
|
|
| // MetadataCallbacks ----------------------------------------------------------
|
|
|