Index: Source/modules/filesystem/DOMFileSystem.h |
diff --git a/Source/modules/filesystem/DOMFileSystem.h b/Source/modules/filesystem/DOMFileSystem.h |
index 7767df39c2ddf73399856a6ffc8082c96b1a6cae..7f81372c9cbf8ee7bace20291bcddc1d49a9d617 100644 |
--- a/Source/modules/filesystem/DOMFileSystem.h |
+++ b/Source/modules/filesystem/DOMFileSystem.h |
@@ -49,12 +49,12 @@ class FileWriterCallback; |
class DOMFileSystem FINAL : public DOMFileSystemBase, public ScriptWrappable, public ActiveDOMObject { |
public: |
- static PassRefPtrWillBeRawPtr<DOMFileSystem> create(ExecutionContext*, const String& name, FileSystemType, const KURL& rootURL); |
+ static DOMFileSystem* create(ExecutionContext*, const String& name, FileSystemType, const KURL& rootURL); |
// Creates a new isolated file system for the given filesystemId. |
- static PassRefPtrWillBeRawPtr<DOMFileSystem> createIsolatedFileSystem(ExecutionContext*, const String& filesystemId); |
+ static DOMFileSystem* createIsolatedFileSystem(ExecutionContext*, const String& filesystemId); |
- PassRefPtrWillBeRawPtr<DirectoryEntry> root(); |
+ DirectoryEntry* root(); |
// DOMFileSystemBase overrides. |
virtual void addPendingCallbacks() OVERRIDE; |
@@ -73,6 +73,9 @@ public: |
static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, PassRefPtrWillBeRawPtr<CBArg>); |
template <typename CB, typename CBArg> |
+ static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, CBArg*); |
+ |
+ template <typename CB, typename CBArg> |
static void scheduleCallback(ExecutionContext*, PassOwnPtr<CB>, const HeapVector<CBArg>&); |
template <typename CB, typename CBArg> |
@@ -88,6 +91,12 @@ public: |
} |
template <typename CB, typename CBArg> |
+ void scheduleCallback(PassOwnPtr<CB> callback, CBArg* callbackArg) |
+ { |
+ scheduleCallback(executionContext(), callback, callbackArg); |
+ } |
+ |
+ template <typename CB, typename CBArg> |
void scheduleCallback(PassOwnPtr<CB> callback, const CBArg& callbackArg) |
{ |
scheduleCallback(executionContext(), callback, callbackArg); |
@@ -98,9 +107,9 @@ private: |
// A helper template to schedule a callback task. |
template <typename CB, typename CBArg> |
- class DispatchCallbacRefPtrArgTask FINAL : public ExecutionContextTask { |
+ class DispatchCallbackRefPtrArgTask FINAL : public ExecutionContextTask { |
public: |
- DispatchCallbacRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtrWillBeRawPtr<CBArg> arg) |
+ DispatchCallbackRefPtrArgTask(PassOwnPtr<CB> callback, PassRefPtrWillBeRawPtr<CBArg> arg) |
: m_callback(callback) |
, m_callbackArg(arg) |
{ |
@@ -117,6 +126,25 @@ private: |
}; |
template <typename CB, typename CBArg> |
+ class DispatchCallbackPtrArgTask FINAL : public ExecutionContextTask { |
+ public: |
+ DispatchCallbackPtrArgTask(PassOwnPtr<CB> callback, CBArg* arg) |
+ : m_callback(callback) |
+ , m_callbackArg(arg) |
+ { |
+ } |
+ |
+ virtual void performTask(ExecutionContext*) OVERRIDE |
+ { |
+ m_callback->handleEvent(m_callbackArg.get()); |
+ } |
+ |
+ private: |
+ OwnPtr<CB> m_callback; |
+ Persistent<CBArg> m_callbackArg; |
+ }; |
+ |
+ template <typename CB, typename CBArg> |
class DispatchCallbackNonPtrArgTask FINAL : public ExecutionContextTask { |
public: |
DispatchCallbackNonPtrArgTask(PassOwnPtr<CB> callback, const CBArg& arg) |
@@ -160,7 +188,15 @@ void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwn |
{ |
ASSERT(executionContext->isContextThread()); |
if (callback) |
- executionContext->postTask(adoptPtr(new DispatchCallbacRefPtrArgTask<CB, CBArg>(callback, arg))); |
+ executionContext->postTask(adoptPtr(new DispatchCallbackRefPtrArgTask<CB, CBArg>(callback, arg))); |
+} |
+ |
+template <typename CB, typename CBArg> |
+void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, PassOwnPtr<CB> callback, CBArg* arg) |
+{ |
+ ASSERT(executionContext->isContextThread()); |
+ if (callback) |
+ executionContext->postTask(adoptPtr(new DispatchCallbackPtrArgTask<CB, CBArg>(callback, arg))); |
} |
template <typename CB, typename CBArg> |