Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / filesystem / DOMFileSystem.h
index 9a52953..429228e 100644 (file)
 namespace blink {
 
 class DirectoryEntry;
-class File;
 class FileCallback;
 class FileEntry;
 class FileWriterCallback;
 
-class DOMFileSystem FINAL : public DOMFileSystemBase, public ScriptWrappable, public ActiveDOMObject {
+class DOMFileSystem final : public DOMFileSystemBase, public ScriptWrappable, public ActiveDOMObject {
     DEFINE_WRAPPERTYPEINFO();
 public:
     static DOMFileSystem* create(ExecutionContext*, const String& name, FileSystemType, const KURL& rootURL);
@@ -58,12 +57,12 @@ public:
     DirectoryEntry* root();
 
     // DOMFileSystemBase overrides.
-    virtual void addPendingCallbacks() OVERRIDE;
-    virtual void removePendingCallbacks() OVERRIDE;
-    virtual void reportError(ErrorCallback*, PassRefPtrWillBeRawPtr<FileError>) OVERRIDE;
+    virtual void addPendingCallbacks() override;
+    virtual void removePendingCallbacks() override;
+    virtual void reportError(ErrorCallback*, FileError*) override;
 
     // ActiveDOMObject overrides.
-    virtual bool hasPendingActivity() const OVERRIDE;
+    virtual bool hasPendingActivity() const override;
 
     void createWriter(const FileEntry*, FileWriterCallback*, ErrorCallback*);
     void createFile(const FileEntry*, FileCallback*, ErrorCallback*);
@@ -82,6 +81,9 @@ public:
     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*);
 
@@ -108,23 +110,15 @@ private:
 
     class DispatchCallbackTaskBase : public ExecutionContextTask {
     public:
-        DispatchCallbackTaskBase()
-            : m_taskName("FileSystem")
+        virtual String taskNameForInstrumentation() const override
         {
+            return "FileSystem";
         }
-
-        virtual const String& taskNameForInstrumentation() const OVERRIDE
-        {
-            return m_taskName;
-        }
-
-    private:
-        const String m_taskName;
     };
 
     // A helper template to schedule a callback task.
     template <typename CB, typename CBArg>
-    class DispatchCallbackRefPtrArgTask FINAL : public DispatchCallbackTaskBase {
+    class DispatchCallbackRefPtrArgTask final : public DispatchCallbackTaskBase {
     public:
         DispatchCallbackRefPtrArgTask(CB* callback, PassRefPtrWillBeRawPtr<CBArg> arg)
             : m_callback(callback)
@@ -132,7 +126,7 @@ private:
         {
         }
 
-        virtual void performTask(ExecutionContext*) OVERRIDE
+        virtual void performTask(ExecutionContext*) override
         {
             m_callback->handleEvent(m_callbackArg.get());
         }
@@ -143,7 +137,7 @@ private:
     };
 
     template <typename CB, typename CBArg>
-    class DispatchCallbackPtrArgTask FINAL : public DispatchCallbackTaskBase {
+    class DispatchCallbackPtrArgTask final : public DispatchCallbackTaskBase {
     public:
         DispatchCallbackPtrArgTask(CB* callback, CBArg* arg)
             : m_callback(callback)
@@ -151,7 +145,7 @@ private:
         {
         }
 
-        virtual void performTask(ExecutionContext*) OVERRIDE
+        virtual void performTask(ExecutionContext*) override
         {
             m_callback->handleEvent(m_callbackArg.get());
         }
@@ -162,7 +156,7 @@ private:
     };
 
     template <typename CB, typename CBArg>
-    class DispatchCallbackNonPtrArgTask FINAL : public DispatchCallbackTaskBase {
+    class DispatchCallbackNonPtrArgTask final : public DispatchCallbackTaskBase {
     public:
         DispatchCallbackNonPtrArgTask(CB* callback, const CBArg& arg)
             : m_callback(callback)
@@ -170,7 +164,7 @@ private:
         {
         }
 
-        virtual void performTask(ExecutionContext*) OVERRIDE
+        virtual void performTask(ExecutionContext*) override
         {
             m_callback->handleEvent(m_callbackArg);
         }
@@ -181,14 +175,14 @@ private:
     };
 
     template <typename CB>
-    class DispatchCallbackNoArgTask FINAL : public DispatchCallbackTaskBase {
+    class DispatchCallbackNoArgTask final : public DispatchCallbackTaskBase {
     public:
         DispatchCallbackNoArgTask(CB* callback)
             : m_callback(callback)
         {
         }
 
-        virtual void performTask(ExecutionContext*) OVERRIDE
+        virtual void performTask(ExecutionContext*) override
         {
             m_callback->handleEvent();
         }
@@ -232,6 +226,14 @@ void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* cal
         executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB, CBArg>(callback, arg)));
 }
 
+template <typename CB, typename CBArg>
+void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback, const Member<CBArg>& arg)
+{
+    ASSERT(executionContext->isContextThread());
+    if (callback)
+        executionContext->postTask(adoptPtr(new DispatchCallbackNonPtrArgTask<CB, Persistent<CBArg> >(callback, arg)));
+}
+
 template <typename CB>
 void DOMFileSystem::scheduleCallback(ExecutionContext* executionContext, CB* callback)
 {