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:
parent
bb877d25c2
commit
54714779b2
@ -1631,7 +1631,6 @@ if (is_android) {
|
|||||||
":native_api_video",
|
":native_api_video",
|
||||||
":opensles_audio_device_module",
|
":opensles_audio_device_module",
|
||||||
":video_jni",
|
":video_jni",
|
||||||
"../../api:field_trials_view",
|
|
||||||
"../../api:scoped_refptr",
|
"../../api:scoped_refptr",
|
||||||
"../../api/rtc_event_log:rtc_event_log_factory",
|
"../../api/rtc_event_log:rtc_event_log_factory",
|
||||||
"../../api/task_queue:default_task_queue_factory",
|
"../../api/task_queue:default_task_queue_factory",
|
||||||
@ -1658,8 +1657,9 @@ if (is_android) {
|
|||||||
"../../rtc_base/synchronization:mutex",
|
"../../rtc_base/synchronization:mutex",
|
||||||
"../../rtc_base/system:inline",
|
"../../rtc_base/system:inline",
|
||||||
"../../system_wrappers",
|
"../../system_wrappers",
|
||||||
|
"../../system_wrappers:field_trial",
|
||||||
|
"../../test:field_trial",
|
||||||
"../../test:fileutils",
|
"../../test:fileutils",
|
||||||
"../../test:scoped_key_value_config",
|
|
||||||
"../../test:test_support",
|
"../../test:test_support",
|
||||||
"../../testing/gtest",
|
"../../testing/gtest",
|
||||||
]
|
]
|
||||||
|
|||||||
@ -13,6 +13,5 @@ package org.webrtc;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
public interface NetworkChangeDetectorFactory {
|
public interface NetworkChangeDetectorFactory {
|
||||||
public NetworkChangeDetector create(
|
public NetworkChangeDetector create(NetworkChangeDetector.Observer observer, Context context);
|
||||||
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,8 +46,8 @@ public class NetworkMonitor {
|
|||||||
new NetworkChangeDetectorFactory() {
|
new NetworkChangeDetectorFactory() {
|
||||||
@Override
|
@Override
|
||||||
public NetworkChangeDetector create(
|
public NetworkChangeDetector create(
|
||||||
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString) {
|
NetworkChangeDetector.Observer observer, Context context) {
|
||||||
return new NetworkMonitorAutoDetect(observer, context, fieldTrialsString);
|
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
|
* multi-networking. This requires the embedding app have the platform ACCESS_NETWORK_STATE and
|
||||||
* CHANGE_NETWORK_STATE permission.
|
* CHANGE_NETWORK_STATE permission.
|
||||||
*/
|
*/
|
||||||
public void startMonitoring(Context applicationContext, String fieldTrialsString) {
|
public void startMonitoring(Context applicationContext) {
|
||||||
synchronized (networkChangeDetectorLock) {
|
synchronized (networkChangeDetectorLock) {
|
||||||
++numObservers;
|
++numObservers;
|
||||||
if (networkChangeDetector == null) {
|
if (networkChangeDetector == null) {
|
||||||
networkChangeDetector = createNetworkChangeDetector(applicationContext, fieldTrialsString);
|
networkChangeDetector = createNetworkChangeDetector(applicationContext);
|
||||||
}
|
}
|
||||||
currentConnectionType = networkChangeDetector.getCurrentConnectionType();
|
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, pass in application context in startMonitoring instead. */
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void startMonitoring() {
|
public void startMonitoring() {
|
||||||
startMonitoring(ContextUtils.getApplicationContext(), "");
|
startMonitoring(ContextUtils.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,15 +123,11 @@ public class NetworkMonitor {
|
|||||||
* CHANGE_NETWORK_STATE permission.
|
* CHANGE_NETWORK_STATE permission.
|
||||||
*/
|
*/
|
||||||
@CalledByNative
|
@CalledByNative
|
||||||
private void startMonitoring(
|
private void startMonitoring(@Nullable Context applicationContext, long nativeObserver) {
|
||||||
@Nullable Context applicationContext, long nativeObserver, String fieldTrialsString) {
|
Logging.d(TAG, "Start monitoring with native observer " + nativeObserver);
|
||||||
Logging.d(TAG,
|
|
||||||
"Start monitoring with native observer " + nativeObserver
|
|
||||||
+ " fieldTrialsString: " + fieldTrialsString);
|
|
||||||
|
|
||||||
startMonitoring(
|
startMonitoring(
|
||||||
applicationContext != null ? applicationContext : ContextUtils.getApplicationContext(),
|
applicationContext != null ? applicationContext : ContextUtils.getApplicationContext());
|
||||||
fieldTrialsString);
|
|
||||||
// The native observers expect a network list update after they call startMonitoring.
|
// The native observers expect a network list update after they call startMonitoring.
|
||||||
synchronized (nativeNetworkObservers) {
|
synchronized (nativeNetworkObservers) {
|
||||||
nativeNetworkObservers.add(nativeObserver);
|
nativeNetworkObservers.add(nativeObserver);
|
||||||
@ -187,8 +177,7 @@ public class NetworkMonitor {
|
|||||||
return currentConnectionType;
|
return currentConnectionType;
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkChangeDetector createNetworkChangeDetector(
|
private NetworkChangeDetector createNetworkChangeDetector(Context appContext) {
|
||||||
Context appContext, String fieldTrialsString) {
|
|
||||||
return networkChangeDetectorFactory.create(new NetworkChangeDetector.Observer() {
|
return networkChangeDetectorFactory.create(new NetworkChangeDetector.Observer() {
|
||||||
@Override
|
@Override
|
||||||
public void onConnectionTypeChanged(NetworkChangeDetector.ConnectionType newConnectionType) {
|
public void onConnectionTypeChanged(NetworkChangeDetector.ConnectionType newConnectionType) {
|
||||||
@ -210,7 +199,7 @@ public class NetworkMonitor {
|
|||||||
List<NetworkChangeDetector.ConnectionType> types, int preference) {
|
List<NetworkChangeDetector.ConnectionType> types, int preference) {
|
||||||
notifyObserversOfNetworkPreference(types, preference);
|
notifyObserversOfNetworkPreference(types, preference);
|
||||||
}
|
}
|
||||||
}, appContext, fieldTrialsString);
|
}, appContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateCurrentConnectionType(NetworkChangeDetector.ConnectionType newConnectionType) {
|
private void updateCurrentConnectionType(NetworkChangeDetector.ConnectionType newConnectionType) {
|
||||||
@ -350,11 +339,10 @@ public class NetworkMonitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// For testing only.
|
// For testing only.
|
||||||
static NetworkMonitorAutoDetect createAndSetAutoDetectForTest(
|
static NetworkMonitorAutoDetect createAndSetAutoDetectForTest(Context context) {
|
||||||
Context context, String fieldTrialsString) {
|
|
||||||
NetworkMonitor networkMonitor = getInstance();
|
NetworkMonitor networkMonitor = getInstance();
|
||||||
NetworkChangeDetector networkChangeDetector =
|
NetworkChangeDetector networkChangeDetector =
|
||||||
networkMonitor.createNetworkChangeDetector(context, fieldTrialsString);
|
networkMonitor.createNetworkChangeDetector(context);
|
||||||
networkMonitor.networkChangeDetector = networkChangeDetector;
|
networkMonitor.networkChangeDetector = networkChangeDetector;
|
||||||
return (NetworkMonitorAutoDetect) networkChangeDetector;
|
return (NetworkMonitorAutoDetect) networkChangeDetector;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -176,29 +176,26 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver implements Netwo
|
|||||||
private final boolean requestVPN;
|
private final boolean requestVPN;
|
||||||
private final boolean includeOtherUidNetworks;
|
private final boolean includeOtherUidNetworks;
|
||||||
|
|
||||||
ConnectivityManagerDelegate(
|
ConnectivityManagerDelegate(Context context, Set<Network> availableNetworks) {
|
||||||
Context context, Set<Network> availableNetworks, String fieldTrialsString) {
|
|
||||||
this((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
|
this((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE),
|
||||||
availableNetworks, fieldTrialsString);
|
availableNetworks,
|
||||||
|
PeerConnectionFactory.fieldTrialsFindFullName("WebRTC-NetworkMonitorAutoDetect"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
ConnectivityManagerDelegate(ConnectivityManager connectivityManager,
|
ConnectivityManagerDelegate(ConnectivityManager connectivityManager,
|
||||||
Set<Network> availableNetworks, String fieldTrialsString) {
|
Set<Network> availableNetworks, String fieldTrials) {
|
||||||
this.connectivityManager = connectivityManager;
|
this.connectivityManager = connectivityManager;
|
||||||
this.availableNetworks = availableNetworks;
|
this.availableNetworks = availableNetworks;
|
||||||
this.getAllNetworksFromCache =
|
this.getAllNetworksFromCache = checkFieldTrial(fieldTrials, "getAllNetworksFromCache", false);
|
||||||
checkFieldTrial(fieldTrialsString, "getAllNetworksFromCache", false);
|
this.requestVPN = checkFieldTrial(fieldTrials, "requestVPN", false);
|
||||||
this.requestVPN = checkFieldTrial(fieldTrialsString, "requestVPN", false);
|
this.includeOtherUidNetworks = checkFieldTrial(fieldTrials, "includeOtherUidNetworks", false);
|
||||||
this.includeOtherUidNetworks =
|
|
||||||
checkFieldTrial(fieldTrialsString, "includeOtherUidNetworks", false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean checkFieldTrial(
|
private static boolean checkFieldTrial(String fieldTrials, String key, boolean defaultValue) {
|
||||||
String fieldTrialsString, String key, boolean defaultValue) {
|
if (fieldTrials.contains(key + ":true")) {
|
||||||
if (fieldTrialsString.contains(key + ":true")) {
|
|
||||||
return true;
|
return true;
|
||||||
} else if (fieldTrialsString.contains(key + ":false")) {
|
} else if (fieldTrials.contains(key + ":false")) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
@ -638,12 +635,10 @@ public class NetworkMonitorAutoDetect extends BroadcastReceiver implements Netwo
|
|||||||
|
|
||||||
/** Constructs a NetworkMonitorAutoDetect. Should only be called on UI thread. */
|
/** Constructs a NetworkMonitorAutoDetect. Should only be called on UI thread. */
|
||||||
@SuppressLint("NewApi")
|
@SuppressLint("NewApi")
|
||||||
public NetworkMonitorAutoDetect(
|
public NetworkMonitorAutoDetect(NetworkChangeDetector.Observer observer, Context context) {
|
||||||
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString) {
|
|
||||||
this.observer = observer;
|
this.observer = observer;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
connectivityManagerDelegate =
|
connectivityManagerDelegate = new ConnectivityManagerDelegate(context, availableNetworks);
|
||||||
new ConnectivityManagerDelegate(context, availableNetworks, fieldTrialsString);
|
|
||||||
wifiManagerDelegate = new WifiManagerDelegate(context);
|
wifiManagerDelegate = new WifiManagerDelegate(context);
|
||||||
|
|
||||||
final NetworkState networkState = connectivityManagerDelegate.getNetworkState();
|
final NetworkState networkState = connectivityManagerDelegate.getNetworkState();
|
||||||
|
|||||||
@ -58,7 +58,6 @@ import org.webrtc.NetworkMonitorAutoDetect.SimpleNetworkCallback;
|
|||||||
public class NetworkMonitorTest {
|
public class NetworkMonitorTest {
|
||||||
private static final long INVALID_NET_ID = -1;
|
private static final long INVALID_NET_ID = -1;
|
||||||
private NetworkChangeDetector detector;
|
private NetworkChangeDetector detector;
|
||||||
private String fieldTrialsString = "";
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Listens for alerts fired by the NetworkMonitor when network status changes.
|
* Listens for alerts fired by the NetworkMonitor when network status changes.
|
||||||
@ -95,7 +94,7 @@ public class NetworkMonitorTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MockConnectivityManagerDelegate(Set<Network> availableNetworks, String fieldTrialsString) {
|
MockConnectivityManagerDelegate(Set<Network> availableNetworks, String fieldTrialsString) {
|
||||||
super((ConnectivityManager) null, availableNetworks, fieldTrialsString);
|
super(null, availableNetworks, fieldTrialsString);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -190,13 +189,13 @@ public class NetworkMonitorTest {
|
|||||||
new NetworkChangeDetectorFactory() {
|
new NetworkChangeDetectorFactory() {
|
||||||
@Override
|
@Override
|
||||||
public NetworkChangeDetector create(
|
public NetworkChangeDetector create(
|
||||||
NetworkChangeDetector.Observer observer, Context context, String fieldTrialsString) {
|
NetworkChangeDetector.Observer observer, Context context) {
|
||||||
detector = new NetworkMonitorAutoDetect(observer, context, fieldTrialsString);
|
detector = new NetworkMonitorAutoDetect(observer, context);
|
||||||
return detector;
|
return detector;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
receiver = NetworkMonitor.createAndSetAutoDetectForTest(context, fieldTrialsString);
|
receiver = NetworkMonitor.createAndSetAutoDetectForTest(context);
|
||||||
assertNotNull(receiver);
|
assertNotNull(receiver);
|
||||||
|
|
||||||
connectivityDelegate = new MockConnectivityManagerDelegate();
|
connectivityDelegate = new MockConnectivityManagerDelegate();
|
||||||
@ -229,8 +228,7 @@ public class NetworkMonitorTest {
|
|||||||
|
|
||||||
NetworkMonitorAutoDetect.Observer observer = new TestNetworkMonitorAutoDetectObserver();
|
NetworkMonitorAutoDetect.Observer observer = new TestNetworkMonitorAutoDetectObserver();
|
||||||
|
|
||||||
NetworkMonitorAutoDetect receiver =
|
NetworkMonitorAutoDetect receiver = new NetworkMonitorAutoDetect(observer, context);
|
||||||
new NetworkMonitorAutoDetect(observer, context, fieldTrialsString);
|
|
||||||
|
|
||||||
assertTrue(receiver.isReceiverRegisteredForTesting());
|
assertTrue(receiver.isReceiverRegisteredForTesting());
|
||||||
}
|
}
|
||||||
@ -289,7 +287,7 @@ public class NetworkMonitorTest {
|
|||||||
@SmallTest
|
@SmallTest
|
||||||
public void testConnectivityManagerDelegateDoesNotCrash() {
|
public void testConnectivityManagerDelegateDoesNotCrash() {
|
||||||
ConnectivityManagerDelegate delegate = new ConnectivityManagerDelegate(
|
ConnectivityManagerDelegate delegate = new ConnectivityManagerDelegate(
|
||||||
InstrumentationRegistry.getTargetContext(), new HashSet<>(), fieldTrialsString);
|
InstrumentationRegistry.getTargetContext(), new HashSet<>());
|
||||||
delegate.getNetworkState();
|
delegate.getNetworkState();
|
||||||
Network[] networks = delegate.getAllNetworks();
|
Network[] networks = delegate.getAllNetworks();
|
||||||
if (networks.length >= 1) {
|
if (networks.length >= 1) {
|
||||||
@ -361,9 +359,8 @@ public class NetworkMonitorTest {
|
|||||||
assertTrue(request.equals(builder.build()));
|
assertTrue(request.equals(builder.build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkRequest getNetworkRequestForFieldTrials(String fieldTrialsString) {
|
private NetworkRequest getNetworkRequestForFieldTrials(String fieldTrials) {
|
||||||
return new ConnectivityManagerDelegate(
|
return new ConnectivityManagerDelegate(null, new HashSet<>(), fieldTrials)
|
||||||
(ConnectivityManager) null, new HashSet<>(), fieldTrialsString)
|
|
||||||
.createNetworkRequest();
|
.createNetworkRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,8 +373,8 @@ public class NetworkMonitorTest {
|
|||||||
@SmallTest
|
@SmallTest
|
||||||
public void testQueryableAPIsDoNotCrash() {
|
public void testQueryableAPIsDoNotCrash() {
|
||||||
NetworkMonitorAutoDetect.Observer observer = new TestNetworkMonitorAutoDetectObserver();
|
NetworkMonitorAutoDetect.Observer observer = new TestNetworkMonitorAutoDetectObserver();
|
||||||
NetworkMonitorAutoDetect ncn = new NetworkMonitorAutoDetect(
|
NetworkMonitorAutoDetect ncn =
|
||||||
observer, InstrumentationRegistry.getTargetContext(), fieldTrialsString);
|
new NetworkMonitorAutoDetect(observer, InstrumentationRegistry.getTargetContext());
|
||||||
ncn.getDefaultNetId();
|
ncn.getDefaultNetId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,7 +386,7 @@ public class NetworkMonitorTest {
|
|||||||
public void testStartStopMonitoring() {
|
public void testStartStopMonitoring() {
|
||||||
NetworkMonitor networkMonitor = NetworkMonitor.getInstance();
|
NetworkMonitor networkMonitor = NetworkMonitor.getInstance();
|
||||||
Context context = ContextUtils.getApplicationContext();
|
Context context = ContextUtils.getApplicationContext();
|
||||||
networkMonitor.startMonitoring(context, fieldTrialsString);
|
networkMonitor.startMonitoring(context);
|
||||||
assertEquals(1, networkMonitor.getNumObservers());
|
assertEquals(1, networkMonitor.getNumObservers());
|
||||||
assertEquals(detector, networkMonitor.getNetworkChangeDetector());
|
assertEquals(detector, networkMonitor.getNetworkChangeDetector());
|
||||||
networkMonitor.stopMonitoring();
|
networkMonitor.stopMonitoring();
|
||||||
|
|||||||
@ -13,8 +13,9 @@
|
|||||||
#include "rtc_base/ip_address.h"
|
#include "rtc_base/ip_address.h"
|
||||||
#include "sdk/android/native_unittests/application_context_provider.h"
|
#include "sdk/android/native_unittests/application_context_provider.h"
|
||||||
#include "sdk/android/src/jni/jni_helpers.h"
|
#include "sdk/android/src/jni/jni_helpers.h"
|
||||||
|
#include "system_wrappers/include/field_trial.h"
|
||||||
|
#include "test/field_trial.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
#include "test/scoped_key_value_config.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
@ -46,8 +47,8 @@ class AndroidNetworkMonitorTest : public ::testing::Test {
|
|||||||
AndroidNetworkMonitorTest() {
|
AndroidNetworkMonitorTest() {
|
||||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||||
ScopedJavaLocalRef<jobject> context = test::GetAppContextForTest(env);
|
ScopedJavaLocalRef<jobject> context = test::GetAppContextForTest(env);
|
||||||
network_monitor_ = std::make_unique<jni::AndroidNetworkMonitor>(
|
network_monitor_ =
|
||||||
env, context, field_trials_);
|
std::make_unique<jni::AndroidNetworkMonitor>(env, context);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetUp() override {
|
void SetUp() override {
|
||||||
@ -61,7 +62,6 @@ class AndroidNetworkMonitorTest : public ::testing::Test {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
test::ScopedKeyValueConfig field_trials_;
|
|
||||||
std::unique_ptr<jni::AndroidNetworkMonitor> network_monitor_;
|
std::unique_ptr<jni::AndroidNetworkMonitor> network_monitor_;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -102,8 +102,7 @@ TEST_F(AndroidNetworkMonitorTest, TestFindNetworkHandleUsingFullIpv6Address) {
|
|||||||
|
|
||||||
TEST_F(AndroidNetworkMonitorTest,
|
TEST_F(AndroidNetworkMonitorTest,
|
||||||
TestFindNetworkHandleIgnoringIpv6TemporaryPart) {
|
TestFindNetworkHandleIgnoringIpv6TemporaryPart) {
|
||||||
ScopedKeyValueConfig field_trials(
|
ScopedFieldTrials field_trials(
|
||||||
field_trials_,
|
|
||||||
"WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart/Enabled/");
|
"WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart/Enabled/");
|
||||||
// Start() updates the states introduced by the field trial.
|
// Start() updates the states introduced by the field trial.
|
||||||
network_monitor_->Start();
|
network_monitor_->Start();
|
||||||
@ -155,8 +154,7 @@ TEST_F(AndroidNetworkMonitorTest, TestFindNetworkHandleUsingIfName) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(AndroidNetworkMonitorTest, TestUnderlyingVpnType) {
|
TEST_F(AndroidNetworkMonitorTest, TestUnderlyingVpnType) {
|
||||||
ScopedKeyValueConfig field_trials(field_trials_,
|
ScopedFieldTrials field_trials("WebRTC-BindUsingInterfaceName/Enabled/");
|
||||||
"WebRTC-BindUsingInterfaceName/Enabled/");
|
|
||||||
jni::NetworkHandle ipv4_handle = 100;
|
jni::NetworkHandle ipv4_handle = 100;
|
||||||
rtc::IPAddress ipv4_address(kTestIpv4Address);
|
rtc::IPAddress ipv4_address(kTestIpv4Address);
|
||||||
jni::NetworkInformation net_info =
|
jni::NetworkInformation net_info =
|
||||||
|
|||||||
@ -28,6 +28,7 @@
|
|||||||
#include "sdk/android/generated_base_jni/NetworkMonitor_jni.h"
|
#include "sdk/android/generated_base_jni/NetworkMonitor_jni.h"
|
||||||
#include "sdk/android/native_api/jni/java_types.h"
|
#include "sdk/android/native_api/jni/java_types.h"
|
||||||
#include "sdk/android/src/jni/jni_helpers.h"
|
#include "sdk/android/src/jni/jni_helpers.h"
|
||||||
|
#include "system_wrappers/include/field_trial.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace jni {
|
namespace jni {
|
||||||
@ -226,13 +227,11 @@ std::string NetworkInformation::ToString() const {
|
|||||||
|
|
||||||
AndroidNetworkMonitor::AndroidNetworkMonitor(
|
AndroidNetworkMonitor::AndroidNetworkMonitor(
|
||||||
JNIEnv* env,
|
JNIEnv* env,
|
||||||
const JavaRef<jobject>& j_application_context,
|
const JavaRef<jobject>& j_application_context)
|
||||||
const FieldTrialsView& field_trials)
|
|
||||||
: android_sdk_int_(Java_NetworkMonitor_androidSdkInt(env)),
|
: android_sdk_int_(Java_NetworkMonitor_androidSdkInt(env)),
|
||||||
j_application_context_(env, j_application_context),
|
j_application_context_(env, j_application_context),
|
||||||
j_network_monitor_(env, Java_NetworkMonitor_getInstance(env)),
|
j_network_monitor_(env, Java_NetworkMonitor_getInstance(env)),
|
||||||
network_thread_(rtc::Thread::Current()),
|
network_thread_(rtc::Thread::Current()) {}
|
||||||
field_trials_(field_trials) {}
|
|
||||||
|
|
||||||
AndroidNetworkMonitor::~AndroidNetworkMonitor() {
|
AndroidNetworkMonitor::~AndroidNetworkMonitor() {
|
||||||
RTC_DCHECK(!started_);
|
RTC_DCHECK(!started_);
|
||||||
@ -245,12 +244,13 @@ void AndroidNetworkMonitor::Start() {
|
|||||||
}
|
}
|
||||||
started_ = true;
|
started_ = true;
|
||||||
surface_cellular_types_ =
|
surface_cellular_types_ =
|
||||||
field_trials_.IsEnabled("WebRTC-SurfaceCellularTypes");
|
webrtc::field_trial::IsEnabled("WebRTC-SurfaceCellularTypes");
|
||||||
find_network_handle_without_ipv6_temporary_part_ = field_trials_.IsEnabled(
|
find_network_handle_without_ipv6_temporary_part_ =
|
||||||
|
webrtc::field_trial::IsEnabled(
|
||||||
"WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart");
|
"WebRTC-FindNetworkHandleWithoutIpv6TemporaryPart");
|
||||||
bind_using_ifname_ =
|
bind_using_ifname_ =
|
||||||
!field_trials_.IsDisabled("WebRTC-BindUsingInterfaceName");
|
!webrtc::field_trial::IsDisabled("WebRTC-BindUsingInterfaceName");
|
||||||
disable_is_adapter_available_ = field_trials_.IsDisabled(
|
disable_is_adapter_available_ = webrtc::field_trial::IsDisabled(
|
||||||
"WebRTC-AndroidNetworkMonitor-IsAdapterAvailable");
|
"WebRTC-AndroidNetworkMonitor-IsAdapterAvailable");
|
||||||
|
|
||||||
// This pointer is also accessed by the methods called from java threads.
|
// This pointer is also accessed by the methods called from java threads.
|
||||||
@ -260,9 +260,7 @@ void AndroidNetworkMonitor::Start() {
|
|||||||
|
|
||||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||||
Java_NetworkMonitor_startMonitoring(
|
Java_NetworkMonitor_startMonitoring(
|
||||||
env, j_network_monitor_, j_application_context_, jlongFromPointer(this),
|
env, j_network_monitor_, j_application_context_, jlongFromPointer(this));
|
||||||
NativeToJavaString(
|
|
||||||
env, field_trials_.Lookup("WebRTC-NetworkMonitorAutoDetect")));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidNetworkMonitor::Stop() {
|
void AndroidNetworkMonitor::Stop() {
|
||||||
@ -610,7 +608,7 @@ rtc::NetworkMonitorInterface*
|
|||||||
AndroidNetworkMonitorFactory::CreateNetworkMonitor(
|
AndroidNetworkMonitorFactory::CreateNetworkMonitor(
|
||||||
const FieldTrialsView& field_trials) {
|
const FieldTrialsView& field_trials) {
|
||||||
return new AndroidNetworkMonitor(AttachCurrentThreadIfNeeded(),
|
return new AndroidNetworkMonitor(AttachCurrentThreadIfNeeded(),
|
||||||
j_application_context_, field_trials);
|
j_application_context_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidNetworkMonitor::NotifyConnectionTypeChanged(
|
void AndroidNetworkMonitor::NotifyConnectionTypeChanged(
|
||||||
|
|||||||
@ -70,8 +70,7 @@ struct NetworkInformation {
|
|||||||
class AndroidNetworkMonitor : public rtc::NetworkMonitorInterface {
|
class AndroidNetworkMonitor : public rtc::NetworkMonitorInterface {
|
||||||
public:
|
public:
|
||||||
AndroidNetworkMonitor(JNIEnv* env,
|
AndroidNetworkMonitor(JNIEnv* env,
|
||||||
const JavaRef<jobject>& j_application_context,
|
const JavaRef<jobject>& j_application_context);
|
||||||
const FieldTrialsView& field_trials);
|
|
||||||
~AndroidNetworkMonitor() override;
|
~AndroidNetworkMonitor() override;
|
||||||
|
|
||||||
// TODO(sakal): Remove once down stream dependencies have been updated.
|
// TODO(sakal): Remove once down stream dependencies have been updated.
|
||||||
@ -161,8 +160,6 @@ class AndroidNetworkMonitor : public rtc::NetworkMonitorInterface {
|
|||||||
|
|
||||||
rtc::scoped_refptr<PendingTaskSafetyFlag> safety_flag_
|
rtc::scoped_refptr<PendingTaskSafetyFlag> safety_flag_
|
||||||
RTC_PT_GUARDED_BY(network_thread_) = nullptr;
|
RTC_PT_GUARDED_BY(network_thread_) = nullptr;
|
||||||
|
|
||||||
const FieldTrialsView& field_trials_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class AndroidNetworkMonitorFactory : public rtc::NetworkMonitorFactory {
|
class AndroidNetworkMonitorFactory : public rtc::NetworkMonitorFactory {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user