# isSupportChromeWideAEC() sniffs browser name + version, breaking echo cancellation on Microsoft Edge

**URL:** <https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288>\
**Category:** Video SDK\
**Created:** [August 4, 2026, 3:21pm UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288 "2026-08-04T15:21:09Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Orlando3](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/orlando3/32/75833_2.png) [@Orlando3](https://devforum.zoom.us/u/Orlando3)\
**Post date:** [August 4, 2026, 3:21pm UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288/1 "2026-08-04T15:21:09Z")

</div>

**Category:** Video SDK — Web **SDK version:** `@zoom/videosdk` 2.4.5 **Browser:** Microsoft Edge (Chromium) on Windows **Works correctly on:** Google Chrome, same OS

## **Description**

On Microsoft Edge, any audio coming out of the participant’s speakers is captured by their microphone and sent to the other participants — including audio from unrelated applications (music, a video in another tab). The same steps in Chrome on the same machine are fine: the audio is cancelled as expected. Our app passes no custom audio constraints, only `backgroundNoiseSuppression: true`.

## **Root cause**

Reading `dist/lib/js_media.min.js`, the SDK chooses between two playback routes based on `isChromeWideAECEnabled = isSupportChromeWideAEC()`:

- when **true** , session audio plays through the page’s `AudioContext` (`this.audioCtx`);
- when **false** , it plays through a media element plus a peer connection (`this.audioDomNode` / `CloseBoringPeerConnection`).

Routing playback through an `AudioContext` is only echo-cancellable because of Chromium’s Chrome-wide echo cancellation, which is what makes non-WebRTC output visible to the AEC reference signal. Without that feature, the echo canceller never sees what the speakers are playing.

The support check is:

```auto
isSupportChromeWideAEC(){

```

` const e = this.isChromeOS() && LZ(116);`

` return (this.isMac() || this.isWindows() || this.isLinux()) && LZ(111) || e || isGoogleMeetMode`

`}`

and `LZ(n)` resolves to `a("chrome", n)`, whose helper explicitly accepts Edge alongside Chrome and Opera:

```auto
a=(e,t)=>{ ... if("chrome"===e||"chromium"===e){ if(isChrome()||isEdge()||isOpera()) return versionGte(i,t) } ... }

```

So on Edge/Windows \>= 111 the SDK concludes Chrome-wide AEC is available purely from browser name and version, and switches playback to the `AudioContext` path on that basis.

Chrome-wide echo cancellation is a Chromium **feature-flag** default, not a guaranteed property of a Chromium version. Edge does not necessarily ship Chrome’s flag defaults. When it is off in Edge, the SDK is on the AudioContext playback path with no working echo cancellation, and all speaker output leaks into the captured microphone stream.

This is a version/UA sniff where a capability check belongs. Note also that the SDK’s own `isChrome` getter buckets modern Edge as Chrome, so there is no Edge-specific branch anywhere in the audio path.

For completeness, `backgroundNoiseSuppression` is not involved: `isSupportAudioAEC()` is disabled only for MSFT Teams Android Room devices and an explicit `aec:0` UA override, so the capture constraint remains `echoCancellation: true` on Edge. The defect is on the playback reference path, not on capture.

## **Steps to reproduce**

1. Join a Video SDK session in Microsoft Edge on Windows, microphone on, using laptop speakers (not a headset).
2. Play music or a video — another browser tab or a desktop application.
3. From a second participant on any browser, listen to the Edge participant: the media is clearly audible.
4. Repeat in Chrome on the same machine: the media is cancelled.

## **Expected**

Speaker output should be cancelled from the captured microphone stream on Edge as it is on Chrome.

## **Request**

Please make `isSupportChromeWideAEC()` feature-detect Chrome-wide echo cancellation rather than infer it from browser name and version, so Edge (and any other Chromium embedder whose flag defaults differ from Chrome’s) falls back to the media-element playback path instead of silently losing echo cancellation.

Is there an interim escape hatch we can use from application code to force the `audioDomNode` playback path on Edge? `customAudioConstraints` only affects capture, so it does not appear to address this, and per the docs it would also disable `backgroundNoiseSuppression` for us.

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [August 5, 2026, 12:35pm UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288/2 "2026-08-05T12:35:10Z")

</div>

Checking in with our team, I’ll report back if we can offer a workaround for Edge.

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [August 6, 2026, 10:04am UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288/3 "2026-08-06T10:04:58Z")

</div>

Hey @Orlando3 are you using the browser or another application to play the audio? Chrome and Edge likely cannot eliminate sound coming from other applications, we’re investigating still.

---

<div class="post-metadata">

**Author:** ![Orlando3](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/orlando3/32/75833_2.png) [@Orlando3](https://devforum.zoom.us/u/Orlando3)\
**Post date:** [August 6, 2026, 2:30pm UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288/4 "2026-08-06T14:30:09Z")

</div>

@ekaansh.zoom I was using zoom sdk in our platform, in a edge browser, and playing a video in chrome. That problem only happens in microsoft Edge. Same thing with other browsers does not happens.

---

<div class="post-metadata">

**Author:** ![ekaansh.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaansh.zoom/32/55004_2.png) [@ekaansh.zoom](https://devforum.zoom.us/u/ekaansh.zoom)\
**Post date:** [August 17, 2026, 7:59am UTC](https://devforum.zoom.us/t/issupportchromewideaec-sniffs-browser-name-version-breaking-echo-cancellation-on-microsoft-edge/145288/5 "2026-08-17T07:59:05Z")

</div>

Hi @Orlando3, Edge can only cancel the audio played through Edge. And similarly, Chrome can only cancel the audio played through Chrome. This seems to be a browser constraint. Also, browsers do not expose an API to detect whether AEC is supported or enabled on your device. So, the SDK can only determine this based on the browser version for now.
