| Index: third_party/WebKit/Source/platform/WebTaskRunner.cpp
|
| diff --git a/third_party/WebKit/Source/platform/WebTaskRunner.cpp b/third_party/WebKit/Source/platform/WebTaskRunner.cpp
|
| index 439963d501f44ebafdfc82663050e5fa11047a30..67a38bef8af6f8d0d56c9b1638266eb8293e68aa 100644
|
| --- a/third_party/WebKit/Source/platform/WebTaskRunner.cpp
|
| +++ b/third_party/WebKit/Source/platform/WebTaskRunner.cpp
|
| @@ -4,10 +4,44 @@
|
|
|
| #include "public/platform/WebTaskRunner.h"
|
|
|
| -#include "platform/Task.h"
|
| -
|
| namespace blink {
|
|
|
| +class SameThreadTask : public WebTaskRunner::Task {
|
| + USING_FAST_MALLOC(SameThreadTask);
|
| + WTF_MAKE_NONCOPYABLE(SameThreadTask);
|
| +public:
|
| + explicit SameThreadTask(std::unique_ptr<SameThreadClosure> closure)
|
| + : m_closure(std::move(closure))
|
| + {
|
| + }
|
| +
|
| + void run() override
|
| + {
|
| + (*m_closure)();
|
| + }
|
| +
|
| +private:
|
| + std::unique_ptr<SameThreadClosure> m_closure;
|
| +};
|
| +
|
| +class CrossThreadTask : public WebTaskRunner::Task {
|
| + USING_FAST_MALLOC(CrossThreadTask);
|
| + WTF_MAKE_NONCOPYABLE(CrossThreadTask);
|
| +public:
|
| + explicit CrossThreadTask(std::unique_ptr<CrossThreadClosure> closure)
|
| + : m_closure(std::move(closure))
|
| + {
|
| + }
|
| +
|
| + void run() override
|
| + {
|
| + (*m_closure)();
|
| + }
|
| +
|
| +private:
|
| + std::unique_ptr<CrossThreadClosure> m_closure;
|
| +};
|
| +
|
| void WebTaskRunner::postTask(const WebTraceLocation& location, std::unique_ptr<CrossThreadClosure> task)
|
| {
|
| postTask(location, new CrossThreadTask(std::move(task)));
|
|
|