Revert "WebRTC-DeprecateGlobalFieldTrialString/Enabled/ - part 14/inf"

This reverts commit f177081eeeab64658fb560b6e8cb235620ac4a1a.

Reason for revert: breaks downstream project

Original change's description:
> WebRTC-DeprecateGlobalFieldTrialString/Enabled/ - part 14/inf
>
> This cl/ passes field trials all the way from c++
> to the android NetworkMonitorAutoDetect.java
>
> Bug: webrtc:10335
> Change-Id: Ic6842612eed36b684340f0f78f4087bee249cc50
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/257081
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Reviewed-by: Florent Castelli <orphis@webrtc.org>
> Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36498}

Bug: webrtc:10335
Change-Id: I8d881ea3f50cf4affde65800d759885b2581c6be
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258482
Reviewed-by: Jonas Oreland <jonaso@google.com>
Owners-Override: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36500}
This commit is contained in:
Artem Titov
2022-04-08 15:09:03 +00:00
committed by WebRTC LUCI CQ
parent bb877d25c2
commit 54714779b2
8 changed files with 56 additions and 84 deletions

View File

@ -13,6 +13,5 @@ package org.webrtc;
import android.content.Context;
public interface NetworkChangeDetectorFactory {
public NetworkChangeDetector create(
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString);
public NetworkChangeDetector create(NetworkChangeDetector.Observer observer, Context context);
}

View File

