| 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 #include "modules/filesystem/FileSystemCallback.h" | 45 #include "modules/filesystem/FileSystemCallback.h" |
| 46 #include "modules/filesystem/FileWriterBase.h" | 46 #include "modules/filesystem/FileWriterBase.h" |
| 47 #include "modules/filesystem/FileWriterBaseCallback.h" | 47 #include "modules/filesystem/FileWriterBaseCallback.h" |
| 48 #include "modules/filesystem/Metadata.h" | 48 #include "modules/filesystem/Metadata.h" |
| 49 #include "modules/filesystem/MetadataCallback.h" | 49 #include "modules/filesystem/MetadataCallback.h" |
| 50 #include "platform/FileMetadata.h" | 50 #include "platform/FileMetadata.h" |
| 51 #include "public/platform/WebFileWriter.h" | 51 #include "public/platform/WebFileWriter.h" |
| 52 | 52 |
| 53 namespace WebCore { | 53 namespace WebCore { |
| 54 | 54 |
| 55 FileSystemCallbacksBase::FileSystemCallbacksBase(PassOwnPtr<ErrorCallback> error
Callback, DOMFileSystemBase* fileSystem) | 55 FileSystemCallbacksBase::FileSystemCallbacksBase(PassOwnPtr<ErrorCallback> error
Callback, PassRefPtrWillBeRawPtr<DOMFileSystemBase> fileSystem) |
| 56 : m_errorCallback(errorCallback) | 56 : m_errorCallback(errorCallback) |
| 57 , m_fileSystem(fileSystem) | 57 , m_fileSystem(fileSystem) |
| 58 { | 58 { |
| 59 if (m_fileSystem) | 59 if (m_fileSystem) |
| 60 m_fileSystem->addPendingCallbacks(); | 60 m_fileSystem->addPendingCallbacks(); |
| 61 } | 61 } |
| 62 | 62 |
| 63 FileSystemCallbacksBase::~FileSystemCallbacksBase() | 63 FileSystemCallbacksBase::~FileSystemCallbacksBase() |
| 64 { | 64 { |
| 65 if (m_fileSystem) | 65 if (m_fileSystem) |
| 66 m_fileSystem->removePendingCallbacks(); | 66 m_fileSystem->removePendingCallbacks(); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void FileSystemCallbacksBase::didFail(int code) | 69 void FileSystemCallbacksBase::didFail(int code) |
| 70 { | 70 { |
| 71 if (m_errorCallback) { | 71 if (m_errorCallback) { |
| 72 m_errorCallback->handleEvent(FileError::create(static_cast<FileError::Er
rorCode>(code)).get()); | 72 m_errorCallback->handleEvent(FileError::create(static_cast<FileError::Er
rorCode>(code)).get()); |
| 73 m_errorCallback.clear(); | 73 m_errorCallback.clear(); |
| 74 } | 74 } |
| 75 } | 75 } |
| 76 | 76 |
| 77 // EntryCallbacks ------------------------------------------------------------- | 77 // EntryCallbacks ------------------------------------------------------------- |
| 78 | 78 |
| 79 PassOwnPtr<AsyncFileSystemCallbacks> EntryCallbacks::create(PassOwnPtr<EntryCall
back> successCallback, PassOwnPtr<ErrorCallback> errorCallback, PassRefPtrWillBe
RawPtr<DOMFileSystemBase> fileSystem, const String& expectedPath, bool isDirecto
ry) | 79 PassOwnPtr<AsyncFileSystemCallbacks> EntryCallbacks::create(PassOwnPtr<EntryCall
back> successCallback, PassOwnPtr<ErrorCallback> errorCallback, PassRefPtrWillBe
RawPtr<DOMFileSystemBase> fileSystem, const String& expectedPath, bool isDirecto
ry) |
| 80 { | 80 { |
| 81 return adoptPtr(new EntryCallbacks(successCallback, errorCallback, fileSyste
m, expectedPath, isDirectory)); | 81 return adoptPtr(new EntryCallbacks(successCallback, errorCallback, fileSyste
m, expectedPath, isDirectory)); |
| 82 } | 82 } |
| 83 | 83 |
| 84 EntryCallbacks::EntryCallbacks(PassOwnPtr<EntryCallback> successCallback, PassOw
nPtr<ErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<DOMFileSystemBase> fil
eSystem, const String& expectedPath, bool isDirectory) | 84 EntryCallbacks::EntryCallbacks(PassOwnPtr<EntryCallback> successCallback, PassOw
nPtr<ErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<DOMFileSystemBase> fil
eSystem, const String& expectedPath, bool isDirectory) |
| 85 : FileSystemCallbacksBase(errorCallback, fileSystem.get()) | 85 : FileSystemCallbacksBase(errorCallback, fileSystem) |
| 86 , m_successCallback(successCallback) | 86 , m_successCallback(successCallback) |
| 87 , m_expectedPath(expectedPath) | 87 , m_expectedPath(expectedPath) |
| 88 , m_isDirectory(isDirectory) | 88 , m_isDirectory(isDirectory) |
| 89 { | 89 { |
| 90 } | 90 } |
| 91 | 91 |
| 92 void EntryCallbacks::didSucceed() | 92 void EntryCallbacks::didSucceed() |
| 93 { | 93 { |
| 94 if (m_successCallback) { | 94 if (m_successCallback) { |
| 95 if (m_isDirectory) | 95 if (m_isDirectory) |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 } | 134 } |
| 135 | 135 |
| 136 // FileSystemCallbacks -------------------------------------------------------- | 136 // FileSystemCallbacks -------------------------------------------------------- |
| 137 | 137 |
| 138 PassOwnPtr<AsyncFileSystemCallbacks> FileSystemCallbacks::create(PassOwnPtr<File
SystemCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, Execut
ionContext* executionContext, FileSystemType type) | 138 PassOwnPtr<AsyncFileSystemCallbacks> FileSystemCallbacks::create(PassOwnPtr<File
SystemCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, Execut
ionContext* executionContext, FileSystemType type) |
| 139 { | 139 { |
| 140 return adoptPtr(new FileSystemCallbacks(successCallback, errorCallback, exec
utionContext, type)); | 140 return adoptPtr(new FileSystemCallbacks(successCallback, errorCallback, exec
utionContext, type)); |
| 141 } | 141 } |
| 142 | 142 |
| 143 FileSystemCallbacks::FileSystemCallbacks(PassOwnPtr<FileSystemCallback> successC
allback, PassOwnPtr<ErrorCallback> errorCallback, ExecutionContext* context, Fil
eSystemType type) | 143 FileSystemCallbacks::FileSystemCallbacks(PassOwnPtr<FileSystemCallback> successC
allback, PassOwnPtr<ErrorCallback> errorCallback, ExecutionContext* context, Fil
eSystemType type) |
| 144 : FileSystemCallbacksBase(errorCallback, 0) | 144 : FileSystemCallbacksBase(errorCallback, nullptr) |
| 145 , m_successCallback(successCallback) | 145 , m_successCallback(successCallback) |
| 146 , m_executionContext(context) | 146 , m_executionContext(context) |
| 147 , m_type(type) | 147 , m_type(type) |
| 148 { | 148 { |
| 149 } | 149 } |
| 150 | 150 |
| 151 void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& root
URL) | 151 void FileSystemCallbacks::didOpenFileSystem(const String& name, const KURL& root
URL) |
| 152 { | 152 { |
| 153 if (m_successCallback) { | 153 if (m_successCallback) { |
| 154 RefPtrWillBeRawPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_e
xecutionContext.get(), name, m_type, rootURL); | 154 RefPtrWillBeRawPtr<DOMFileSystem> fileSystem = DOMFileSystem::create(m_e
xecutionContext.get(), name, m_type, rootURL); |
| 155 m_successCallback->handleEvent(fileSystem.get()); | 155 m_successCallback->handleEvent(fileSystem.get()); |
| 156 m_executionContext.clear(); | 156 m_executionContext.clear(); |
| 157 } | 157 } |
| 158 m_successCallback.clear(); | 158 m_successCallback.clear(); |
| 159 } | 159 } |
| 160 | 160 |
| 161 // ResolveURICallbacks -------------------------------------------------------- | 161 // ResolveURICallbacks -------------------------------------------------------- |
| 162 | 162 |
| 163 PassOwnPtr<AsyncFileSystemCallbacks> ResolveURICallbacks::create(PassOwnPtr<Entr
yCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, ExecutionCo
ntext* executionContext) | 163 PassOwnPtr<AsyncFileSystemCallbacks> ResolveURICallbacks::create(PassOwnPtr<Entr
yCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, ExecutionCo
ntext* executionContext) |
| 164 { | 164 { |
| 165 return adoptPtr(new ResolveURICallbacks(successCallback, errorCallback, exec
utionContext)); | 165 return adoptPtr(new ResolveURICallbacks(successCallback, errorCallback, exec
utionContext)); |
| 166 } | 166 } |
| 167 | 167 |
| 168 ResolveURICallbacks::ResolveURICallbacks(PassOwnPtr<EntryCallback> successCallba
ck, PassOwnPtr<ErrorCallback> errorCallback, ExecutionContext* context) | 168 ResolveURICallbacks::ResolveURICallbacks(PassOwnPtr<EntryCallback> successCallba
ck, PassOwnPtr<ErrorCallback> errorCallback, ExecutionContext* context) |
| 169 : FileSystemCallbacksBase(errorCallback, 0) | 169 : FileSystemCallbacksBase(errorCallback, nullptr) |
| 170 , m_successCallback(successCallback) | 170 , m_successCallback(successCallback) |
| 171 , m_executionContext(context) | 171 , m_executionContext(context) |
| 172 { | 172 { |
| 173 } | 173 } |
| 174 | 174 |
| 175 void ResolveURICallbacks::didResolveURL(const String& name, const KURL& rootURL,
FileSystemType type, const String& filePath, bool isDirectory) | 175 void ResolveURICallbacks::didResolveURL(const String& name, const KURL& rootURL,
FileSystemType type, const String& filePath, bool isDirectory) |
| 176 { | 176 { |
| 177 RefPtrWillBeRawPtr<DOMFileSystem> filesystem = DOMFileSystem::create(m_execu
tionContext.get(), name, type, rootURL); | 177 RefPtrWillBeRawPtr<DOMFileSystem> filesystem = DOMFileSystem::create(m_execu
tionContext.get(), name, type, rootURL); |
| 178 RefPtrWillBeRawPtr<DirectoryEntry> root = filesystem->root(); | 178 RefPtrWillBeRawPtr<DirectoryEntry> root = filesystem->root(); |
| 179 | 179 |
| 180 String absolutePath; | 180 String absolutePath; |
| 181 if (!DOMFileSystemBase::pathToAbsolutePath(type, root.get(), filePath, absol
utePath)) { | 181 if (!DOMFileSystemBase::pathToAbsolutePath(type, root.get(), filePath, absol
utePath)) { |
| 182 m_errorCallback->handleEvent(FileError::create(FileError::INVALID_MODIFI
CATION_ERR).get()); | 182 m_errorCallback->handleEvent(FileError::create(FileError::INVALID_MODIFI
CATION_ERR).get()); |
| 183 m_errorCallback.clear(); | 183 m_errorCallback.clear(); |
| 184 return; | 184 return; |
| 185 } | 185 } |
| 186 | 186 |
| 187 if (isDirectory) | 187 if (isDirectory) |
| 188 m_successCallback->handleEvent(DirectoryEntry::create(filesystem, absolu
tePath).get()); | 188 m_successCallback->handleEvent(DirectoryEntry::create(filesystem, absolu
tePath).get()); |
| 189 else | 189 else |
| 190 m_successCallback->handleEvent(FileEntry::create(filesystem, absolutePat
h).get()); | 190 m_successCallback->handleEvent(FileEntry::create(filesystem, absolutePat
h).get()); |
| 191 m_successCallback.clear(); | 191 m_successCallback.clear(); |
| 192 } | 192 } |
| 193 | 193 |
| 194 // MetadataCallbacks ---------------------------------------------------------- | 194 // MetadataCallbacks ---------------------------------------------------------- |
| 195 | 195 |
| 196 PassOwnPtr<AsyncFileSystemCallbacks> MetadataCallbacks::create(PassOwnPtr<Metada
taCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, DOMFileSys
temBase* fileSystem) | 196 PassOwnPtr<AsyncFileSystemCallbacks> MetadataCallbacks::create(PassOwnPtr<Metada
taCallback> successCallback, PassOwnPtr<ErrorCallback> errorCallback, PassRefPtr
WillBeRawPtr<DOMFileSystemBase> fileSystem) |
| 197 { | 197 { |
| 198 return adoptPtr(new MetadataCallbacks(successCallback, errorCallback, fileSy
stem)); | 198 return adoptPtr(new MetadataCallbacks(successCallback, errorCallback, fileSy
stem)); |
| 199 } | 199 } |
| 200 | 200 |
| 201 MetadataCallbacks::MetadataCallbacks(PassOwnPtr<MetadataCallback> successCallbac
k, PassOwnPtr<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem) | 201 MetadataCallbacks::MetadataCallbacks(PassOwnPtr<MetadataCallback> successCallbac
k, PassOwnPtr<ErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<DOMFileSystem
Base> fileSystem) |
| 202 : FileSystemCallbacksBase(errorCallback, fileSystem) | 202 : FileSystemCallbacksBase(errorCallback, fileSystem) |
| 203 , m_successCallback(successCallback) | 203 , m_successCallback(successCallback) |
| 204 { | 204 { |
| 205 } | 205 } |
| 206 | 206 |
| 207 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) | 207 void MetadataCallbacks::didReadMetadata(const FileMetadata& metadata) |
| 208 { | 208 { |
| 209 if (m_successCallback) | 209 if (m_successCallback) |
| 210 m_successCallback->handleEvent(Metadata::create(metadata).get()); | 210 m_successCallback->handleEvent(Metadata::create(metadata).get()); |
| 211 m_successCallback.clear(); | 211 m_successCallback.clear(); |
| 212 } | 212 } |
| 213 | 213 |
| 214 // FileWriterBaseCallbacks -----------------------------------------------------
----- | 214 // FileWriterBaseCallbacks -----------------------------------------------------
----- |
| 215 | 215 |
| 216 PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(PassRefPtrW
illBeRawPtr<FileWriterBase> fileWriter, PassOwnPtr<FileWriterBaseCallback> succe
ssCallback, PassOwnPtr<ErrorCallback> errorCallback) | 216 PassOwnPtr<AsyncFileSystemCallbacks> FileWriterBaseCallbacks::create(PassRefPtrW
illBeRawPtr<FileWriterBase> fileWriter, PassOwnPtr<FileWriterBaseCallback> succe
ssCallback, PassOwnPtr<ErrorCallback> errorCallback) |
| 217 { | 217 { |
| 218 return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, err
orCallback)); | 218 return adoptPtr(new FileWriterBaseCallbacks(fileWriter, successCallback, err
orCallback)); |
| 219 } | 219 } |
| 220 | 220 |
| 221 FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtrWillBeRawPtr<FileWrit
erBase> fileWriter, PassOwnPtr<FileWriterBaseCallback> successCallback, PassOwnP
tr<ErrorCallback> errorCallback) | 221 FileWriterBaseCallbacks::FileWriterBaseCallbacks(PassRefPtrWillBeRawPtr<FileWrit
erBase> fileWriter, PassOwnPtr<FileWriterBaseCallback> successCallback, PassOwnP
tr<ErrorCallback> errorCallback) |
| 222 : FileSystemCallbacksBase(errorCallback, 0) | 222 : FileSystemCallbacksBase(errorCallback, nullptr) |
| 223 , m_fileWriter(fileWriter) | 223 , m_fileWriter(fileWriter) |
| 224 , m_successCallback(successCallback) | 224 , m_successCallback(successCallback) |
| 225 { | 225 { |
| 226 } | 226 } |
| 227 | 227 |
| 228 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<blink::WebFileWrite
r> fileWriter, long long length) | 228 void FileWriterBaseCallbacks::didCreateFileWriter(PassOwnPtr<blink::WebFileWrite
r> fileWriter, long long length) |
| 229 { | 229 { |
| 230 m_fileWriter->initialize(fileWriter, length); | 230 m_fileWriter->initialize(fileWriter, length); |
| 231 if (m_successCallback) { | 231 if (m_successCallback) { |
| 232 m_successCallback->handleEvent(m_fileWriter.get()); | 232 m_successCallback->handleEvent(m_fileWriter.get()); |
| 233 m_fileWriter = nullptr; | 233 m_fileWriter = nullptr; |
| 234 } | 234 } |
| 235 m_successCallback.clear(); | 235 m_successCallback.clear(); |
| 236 } | 236 } |
| 237 | 237 |
| 238 // VoidCallbacks -------------------------------------------------------------- | 238 // VoidCallbacks -------------------------------------------------------------- |
| 239 | 239 |
| 240 PassOwnPtr<AsyncFileSystemCallbacks> VoidCallbacks::create(PassOwnPtr<VoidCallba
ck> successCallback, PassOwnPtr<ErrorCallback> errorCallback, DOMFileSystemBase*
fileSystem) | 240 PassOwnPtr<AsyncFileSystemCallbacks> VoidCallbacks::create(PassOwnPtr<VoidCallba
ck> successCallback, PassOwnPtr<ErrorCallback> errorCallback, PassRefPtrWillBeRa
wPtr<DOMFileSystemBase> fileSystem) |
| 241 { | 241 { |
| 242 return adoptPtr(new VoidCallbacks(successCallback, errorCallback, fileSystem
)); | 242 return adoptPtr(new VoidCallbacks(successCallback, errorCallback, fileSystem
)); |
| 243 } | 243 } |
| 244 | 244 |
| 245 VoidCallbacks::VoidCallbacks(PassOwnPtr<VoidCallback> successCallback, PassOwnPt
r<ErrorCallback> errorCallback, DOMFileSystemBase* fileSystem) | 245 VoidCallbacks::VoidCallbacks(PassOwnPtr<VoidCallback> successCallback, PassOwnPt
r<ErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<DOMFileSystemBase> fileSy
stem) |
| 246 : FileSystemCallbacksBase(errorCallback, fileSystem) | 246 : FileSystemCallbacksBase(errorCallback, fileSystem) |
| 247 , m_successCallback(successCallback) | 247 , m_successCallback(successCallback) |
| 248 { | 248 { |
| 249 } | 249 } |
| 250 | 250 |
| 251 void VoidCallbacks::didSucceed() | 251 void VoidCallbacks::didSucceed() |
| 252 { | 252 { |
| 253 if (m_successCallback) | 253 if (m_successCallback) |
| 254 m_successCallback->handleEvent(); | 254 m_successCallback->handleEvent(); |
| 255 m_successCallback.clear(); | 255 m_successCallback.clear(); |
| 256 } | 256 } |
| 257 | 257 |
| 258 } // namespace | 258 } // namespace |
| OLD | NEW |