
Which APIs are supported in Web Workers and Service Workers? This chart shows the breakdown for each browser, based on automated testing.
Note that the goal is not for browsers to reach 100% on all tests. Some APIs are intentionally not exposed to workers. This site is for informational purposes only.
Web Workers
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
---|---|---|---|---|---|---|---|
Network | |||||||
EventSource (SSE) | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
fetch | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
WebSockets | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
XMLHttpRequest | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Storage | |||||||
Cache | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
IndexedDB | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
LocalStorage | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
SessionStorage | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
WebSQL | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Binary | |||||||
atob | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Atomics | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Blob | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
btoa | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
createImageBitmap | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
FileReader | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
FileReaderSync | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ImageData | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
SharedArrayBuffer | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Timers | |||||||
clearImmediate | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ |
clearInterval | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
clearTimeout | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Promise | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
requestIdleCallback | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
setImmediate | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ |
setInterval | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
setTimeout | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Location | |||||||
location.hash | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.host | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.hostname | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.origin | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.pathname | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.port | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.protocol | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
location.search | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Navigator | |||||||
navigator.onLine | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
navigator.product | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
navigator.sendBeacon | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
navigator.userAgent | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Miscellaneous | |||||||
BroadcastChannel | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
Channel Messaging | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
console | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
CustomEvent | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
DOMCursor | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
DOMRequest | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
FormData | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
importScripts | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Intl | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Notifications | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ |
OffscreenCanvas | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
performance | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
TextEncoder/TextDecoder | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
URL | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
WebCrypto | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
Worker | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ |
Service Workers
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
---|---|---|---|---|---|---|---|
Network | |||||||
EventSource (SSE) | ✓ | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ |
fetch | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
WebSockets | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
XMLHttpRequest | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Storage | |||||||
Cache | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
IndexedDB | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
LocalStorage | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
SessionStorage | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
WebSQL | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Binary | |||||||
atob | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Atomics | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Blob | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
btoa | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
createImageBitmap | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
FileReader | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
FileReaderSync | ✗ | ✗ | ✗ | ✓ | ✓ | ✓ | ✗ |
ImageData | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
SharedArrayBuffer | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
Timers | |||||||
clearImmediate | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
clearInterval | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
clearTimeout | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Promise | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
requestIdleCallback | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
setImmediate | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
setInterval | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
setTimeout | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Location | |||||||
location.hash | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.host | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.hostname | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.origin | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.pathname | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.port | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.protocol | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
location.search | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Navigator | |||||||
navigator.onLine | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
navigator.product | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
navigator.sendBeacon | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ |
navigator.userAgent | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Miscellaneous | |||||||
BroadcastChannel | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
Channel Messaging | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
console | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
CustomEvent | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
DOMCursor | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
DOMRequest | ✗ | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ |
FormData | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | ✓ |
importScripts | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Intl | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
Notifications | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ |
OffscreenCanvas | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
performance | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
TextEncoder/TextDecoder | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
URL | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
WebCrypto | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✓ |
Worker | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
A big thanks to our partners who always supported us, Kindly have a look: