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_;
|
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*> NetworkManagerBase::GetAnyAddressNetworks() {
|
||||||
std::vector<const Network*> networks;
|
std::vector<const Network*> networks;
|
||||||
if (!ipv4_any_address_network_) {
|
if (!ipv4_any_address_network_) {
|
||||||
const rtc::IPAddress ipv4_any_address(INADDR_ANY);
|
const rtc::IPAddress ipv4_any_address(INADDR_ANY);
|
||||||
ipv4_any_address_network_ = std::make_unique<Network>(
|
ipv4_any_address_network_ =
|
||||||
"any", "any", ipv4_any_address, 0, ADAPTER_TYPE_ANY, field_trials_);
|
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_default_local_address_provider(this);
|
||||||
ipv4_any_address_network_->set_mdns_responder_provider(this);
|
ipv4_any_address_network_->set_mdns_responder_provider(this);
|
||||||
ipv4_any_address_network_->AddIP(ipv4_any_address);
|
ipv4_any_address_network_->AddIP(ipv4_any_address);
|
||||||
@ -330,8 +340,8 @@ std::vector<const Network*> NetworkManagerBase::GetAnyAddressNetworks() {
|
|||||||
|
|
||||||
if (!ipv6_any_address_network_) {
|
if (!ipv6_any_address_network_) {
|
||||||
const rtc::IPAddress ipv6_any_address(in6addr_any);
|
const rtc::IPAddress ipv6_any_address(in6addr_any);
|
||||||
ipv6_any_address_network_ = std::make_unique<Network>(
|
ipv6_any_address_network_ =
|
||||||
"any", "any", ipv6_any_address, 0, ADAPTER_TYPE_ANY, field_trials_);
|
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_default_local_address_provider(this);
|
||||||
ipv6_any_address_network_->set_mdns_responder_provider(this);
|
ipv6_any_address_network_->set_mdns_responder_provider(this);
|
||||||
ipv6_any_address_network_->AddIP(ipv6_any_address);
|
ipv6_any_address_network_->AddIP(ipv6_any_address);
|
||||||
@ -531,14 +541,14 @@ bool NetworkManagerBase::IsVpnMacAddress(
|
|||||||
BasicNetworkManager::BasicNetworkManager(
|
BasicNetworkManager::BasicNetworkManager(
|
||||||
NetworkMonitorFactory* network_monitor_factory,
|
NetworkMonitorFactory* network_monitor_factory,
|
||||||
SocketFactory* socket_factory,
|
SocketFactory* socket_factory,
|
||||||
const webrtc::FieldTrialsView* field_trials)
|
const webrtc::FieldTrialsView* field_trials_view)
|
||||||
: field_trials_(field_trials),
|
: NetworkManagerBase(field_trials_view),
|
||||||
network_monitor_factory_(network_monitor_factory),
|
network_monitor_factory_(network_monitor_factory),
|
||||||
socket_factory_(socket_factory),
|
socket_factory_(socket_factory),
|
||||||
allow_mac_based_ipv6_(
|
allow_mac_based_ipv6_(
|
||||||
field_trials_->IsEnabled("WebRTC-AllowMACBasedIPv6")),
|
field_trials()->IsEnabled("WebRTC-AllowMACBasedIPv6")),
|
||||||
bind_using_ifname_(
|
bind_using_ifname_(
|
||||||
!field_trials_->IsDisabled("WebRTC-BindUsingInterfaceName")) {
|
!field_trials()->IsDisabled("WebRTC-BindUsingInterfaceName")) {
|
||||||
RTC_DCHECK(socket_factory_);
|
RTC_DCHECK(socket_factory_);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -668,9 +678,8 @@ void BasicNetworkManager::ConvertIfAddrs(
|
|||||||
if_info.adapter_type = ADAPTER_TYPE_VPN;
|
if_info.adapter_type = ADAPTER_TYPE_VPN;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto network = std::make_unique<Network>(
|
auto network = CreateNetwork(cursor->ifa_name, cursor->ifa_name, prefix,
|
||||||
cursor->ifa_name, cursor->ifa_name, prefix, prefix_length,
|
prefix_length, if_info.adapter_type);
|
||||||
if_info.adapter_type, field_trials_.get());
|
|
||||||
network->set_default_local_address_provider(this);
|
network->set_default_local_address_provider(this);
|
||||||
network->set_scope_id(scope_id);
|
network->set_scope_id(scope_id);
|
||||||
network->AddIP(ip);
|
network->AddIP(ip);
|
||||||
@ -859,8 +868,8 @@ bool BasicNetworkManager::CreateNetworks(
|
|||||||
adapter_type = ADAPTER_TYPE_VPN;
|
adapter_type = ADAPTER_TYPE_VPN;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto network = std::make_unique<Network>(name, description, prefix,
|
auto network = CreateNetwork(name, description, prefix, prefix_length,
|
||||||
prefix_length, adapter_type);
|
adapter_type);
|
||||||
network->set_underlying_type_for_vpn(underlying_type_for_vpn);
|
network->set_underlying_type_for_vpn(underlying_type_for_vpn);
|
||||||
network->set_default_local_address_provider(this);
|
network->set_default_local_address_provider(this);
|
||||||
network->set_mdns_responder_provider(this);
|
network->set_mdns_responder_provider(this);
|
||||||
@ -965,7 +974,7 @@ void BasicNetworkManager::StartNetworkMonitor() {
|
|||||||
}
|
}
|
||||||
if (!network_monitor_) {
|
if (!network_monitor_) {
|
||||||
network_monitor_.reset(
|
network_monitor_.reset(
|
||||||
network_monitor_factory_->CreateNetworkMonitor(*field_trials_));
|
network_monitor_factory_->CreateNetworkMonitor(*field_trials()));
|
||||||
if (!network_monitor_) {
|
if (!network_monitor_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -231,9 +231,21 @@ class RTC_EXPORT NetworkManagerBase : public NetworkManager {
|
|||||||
// refactoring of the interface GetNetworks method.
|
// refactoring of the interface GetNetworks method.
|
||||||
const std::vector<Network*>& GetNetworksInternal() const { return networks_; }
|
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:
|
private:
|
||||||
friend class NetworkTest;
|
friend class NetworkTest;
|
||||||
const webrtc::FieldTrialsView* field_trials_ = nullptr;
|
webrtc::AlwaysValidPointer<const webrtc::FieldTrialsView,
|
||||||
|
webrtc::FieldTrialBasedConfig>
|
||||||
|
field_trials_;
|
||||||
EnumerationPermission enumeration_permission_;
|
EnumerationPermission enumeration_permission_;
|
||||||
|
|
||||||
std::vector<Network*> networks_;
|
std::vector<Network*> networks_;
|
||||||
@ -348,10 +360,7 @@ class RTC_EXPORT BasicNetworkManager : public NetworkManagerBase,
|
|||||||
Thread* thread_ = nullptr;
|
Thread* thread_ = nullptr;
|
||||||
bool sent_first_update_ = true;
|
bool sent_first_update_ = true;
|
||||||
int start_count_ = 0;
|
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_;
|
std::vector<std::string> network_ignore_list_;
|
||||||
NetworkMonitorFactory* const network_monitor_factory_;
|
NetworkMonitorFactory* const network_monitor_factory_;
|
||||||
SocketFactory* const socket_factory_;
|
SocketFactory* const socket_factory_;
|
||||||
|
Reference in New Issue
Block a user