Being a little more specific, when openning a tab using window.open() function, it seems that stopping audio in the second tab also "stops" the audio-receiving in the first one. Tested in Safari 13.1.2 macOS High Sierra. We can also reproduce this in all iOS devices we have tested: iOS versions 12+, 13+ Steps to reproduce, using two browsers: Browser 1 (B1) and Safari Browser (SB) 1 ) B1 join appr.tc room with audio/video. Let's call this room B1's room. 2 ) SB join appr.tc room with audio/video (make sure SB can hear B1). * before continuing, make sure SB is able to open pop-up windows from appr-tc (Safari > Preferences > pop-up) 3) In SB, open JS console and type: window.open('https://appr.tc/','_blank'); this should open a new tab with appr.tc website (but don't click Join yet!). Leave this new tab open while you come back to the first tab. 4) In SB's first tab, hangup the call (By clicking on the "phone" icon at the left of the page) 5) Go to SB's new tab and join any other room with audio/video. After that you can close this new tab (you don't need to click hangup on this new tab) 6) Back to SB's first tab, join B1's room with audio/video. SB won't hear audio anymore (it can speaks though). Refreshing page won't work. You will need to close/open a new tab to make audio hearing working again. Thanks in advance.
<rdar://problem/66736746>
Running into this issue as well; Audio in the parent window will stop working if the child window calls "RTCRtpReceiver.getCapabilities()". I made a codepen that makes it easy to reproduce the bug and confirmed that it happens on all iOS devices (v13+), Safari v13.1.2, and Safari Technology Preview r112: https://codepen.io/tigerroll/full/50dfa165dda2d6ba684103e8af7bd1e4
Thanks for the report. Issue is that our audio module is per process while our backend expects it to be per peer connection factory.
Created attachment 407677 [details] Patch
Comment on attachment 407677 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=407677&action=review > Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:43 > -class LibWebRTCAudioModule final : public webrtc::AudioDeviceModule { > +class LibWebRTCAudioModule : public webrtc::AudioDeviceModule { What is this change about? Is there some class now derived from LibWebRTCAudioModule?
(In reply to Darin Adler from comment #5) > Comment on attachment 407677 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=407677&action=review > > > Source/WebCore/platform/mediastream/libwebrtc/LibWebRTCAudioModule.h:43 > > -class LibWebRTCAudioModule final : public webrtc::AudioDeviceModule { > > +class LibWebRTCAudioModule : public webrtc::AudioDeviceModule { > > What is this change about? Is there some class now derived from > LibWebRTCAudioModule? Yes, RefCountedObject<LibWebRTCAudioModule>.
Committed r266454: <https://trac.webkit.org/changeset/266454> All reviewed patches have been landed. Closing bug and clearing flags on attachment 407677 [details].