commit f2ef102ef44b071e01fca36b22b70d414a7f06f0
parent add8be8cdc2d09c33c4d5175ea71eb4e9ff2dee5
Author: Dan Baker <dbaker@mozilla.com>
Date: Mon, 27 Oct 2025 14:42:00 -0600
Bug 1995393 - Vendor libwebrtc from 0deb9d6d33
Essentially a no-op since we're going to see this change
reverted when we vendor in 0e582e5b50.
Upstream commit: https://webrtc.googlesource.com/src/+/0deb9d6d33111cbf2a5b248434870dd9d8b982fc
Make WebRTC-RTP-Lifetime enabled-by-default.
Ships spec-compliant RTP stats lifetimes as per Intent to Ship:
https://groups.google.com/a/chromium.org/g/blink-dev/c/GYqPzIUUZCQ
The TL;DR change is:
1. outbound-rtp creation is delayed until O/A has completed, but can
exist prior to sending any packets.
2. inbound-rtp creation is delayed until first packet has been received,
whether or not O/A has completed (allowing early media use case).
The flag is kept as a kill-switch, to be removed after this has reached
Chrome stable.
Bug: chromium:406585888
Change-Id: Ibb42d77eb156ba14d2f50e6521d51615551fe489
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/406620
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45468}
Diffstat:
3 files changed, 89 insertions(+), 2 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-10-27T20:39:44.829483+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T20:41:49.543935+00:00.
# base of lastest vendoring
-f4370b1ca4
+0deb9d6d33
diff --git a/third_party/libwebrtc/moz-patch-stack/0e582e5b50.no-op-cherry-pick-msg b/third_party/libwebrtc/moz-patch-stack/0e582e5b50.no-op-cherry-pick-msg
@@ -0,0 +1 @@
+We already cherry-picked this when we vendored 0deb9d6d33.
diff --git a/third_party/libwebrtc/moz-patch-stack/p0001.patch b/third_party/libwebrtc/moz-patch-stack/p0001.patch
@@ -0,0 +1,86 @@
+From: Daniel Baker <dbaker@mozilla.com>
+Date: Mon, 27 Oct 2025 14:41:18 -0600
+Subject: (tmp-cherry-pick) Revert "Make WebRTC-RTP-Lifetime
+ enabled-by-default." (0e582e5b50)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 0deb9d6d33111cbf2a5b248434870dd9d8b982fc.
+
+Reason for revert: Breaks internal test that assumes RTP stats exist
+prior to reception
+
+Bug: chromium:406585888
+Original change's description:
+> Make WebRTC-RTP-Lifetime enabled-by-default.
+>
+> Ships spec-compliant RTP stats lifetimes as per Intent to Ship:
+> https://groups.google.com/a/chromium.org/g/blink-dev/c/GYqPzIUUZCQ
+>
+> The TL;DR change is:
+> 1. outbound-rtp creation is delayed until O/A has completed, but can
+> exist prior to sending any packets.
+> 2. inbound-rtp creation is delayed until first packet has been received,
+> whether or not O/A has completed (allowing early media use case).
+>
+> The flag is kept as a kill-switch, to be removed after this has reached
+> Chrome stable.
+>
+> Bug: chromium:406585888
+> Change-Id: Ibb42d77eb156ba14d2f50e6521d51615551fe489
+> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/406620
+> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
+> Commit-Queue: Henrik Boström <hbos@webrtc.org>
+> Cr-Commit-Position: refs/heads/main@{#45468}
+
+Bug: chromium:406585888
+No-Presubmit: true
+No-Tree-Checks: true
+No-Try: true
+Change-Id: I0dad2172691d78945b82a7796e51a42cace85d33
+Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/406761
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Henrik Boström <hbos@webrtc.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/heads/main@{#45470}
+---
+ pc/rtc_stats_collector.cc | 2 +-
+ pc/rtc_stats_integrationtest.cc | 9 ++++++---
+ 2 files changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
+index c284ba84f6..f917f9c957 100644
+--- a/pc/rtc_stats_collector.cc
++++ b/pc/rtc_stats_collector.cc
+@@ -1718,7 +1718,7 @@ void RTCStatsCollector::ProduceRTPStreamStats_n(
+ RTC_DCHECK_RUN_ON(network_thread_);
+ Thread::ScopedDisallowBlockingCalls no_blocking_calls;
+
+- bool spec_lifetime = !env_.field_trials().IsDisabled("WebRTC-RTP-Lifetime");
++ bool spec_lifetime = env_.field_trials().IsEnabled("WebRTC-RTP-Lifetime");
+ for (const RtpTransceiverStatsInfo& stats : transceiver_stats_infos) {
+ if (stats.media_type == MediaType::AUDIO) {
+ ProduceAudioRTPStreamStats_n(timestamp, stats, spec_lifetime, report);
+diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc
+index 41759f5e9c..8833947ec7 100644
+--- a/pc/rtc_stats_integrationtest.cc
++++ b/pc/rtc_stats_integrationtest.cc
+@@ -1242,11 +1242,14 @@ TEST_F(RTCStatsIntegrationTest, ExperimentalPsnrStats) {
+ class RTCStatsRtpLifetimeTest : public RTCStatsIntegrationTest {
+ public:
+ RTCStatsRtpLifetimeTest() : RTCStatsIntegrationTest() {
+- // Field trial "WebRTC-RTP-Lifetime" is enabled-by-default.
++ FieldTrials field_trials =
++ CreateTestFieldTrials("WebRTC-RTP-Lifetime/Enabled/");
+ EXPECT_TRUE(caller_->CreatePc({}, CreateBuiltinAudioEncoderFactory(),
+- CreateBuiltinAudioDecoderFactory()));
++ CreateBuiltinAudioDecoderFactory(),
++ std::make_unique<FieldTrials>(field_trials)));
+ EXPECT_TRUE(callee_->CreatePc({}, CreateBuiltinAudioEncoderFactory(),
+- CreateBuiltinAudioDecoderFactory()));
++ CreateBuiltinAudioDecoderFactory(),
++ std::make_unique<FieldTrials>(field_trials)));
+ }
+ };
+