summaryrefslogtreecommitdiffstats
path: root/WebCore/fileapi/DirectoryEntry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/fileapi/DirectoryEntry.cpp')
-rw-r--r--WebCore/fileapi/DirectoryEntry.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/WebCore/fileapi/DirectoryEntry.cpp b/WebCore/fileapi/DirectoryEntry.cpp
index 95c12e4..765fcd5 100644
--- a/WebCore/fileapi/DirectoryEntry.cpp
+++ b/WebCore/fileapi/DirectoryEntry.cpp
@@ -36,10 +36,12 @@
#include "DirectoryReader.h"
#include "EntryCallback.h"
#include "ErrorCallback.h"
+#include "FileError.h"
+#include "VoidCallback.h"
namespace WebCore {
-DirectoryEntry::DirectoryEntry(DOMFileSystem* fileSystem, const String& fullPath)
+DirectoryEntry::DirectoryEntry(DOMFileSystemBase* fileSystem, const String& fullPath)
: Entry(fileSystem, fullPath)
{
}
@@ -49,16 +51,27 @@ PassRefPtr<DirectoryReader> DirectoryEntry::createReader()
return DirectoryReader::create(m_fileSystem, m_fullPath);
}
-void DirectoryEntry::getFile(const String& path, PassRefPtr<Flags> flags, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
+void DirectoryEntry::getFile(const String& path, PassRefPtr<Flags> flags, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallbackRef)
{
- m_fileSystem->getFile(this, path, flags, successCallback, errorCallback);
+ RefPtr<ErrorCallback> errorCallback(errorCallbackRef);
+ if (!m_fileSystem->getFile(this, path, flags, successCallback, errorCallback))
+ filesystem()->scheduleCallback(errorCallback.release(), FileError::create(INVALID_MODIFICATION_ERR));
}
-void DirectoryEntry::getDirectory(const String& path, PassRefPtr<Flags> flags, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
+void DirectoryEntry::getDirectory(const String& path, PassRefPtr<Flags> flags, PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallbackRef)
{
- m_fileSystem->getDirectory(this, path, flags, successCallback, errorCallback);
+ RefPtr<ErrorCallback> errorCallback(errorCallbackRef);
+ if (!m_fileSystem->getDirectory(this, path, flags, successCallback, errorCallback))
+ filesystem()->scheduleCallback(errorCallback.release(), FileError::create(INVALID_MODIFICATION_ERR));
}
-} // namespace
+void DirectoryEntry::removeRecursively(PassRefPtr<VoidCallback> successCallback, PassRefPtr<ErrorCallback> errorCallbackRef) const
+{
+ RefPtr<ErrorCallback> errorCallback(errorCallbackRef);
+ if (!m_fileSystem->removeRecursively(this, successCallback, errorCallback))
+ filesystem()->scheduleCallback(errorCallback.release(), FileError::create(INVALID_MODIFICATION_ERR));
+}
+
+}
#endif // ENABLE(FILE_SYSTEM)