Frame Associated Task Types

Blink uses a series of task types defined in 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 TypeThrottlableThrottlable (intensive)DeferrableFreezablePausableVirtual time
DOMManipulationNoNoYesYesYesYes
UserInteractionNoNoNoYesYesYes
NetworkingNoNoYesYesYesNo
NetworkingWithURLLoaderAnnotationNoNoYesYesYesNo
NetworkingControlNoNoYesYesYesNo
HistoryTraversalNoNoYesYesYesYes
EmbedNoNoYesYesYesYes
MediaElementEventNoNoNoYesYesYes
CanvasBlobSerializationNoNoYesYesYesYes
MicrotaskNoNoYesYesYesYes
JavascriptTimerDelayedLowNestingYesNo [^1]YesYesYesYes
JavascriptTimerDelayedHighNestingYesYes [^2]YesYesYesYes
JavascriptTimerImmediateNoNoYesYesYesYes
RemoteEventNoNoYesYesYesYes
WebSocketNoNoYesYesYesYes
PostedMessageNoNoNoYesYesYes
UnshippedPortMessageNoNoYesYesYesYes
FileReadingNoNoYesYesYesYes
DatabaseAccessNoNoNoYesYesYes
PresentationNoNoYesYesYesYes
SensorNoNoYesYesYesYes
PerformanceTimelineNoNoYesYesYesYes
WebGLNoNoYesYesYesYes
WebGPUNoNoYesYesYesYes
IdleTaskNoNoYesYesYesYes
MiscPlatformAPINoNoYesYesYesYes
WorkerAnimationNoNoNoYesYesYes
FontLoadingNoNoYesYesYesYes
ApplicationLifeCycleNoNoYesYesYesYes
BackgroundFetchNoNoYesYesYesYes
PermissionNoNoYesYesYesYes
ServiceWorkerClientMessageNoNoNoYesYesYes
WebLocksNoNoNoNoNoYes
WakeLockNoNoYesYesYesYes
WebSchedulingPostedTaskYes [^3]Yes [^3]YesYesYesYes
InternalDefaultNoNoYesYesYesYes
InternalLoadingNoNoYesYesYesNo
InternalTestNoNoNoNoNoYes
InternalWebCryptoNoNoNoYesYesYes
InternalMediaNoNoNoYesYesYes
InternalMediaRealTimeNoNoNoYesYesYes
InternalIPCNoNoNoNoNoYes
InternalUserInteractionNoNoNoYesYesYes
InternalInspectorNoNoNoNoNoNo
InternalTranslationYesNoYesYesYesYes
InternalIntersectionObserverNoNoNoYesYesYes
InternalContentCaptureYesNoYesYesYesYes
InternalNavigationAssociatedNoNoNoNoNoNo
InternalFreezableIPCNoNoNoYesNoNo
InternalContinueScriptLoadingNoNoNoYesYesYes
InternalPostMessageForwardingNoNoNoNoYesYes

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.

[^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.