commit 190c8712231471858b5b9d2d169fdb7cd0b3e132
parent e15714fcb54aa28988bda6454766b5a1fcd55b73
Author: Dan Baker <dbaker@mozilla.com>
Date: Mon, 1 Dec 2025 17:06:50 -0700
Bug 2000941 - Vendor libwebrtc from d22b593b75
Upstream commit: https://webrtc.googlesource.com/src/+/d22b593b755e224a44152ae32ef69fa964e5ecb4
Refactor: Separate header extension tests for Unified Plan
The tests in `pc/peer_connection_header_extension_unittest.cc` were parameterized to run for both Plan B and Unified Plan SDP semantics. However, several of the tests were specific to Unified Plan and would return early for Plan B.
This CL separates these tests into a new test suite, `PeerConnectionHeaderExtensionUnifiedPlanTest`, which is instantiated only for Unified Plan. This improves test clarity and organization.
Bug: None
Change-Id: I53e28b5b0e4c8909538cf7b2aa9145607e203447
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/408001
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45575}
Diffstat:
2 files changed, 48 insertions(+), 56 deletions(-)
diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor
@@ -1,4 +1,4 @@
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
-libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-12-02T00:03:56.127637+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-12-02T00:06:35.962409+00:00.
# base of lastest vendoring
-eaf570fb55
+d22b593b75
diff --git a/third_party/libwebrtc/pc/peer_connection_header_extension_unittest.cc b/third_party/libwebrtc/pc/peer_connection_header_extension_unittest.cc
@@ -114,12 +114,14 @@ class PeerConnectionHeaderExtensionTest
std::vector<RtpHeaderExtensionCapability> extensions_;
};
-TEST_P(PeerConnectionHeaderExtensionTest, TransceiverOffersHeaderExtensions) {
+class PeerConnectionHeaderExtensionUnifiedPlanTest
+ : public PeerConnectionHeaderExtensionTest {};
+
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ TransceiverOffersHeaderExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> wrapper =
CreatePeerConnection(media_type, semantics);
auto transceiver = wrapper->AddTransceiver(media_type);
@@ -147,12 +149,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
.header_extensions);
}
-TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedDefaultExtensions) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ OffersUnstoppedDefaultExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> wrapper =
CreatePeerConnection(media_type, semantics);
auto transceiver = wrapper->AddTransceiver(media_type);
@@ -166,12 +167,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedDefaultExtensions) {
Field(&RtpExtension::uri, "uri4")));
}
-TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedModifiedExtensions) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ OffersUnstoppedModifiedExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> wrapper =
CreatePeerConnection(media_type, semantics);
auto transceiver = wrapper->AddTransceiver(media_type);
@@ -190,12 +190,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, OffersUnstoppedModifiedExtensions) {
Field(&RtpExtension::uri, "uri3")));
}
-TEST_P(PeerConnectionHeaderExtensionTest, AnswersUnstoppedModifiedExtensions) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ AnswersUnstoppedModifiedExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
std::unique_ptr<PeerConnectionWrapper> pc2 =
@@ -225,12 +224,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, AnswersUnstoppedModifiedExtensions) {
Field(&RtpExtension::uri, "uri3")));
}
-TEST_P(PeerConnectionHeaderExtensionTest, NegotiatedExtensionsAreAccessible) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ NegotiatedExtensionsAreAccessible) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
auto transceiver1 = pc1->AddTransceiver(media_type);
@@ -263,12 +261,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, NegotiatedExtensionsAreAccessible) {
RtpTransceiverDirection::kStopped)));
}
-TEST_P(PeerConnectionHeaderExtensionTest, OfferedExtensionsArePerTransceiver) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ OfferedExtensionsArePerTransceiver) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
auto transceiver1 = pc1->AddTransceiver(media_type);
@@ -293,12 +290,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, OfferedExtensionsArePerTransceiver) {
Field(&RtpExtension::uri, "uri4")));
}
-TEST_P(PeerConnectionHeaderExtensionTest, RemovalAfterRenegotiation) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ RemovalAfterRenegotiation) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
std::unique_ptr<PeerConnectionWrapper> pc2 =
@@ -326,13 +322,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, RemovalAfterRenegotiation) {
Field(&RtpExtension::uri, "uri3")));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
StoppedByDefaultExtensionCanBeActivatedByRemoteSdp) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
std::unique_ptr<PeerConnectionWrapper> pc2 =
@@ -363,13 +357,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
RtpTransceiverDirection::kSendRecv)));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
UnknownExtensionInRemoteOfferDoesNotShowUp) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc =
CreatePeerConnection(media_type, semantics);
std::string sdp =
@@ -418,13 +410,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
// These tests are regression tests for behavior that the API
// enables in a proper way. It conflicts with the behavior
// of the API to only offer non-stopped extensions.
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
SdpMungingAnswerWithoutApiUsageEnablesExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Disabled/");
std::string sdp =
@@ -475,13 +465,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
Field(&RtpExtension::uri, "uri3"),
Field(&RtpExtension::uri, "uri4")));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
SdpMungingAnswerWithoutApiUsageEnablesExtensionsWithMemory) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Enabled/");
std::string sdp =
@@ -532,13 +520,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
ElementsAre(Field(&RtpExtension::uri, "uri1")));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
SdpMungingOfferWithoutApiUsageEnablesExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc =
CreatePeerConnection(media_type, semantics);
pc->AddTransceiver(media_type);
@@ -563,13 +549,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
Field(&RtpExtension::uri, "uri1")));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
EnablingExtensionsAfterRemoteOfferWithoutHeaderExtensionMemory) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Disabled/");
std::string sdp =
@@ -624,13 +608,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
EXPECT_EQ(extensions[0].id, 5);
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
EnablingExtensionsAfterRemoteOfferWithHeaderExtensionMemory) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan)
- return;
std::unique_ptr<PeerConnectionWrapper> pc = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Enabled/");
std::string sdp =
@@ -682,13 +664,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
EXPECT_EQ(extensions[0].id, 5);
}
-TEST_P(PeerConnectionHeaderExtensionTest, SenderParametersReflectNegotiation) {
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
+ SenderParametersReflectNegotiation) {
SdpSemantics semantics;
MediaType media_type;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan) {
- GTEST_SKIP() << "This test only works with Unified Plan";
- }
std::unique_ptr<PeerConnectionWrapper> pc1 =
CreatePeerConnection(media_type, semantics);
std::unique_ptr<PeerConnectionWrapper> pc2 =
@@ -718,14 +698,11 @@ TEST_P(PeerConnectionHeaderExtensionTest, SenderParametersReflectNegotiation) {
}
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
TransceiversAddedAfterFirstDoNotCopy) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan) {
- GTEST_SKIP() << "This test only works with Unified Plan";
- }
std::unique_ptr<PeerConnectionWrapper> pc1 = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Disabled/");
@@ -751,14 +728,11 @@ TEST_P(PeerConnectionHeaderExtensionTest,
Field(&RtpExtension::uri, "uri4")));
}
-TEST_P(PeerConnectionHeaderExtensionTest,
+TEST_P(PeerConnectionHeaderExtensionUnifiedPlanTest,
TransceiversAddedAfterFirstTransceiverCopyExtensions) {
MediaType media_type;
SdpSemantics semantics;
std::tie(media_type, semantics) = GetParam();
- if (semantics != SdpSemantics::kUnifiedPlan) {
- GTEST_SKIP() << "This test only works with Unified Plan";
- }
std::unique_ptr<PeerConnectionWrapper> pc1 = CreatePeerConnection(
media_type, semantics, "WebRTC-HeaderExtensionNegotiateMemory/Enabled/");
auto transceiver1 = pc1->AddTransceiver(media_type);
@@ -801,4 +775,22 @@ INSTANTIATE_TEST_SUITE_P(
.str();
});
+INSTANTIATE_TEST_SUITE_P(
+ ,
+ PeerConnectionHeaderExtensionUnifiedPlanTest,
+ Combine(Values(MediaType::AUDIO, MediaType::VIDEO),
+ Values(SdpSemantics::kUnifiedPlan)),
+ [](const testing::TestParamInfo<
+ PeerConnectionHeaderExtensionUnifiedPlanTest::ParamType>& info) {
+ MediaType media_type;
+ SdpSemantics semantics;
+ std::tie(media_type, semantics) = info.param;
+ return (StringBuilder("With")
+ << (semantics == SdpSemantics::kPlanB_DEPRECATED ? "PlanB"
+ : "UnifiedPlan")
+ << "And" << (media_type == MediaType::AUDIO ? "Voice" : "Video")
+ << "Engine")
+ .str();
+ });
+
} // namespace webrtc