---
title: "Watch WebRTC Live #66: The State of WebRTC Browser Support – WebRTC.ventures"
description: For our 66th episode of WebRTC Live, Arin welcomed IIT Professor Dr. Karl Stolley for a progress report on WebRTC browser implementation. While they have never been as robust or as uniform as they are right now, Karl covered lingering issues in Safari, Chrome, and Firefox.
---

[WebRTC.ventures Blog](https://blog.webrtc.ventures)

# [Watch WebRTC Live #66: The State of WebRTC Browser Support – WebRTC.ventures](https://blog.webrtc.ventures/2022/04/webrtclive-browser-support)

 Written by [Jen Oppenheimer](https://blog.webrtc.ventures/author/jen-oppenheimer) | Apr 25, 2022 4:00:00 AM

On April 20, 2022, Arin welcomed Dr. Karl Stolley for a progress report on WebRTC browser implementation. 

Karl is an Associate Professor of Information Technology & Management Illinois Institute of Technology where he teaches undergraduate and graduate courses on a range of web development topics, including one on WebRTC. He is also the author of [*Programming WebRTC: Build Real-Time Streaming Applications for the Web*](https://pragprog.com/titles/ksrtc/programming-webrtc/), currently in beta release with Pragmatic Programmers. 

Karl began with a warning: As with any specification, WebRTC is not now, or ever in the future, going to enjoy a perfect implementation in any browser. There is no golden point on the horizon we are aiming for. There is always going to be something that lags and it will always be a moving target. Especially with older versions of the browsers always hanging around. 

That being said, WebRTC implementations have never been as robust or as uniform as they are right now. This is especially true with the release of [Safari 15.4](https://developer.apple.com/documentation/safari-release-notes/safari-15_4-release-notes). There is no need or excuse to exclude any major browser on the market when doing WebRTC development. And it is absolutely possible to write code that gracefully supports much older browsers. Karl advocates for always providing at least baseline support. 

Below are the lingering issues that Karl reported on in his discussion. His slides are available at [ks4.us/webrtc.live](https://ks4.us/webrtc-live).

## Firefox: Major Issue

- Still missing connection-related APIs, particularly `connectionstatechange` event and `connectionState` property ([adapter.js](https://github.com/webrtcHacks/adapter) will polyfill). BUG: [https://bugzil.la/1265827](https://bugzil.la/1265827)

## Firefox: Minor Issues

- **FIXED!** Missing `setConfiguration()`; edge case for presenting new set of ICE servers, for example. Resolved bug: [https://bugzil.la/1253706](https://bugzil.la/1253706)

- Missing `icecandidateerror` event (STUN/TURN). BUG: [https://bugzil.la/1561441](https://bugzil.la/1561441)

- Missing `sctp` diagnostic read-only property on data channels. BUG: [https://bugzil.la/1278299](https://bugzil.la/1278299)

## Chrome: Major Issue

- Still lacking support for `blob` value for `binaryType` on RTC Data Channels. BUG: [https://bugs.chromium.org/p/webrtc/issues/detail?id=2276](https://bugs.chromium.org/p/webrtc/issues/detail?id=2276)

- Chrome appears to be hung up waiting for the SCTP ndata specification ([RFC 8260](https://datatracker.ietf.org/doc/html/rfc8260)). SCTP ndata will improve send queue and EOR problems, and effectively remove the upper limits to RTCDataChannel message sizes (currently at ~16KiB)—a problem even in Firefox’s blob implementation.

## Safari (MacOS & iOS) Major Issues

- **FIXED, as of Safari 15.4:** Argumentless, signaling state-based calls to `setLocalDescription()`. Of course, plenty of older Safaris in circulation means including manual calls to `createOffer()` and `createAnswer()` and passing results into `setLocalDescription()`.
- **FIXED, as of Safari 15.4:** No auto rollback on `setRemoteDescription()` or manual rollback with `setLocalDescription({ type: 'rollback' })`. In other words, **perfect negotiation now works on Safari**, as of Safari 15.4. [Safari 15.4 Release Notes](https://developer.apple.com/documentation/safari-release-notes/safari-15_4-release-notes).

## Safari: Media Issues

- **FIXED, as of Safari 14.1:** Correct implementation of the `mute` and `unmute` events and event-handler properties on MediaStreamTrack. Still unsafe to use those events because of older Safari implementations, however.
- **NEW, Safari 15:** The `autoplay` attribute on streaming videos is not behaving correctly. He’s replicated this consistently on iOS and iPadOS, but intermittently on MacOS. Workaround: a timed, artificial click event that calls `play()` on the video element. **FIXED, as of Safari 15.3.** See [https://karlstolley.github.io/safari-15-autoplay/](https://karlstolley.github.io/safari-15-autoplay/). 

- **New, unconfirmed, as of Safari 15:** Incorrect video-element mattes on portrait mode videos. He has replicated this consistently on iOS but never tracked down the source of the error (HTML? JavaScript? even CSS?). Good argument for why you should do visual regression testing on all your WebRTC apps!

The episode concluded with a a number of questions from our viewers, including ones on changes in Chrome 100, frameworks for handling WebRTC calls for multiple versions of a browser, native UI and permissions across browsers, performance/latency impacting different binary types, closed captioning, and whether WebRTC adequate for the Metaverse. To hear the answers to these questions and more:

## [Watch Episode #66!](https://youtu.be/V4A0qqSxaFg)

**UP NEXT! WebRTC Live #67: Reducing Complexity and Latency for WebRTC with Subspace**  
*Wednesday, May 11 at 12:30pm Eastern*.  
[Register today!](https://webrtc.ventures/webrtclive_registration/)

**Do you have a topic that you would like to see discussed on WebRTC Live? Let us know by emailing [news@webrtc.ventures](mailto:news@webrtc.ventures).**

***Never miss an episode of WebRTC Live,*** *our webinar series hosted by WebRTC.ventures Founder and CEO,* [*Arin Sime*](https://www.linkedin.com/in/arinsime/)*. We feature the latest use cases and technical updates to this increasingly popular coding standard for live video. Watch past episodes on our* [*WebRTC Live page*](https://webrtc.ventures/webrtc-live/)*, our* [*YouTube channel*](https://www.youtube.com/channel/UC7ty8nH5cBP0mqiZFl9bb9g)*, and on* [*our blog*](https://webrtc.ventures/blog/)*. Better yet, use the form in the sidebar to join our mailing list and be among the first to hear about upcoming episodes and the latest news in WebRTC!*

[View full post](https://blog.webrtc.ventures/2022/04/webrtclive-browser-support)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Jen Oppenheimer"
  },
  "dateModified" : "2024-04-03T18:21:05.470Z",
  "datePublished" : "2022-04-25T04:00:00Z",
  "headline" : "Watch WebRTC Live #66: The State of WebRTC Browser Support",
  "image" : {
    "@type" : "ImageObject",
    "height" : 512,
    "url" : "https://45353883.fs1.hubspotusercontent-na1.net/hubfs/45353883/Imported_Blog_Media/Watch-WebRTC-Live-66.png",
    "width" : 1024
  },
  "mainEntityOfPage" : "https://blog.webrtc.ventures/2022/04/webrtclive-browser-support",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "WebRTC.ventures Blog"
  }
}
```