WebRTC Community Update - WebPush-ing console warnings through Airpods on Safari

daginge Moderator, Daily Alumni

Welcome to a new edition of our WebRTC Community update!

Today we’ll update you on the latest developments in the ongoing browser war on mobile, some gnarly console logs on Firefox and whether you should care about them, and a problem with AirPods (sigh…)

If you have questions, please ask in the comments!

WebKit supports WebPush!

The ongoing browser wars between Google, Microsoft, and Mozilla have caused Apple to start ramping up their browser development efforts. As a result, the latest release of the WebKit engine, used by Apple's Safari browser, as well as all other browsers on iOS, now supports WebPush, a significant development in the world of “native” web applications.

WebPush has been a long-awaited feature, and its absence has held back the development of serious web applications. This feature enables websites to send push notifications to users, even when the website is not open in a browser. This feature is crucial for web apps, especially those that depend on real-time communication or data updates.

The support for WebPush in WebKit is a significant milestone for web application development on the iOS platform. However, there are some limitations – WebPush is only available for web apps installed to the home screen. These apps, also known as single-page applications (SPAs), can now send push notifications to users without the need for the app to be open in a browser. In addition, we don’t see CallKit integration yet, which is a crucial feature for video calling applications.

This limitation does not diminish the significance of this development, especially for companies building web experiences for video conferencing applications that should also work on mobile. WebPush support will enable web apps to deliver a more seamless and integrated user experience, with real-time notifications and updates.

In conclusion, the support for WebPush in WebKit is a significant development that will enable web apps to take advantage of this critical feature on the iOS platform. It is exciting to see the competition between the major players driving innovation and progress in web development, and we are eager to see what other advancements lie ahead.

Firefox with new console warnings when using setParameters impacts Daily, and others

Mozilla's Firefox browser has recently implemented a change that could impact developers who call the setParameters method without first calling getParameters. The change is a warning in the console, indicating that the behavior allowed in Firefox is not compliant with the WebRTC specification. The warning looks like this:

WARNING! Invalid setParameters call detected! The good news? Firefox supports sendEncodings in addTransceiver now, so we ask that you switch over to using the parameters code you use for other browsers. Thank you for your patience and support. The specific error was: Cannot change transaction id: call getParameters, modify the result, and then call setParameters

Currently, the warning is just that - a warning. However, in the future, this warning will become an error that is thrown, potentially breaking applications. This change has led to several reports from concerned developers who have been impacted by these new warnings.

Daily customers have also been impacted by this issue due to our use of mediasoup-client, which both feature checks and modifies parameters. After conducting an investigation, we concluded that we, and by extension mediasoup-client, appear to behave correctly, and that the console.log warnings are overly eager.

We were able to reproduce the issue and have reported it to Mozilla. We hope that future versions of Firefox will only warn in cases where the behavior could potentially break applications.

We will continue to monitor this situation and work closely with Mozilla to ensure that any potential issues are addressed. We don’t foresee any issues affecting customers or end-users due to this bug as of today.

AirPods cause issues in WebRTC video calls, may break microphone capture silently when playing high-quality media in another tab

AirPods have become an essential accessory for many users, providing a convenient and wireless way to listen to music, take phone calls, and participate in video conferences. However, Airpods have become notorious for issues with video calling applications, and this latest bug is no exception. 

In this recent bug report, we see issues where microphone capture may fail when playing high-quality audio in another tab. The issue is intermittent, but it seems to be fairly reproducible. This bug report also theorizes that the issue may affect all Bluetooth headphones, which could be a huge deal, especially for iOS users. This issue may prove to be fatal, even for native video calling applications.

An example use case where this could happen is if a user is in an active video call, and shares their screen to play a youtube video. Once playing, there is a chance that the youtube audio overrides the Bluetooth mode (HSP -> A2DP which only support one-way audio) so that microphone audio is no longer captured.

Bluetooth and Apple have been problematic when it comes to video calling for a while now. Despite improvements in recent years, we still see odd behavior reported by users when using bluetooth headphones, and especially AirPods for video calls. This recent bug is just one example of the problems that can arise.

Unfortunately, there is not much that we can do at the moment, but hope that Apple takes this issue seriously. In the meantime, we recommend that you give a heads up to your support staff and have users attempt calls without using headphones, or with wired ones. While this may not be ideal for all users, it may help to minimize issues during important video calls.

We hope these updates are useful for you! Is there anything in particular you would like to see us talk about next time, or do you have any questions? Let us know below!

This tech update is based on information from WebRTC Insights, a biweekly newsletter that provides information on things happening in the WebRTC ecosystem. Learn more about WebRTC Insights.