Move field trial from BasicNetworkManager to NetworkManagerBase
Bug: webrtc:14306 Change-Id: I9bba38090a77a40f599eaa680da3cf60810b0337 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/283801 Reviewed-by: Jonas Oreland <jonaso@webrtc.org> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Commit-Queue: Diep Bui <diepbp@webrtc.org> Cr-Commit-Position: refs/heads/main@{#38674}
This commit is contained in:
@ -316,12 +316,22 @@ NetworkManagerBase::enumeration_permission() const {
|
||||
return enumeration_permission_;
|
||||
}
|
||||
|
||||
std::unique_ptr<Network> NetworkManagerBase::CreateNetwork(
|
||||
absl::string_view name,
|
||||
absl::string_view description,
|
||||
const IPAddress& prefix,
|
||||
int prefix_length,
|
||||
AdapterType type) const {
|
||||
return std::make_unique<Network>(name, description, prefix, prefix_length,
|
||||
type, field_trials_.get());
|
||||
}
|
||||
|
||||
std::vector<const Network*> NetworkManagerBase::GetAnyAddressNetworks() {
|
||||
std::vector<const Network*> networks;
|
||||
if (!ipv4_any_address_network_) {
|
||||
const rtc::IPAddress ipv4_any_address(INADDR_ANY);
|
||||
ipv4_any_address_network_ = std::make_unique<Network>(
|
||||
"any", "any", ipv4_any_address, 0, ADAPTER_TYPE_ANY, field_trials_);
|
||||
ipv4_any_address_network_ =
|
||||
CreateNetwork("any", "any", ipv4_any_address, 0, ADAPTER_TYPE_ANY);
|
||||
ipv4_any_address_network_->set_default_local_address_provider(this);
|
||||
ipv4_any_address_network_->set_mdns_responder_provider(this);
|
||||
ipv4_any_address_network_->AddIP(ipv4_any_address);
|
||||
@ -330,8 +340,8 @@ std::vector<const Network*> NetworkManagerBase::GetAnyAddressNetworks() {
|
||||
|
||||
if (!ipv6_any_address_network_) {
|
||||
const rtc::IPAddress ipv6_any_address(in6addr_any);
|
||||
ipv6_any_address_network_ = std::make_unique<Network>(
|
||||
"any", "any", ipv6_any_address, 0, ADAPTER_TYPE_ANY, field_trials_);
|
||||
ipv6_any_address_network_ =
|
||||
CreateNetwork("any", "any", ipv6_any_address, 0, ADAPTER_TYPE_ANY);
|
||||
ipv6_any_address_network_->set_default_local_address_provider(this);
|
||||
ipv6_any_address_network_->set_mdns_responder_provider(this);
|
||||
ipv6_any_address_network_->AddIP(ipv6_any_address);
|
||||
@ -531,14 +541,14 @@ bool NetworkManagerBase::IsVpnMacAddress(
|
||||
BasicNetworkManager::BasicNetworkManager(
|
||||
NetworkMonitorFactory* network_monitor_factory,
|
||||
SocketFactory* socket_factory,
|
||||
const webrtc::FieldTrialsView* field_trials)
|
||||
: field_trials_(field_trials),
|
||||
const webrtc::FieldTrialsView* field_trials_view)
|
||||
: NetworkManagerBase(field_trials_view),
|
||||
network_monitor_factory_(network_monitor_factory),
|
||||
socket_factory_(socket_factory),
|
||||
allow_mac_based_ipv6_(
|
||||
field_trials_->IsEnabled("WebRTC-AllowMACBasedIPv6")),
|
||||
field_trials()->IsEnabled("WebRTC-AllowMACBasedIPv6")),
|
||||
bind_using_ifname_(
|
||||
!field_trials_->IsDisabled("WebRTC-BindUsingInterfaceName")) {
|
||||
!field_trials()->IsDisabled("WebRTC-BindUsingInterfaceName")) {
|
||||
RTC_DCHECK(socket_factory_);
|
||||
}
|
||||
|
||||
@ -668,9 +678,8 @@ void BasicNetworkManager::ConvertIfAddrs(
|
||||
if_info.adapter_type = ADAPTER_TYPE_VPN;
|
||||
}
|
||||
|
||||
auto network = std::make_unique<Network>(
|
||||
cursor->ifa_name, cursor->ifa_name, prefix, prefix_length,
|
||||
if_info.adapter_type, field_trials_.get());
|
||||
auto network = CreateNetwork(cursor->ifa_name, cursor->ifa_name, prefix,
|
||||
prefix_length, if_info.adapter_type);
|
||||
network->set_default_local_address_provider(this);
|
||||
network->set_scope_id(scope_id);
|
||||
network->AddIP(ip);
|
||||
@ -859,8 +868,8 @@ bool BasicNetworkManager::CreateNetworks(
|
||||
adapter_type = ADAPTER_TYPE_VPN;
|
||||
}
|
||||
|
||||
auto network = std::make_unique<Network>(name, description, prefix,
|
||||
prefix_length, adapter_type);
|
||||
auto network = CreateNetwork(name, description, prefix, prefix_length,
|
||||
adapter_type);
|
||||
network->set_underlying_type_for_vpn(underlying_type_for_vpn);
|
||||
network->set_default_local_address_provider(this);
|
||||
network->set_mdns_responder_provider(this);
|
||||
@ -965,7 +974,7 @@ void BasicNetworkManager::StartNetworkMonitor() {
|
||||
}
|
||||
if (!network_monitor_) {
|
||||
network_monitor_.reset(
|
||||
network_monitor_factory_->CreateNetworkMonitor(*field_trials_));
|
||||
network_monitor_factory_->CreateNetworkMonitor(*field_trials()));
|
||||
if (!network_monitor_) {
|
||||
return;
|
||||
}
|
||||
|
@ -231,9 +231,21 @@ class RTC_EXPORT NetworkManagerBase : public NetworkManager {
|
||||
// refactoring of the interface GetNetworks method.
|
||||
const std::vector<Network*>& GetNetworksInternal() const { return networks_; }
|
||||
|
||||
std::unique_ptr<Network> CreateNetwork(absl::string_view name,
|
||||
absl::string_view description,
|
||||
const IPAddress& prefix,
|
||||
int prefix_length,
|
||||
AdapterType type) const;
|
||||
|
||||
const webrtc::FieldTrialsView* field_trials() const {
|
||||
return field_trials_.get();
|
||||
}
|
||||
|
||||
private:
|
||||
friend class NetworkTest;
|
||||
const webrtc::FieldTrialsView* field_trials_ = nullptr;
|
||||
webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
|
||||
webrtc::FieldTrialBasedConfig>
|
||||
field_trials_;
|
||||
EnumerationPermission enumeration_permission_;
|
||||
|
||||
std::vector<Network*> networks_;
|
||||
@ -348,10 +360,7 @@ class RTC_EXPORT BasicNetworkManager : public NetworkManagerBase,
|
||||
Thread* thread_ = nullptr;
|
||||
bool sent_first_update_ = true;
|
||||
int start_count_ = 0;
|
||||
// Chromium create BasicNetworkManager() w/o field trials.
|
||||
webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
|
||||
webrtc::FieldTrialBasedConfig>
|
||||
field_trials_;
|
||||
|
||||
std::vector<std::string> network_ignore_list_;
|
||||
NetworkMonitorFactory* const network_monitor_factory_;
|
||||
SocketFactory* const socket_factory_;
|
||||
|
Reference in New Issue
Block a user