Delete SignalStateChanged from IceTransportInternal

The standardized state is signalled via SignalIceTransportStateChanged;
listening to that should give the same result as long as it fires every
time the old signal fired.

Bug: webrtc:9308
Change-Id: Ie56ec9e163f8f9648d43f95300ca1ad68c59bd2b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329021
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45183}
diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h
index 6a84505..ed84a4f 100644
--- a/api/peer_connection_interface.h
+++ b/api/peer_connection_interface.h
@@ -232,6 +232,10 @@
     kIceConnectionMax,
   };
   static constexpr absl::string_view AsString(IceConnectionState state);
+  template <typename Sink>
+  void AbslStringify(Sink& sink, IceConnectionState state) {
+    sink.Append(AsString(state));
+  }
 
   // TLS certificate policy.
   enum TlsCertPolicy {
diff --git a/p2p/base/ice_transport_internal.h b/p2p/base/ice_transport_internal.h
index 727073b..c1f3e0c 100644
--- a/p2p/base/ice_transport_internal.h
+++ b/p2p/base/ice_transport_internal.h
@@ -381,11 +381,6 @@
   // agents.
   sigslot::signal1<IceTransportInternal*> SignalRoleConflict;
 
-  // Emitted whenever the transport state changed.
-  // TODO(bugs.webrtc.org/9308): Remove once all uses have migrated to the new
-  // IceTransportState.
-  sigslot::signal1<IceTransportInternal*> SignalStateChanged;
-
   // Emitted whenever the new standards-compliant transport state changed.
   sigslot::signal1<IceTransportInternal*> SignalIceTransportStateChanged;
 
diff --git a/p2p/base/p2p_transport_channel.cc b/p2p/base/p2p_transport_channel.cc
index f592513..41b61bd 100644
--- a/p2p/base/p2p_transport_channel.cc
+++ b/p2p/base/p2p_transport_channel.cc
@@ -1979,12 +1979,13 @@
         RTC_DCHECK_NOTREACHED();
         break;
     }
-    state_ = state;
-    SignalStateChanged(this);
   }
 
-  if (standardized_state_ != current_standardized_state) {
+  if (standardized_state_ != current_standardized_state || state_ != state) {
     standardized_state_ = current_standardized_state;
+    state_ = state;
+    // Unconditionally signal change, no matter what changed.
+    // TODO: issues.webrtc.org/42234495 - rmeove nonstandard state_
     SignalIceTransportStateChanged(this);
   }
 }
diff --git a/p2p/base/p2p_transport_channel_unittest.cc b/p2p/base/p2p_transport_channel_unittest.cc
index 7abf8450..87e2fde 100644
--- a/p2p/base/p2p_transport_channel_unittest.cc
+++ b/p2p/base/p2p_transport_channel_unittest.cc
@@ -3856,7 +3856,7 @@
         this, &P2PTransportChannelPingTest::OnNetworkRouteChanged);
     ch->SignalReadyToSend.connect(this,
                                   &P2PTransportChannelPingTest::OnReadyToSend);
-    ch->SignalStateChanged.connect(
+    ch->SignalIceTransportStateChanged.connect(
         this, &P2PTransportChannelPingTest::OnChannelStateChanged);
     ch->SetCandidatePairChangeCallback(
         [this](const CandidatePairChangeEvent& event) {
diff --git a/p2p/base/regathering_controller.cc b/p2p/base/regathering_controller.cc
index 57575e2..bbebc60 100644
--- a/p2p/base/regathering_controller.cc
+++ b/p2p/base/regathering_controller.cc
@@ -27,7 +27,7 @@
   RTC_DCHECK(thread_);
   RTC_DCHECK_RUN_ON(thread_);
   RTC_DCHECK(ice_transport_);
-  ice_transport_->SignalStateChanged.connect(
+  ice_transport_->SignalIceTransportStateChanged.connect(
       this, &BasicRegatheringController::OnIceTransportStateChanged);
   ice_transport->SignalWritableState.connect(
       this, &BasicRegatheringController::OnIceTransportWritableState);
diff --git a/p2p/test/fake_ice_transport.h b/p2p/test/fake_ice_transport.h
index 0a88203..28e8be2 100644
--- a/p2p/test/fake_ice_transport.h
+++ b/p2p/test/fake_ice_transport.h
@@ -164,7 +164,7 @@
     // In this fake transport channel, `connection_count_` determines the
     // transport state.
     if (connection_count_ < old_connection_count) {
-      SignalStateChanged(this);
+      SignalIceTransportStateChanged(this);
     }
   }
 
diff --git a/pc/jsep_transport_controller.cc b/pc/jsep_transport_controller.cc
index f3095d7..a76bfa9 100644
--- a/pc/jsep_transport_controller.cc
+++ b/pc/jsep_transport_controller.cc
@@ -589,8 +589,6 @@
       });
   dtls->ice_transport()->SignalRoleConflict.connect(
       this, &JsepTransportController::OnTransportRoleConflict_n);
-  dtls->ice_transport()->SignalStateChanged.connect(
-      this, &JsepTransportController::OnTransportStateChanged_n);
   dtls->ice_transport()->SignalIceTransportStateChanged.connect(
       this, &JsepTransportController::OnTransportStateChanged_n);
   dtls->ice_transport()->SetCandidatePairChangeCallback(
diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc
index ca61b6a..b109ebb 100644
--- a/pc/peer_connection_integrationtest.cc
+++ b/pc/peer_connection_integrationtest.cc
@@ -2256,7 +2256,11 @@
   ASSERT_NE(callee_candidate_pre_restart, callee_candidate_post_restart);
   ASSERT_NE(caller_ufrag_pre_restart, caller_ufrag_post_restart);
   ASSERT_NE(callee_ufrag_pre_restart, callee_ufrag_post_restart);
-  EXPECT_GT(caller()->ice_candidate_pair_change_history().size(), 1u);
+  EXPECT_THAT(
+      WaitUntil(
+          [&] { return caller()->ice_candidate_pair_change_history().size(); },
+          Gt(1U), {.timeout = kMaxWaitForFrames}),
+      IsRtcOk());
 
   // Ensure that additional frames are received after the ICE restart.
   MediaExpectations media_expectations;