@@ -172,15 +172,72 @@ class RTCPeerConnectionWeb extends RTCPeerConnection {
172172 @override
173173 RTCSignalingState ? get signalingState => _signalingState;
174174
175+ @override
176+ Future <RTCSignalingState ?> getSignalingState () async {
177+ _signalingState = signalingStateForString (_jsPc.signalingState);
178+ return signalingState;
179+ }
180+
175181 @override
176182 RTCIceGatheringState ? get iceGatheringState => _iceGatheringState;
177183
184+ @override
185+ Future <RTCIceGatheringState ?> getIceGatheringState () async {
186+ _iceGatheringState = iceGatheringStateforString (_jsPc.iceGatheringState);
187+ return _iceGatheringState;
188+ }
189+
178190 @override
179191 RTCIceConnectionState ? get iceConnectionState => _iceConnectionState;
180192
193+ @override
194+ Future <RTCIceConnectionState ?> getIceConnectionState () async {
195+ _iceConnectionState = iceConnectionStateForString (_jsPc.iceConnectionState);
196+ if (browser.isFirefox) {
197+ switch (_iceConnectionState! ) {
198+ case RTCIceConnectionState .RTCIceConnectionStateNew :
199+ _connectionState = RTCPeerConnectionState .RTCPeerConnectionStateNew ;
200+ break ;
201+ case RTCIceConnectionState .RTCIceConnectionStateChecking :
202+ _connectionState =
203+ RTCPeerConnectionState .RTCPeerConnectionStateConnecting ;
204+ break ;
205+ case RTCIceConnectionState .RTCIceConnectionStateConnected :
206+ _connectionState =
207+ RTCPeerConnectionState .RTCPeerConnectionStateConnected ;
208+ break ;
209+ case RTCIceConnectionState .RTCIceConnectionStateFailed :
210+ _connectionState =
211+ RTCPeerConnectionState .RTCPeerConnectionStateFailed ;
212+ break ;
213+ case RTCIceConnectionState .RTCIceConnectionStateDisconnected :
214+ _connectionState =
215+ RTCPeerConnectionState .RTCPeerConnectionStateDisconnected ;
216+ break ;
217+ case RTCIceConnectionState .RTCIceConnectionStateClosed :
218+ _connectionState =
219+ RTCPeerConnectionState .RTCPeerConnectionStateClosed ;
220+ break ;
221+ default :
222+ break ;
223+ }
224+ }
225+ return _iceConnectionState;
226+ }
227+
181228 @override
182229 RTCPeerConnectionState ? get connectionState => _connectionState;
183230
231+ @override
232+ Future <RTCPeerConnectionState ?> getConnectionState () async {
233+ if (browser.isFirefox) {
234+ await getIceConnectionState ();
235+ } else {
236+ _connectionState = peerConnectionStateForString (_jsPc.connectionState);
237+ }
238+ return _connectionState;
239+ }
240+
184241 @override
185242 Future <void > dispose () {
186243 _jsPc.close ();
0 commit comments