| Index: third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
|
| diff --git a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
|
| index 0d884f2268beb17a6a82e0d51191a62db02db074..4f403485a12c581fa05113e54b0b630e5d3f99c0 100644
|
| --- a/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
|
| +++ b/third_party/WebKit/Source/modules/filesystem/DOMFileSystem.h
|
| @@ -66,6 +66,8 @@ public:
|
| void removePendingCallbacks() override;
|
| void reportError(ErrorCallback*, FileError*) override;
|
|
|
| + static void reportError(ExecutionContext*, ErrorCallback*, FileError*);
|
| +
|
| // ActiveScriptWrappable overrides.
|
| bool hasPendingActivity() const final;
|
|
|
| @@ -73,32 +75,10 @@ public:
|
| void createFile(const FileEntry*, BlobCallback*, ErrorCallback*);
|
|
|
| // Schedule a callback. This should not cross threads (should be called on the same context thread).
|
| - // FIXME: move this to a more generic place.
|
| - template <typename CB, typename CBArg>
|
| - static void scheduleCallback(ExecutionContext*, CB*, CBArg*);
|
| -
|
| - template <typename CB, typename CBArg>
|
| - static void scheduleCallback(ExecutionContext*, CB*, const HeapVector<CBArg>&);
|
| -
|
| - template <typename CB, typename CBArg>
|
| - static void scheduleCallback(ExecutionContext*, CB*, const CBArg&);
|
| -
|
| - template <typename CB, typename CBArg>
|
| - static void scheduleCallback(ExecutionContext*, CB*, const Member<CBArg>&);
|
| -
|
| - template <typename CB>
|
| - static void scheduleCallback(ExecutionContext*, CB*);
|
| -
|
| - template <typename CB, typename CBArg>
|
| - void scheduleCallback(CB* callback, CBArg* callbackArg)
|
| + static void scheduleCallback(ExecutionContext* executionContext, std::unique_ptr<ExecutionContextTask> task)
|
| {
|
| - scheduleCallback(getExecutionContext(), callback, callbackArg);
|
| - }
|
| -
|
| - template <typename CB, typename CBArg>
|
| - void scheduleCallback(CB* callback, const CBArg& callbackArg)
|
| - {
|
| - scheduleCallback(getExecutionContext(), callback, callbackArg);
|
| + DCHECK(executionContext->isContextThread());
|
| + executionContext->postTask(BLINK_FROM_HERE, std::move(task), taskNameForInstrumentation());
|
| }
|
|
|
| DECLARE_VIRTUAL_TRACE();
|
| @@ -111,105 +91,10 @@ private:
|
| return "FileSystem";
|
| }
|
|
|
| - template <typename CB, typename CBArg>
|
| - class DispatchCallbackPtrArgTask final : public ExecutionContextTask {
|
| - public:
|
| - DispatchCallbackPtrArgTask(CB* callback, CBArg* arg)
|
| - : m_callback(callback)
|
| - , m_callbackArg(arg)
|
| - {
|
| - }
|
| -
|
| - void performTask(ExecutionContext*) override
|
| - {
|
| - m_callback->handleEvent(m_callbackArg.get());
|
| - }
|
| -
|
| - private:
|
| - Persistent<CB> m_callback;
|
| - Persistent<CBArg> m_callbackArg;
|
| - };
|
| -
|
| - template <typename CB, typename CBArg>
|
| - class DispatchCallbackNonPtrArgTask final : public ExecutionContextTask {
|
| - public:
|
| - DispatchCallbackNonPtrArgTask(CB* callback, const CBArg& arg)
|
| - : m_callback(callback)
|
| - , m_callbackArg(arg)
|
| - {
|
| - }
|
| -
|
| - void performTask(ExecutionContext*) override
|
| - {
|
| - m_callback->handleEvent(m_callbackArg);
|
| - }
|
| -
|
| - private:
|
| - Persistent<CB> m_callback;
|
| - CBArg m_callbackArg;
|
| - };
|
| -
|
| - template <typename CB>
|
| - class DispatchCallbackNoArgTask final : public ExecutionContextTask {
|
| - public:
|
| - DispatchCallbackNoArgTask(CB* callback)
|
| - : m_callback(callback)
|
| - {
|
| - }
|
| -
|
| - void performTask(ExecutionContext*) override
|
| - {
|
| - m_callback->handleEvent();
|
| - }
|
| -
|
| - private:
|
| - Persistent<CB> m_callback;
|
| - };
|
| -
|
| int m_numberOfPendingCallbacks;
|
| Member<DirectoryEntry> m_rootEntry;
|
| };
|
|
|
| -template <typename CB, typename CBArg>
|
| -void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, CBArg* arg)
|
| -{
|
| - ASSERT(executionContext->isContextThread());
|
| - if (callback)
|
| - executionContext->postTask(BLINK_FROM_HERE, wrapUnique(new DispatchCallbackPtrArgTask<CB, CBArg>(callback, arg)), taskNameForInstrumentation());
|
| -}
|
| -
|
| -template <typename CB, typename CBArg>
|
| -void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, const HeapVector<CBArg>& arg)
|
| -{
|
| - ASSERT(executionContext->isContextThread());
|
| - if (callback)
|
| - executionContext->postTask(BLINK_FROM_HERE, wrapUnique(new DispatchCallbackNonPtrArgTask<CB, PersistentHeapVector<CBArg>>(callback, arg)), taskNameForInstrumentation());
|
| -}
|
| -
|
| -template <typename CB, typename CBArg>
|
| -void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, const CBArg& arg)
|
| -{
|
| - ASSERT(executionContext->isContextThread());
|
| - if (callback)
|
| - executionContext->postTask(BLINK_FROM_HERE, wrapUnique(new DispatchCallbackNonPtrArgTask<CB, CBArg>(callback, arg)), taskNameForInstrumentation());
|
| -}
|
| -
|
| -template <typename CB, typename CBArg>
|
| -void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, const Member<CBArg>& arg)
|
| -{
|
| - ASSERT(executionContext->isContextThread());
|
| - if (callback)
|
| - executionContext->postTask(BLINK_FROM_HERE, wrapUnique(new DispatchCallbackNonPtrArgTask<CB, Persistent<CBArg>>(callback, arg)), taskNameForInstrumentation());
|
| -}
|
| -
|
| -template <typename CB>
|
| -void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback)
|
| -{
|
| - ASSERT(executionContext->isContextThread());
|
| - if (callback)
|
| - executionContext->postTask(BLINK_FROM_HERE, wrapUnique(new DispatchCallbackNoArgTask<CB>(callback)), taskNameForInstrumentation());
|
| -}
|
| -
|
| } // namespace blink
|
|
|
| #endif // DOMFileSystem_h
|
|
|