aboutsummaryrefslogtreecommitdiff
path: root/pc
diff options
context:
space:
mode:
authorSteve Anton <steveanton@webrtc.org>2020-01-24 14:53:37 -0800
committerCommit Bot <commit-bot@chromium.org>2020-01-30 23:17:59 +0000
commitec47b57f1440c1e8566546466dd8d22231d39755 (patch)
treecb090b71f99b6517342f2f8d7a033c5f4ebb3c63 /pc
parentbe99ee8f17f93e06c81e3deb4897dfa8253d3211 (diff)
downloadwebrtc-ec47b57f1440c1e8566546466dd8d22231d39755.tar.gz
Do not transition ICE gathering state to 'complete' when closing
Bug: webrtc:4728 Change-Id: I6bcb3dd0eb47dc945d96555f9481146f22ceb4fa Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/167440 Reviewed-by: Qingsi Wang <qingsi@webrtc.org> Commit-Queue: Steve Anton <steveanton@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30433}
Diffstat (limited to 'pc')
-rw-r--r--pc/peer_connection.cc4
-rw-r--r--pc/peer_connection_ice_unittest.cc9
2 files changed, 9 insertions, 4 deletions
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index cf4189b896..5ace3e33e4 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -4780,10 +4780,6 @@ void PeerConnection::ChangeSignalingState(
PeerConnectionInterface::IceConnectionState::kIceConnectionClosed;
connection_state_ = PeerConnectionInterface::PeerConnectionState::kClosed;
Observer()->OnConnectionChange(connection_state_);
- if (ice_gathering_state_ != kIceGatheringComplete) {
- ice_gathering_state_ = kIceGatheringComplete;
- Observer()->OnIceGatheringChange(ice_gathering_state_);
- }
}
Observer()->OnSignalingChange(signaling_state_);
}
diff --git a/pc/peer_connection_ice_unittest.cc b/pc/peer_connection_ice_unittest.cc
index ab5a8f40ca..8502dd427a 100644
--- a/pc/peer_connection_ice_unittest.cc
+++ b/pc/peer_connection_ice_unittest.cc
@@ -1404,4 +1404,13 @@ TEST_P(PeerConnectionIceTest, IceCredentialsCreateAnswer) {
}
}
+// Regression test for https://bugs.chromium.org/p/webrtc/issues/detail?id=4728
+TEST_P(PeerConnectionIceTest, CloseDoesNotTransitionGatheringStateToComplete) {
+ auto pc = CreatePeerConnectionWithAudioVideo();
+ pc->pc()->Close();
+ EXPECT_FALSE(pc->IsIceGatheringDone());
+ EXPECT_EQ(PeerConnectionInterface::kIceGatheringNew,
+ pc->pc()->ice_gathering_state());
+}
+
} // namespace webrtc