| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 #include "config.h" | 31 #include "config.h" |
| 32 #include "modules/filesystem/FileSystemCallbacks.h" | 32 #include "modules/filesystem/FileSystemCallbacks.h" |
| 33 | 33 |
| 34 #include "core/dom/ScriptExecutionContext.h" | 34 #include "core/dom/ScriptExecutionContext.h" |
| 35 #include "core/fileapi/FileError.h" | 35 #include "core/fileapi/FileError.h" |
| 36 #include "core/html/VoidCallback.h" | 36 #include "core/html/VoidCallback.h" |
| 37 #include "core/platform/AsyncFileSystem.h" | |
| 38 #include "core/platform/FileMetadata.h" | 37 #include "core/platform/FileMetadata.h" |
| 39 #include "modules/filesystem/DOMFilePath.h" | 38 #include "modules/filesystem/DOMFilePath.h" |
| 40 #include "modules/filesystem/DOMFileSystemBase.h" | 39 #include "modules/filesystem/DOMFileSystemBase.h" |
| 41 #include "modules/filesystem/DirectoryEntry.h" | 40 #include "modules/filesystem/DirectoryEntry.h" |
| 42 #include "modules/filesystem/DirectoryReader.h" | 41 #include "modules/filesystem/DirectoryReader.h" |
| 43 #include "modules/filesystem/EntriesCallback.h" | 42 #include "modules/filesystem/EntriesCallback.h" |
| 44 #include "modules/filesystem/Entry.h" | 43 #include "modules/filesystem/Entry.h" |
| 45 #include "modules/filesystem/EntryCallback.h" | 44 #include "modules/filesystem/EntryCallback.h" |
| 46 #include "modules/filesystem/ErrorCallback.h" | 45 #include "modules/filesystem/ErrorCallback.h" |
| 47 #include "modules/filesystem/FileEntry.h" | 46 #include "modules/filesystem/FileEntry.h" |
| 48 #include "modules/filesystem/FileSystemCallback.h" | 47 #include "modules/filesystem/FileSystemCallback.h" |
| 49 #include "modules/filesystem/FileWriterBase.h" | 48 #include "modules/filesystem/FileWriterBase.h" |
| 50 #include "modules/filesystem/FileWriterBaseCallback.h" | 49 #include "modules/filesystem/FileWriterBaseCallback.h" |
| 51 #include "modules/filesystem/Metadata.h" | 50 #include "modules/filesystem/Metadata.h" |
| 52 #include "modules/filesystem/MetadataCallback.h" | 51 #include "modules/filesystem/MetadataCallback.h" |
| 53 #include "public/platform/WebFileWriter.h" | 52 #include "public/platform/WebFileWriter.h" |
| 54 | 53 |
| 55 namespace WebCore { | 54 namespace WebCore { |
| 56 | 55 |
| 57 FileSystemCallbacksBase::FileSystemCallbacksBase(PassRefPtr<ErrorCallback> error
Callback) | 56 FileSystemCallbacksBase::FileSystemCallbacksBase(PassRefPtr<ErrorCallback> error
Callback, DOMFileSystemBase* fileSystem) |
| 58 : m_errorCallback(errorCallback) | 57 : m_errorCallback(errorCallback) |
| 59 , m_blockUntilCompletion(false) | 58 , m_fileSystem(fileSystem) |
| 60 { | 59 { |
| 60 if (m_fileSystem) |
| 61 m_fileSystem->addPendingCallbacks(); |
| 61 } | 62 } |
| 62 | 63 |
| 63 FileSystemCallbacksBase::~FileSystemCallbacksBase() | 64 FileSystemCallbacksBase::~FileSystemCallbacksBase() |
| 64 { | 65 { |
| 66 if (m_fileSystem) |
| 67 m_fileSystem->removePendingCallbacks(); |
| 65 } | 68 } |
| 66 | 69 |
| 67 void FileSystemCallbacksBase::didFail(int code) | 70 void FileSystemCallbacksBase::didFail(int code) |
| 68 { | 71 { |
| 69 if (m_errorCallback) { | 72 if (m_errorCallback) { |
| 70 m_errorCallback->handleEvent(FileError::create(static_cast<FileError::Er
rorCode>(code)).get()); | 73 m_errorCallback->handleEvent(FileError::create(static_cast<FileError::Er
rorCode>(code)).get()); |
| 71 m_errorCallback.clear(); | 74 m_errorCallback.clear(); |
| 72 } | 75 } |
| 73 } | 76 } |
| 74 | 77 |
| 75 // EntryCallbacks ------------------------------------------------------------- | 78 // EntryCallbacks ------------------------------------------------------------- |
| 76 | 79 |
| 77 PassOwnPtr<EntryCallbacks> EntryCallbacks::create(PassRefPtr<EntryCallback> succ
essCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBa
se> fileSystem, const String& expectedPath, bool isDirectory) | 80 PassOwnPtr<AsyncFileSystemCallbacks> EntryCallbacks::create(PassRefPtr<EntryCall
back> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFi
leSystemBase> fileSystem, const String& expectedPath, bool isDirectory) |
| 78 { | 81 { |
| 79 return adoptPtr(new EntryCallbacks(successCallback, errorCallback, fileSyste
m, expectedPath, isDirectory)); | 82 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new EntryCallbacks(su
ccessCallback, errorCallback, fileSystem, expectedPath, isDirectory))); |
| 80 } | 83 } |
| 81 | 84 |
| 82 EntryCallbacks::EntryCallbacks(PassRefPtr<EntryCallback> successCallback, PassRe
fPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBase> fileSystem, con
st String& expectedPath, bool isDirectory) | 85 EntryCallbacks::EntryCallbacks(PassRefPtr<EntryCallback> successCallback, PassRe
fPtr<ErrorCallback> errorCallback, PassRefPtr<DOMFileSystemBase> fileSystem, con
st String& expectedPath, bool isDirectory) |
| 83 : FileSystemCallbacksBase(errorCallback) | 86 : FileSystemCallbacksBase(errorCallback, fileSystem.get()) |
| 84 , m_successCallback(successCallback) | 87 , m_successCallback(successCallback) |
| 85 , m_fileSystem(fileSystem) | |
| 86 , m_expectedPath(expectedPath) | 88 , m_expectedPath(expectedPath) |
| 87 , m_isDirectory(isDirectory) | 89 , m_isDirectory(isDirectory) |
| 88 { | 90 { |
| 89 } | 91 } |
| 90 | 92 |
| 91 void EntryCallbacks::didSucceed() | 93 void EntryCallbacks::didSucceed() |
| 92 { | 94 { |
| 93 if (m_successCallback) { | 95 if (m_successCallback) { |
| 94 if (m_isDirectory) | 96 if (m_isDirectory) |
| 95 m_successCallback->handleEvent(DirectoryEntry::create(m_fileSystem,
m_expectedPath).get()); | 97 m_successCallback->handleEvent(DirectoryEntry::create(m_fileSystem,
m_expectedPath).get()); |
| 96 else | 98 else |
| 97 m_successCallback->handleEvent(FileEntry::create(m_fileSystem, m_exp
ectedPath).get()); | 99 m_successCallback->handleEvent(FileEntry::create(m_fileSystem, m_exp
ectedPath).get()); |
| 98 } | 100 } |
| 99 m_successCallback.clear(); | 101 m_successCallback.clear(); |
| 100 } | 102 } |
| 101 | 103 |
| 102 // EntriesCallbacks ----------------------------------------------------------- | 104 // EntriesCallbacks ----------------------------------------------------------- |
| 103 | 105 |
| 104 PassOwnPtr<EntriesCallbacks> EntriesCallbacks::create(PassRefPtr<EntriesCallback
> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<Directory
ReaderBase> directoryReader, const String& basePath) | 106 PassOwnPtr<AsyncFileSystemCallbacks> EntriesCallbacks::create(PassRefPtr<Entries
Callback> successCallback, PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<D
irectoryReaderBase> directoryReader, const String& basePath) |
| 105 { | 107 { |
| 106 return adoptPtr(new EntriesCallbacks(successCallback, errorCallback, directo
ryReader, basePath)); | 108 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new EntriesCallbacks(
successCallback, errorCallback, directoryReader, basePath))); |
| 107 } | 109 } |
| 108 | 110 |
| 109 EntriesCallbacks::EntriesCallbacks(PassRefPtr<EntriesCallback> successCallback,
PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryReaderBase> directo
ryReader, const String& basePath) | 111 EntriesCallbacks::EntriesCallbacks(PassRefPtr<EntriesCallback> successCallback,
PassRefPtr<ErrorCallback> errorCallback, PassRefPtr<DirectoryReaderBase> directo
ryReader, const String& basePath) |
| 110 : FileSystemCallbacksBase(errorCallback) | 112 : FileSystemCallbacksBase(errorCallback, directoryReader->filesystem()) |
| 111 , m_successCallback(successCallback) | 113 , m_successCallback(successCallback) |
| 112 , m_directoryReader(directoryReader) | 114 , m_directoryReader(directoryReader) |
| 113 , m_basePath(basePath) | 115 , m_basePath(basePath) |
| 114 { | 116 { |
| 115 ASSERT(m_directoryReader); | 117 ASSERT(m_directoryReader); |
| 116 } | 118 } |
| 117 | 119 |
| 118 void EntriesCallbacks::didReadDirectoryEntry(const String& name, bool isDirector
y) | 120 void EntriesCallbacks::didReadDirectoryEntry(const String& name, bool isDirector
y) |
| 119 { | 121 { |
| 120 if (isDirectory) | 122 if (isDirectory) |
| 121 m_entries.append(DirectoryEntry::create(m_directoryReader->filesystem(),
DOMFilePath::append(m_basePath, name))); | 123 m_entries.append(DirectoryEntry::create(m_directoryReader->filesystem(),
DOMFilePath::append(m_basePath, name))); |
| 122 else | 124 else |
| 123 m_entries.append(FileEntry::create(m_directoryReader->filesystem(), DOMF
ilePath::append(m_basePath, name))); | 125 m_entries.append(FileEntry::create(m_directoryReader->filesystem(), DOMF
ilePath::append(m_basePath, name))); |
| 124 } | 126 } |
| 125 | 127 |
| 126 void EntriesCallbacks::didReadDirectoryEntries(bool hasMore) | 128 void EntriesCallbacks::didReadDirectoryEntries(bool hasMore) |
| 127 { | 129 { |
| 128 m_directoryReader->setHasMoreEntries(hasMore); | 130 m_directoryReader->setHasMoreEntries(hasMore); |
| 129 if (m_successCallback) | 131 if (m_successCallback) |
| 130 m_successCallback->handleEvent(m_entries); | 132 m_successCallback->handleEvent(m_entries); |
| 131 } | 133 } |
| 132 | 134 |
| 133 // FileSystemCallbacks -------------------------------------------------------- | 135 // FileSystemCallbacks -------------------------------------------------------- |
| 134 | 136 |
| 135 PassOwnPtr<FileSystemCallbacks> FileSystemCallbacks::create(PassRefPtr<FileSyste
mCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecu
tionContext* scriptExecutionContext, FileSystemType type) | 137 PassOwnPtr<AsyncFileSystemCallbacks> FileSystemCallbacks::create(PassRefPtr<File
SystemCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, Script
ExecutionContext* scriptExecutionContext, FileSystemType type) |
| 136 { | 138 { |
| 137 return adoptPtr(new FileSystemCallbacks(successCallback, errorCallback, scri
ptExecutionContext, type)); | 139 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new FileSystemCallbac
ks(successCallback, errorCallback, scriptExecutionContext, type))); |
| 138 } | 140 } |
| 139 | 141 |
| 140 FileSystemCallbacks::FileSystemCallbacks(PassRefPtr<FileSystemCallback> successC
allback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* contex
t, FileSystemType type) | 142 FileSystemCallbacks::FileSystemCallbacks(PassRefPtr<FileSystemCallback> successC
allback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* contex
t, FileSystemType type) |
| 141 : FileSystemCallbacksBase(errorCallback) | 143 : FileSystemCallbacksBase(errorCallback, 0) |
| 142 , m_successCallback(successCallback) | 144 , m_successCallback(successCallback) |
| 143 , m_scriptExecutionContext(context) | 145 , m_scriptExecutionContext(context) |
| 144 , m_type(type) | 146 , m_type(type) |
| 145 { | 147 { |
| 146 } | 148 } |
| 147 | 149 |
| 148 void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& root
URL, PassOwnPtr<AsyncFileSystem> asyncFileSystem) | 150 void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& root
URL) |
| 149 { | 151 { |
| 150 if (m_successCallback) { | 152 if (m_successCallback) { |
| 151 ASSERT(asyncFileSystem); | 153 RefPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_scriptExecuti
onContext.get(), name, m_type, rootURL); |
| 152 RefPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_scriptExecuti
onContext.get(), name, m_type, rootURL, asyncFileSystem); | |
| 153 m_successCallback->handleEvent(fileSystem.get()); | 154 m_successCallback->handleEvent(fileSystem.get()); |
| 154 m_scriptExecutionContext.clear(); | 155 m_scriptExecutionContext.clear(); |
| 155 } | 156 } |
| 156 m_successCallback.clear(); | 157 m_successCallback.clear(); |
| 157 } | 158 } |
| 158 | 159 |
| 159 // ResolveURICallbacks -------------------------------------------------------- | 160 // ResolveURICallbacks -------------------------------------------------------- |
| 160 | 161 |
| 161 namespace { | 162 namespace { |
| 162 | 163 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 188 } | 189 } |
| 189 | 190 |
| 190 RefPtr<EntryCallback> m_successCallback; | 191 RefPtr<EntryCallback> m_successCallback; |
| 191 RefPtr<ErrorCallback> m_errorCallback; | 192 RefPtr<ErrorCallback> m_errorCallback; |
| 192 RefPtr<DirectoryEntry> m_root; | 193 RefPtr<DirectoryEntry> m_root; |
| 193 String m_filePath; | 194 String m_filePath; |
| 194 }; | 195 }; |
| 195 | 196 |
| 196 } // namespace | 197 } // namespace |
| 197 | 198 |
| 198 PassOwnPtr<ResolveURICallbacks> ResolveURICallbacks::create(PassRefPtr<EntryCall
back> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionC
ontext* scriptExecutionContext, FileSystemType type, const String& filePath) | 199 PassOwnPtr<AsyncFileSystemCallbacks> ResolveURICallbacks::create(PassRefPtr<Entr
yCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, ScriptExecu
tionContext* scriptExecutionContext, FileSystemType type, const String& filePath
) |
| 199 { | 200 { |
| 200 return adoptPtr(new ResolveURICallbacks(successCallback, errorCallback, scri
ptExecutionContext, type, filePath)); | 201 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new ResolveURICallbac
ks(successCallback, errorCallback, scriptExecutionContext, type, filePath))); |
| 201 } | 202 } |
| 202 | 203 |
| 203 ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallba
ck, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context, Fi
leSystemType type, const String& filePath) | 204 ResolveURICallbacks::ResolveURICallbacks(PassRefPtr<EntryCallback> successCallba
ck, PassRefPtr<ErrorCallback> errorCallback, ScriptExecutionContext* context, Fi
leSystemType type, const String& filePath) |
| 204 : FileSystemCallbacksBase(errorCallback) | 205 : FileSystemCallbacksBase(errorCallback, 0) |
| 205 , m_successCallback(successCallback) | 206 , m_successCallback(successCallback) |
| 206 , m_scriptExecutionContext(context) | 207 , m_scriptExecutionContext(context) |
| 207 , m_type(type) | 208 , m_type(type) |
| 208 , m_filePath(filePath) | 209 , m_filePath(filePath) |
| 209 { | 210 { |
| 210 } | 211 } |
| 211 | 212 |
| 212 void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& root
URL, PassOwnPtr<AsyncFileSystem> asyncFileSystem) | 213 void ResolveURICallbacks::didOpenFileSystem(const String& name, const KURL& root
URL) |
| 213 { | 214 { |
| 214 ASSERT(asyncFileSystem); | 215 RefPtr<DirectoryEntry> root = DOMFileSystem::create(m_scriptExecutionContext
.get(), name, m_type, rootURL)->root(); |
| 215 RefPtr<DirectoryEntry> root = DOMFileSystem::create(m_scriptExecutionContext
.get(), name, m_type, rootURL, asyncFileSystem)->root(); | |
| 216 root->getDirectory(m_filePath, Dictionary(), m_successCallback, ErrorCallbac
kWrapper::create(m_successCallback, m_errorCallback, root, m_filePath)); | 216 root->getDirectory(m_filePath, Dictionary(), m_successCallback, ErrorCallbac
kWrapper::create(m_successCallback, m_errorCallback, root, m_filePath)); |
| 217 } | 217 } |
| 218 | 218 |
| 219 // MetadataCallbacks ---------------------------------------------------------- | 219 // MetadataCallbacks ---------------------------------------------------------- |
| 220 | 220 |
| 221 PassOwnPtr<MetadataCallbacks> MetadataCallbacks::create(PassRefPtr<MetadataCallb
ack> successCallback, PassRefPtr<ErrorCallback> errorCallback) | 221 PassOwnPtr<AsyncFileSystemCallbacks> MetadataCallbacks::create(PassRefPtr<Metada
taCallback> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSys
temBase* fileSystem) |
| 222 { | 222 { |
| 223 return adoptPtr(new MetadataCallbacks(successCallback, errorCallback)); | 223 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new MetadataCallbacks
(successCallback, errorCallback, fileSystem))); |
| 224 } | 224 } |
| 225 | 225 |
| 226 MetadataCallbacks::MetadataCallbacks(PassRefPtr<MetadataCallback> successCallbac
k, PassRefPtr<ErrorCallback> errorCallback) | 226 MetadataCallbacks::MetadataCallbacks(PassRefPtr<MetadataCallback> successCallbac
k, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem) |
| 227 : FileSystemCallbacksBase(errorCallback) | 227 : FileSystemCallbacksBase(errorCallback, fileSystem) |
| 228 , m_successCallback(successCallback) | 228 , m_successCallback(successCallback) |
| 229 { | 229 { |
| 230 } | 230 } |
| 231 | 231 |
| 232 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) | 232 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) |
| 233 { | 233 { |
| 234 if (m_successCallback) | 234 if (m_successCallback) |
| 235 m_successCallback->handleEvent(Metadata::create(metadata).get()); | 235 m_successCallback->handleEvent(Metadata::create(metadata).get()); |
| 236 m_successCallback.clear(); | 236 m_successCallback.clear(); |
| 237 } | 237 } |
| 238 | 238 |
| 239 // FileWriterBaseCallbacks -----------------------------------------------------
----- | 239 // FileWriterBaseCallbacks -----------------------------------------------------
----- |
| 240 | 240 |
| 241 PassOwnPtr<FileWriterBaseCallbacks> FileWriterBaseCallbacks::create(PassRefPtr<F
ileWriterBase> fileWriter, PassRefPtr<FileWriterBaseCallback> successCallback, P
assRefPtr<ErrorCallback> errorCallback) | 241 PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(PassRefPtr<
FileWriterBase> fileWriter, PassRefPtr<FileWriterBaseCallback> successCallback,
PassRefPtr<ErrorCallback> errorCallback) |
| 242 { | 242 { |
| 243 return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, err
orCallback)); | 243 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new FileWriterBaseCal
lbacks(fileWriter, successCallback, errorCallback))); |
| 244 } | 244 } |
| 245 | 245 |
| 246 FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtr<FileWriterBase> file
Writer, PassRefPtr<FileWriterBaseCallback> successCallback, PassRefPtr<ErrorCall
back> errorCallback) | 246 FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtr<FileWriterBase> file
Writer, PassRefPtr<FileWriterBaseCallback> successCallback, PassRefPtr<ErrorCall
back> errorCallback) |
| 247 : FileSystemCallbacksBase(errorCallback) | 247 : FileSystemCallbacksBase(errorCallback, 0) |
| 248 , m_fileWriter(fileWriter) | 248 , m_fileWriter(fileWriter) |
| 249 , m_successCallback(successCallback) | 249 , m_successCallback(successCallback) |
| 250 { | 250 { |
| 251 } | 251 } |
| 252 | 252 |
| 253 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<WebKit::WebFileWrit
er> fileWriter, long long length) | 253 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<WebKit::WebFileWrit
er> fileWriter, long long length) |
| 254 { | 254 { |
| 255 m_fileWriter->initialize(fileWriter, length); | 255 m_fileWriter->initialize(fileWriter, length); |
| 256 if (m_successCallback) | 256 if (m_successCallback) |
| 257 m_successCallback->handleEvent(m_fileWriter.release().get()); | 257 m_successCallback->handleEvent(m_fileWriter.release().get()); |
| 258 m_successCallback.clear(); | 258 m_successCallback.clear(); |
| 259 } | 259 } |
| 260 | 260 |
| 261 // VoidCallbacks -------------------------------------------------------------- | 261 // VoidCallbacks -------------------------------------------------------------- |
| 262 | 262 |
| 263 PassOwnPtr<VoidCallbacks> VoidCallbacks::create(PassRefPtr<VoidCallback> success
Callback, PassRefPtr<ErrorCallback> errorCallback) | 263 PassOwnPtr<AsyncFileSystemCallbacks> VoidCallbacks::create(PassRefPtr<VoidCallba
ck> successCallback, PassRefPtr<ErrorCallback> errorCallback, DOMFileSystemBase*
fileSystem) |
| 264 { | 264 { |
| 265 return adoptPtr(new VoidCallbacks(successCallback, errorCallback)); | 265 return adoptPtr(static_cast<AsyncFileSystemCallbacks*>(new VoidCallbacks(suc
cessCallback, errorCallback, fileSystem))); |
| 266 } | 266 } |
| 267 | 267 |
| 268 VoidCallbacks::VoidCallbacks(PassRefPtr<VoidCallback> successCallback, PassRefPt
r<ErrorCallback> errorCallback) | 268 VoidCallbacks::VoidCallbacks(PassRefPtr<VoidCallback> successCallback, PassRefPt
r<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem) |
| 269 : FileSystemCallbacksBase(errorCallback) | 269 : FileSystemCallbacksBase(errorCallback, fileSystem) |
| 270 , m_successCallback(successCallback) | 270 , m_successCallback(successCallback) |
| 271 { | 271 { |
| 272 } | 272 } |
| 273 | 273 |
| 274 void VoidCallbacks::didSucceed() | 274 void VoidCallbacks::didSucceed() |
| 275 { | 275 { |
| 276 if (m_successCallback) | 276 if (m_successCallback) |
| 277 m_successCallback->handleEvent(); | 277 m_successCallback->handleEvent(); |
| 278 m_successCallback.clear(); | 278 m_successCallback.clear(); |
| 279 } | 279 } |
| 280 | 280 |
| 281 } // namespace | 281 } // namespace |
| OLD | NEW |