Chromium Code Reviews| Index: Source/platform/scheduler/Scheduler.cpp |
| diff --git a/Source/platform/scheduler/Scheduler.cpp b/Source/platform/scheduler/Scheduler.cpp |
| index 535f114114da747340502f20efd830cbf81440d0..6e41f73ba52e941b5c3bf053e7af6fabf7fbc576 100644 |
| --- a/Source/platform/scheduler/Scheduler.cpp |
| +++ b/Source/platform/scheduler/Scheduler.cpp |
| @@ -13,6 +13,7 @@ |
| namespace blink { |
| class IdleTaskRunner : public WebScheduler::IdleTask { |
| + WTF_MAKE_NONCOPYABLE(IdleTaskRunner); |
| public: |
| explicit IdleTaskRunner(PassOwnPtr<Scheduler::IdleTask> task) |
| : m_task(task) |
| @@ -32,6 +33,26 @@ private: |
| OwnPtr<Scheduler::IdleTask> m_task; |
| }; |
| +class ClosureRunner : public WebThread::Task { |
| + WTF_MAKE_NONCOPYABLE(ClosureRunner); |
| +public: |
| + explicit ClosureRunner(PassOwnPtr<Closure> closure) : m_closure(closure) |
| + { |
| + } |
| + |
| + virtual ~ClosureRunner() |
|
Sami
2015/01/26 17:18:34
s/virtual/override/
alex clarke (OOO till 29th)
2015/01/26 17:31:35
Done.
|
| + { |
| + } |
| + |
| + // WebThread::Task implementation. |
| + void run() override |
| + { |
| + (*m_closure)(); |
| + } |
| +private: |
| + OwnPtr<Closure> m_closure; |
| +}; |
| + |
| Scheduler* Scheduler::s_sharedScheduler = nullptr; |
| void Scheduler::shutdown() |
| @@ -64,6 +85,12 @@ void Scheduler::postIdleTask(const TraceLocation& location, PassOwnPtr<IdleTask> |
| m_webScheduler->postIdleTask(WebTraceLocation(location), new IdleTaskRunner(idleTask)); |
| } |
| +void Scheduler::postLoadingTask(const TraceLocation& location, PassOwnPtr<Closure> closure) |
| +{ |
| + if (m_webScheduler) |
| + m_webScheduler->postLoadingTask(WebTraceLocation(location), new ClosureRunner(closure)); |
| +} |
| + |
| bool Scheduler::shouldYieldForHighPriorityWork() const |
| { |
| if (m_webScheduler) |