Bug 215422
Summary: | Safari 13.1.2 onicecandidate event is raised before iceGatheringState transitions to "gathering" state | ||
---|---|---|---|
Product: | WebKit | Reporter: | Charlie <csantos> |
Component: | WebRTC | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW | ||
Severity: | Critical | CC: | csantos, webkit-bug-importer, youennf |
Priority: | P2 | Keywords: | InRadar |
Version: | Safari 13 | ||
Hardware: | Mac | ||
OS: | macOS 10.14 |
Charlie
During the ICE gathering phase, RTCPeerConnection.onicecandidate event is raised before RTCPeerConnection.iceGatheringState transitions to "gathering". This only happens on Safari 13.1.2. Prior versions of Safari and other browser works as expected.
Here's what's happening on Safari 13.1.2
1. ICE Gathering starts
2. A local ICE Candidate is gathered
3. RTCPeerConnection.onicecandidate event is raised
4. RTCPeerConnection.iceGatheringState changes to "gathering"
5. RTCPeerConnection.iceGatheringState changes to "complete"
The issue is on steps 3 and 4. The expected should be
1. ICE Gathering starts
2. A local ICE Candidate is gathered
3. RTCPeerConnection.iceGatheringState changes to "gathering"
4. RTCPeerConnection.onicecandidate event is raised
5. RTCPeerConnection.iceGatheringState changes to "complete"
Steps to reproduce:
The issue is rarely reproducible if you setup 2 peer connections on a single machine, but it still happens. But we can consistently reproduce when we are connected to our media server. Try loading this page https://networktest.twilio.com, and wait for the "Voice: Test call using PCMU" section to execute. The test will fail because onicecandidate was triggering before iceGatheringState changes to "gathering".
I can provide pcaps and/or SDPs if they are needed. Please let me know if you need more information.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/67418966>