commit 3f41c68712904e822cc098ad76fada1601363ab9
parent 2d95a8c13582f2991b4af251f231bf1a09d6406c
Author: Dan Baker <dbaker@mozilla.com>
Date: Mon, 27 Oct 2025 14:36:00 -0600
Bug 1995393 - Vendor libwebrtc from 4b4867dfee
Upstream commit: https://webrtc.googlesource.com/src/+/4b4867dfee3115506d8beeaea743209f56f697a6
Remove P2PTransportChannel constructor that do not provide Environment
Bug: webrtc:42223992
Change-Id: Ice26cd1cc1454e2c88b305153422f17b8ed8b355
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/406361
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45465}
Diffstat:
3 files changed, 32 insertions(+), 75 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:33:02.592695+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-27T20:35:48.512243+00:00.
# base of lastest vendoring
-f14761075c
+4b4867dfee
diff --git a/third_party/libwebrtc/p2p/base/p2p_transport_channel.cc b/third_party/libwebrtc/p2p/base/p2p_transport_channel.cc
@@ -90,14 +90,11 @@ PortInterface::CandidateOrigin GetOrigin(PortInterface* port,
return PortInterface::ORIGIN_OTHER_PORT;
}
-uint32_t GetWeakPingIntervalInFieldTrial(const FieldTrialsView* field_trials) {
- if (field_trials != nullptr) {
- uint32_t weak_ping_interval =
- ::strtoul(field_trials->Lookup("WebRTC-StunInterPacketDelay").c_str(),
- nullptr, 10);
- if (weak_ping_interval) {
- return static_cast<int>(weak_ping_interval);
- }
+uint32_t GetWeakPingIntervalInFieldTrial(const FieldTrialsView& field_trials) {
+ uint32_t weak_ping_interval = ::strtoul(
+ field_trials.Lookup("WebRTC-StunInterPacketDelay").c_str(), nullptr, 10);
+ if (weak_ping_interval) {
+ return static_cast<int>(weak_ping_interval);
}
return WEAK_PING_INTERVAL;
}
@@ -141,9 +138,8 @@ std::unique_ptr<P2PTransportChannel> P2PTransportChannel::Create(
return absl::WrapUnique(new P2PTransportChannel(
init.env(), transport_name, component, init.port_allocator(),
init.async_dns_resolver_factory(), /*owned_dns_resolver_factory=*/nullptr,
- init.lna_permission_factory(), init.event_log(),
- init.ice_controller_factory(), init.active_ice_controller_factory(),
- init.field_trials()));
+ init.lna_permission_factory(), init.ice_controller_factory(),
+ init.active_ice_controller_factory()));
}
P2PTransportChannel::P2PTransportChannel(const Environment& env,
@@ -157,30 +153,12 @@ P2PTransportChannel::P2PTransportChannel(const Environment& env,
/* async_dns_resolver_factory= */ nullptr,
/* owned_dns_resolver_factory= */ nullptr,
/* lna_permission_factory= */ nullptr,
- &env.event_log(),
/* ice_controller_factory= */ nullptr,
- /* active_ice_controller_factory= */ nullptr,
- &env.field_trials()) {}
-
-P2PTransportChannel::P2PTransportChannel(absl::string_view transport_name,
- int component,
- PortAllocator* allocator,
- const FieldTrialsView* field_trials)
- : P2PTransportChannel(/*env=*/std::nullopt,
- transport_name,
- component,
- allocator,
- /* async_dns_resolver_factory= */ nullptr,
- /* owned_dns_resolver_factory= */ nullptr,
- /* lna_permission_factory= */ nullptr,
- /* event_log= */ nullptr,
- /* ice_controller_factory= */ nullptr,
- /* active_ice_controller_factory= */ nullptr,
- field_trials) {}
+ /* active_ice_controller_factory= */ nullptr) {}
// Private constructor, called from Create()
P2PTransportChannel::P2PTransportChannel(
- std::optional<Environment> env,
+ const Environment& env,
absl::string_view transport_name,
int component,
PortAllocator* allocator,
@@ -188,10 +166,8 @@ P2PTransportChannel::P2PTransportChannel(
std::unique_ptr<AsyncDnsResolverFactoryInterface>
owned_dns_resolver_factory,
LocalNetworkAccessPermissionFactoryInterface* lna_permission_factory,
- RtcEventLog* event_log,
IceControllerFactoryInterface* ice_controller_factory,
- ActiveIceControllerFactoryInterface* active_ice_controller_factory,
- const FieldTrialsView* field_trials)
+ ActiveIceControllerFactoryInterface* active_ice_controller_factory)
: env_(env),
transport_name_(transport_name),
component_(component),
@@ -209,7 +185,7 @@ P2PTransportChannel::P2PTransportChannel(
remote_ice_mode_(ICEMODE_FULL),
ice_role_(ICEROLE_UNKNOWN),
gathering_state_(kIceGatheringNew),
- weak_ping_interval_(GetWeakPingIntervalInFieldTrial(field_trials)),
+ weak_ping_interval_(GetWeakPingIntervalInFieldTrial(env_.field_trials())),
config_(RECEIVING_TIMEOUT,
BACKUP_CONNECTION_PING_INTERVAL,
GATHER_ONCE /* continual_gathering_policy */,
@@ -217,8 +193,7 @@ P2PTransportChannel::P2PTransportChannel(
STRONG_AND_STABLE_WRITABLE_CONNECTION_PING_INTERVAL,
true /* presume_writable_when_fully_relayed */,
REGATHER_ON_FAILED_NETWORKS_INTERVAL,
- RECEIVING_SWITCHING_DELAY),
- field_trials_(field_trials) {
+ RECEIVING_SWITCHING_DELAY) {
TRACE_EVENT0("webrtc", "P2PTransportChannel::P2PTransportChannel");
RTC_DCHECK(allocator_ != nullptr);
RTC_DCHECK(!transport_name_.empty());
@@ -234,9 +209,9 @@ P2PTransportChannel::P2PTransportChannel(
// the transport.
allocator_->SignalCandidateFilterChanged.connect(
this, &P2PTransportChannel::OnCandidateFilterChanged);
- ice_event_log_.set_event_log(event_log);
+ ice_event_log_.set_event_log(&env_.event_log());
- ParseFieldTrials(field_trials);
+ ParseFieldTrials(env_.field_trials());
IceControllerFactoryArgs args{
.ice_transport_state_func = [this] { return GetState(); },
@@ -248,8 +223,7 @@ P2PTransportChannel::P2PTransportChannel(
},
.ice_field_trials = &ice_field_trials_,
.ice_controller_field_trials =
- field_trials ? field_trials->Lookup("WebRTC-IceControllerFieldTrials")
- : ""};
+ env_.field_trials().Lookup("WebRTC-IceControllerFieldTrials")};
if (active_ice_controller_factory) {
ActiveIceControllerFactoryArgs active_args{.legacy_args = args,
@@ -734,12 +708,8 @@ void P2PTransportChannel::SetIceConfig(const IceConfig& config) {
}
void P2PTransportChannel::ParseFieldTrials(
- const FieldTrialsView* field_trials) {
- if (field_trials == nullptr) {
- return;
- }
-
- if (field_trials->IsEnabled("WebRTC-ExtraICEPing")) {
+ const FieldTrialsView& field_trials) {
+ if (field_trials.IsEnabled("WebRTC-ExtraICEPing")) {
RTC_LOG(LS_INFO) << "Set WebRTC-ExtraICEPing: Enabled";
}
@@ -778,7 +748,7 @@ void P2PTransportChannel::ParseFieldTrials(
// GOOG_DELTA
"enable_goog_delta", &ice_field_trials_.enable_goog_delta,
"answer_goog_delta", &ice_field_trials_.answer_goog_delta)
- ->Parse(field_trials->Lookup("WebRTC-IceFieldTrials"));
+ ->Parse(field_trials.Lookup("WebRTC-IceFieldTrials"));
if (ice_field_trials_.dead_connection_timeout_ms < 30000) {
RTC_LOG(LS_WARNING) << "dead_connection_timeout_ms set to "
@@ -811,14 +781,14 @@ void P2PTransportChannel::ParseFieldTrials(
// that will be used for tagging all packets.
StructParametersParser::Create("override_dscp",
&ice_field_trials_.override_dscp)
- ->Parse(field_trials->Lookup("WebRTC-DscpFieldTrial"));
+ ->Parse(field_trials.Lookup("WebRTC-DscpFieldTrial"));
if (ice_field_trials_.override_dscp) {
SetOption(Socket::OPT_DSCP, *ice_field_trials_.override_dscp);
}
std::string field_trial_string =
- field_trials->Lookup("WebRTC-SetSocketReceiveBuffer");
+ field_trials.Lookup("WebRTC-SetSocketReceiveBuffer");
int receive_buffer_size_kb = 0;
sscanf(field_trial_string.c_str(), "Enabled-%d", &receive_buffer_size_kb);
if (receive_buffer_size_kb > 0) {
@@ -828,16 +798,16 @@ void P2PTransportChannel::ParseFieldTrials(
}
ice_field_trials_.piggyback_ice_check_acknowledgement =
- field_trials->IsEnabled("WebRTC-PiggybackIceCheckAcknowledgement");
+ field_trials.IsEnabled("WebRTC-PiggybackIceCheckAcknowledgement");
ice_field_trials_.extra_ice_ping =
- field_trials->IsEnabled("WebRTC-ExtraICEPing");
+ field_trials.IsEnabled("WebRTC-ExtraICEPing");
if (!ice_field_trials_.enable_goog_delta) {
stun_dict_writer_.Disable();
}
- if (field_trials->IsEnabled("WebRTC-RFC8888CongestionControlFeedback")) {
+ if (field_trials.IsEnabled("WebRTC-RFC8888CongestionControlFeedback")) {
int desired_recv_esn = 1;
RTC_LOG(LS_INFO) << "Set WebRTC-RFC8888CongestionControlFeedback: Enable "
"and set ECN recving mode";
diff --git a/third_party/libwebrtc/p2p/base/p2p_transport_channel.h b/third_party/libwebrtc/p2p/base/p2p_transport_channel.h
@@ -73,10 +73,6 @@
#include "rtc_base/thread_annotations.h"
namespace webrtc {
-class RtcEventLog;
-} // namespace webrtc
-
-namespace webrtc {
bool IceCredentialsChanged(absl::string_view old_ufrag,
absl::string_view old_pwd,
@@ -112,13 +108,6 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
int component,
PortAllocator* allocator);
- // TODO: bugs.webrtc.org/42223992 - Remove this constructor when chromium is
- // updated not to use it.
- P2PTransportChannel(absl::string_view transport_name,
- int component,
- PortAllocator* allocator,
- const FieldTrialsView* field_trials = nullptr);
-
~P2PTransportChannel() override;
P2PTransportChannel(const P2PTransportChannel&) = delete;
@@ -252,7 +241,9 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
return stun_dict_writer_;
}
- const FieldTrialsView* field_trials() const override { return field_trials_; }
+ const FieldTrialsView* field_trials() const override {
+ return &env_.field_trials();
+ }
void ResetDtlsStunPiggybackCallbacks() override;
void SetDtlsStunPiggybackCallbacks(
@@ -293,7 +284,7 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
};
P2PTransportChannel(
- std::optional<Environment> env,
+ const Environment& env,
absl::string_view transport_name,
int component,
PortAllocator* allocator,
@@ -304,10 +295,8 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
std::unique_ptr<AsyncDnsResolverFactoryInterface>
owned_dns_resolver_factory,
LocalNetworkAccessPermissionFactoryInterface* lna_permission_factory,
- RtcEventLog* event_log,
IceControllerFactoryInterface* ice_controller_factory,
- ActiveIceControllerFactoryInterface* active_ice_controller_factory,
- const FieldTrialsView* field_trials);
+ ActiveIceControllerFactoryInterface* active_ice_controller_factory);
bool IsGettingPorts() {
RTC_DCHECK_RUN_ON(network_thread_);
@@ -437,7 +426,7 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
int64_t ComputeEstimatedDisconnectedTimeMs(int64_t now,
Connection* old_connection);
- void ParseFieldTrials(const FieldTrialsView* field_trials);
+ void ParseFieldTrials(const FieldTrialsView& field_trials);
void FinishAddingRemoteCandidate(const Candidate& new_remote_candidate);
void OnCandidateResolved(AsyncDnsResolverInterface* resolver);
@@ -452,7 +441,7 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
const StunByteStringAttribute*);
void GoogDeltaAckReceived(RTCErrorOr<const StunUInt64Attribute*>);
- const std::optional<Environment> env_;
+ const Environment env_;
std::string transport_name_ RTC_GUARDED_BY(network_thread_);
int component_ RTC_GUARDED_BY(network_thread_);
PortAllocator* allocator_ RTC_GUARDED_BY(network_thread_);
@@ -538,8 +527,6 @@ class RTC_EXPORT P2PTransportChannel : public IceTransportInternal,
// Parsed field trials.
IceFieldTrials ice_field_trials_;
- // Unparsed field trials.
- const FieldTrialsView* field_trials_;
// A dictionary of attributes that will be reflected to peer.
StunDictionaryWriter stun_dict_writer_;