@ -46,8 +46,8 @@ public class NetworkMonitor {
new NetworkChangeDetectorFactory() {
@Override
public NetworkChangeDetector create(
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString) {
return new NetworkMonitorAutoDetect(observer, context, fieldTrialsString);
NetworkChangeDetector.Observer observer, Context context) {
return new NetworkMonitorAutoDetect(observer, context);
}
};
@ -101,26 +101,20 @@ public class NetworkMonitor {
* multi-networking. This requires the embedding app have the platform ACCESS_NETWORK_STATE and
* CHANGE_NETWORK_STATE permission.
*/
public void startMonitoring(Context applicationContext, String fieldTrialsString) {
public void startMonitoring(Context applicationContext) {
synchronized (networkChangeDetectorLock) {
++numObservers;
if (networkChangeDetector == null) {
networkChangeDetector = createNetworkChangeDetector(applicationContext, fieldTrialsString);
networkChangeDetector = createNetworkChangeDetector(applicationContext);
}
currentConnectionType = networkChangeDetector.getCurrentConnectionType();
}
}
/** Deprecated, use startMonitoring with fieldTrialsStringString argument. */
@Deprecated
public void startMonitoring(Context applicationContext) {
startMonitoring(applicationContext, "");
}
/** Deprecated, pass in application context in startMonitoring instead. */
@Deprecated
public void startMonitoring() {
startMonitoring(ContextUtils.getApplicationContext(), "");
startMonitoring(ContextUtils.getApplicationContext());
}
/**
@ -129,15 +123,11 @@ public class NetworkMonitor {
* CHANGE_NETWORK_STATE permission.
*/
@CalledByNative
private void startMonitoring(
@Nullable Context applicationContext, long nativeObserver, String fieldTrialsString) {
Logging.d(TAG,
"Start monitoring with native observer " + nativeObserver
+ " fieldTrialsString: " + fieldTrialsString);
private void startMonitoring(@Nullable Context applicationContext, long nativeObserver) {
Logging.d(TAG, "Start monitoring with native observer " + nativeObserver);
startMonitoring(
applicationContext != null ? applicationContext : ContextUtils.getApplicationContext(),
fieldTrialsString);
applicationContext != null ? applicationContext : ContextUtils.getApplicationContext());
// The native observers expect a network list update after they call startMonitoring.
synchronized (nativeNetworkObservers) {
nativeNetworkObservers.add(nativeObserver);
@ -187,8 +177,7 @@ public class NetworkMonitor {
return currentConnectionType;
}
private NetworkChangeDetector createNetworkChangeDetector(
Context appContext, String fieldTrialsString) {
private NetworkChangeDetector createNetworkChangeDetector(Context appContext) {
return networkChangeDetectorFactory.create(new NetworkChangeDetector.Observer() {
@Override
public void onConnectionTypeChanged(NetworkChangeDetector.ConnectionType newConnectionType) {
@ -210,7 +199,7 @@ public class NetworkMonitor {
List<NetworkChangeDetector.ConnectionType> types, int preference) {
notifyObserversOfNetworkPreference(types, preference);
}
}, appContext, fieldTrialsString);
}, appContext);
}
private void updateCurrentConnectionType(NetworkChangeDetector.ConnectionType newConnectionType) {
@ -350,11 +339,10 @@ public class NetworkMonitor {
}
// For testing only.
static NetworkMonitorAutoDetect createAndSetAutoDetectForTest(
Context context, String fieldTrialsString) {
static NetworkMonitorAutoDetect createAndSetAutoDetectForTest(Context context) {
NetworkMonitor networkMonitor = getInstance();
NetworkChangeDetector networkChangeDetector =
networkMonitor.createNetworkChangeDetector(context, fieldTrialsString);
networkMonitor.createNetworkChangeDetector(context);
networkMonitor.networkChangeDetector = networkChangeDetector;
return (NetworkMonitorAutoDetect) networkChangeDetector;
}

View File

@ -176,29 +176,26 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver implements Netwo
private final boolean requestVPN;
private final boolean includeOtherUidNetworks;
ConnectivityManagerDelegate(
Context context, Set<Network> availableNetworks, String fieldTrialsString) {
ConnectivityManagerDelegate(Context context, Set<Network> availableNetworks) {
this((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
availableNetworks, fieldTrialsString);
availableNetworks,
PeerConnectionFactory.fieldTrialsFindFullName("WebRTC-NetworkMonitorAutoDetect"));
}
@VisibleForTesting
ConnectivityManagerDelegate(ConnectivityManager connectivityManager,
Set<Network> availableNetworks, String fieldTrialsString) {
Set<Network> availableNetworks, String fieldTrials) {
this.connectivityManager = connectivityManager;
this.availableNetworks = availableNetworks;
this.getAllNetworksFromCache =
checkFieldTrial(fieldTrialsString, "getAllNetworksFromCache", false);
this.requestVPN = checkFieldTrial(fieldTrialsString, "requestVPN", false);
this.includeOtherUidNetworks =
checkFieldTrial(fieldTrialsString, "includeOtherUidNetworks", false);
this.getAllNetworksFromCache = checkFieldTrial(fieldTrials, "getAllNetworksFromCache", false);
this.requestVPN = checkFieldTrial(fieldTrials, "requestVPN", false);
this.includeOtherUidNetworks = checkFieldTrial(fieldTrials, "includeOtherUidNetworks", false);
}
private static boolean checkFieldTrial(
String fieldTrialsString, String key, boolean defaultValue) {
if (fieldTrialsString.contains(key + ":true")) {
private static boolean checkFieldTrial(String fieldTrials, String key, boolean defaultValue) {
if (fieldTrials.contains(key + ":true")) {
return true;
} else if (fieldTrialsString.contains(key + ":false")) {
} else if (fieldTrials.contains(key + ":false")) {
return false;
}
return defaultValue;
@ -638,12 +635,10 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver implements Netwo
/** Constructs a NetworkMonitorAutoDetect. Should only be called on UI thread. */
@SuppressLint("NewApi")
public NetworkMonitorAutoDetect(
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString) {
public NetworkMonitorAutoDetect(NetworkChangeDetector.Observer observer, Context context) {
this.observer = observer;
this.context = context;
connectivityManagerDelegate =
new ConnectivityManagerDelegate(context, availableNetworks, fieldTrialsString);
connectivityManagerDelegate = new ConnectivityManagerDelegate(context, availableNetworks);
wifiManagerDelegate = new WifiManagerDelegate(context);
final NetworkState networkState = connectivityManagerDelegate.getNetworkState();