| Index: Source/modules/filesystem/FileSystemCallbacks.cpp
|
| diff --git a/Source/modules/filesystem/FileSystemCallbacks.cpp b/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| index c2891784f1a0dc3e4e07967daea7bfc41505e657..01e4536b9427b7648e3064073a6e22002cfc6541 100644
|
| --- a/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| +++ b/Source/modules/filesystem/FileSystemCallbacks.cpp
|
| @@ -34,7 +34,6 @@
|
| #include "core/dom/ScriptExecutionContext.h"
|
| #include "core/fileapi/FileError.h"
|
| #include "core/html/VoidCallback.h"
|
| -#include "core/platform/AsyncFileSystem.h"
|
| #include "core/platform/FileMetadata.h"
|
| #include "modules/filesystem/DOMFilePath.h"
|
| #include "modules/filesystem/DOMFileSystemBase.h"
|
| @@ -54,14 +53,18 @@
|
|
|
| namespace WebCore {
|
|
|
| -FileSystemCallbacksBase::FileSystemCallbacksBase(PassRefPtr<ErrorCallback> errorCallback)
|
| +FileSystemCallbacksBase::FileSystemCallbacksBase(PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem)
|
| : m_errorCallback(errorCallback)
|
| - , m_blockUntilCompletion(false)
|
| + , m_fileSystem(fileSystem)
|
| {
|
| + if (m_fileSystem)
|
| + m_fileSystem->addPendingCallbacks();
|
| }
|
|
|
| FileSystemCallbacksBase::~FileSystemCallbacksBase()
|
| {
|
| + if (m_fileSystem)
|
| + m_fileSystem->removePendingCallbacks();
|
| }
|
|
|
| void FileSystemCallbacksBase::didFail(int code)
|
| @@ -74,15 +77,14 @@ void FileSystemCallbacksBase::didFail(int code)
|
|
|
| // EntryCallbacks -------------------------------------------------------------
|
|
|
| -PassOwnPtr<EntryCallbacks> EntryCallbacks::create(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBase> fileSystem, const String& expectedPath, bool isDirectory)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> EntryCallbacks::create(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBase> fileSystem, const String& expectedPath, bool isDirectory)
|
| {
|
| - return adoptPtr(new EntryCallbacks(successCallback, errorCallback, fileSystem, expectedPath, isDirectory));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new EntryCallbacks(successCallback, errorCallback, fileSystem, expectedPath, isDirectory)));
|
| }
|
|
|
| EntryCallbacks::EntryCallbacks(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBase> fileSystem, const String& expectedPath, bool isDirectory)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| + : FileSystemCallbacksBase(errorCallback, fileSystem.get())
|
| , m_successCallback(successCallback)
|
| - , m_fileSystem(fileSystem)
|
| , m_expectedPath(expectedPath)
|
| , m_isDirectory(isDirectory)
|
| {
|
| @@ -101,13 +103,13 @@ void EntryCallbacks::didSucceed()
|
|
|
| // EntriesCallbacks -----------------------------------------------------------
|
|
|
| -PassOwnPtr<EntriesCallbacks> EntriesCallbacks::create(PassRefPtr<EntriesCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryReaderBase> directoryReader, const String& basePath)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> EntriesCallbacks::create(PassRefPtr<EntriesCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryReaderBase> directoryReader, const String& basePath)
|
| {
|
| - return adoptPtr(new EntriesCallbacks(successCallback, errorCallback, directoryReader, basePath));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new EntriesCallbacks(successCallback, errorCallback, directoryReader, basePath)));
|
| }
|
|
|
| EntriesCallbacks::EntriesCallbacks(PassRefPtr<EntriesCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryReaderBase> directoryReader, const String& basePath)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| + : FileSystemCallbacksBase(errorCallback, directoryReader->filesystem())
|
| , m_successCallback(successCallback)
|
| , m_directoryReader(directoryReader)
|
| , m_basePath(basePath)
|
| @@ -132,24 +134,23 @@ void EntriesCallbacks::didReadDirectoryEntries(bool hasMore)
|
|
|
| // FileSystemCallbacks --------------------------------------------------------
|
|
|
| -PassOwnPtr<FileSystemCallbacks> FileSystemCallbacks::create(PassRefPtr<FileSystemCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* scriptExecutionContext, FileSystemType type)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> FileSystemCallbacks::create(PassRefPtr<FileSystemCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* scriptExecutionContext, FileSystemType type)
|
| {
|
| - return adoptPtr(new FileSystemCallbacks(successCallback, errorCallback, scriptExecutionContext, type));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new FileSystemCallbacks(successCallback, errorCallback, scriptExecutionContext, type)));
|
| }
|
|
|
| FileSystemCallbacks::FileSystemCallbacks(PassRefPtr<FileSystemCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context, FileSystemType type)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| + : FileSystemCallbacksBase(errorCallback, 0)
|
| , m_successCallback(successCallback)
|
| , m_scriptExecutionContext(context)
|
| , m_type(type)
|
| {
|
| }
|
|
|
| -void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& rootURL, PassOwnPtr<AsyncFileSystem> asyncFileSystem)
|
| +void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& rootURL)
|
| {
|
| if (m_successCallback) {
|
| - ASSERT(asyncFileSystem);
|
| - RefPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_scriptExecutionContext.get(), name, m_type, rootURL, asyncFileSystem);
|
| + RefPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_scriptExecutionContext.get(), name, m_type, rootURL);
|
| m_successCallback->handleEvent(fileSystem.get());
|
| m_scriptExecutionContext.clear();
|
| }
|
| @@ -195,13 +196,13 @@ private:
|
|
|
| } // namespace
|
|
|
| -PassOwnPtr<ResolveURICallbacks> 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, FileSystemType type, const String& filePath)
|
| {
|
| - return adoptPtr(new ResolveURICallbacks(successCallback, errorCallback, scriptExecutionContext, type, filePath));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new ResolveURICallbacks(successCallback, errorCallback, scriptExecutionContext, type, filePath)));
|
| }
|
|
|
| ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context, FileSystemType type, const String& filePath)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| + : FileSystemCallbacksBase(errorCallback, 0)
|
| , m_successCallback(successCallback)
|
| , m_scriptExecutionContext(context)
|
| , m_type(type)
|
| @@ -209,22 +210,21 @@ ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallba
|
| {
|
| }
|
|
|
| -void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& rootURL, PassOwnPtr<AsyncFileSystem> asyncFileSystem)
|
| +void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& rootURL)
|
| {
|
| - ASSERT(asyncFileSystem);
|
| - RefPtr<DirectoryEntry> root = DOMFileSystem::create(m_scriptExecutionContext.get(), name, m_type, rootURL, asyncFileSystem)->root();
|
| + 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));
|
| }
|
|
|
| // MetadataCallbacks ----------------------------------------------------------
|
|
|
| -PassOwnPtr<MetadataCallbacks> MetadataCallbacks::create(PassRefPtr<MetadataCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> MetadataCallbacks::create(PassRefPtr<MetadataCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem)
|
| {
|
| - return adoptPtr(new MetadataCallbacks(successCallback, errorCallback));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new MetadataCallbacks(successCallback, errorCallback, fileSystem)));
|
| }
|
|
|
| -MetadataCallbacks::MetadataCallbacks(PassRefPtr<MetadataCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| +MetadataCallbacks::MetadataCallbacks(PassRefPtr<MetadataCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem)
|
| + : FileSystemCallbacksBase(errorCallback, fileSystem)
|
| , m_successCallback(successCallback)
|
| {
|
| }
|
| @@ -238,13 +238,13 @@ void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata)
|
|
|
| // FileWriterBaseCallbacks ----------------------------------------------------------
|
|
|
| -PassOwnPtr<FileWriterBaseCallbacks> FileWriterBaseCallbacks::create(PassRefPtr<FileWriterBase> fileWriter, PassRefPtr<FileWriterBaseCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(PassRefPtr<FileWriterBase> fileWriter, PassRefPtr<FileWriterBaseCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| {
|
| - return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, errorCallback));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new FileWriterBaseCallbacks(fileWriter, successCallback, errorCallback)));
|
| }
|
|
|
| FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtr<FileWriterBase> fileWriter, PassRefPtr<FileWriterBaseCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| + : FileSystemCallbacksBase(errorCallback, 0)
|
| , m_fileWriter(fileWriter)
|
| , m_successCallback(successCallback)
|
| {
|
| @@ -260,13 +260,13 @@ void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<WebKit::WebFileWrit
|
|
|
| // VoidCallbacks --------------------------------------------------------------
|
|
|
| -PassOwnPtr<VoidCallbacks> VoidCallbacks::create(PassRefPtr<VoidCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| +PassOwnPtr<AsyncFileSystemCallbacks> VoidCallbacks::create(PassRefPtr<VoidCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem)
|
| {
|
| - return adoptPtr(new VoidCallbacks(successCallback, errorCallback));
|
| + return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new VoidCallbacks(successCallback, errorCallback, fileSystem)));
|
| }
|
|
|
| -VoidCallbacks::VoidCallbacks(PassRefPtr<VoidCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback)
|
| - : FileSystemCallbacksBase(errorCallback)
|
| +VoidCallbacks::VoidCallbacks(PassRefPtr<VoidCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem)
|
| + : FileSystemCallbacksBase(errorCallback, fileSystem)
|
| , m_successCallback(successCallback)
|
| {
|
| }
|
|
|