| Index: third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
|
| diff --git a/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp b/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
|
| index 55719983cdee79e401b0e91401cb498f910475d0..dd0dcefd17929359da1bc1d066cb731ad4fcb144 100644
|
| --- a/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
|
| +++ b/third_party/WebKit/Source/core/dom/TaskRunnerHelper.cpp
|
| @@ -13,6 +13,51 @@
|
|
|
| namespace blink {
|
|
|
| +WebTaskRunner* TaskRunnerHelper::get(TaskRunnerType type, LocalFrame* frame)
|
| +{
|
| + // TODO(haraken): Optimize the mapping from TaskRunnerTypes to task runners.
|
| + switch (type) {
|
| + case DOMManipulationTask:
|
| + case UserInteractionTask:
|
| + case HistoryTraversalTask:
|
| + case EmbedTask:
|
| + case MediaElementEventTask:
|
| + case CanvasBlobSerializationTask:
|
| + case RemoteEventTask:
|
| + case WebSocketTask:
|
| + case MicrotaskTask:
|
| + case PostedMessageTask:
|
| + case UnshippedPortMessageTask:
|
| + case TimerTask:
|
| + case InternalTask:
|
| + return frame ? frame->frameScheduler()->timerTaskRunner() : Platform::current()->currentThread()->getWebTaskRunner();
|
| + case NetworkingTask:
|
| + return frame ? frame->frameScheduler()->loadingTaskRunner() : Platform::current()->currentThread()->getWebTaskRunner();
|
| + case IdleTask:
|
| + // TODO(haraken): Implement this. We need to expose frameScheduler()->idleTaskRunner().
|
| + NOTREACHED();
|
| + case UnthrottledTask:
|
| + return frame ? frame->frameScheduler()->unthrottledTaskRunner() : Platform::current()->currentThread()->getWebTaskRunner();
|
| + default:
|
| + NOTREACHED();
|
| + }
|
| +}
|
| +
|
| +WebTaskRunner* TaskRunnerHelper::get(TaskRunnerType type, Document* document)
|
| +{
|
| + return get(type, document ? document->frame() : nullptr);
|
| +}
|
| +
|
| +WebTaskRunner* TaskRunnerHelper::get(TaskRunnerType type, ExecutionContext* executionContext)
|
| +{
|
| + return get(type, executionContext && executionContext->isDocument() ? static_cast<Document*>(executionContext) : nullptr);
|
| +}
|
| +
|
| +WebTaskRunner* TaskRunnerHelper::get(TaskRunnerType type, ScriptState* scriptState)
|
| +{
|
| + return get(type, scriptState ? scriptState->getExecutionContext() : nullptr);
|
| +}
|
| +
|
| WebTaskRunner* TaskRunnerHelper::getUnthrottledTaskRunner(LocalFrame* frame)
|
| {
|
| return frame ? frame->frameScheduler()->unthrottledTaskRunner() : Platform::current()->currentThread()->getWebTaskRunner();
|
|
|