OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef TaskRunnerHelper_h | 5 #ifndef TaskRunnerHelper_h |
6 #define TaskRunnerHelper_h | 6 #define TaskRunnerHelper_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "platform/wtf/Allocator.h" | 9 #include "platform/wtf/Allocator.h" |
10 #include "platform/wtf/HashTraits.h" | 10 #include "platform/wtf/HashTraits.h" |
11 | 11 |
12 namespace blink { | 12 namespace blink { |
13 | 13 |
14 class Document; | 14 class Document; |
15 class ExecutionContext; | 15 class ExecutionContext; |
16 class LocalFrame; | 16 class LocalFrame; |
17 class ScriptState; | 17 class ScriptState; |
18 class WebTaskRunner; | 18 class WebTaskRunner; |
19 class WorkerOrWorkletGlobalScope; | |
20 class WorkerThread; | |
21 | 19 |
22 enum class TaskType : unsigned { | 20 enum class TaskType : unsigned { |
23 // Speced tasks and related internal tasks should be posted to one of | 21 // Speced tasks and related internal tasks should be posted to one of |
24 // the following task runners. These task runners may be throttled. | 22 // the following task runners. These task runners may be throttled. |
25 | 23 |
26 // https://html.spec.whatwg.org/multipage/webappapis.html#generic-task-sources | 24 // https://html.spec.whatwg.org/multipage/webappapis.html#generic-task-sources |
27 // | 25 // |
28 // This task source is used for features that react to DOM manipulations, such | 26 // This task source is used for features that react to DOM manipulations, such |
29 // as things that happen in a non-blocking fashion when an element is inserted | 27 // as things that happen in a non-blocking fashion when an element is inserted |
30 // into the document. | 28 // into the document. |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 // object. The posted tasks are guaranteed to run in a sequence if they have the | 139 // object. The posted tasks are guaranteed to run in a sequence if they have the |
142 // same TaskType and the context objects belong to the same frame. | 140 // same TaskType and the context objects belong to the same frame. |
143 class CORE_EXPORT TaskRunnerHelper final { | 141 class CORE_EXPORT TaskRunnerHelper final { |
144 STATIC_ONLY(TaskRunnerHelper); | 142 STATIC_ONLY(TaskRunnerHelper); |
145 | 143 |
146 public: | 144 public: |
147 static RefPtr<WebTaskRunner> Get(TaskType, LocalFrame*); | 145 static RefPtr<WebTaskRunner> Get(TaskType, LocalFrame*); |
148 static RefPtr<WebTaskRunner> Get(TaskType, Document*); | 146 static RefPtr<WebTaskRunner> Get(TaskType, Document*); |
149 static RefPtr<WebTaskRunner> Get(TaskType, ExecutionContext*); | 147 static RefPtr<WebTaskRunner> Get(TaskType, ExecutionContext*); |
150 static RefPtr<WebTaskRunner> Get(TaskType, ScriptState*); | 148 static RefPtr<WebTaskRunner> Get(TaskType, ScriptState*); |
151 static RefPtr<WebTaskRunner> Get(TaskType, WorkerOrWorkletGlobalScope*); | |
152 | |
153 // Returns a WebTaskRunner that is associated to the worker / worklet global | |
154 // scope that corresponds to the given WorkerThread. Note that WorkerThread is | |
155 // a per-global-scope object while the naming might sound differently. | |
156 // TODO(nhiroki): Rename WorkerThread to something that clarifies it's a | |
157 // per-global-scope object. | |
158 static RefPtr<WebTaskRunner> Get(TaskType, WorkerThread*); | |
159 }; | 149 }; |
160 | 150 |
161 } // namespace blink | 151 } // namespace blink |
162 | 152 |
163 #endif | 153 #endif |
OLD | NEW |