Next-Gen App & Browser Testing Cloud
Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles

The BroadcastChannel API supports Chrome 54+, Edge 79+, Firefox 38+, Safari 15.4+, Opera 41+, and Samsung Internet 7.2+. Learn browser support, features, use cases.

Prince Dewani
Author
May 5, 2026
The BroadcastChannel API is a WHATWG HTML Living Standard interface that lets pages, iframes, and workers from the same origin exchange messages over a named channel. It supports Chrome 54+, Edge 79+, Firefox 38+, Safari 15.4+ on macOS and iOS, Opera 41+, and Samsung Internet 7.2+, while Internet Explorer never added support.
This guide covers what the BroadcastChannel API is, the browsers that support it, key features, use cases, differences from postMessage and SharedWorker, and known issues.
The BroadcastChannel API is a JavaScript interface defined in the WHATWG HTML Living Standard. It creates a one-to-many message bus between browsing contexts that share the same origin. Pages, iframes, web workers, shared workers, and service workers can all join a named channel and receive messages posted to it.
The BroadcastChannel API works in every modern Chromium, Gecko, and WebKit browser, while Internet Explorer and Microsoft Edge Legacy never added the constructor.
Chrome supports the BroadcastChannel API from Chrome 54 on desktop and Chrome for Android. Every Chrome release since Chrome 54 ships the BroadcastChannel constructor on by default; no flag is needed and structured-cloneable payloads pass through without setup.
Microsoft Edge supports the BroadcastChannel API from Edge 79 on Windows, macOS, and Linux, the version that switched Edge to the Chromium engine. Edge 12 to 18 ran on EdgeHTML and did not include the BroadcastChannel constructor, so enterprise Windows fleets on Edge Legacy still need a fallback.
Firefox supports the BroadcastChannel API from Firefox 38 on desktop and Firefox for Android. The API has shipped on by default in every Firefox release since, including Firefox ESR builds used in long-support enterprise environments.
Safari supports the BroadcastChannel API from Safari 15.4 on macOS and iOS Safari 15.4 on iPhone and iPad. Earlier Safari versions did not include the BroadcastChannel constructor, so any site that still sees iOS 14 or macOS Big Sur traffic needs a localStorage storage-event fallback.
Opera supports the BroadcastChannel API from Opera 41 on desktop and Opera Mobile 80 on Android. Coverage tracks Chromium because every Opera build since Opera 15 is Chromium-based, so Opera GX inherits the same support window.
Samsung Internet supports the BroadcastChannel API from Samsung Internet 7.2 on Android. Galaxy phones and tablets that ship with Samsung Internet 7.2 and later inherit support automatically, since the browser tracks Chromium upstream.
WebView on Android supports the BroadcastChannel API in step with Chrome for Android, so apps that embed a WebView running Chromium 54 or later get the BroadcastChannel constructor for free. The legacy stock Android Browser, frozen at Android 4.4, does not support it.
Internet Explorer never added BroadcastChannel support. IE 5.5 through IE 11 reach the page without the BroadcastChannel constructor, so feature detection must fall back to localStorage with the storage event. Microsoft has retired Internet Explorer, and IE traffic is now a small slice of enterprise Windows fleets.
Note: BroadcastChannel breaks across older Safari, Edge Legacy, and Internet Explorer. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
The BroadcastChannel API gives JavaScript a small, easy-to-use pub/sub bus for same-origin tabs, frames, and workers, with structured cloning of any serializable payload.
Feature-detect the constructor before you reach for it; the snippet below ships in production code on browsers that lack the API:
// Feature detect BroadcastChannel before constructing one.
if (typeof BroadcastChannel !== 'undefined') {
const runs = new BroadcastChannel('test-runs');
runs.postMessage({ status: 'started', runId: 1842 });
runs.onmessage = (event) => {
console.log('Run update:', event.data);
};
} else {
console.warn('BroadcastChannel not supported. Falling back to localStorage events.');
}Web apps reach for the BroadcastChannel API any time the same user has multiple tabs open and one tab needs to tell the others about a state change.
BroadcastChannel is well established, but production code still has to plan around several real constraints that the spec is explicit about.
In my experience, the most common production bug is assuming structured cloning preserves class instances. A receiver that calls instance.refresh() after a postMessage works in development with a single tab and breaks the moment a second tab joins the channel. Always serialize to plain objects and rehydrate on the receiver side.
All BroadcastChannel API version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance