commit 123ce25ba6075f1e618e85a5bd9f3628e96645df
parent 12b2a6c45f77a645515453cacdec0b703c1b2ce8
Author: Michael Froman <mfroman@mozilla.com>
Date: Wed, 8 Oct 2025 17:09:04 -0500
Bug 1993083 - Vendor libwebrtc from fe999a8387
Upstream commit: https://webrtc.googlesource.com/src/+/fe999a83875e403bb28c51485e2986bc5501641c
dtls-in-stun: Correct testcase and renable those correct variants
yay, it turned out that this was a test case problem
rather than a code problem. "callee_active" with dtls_in_stun
is not supported...(which was somehow missed in the check...)
BUG=webrtc:367395350
Change-Id: I1f1f5ebf809008e1659bfccd1d46f67e0aa09d68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/398200
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Auto-Submit: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45034}
Diffstat:
2 files changed, 39 insertions(+), 17 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 /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
-libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-08T22:07:52.011784+00:00.
+libwebrtc updated from /home/mfroman/mozilla/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-08T22:08:54.967528+00:00.
# base of lastest vendoring
-4a7490bd9e
+fe999a8387
diff --git a/third_party/libwebrtc/pc/data_channel_integrationtest.cc b/third_party/libwebrtc/pc/data_channel_integrationtest.cc
@@ -1721,28 +1721,17 @@ class DataChannelIntegrationTestUnifiedPlanFieldTrials
const char* CheckSupported() {
const bool callee_active = std::get<0>(GetParam());
+ const bool caller_has_dtls_in_stun = absl::StrContains(
+ std::get<1>(GetParam()), "WebRTC-IceHandshakeDtls/Enabled/");
const bool callee_has_dtls_in_stun = absl::StrContains(
std::get<2>(GetParam()), "WebRTC-IceHandshakeDtls/Enabled/");
const bool callee2_has_dtls_in_stun = absl::StrContains(
std::get<3>(GetParam()), "WebRTC-IceHandshakeDtls/Enabled/");
- if (callee_active &&
- (callee_has_dtls_in_stun || callee2_has_dtls_in_stun)) {
+ if (callee_active && (caller_has_dtls_in_stun || callee_has_dtls_in_stun ||
+ callee2_has_dtls_in_stun)) {
return "dtls-in-stun when callee(s) are dtls clients";
}
- /**
- * This extra skip disables 108 combinations that are flaky.
- * TODO (jonaso, b/427410792, webrtc:367395350): Should be fixed
- * before launching dtls in stun
- */
- const bool caller_has_dtls_in_stun = absl::StrContains(
- std::get<1>(GetParam()), "WebRTC-IceHandshakeDtls/Enabled/");
- if (caller_has_dtls_in_stun &&
- (!callee_has_dtls_in_stun && !callee2_has_dtls_in_stun)) {
- return "TODO: b/427410792, webrtc:367395350, dtls-in-stun on caller but "
- "neither callees";
- }
-
return nullptr;
}
};
@@ -1783,6 +1772,14 @@ TEST_P(DataChannelIntegrationTestUnifiedPlanFieldTrials,
// Capture offer so that it can be sent to Callee2 too.
offer = sdp->Clone();
});
+ callee2->SetReceivedSdpMunger(
+ [&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
+ if (callee_active) {
+ MakeOfferHavePassiveDtlsRole(sdp);
+ } else {
+ MakeOfferHaveActiveDtlsRole(sdp);
+ }
+ });
callee()->SetGeneratedSdpMunger(
[&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
// Modify offer to kPrAnswer
@@ -1793,6 +1790,14 @@ TEST_P(DataChannelIntegrationTestUnifiedPlanFieldTrials,
MakeOfferHavePassiveDtlsRole(sdp);
}
});
+ callee2->SetGeneratedSdpMunger(
+ [&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
+ if (callee_active) {
+ MakeOfferHaveActiveDtlsRole(sdp);
+ } else {
+ MakeOfferHavePassiveDtlsRole(sdp);
+ }
+ });
caller()->CreateAndSetAndSignalOffer();
ASSERT_FALSE(HasFailure());
WaitConnectedAndDcOpen(/* prAnswer= */ true, caller(), callee());
@@ -1850,6 +1855,14 @@ TEST_P(DataChannelIntegrationTestUnifiedPlanFieldTrials,
// Capture offer so that it can be sent to Callee2 too.
offer = sdp->Clone();
});
+ callee2->SetReceivedSdpMunger(
+ [&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
+ if (callee_active) {
+ MakeOfferHavePassiveDtlsRole(sdp);
+ } else {
+ MakeOfferHaveActiveDtlsRole(sdp);
+ }
+ });
callee()->SetGeneratedSdpMunger(
[&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
// Modify offer to kPrAnswer
@@ -1860,6 +1873,14 @@ TEST_P(DataChannelIntegrationTestUnifiedPlanFieldTrials,
MakeOfferHavePassiveDtlsRole(sdp);
}
});
+ callee2->SetGeneratedSdpMunger(
+ [&](std::unique_ptr<SessionDescriptionInterface>& sdp) {
+ if (callee_active) {
+ MakeOfferHaveActiveDtlsRole(sdp);
+ } else {
+ MakeOfferHavePassiveDtlsRole(sdp);
+ }
+ });
bool first_answer = true;
std::unique_ptr<SessionDescriptionInterface> answer;
caller()->SetReceivedSdpMunger(
@@ -1918,6 +1939,7 @@ TEST_P(DataChannelIntegrationTestUnifiedPlanFieldTrials,
ASSERT_THAT(answer, testing::Not(testing::IsNull()));
std::string answer_sdp;
EXPECT_TRUE(answer->ToString(&answer_sdp));
+
caller()->ReceiveSdpMessage(SdpType::kAnswer, answer_sdp);
EXPECT_EQ(caller()->pc()->signaling_state(),