Make negotiationneeded processing in PeerConnection spec compliant.
This CL fixes the problem of misfired negotiationneeded notifications due to the lack of a NegotiationNeeded slot and the proper procedure to update it. Change-Id: Ie273c691f11316c9846606446f6cf838226b5d5c Bug: chromium:740501 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131283 Commit-Queue: Guido Urdaneta <guidou@webrtc.org> Reviewed-by: Steve Anton <steveanton@webrtc.org> Reviewed-by: Henrik Boström <hbos@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#27594}
This commit is contained in:

committed by
Commit Bot

parent
16cb8f5d74
commit
1fa06041bc
@ -814,8 +814,6 @@ class PeerConnectionInterfaceBaseTest : public ::testing::Test {
|
||||
auto sender_or_error =
|
||||
pc_->AddTrack(CreateVideoTrack(track_label), stream_ids);
|
||||
ASSERT_EQ(RTCErrorType::NONE, sender_or_error.error().type());
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
}
|
||||
|
||||
void AddVideoStream(const std::string& label) {
|
||||
@ -823,8 +821,6 @@ class PeerConnectionInterfaceBaseTest : public ::testing::Test {
|
||||
pc_factory_->CreateLocalMediaStream(label));
|
||||
stream->AddTrack(CreateVideoTrack(label + "v0"));
|
||||
ASSERT_TRUE(pc_->AddStream(stream));
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
}
|
||||
|
||||
rtc::scoped_refptr<AudioTrackInterface> CreateAudioTrack(
|
||||
@ -837,8 +833,6 @@ class PeerConnectionInterfaceBaseTest : public ::testing::Test {
|
||||
auto sender_or_error =
|
||||
pc_->AddTrack(CreateAudioTrack(track_label), stream_ids);
|
||||
ASSERT_EQ(RTCErrorType::NONE, sender_or_error.error().type());
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
}
|
||||
|
||||
void AddAudioStream(const std::string& label) {
|
||||
@ -846,8 +840,6 @@ class PeerConnectionInterfaceBaseTest : public ::testing::Test {
|
||||
pc_factory_->CreateLocalMediaStream(label));
|
||||
stream->AddTrack(CreateAudioTrack(label + "a0"));
|
||||
ASSERT_TRUE(pc_->AddStream(stream));
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
}
|
||||
|
||||
void AddAudioVideoStream(const std::string& stream_id,
|
||||
@ -859,8 +851,6 @@ class PeerConnectionInterfaceBaseTest : public ::testing::Test {
|
||||
stream->AddTrack(CreateAudioTrack(audio_track_label));
|
||||
stream->AddTrack(CreateVideoTrack(video_track_label));
|
||||
ASSERT_TRUE(pc_->AddStream(stream));
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
}
|
||||
|
||||
rtc::scoped_refptr<RtpReceiverInterface> GetFirstReceiverOfType(
|
||||
@ -2204,9 +2194,12 @@ TEST_P(PeerConnectionInterfaceTest, RenegotiationNeededForNewRtpDataChannel) {
|
||||
EXPECT_TRUE(observer_.renegotiation_needed_);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
|
||||
CreateOfferReceiveAnswer();
|
||||
|
||||
rtc::scoped_refptr<DataChannelInterface> dc2 =
|
||||
pc_->CreateDataChannel("test2", NULL);
|
||||
EXPECT_TRUE(observer_.renegotiation_needed_);
|
||||
EXPECT_EQ(observer_.renegotiation_needed_,
|
||||
GetParam() == SdpSemantics::kPlanB);
|
||||
}
|
||||
|
||||
// This test that a data channel closes when a PeerConnection is deleted/closed.
|
||||
@ -3894,14 +3887,17 @@ TEST_F(PeerConnectionInterfaceTestPlanB,
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
|
||||
CreateOfferReceiveAnswer();
|
||||
stream->AddTrack(video_track);
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
|
||||
CreateOfferReceiveAnswer();
|
||||
stream->RemoveTrack(audio_track);
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
|
||||
CreateOfferReceiveAnswer();
|
||||
stream->RemoveTrack(video_track);
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
observer_.renegotiation_needed_ = false;
|
||||
|
Reference in New Issue
Block a user