From bca1485a7acba10b54405a2f1f145d34da6decd7 Mon Sep 17 00:00:00 2001 From: Qingsi Wang Date: Wed, 26 Jun 2019 14:56:02 -0700 Subject: [PATCH] Enable setting surface_ice_candidates_on_ice_transport_type_changed on the fly. This CL enables to change surface_ice_candidates_on_ice_transport_type_changed in RTCConfiguration via PeerConnection::SetConfiguration. Bug: None Change-Id: Ib7bc8a08bfc9bf59cf07fe217c6f57d0d63615f3 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/143561 Commit-Queue: Qingsi Wang Reviewed-by: Amit Hilbuch Cr-Commit-Position: refs/heads/master@{#28394} --- pc/peer_connection.cc | 2 ++ pc/peer_connection_interface_unittest.cc | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc index 63d405b2b9..c46dc80cea 100644 --- a/pc/peer_connection.cc +++ b/pc/peer_connection.cc @@ -3476,6 +3476,8 @@ bool PeerConnection::SetConfiguration(const RTCConfiguration& configuration, modified_config.ice_candidate_pool_size = configuration.ice_candidate_pool_size; modified_config.prune_turn_ports = configuration.prune_turn_ports; + modified_config.surface_ice_candidates_on_ice_transport_type_changed = + configuration.surface_ice_candidates_on_ice_transport_type_changed; modified_config.ice_check_min_interval = configuration.ice_check_min_interval; modified_config.ice_check_interval_strong_connectivity = configuration.ice_check_interval_strong_connectivity; diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc index 1ea4b7fd59..993b863fb9 100644 --- a/pc/peer_connection_interface_unittest.cc +++ b/pc/peer_connection_interface_unittest.cc @@ -2465,9 +2465,22 @@ TEST_P(PeerConnectionInterfaceTest, SetConfigurationChangesIceCheckInterval) { config = pc_->GetConfiguration(); config.ice_check_min_interval = 100; EXPECT_TRUE(pc_->SetConfiguration(config)); - PeerConnectionInterface::RTCConfiguration new_config = - pc_->GetConfiguration(); - EXPECT_EQ(new_config.ice_check_min_interval, 100); + config = pc_->GetConfiguration(); + EXPECT_EQ(config.ice_check_min_interval, 100); +} + +TEST_P(PeerConnectionInterfaceTest, + SetConfigurationChangesSurfaceIceCandidatesOnIceTransportTypeChanged) { + PeerConnectionInterface::RTCConfiguration config; + config.surface_ice_candidates_on_ice_transport_type_changed = false; + CreatePeerConnection(config); + config = pc_->GetConfiguration(); + EXPECT_FALSE(config.surface_ice_candidates_on_ice_transport_type_changed); + + config.surface_ice_candidates_on_ice_transport_type_changed = true; + EXPECT_TRUE(pc_->SetConfiguration(config)); + config = pc_->GetConfiguration(); + EXPECT_TRUE(config.surface_ice_candidates_on_ice_transport_type_changed); } // Test that when SetConfiguration changes both the pool size and other