diff --git a/api/peer_connection_interface.h b/api/peer_connection_interface.h index 70adf514f2..be18b7ffec 100644 --- a/api/peer_connection_interface.h +++ b/api/peer_connection_interface.h @@ -826,22 +826,6 @@ class RTC_EXPORT PeerConnectionInterface : public rtc::RefCountInterface { return RTCError(); } - // Legacy API for removing a track from the PeerConnection. - // Returns true on success. - // TODO(bugs.webrtc.org/9534): Replace with signature that returns RTCError. - ABSL_DEPRECATED("Use RemoveTrackOrError") - virtual bool RemoveTrack(RtpSenderInterface* sender) { - return RemoveTrackOrError(rtc::scoped_refptr(sender)) - .ok(); - } - - // Old name for the new API. Will be removed when clients are updated. - ABSL_DEPRECATED("Use RemoveTrackOrError") - virtual RTCError RemoveTrackNew( - rtc::scoped_refptr sender) { - return RemoveTrackOrError(sender); - } - // AddTransceiver creates a new RtpTransceiver and adds it to the set of // transceivers. Adding a transceiver will cause future calls to CreateOffer // to add a media description for the corresponding transceiver. diff --git a/api/test/dummy_peer_connection.h b/api/test/dummy_peer_connection.h index a477d56082..4a262564a6 100644 --- a/api/test/dummy_peer_connection.h +++ b/api/test/dummy_peer_connection.h @@ -45,8 +45,6 @@ class DummyPeerConnection : public PeerConnectionInterface { return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); } - bool RemoveTrack(RtpSenderInterface* sender) override { return false; } - RTCError RemoveTrackOrError( rtc::scoped_refptr sender) override { return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); diff --git a/api/test/mock_peerconnectioninterface.h b/api/test/mock_peerconnectioninterface.h index dac99444b0..effd24e294 100644 --- a/api/test/mock_peerconnectioninterface.h +++ b/api/test/mock_peerconnectioninterface.h @@ -48,7 +48,6 @@ class MockPeerConnectionInterface (rtc::scoped_refptr, const std::vector&), (override)); - MOCK_METHOD(bool, RemoveTrack, (RtpSenderInterface*), (override)); MOCK_METHOD(RTCError, RemoveTrackOrError, (rtc::scoped_refptr), diff --git a/pc/peer_connection_integrationtest.cc b/pc/peer_connection_integrationtest.cc index fc094161af..0c97d0da95 100644 --- a/pc/peer_connection_integrationtest.cc +++ b/pc/peer_connection_integrationtest.cc @@ -473,7 +473,7 @@ TEST_P(PeerConnectionIntegrationTest, ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); // Remove receive video (i.e., callee sender track). - callee()->pc()->RemoveTrack(callee_sender); + callee()->pc()->RemoveTrackOrError(callee_sender); caller()->CreateAndSetAndSignalOffer(); ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); @@ -505,7 +505,7 @@ TEST_P(PeerConnectionIntegrationTest, ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); // Remove send video (i.e., caller sender track). - caller()->pc()->RemoveTrack(caller_sender); + caller()->pc()->RemoveTrackOrError(caller_sender); caller()->CreateAndSetAndSignalOffer(); ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); @@ -963,7 +963,7 @@ TEST_F(PeerConnectionIntegrationTestPlanB, EnableAudioAfterRejecting) { // Remove audio track, and set offer_to_receive_audio to false to cause the // m= section to be completely disabled, not just "recvonly". - caller()->pc()->RemoveTrack(sender); + caller()->pc()->RemoveTrackOrError(sender); PeerConnectionInterface::RTCOfferAnswerOptions options; options.offer_to_receive_audio = 0; caller()->SetOfferAnswerOptions(options); @@ -2956,7 +2956,7 @@ TEST_F(PeerConnectionIntegrationTestPlanB, RemoveAndAddTrackWithNewStreamId) { ASSERT_TRUE(ExpectNewFrames(media_expectations)); } // Remove the sender, and create a new one with the new stream. - caller()->pc()->RemoveTrack(sender); + caller()->pc()->RemoveTrackOrError(sender); sender = caller()->AddTrack(track, {"stream_2"}); caller()->CreateAndSetAndSignalOffer(); ASSERT_TRUE_WAIT(SignalingStateStable(), kDefaultTimeout); diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc index 44f135ffab..0d9f419149 100644 --- a/pc/peer_connection_interface_unittest.cc +++ b/pc/peer_connection_interface_unittest.cc @@ -1561,8 +1561,8 @@ TEST_F(PeerConnectionInterfaceTestPlanB, AddTrackRemoveTrack) { EXPECT_TRUE(DoSetLocalDescription(std::move(offer))); // Now try removing the tracks. - EXPECT_TRUE(pc_->RemoveTrack(audio_sender)); - EXPECT_TRUE(pc_->RemoveTrack(video_sender)); + EXPECT_TRUE(pc_->RemoveTrackOrError(audio_sender).ok()); + EXPECT_TRUE(pc_->RemoveTrackOrError(video_sender).ok()); // Create a new offer and ensure it doesn't contain the removed senders. ASSERT_TRUE(DoCreateOffer(&offer, nullptr)); @@ -1579,8 +1579,8 @@ TEST_F(PeerConnectionInterfaceTestPlanB, AddTrackRemoveTrack) { // Calling RemoveTrack on a sender no longer attached to a PeerConnection // should return false. - EXPECT_FALSE(pc_->RemoveTrack(audio_sender)); - EXPECT_FALSE(pc_->RemoveTrack(video_sender)); + EXPECT_FALSE(pc_->RemoveTrackOrError(audio_sender).ok()); + EXPECT_FALSE(pc_->RemoveTrackOrError(video_sender).ok()); } // Test creating senders without a stream specified, @@ -1867,7 +1867,7 @@ TEST_P(PeerConnectionInterfaceTest, GetStatsForSpecificTrack) { // Remove the stream. Since we are sending to our selves the local // and the remote stream is the same. - pc_->RemoveTrack(pc_->GetSenders()[0]); + pc_->RemoveTrackOrError(pc_->GetSenders()[0]); // Do a re-negotiation. CreateOfferReceiveAnswer(); diff --git a/pc/peer_connection_media_unittest.cc b/pc/peer_connection_media_unittest.cc index c5a4a303b3..30034b4cd5 100644 --- a/pc/peer_connection_media_unittest.cc +++ b/pc/peer_connection_media_unittest.cc @@ -312,8 +312,8 @@ TEST_F(PeerConnectionMediaTestPlanB, EmptyRemoteOfferRemovesRecvStreams) { ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); // Remove both tracks from caller. - caller->pc()->RemoveTrack(caller_audio_track); - caller->pc()->RemoveTrack(caller_video_track); + caller->pc()->RemoveTrackOrError(caller_audio_track); + caller->pc()->RemoveTrackOrError(caller_video_track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); @@ -410,8 +410,8 @@ TEST_F(PeerConnectionMediaTestPlanB, EmptyLocalAnswerRemovesSendStreams) { ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); // Remove both tracks from callee. - callee->pc()->RemoveTrack(callee_audio_track); - callee->pc()->RemoveTrack(callee_video_track); + callee->pc()->RemoveTrackOrError(callee_audio_track); + callee->pc()->RemoveTrackOrError(callee_video_track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); @@ -1083,7 +1083,7 @@ TEST_P(PeerConnectionMediaTest, TestAVOfferWithAudioOnlyAnswer) { EXPECT_EQ(1u, callee_video->send_streams().size()); // Callee removes video but keeps audio and rejects the video once again. - callee->pc()->RemoveTrack(callee_video_track); + callee->pc()->RemoveTrackOrError(callee_video_track); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_TRUE( callee->SetLocalDescription(callee->CreateAnswer(options_reject_video))); @@ -1153,7 +1153,7 @@ TEST_P(PeerConnectionMediaTest, TestAVOfferWithVideoOnlyAnswer) { EXPECT_EQ(1u, callee_video->send_streams().size()); // Callee removes audio but keeps video and rejects the audio once again. - callee->pc()->RemoveTrack(callee_audio_track); + callee->pc()->RemoveTrackOrError(callee_audio_track); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_TRUE( callee->SetLocalDescription(callee->CreateAnswer(options_reject_audio))); diff --git a/pc/peer_connection_rtp_unittest.cc b/pc/peer_connection_rtp_unittest.cc index e46df3181a..fac738b7ba 100644 --- a/pc/peer_connection_rtp_unittest.cc +++ b/pc/peer_connection_rtp_unittest.cc @@ -237,7 +237,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithoutStreamFiresOnRemoveTrack) { ASSERT_TRUE( caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal())); - EXPECT_TRUE(caller->pc()->RemoveTrack(sender)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_EQ(callee->observer()->add_track_events_.size(), 1u); @@ -255,7 +255,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithStreamFiresOnRemoveTrack) { ASSERT_TRUE( caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal())); - EXPECT_TRUE(caller->pc()->RemoveTrack(sender)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_EQ(callee->observer()->add_track_events_.size(), 1u); @@ -277,7 +277,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamFiresOnRemoveTrack) { caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal())); // Remove "audio_track1". - EXPECT_TRUE(caller->pc()->RemoveTrack(sender1)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender1).ok()); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_EQ(callee->observer()->add_track_events_.size(), 2u); EXPECT_EQ( @@ -289,7 +289,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamFiresOnRemoveTrack) { caller->SetRemoteDescription(callee->CreateAnswerAndSetAsLocal())); // Remove "audio_track2". - EXPECT_TRUE(caller->pc()->RemoveTrack(sender2)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender2).ok()); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); ASSERT_EQ(callee->observer()->add_track_events_.size(), 2u); EXPECT_EQ(callee->observer()->GetAddTrackReceivers(), @@ -480,7 +480,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, ASSERT_EQ(1u, callee->observer()->add_track_events_.size()); EXPECT_EQ(0u, callee->observer()->remove_track_events_.size()); - caller->pc()->RemoveTrack(sender); + caller->pc()->RemoveTrackOrError(sender); ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal())); EXPECT_EQ(1u, callee->observer()->add_track_events_.size()); @@ -580,7 +580,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithoutStreamRemovesReceiver) { ASSERT_EQ(callee->pc()->GetReceivers().size(), 1u); auto receiver = callee->pc()->GetReceivers()[0]; - ASSERT_TRUE(caller->pc()->RemoveTrack(sender)); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) { @@ -604,7 +604,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithStreamRemovesReceiver) { ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); ASSERT_EQ(callee->pc()->GetReceivers().size(), 1u); auto receiver = callee->pc()->GetReceivers()[0]; - ASSERT_TRUE(caller->pc()->RemoveTrack(sender)); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) { @@ -630,7 +630,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamRemovesReceiver) { ASSERT_EQ(2u, callee->pc()->GetReceivers().size()); // Remove "audio_track1". - EXPECT_TRUE(caller->pc()->RemoveTrack(sender1)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender1).ok()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) { @@ -648,7 +648,7 @@ TEST_P(PeerConnectionRtpTest, RemoveTrackWithSharedStreamRemovesReceiver) { } // Remove "audio_track2". - EXPECT_TRUE(caller->pc()->RemoveTrack(sender2)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender2).ok()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); if (sdp_semantics_ == SdpSemantics::kUnifiedPlan) { @@ -706,7 +706,7 @@ TEST_F(PeerConnectionRtpTestPlanB, // first and second SetRemoteDescription() calls. auto sender = caller->AddAudioTrack("audio_track", {}); auto srd1_sdp = caller->CreateOfferAndSetAsLocal(); - EXPECT_TRUE(caller->pc()->RemoveTrack(sender)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); auto srd2_sdp = caller->CreateOfferAndSetAsLocal(); // In the first SetRemoteDescription() callback, check that we have a @@ -1304,7 +1304,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackClearsSenderTrack) { auto caller = CreatePeerConnection(); auto sender = caller->AddAudioTrack("a"); - ASSERT_TRUE(caller->pc()->RemoveTrack(sender)); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); EXPECT_FALSE(sender->track()); } @@ -1327,7 +1327,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, caller->observer()->clear_legacy_renegotiation_needed(); caller->observer()->clear_latest_negotiation_needed_event(); - ASSERT_TRUE(caller->pc()->RemoveTrack(transceiver->sender())); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(transceiver->sender()).ok()); EXPECT_TRUE(caller->observer()->legacy_renegotiation_needed()); EXPECT_TRUE(caller->observer()->has_negotiation_needed_event()); @@ -1352,7 +1352,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, caller->observer()->clear_legacy_renegotiation_needed(); caller->observer()->clear_latest_negotiation_needed_event(); - ASSERT_TRUE(caller->pc()->RemoveTrack(transceiver->sender())); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(transceiver->sender()).ok()); EXPECT_TRUE(caller->observer()->legacy_renegotiation_needed()); EXPECT_TRUE(caller->observer()->has_negotiation_needed_event()); @@ -1370,7 +1370,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackWithNullSenderTrackIsNoOp) { caller->observer()->clear_legacy_renegotiation_needed(); caller->observer()->clear_latest_negotiation_needed_event(); - ASSERT_TRUE(caller->pc()->RemoveTrack(sender)); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed()); EXPECT_FALSE(caller->observer()->has_negotiation_needed_event()); @@ -1387,7 +1387,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, RemoveTrackErrorIfClosed) { caller->observer()->clear_legacy_renegotiation_needed(); caller->observer()->clear_latest_negotiation_needed_event(); - EXPECT_FALSE(caller->pc()->RemoveTrack(sender)); + EXPECT_FALSE(caller->pc()->RemoveTrackOrError(sender).ok()); EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed()); EXPECT_FALSE(caller->observer()->has_negotiation_needed_event()); } @@ -1397,11 +1397,11 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, auto caller = CreatePeerConnection(); auto sender = caller->AddAudioTrack("a"); - ASSERT_TRUE(caller->pc()->RemoveTrack(sender)); + ASSERT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); caller->observer()->clear_legacy_renegotiation_needed(); caller->observer()->clear_latest_negotiation_needed_event(); - EXPECT_TRUE(caller->pc()->RemoveTrack(sender)); + EXPECT_TRUE(caller->pc()->RemoveTrackOrError(sender).ok()); EXPECT_FALSE(caller->observer()->legacy_renegotiation_needed()); EXPECT_FALSE(caller->observer()->has_negotiation_needed_event()); } @@ -1415,7 +1415,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, AddRemoveAddTrackOffersWorksAudio) { auto sender1 = caller->AddAudioTrack("audio1"); ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer())); - caller->pc()->RemoveTrack(sender1); + caller->pc()->RemoveTrackOrError(sender1); ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer())); // This will re-use the transceiver created by the first AddTrack. @@ -1431,7 +1431,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, AddRemoveAddTrackOffersWorksVideo) { auto sender1 = caller->AddVideoTrack("video1"); ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer())); - caller->pc()->RemoveTrack(sender1); + caller->pc()->RemoveTrackOrError(sender1); ASSERT_TRUE(caller->SetLocalDescription(caller->CreateOffer())); // This will re-use the transceiver created by the first AddTrack. @@ -1488,7 +1488,7 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, auto sender1 = caller->AddTrack(track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); - caller->pc()->RemoveTrack(sender1); + caller->pc()->RemoveTrackOrError(sender1); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); auto sender2 = caller->AddTrack(track); @@ -1656,11 +1656,11 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, caller->AddTransceiver(video_track); auto transceiver = caller->AddTransceiver(track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); - caller->pc()->RemoveTrack(transceiver->sender()); + caller->pc()->RemoveTrackOrError(transceiver->sender()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); caller->AddTrack(track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); - caller->pc()->RemoveTrack(transceiver->sender()); + caller->pc()->RemoveTrackOrError(transceiver->sender()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); } @@ -1674,12 +1674,12 @@ TEST_F(PeerConnectionRtpTestUnifiedPlan, caller->AddTransceiver(video_track); auto transceiver = caller->AddTransceiver(track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); - caller->pc()->RemoveTrack(transceiver->sender()); + caller->pc()->RemoveTrackOrError(transceiver->sender()); ExchangeOfferAnswerWhereRemoteStopsTransceiver(caller.get(), callee.get(), 1); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); caller->AddTrack(track); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); - caller->pc()->RemoveTrack(transceiver->sender()); + caller->pc()->RemoveTrackOrError(transceiver->sender()); ASSERT_TRUE(caller->ExchangeOfferAnswerWith(callee.get())); } diff --git a/pc/test/fake_peer_connection_base.h b/pc/test/fake_peer_connection_base.h index cca84197f7..3462c8c78e 100644 --- a/pc/test/fake_peer_connection_base.h +++ b/pc/test/fake_peer_connection_base.h @@ -50,8 +50,6 @@ class FakePeerConnectionBase : public PeerConnectionInternal { return RTCError(RTCErrorType::UNSUPPORTED_OPERATION, "Not implemented"); } - bool RemoveTrack(RtpSenderInterface* sender) override { return false; } - RTCError RemoveTrackOrError( rtc::scoped_refptr sender) override { return RTCError(RTCErrorType::UNSUPPORTED_OPERATION);