Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / dom / ExecutionContextTask.h
index 54b1bc8..60507a2 100644 (file)
@@ -46,10 +46,10 @@ public:
     virtual void performTask(ExecutionContext*) = 0;
     // Certain tasks get marked specially so that they aren't discarded, and are executed, when the context is shutting down its message queue.
     virtual bool isCleanupTask() const { return false; }
-    virtual const String& taskNameForInstrumentation() const { return emptyString(); }
+    virtual String taskNameForInstrumentation() const { return String(); }
 };
 
-class CallClosureTask FINAL : public ExecutionContextTask {
+class CallClosureTask final : public ExecutionContextTask {
 public:
     // Do not use |create| other than in createCrossThreadTask and
     // createSameThreadTask.
@@ -58,7 +58,7 @@ public:
     {
         return adoptPtr(new CallClosureTask(closure));
     }
-    virtual void performTask(ExecutionContext*) OVERRIDE { m_closure(); }
+    virtual void performTask(ExecutionContext*) override { m_closure(); }
 
 private:
     explicit CallClosureTask(const Closure& closure) : m_closure(closure) { }
@@ -70,80 +70,11 @@ private:
 // of using |bind| directly to state explicitly that there is no need to care
 // about thread safety when posting the task.
 // When posting tasks across threads, use |createCrossThreadTask|.
-template<typename FunctionType>
+template<typename FunctionType, typename... P>
 PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function)
+    FunctionType function, const P&... parameters)
 {
-    return CallClosureTask::create(bind(function));
-}
-
-template<typename FunctionType, typename P1>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1));
-}
-
-template<typename FunctionType, typename P1, typename P2>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1, const P2& parameter2)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1,
-        parameter2));
-}
-
-template<typename FunctionType, typename P1, typename P2, typename P3>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1, const P2& parameter2, const P3& parameter3)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1,
-        parameter2,
-        parameter3));
-}
-
-template<typename FunctionType, typename P1, typename P2, typename P3, typename P4>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1, const P2& parameter2, const P3& parameter3, const P4& parameter4)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1,
-        parameter2,
-        parameter3,
-        parameter4));
-}
-
-template<typename FunctionType, typename P1, typename P2, typename P3, typename P4, typename P5>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1, const P2& parameter2, const P3& parameter3, const P4& parameter4, const P5& parameter5)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1,
-        parameter2,
-        parameter3,
-        parameter4,
-        parameter5));
-}
-
-template<typename FunctionType, typename P1, typename P2, typename P3, typename P4, typename P5, typename P6>
-PassOwnPtr<ExecutionContextTask> createSameThreadTask(
-    FunctionType function,
-    const P1& parameter1, const P2& parameter2, const P3& parameter3, const P4& parameter4, const P5& parameter5, const P6& parameter6)
-{
-    return CallClosureTask::create(bind(function,
-        parameter1,
-        parameter2,
-        parameter3,
-        parameter4,
-        parameter5,
-        parameter6));
+    return CallClosureTask::create(bind(function, parameters...));
 }
 
 } // namespace