chromium/third_party/blink/public/platform/TaskTypes.md

# Frame Associated Task Types

Blink uses a series of task types defined in
[task_type.h](https://cs.chromium.org/chromium/src/third_party/blink/public/platform/task_type.h).
For each task type that can be frame-attributed, the table below indicates
whether the task queue associated with this task type can be paused, throttled,
frozen or deferred. All specified (in W3C, HTML, DOM, etc) task types are
pausable. Some internal task queues are not.

| Queue Type                        | Throttlable | Throttlable (intensive) | Deferrable | Freezable | Pausable | Virtual time |
|-----------------------------------|-------------|-------------------------|------------|-----------|----------|--------------|
| DOMManipulation                   | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| UserInteraction                   | No          | No                      |  No        | Yes       | Yes      | Yes          |
| Networking                        | No          | No                      |  Yes       | Yes       | Yes      | No           |
| NetworkingWithURLLoaderAnnotation | No          | No                      |  Yes       | Yes       | Yes      | No           |
| NetworkingControl                 | No          | No                      |  Yes       | Yes       | Yes      | No           |
| LowPriorityScriptExecution        | No          | No                      |  Yes       | Yes       | Yes      | No           |
| HistoryTraversal                  | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| Embed                             | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| MediaElementEvent                 | No          | No                      |  No        | Yes       | Yes      | Yes          |
| CanvasBlobSerialization           | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| Microtask                         | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| JavascriptTimerDelayedLowNesting  | Yes         | No [^1]                 |  Yes       | Yes       | Yes      | Yes          |
| JavascriptTimerDelayedHighNesting | Yes         | Yes [^2]                |  Yes       | Yes       | Yes      | Yes          |
| JavascriptTimerImmediate          | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| RemoteEvent                       | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| WebSocket                         | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| PostedMessage                     | No          | No                      |  No        | Yes       | Yes      | Yes          |
| UnshippedPortMessage              | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| FileReading                       | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| DatabaseAccess                    | No          | No                      |  No        | Yes       | Yes      | Yes          |
| Presentation                      | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| Sensor                            | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| PerformanceTimeline               | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| WebGL                             | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| WebGPU                            | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| IdleTask                          | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| MiscPlatformAPI                   | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| WorkerAnimation                   | No          | No                      |  No        | Yes       | Yes      | Yes          |
| FontLoading                       | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| ApplicationLifeCycle              | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| BackgroundFetch                   | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| Permission                        | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| ServiceWorkerClientMessage        | No          | No                      |  No        | Yes       | Yes      | Yes          |
| WebLocks                          | No          | No                      |  No        | No        | No       | Yes          |
| WakeLock                          | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| Storage                           | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| MachineLearning                   | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| WebSchedulingPostedTask           | Yes [^3]    | Yes [^3]                |  Yes       | Yes       | Yes      | Yes          |
| InternalDefault                   | No          | No                      |  Yes       | Yes       | Yes      | Yes          |
| InternalLoading                   | No          | No                      |  Yes       | Yes       | Yes      | No           |
| InternalTest                      | No          | No                      |  No        | No        | No       | Yes          |
| InternalWebCrypto                 | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalMedia                     | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalMediaRealTime             | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalIPC                       | No          | No                      |  No        | No        | No       | Yes          |
| InternalUserInteraction           | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalInspector                 | No          | No                      |  No        | No        | No       | No           |
| InternalTranslation               | Yes         | No                      |  Yes       | Yes       | Yes      | Yes          |
| InternalIntersectionObserver      | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalContentCapture            | Yes         | No                      |  Yes       | Yes       | Yes      | Yes          |
| InternalNavigationAssociated      | No          | No                      |  No        | No        | No       | No           |
| InternalFreezableIPC              | No          | No                      |  No        | Yes       | No       | No           |
| InternalContinueScriptLoading     | No          | No                      |  No        | Yes       | Yes      | Yes          |
| InternalPostMessageForwarding     | No          | No                      |  No        | No        | Yes      | Yes          |

Internal Translation queue supports concept of it running only in the foreground. It is disabled if the page that owns it goes in background.

"Throttlable (Intensive)": Wake ups are limited to 1 per minute when the page
has been backgrounded for 5 minutes. See
[Chrome Platform Status entry](https://www.chromestatus.com/feature/4718288976216064).

[^1] "Yes" if the "IntensiveWakeUpThrottling" feature is enabled and the
"can_intensively_throttle_low_nesting_level" param is "true".

[^2] "No" if the "IntensiveWakeUpThrottling" feature is disabled.

[^3] "Yes" only for `scheduler.postTask()` tasks where delay > 0.